define([], (function load__dart_sdk() {
  'use strict';
  const _library = Object.create(null);
  const dart = Object.create(_library);
  dart.library = _library;
  var _debugger = Object.create(dart.library);
  var _foreign_helper = Object.create(dart.library);
  var _interceptors = Object.create(dart.library);
  var _internal = Object.create(dart.library);
  var _isolate_helper = Object.create(dart.library);
  var _js_helper = Object.create(dart.library);
  var _js_primitives = Object.create(dart.library);
  var _metadata = Object.create(dart.library);
  var _native_typed_data = Object.create(dart.library);
  var async = Object.create(dart.library);
  var collection = Object.create(dart.library);
  var convert = Object.create(dart.library);
  var developer = Object.create(dart.library);
  var io = Object.create(dart.library);
  var isolate$ = Object.create(dart.library);
  var js = Object.create(dart.library);
  var js_util = Object.create(dart.library);
  var math = Object.create(dart.library);
  var typed_data = Object.create(dart.library);
  var indexed_db = Object.create(dart.library);
  var html$ = Object.create(dart.library);
  var html_common = Object.create(dart.library);
  var svg$ = Object.create(dart.library);
  var web_audio = Object.create(dart.library);
  var web_gl = Object.create(dart.library);
  var web_sql = Object.create(dart.library);
  var core = Object.create(dart.library);
  var _http = Object.create(dart.library);
  var dartx = Object.create(dart.library);
  const _privateNames = Symbol("_privateNames");
  dart.privateName = function(library, name) {
    let names = library[_privateNames];
    if (names == null) names = library[_privateNames] = new Map();
    let symbol = names.get(name);
    if (symbol == null) names.set(name, symbol = Symbol(name));
    return symbol;
  };
  var $hashCode = dartx.hashCode = Symbol("dartx.hashCode");
  var $isNotEmpty = dartx.isNotEmpty = Symbol("dartx.isNotEmpty");
  var $where = dartx.where = Symbol("dartx.where");
  var $join = dartx.join = Symbol("dartx.join");
  var $length = dartx.length = Symbol("dartx.length");
  var $_equals = dartx._equals = Symbol("dartx._equals");
  var $toString = dartx.toString = Symbol("dartx.toString");
  var $noSuchMethod = dartx.noSuchMethod = Symbol("dartx.noSuchMethod");
  var $cast = dartx.cast = Symbol("dartx.cast");
  var $addAll = dartx.addAll = Symbol("dartx.addAll");
  var $_set = dartx._set = Symbol("dartx._set");
  var $_get = dartx._get = Symbol("dartx._get");
  var $clear = dartx.clear = Symbol("dartx.clear");
  var $contains = dartx.contains = Symbol("dartx.contains");
  var $indexOf = dartx.indexOf = Symbol("dartx.indexOf");
  var $add = dartx.add = Symbol("dartx.add");
  var $isEmpty = dartx.isEmpty = Symbol("dartx.isEmpty");
  var $map = dartx.map = Symbol("dartx.map");
  var $toList = dartx.toList = Symbol("dartx.toList");
  var $sublist = dartx.sublist = Symbol("dartx.sublist");
  var $substring = dartx.substring = Symbol("dartx.substring");
  var $split = dartx.split = Symbol("dartx.split");
  var $trim = dartx.trim = Symbol("dartx.trim");
  var $runtimeType = dartx.runtimeType = Symbol("dartx.runtimeType");
  var $containsKey = dartx.containsKey = Symbol("dartx.containsKey");
  var $any = dartx.any = Symbol("dartx.any");
  var $keys = dartx.keys = Symbol("dartx.keys");
  var $remove = dartx.remove = Symbol("dartx.remove");
  var $values = dartx.values = Symbol("dartx.values");
  var $entries = dartx.entries = Symbol("dartx.entries");
  var $dartStack = dartx.dartStack = Symbol("dartx.dartStack");
  var $truncate = dartx.truncate = Symbol("dartx.truncate");
  var $toInt = dartx.toInt = Symbol("dartx.toInt");
  var $skip = dartx.skip = Symbol("dartx.skip");
  var $take = dartx.take = Symbol("dartx.take");
  var $asMap = dartx.asMap = Symbol("dartx.asMap");
  var $forEach = dartx.forEach = Symbol("dartx.forEach");
  var $elementAt = dartx.elementAt = Symbol("dartx.elementAt");
  var $last = dartx.last = Symbol("dartx.last");
  var $firstWhere = dartx.firstWhere = Symbol("dartx.firstWhere");
  var $replaceFirst = dartx.replaceFirst = Symbol("dartx.replaceFirst");
  var $startsWith = dartx.startsWith = Symbol("dartx.startsWith");
  var $compareTo = dartx.compareTo = Symbol("dartx.compareTo");
  var $sort = dartx.sort = Symbol("dartx.sort");
  var $putIfAbsent = dartx.putIfAbsent = Symbol("dartx.putIfAbsent");
  var $round = dartx.round = Symbol("dartx.round");
  var $bitAnd = dartx['&'] = Symbol("dartx.&");
  var $bitOr = dartx['|'] = Symbol("dartx.|");
  var $bitXor = dartx['^'] = Symbol("dartx.^");
  var $stackTrace = dartx.stackTrace = Symbol("dartx.stackTrace");
  var $invalidValue = dartx.invalidValue = Symbol("dartx.invalidValue");
  var $name = dartx.name = Symbol("dartx.name");
  var $message = dartx.message = Symbol("dartx.message");
  var $checkMutable = dartx.checkMutable = Symbol("dartx.checkMutable");
  var $checkGrowable = dartx.checkGrowable = Symbol("dartx.checkGrowable");
  var $removeAt = dartx.removeAt = Symbol("dartx.removeAt");
  var $insert = dartx.insert = Symbol("dartx.insert");
  var $setRange = dartx.setRange = Symbol("dartx.setRange");
  var $insertAll = dartx.insertAll = Symbol("dartx.insertAll");
  var $setAll = dartx.setAll = Symbol("dartx.setAll");
  var $removeLast = dartx.removeLast = Symbol("dartx.removeLast");
  var $removeWhere = dartx.removeWhere = Symbol("dartx.removeWhere");
  var $retainWhere = dartx.retainWhere = Symbol("dartx.retainWhere");
  var $expand = dartx.expand = Symbol("dartx.expand");
  var $takeWhile = dartx.takeWhile = Symbol("dartx.takeWhile");
  var $skipWhile = dartx.skipWhile = Symbol("dartx.skipWhile");
  var $reduce = dartx.reduce = Symbol("dartx.reduce");
  var $fold = dartx.fold = Symbol("dartx.fold");
  var $lastWhere = dartx.lastWhere = Symbol("dartx.lastWhere");
  var $singleWhere = dartx.singleWhere = Symbol("dartx.singleWhere");
  var $getRange = dartx.getRange = Symbol("dartx.getRange");
  var $first = dartx.first = Symbol("dartx.first");
  var $single = dartx.single = Symbol("dartx.single");
  var $removeRange = dartx.removeRange = Symbol("dartx.removeRange");
  var $fillRange = dartx.fillRange = Symbol("dartx.fillRange");
  var $replaceRange = dartx.replaceRange = Symbol("dartx.replaceRange");
  var $every = dartx.every = Symbol("dartx.every");
  var $reversed = dartx.reversed = Symbol("dartx.reversed");
  var $shuffle = dartx.shuffle = Symbol("dartx.shuffle");
  var $lastIndexOf = dartx.lastIndexOf = Symbol("dartx.lastIndexOf");
  var $toSet = dartx.toSet = Symbol("dartx.toSet");
  var $iterator = dartx.iterator = Symbol("dartx.iterator");
  var $followedBy = dartx.followedBy = Symbol("dartx.followedBy");
  var $whereType = dartx.whereType = Symbol("dartx.whereType");
  var $plus = dartx['+'] = Symbol("dartx.+");
  var $indexWhere = dartx.indexWhere = Symbol("dartx.indexWhere");
  var $lastIndexWhere = dartx.lastIndexWhere = Symbol("dartx.lastIndexWhere");
  var $isNegative = dartx.isNegative = Symbol("dartx.isNegative");
  var $isNaN = dartx.isNaN = Symbol("dartx.isNaN");
  var $isInfinite = dartx.isInfinite = Symbol("dartx.isInfinite");
  var $isFinite = dartx.isFinite = Symbol("dartx.isFinite");
  var $remainder = dartx.remainder = Symbol("dartx.remainder");
  var $abs = dartx.abs = Symbol("dartx.abs");
  var $sign = dartx.sign = Symbol("dartx.sign");
  var $truncateToDouble = dartx.truncateToDouble = Symbol("dartx.truncateToDouble");
  var $ceilToDouble = dartx.ceilToDouble = Symbol("dartx.ceilToDouble");
  var $ceil = dartx.ceil = Symbol("dartx.ceil");
  var $floorToDouble = dartx.floorToDouble = Symbol("dartx.floorToDouble");
  var $floor = dartx.floor = Symbol("dartx.floor");
  var $roundToDouble = dartx.roundToDouble = Symbol("dartx.roundToDouble");
  var $clamp = dartx.clamp = Symbol("dartx.clamp");
  var $toDouble = dartx.toDouble = Symbol("dartx.toDouble");
  var $toStringAsFixed = dartx.toStringAsFixed = Symbol("dartx.toStringAsFixed");
  var $toStringAsExponential = dartx.toStringAsExponential = Symbol("dartx.toStringAsExponential");
  var $toStringAsPrecision = dartx.toStringAsPrecision = Symbol("dartx.toStringAsPrecision");
  var $codeUnitAt = dartx.codeUnitAt = Symbol("dartx.codeUnitAt");
  var $toRadixString = dartx.toRadixString = Symbol("dartx.toRadixString");
  var $times = dartx['*'] = Symbol("dartx.*");
  var $_negate = dartx._negate = Symbol("dartx._negate");
  var $minus = dartx['-'] = Symbol("dartx.-");
  var $divide = dartx['/'] = Symbol("dartx./");
  var $modulo = dartx['%'] = Symbol("dartx.%");
  var $floorDivide = dartx['~/'] = Symbol("dartx.~/");
  var $leftShift = dartx['<<'] = Symbol("dartx.<<");
  var $rightShift = dartx['>>'] = Symbol("dartx.>>");
  var $tripleShift = dartx['>>>'] = Symbol("dartx.>>>");
  var $lessThan = dartx['<'] = Symbol("dartx.<");
  var $greaterThan = dartx['>'] = Symbol("dartx.>");
  var $lessOrEquals = dartx['<='] = Symbol("dartx.<=");
  var $greaterOrEquals = dartx['>='] = Symbol("dartx.>=");
  var $isEven = dartx.isEven = Symbol("dartx.isEven");
  var $isOdd = dartx.isOdd = Symbol("dartx.isOdd");
  var $toUnsigned = dartx.toUnsigned = Symbol("dartx.toUnsigned");
  var $toSigned = dartx.toSigned = Symbol("dartx.toSigned");
  var $bitLength = dartx.bitLength = Symbol("dartx.bitLength");
  var $modPow = dartx.modPow = Symbol("dartx.modPow");
  var $modInverse = dartx.modInverse = Symbol("dartx.modInverse");
  var $gcd = dartx.gcd = Symbol("dartx.gcd");
  var $bitNot = dartx['~'] = Symbol("dartx.~");
  var $allMatches = dartx.allMatches = Symbol("dartx.allMatches");
  var $matchAsPrefix = dartx.matchAsPrefix = Symbol("dartx.matchAsPrefix");
  var $endsWith = dartx.endsWith = Symbol("dartx.endsWith");
  var $replaceAll = dartx.replaceAll = Symbol("dartx.replaceAll");
  var $splitMapJoin = dartx.splitMapJoin = Symbol("dartx.splitMapJoin");
  var $replaceAllMapped = dartx.replaceAllMapped = Symbol("dartx.replaceAllMapped");
  var $replaceFirstMapped = dartx.replaceFirstMapped = Symbol("dartx.replaceFirstMapped");
  var $toLowerCase = dartx.toLowerCase = Symbol("dartx.toLowerCase");
  var $toUpperCase = dartx.toUpperCase = Symbol("dartx.toUpperCase");
  var $trimLeft = dartx.trimLeft = Symbol("dartx.trimLeft");
  var $trimRight = dartx.trimRight = Symbol("dartx.trimRight");
  var $padLeft = dartx.padLeft = Symbol("dartx.padLeft");
  var $padRight = dartx.padRight = Symbol("dartx.padRight");
  var $codeUnits = dartx.codeUnits = Symbol("dartx.codeUnits");
  var $runes = dartx.runes = Symbol("dartx.runes");
  var $buffer = dartx.buffer = Symbol("dartx.buffer");
  var $offsetInBytes = dartx.offsetInBytes = Symbol("dartx.offsetInBytes");
  var $containsValue = dartx.containsValue = Symbol("dartx.containsValue");
  var $update = dartx.update = Symbol("dartx.update");
  var $updateAll = dartx.updateAll = Symbol("dartx.updateAll");
  var $addEntries = dartx.addEntries = Symbol("dartx.addEntries");
  var $lengthInBytes = dartx.lengthInBytes = Symbol("dartx.lengthInBytes");
  var $asUint8List = dartx.asUint8List = Symbol("dartx.asUint8List");
  var $asInt8List = dartx.asInt8List = Symbol("dartx.asInt8List");
  var $asUint8ClampedList = dartx.asUint8ClampedList = Symbol("dartx.asUint8ClampedList");
  var $asUint16List = dartx.asUint16List = Symbol("dartx.asUint16List");
  var $asInt16List = dartx.asInt16List = Symbol("dartx.asInt16List");
  var $asUint32List = dartx.asUint32List = Symbol("dartx.asUint32List");
  var $asInt32List = dartx.asInt32List = Symbol("dartx.asInt32List");
  var $asUint64List = dartx.asUint64List = Symbol("dartx.asUint64List");
  var $asInt64List = dartx.asInt64List = Symbol("dartx.asInt64List");
  var $asInt32x4List = dartx.asInt32x4List = Symbol("dartx.asInt32x4List");
  var $asFloat32List = dartx.asFloat32List = Symbol("dartx.asFloat32List");
  var $asFloat64List = dartx.asFloat64List = Symbol("dartx.asFloat64List");
  var $asFloat32x4List = dartx.asFloat32x4List = Symbol("dartx.asFloat32x4List");
  var $asFloat64x2List = dartx.asFloat64x2List = Symbol("dartx.asFloat64x2List");
  var $asByteData = dartx.asByteData = Symbol("dartx.asByteData");
  var $elementSizeInBytes = dartx.elementSizeInBytes = Symbol("dartx.elementSizeInBytes");
  var $getFloat32 = dartx.getFloat32 = Symbol("dartx.getFloat32");
  var $getFloat64 = dartx.getFloat64 = Symbol("dartx.getFloat64");
  var $getInt16 = dartx.getInt16 = Symbol("dartx.getInt16");
  var $getInt32 = dartx.getInt32 = Symbol("dartx.getInt32");
  var $getInt64 = dartx.getInt64 = Symbol("dartx.getInt64");
  var $getInt8 = dartx.getInt8 = Symbol("dartx.getInt8");
  var $getUint16 = dartx.getUint16 = Symbol("dartx.getUint16");
  var $getUint32 = dartx.getUint32 = Symbol("dartx.getUint32");
  var $getUint64 = dartx.getUint64 = Symbol("dartx.getUint64");
  var $getUint8 = dartx.getUint8 = Symbol("dartx.getUint8");
  var $setFloat32 = dartx.setFloat32 = Symbol("dartx.setFloat32");
  var $setFloat64 = dartx.setFloat64 = Symbol("dartx.setFloat64");
  var $setInt16 = dartx.setInt16 = Symbol("dartx.setInt16");
  var $setInt32 = dartx.setInt32 = Symbol("dartx.setInt32");
  var $setInt64 = dartx.setInt64 = Symbol("dartx.setInt64");
  var $setInt8 = dartx.setInt8 = Symbol("dartx.setInt8");
  var $setUint16 = dartx.setUint16 = Symbol("dartx.setUint16");
  var $setUint32 = dartx.setUint32 = Symbol("dartx.setUint32");
  var $setUint64 = dartx.setUint64 = Symbol("dartx.setUint64");
  var $setUint8 = dartx.setUint8 = Symbol("dartx.setUint8");
  var $left = dartx.left = Symbol("dartx.left");
  var $width = dartx.width = Symbol("dartx.width");
  var $top = dartx.top = Symbol("dartx.top");
  var $height = dartx.height = Symbol("dartx.height");
  var $right = dartx.right = Symbol("dartx.right");
  var $bottom = dartx.bottom = Symbol("dartx.bottom");
  var $intersection = dartx.intersection = Symbol("dartx.intersection");
  var $intersects = dartx.intersects = Symbol("dartx.intersects");
  var $boundingBox = dartx.boundingBox = Symbol("dartx.boundingBox");
  var $containsRectangle = dartx.containsRectangle = Symbol("dartx.containsRectangle");
  var $containsPoint = dartx.containsPoint = Symbol("dartx.containsPoint");
  var $topLeft = dartx.topLeft = Symbol("dartx.topLeft");
  var $topRight = dartx.topRight = Symbol("dartx.topRight");
  var $bottomRight = dartx.bottomRight = Symbol("dartx.bottomRight");
  var $bottomLeft = dartx.bottomLeft = Symbol("dartx.bottomLeft");
  var T$ = {
    ObjectN: () => (T$.ObjectN = dart.constFn(dart.nullable(core.Object)))(),
    ListOfObjectN: () => (T$.ListOfObjectN = dart.constFn(core.List$(T$.ObjectN())))(),
    boolN: () => (T$.boolN = dart.constFn(dart.nullable(core.bool)))(),
    JSArrayOfString: () => (T$.JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))(),
    IdentityMapOfString$ObjectN: () => (T$.IdentityMapOfString$ObjectN = dart.constFn(_js_helper.IdentityMap$(core.String, T$.ObjectN())))(),
    ListOfString: () => (T$.ListOfString = dart.constFn(core.List$(core.String)))(),
    ListNOfString: () => (T$.ListNOfString = dart.constFn(dart.nullable(T$.ListOfString())))(),
    IdentityMapOfString$ListNOfString: () => (T$.IdentityMapOfString$ListNOfString = dart.constFn(_js_helper.IdentityMap$(core.String, T$.ListNOfString())))(),
    JSArrayOfTypeVariable: () => (T$.JSArrayOfTypeVariable = dart.constFn(_interceptors.JSArray$(dart.TypeVariable)))(),
    ExpandoOfFunction: () => (T$.ExpandoOfFunction = dart.constFn(core.Expando$(core.Function)))(),
    IdentityMapOfString$Object: () => (T$.IdentityMapOfString$Object = dart.constFn(_js_helper.IdentityMap$(core.String, core.Object)))(),
    ListOfObject: () => (T$.ListOfObject = dart.constFn(core.List$(core.Object)))(),
    IdentityMapOfTypeVariable$int: () => (T$.IdentityMapOfTypeVariable$int = dart.constFn(_js_helper.IdentityMap$(dart.TypeVariable, core.int)))(),
    IdentityMapOfTypeVariable$Object: () => (T$.IdentityMapOfTypeVariable$Object = dart.constFn(_js_helper.IdentityMap$(dart.TypeVariable, core.Object)))(),
    LinkedHashMapOfTypeVariable$TypeConstraint: () => (T$.LinkedHashMapOfTypeVariable$TypeConstraint = dart.constFn(collection.LinkedHashMap$(dart.TypeVariable, dart.TypeConstraint)))(),
    JSArrayOfObject: () => (T$.JSArrayOfObject = dart.constFn(_interceptors.JSArray$(core.Object)))(),
    ListOfType: () => (T$.ListOfType = dart.constFn(core.List$(core.Type)))(),
    SymbolL: () => (T$.SymbolL = dart.constFn(dart.legacy(core.Symbol)))(),
    MapOfSymbol$dynamic: () => (T$.MapOfSymbol$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))(),
    TypeL: () => (T$.TypeL = dart.constFn(dart.legacy(core.Type)))(),
    JSArrayOfNameValuePair: () => (T$.JSArrayOfNameValuePair = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))(),
    intAnddynamicTovoid: () => (T$.intAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [core.int, dart.dynamic])))(),
    JSArrayOfFormatter: () => (T$.JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))(),
    _HashSetOfNameValuePair: () => (T$._HashSetOfNameValuePair = dart.constFn(collection._HashSet$(_debugger.NameValuePair)))(),
    IdentityMapOfString$String: () => (T$.IdentityMapOfString$String = dart.constFn(_js_helper.IdentityMap$(core.String, core.String)))(),
    dynamicAnddynamicToNull: () => (T$.dynamicAnddynamicToNull = dart.constFn(dart.fnType(core.Null, [dart.dynamic, dart.dynamic])))(),
    dynamicAnddynamicTovoid: () => (T$.dynamicAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic, dart.dynamic])))(),
    dynamicToString: () => (T$.dynamicToString = dart.constFn(dart.fnType(core.String, [dart.dynamic])))(),
    ListOfNameValuePair: () => (T$.ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))(),
    StringTobool: () => (T$.StringTobool = dart.constFn(dart.fnType(core.bool, [core.String])))(),
    VoidToString: () => (T$.VoidToString = dart.constFn(dart.fnType(core.String, [])))(),
    StringToNameValuePair: () => (T$.StringToNameValuePair = dart.constFn(dart.fnType(_debugger.NameValuePair, [core.String])))(),
    NameValuePairAndNameValuePairToint: () => (T$.NameValuePairAndNameValuePairToint = dart.constFn(dart.fnType(core.int, [_debugger.NameValuePair, _debugger.NameValuePair])))(),
    LinkedHashMapOfdynamic$ObjectN: () => (T$.LinkedHashMapOfdynamic$ObjectN = dart.constFn(collection.LinkedHashMap$(dart.dynamic, T$.ObjectN())))(),
    dynamicTodynamic: () => (T$.dynamicTodynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic])))(),
    dynamicToObjectN: () => (T$.dynamicToObjectN = dart.constFn(dart.fnType(T$.ObjectN(), [dart.dynamic])))(),
    IdentityMapOfString$_MethodStats: () => (T$.IdentityMapOfString$_MethodStats = dart.constFn(_js_helper.IdentityMap$(core.String, _debugger._MethodStats)))(),
    StringToString: () => (T$.StringToString = dart.constFn(dart.fnType(core.String, [core.String])))(),
    VoidTo_MethodStats: () => (T$.VoidTo_MethodStats = dart.constFn(dart.fnType(_debugger._MethodStats, [])))(),
    StringAndStringToint: () => (T$.StringAndStringToint = dart.constFn(dart.fnType(core.int, [core.String, core.String])))(),
    JSArrayOfListOfObject: () => (T$.JSArrayOfListOfObject = dart.constFn(_interceptors.JSArray$(T$.ListOfObject())))(),
    JSArrayOf_CallMethodRecord: () => (T$.JSArrayOf_CallMethodRecord = dart.constFn(_interceptors.JSArray$(_debugger._CallMethodRecord)))(),
    ListN: () => (T$.ListN = dart.constFn(dart.nullable(core.List)))(),
    InvocationN: () => (T$.InvocationN = dart.constFn(dart.nullable(core.Invocation)))(),
    MapNOfSymbol$dynamic: () => (T$.MapNOfSymbol$dynamic = dart.constFn(dart.nullable(T$.MapOfSymbol$dynamic())))(),
    ObjectNAndObjectNToint: () => (T$.ObjectNAndObjectNToint = dart.constFn(dart.fnType(core.int, [T$.ObjectN(), T$.ObjectN()])))(),
    dynamicAnddynamicToint: () => (T$.dynamicAnddynamicToint = dart.constFn(dart.fnType(core.int, [dart.dynamic, dart.dynamic])))(),
    ObjectAndStackTraceTovoid: () => (T$.ObjectAndStackTraceTovoid = dart.constFn(dart.fnType(dart.void, [core.Object, core.StackTrace])))(),
    dynamicTovoid: () => (T$.dynamicTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic])))(),
    _FutureOfNull: () => (T$._FutureOfNull = dart.constFn(async._Future$(core.Null)))(),
    VoidTo_FutureOfNull: () => (T$.VoidTo_FutureOfNull = dart.constFn(dart.fnType(T$._FutureOfNull(), [])))(),
    VoidTovoid: () => (T$.VoidTovoid = dart.constFn(dart.fnType(dart.void, [])))(),
    FutureOfNull: () => (T$.FutureOfNull = dart.constFn(async.Future$(core.Null)))(),
    FutureNOfNull: () => (T$.FutureNOfNull = dart.constFn(dart.nullable(T$.FutureOfNull())))(),
    dynamicToFuture: () => (T$.dynamicToFuture = dart.constFn(dart.fnType(async.Future, [dart.dynamic])))(),
    _FutureOfString: () => (T$._FutureOfString = dart.constFn(async._Future$(core.String)))(),
    _FutureOfbool: () => (T$._FutureOfbool = dart.constFn(async._Future$(core.bool)))(),
    VoidTobool: () => (T$.VoidTobool = dart.constFn(dart.fnType(core.bool, [])))(),
    boolToNull: () => (T$.boolToNull = dart.constFn(dart.fnType(core.Null, [core.bool])))(),
    voidToNull: () => (T$.voidToNull = dart.constFn(dart.fnType(core.Null, [dart.void])))(),
    _FutureOfint: () => (T$._FutureOfint = dart.constFn(async._Future$(core.int)))(),
    ObjectAndStackTraceToNull: () => (T$.ObjectAndStackTraceToNull = dart.constFn(dart.fnType(core.Null, [core.Object, core.StackTrace])))(),
    FutureOfvoid: () => (T$.FutureOfvoid = dart.constFn(async.Future$(dart.void)))(),
    VoidToFutureOfvoid: () => (T$.VoidToFutureOfvoid = dart.constFn(dart.fnType(T$.FutureOfvoid(), [])))(),
    ObjectTovoid: () => (T$.ObjectTovoid = dart.constFn(dart.fnType(dart.void, [core.Object])))(),
    EventSinkTo_ConverterStreamEventSink: () => (T$.EventSinkTo_ConverterStreamEventSink = dart.constFn(dart.fnType(convert._ConverterStreamEventSink, [async.EventSink])))(),
    JSArrayOfUint8List: () => (T$.JSArrayOfUint8List = dart.constFn(_interceptors.JSArray$(typed_data.Uint8List)))(),
    ObjectNAndObjectNTovoid: () => (T$.ObjectNAndObjectNTovoid = dart.constFn(dart.fnType(dart.void, [T$.ObjectN(), T$.ObjectN()])))(),
    ObjectNToObjectN: () => (T$.ObjectNToObjectN = dart.constFn(dart.fnType(T$.ObjectN(), [T$.ObjectN()])))(),
    EmptyIteratorOfNeverL: () => (T$.EmptyIteratorOfNeverL = dart.constFn(_internal.EmptyIterator$(dart.legacy(dart.Never))))(),
    doubleL: () => (T$.doubleL = dart.constFn(dart.legacy(core.double)))(),
    VoidToFutureOfNull: () => (T$.VoidToFutureOfNull = dart.constFn(dart.fnType(T$.FutureOfNull(), [])))(),
    VoidToNull: () => (T$.VoidToNull = dart.constFn(dart.fnType(core.Null, [])))(),
    VoidToint: () => (T$.VoidToint = dart.constFn(dart.fnType(core.int, [])))(),
    JSArrayOfint: () => (T$.JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))(),
    StringN: () => (T$.StringN = dart.constFn(dart.nullable(core.String)))(),
    JSArrayOfStringN: () => (T$.JSArrayOfStringN = dart.constFn(_interceptors.JSArray$(T$.StringN())))(),
    SubListIterableOfString: () => (T$.SubListIterableOfString = dart.constFn(_internal.SubListIterable$(core.String)))(),
    EmptyIterableOfString: () => (T$.EmptyIterableOfString = dart.constFn(_internal.EmptyIterable$(core.String)))(),
    ObjectNTovoid: () => (T$.ObjectNTovoid = dart.constFn(dart.fnType(dart.void, [T$.ObjectN()])))(),
    MatchToString: () => (T$.MatchToString = dart.constFn(dart.fnType(core.String, [core.Match])))(),
    IterableOfdouble: () => (T$.IterableOfdouble = dart.constFn(core.Iterable$(core.double)))(),
    IterableOfint: () => (T$.IterableOfint = dart.constFn(core.Iterable$(core.int)))(),
    intN: () => (T$.intN = dart.constFn(dart.nullable(core.int)))(),
    ObjectNTovoid$1: () => (T$.ObjectNTovoid$1 = dart.constFn(dart.fnType(dart.void, [], [T$.ObjectN()])))(),
    _FutureOfObjectN: () => (T$._FutureOfObjectN = dart.constFn(async._Future$(T$.ObjectN())))(),
    dynamicToNull: () => (T$.dynamicToNull = dart.constFn(dart.fnType(core.Null, [dart.dynamic])))(),
    _FutureOfvoid: () => (T$._FutureOfvoid = dart.constFn(async._Future$(dart.void)))(),
    VoidToObject: () => (T$.VoidToObject = dart.constFn(dart.fnType(core.Object, [])))(),
    ObjectTodynamic: () => (T$.ObjectTodynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Object])))(),
    VoidToStackTrace: () => (T$.VoidToStackTrace = dart.constFn(dart.fnType(core.StackTrace, [])))(),
    StackTraceTodynamic: () => (T$.StackTraceTodynamic = dart.constFn(dart.fnType(dart.dynamic, [core.StackTrace])))(),
    ObjectNTobool: () => (T$.ObjectNTobool = dart.constFn(dart.fnType(core.bool, [T$.ObjectN()])))(),
    FutureOrOfbool: () => (T$.FutureOrOfbool = dart.constFn(async.FutureOr$(core.bool)))(),
    VoidToFutureOrOfbool: () => (T$.VoidToFutureOrOfbool = dart.constFn(dart.fnType(T$.FutureOrOfbool(), [])))(),
    boolTovoid: () => (T$.boolTovoid = dart.constFn(dart.fnType(dart.void, [core.bool])))(),
    VoidToFn: () => (T$.VoidToFn = dart.constFn(dart.fnType(T$.boolTovoid(), [])))(),
    FnTodynamic: () => (T$.FnTodynamic = dart.constFn(dart.fnType(dart.dynamic, [T$.boolTovoid()])))(),
    FutureOfbool: () => (T$.FutureOfbool = dart.constFn(async.Future$(core.bool)))(),
    ObjectTobool: () => (T$.ObjectTobool = dart.constFn(dart.fnType(core.bool, [core.Object])))(),
    VoidTodynamic: () => (T$.VoidTodynamic = dart.constFn(dart.fnType(dart.dynamic, [])))(),
    ObjectAndStackTraceTodynamic: () => (T$.ObjectAndStackTraceTodynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Object, core.StackTrace])))(),
    _FutureListenerOfObject$Object: () => (T$._FutureListenerOfObject$Object = dart.constFn(async._FutureListener$(core.Object, core.Object)))(),
    _FutureListenerNOfObject$Object: () => (T$._FutureListenerNOfObject$Object = dart.constFn(dart.nullable(T$._FutureListenerOfObject$Object())))(),
    JSArrayOfFunction: () => (T$.JSArrayOfFunction = dart.constFn(_interceptors.JSArray$(core.Function)))(),
    _FutureListenerN: () => (T$._FutureListenerN = dart.constFn(dart.nullable(async._FutureListener)))(),
    dynamicTo_Future: () => (T$.dynamicTo_Future = dart.constFn(dart.fnType(async._Future, [dart.dynamic])))(),
    _StreamControllerAddStreamStateOfObjectN: () => (T$._StreamControllerAddStreamStateOfObjectN = dart.constFn(async._StreamControllerAddStreamState$(T$.ObjectN())))(),
    FunctionN: () => (T$.FunctionN = dart.constFn(dart.nullable(core.Function)))(),
    AsyncErrorN: () => (T$.AsyncErrorN = dart.constFn(dart.nullable(async.AsyncError)))(),
    StackTraceN: () => (T$.StackTraceN = dart.constFn(dart.nullable(core.StackTrace)))(),
    ZoneAndZoneDelegateAndZone__ToAsyncErrorN: () => (T$.ZoneAndZoneDelegateAndZone__ToAsyncErrorN = dart.constFn(dart.fnType(T$.AsyncErrorN(), [async.Zone, async.ZoneDelegate, async.Zone, core.Object, T$.StackTraceN()])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__ToAsyncErrorN: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToAsyncErrorN = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__ToAsyncErrorN())))(),
    ZoneAndZoneDelegateAndZone__Tovoid: () => (T$.ZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, T$.VoidTovoid()])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__Tovoid())))(),
    ZoneAndZoneDelegateAndZone__ToTimer: () => (T$.ZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, T$.VoidTovoid()])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__ToTimer())))(),
    TimerTovoid: () => (T$.TimerTovoid = dart.constFn(dart.fnType(dart.void, [async.Timer])))(),
    ZoneAndZoneDelegateAndZone__ToTimer$1: () => (T$.ZoneAndZoneDelegateAndZone__ToTimer$1 = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, T$.TimerTovoid()])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer$1: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer$1 = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__ToTimer$1())))(),
    ZoneAndZoneDelegateAndZone__Tovoid$1: () => (T$.ZoneAndZoneDelegateAndZone__Tovoid$1 = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$1: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$1 = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__Tovoid$1())))(),
    ZoneSpecificationN: () => (T$.ZoneSpecificationN = dart.constFn(dart.nullable(async.ZoneSpecification)))(),
    MapOfObjectN$ObjectN: () => (T$.MapOfObjectN$ObjectN = dart.constFn(core.Map$(T$.ObjectN(), T$.ObjectN())))(),
    MapNOfObjectN$ObjectN: () => (T$.MapNOfObjectN$ObjectN = dart.constFn(dart.nullable(T$.MapOfObjectN$ObjectN())))(),
    ZoneAndZoneDelegateAndZone__ToZone: () => (T$.ZoneAndZoneDelegateAndZone__ToZone = dart.constFn(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, T$.ZoneSpecificationN(), T$.MapNOfObjectN$ObjectN()])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__ToZone: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToZone = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__ToZone())))(),
    ZoneAndZoneDelegateAndZone__Tovoid$2: () => (T$.ZoneAndZoneDelegateAndZone__Tovoid$2 = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))(),
    _ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$2: () => (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$2 = dart.constFn(async._ZoneFunction$(T$.ZoneAndZoneDelegateAndZone__Tovoid$2())))(),
    ZoneN: () => (T$.ZoneN = dart.constFn(dart.nullable(async.Zone)))(),
    ZoneDelegateN: () => (T$.ZoneDelegateN = dart.constFn(dart.nullable(async.ZoneDelegate)))(),
    ZoneNAndZoneDelegateNAndZone__ToR: () => (T$.ZoneNAndZoneDelegateNAndZone__ToR = dart.constFn(dart.gFnType(R => [R, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, dart.fnType(R, [])]], R => [T$.ObjectN()])))(),
    ZoneNAndZoneDelegateNAndZone__ToR$1: () => (T$.ZoneNAndZoneDelegateNAndZone__ToR$1 = dart.constFn(dart.gFnType((R, T) => [R, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, dart.fnType(R, [T]), T]], (R, T) => [T$.ObjectN(), T$.ObjectN()])))(),
    ZoneNAndZoneDelegateNAndZone__ToR$2: () => (T$.ZoneNAndZoneDelegateNAndZone__ToR$2 = dart.constFn(dart.gFnType((R, T1, T2) => [R, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [T$.ObjectN(), T$.ObjectN(), T$.ObjectN()])))(),
    ZoneAndZoneDelegateAndZone__ToFn: () => (T$.ZoneAndZoneDelegateAndZone__ToFn = dart.constFn(dart.gFnType(R => [dart.fnType(R, []), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]], R => [T$.ObjectN()])))(),
    ZoneAndZoneDelegateAndZone__ToFn$1: () => (T$.ZoneAndZoneDelegateAndZone__ToFn$1 = dart.constFn(dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T])]], (R, T) => [T$.ObjectN(), T$.ObjectN()])))(),
    ZoneAndZoneDelegateAndZone__ToFn$2: () => (T$.ZoneAndZoneDelegateAndZone__ToFn$2 = dart.constFn(dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2])]], (R, T1, T2) => [T$.ObjectN(), T$.ObjectN(), T$.ObjectN()])))(),
    ZoneL: () => (T$.ZoneL = dart.constFn(dart.legacy(async.Zone)))(),
    ZoneDelegateL: () => (T$.ZoneDelegateL = dart.constFn(dart.legacy(async.ZoneDelegate)))(),
    ObjectL: () => (T$.ObjectL = dart.constFn(dart.legacy(core.Object)))(),
    ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorN: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorN = dart.constFn(dart.fnType(T$.AsyncErrorN(), [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.ObjectL(), T$.StackTraceN()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorN())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN())))(),
    VoidToLvoid: () => (T$.VoidToLvoid = dart.constFn(dart.legacy(T$.VoidTovoid())))(),
    ZoneLAndZoneDelegateLAndZoneL__Tovoid: () => (T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid = dart.constFn(dart.fnType(dart.void, [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.VoidToLvoid()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLvoid: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid())))(),
    ZoneNAndZoneDelegateNAndZone__Tovoid: () => (T$.ZoneNAndZoneDelegateNAndZone__Tovoid = dart.constFn(dart.fnType(dart.void, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, T$.VoidTovoid()])))(),
    TimerL: () => (T$.TimerL = dart.constFn(dart.legacy(async.Timer)))(),
    DurationL: () => (T$.DurationL = dart.constFn(dart.legacy(core.Duration)))(),
    ZoneLAndZoneDelegateLAndZoneL__ToTimerL: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToTimerL = dart.constFn(dart.fnType(T$.TimerL(), [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.DurationL(), T$.VoidToLvoid()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLTimerL: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLTimerL = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__ToTimerL())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLTimerL())))(),
    TimerLTovoid: () => (T$.TimerLTovoid = dart.constFn(dart.fnType(dart.void, [T$.TimerL()])))(),
    TimerLToLvoid: () => (T$.TimerLToLvoid = dart.constFn(dart.legacy(T$.TimerLTovoid())))(),
    ZoneLAndZoneDelegateLAndZoneL__ToTimerL$1: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToTimerL$1 = dart.constFn(dart.fnType(T$.TimerL(), [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.DurationL(), T$.TimerLToLvoid()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1 = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__ToTimerL$1())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1 = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1())))(),
    StringL: () => (T$.StringL = dart.constFn(dart.legacy(core.String)))(),
    ZoneLAndZoneDelegateLAndZoneL__Tovoid$1: () => (T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid$1 = dart.constFn(dart.fnType(dart.void, [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.StringL()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLvoid$1: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid$1 = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid$1())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$1: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$1 = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid$1())))(),
    ZoneLAndZoneDelegateLAndZoneL__ToZoneL: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToZoneL = dart.constFn(dart.fnType(T$.ZoneL(), [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.ZoneSpecificationN(), T$.MapNOfObjectN$ObjectN()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLZoneL: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLZoneL = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__ToZoneL())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLZoneL())))(),
    ZoneNAndZoneDelegateNAndZone__ToZone: () => (T$.ZoneNAndZoneDelegateNAndZone__ToZone = dart.constFn(dart.fnType(async.Zone, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, T$.ZoneSpecificationN(), T$.MapNOfObjectN$ObjectN()])))(),
    StackTraceL: () => (T$.StackTraceL = dart.constFn(dart.legacy(core.StackTrace)))(),
    ZoneLAndZoneDelegateLAndZoneL__Tovoid$2: () => (T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid$2 = dart.constFn(dart.fnType(dart.void, [T$.ZoneL(), T$.ZoneDelegateL(), T$.ZoneL(), T$.ObjectL(), T$.StackTraceL()])))(),
    ZoneLAndZoneDelegateLAndZoneL__ToLvoid$2: () => (T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid$2 = dart.constFn(dart.legacy(T$.ZoneLAndZoneDelegateLAndZoneL__Tovoid$2())))(),
    _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$2: () => (T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$2 = dart.constFn(async._ZoneFunction$(T$.ZoneLAndZoneDelegateLAndZoneL__ToLvoid$2())))(),
    ZoneNAndZoneDelegateNAndZone__Tovoid$1: () => (T$.ZoneNAndZoneDelegateNAndZone__Tovoid$1 = dart.constFn(dart.fnType(dart.void, [T$.ZoneN(), T$.ZoneDelegateN(), async.Zone, core.Object, core.StackTrace])))(),
    NeverAndNeverTodynamic: () => (T$.NeverAndNeverTodynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.Never, dart.Never])))(),
    StringTovoid: () => (T$.StringTovoid = dart.constFn(dart.fnType(dart.void, [core.String])))(),
    HashMapOfObjectN$ObjectN: () => (T$.HashMapOfObjectN$ObjectN = dart.constFn(collection.HashMap$(T$.ObjectN(), T$.ObjectN())))(),
    JSArrayOfObjectN: () => (T$.JSArrayOfObjectN = dart.constFn(_interceptors.JSArray$(T$.ObjectN())))(),
    ObjectNToint: () => (T$.ObjectNToint = dart.constFn(dart.fnType(core.int, [T$.ObjectN()])))(),
    ObjectNAndObjectNTobool: () => (T$.ObjectNAndObjectNTobool = dart.constFn(dart.fnType(core.bool, [T$.ObjectN(), T$.ObjectN()])))(),
    LinkedListEntryOfLinkedListEntry: () => (T$.LinkedListEntryOfLinkedListEntry = dart.constFn(collection.LinkedListEntry$(collection.LinkedListEntry)))()
  };
  var T$0 = {
    dynamicTobool: () => (T$0.dynamicTobool = dart.constFn(dart.fnType(core.bool, [dart.dynamic])))(),
    ComparableAndComparableToint: () => (T$0.ComparableAndComparableToint = dart.constFn(dart.fnType(core.int, [core.Comparable, core.Comparable])))(),
    MappedIterableOfString$dynamic: () => (T$0.MappedIterableOfString$dynamic = dart.constFn(_internal.MappedIterable$(core.String, dart.dynamic)))(),
    ObjectNTodynamic: () => (T$0.ObjectNTodynamic = dart.constFn(dart.fnType(dart.dynamic, [T$.ObjectN()])))(),
    MapOfString$dynamic: () => (T$0.MapOfString$dynamic = dart.constFn(core.Map$(core.String, dart.dynamic)))(),
    StringAnddynamicTovoid: () => (T$0.StringAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [core.String, dart.dynamic])))(),
    IdentityMapOfString$dynamic: () => (T$0.IdentityMapOfString$dynamic = dart.constFn(_js_helper.IdentityMap$(core.String, dart.dynamic)))(),
    ListOfint: () => (T$0.ListOfint = dart.constFn(core.List$(core.int)))(),
    StringBufferAndStringToStringBuffer: () => (T$0.StringBufferAndStringToStringBuffer = dart.constFn(dart.fnType(core.StringBuffer, [core.StringBuffer, core.String])))(),
    StringBufferToString: () => (T$0.StringBufferToString = dart.constFn(dart.fnType(core.String, [core.StringBuffer])))(),
    IdentityMapOfString$Encoding: () => (T$0.IdentityMapOfString$Encoding = dart.constFn(_js_helper.IdentityMap$(core.String, convert.Encoding)))(),
    SinkOfListOfint: () => (T$0.SinkOfListOfint = dart.constFn(core.Sink$(T$0.ListOfint())))(),
    StreamOfString: () => (T$0.StreamOfString = dart.constFn(async.Stream$(core.String)))(),
    StreamOfListOfint: () => (T$0.StreamOfListOfint = dart.constFn(async.Stream$(T$0.ListOfint())))(),
    SinkOfString: () => (T$0.SinkOfString = dart.constFn(core.Sink$(core.String)))(),
    intL: () => (T$0.intL = dart.constFn(dart.legacy(core.int)))(),
    StreamOfObjectN: () => (T$0.StreamOfObjectN = dart.constFn(async.Stream$(T$.ObjectN())))(),
    JSArrayOfListOfint: () => (T$0.JSArrayOfListOfint = dart.constFn(_interceptors.JSArray$(T$0.ListOfint())))(),
    Uint8ListAndintAndintTovoid: () => (T$0.Uint8ListAndintAndintTovoid = dart.constFn(dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int])))(),
    SyncIterableOfString: () => (T$0.SyncIterableOfString = dart.constFn(_js_helper.SyncIterable$(core.String)))(),
    EventSinkOfString: () => (T$0.EventSinkOfString = dart.constFn(async.EventSink$(core.String)))(),
    EventSinkOfStringTo_LineSplitterEventSink: () => (T$0.EventSinkOfStringTo_LineSplitterEventSink = dart.constFn(dart.fnType(convert._LineSplitterEventSink, [T$0.EventSinkOfString()])))(),
    VoidToObjectN: () => (T$0.VoidToObjectN = dart.constFn(dart.fnType(T$.ObjectN(), [])))(),
    IdentityMapOfString$_FakeUserTag: () => (T$0.IdentityMapOfString$_FakeUserTag = dart.constFn(_js_helper.IdentityMap$(core.String, developer._FakeUserTag)))(),
    LinkedMapOfString$Metric: () => (T$0.LinkedMapOfString$Metric = dart.constFn(_js_helper.LinkedMap$(core.String, developer.Metric)))(),
    UriN: () => (T$0.UriN = dart.constFn(dart.nullable(core.Uri)))(),
    CompleterOfUriN: () => (T$0.CompleterOfUriN = dart.constFn(async.Completer$(T$0.UriN())))(),
    UriNTovoid: () => (T$0.UriNTovoid = dart.constFn(dart.fnType(dart.void, [T$0.UriN()])))(),
    CompleterOfUri: () => (T$0.CompleterOfUri = dart.constFn(async.Completer$(core.Uri)))(),
    UriTovoid: () => (T$0.UriTovoid = dart.constFn(dart.fnType(dart.void, [core.Uri])))(),
    _SyncBlockN: () => (T$0._SyncBlockN = dart.constFn(dart.nullable(developer._SyncBlock)))(),
    JSArrayOf_SyncBlockN: () => (T$0.JSArrayOf_SyncBlockN = dart.constFn(_interceptors.JSArray$(T$0._SyncBlockN())))(),
    JSArrayOf_AsyncBlock: () => (T$0.JSArrayOf_AsyncBlock = dart.constFn(_interceptors.JSArray$(developer._AsyncBlock)))(),
    LinkedMapOfObjectN$ObjectN: () => (T$0.LinkedMapOfObjectN$ObjectN = dart.constFn(_js_helper.LinkedMap$(T$.ObjectN(), T$.ObjectN())))(),
    FutureOfServiceExtensionResponse: () => (T$0.FutureOfServiceExtensionResponse = dart.constFn(async.Future$(developer.ServiceExtensionResponse)))(),
    MapOfString$String: () => (T$0.MapOfString$String = dart.constFn(core.Map$(core.String, core.String)))(),
    StringAndMapOfString$StringToFutureOfServiceExtensionResponse: () => (T$0.StringAndMapOfString$StringToFutureOfServiceExtensionResponse = dart.constFn(dart.fnType(T$0.FutureOfServiceExtensionResponse(), [core.String, T$0.MapOfString$String()])))(),
    IdentityMapOfString$StringAndMapOfString$StringToFutureOfServiceExtensionResponse: () => (T$0.IdentityMapOfString$StringAndMapOfString$StringToFutureOfServiceExtensionResponse = dart.constFn(_js_helper.IdentityMap$(core.String, T$0.StringAndMapOfString$StringToFutureOfServiceExtensionResponse())))(),
    VoidToUint8List: () => (T$0.VoidToUint8List = dart.constFn(dart.fnType(typed_data.Uint8List, [])))(),
    Uint8ListTodynamic: () => (T$0.Uint8ListTodynamic = dart.constFn(dart.fnType(dart.dynamic, [typed_data.Uint8List])))(),
    FutureOfDirectory: () => (T$0.FutureOfDirectory = dart.constFn(async.Future$(io.Directory)))(),
    DirectoryToFutureOfDirectory: () => (T$0.DirectoryToFutureOfDirectory = dart.constFn(dart.fnType(T$0.FutureOfDirectory(), [io.Directory])))(),
    FutureOrOfDirectory: () => (T$0.FutureOrOfDirectory = dart.constFn(async.FutureOr$(io.Directory)))(),
    boolToFutureOrOfDirectory: () => (T$0.boolToFutureOrOfDirectory = dart.constFn(dart.fnType(T$0.FutureOrOfDirectory(), [core.bool])))(),
    dynamicTo_Directory: () => (T$0.dynamicTo_Directory = dart.constFn(dart.fnType(io._Directory, [dart.dynamic])))(),
    dynamicToDirectory: () => (T$0.dynamicToDirectory = dart.constFn(dart.fnType(io.Directory, [dart.dynamic])))(),
    JSArrayOfFileSystemEntity: () => (T$0.JSArrayOfFileSystemEntity = dart.constFn(_interceptors.JSArray$(io.FileSystemEntity)))(),
    FutureOrOfString: () => (T$0.FutureOrOfString = dart.constFn(async.FutureOr$(core.String)))(),
    dynamicToFutureOrOfString: () => (T$0.dynamicToFutureOrOfString = dart.constFn(dart.fnType(T$0.FutureOrOfString(), [dart.dynamic])))(),
    dynamicToFutureOrOfbool: () => (T$0.dynamicToFutureOrOfbool = dart.constFn(dart.fnType(T$.FutureOrOfbool(), [dart.dynamic])))(),
    FileSystemEntityTypeTobool: () => (T$0.FileSystemEntityTypeTobool = dart.constFn(dart.fnType(core.bool, [io.FileSystemEntityType])))(),
    dynamicToFileSystemEntityType: () => (T$0.dynamicToFileSystemEntityType = dart.constFn(dart.fnType(io.FileSystemEntityType, [dart.dynamic])))(),
    StreamControllerOfFileSystemEntity: () => (T$0.StreamControllerOfFileSystemEntity = dart.constFn(async.StreamController$(io.FileSystemEntity)))(),
    StreamControllerOfUint8List: () => (T$0.StreamControllerOfUint8List = dart.constFn(async.StreamController$(typed_data.Uint8List)))(),
    VoidToFuture: () => (T$0.VoidToFuture = dart.constFn(dart.fnType(async.Future, [])))(),
    Uint8ListToNull: () => (T$0.Uint8ListToNull = dart.constFn(dart.fnType(core.Null, [typed_data.Uint8List])))(),
    RandomAccessFileTovoid: () => (T$0.RandomAccessFileTovoid = dart.constFn(dart.fnType(dart.void, [io.RandomAccessFile])))(),
    FutureOfRandomAccessFile: () => (T$0.FutureOfRandomAccessFile = dart.constFn(async.Future$(io.RandomAccessFile)))(),
    FileN: () => (T$0.FileN = dart.constFn(dart.nullable(io.File)))(),
    CompleterOfFileN: () => (T$0.CompleterOfFileN = dart.constFn(async.Completer$(T$0.FileN())))(),
    StreamSubscriptionOfListOfint: () => (T$0.StreamSubscriptionOfListOfint = dart.constFn(async.StreamSubscription$(T$0.ListOfint())))(),
    VoidToStreamSubscriptionOfListOfint: () => (T$0.VoidToStreamSubscriptionOfListOfint = dart.constFn(dart.fnType(T$0.StreamSubscriptionOfListOfint(), [])))(),
    StreamSubscriptionOfListOfintTodynamic: () => (T$0.StreamSubscriptionOfListOfintTodynamic = dart.constFn(dart.fnType(dart.dynamic, [T$0.StreamSubscriptionOfListOfint()])))(),
    dynamicAndStackTraceTovoid: () => (T$0.dynamicAndStackTraceTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic, core.StackTrace])))(),
    ListOfintTovoid: () => (T$0.ListOfintTovoid = dart.constFn(dart.fnType(dart.void, [T$0.ListOfint()])))(),
    RandomAccessFileToNull: () => (T$0.RandomAccessFileToNull = dart.constFn(dart.fnType(core.Null, [io.RandomAccessFile])))(),
    RandomAccessFileToFutureOfvoid: () => (T$0.RandomAccessFileToFutureOfvoid = dart.constFn(dart.fnType(T$.FutureOfvoid(), [io.RandomAccessFile])))(),
    voidToFileN: () => (T$0.voidToFileN = dart.constFn(dart.fnType(T$0.FileN(), [dart.void])))(),
    DirectoryN: () => (T$0.DirectoryN = dart.constFn(dart.nullable(io.Directory)))(),
    DirectoryNToFuture: () => (T$0.DirectoryNToFuture = dart.constFn(dart.fnType(async.Future, [T$0.DirectoryN()])))(),
    dynamicTo_File: () => (T$0.dynamicTo_File = dart.constFn(dart.fnType(io._File, [dart.dynamic])))(),
    FileSystemEntityTo_File: () => (T$0.FileSystemEntityTo_File = dart.constFn(dart.fnType(io._File, [io.FileSystemEntity])))(),
    dynamicToFile: () => (T$0.dynamicToFile = dart.constFn(dart.fnType(io.File, [dart.dynamic])))(),
    dynamicTo_RandomAccessFile: () => (T$0.dynamicTo_RandomAccessFile = dart.constFn(dart.fnType(io._RandomAccessFile, [dart.dynamic])))(),
    FutureOrOfint: () => (T$0.FutureOrOfint = dart.constFn(async.FutureOr$(core.int)))(),
    dynamicToFutureOrOfint: () => (T$0.dynamicToFutureOrOfint = dart.constFn(dart.fnType(T$0.FutureOrOfint(), [dart.dynamic])))(),
    dynamicToDateTime: () => (T$0.dynamicToDateTime = dart.constFn(dart.fnType(core.DateTime, [dart.dynamic])))(),
    CompleterOfUint8List: () => (T$0.CompleterOfUint8List = dart.constFn(async.Completer$(typed_data.Uint8List)))(),
    FutureOfUint8List: () => (T$0.FutureOfUint8List = dart.constFn(async.Future$(typed_data.Uint8List)))(),
    RandomAccessFileToFutureOfUint8List: () => (T$0.RandomAccessFileToFutureOfUint8List = dart.constFn(dart.fnType(T$0.FutureOfUint8List(), [io.RandomAccessFile])))(),
    intToFutureOfUint8List: () => (T$0.intToFutureOfUint8List = dart.constFn(dart.fnType(T$0.FutureOfUint8List(), [core.int])))(),
    FutureOfString: () => (T$0.FutureOfString = dart.constFn(async.Future$(core.String)))(),
    Uint8ListToFutureOrOfString: () => (T$0.Uint8ListToFutureOrOfString = dart.constFn(dart.fnType(T$0.FutureOrOfString(), [typed_data.Uint8List])))(),
    RandomAccessFileTo_File: () => (T$0.RandomAccessFileTo_File = dart.constFn(dart.fnType(io._File, [io.RandomAccessFile])))(),
    FutureOrOfFile: () => (T$0.FutureOrOfFile = dart.constFn(async.FutureOr$(io.File)))(),
    RandomAccessFileToFutureOrOfFile: () => (T$0.RandomAccessFileToFutureOrOfFile = dart.constFn(dart.fnType(T$0.FutureOrOfFile(), [io.RandomAccessFile])))(),
    FutureOfFile: () => (T$0.FutureOfFile = dart.constFn(async.Future$(io.File)))(),
    RandomAccessFileToFutureOfFile: () => (T$0.RandomAccessFileToFutureOfFile = dart.constFn(dart.fnType(T$0.FutureOfFile(), [io.RandomAccessFile])))(),
    dynamicAnddynamicToFutureOfServiceExtensionResponse: () => (T$0.dynamicAnddynamicToFutureOfServiceExtensionResponse = dart.constFn(dart.fnType(T$0.FutureOfServiceExtensionResponse(), [dart.dynamic, dart.dynamic])))(),
    dynamicToUint8List: () => (T$0.dynamicToUint8List = dart.constFn(dart.fnType(typed_data.Uint8List, [dart.dynamic])))(),
    FutureOfint: () => (T$0.FutureOfint = dart.constFn(async.Future$(core.int)))(),
    dynamicToint: () => (T$0.dynamicToint = dart.constFn(dart.fnType(core.int, [dart.dynamic])))(),
    FileSystemEntityTypeL: () => (T$0.FileSystemEntityTypeL = dart.constFn(dart.legacy(io.FileSystemEntityType)))(),
    dynamicToFileStat: () => (T$0.dynamicToFileStat = dart.constFn(dart.fnType(io.FileStat, [dart.dynamic])))(),
    ListOfMapOfString$dynamic: () => (T$0.ListOfMapOfString$dynamic = dart.constFn(core.List$(T$0.MapOfString$dynamic())))(),
    _FileResourceInfoToMapOfString$dynamic: () => (T$0._FileResourceInfoToMapOfString$dynamic = dart.constFn(dart.fnType(T$0.MapOfString$dynamic(), [io._FileResourceInfo])))(),
    IdentityMapOfint$_FileResourceInfo: () => (T$0.IdentityMapOfint$_FileResourceInfo = dart.constFn(_js_helper.IdentityMap$(core.int, io._FileResourceInfo)))(),
    _SpawnedProcessResourceInfoToMapOfString$dynamic: () => (T$0._SpawnedProcessResourceInfoToMapOfString$dynamic = dart.constFn(dart.fnType(T$0.MapOfString$dynamic(), [io._SpawnedProcessResourceInfo])))(),
    LinkedMapOfint$_SpawnedProcessResourceInfo: () => (T$0.LinkedMapOfint$_SpawnedProcessResourceInfo = dart.constFn(_js_helper.LinkedMap$(core.int, io._SpawnedProcessResourceInfo)))(),
    dynamicTo_Link: () => (T$0.dynamicTo_Link = dart.constFn(dart.fnType(io._Link, [dart.dynamic])))(),
    FutureOfLink: () => (T$0.FutureOfLink = dart.constFn(async.Future$(io.Link)))(),
    FileSystemEntityToFutureOfLink: () => (T$0.FileSystemEntityToFutureOfLink = dart.constFn(dart.fnType(T$0.FutureOfLink(), [io.FileSystemEntity])))(),
    FileSystemEntityTo_Link: () => (T$0.FileSystemEntityTo_Link = dart.constFn(dart.fnType(io._Link, [io.FileSystemEntity])))(),
    dynamicToLink: () => (T$0.dynamicToLink = dart.constFn(dart.fnType(io.Link, [dart.dynamic])))(),
    _SocketStatisticToMapOfString$dynamic: () => (T$0._SocketStatisticToMapOfString$dynamic = dart.constFn(dart.fnType(T$0.MapOfString$dynamic(), [io._SocketStatistic])))(),
    IdentityMapOfint$_SocketStatistic: () => (T$0.IdentityMapOfint$_SocketStatistic = dart.constFn(_js_helper.IdentityMap$(core.int, io._SocketStatistic)))(),
    _SocketProfileTypeL: () => (T$0._SocketProfileTypeL = dart.constFn(dart.legacy(io._SocketProfileType)))(),
    IOOverridesN: () => (T$0.IOOverridesN = dart.constFn(dart.nullable(io.IOOverrides)))(),
    _CaseInsensitiveStringMapOfString: () => (T$0._CaseInsensitiveStringMapOfString = dart.constFn(io._CaseInsensitiveStringMap$(core.String)))(),
    LinkedMapOfString$String: () => (T$0.LinkedMapOfString$String = dart.constFn(_js_helper.LinkedMap$(core.String, core.String)))(),
    UnmodifiableMapViewOfString$String: () => (T$0.UnmodifiableMapViewOfString$String = dart.constFn(collection.UnmodifiableMapView$(core.String, core.String)))(),
    ProcessStartModeL: () => (T$0.ProcessStartModeL = dart.constFn(dart.legacy(io.ProcessStartMode)))(),
    RawSecureServerSocketToSecureServerSocket: () => (T$0.RawSecureServerSocketToSecureServerSocket = dart.constFn(dart.fnType(io.SecureServerSocket, [io.RawSecureServerSocket])))(),
    RawSecureSocketToSecureSocket: () => (T$0.RawSecureSocketToSecureSocket = dart.constFn(dart.fnType(io.SecureSocket, [io.RawSecureSocket])))(),
    ConnectionTaskOfSecureSocket: () => (T$0.ConnectionTaskOfSecureSocket = dart.constFn(io.ConnectionTask$(io.SecureSocket)))(),
    ConnectionTaskOfRawSecureSocket: () => (T$0.ConnectionTaskOfRawSecureSocket = dart.constFn(io.ConnectionTask$(io.RawSecureSocket)))(),
    ConnectionTaskOfRawSecureSocketToConnectionTaskOfSecureSocket: () => (T$0.ConnectionTaskOfRawSecureSocketToConnectionTaskOfSecureSocket = dart.constFn(dart.fnType(T$0.ConnectionTaskOfSecureSocket(), [T$0.ConnectionTaskOfRawSecureSocket()])))(),
    StreamSubscriptionOfRawSocketEvent: () => (T$0.StreamSubscriptionOfRawSocketEvent = dart.constFn(async.StreamSubscription$(io.RawSocketEvent)))(),
    StreamSubscriptionNOfRawSocketEvent: () => (T$0.StreamSubscriptionNOfRawSocketEvent = dart.constFn(dart.nullable(T$0.StreamSubscriptionOfRawSocketEvent())))(),
    FutureOfRawSecureSocket: () => (T$0.FutureOfRawSecureSocket = dart.constFn(async.Future$(io.RawSecureSocket)))(),
    dynamicToFutureOfRawSecureSocket: () => (T$0.dynamicToFutureOfRawSecureSocket = dart.constFn(dart.fnType(T$0.FutureOfRawSecureSocket(), [dart.dynamic])))(),
    StreamControllerOfRawSecureSocket: () => (T$0.StreamControllerOfRawSecureSocket = dart.constFn(async.StreamController$(io.RawSecureSocket)))(),
    RawServerSocketToRawSecureServerSocket: () => (T$0.RawServerSocketToRawSecureServerSocket = dart.constFn(dart.fnType(io.RawSecureServerSocket, [io.RawServerSocket])))(),
    RawSecureSocketToNull: () => (T$0.RawSecureSocketToNull = dart.constFn(dart.fnType(core.Null, [io.RawSecureSocket])))(),
    RawSocketToFutureOfRawSecureSocket: () => (T$0.RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.fnType(T$0.FutureOfRawSecureSocket(), [io.RawSocket])))(),
    ConnectionTaskOfRawSocket: () => (T$0.ConnectionTaskOfRawSocket = dart.constFn(io.ConnectionTask$(io.RawSocket)))(),
    ConnectionTaskOfRawSocketToConnectionTaskOfRawSecureSocket: () => (T$0.ConnectionTaskOfRawSocketToConnectionTaskOfRawSecureSocket = dart.constFn(dart.fnType(T$0.ConnectionTaskOfRawSecureSocket(), [T$0.ConnectionTaskOfRawSocket()])))(),
    CompleterOf_RawSecureSocket: () => (T$0.CompleterOf_RawSecureSocket = dart.constFn(async.Completer$(io._RawSecureSocket)))(),
    StreamControllerOfRawSocketEvent: () => (T$0.StreamControllerOfRawSocketEvent = dart.constFn(async.StreamController$(io.RawSocketEvent)))(),
    CompleterOfRawSecureSocket: () => (T$0.CompleterOfRawSecureSocket = dart.constFn(async.Completer$(io.RawSecureSocket)))(),
    intToint: () => (T$0.intToint = dart.constFn(dart.fnType(core.int, [core.int])))(),
    ListOfintAndStringTovoid: () => (T$0.ListOfintAndStringTovoid = dart.constFn(dart.fnType(dart.void, [T$0.ListOfint(), core.String])))(),
    _RawSocketOptionsL: () => (T$0._RawSocketOptionsL = dart.constFn(dart.legacy(io._RawSocketOptions)))(),
    JSArrayOf_DomainNetworkPolicy: () => (T$0.JSArrayOf_DomainNetworkPolicy = dart.constFn(_interceptors.JSArray$(io._DomainNetworkPolicy)))(),
    StdoutN: () => (T$0.StdoutN = dart.constFn(dart.nullable(io.Stdout)))(),
    Fn__ToR: () => (T$0.Fn__ToR = dart.constFn(dart.gFnType(R => [R, [dart.fnType(R, [])], {onError: T$.FunctionN(), zoneSpecification: T$.ZoneSpecificationN(), zoneValues: T$.MapNOfObjectN$ObjectN()}, {}], R => [T$.ObjectN()])))(),
    LinkedMapOfSymbol$dynamic: () => (T$0.LinkedMapOfSymbol$dynamic = dart.constFn(_js_helper.LinkedMap$(core.Symbol, dart.dynamic)))(),
    ObjectToObject: () => (T$0.ObjectToObject = dart.constFn(dart.fnType(core.Object, [core.Object])))(),
    ObjectTo_DartObject: () => (T$0.ObjectTo_DartObject = dart.constFn(dart.fnType(js._DartObject, [core.Object])))(),
    ObjectToJsObject: () => (T$0.ObjectToJsObject = dart.constFn(dart.fnType(js.JsObject, [core.Object])))(),
    PointOfnum: () => (T$0.PointOfnum = dart.constFn(math.Point$(core.num)))(),
    RectangleOfnum: () => (T$0.RectangleOfnum = dart.constFn(math.Rectangle$(core.num)))(),
    EventL: () => (T$0.EventL = dart.constFn(dart.legacy(html$.Event)))(),
    EventStreamProviderOfEventL: () => (T$0.EventStreamProviderOfEventL = dart.constFn(html$.EventStreamProvider$(T$0.EventL())))(),
    VersionChangeEventL: () => (T$0.VersionChangeEventL = dart.constFn(dart.legacy(indexed_db.VersionChangeEvent)))(),
    EventStreamProviderOfVersionChangeEventL: () => (T$0.EventStreamProviderOfVersionChangeEventL = dart.constFn(html$.EventStreamProvider$(T$0.VersionChangeEventL())))(),
    FutureOfDatabase: () => (T$0.FutureOfDatabase = dart.constFn(async.Future$(indexed_db.Database)))(),
    CompleterOfIdbFactory: () => (T$0.CompleterOfIdbFactory = dart.constFn(async.Completer$(indexed_db.IdbFactory)))(),
    EventTovoid: () => (T$0.EventTovoid = dart.constFn(dart.fnType(dart.void, [html$.Event])))(),
    FutureOfIdbFactory: () => (T$0.FutureOfIdbFactory = dart.constFn(async.Future$(indexed_db.IdbFactory)))(),
    ObserverChangesTovoid: () => (T$0.ObserverChangesTovoid = dart.constFn(dart.fnType(dart.void, [indexed_db.ObserverChanges])))(),
    CompleterOfDatabase: () => (T$0.CompleterOfDatabase = dart.constFn(async.Completer$(indexed_db.Database)))(),
    EventToNull: () => (T$0.EventToNull = dart.constFn(dart.fnType(core.Null, [html$.Event])))(),
    ElementN: () => (T$0.ElementN = dart.constFn(dart.nullable(html$.Element)))(),
    JSArrayOfEventTarget: () => (T$0.JSArrayOfEventTarget = dart.constFn(_interceptors.JSArray$(html$.EventTarget)))(),
    NodeTobool: () => (T$0.NodeTobool = dart.constFn(dart.fnType(core.bool, [html$.Node])))(),
    CompleterOfScrollState: () => (T$0.CompleterOfScrollState = dart.constFn(async.Completer$(html$.ScrollState)))(),
    ScrollStateTovoid: () => (T$0.ScrollStateTovoid = dart.constFn(dart.fnType(dart.void, [html$.ScrollState])))(),
    MapOfString$dynamicTobool: () => (T$0.MapOfString$dynamicTobool = dart.constFn(dart.fnType(core.bool, [T$0.MapOfString$dynamic()])))(),
    MapN: () => (T$0.MapN = dart.constFn(dart.nullable(core.Map)))(),
    ObjectNToNvoid: () => (T$0.ObjectNToNvoid = dart.constFn(dart.nullable(T$.ObjectNTovoid())))(),
    MapNAndFnTodynamic: () => (T$0.MapNAndFnTodynamic = dart.constFn(dart.fnType(dart.dynamic, [T$0.MapN()], [T$0.ObjectNToNvoid()])))(),
    WheelEventL: () => (T$0.WheelEventL = dart.constFn(dart.legacy(html$.WheelEvent)))(),
    _CustomEventStreamProviderOfWheelEventL: () => (T$0._CustomEventStreamProviderOfWheelEventL = dart.constFn(html$._CustomEventStreamProvider$(T$0.WheelEventL())))(),
    EventTargetToString: () => (T$0.EventTargetToString = dart.constFn(dart.fnType(core.String, [html$.EventTarget])))(),
    TransitionEventL: () => (T$0.TransitionEventL = dart.constFn(dart.legacy(html$.TransitionEvent)))(),
    _CustomEventStreamProviderOfTransitionEventL: () => (T$0._CustomEventStreamProviderOfTransitionEventL = dart.constFn(html$._CustomEventStreamProvider$(T$0.TransitionEventL())))(),
    MouseEventL: () => (T$0.MouseEventL = dart.constFn(dart.legacy(html$.MouseEvent)))(),
    EventStreamProviderOfMouseEventL: () => (T$0.EventStreamProviderOfMouseEventL = dart.constFn(html$.EventStreamProvider$(T$0.MouseEventL())))(),
    ClipboardEventL: () => (T$0.ClipboardEventL = dart.constFn(dart.legacy(html$.ClipboardEvent)))(),
    EventStreamProviderOfClipboardEventL: () => (T$0.EventStreamProviderOfClipboardEventL = dart.constFn(html$.EventStreamProvider$(T$0.ClipboardEventL())))(),
    KeyboardEventL: () => (T$0.KeyboardEventL = dart.constFn(dart.legacy(html$.KeyboardEvent)))(),
    EventStreamProviderOfKeyboardEventL: () => (T$0.EventStreamProviderOfKeyboardEventL = dart.constFn(html$.EventStreamProvider$(T$0.KeyboardEventL())))(),
    TouchEventL: () => (T$0.TouchEventL = dart.constFn(dart.legacy(html$.TouchEvent)))(),
    EventStreamProviderOfTouchEventL: () => (T$0.EventStreamProviderOfTouchEventL = dart.constFn(html$.EventStreamProvider$(T$0.TouchEventL())))(),
    EventStreamProviderOfWheelEventL: () => (T$0.EventStreamProviderOfWheelEventL = dart.constFn(html$.EventStreamProvider$(T$0.WheelEventL())))(),
    ProgressEventL: () => (T$0.ProgressEventL = dart.constFn(dart.legacy(html$.ProgressEvent)))(),
    EventStreamProviderOfProgressEventL: () => (T$0.EventStreamProviderOfProgressEventL = dart.constFn(html$.EventStreamProvider$(T$0.ProgressEventL())))(),
    MessageEventL: () => (T$0.MessageEventL = dart.constFn(dart.legacy(html$.MessageEvent)))(),
    EventStreamProviderOfMessageEventL: () => (T$0.EventStreamProviderOfMessageEventL = dart.constFn(html$.EventStreamProvider$(T$0.MessageEventL())))(),
    PopStateEventL: () => (T$0.PopStateEventL = dart.constFn(dart.legacy(html$.PopStateEvent)))(),
    EventStreamProviderOfPopStateEventL: () => (T$0.EventStreamProviderOfPopStateEventL = dart.constFn(html$.EventStreamProvider$(T$0.PopStateEventL())))(),
    StorageEventL: () => (T$0.StorageEventL = dart.constFn(dart.legacy(html$.StorageEvent)))(),
    EventStreamProviderOfStorageEventL: () => (T$0.EventStreamProviderOfStorageEventL = dart.constFn(html$.EventStreamProvider$(T$0.StorageEventL())))(),
    CompleterOfBlob: () => (T$0.CompleterOfBlob = dart.constFn(async.Completer$(html$.Blob)))(),
    BlobN: () => (T$0.BlobN = dart.constFn(dart.nullable(html$.Blob)))(),
    BlobNTovoid: () => (T$0.BlobNTovoid = dart.constFn(dart.fnType(dart.void, [T$0.BlobN()])))(),
    ContextEventL: () => (T$0.ContextEventL = dart.constFn(dart.legacy(web_gl.ContextEvent)))(),
    EventStreamProviderOfContextEventL: () => (T$0.EventStreamProviderOfContextEventL = dart.constFn(html$.EventStreamProvider$(T$0.ContextEventL())))(),
    JSArrayOfnum: () => (T$0.JSArrayOfnum = dart.constFn(_interceptors.JSArray$(core.num)))(),
    dynamicToCssStyleDeclaration: () => (T$0.dynamicToCssStyleDeclaration = dart.constFn(dart.fnType(html$.CssStyleDeclaration, [dart.dynamic])))(),
    CssStyleDeclarationTovoid: () => (T$0.CssStyleDeclarationTovoid = dart.constFn(dart.fnType(dart.void, [html$.CssStyleDeclaration])))(),
    ListOfCssTransformComponent: () => (T$0.ListOfCssTransformComponent = dart.constFn(core.List$(html$.CssTransformComponent)))(),
    CompleterOfEntry: () => (T$0.CompleterOfEntry = dart.constFn(async.Completer$(html$.Entry)))(),
    EntryTovoid: () => (T$0.EntryTovoid = dart.constFn(dart.fnType(dart.void, [html$.Entry])))(),
    DomExceptionTovoid: () => (T$0.DomExceptionTovoid = dart.constFn(dart.fnType(dart.void, [html$.DomException])))(),
    CompleterOfMetadata: () => (T$0.CompleterOfMetadata = dart.constFn(async.Completer$(html$.Metadata)))(),
    MetadataTovoid: () => (T$0.MetadataTovoid = dart.constFn(dart.fnType(dart.void, [html$.Metadata])))(),
    ListOfEntry: () => (T$0.ListOfEntry = dart.constFn(core.List$(html$.Entry)))(),
    CompleterOfListOfEntry: () => (T$0.CompleterOfListOfEntry = dart.constFn(async.Completer$(T$0.ListOfEntry())))(),
    ListTovoid: () => (T$0.ListTovoid = dart.constFn(dart.fnType(dart.void, [core.List])))(),
    SecurityPolicyViolationEventL: () => (T$0.SecurityPolicyViolationEventL = dart.constFn(dart.legacy(html$.SecurityPolicyViolationEvent)))(),
    EventStreamProviderOfSecurityPolicyViolationEventL: () => (T$0.EventStreamProviderOfSecurityPolicyViolationEventL = dart.constFn(html$.EventStreamProvider$(T$0.SecurityPolicyViolationEventL())))(),
    IterableOfElement: () => (T$0.IterableOfElement = dart.constFn(core.Iterable$(html$.Element)))(),
    ListOfElement: () => (T$0.ListOfElement = dart.constFn(core.List$(html$.Element)))(),
    ElementTobool: () => (T$0.ElementTobool = dart.constFn(dart.fnType(core.bool, [html$.Element])))(),
    _EventStreamOfEvent: () => (T$0._EventStreamOfEvent = dart.constFn(html$._EventStream$(html$.Event)))(),
    _ElementEventStreamImplOfEvent: () => (T$0._ElementEventStreamImplOfEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.Event)))(),
    CompleterOfFileWriter: () => (T$0.CompleterOfFileWriter = dart.constFn(async.Completer$(html$.FileWriter)))(),
    FileWriterTovoid: () => (T$0.FileWriterTovoid = dart.constFn(dart.fnType(dart.void, [html$.FileWriter])))(),
    CompleterOfFile: () => (T$0.CompleterOfFile = dart.constFn(async.Completer$(html$.File)))(),
    FileN$1: () => (T$0.FileN$1 = dart.constFn(dart.nullable(html$.File)))(),
    FileNTovoid: () => (T$0.FileNTovoid = dart.constFn(dart.fnType(dart.void, [T$0.FileN$1()])))(),
    FontFaceSetLoadEventL: () => (T$0.FontFaceSetLoadEventL = dart.constFn(dart.legacy(html$.FontFaceSetLoadEvent)))(),
    EventStreamProviderOfFontFaceSetLoadEventL: () => (T$0.EventStreamProviderOfFontFaceSetLoadEventL = dart.constFn(html$.EventStreamProvider$(T$0.FontFaceSetLoadEventL())))(),
    CompleterOfGeoposition: () => (T$0.CompleterOfGeoposition = dart.constFn(async.Completer$(html$.Geoposition)))(),
    GeopositionTovoid: () => (T$0.GeopositionTovoid = dart.constFn(dart.fnType(dart.void, [html$.Geoposition])))(),
    PositionErrorTovoid: () => (T$0.PositionErrorTovoid = dart.constFn(dart.fnType(dart.void, [html$.PositionError])))(),
    StreamControllerOfGeoposition: () => (T$0.StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))(),
    _CustomEventStreamProviderOfEventL: () => (T$0._CustomEventStreamProviderOfEventL = dart.constFn(html$._CustomEventStreamProvider$(T$0.EventL())))(),
    HttpRequestToString: () => (T$0.HttpRequestToString = dart.constFn(dart.fnType(core.String, [html$.HttpRequest])))(),
    StringAndStringTovoid: () => (T$0.StringAndStringTovoid = dart.constFn(dart.fnType(dart.void, [core.String, core.String])))(),
    CompleterOfHttpRequest: () => (T$0.CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))(),
    ProgressEventTovoid: () => (T$0.ProgressEventTovoid = dart.constFn(dart.fnType(dart.void, [html$.ProgressEvent])))(),
    CompleterOfString: () => (T$0.CompleterOfString = dart.constFn(async.Completer$(core.String)))(),
    FutureOrNOfString: () => (T$0.FutureOrNOfString = dart.constFn(dart.nullable(T$0.FutureOrOfString())))(),
    ListAndIntersectionObserverTovoid: () => (T$0.ListAndIntersectionObserverTovoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.IntersectionObserver])))(),
    ListOfMediaStreamTrack: () => (T$0.ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))(),
    MessagePortL: () => (T$0.MessagePortL = dart.constFn(dart.legacy(html$.MessagePort)))(),
    MidiMessageEventL: () => (T$0.MidiMessageEventL = dart.constFn(dart.legacy(html$.MidiMessageEvent)))(),
    EventStreamProviderOfMidiMessageEventL: () => (T$0.EventStreamProviderOfMidiMessageEventL = dart.constFn(html$.EventStreamProvider$(T$0.MidiMessageEventL())))(),
    MapTobool: () => (T$0.MapTobool = dart.constFn(dart.fnType(core.bool, [core.Map])))(),
    JSArrayOfMap: () => (T$0.JSArrayOfMap = dart.constFn(_interceptors.JSArray$(core.Map)))(),
    ListAndMutationObserverTovoid: () => (T$0.ListAndMutationObserverTovoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.MutationObserver])))(),
    ListAndMutationObserverToNvoid: () => (T$0.ListAndMutationObserverToNvoid = dart.constFn(dart.nullable(T$0.ListAndMutationObserverTovoid())))(),
    boolL: () => (T$0.boolL = dart.constFn(dart.legacy(core.bool)))(),
    CompleterOfMediaStream: () => (T$0.CompleterOfMediaStream = dart.constFn(async.Completer$(html$.MediaStream)))(),
    MediaStreamTovoid: () => (T$0.MediaStreamTovoid = dart.constFn(dart.fnType(dart.void, [html$.MediaStream])))(),
    NavigatorUserMediaErrorTovoid: () => (T$0.NavigatorUserMediaErrorTovoid = dart.constFn(dart.fnType(dart.void, [html$.NavigatorUserMediaError])))(),
    IterableOfNode: () => (T$0.IterableOfNode = dart.constFn(core.Iterable$(html$.Node)))(),
    NodeN$1: () => (T$0.NodeN$1 = dart.constFn(dart.nullable(html$.Node)))(),
    PerformanceObserverEntryListAndPerformanceObserverTovoid: () => (T$0.PerformanceObserverEntryListAndPerformanceObserverTovoid = dart.constFn(dart.fnType(dart.void, [html$.PerformanceObserverEntryList, html$.PerformanceObserver])))(),
    ListAndReportingObserverTovoid: () => (T$0.ListAndReportingObserverTovoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.ReportingObserver])))(),
    ListAndResizeObserverTovoid: () => (T$0.ListAndResizeObserverTovoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.ResizeObserver])))(),
    RtcDtmfToneChangeEventL: () => (T$0.RtcDtmfToneChangeEventL = dart.constFn(dart.legacy(html$.RtcDtmfToneChangeEvent)))(),
    EventStreamProviderOfRtcDtmfToneChangeEventL: () => (T$0.EventStreamProviderOfRtcDtmfToneChangeEventL = dart.constFn(html$.EventStreamProvider$(T$0.RtcDtmfToneChangeEventL())))(),
    JSArrayOfMapOfString$String: () => (T$0.JSArrayOfMapOfString$String = dart.constFn(_interceptors.JSArray$(T$0.MapOfString$String())))(),
    CompleterOfRtcStatsResponse: () => (T$0.CompleterOfRtcStatsResponse = dart.constFn(async.Completer$(html$.RtcStatsResponse)))(),
    RtcStatsResponseTovoid: () => (T$0.RtcStatsResponseTovoid = dart.constFn(dart.fnType(dart.void, [html$.RtcStatsResponse])))(),
    MediaStreamEventL: () => (T$0.MediaStreamEventL = dart.constFn(dart.legacy(html$.MediaStreamEvent)))(),
    EventStreamProviderOfMediaStreamEventL: () => (T$0.EventStreamProviderOfMediaStreamEventL = dart.constFn(html$.EventStreamProvider$(T$0.MediaStreamEventL())))(),
    RtcDataChannelEventL: () => (T$0.RtcDataChannelEventL = dart.constFn(dart.legacy(html$.RtcDataChannelEvent)))(),
    EventStreamProviderOfRtcDataChannelEventL: () => (T$0.EventStreamProviderOfRtcDataChannelEventL = dart.constFn(html$.EventStreamProvider$(T$0.RtcDataChannelEventL())))(),
    RtcPeerConnectionIceEventL: () => (T$0.RtcPeerConnectionIceEventL = dart.constFn(dart.legacy(html$.RtcPeerConnectionIceEvent)))(),
    EventStreamProviderOfRtcPeerConnectionIceEventL: () => (T$0.EventStreamProviderOfRtcPeerConnectionIceEventL = dart.constFn(html$.EventStreamProvider$(T$0.RtcPeerConnectionIceEventL())))(),
    RtcTrackEventL: () => (T$0.RtcTrackEventL = dart.constFn(dart.legacy(html$.RtcTrackEvent)))(),
    EventStreamProviderOfRtcTrackEventL: () => (T$0.EventStreamProviderOfRtcTrackEventL = dart.constFn(html$.EventStreamProvider$(T$0.RtcTrackEventL())))(),
    UnmodifiableListViewOfOptionElement: () => (T$0.UnmodifiableListViewOfOptionElement = dart.constFn(collection.UnmodifiableListView$(html$.OptionElement)))(),
    IterableOfOptionElement: () => (T$0.IterableOfOptionElement = dart.constFn(core.Iterable$(html$.OptionElement)))(),
    OptionElementTobool: () => (T$0.OptionElementTobool = dart.constFn(dart.fnType(core.bool, [html$.OptionElement])))(),
    JSArrayOfOptionElement: () => (T$0.JSArrayOfOptionElement = dart.constFn(_interceptors.JSArray$(html$.OptionElement)))(),
    ForeignFetchEventL: () => (T$0.ForeignFetchEventL = dart.constFn(dart.legacy(html$.ForeignFetchEvent)))(),
    EventStreamProviderOfForeignFetchEventL: () => (T$0.EventStreamProviderOfForeignFetchEventL = dart.constFn(html$.EventStreamProvider$(T$0.ForeignFetchEventL())))(),
    SpeechRecognitionErrorL: () => (T$0.SpeechRecognitionErrorL = dart.constFn(dart.legacy(html$.SpeechRecognitionError)))(),
    EventStreamProviderOfSpeechRecognitionErrorL: () => (T$0.EventStreamProviderOfSpeechRecognitionErrorL = dart.constFn(html$.EventStreamProvider$(T$0.SpeechRecognitionErrorL())))(),
    SpeechRecognitionEventL: () => (T$0.SpeechRecognitionEventL = dart.constFn(dart.legacy(html$.SpeechRecognitionEvent)))(),
    EventStreamProviderOfSpeechRecognitionEventL: () => (T$0.EventStreamProviderOfSpeechRecognitionEventL = dart.constFn(html$.EventStreamProvider$(T$0.SpeechRecognitionEventL())))(),
    SpeechSynthesisEventL: () => (T$0.SpeechSynthesisEventL = dart.constFn(dart.legacy(html$.SpeechSynthesisEvent)))(),
    EventStreamProviderOfSpeechSynthesisEventL: () => (T$0.EventStreamProviderOfSpeechSynthesisEventL = dart.constFn(html$.EventStreamProvider$(T$0.SpeechSynthesisEventL())))(),
    _WrappedListOfTableSectionElement: () => (T$0._WrappedListOfTableSectionElement = dart.constFn(html$._WrappedList$(html$.TableSectionElement)))(),
    _WrappedListOfTableRowElement: () => (T$0._WrappedListOfTableRowElement = dart.constFn(html$._WrappedList$(html$.TableRowElement)))(),
    _WrappedListOfTableCellElement: () => (T$0._WrappedListOfTableCellElement = dart.constFn(html$._WrappedList$(html$.TableCellElement)))(),
    TrackEventL: () => (T$0.TrackEventL = dart.constFn(dart.legacy(html$.TrackEvent)))(),
    EventStreamProviderOfTrackEventL: () => (T$0.EventStreamProviderOfTrackEventL = dart.constFn(html$.EventStreamProvider$(T$0.TrackEventL())))(),
    CloseEventL: () => (T$0.CloseEventL = dart.constFn(dart.legacy(html$.CloseEvent)))(),
    EventStreamProviderOfCloseEventL: () => (T$0.EventStreamProviderOfCloseEventL = dart.constFn(html$.EventStreamProvider$(T$0.CloseEventL())))(),
    CompleterOfnum: () => (T$0.CompleterOfnum = dart.constFn(async.Completer$(core.num)))(),
    numTovoid: () => (T$0.numTovoid = dart.constFn(dart.fnType(dart.void, [core.num])))(),
    IdleDeadlineTovoid: () => (T$0.IdleDeadlineTovoid = dart.constFn(dart.fnType(dart.void, [html$.IdleDeadline])))(),
    CompleterOfFileSystem: () => (T$0.CompleterOfFileSystem = dart.constFn(async.Completer$(html$.FileSystem)))(),
    FileSystemTovoid: () => (T$0.FileSystemTovoid = dart.constFn(dart.fnType(dart.void, [html$.FileSystem])))(),
    DeviceMotionEventL: () => (T$0.DeviceMotionEventL = dart.constFn(dart.legacy(html$.DeviceMotionEvent)))(),
    EventStreamProviderOfDeviceMotionEventL: () => (T$0.EventStreamProviderOfDeviceMotionEventL = dart.constFn(html$.EventStreamProvider$(T$0.DeviceMotionEventL())))(),
    DeviceOrientationEventL: () => (T$0.DeviceOrientationEventL = dart.constFn(dart.legacy(html$.DeviceOrientationEvent)))(),
    EventStreamProviderOfDeviceOrientationEventL: () => (T$0.EventStreamProviderOfDeviceOrientationEventL = dart.constFn(html$.EventStreamProvider$(T$0.DeviceOrientationEventL())))(),
    AnimationEventL: () => (T$0.AnimationEventL = dart.constFn(dart.legacy(html$.AnimationEvent)))(),
    EventStreamProviderOfAnimationEventL: () => (T$0.EventStreamProviderOfAnimationEventL = dart.constFn(html$.EventStreamProvider$(T$0.AnimationEventL())))(),
    ListOfNode: () => (T$0.ListOfNode = dart.constFn(core.List$(html$.Node)))(),
    _EventStreamOfBeforeUnloadEvent: () => (T$0._EventStreamOfBeforeUnloadEvent = dart.constFn(html$._EventStream$(html$.BeforeUnloadEvent)))(),
    StreamControllerOfBeforeUnloadEvent: () => (T$0.StreamControllerOfBeforeUnloadEvent = dart.constFn(async.StreamController$(html$.BeforeUnloadEvent)))(),
    BeforeUnloadEventTovoid: () => (T$0.BeforeUnloadEventTovoid = dart.constFn(dart.fnType(dart.void, [html$.BeforeUnloadEvent])))(),
    _ElementEventStreamImplOfBeforeUnloadEvent: () => (T$0._ElementEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.BeforeUnloadEvent)))(),
    _ElementListEventStreamImplOfBeforeUnloadEvent: () => (T$0._ElementListEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementListEventStreamImpl$(html$.BeforeUnloadEvent)))(),
    GamepadN: () => (T$0.GamepadN = dart.constFn(dart.nullable(html$.Gamepad)))(),
    ElementTovoid: () => (T$0.ElementTovoid = dart.constFn(dart.fnType(dart.void, [html$.Element])))(),
    ListOfCssClassSetImpl: () => (T$0.ListOfCssClassSetImpl = dart.constFn(core.List$(html_common.CssClassSetImpl)))(),
    ElementToCssClassSet: () => (T$0.ElementToCssClassSet = dart.constFn(dart.fnType(html$.CssClassSet, [html$.Element])))(),
    _IdentityHashSetOfString: () => (T$0._IdentityHashSetOfString = dart.constFn(collection._IdentityHashSet$(core.String)))(),
    CssClassSetImplTovoid: () => (T$0.CssClassSetImplTovoid = dart.constFn(dart.fnType(dart.void, [html_common.CssClassSetImpl])))(),
    boolAndCssClassSetImplTobool: () => (T$0.boolAndCssClassSetImplTobool = dart.constFn(dart.fnType(core.bool, [core.bool, html_common.CssClassSetImpl])))(),
    StringAndStringToString: () => (T$0.StringAndStringToString = dart.constFn(dart.fnType(core.String, [core.String, core.String])))(),
    SetOfString: () => (T$0.SetOfString = dart.constFn(core.Set$(core.String)))(),
    SetOfStringTobool: () => (T$0.SetOfStringTobool = dart.constFn(dart.fnType(core.bool, [T$0.SetOfString()])))(),
    IterableOfString: () => (T$0.IterableOfString = dart.constFn(core.Iterable$(core.String)))(),
    SetOfStringTovoid: () => (T$0.SetOfStringTovoid = dart.constFn(dart.fnType(dart.void, [T$0.SetOfString()])))(),
    VoidToNString: () => (T$0.VoidToNString = dart.constFn(dart.nullable(T$.VoidToString())))(),
    EventTargetN: () => (T$0.EventTargetN = dart.constFn(dart.nullable(html$.EventTarget)))(),
    ElementAndStringAndString__Tobool: () => (T$0.ElementAndStringAndString__Tobool = dart.constFn(dart.fnType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator])))(),
    LinkedHashSetOfString: () => (T$0.LinkedHashSetOfString = dart.constFn(collection.LinkedHashSet$(core.String)))(),
    IdentityMapOfString$Function: () => (T$0.IdentityMapOfString$Function = dart.constFn(_js_helper.IdentityMap$(core.String, core.Function)))(),
    JSArrayOfKeyEvent: () => (T$0.JSArrayOfKeyEvent = dart.constFn(_interceptors.JSArray$(html$.KeyEvent)))(),
    KeyEventTobool: () => (T$0.KeyEventTobool = dart.constFn(dart.fnType(core.bool, [html$.KeyEvent])))(),
    JSArrayOfNodeValidator: () => (T$0.JSArrayOfNodeValidator = dart.constFn(_interceptors.JSArray$(html$.NodeValidator)))(),
    NodeValidatorTobool: () => (T$0.NodeValidatorTobool = dart.constFn(dart.fnType(core.bool, [html$.NodeValidator])))(),
    NodeAndNodeToint: () => (T$0.NodeAndNodeToint = dart.constFn(dart.fnType(core.int, [html$.Node, html$.Node])))(),
    NodeAndNodeNTovoid: () => (T$0.NodeAndNodeNTovoid = dart.constFn(dart.fnType(dart.void, [html$.Node, T$0.NodeN$1()])))(),
    MapNOfString$dynamic: () => (T$0.MapNOfString$dynamic = dart.constFn(dart.nullable(T$0.MapOfString$dynamic())))(),
    dynamicToMapNOfString$dynamic: () => (T$0.dynamicToMapNOfString$dynamic = dart.constFn(dart.fnType(T$0.MapNOfString$dynamic(), [dart.dynamic])))(),
    TypeN: () => (T$0.TypeN = dart.constFn(dart.nullable(core.Type)))(),
    dynamicAnddynamicTodynamic: () => (T$0.dynamicAnddynamicTodynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])))(),
    NodeToElement: () => (T$0.NodeToElement = dart.constFn(dart.fnType(html$.Element, [html$.Node])))(),
    CompleterOfAudioBuffer: () => (T$0.CompleterOfAudioBuffer = dart.constFn(async.Completer$(web_audio.AudioBuffer)))(),
    AudioBufferTovoid: () => (T$0.AudioBufferTovoid = dart.constFn(dart.fnType(dart.void, [web_audio.AudioBuffer])))(),
    AudioProcessingEventL: () => (T$0.AudioProcessingEventL = dart.constFn(dart.legacy(web_audio.AudioProcessingEvent)))(),
    EventStreamProviderOfAudioProcessingEventL: () => (T$0.EventStreamProviderOfAudioProcessingEventL = dart.constFn(html$.EventStreamProvider$(T$0.AudioProcessingEventL())))(),
    TypedDataN: () => (T$0.TypedDataN = dart.constFn(dart.nullable(typed_data.TypedData)))(),
    CompleterOfSqlTransaction: () => (T$0.CompleterOfSqlTransaction = dart.constFn(async.Completer$(web_sql.SqlTransaction)))(),
    SqlTransactionTovoid: () => (T$0.SqlTransactionTovoid = dart.constFn(dart.fnType(dart.void, [web_sql.SqlTransaction])))(),
    SqlErrorTovoid: () => (T$0.SqlErrorTovoid = dart.constFn(dart.fnType(dart.void, [web_sql.SqlError])))(),
    CompleterOfSqlResultSet: () => (T$0.CompleterOfSqlResultSet = dart.constFn(async.Completer$(web_sql.SqlResultSet)))(),
    SqlTransactionAndSqlResultSetTovoid: () => (T$0.SqlTransactionAndSqlResultSetTovoid = dart.constFn(dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlResultSet])))(),
    SqlTransactionAndSqlErrorTovoid: () => (T$0.SqlTransactionAndSqlErrorTovoid = dart.constFn(dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlError])))(),
    intAndintToint: () => (T$0.intAndintToint = dart.constFn(dart.fnType(core.int, [core.int, core.int])))(),
    StringNToint: () => (T$0.StringNToint = dart.constFn(dart.fnType(core.int, [T$.StringN()])))(),
    intToString: () => (T$0.intToString = dart.constFn(dart.fnType(core.String, [core.int])))(),
    SymbolAnddynamicTovoid: () => (T$0.SymbolAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [core.Symbol, dart.dynamic])))(),
    MapOfSymbol$ObjectN: () => (T$0.MapOfSymbol$ObjectN = dart.constFn(core.Map$(core.Symbol, T$.ObjectN())))(),
    MapOfString$StringAndStringToMapOfString$String: () => (T$0.MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.fnType(T$0.MapOfString$String(), [T$0.MapOfString$String(), core.String])))(),
    StringAndintTovoid: () => (T$0.StringAndintTovoid = dart.constFn(dart.fnType(dart.void, [core.String, core.int])))(),
    StringAnddynamicTovoid$1: () => (T$0.StringAnddynamicTovoid$1 = dart.constFn(dart.fnType(dart.void, [core.String], [dart.dynamic])))(),
    ListOfStringL: () => (T$0.ListOfStringL = dart.constFn(core.List$(T$.StringL())))(),
    ListLOfStringL: () => (T$0.ListLOfStringL = dart.constFn(dart.legacy(T$0.ListOfStringL())))(),
    StringAndListOfStringToListOfString: () => (T$0.StringAndListOfStringToListOfString = dart.constFn(dart.fnType(T$.ListOfString(), [core.String, T$.ListOfString()])))(),
    MapOfString$ListOfString: () => (T$0.MapOfString$ListOfString = dart.constFn(core.Map$(core.String, T$.ListOfString())))(),
    StringAndStringNTovoid: () => (T$0.StringAndStringNTovoid = dart.constFn(dart.fnType(dart.void, [core.String, T$.StringN()])))(),
    IdentityMapOfString$ListOfString: () => (T$0.IdentityMapOfString$ListOfString = dart.constFn(_js_helper.IdentityMap$(core.String, T$.ListOfString())))(),
    VoidToListOfString: () => (T$0.VoidToListOfString = dart.constFn(dart.fnType(T$.ListOfString(), [])))(),
    intAndintAndintTovoid: () => (T$0.intAndintAndintTovoid = dart.constFn(dart.fnType(dart.void, [core.int, core.int, core.int])))(),
    _StringSinkConversionSinkOfStringSink: () => (T$0._StringSinkConversionSinkOfStringSink = dart.constFn(convert._StringSinkConversionSink$(core.StringSink)))(),
    ListOfUint8List: () => (T$0.ListOfUint8List = dart.constFn(core.List$(typed_data.Uint8List)))(),
    intToUint8List: () => (T$0.intToUint8List = dart.constFn(dart.fnType(typed_data.Uint8List, [core.int])))(),
    dynamicAnddynamicToUint8List: () => (T$0.dynamicAnddynamicToUint8List = dart.constFn(dart.fnType(typed_data.Uint8List, [dart.dynamic, dart.dynamic])))(),
    Uint8ListAndStringAndintTovoid: () => (T$0.Uint8ListAndStringAndintTovoid = dart.constFn(dart.fnType(dart.void, [typed_data.Uint8List, core.String, core.int])))(),
    HttpClientResponseCompressionStateL: () => (T$0.HttpClientResponseCompressionStateL = dart.constFn(dart.legacy(_http.HttpClientResponseCompressionState)))(),
    StringToint: () => (T$0.StringToint = dart.constFn(dart.fnType(core.int, [core.String])))(),
    VoidToNever: () => (T$0.VoidToNever = dart.constFn(dart.fnType(dart.Never, [])))(),
    StringAndListOfStringTovoid: () => (T$0.StringAndListOfStringTovoid = dart.constFn(dart.fnType(dart.void, [core.String, T$.ListOfString()])))(),
    JSArrayOfCookie: () => (T$0.JSArrayOfCookie = dart.constFn(_interceptors.JSArray$(_http.Cookie)))(),
    HashMapOfString$StringN: () => (T$0.HashMapOfString$StringN = dart.constFn(collection.HashMap$(core.String, T$.StringN())))(),
    IdentityMapOfString$StringN: () => (T$0.IdentityMapOfString$StringN = dart.constFn(_js_helper.IdentityMap$(core.String, T$.StringN())))(),
    UnmodifiableMapViewOfString$StringN: () => (T$0.UnmodifiableMapViewOfString$StringN = dart.constFn(collection.UnmodifiableMapView$(core.String, T$.StringN())))(),
    StringNToString: () => (T$0.StringNToString = dart.constFn(dart.fnType(core.String, [T$.StringN()])))(),
    JSArrayOfMapOfString$dynamic: () => (T$0.JSArrayOfMapOfString$dynamic = dart.constFn(_interceptors.JSArray$(T$0.MapOfString$dynamic())))(),
    _HttpProfileDataTobool: () => (T$0._HttpProfileDataTobool = dart.constFn(dart.fnType(core.bool, [_http._HttpProfileData])))(),
    IdentityMapOfint$_HttpProfileData: () => (T$0.IdentityMapOfint$_HttpProfileData = dart.constFn(_js_helper.IdentityMap$(core.int, _http._HttpProfileData)))(),
    JSArrayOf_HttpProfileEvent: () => (T$0.JSArrayOf_HttpProfileEvent = dart.constFn(_interceptors.JSArray$(_http._HttpProfileEvent)))(),
    VoidToListOfMapOfString$dynamic: () => (T$0.VoidToListOfMapOfString$dynamic = dart.constFn(dart.fnType(T$0.ListOfMapOfString$dynamic(), [])))(),
    dynamicToNever: () => (T$0.dynamicToNever = dart.constFn(dart.fnType(dart.Never, [dart.dynamic])))(),
    CookieTobool: () => (T$0.CookieTobool = dart.constFn(dart.fnType(core.bool, [_http.Cookie])))(),
    CookieToString: () => (T$0.CookieToString = dart.constFn(dart.fnType(core.String, [_http.Cookie])))(),
    FutureOfHttpClientResponse: () => (T$0.FutureOfHttpClientResponse = dart.constFn(async.Future$(_http.HttpClientResponse)))(),
    _HttpClientRequestToFutureOfHttpClientResponse: () => (T$0._HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOfHttpClientResponse(), [_http._HttpClientRequest])))(),
    _EmptyStreamOfUint8List: () => (T$0._EmptyStreamOfUint8List = dart.constFn(async._EmptyStream$(typed_data.Uint8List)))(),
    Uint8ListToUint8List: () => (T$0.Uint8ListToUint8List = dart.constFn(dart.fnType(typed_data.Uint8List, [typed_data.Uint8List])))(),
    dynamicToFutureOfHttpClientResponse: () => (T$0.dynamicToFutureOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOfHttpClientResponse(), [dart.dynamic])))(),
    VoidToFutureOfHttpClientResponse: () => (T$0.VoidToFutureOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOfHttpClientResponse(), [])))(),
    VoidToListNOfString: () => (T$0.VoidToListNOfString = dart.constFn(dart.fnType(T$.ListNOfString(), [])))(),
    _CredentialsN: () => (T$0._CredentialsN = dart.constFn(dart.nullable(_http._Credentials)))(),
    _AuthenticationSchemeTo_CredentialsN: () => (T$0._AuthenticationSchemeTo_CredentialsN = dart.constFn(dart.fnType(T$0._CredentialsN(), [_http._AuthenticationScheme])))(),
    _CredentialsTovoid: () => (T$0._CredentialsTovoid = dart.constFn(dart.fnType(dart.void, [_http._Credentials])))(),
    _AuthenticationSchemeAndStringNToFutureOfbool: () => (T$0._AuthenticationSchemeAndStringNToFutureOfbool = dart.constFn(dart.fnType(T$.FutureOfbool(), [_http._AuthenticationScheme, T$.StringN()])))(),
    FutureOrOfHttpClientResponse: () => (T$0.FutureOrOfHttpClientResponse = dart.constFn(async.FutureOr$(_http.HttpClientResponse)))(),
    boolToFutureOrOfHttpClientResponse: () => (T$0.boolToFutureOrOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOrOfHttpClientResponse(), [core.bool])))(),
    SinkOfUint8List: () => (T$0.SinkOfUint8List = dart.constFn(core.Sink$(typed_data.Uint8List)))(),
    CompleterOfvoid: () => (T$0.CompleterOfvoid = dart.constFn(async.Completer$(dart.void)))(),
    EncodingN: () => (T$0.EncodingN = dart.constFn(dart.nullable(convert.Encoding)))(),
    ListOfintToListOfint: () => (T$0.ListOfintToListOfint = dart.constFn(dart.fnType(T$0.ListOfint(), [T$0.ListOfint()])))(),
    CookieTovoid: () => (T$0.CookieTovoid = dart.constFn(dart.fnType(dart.void, [_http.Cookie])))(),
    CompleterOfHttpClientResponse: () => (T$0.CompleterOfHttpClientResponse = dart.constFn(async.Completer$(_http.HttpClientResponse)))(),
    JSArrayOfRedirectInfo: () => (T$0.JSArrayOfRedirectInfo = dart.constFn(_interceptors.JSArray$(_http.RedirectInfo)))(),
    HttpClientResponseToNull: () => (T$0.HttpClientResponseToNull = dart.constFn(dart.fnType(core.Null, [_http.HttpClientResponse])))(),
    JSArrayOfFuture: () => (T$0.JSArrayOfFuture = dart.constFn(_interceptors.JSArray$(async.Future)))(),
    ListToFutureOrOfHttpClientResponse: () => (T$0.ListToFutureOrOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOrOfHttpClientResponse(), [core.List])))(),
    CompleterOfSocket: () => (T$0.CompleterOfSocket = dart.constFn(async.Completer$(io.Socket)))(),
    StringToListOfString: () => (T$0.StringToListOfString = dart.constFn(dart.fnType(T$.ListOfString(), [core.String])))(),
    voidTovoid: () => (T$0.voidTovoid = dart.constFn(dart.fnType(dart.void, [dart.void])))(),
    voidToFuture: () => (T$0.voidToFuture = dart.constFn(dart.fnType(async.Future, [dart.void])))(),
    StreamControllerOfListOfint: () => (T$0.StreamControllerOfListOfint = dart.constFn(async.StreamController$(T$0.ListOfint())))(),
    _HttpOutboundMessageN: () => (T$0._HttpOutboundMessageN = dart.constFn(dart.nullable(_http._HttpOutboundMessage)))(),
    dynamicTo_HttpOutboundMessageN: () => (T$0.dynamicTo_HttpOutboundMessageN = dart.constFn(dart.fnType(T$0._HttpOutboundMessageN(), [dart.dynamic])))(),
    dynamicAnddynamicTo_HttpOutboundMessageN: () => (T$0.dynamicAnddynamicTo_HttpOutboundMessageN = dart.constFn(dart.fnType(T$0._HttpOutboundMessageN(), [dart.dynamic, dart.dynamic])))(),
    dynamicTo_HttpOutboundMessage: () => (T$0.dynamicTo_HttpOutboundMessage = dart.constFn(dart.fnType(_http._HttpOutboundMessage, [dart.dynamic])))()
  };
  var T = {
    dynamicAnddynamicTo_HttpOutboundMessage: () => (T.dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.fnType(_http._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))(),
    dynamicAndStackTraceToNull: () => (T.dynamicAndStackTraceToNull = dart.constFn(dart.fnType(core.Null, [dart.dynamic, core.StackTrace])))(),
    _HttpIncomingTovoid: () => (T._HttpIncomingTovoid = dart.constFn(dart.fnType(dart.void, [_http._HttpIncoming])))(),
    CompleterOf_HttpIncoming: () => (T.CompleterOf_HttpIncoming = dart.constFn(async.Completer$(_http._HttpIncoming)))(),
    _HttpIncomingToNull: () => (T._HttpIncomingToNull = dart.constFn(dart.fnType(core.Null, [_http._HttpIncoming])))(),
    SocketToSocket: () => (T.SocketToSocket = dart.constFn(dart.fnType(io.Socket, [io.Socket])))(),
    SocketN: () => (T.SocketN = dart.constFn(dart.nullable(io.Socket)))(),
    FutureOfSocketN: () => (T.FutureOfSocketN = dart.constFn(async.Future$(T.SocketN())))(),
    SocketTo_DetachedSocket: () => (T.SocketTo_DetachedSocket = dart.constFn(dart.fnType(_http._DetachedSocket, [io.Socket])))(),
    SocketTovoid: () => (T.SocketTovoid = dart.constFn(dart.fnType(dart.void, [io.Socket])))(),
    FutureOfSecureSocket: () => (T.FutureOfSecureSocket = dart.constFn(async.Future$(io.SecureSocket)))(),
    HttpClientResponseToFutureOfSecureSocket: () => (T.HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.fnType(T.FutureOfSecureSocket(), [_http.HttpClientResponse])))(),
    SecureSocketTo_HttpClientConnection: () => (T.SecureSocketTo_HttpClientConnection = dart.constFn(dart.fnType(_http._HttpClientConnection, [io.SecureSocket])))(),
    _HashSetOf_HttpClientConnection: () => (T._HashSetOf_HttpClientConnection = dart.constFn(collection._HashSet$(_http._HttpClientConnection)))(),
    _HashSetOfConnectionTask: () => (T._HashSetOfConnectionTask = dart.constFn(collection._HashSet$(io.ConnectionTask)))(),
    FutureOf_ConnectionInfo: () => (T.FutureOf_ConnectionInfo = dart.constFn(async.Future$(_http._ConnectionInfo)))(),
    CompleterOf_ConnectionInfo: () => (T.CompleterOf_ConnectionInfo = dart.constFn(async.Completer$(_http._ConnectionInfo)))(),
    X509CertificateTobool: () => (T.X509CertificateTobool = dart.constFn(dart.fnType(core.bool, [io.X509Certificate])))(),
    _HttpClientConnectionTo_ConnectionInfo: () => (T._HttpClientConnectionTo_ConnectionInfo = dart.constFn(dart.fnType(_http._ConnectionInfo, [_http._HttpClientConnection])))(),
    FutureOrOf_ConnectionInfo: () => (T.FutureOrOf_ConnectionInfo = dart.constFn(async.FutureOr$(_http._ConnectionInfo)))(),
    dynamicToFutureOrOf_ConnectionInfo: () => (T.dynamicToFutureOrOf_ConnectionInfo = dart.constFn(dart.fnType(T.FutureOrOf_ConnectionInfo(), [dart.dynamic])))(),
    ConnectionTaskToFutureOf_ConnectionInfo: () => (T.ConnectionTaskToFutureOf_ConnectionInfo = dart.constFn(dart.fnType(T.FutureOf_ConnectionInfo(), [io.ConnectionTask])))(),
    IdentityMapOfString$_ConnectionTarget: () => (T.IdentityMapOfString$_ConnectionTarget = dart.constFn(_js_helper.IdentityMap$(core.String, _http._ConnectionTarget)))(),
    JSArrayOf_Credentials: () => (T.JSArrayOf_Credentials = dart.constFn(_interceptors.JSArray$(_http._Credentials)))(),
    JSArrayOf_ProxyCredentials: () => (T.JSArrayOf_ProxyCredentials = dart.constFn(_interceptors.JSArray$(_http._ProxyCredentials)))(),
    MapNOfString$String: () => (T.MapNOfString$String = dart.constFn(dart.nullable(T$0.MapOfString$String())))(),
    Uri__ToString: () => (T.Uri__ToString = dart.constFn(dart.fnType(core.String, [core.Uri], {environment: T.MapNOfString$String()}, {})))(),
    _ConnectionTargetTobool: () => (T._ConnectionTargetTobool = dart.constFn(dart.fnType(core.bool, [_http._ConnectionTarget])))(),
    _ProxyL: () => (T._ProxyL = dart.constFn(dart.legacy(_http._Proxy)))(),
    FutureOf_HttpClientRequest: () => (T.FutureOf_HttpClientRequest = dart.constFn(async.Future$(_http._HttpClientRequest)))(),
    _ConnectionInfoTo_HttpClientRequest: () => (T._ConnectionInfoTo_HttpClientRequest = dart.constFn(dart.fnType(_http._HttpClientRequest, [_http._ConnectionInfo])))(),
    FutureOrOf_HttpClientRequest: () => (T.FutureOrOf_HttpClientRequest = dart.constFn(async.FutureOr$(_http._HttpClientRequest)))(),
    _ConnectionInfoToFutureOrOf_HttpClientRequest: () => (T._ConnectionInfoToFutureOrOf_HttpClientRequest = dart.constFn(dart.fnType(T.FutureOrOf_HttpClientRequest(), [_http._ConnectionInfo])))(),
    _HttpClientRequestTo_HttpClientRequest: () => (T._HttpClientRequestTo_HttpClientRequest = dart.constFn(dart.fnType(_http._HttpClientRequest, [_http._HttpClientRequest])))(),
    VoidTo_ConnectionTarget: () => (T.VoidTo_ConnectionTarget = dart.constFn(dart.fnType(_http._ConnectionTarget, [])))(),
    dynamicToFutureOf_ConnectionInfo: () => (T.dynamicToFutureOf_ConnectionInfo = dart.constFn(dart.fnType(T.FutureOf_ConnectionInfo(), [dart.dynamic])))(),
    _SiteCredentialsN: () => (T._SiteCredentialsN = dart.constFn(dart.nullable(_http._SiteCredentials)))(),
    _SiteCredentialsNAnd_CredentialsTo_SiteCredentialsN: () => (T._SiteCredentialsNAnd_CredentialsTo_SiteCredentialsN = dart.constFn(dart.fnType(T._SiteCredentialsN(), [T._SiteCredentialsN(), _http._Credentials])))(),
    StringNToStringN: () => (T.StringNToStringN = dart.constFn(dart.fnType(T$.StringN(), [T$.StringN()])))(),
    StreamOfUint8List: () => (T.StreamOfUint8List = dart.constFn(async.Stream$(typed_data.Uint8List)))(),
    SocketToNull: () => (T.SocketToNull = dart.constFn(dart.fnType(core.Null, [io.Socket])))(),
    dynamicTo_DetachedSocket: () => (T.dynamicTo_DetachedSocket = dart.constFn(dart.fnType(_http._DetachedSocket, [dart.dynamic])))(),
    IdentityMapOfint$_HttpConnection: () => (T.IdentityMapOfint$_HttpConnection = dart.constFn(_js_helper.IdentityMap$(core.int, _http._HttpConnection)))(),
    LinkedListOf_HttpConnection: () => (T.LinkedListOf_HttpConnection = dart.constFn(collection.LinkedList$(_http._HttpConnection)))(),
    StreamControllerOfHttpRequest: () => (T.StreamControllerOfHttpRequest = dart.constFn(async.StreamController$(_http.HttpRequest)))(),
    ServerSocketTo_HttpServer: () => (T.ServerSocketTo_HttpServer = dart.constFn(dart.fnType(_http._HttpServer, [io.ServerSocket])))(),
    SecureServerSocketTo_HttpServer: () => (T.SecureServerSocketTo_HttpServer = dart.constFn(dart.fnType(_http._HttpServer, [io.SecureServerSocket])))(),
    _HttpConnectionTovoid: () => (T._HttpConnectionTovoid = dart.constFn(dart.fnType(dart.void, [_http._HttpConnection])))(),
    _HttpConnectionToMap: () => (T._HttpConnectionToMap = dart.constFn(dart.fnType(core.Map, [_http._HttpConnection])))(),
    LinkedMapOfint$_HttpServer: () => (T.LinkedMapOfint$_HttpServer = dart.constFn(_js_helper.LinkedMap$(core.int, _http._HttpServer)))(),
    JSArrayOf_Proxy: () => (T.JSArrayOf_Proxy = dart.constFn(_interceptors.JSArray$(_http._Proxy)))(),
    StreamControllerOf_HttpIncoming: () => (T.StreamControllerOf_HttpIncoming = dart.constFn(async.StreamController$(_http._HttpIncoming)))(),
    IterableOfMapEntry: () => (T.IterableOfMapEntry = dart.constFn(core.Iterable$(core.MapEntry)))(),
    VoidToNdynamic: () => (T.VoidToNdynamic = dart.constFn(dart.nullable(T$.VoidTodynamic())))(),
    IdentityMapOfString$_HttpSession: () => (T.IdentityMapOfString$_HttpSession = dart.constFn(_js_helper.IdentityMap$(core.String, _http._HttpSession)))(),
    HttpOverridesN: () => (T.HttpOverridesN = dart.constFn(dart.nullable(_http.HttpOverrides)))(),
    EventSinkTo_WebSocketProtocolTransformer: () => (T.EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.fnType(_http._WebSocketProtocolTransformer, [async.EventSink])))(),
    StreamControllerOfWebSocket: () => (T.StreamControllerOfWebSocket = dart.constFn(async.StreamController$(_http.WebSocket)))(),
    StreamOfHttpRequest: () => (T.StreamOfHttpRequest = dart.constFn(async.Stream$(_http.HttpRequest)))(),
    WebSocketTovoid: () => (T.WebSocketTovoid = dart.constFn(dart.fnType(dart.void, [_http.WebSocket])))(),
    HttpRequestTovoid: () => (T.HttpRequestTovoid = dart.constFn(dart.fnType(dart.void, [_http.HttpRequest])))(),
    FutureOfWebSocket: () => (T.FutureOfWebSocket = dart.constFn(async.Future$(_http.WebSocket)))(),
    SocketTo_WebSocketImpl: () => (T.SocketTo_WebSocketImpl = dart.constFn(dart.fnType(_http._WebSocketImpl, [io.Socket])))(),
    StringNToFutureOfWebSocket: () => (T.StringNToFutureOfWebSocket = dart.constFn(dart.fnType(T.FutureOfWebSocket(), [T$.StringN()])))(),
    VoidToFutureOrOfString: () => (T.VoidToFutureOrOfString = dart.constFn(dart.fnType(T$0.FutureOrOfString(), [])))(),
    EventSinkOfListOfint: () => (T.EventSinkOfListOfint = dart.constFn(async.EventSink$(T$0.ListOfint())))(),
    EventSinkOfListOfintTo_WebSocketOutgoingTransformer: () => (T.EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.fnType(_http._WebSocketOutgoingTransformer, [T.EventSinkOfListOfint()])))(),
    CompleterOfWebSocket: () => (T.CompleterOfWebSocket = dart.constFn(async.Completer$(_http.WebSocket)))(),
    dynamicTo_WebSocketImpl: () => (T.dynamicTo_WebSocketImpl = dart.constFn(dart.fnType(_http._WebSocketImpl, [dart.dynamic])))(),
    HttpClientRequestToFutureOfHttpClientResponse: () => (T.HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.fnType(T$0.FutureOfHttpClientResponse(), [_http.HttpClientRequest])))(),
    StringToNever: () => (T.StringToNever = dart.constFn(dart.fnType(dart.Never, [core.String])))(),
    HttpClientResponseToFutureOfWebSocket: () => (T.HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.fnType(T.FutureOfWebSocket(), [_http.HttpClientResponse])))(),
    dynamicToMap: () => (T.dynamicToMap = dart.constFn(dart.fnType(core.Map, [dart.dynamic])))(),
    LinkedMapOfint$_WebSocketImpl: () => (T.LinkedMapOfint$_WebSocketImpl = dart.constFn(_js_helper.LinkedMap$(core.int, _http._WebSocketImpl)))()
  };
  var S = {
    _delete$1: dart.privateName(indexed_db, "_delete"),
    $delete: dartx.delete = Symbol("dartx.delete"),
    _update: dart.privateName(indexed_db, "_update"),
    $next: dartx.next = Symbol("dartx.next"),
    $direction: dartx.direction = Symbol("dartx.direction"),
    $key: dartx.key = Symbol("dartx.key"),
    $primaryKey: dartx.primaryKey = Symbol("dartx.primaryKey"),
    $source: dartx.source = Symbol("dartx.source"),
    $advance: dartx.advance = Symbol("dartx.advance"),
    $continuePrimaryKey: dartx.continuePrimaryKey = Symbol("dartx.continuePrimaryKey"),
    _update_1: dart.privateName(indexed_db, "_update_1"),
    _get_value: dart.privateName(indexed_db, "_get_value"),
    $value: dartx.value = Symbol("dartx.value"),
    _createObjectStore: dart.privateName(indexed_db, "_createObjectStore"),
    $createObjectStore: dartx.createObjectStore = Symbol("dartx.createObjectStore"),
    _transaction: dart.privateName(indexed_db, "_transaction"),
    $transaction: dartx.transaction = Symbol("dartx.transaction"),
    $transactionStore: dartx.transactionStore = Symbol("dartx.transactionStore"),
    $transactionList: dartx.transactionList = Symbol("dartx.transactionList"),
    $transactionStores: dartx.transactionStores = Symbol("dartx.transactionStores"),
    $objectStoreNames: dartx.objectStoreNames = Symbol("dartx.objectStoreNames"),
    $version: dartx.version = Symbol("dartx.version"),
    $close: dartx.close = Symbol("dartx.close"),
    _createObjectStore_1: dart.privateName(indexed_db, "_createObjectStore_1"),
    _createObjectStore_2: dart.privateName(indexed_db, "_createObjectStore_2"),
    $deleteObjectStore: dartx.deleteObjectStore = Symbol("dartx.deleteObjectStore"),
    $onAbort: dartx.onAbort = Symbol("dartx.onAbort"),
    $onClose: dartx.onClose = Symbol("dartx.onClose"),
    $onError: dartx.onError = Symbol("dartx.onError"),
    $onVersionChange: dartx.onVersionChange = Symbol("dartx.onVersionChange"),
    $on: dartx.on = Symbol("dartx.on"),
    _addEventListener: dart.privateName(html$, "_addEventListener"),
    $addEventListener: dartx.addEventListener = Symbol("dartx.addEventListener"),
    _removeEventListener: dart.privateName(html$, "_removeEventListener"),
    $removeEventListener: dartx.removeEventListener = Symbol("dartx.removeEventListener"),
    $dispatchEvent: dartx.dispatchEvent = Symbol("dartx.dispatchEvent"),
    EventStreamProvider__eventType: dart.privateName(html$, "EventStreamProvider._eventType"),
    _open: dart.privateName(indexed_db, "_open"),
    $onUpgradeNeeded: dartx.onUpgradeNeeded = Symbol("dartx.onUpgradeNeeded"),
    $onBlocked: dartx.onBlocked = Symbol("dartx.onBlocked"),
    $open: dartx.open = Symbol("dartx.open"),
    _deleteDatabase: dart.privateName(indexed_db, "_deleteDatabase"),
    $onSuccess: dartx.onSuccess = Symbol("dartx.onSuccess"),
    $deleteDatabase: dartx.deleteDatabase = Symbol("dartx.deleteDatabase"),
    $supportsDatabaseNames: dartx.supportsDatabaseNames = Symbol("dartx.supportsDatabaseNames"),
    $cmp: dartx.cmp = Symbol("dartx.cmp"),
    _count$2: dart.privateName(indexed_db, "_count"),
    $count: dartx.count = Symbol("dartx.count"),
    _get: dart.privateName(indexed_db, "_get"),
    $get: dartx.get = Symbol("dartx.get"),
    _getKey: dart.privateName(indexed_db, "_getKey"),
    $getKey: dartx.getKey = Symbol("dartx.getKey"),
    _openCursor: dart.privateName(indexed_db, "_openCursor"),
    $openCursor: dartx.openCursor = Symbol("dartx.openCursor"),
    _openKeyCursor: dart.privateName(indexed_db, "_openKeyCursor"),
    $openKeyCursor: dartx.openKeyCursor = Symbol("dartx.openKeyCursor"),
    $keyPath: dartx.keyPath = Symbol("dartx.keyPath"),
    $multiEntry: dartx.multiEntry = Symbol("dartx.multiEntry"),
    $objectStore: dartx.objectStore = Symbol("dartx.objectStore"),
    $unique: dartx.unique = Symbol("dartx.unique"),
    $getAll: dartx.getAll = Symbol("dartx.getAll"),
    $getAllKeys: dartx.getAllKeys = Symbol("dartx.getAllKeys"),
    $lower: dartx.lower = Symbol("dartx.lower"),
    $lowerOpen: dartx.lowerOpen = Symbol("dartx.lowerOpen"),
    $upper: dartx.upper = Symbol("dartx.upper"),
    $upperOpen: dartx.upperOpen = Symbol("dartx.upperOpen"),
    $includes: dartx.includes = Symbol("dartx.includes"),
    _add$3: dart.privateName(indexed_db, "_add"),
    _clear$2: dart.privateName(indexed_db, "_clear"),
    _put: dart.privateName(indexed_db, "_put"),
    $put: dartx.put = Symbol("dartx.put"),
    $getObject: dartx.getObject = Symbol("dartx.getObject"),
    _createIndex: dart.privateName(indexed_db, "_createIndex"),
    $createIndex: dartx.createIndex = Symbol("dartx.createIndex"),
    $autoIncrement: dartx.autoIncrement = Symbol("dartx.autoIncrement"),
    $indexNames: dartx.indexNames = Symbol("dartx.indexNames"),
    _add_1: dart.privateName(indexed_db, "_add_1"),
    _add_2: dart.privateName(indexed_db, "_add_2"),
    _createIndex_1: dart.privateName(indexed_db, "_createIndex_1"),
    _createIndex_2: dart.privateName(indexed_db, "_createIndex_2"),
    $deleteIndex: dartx.deleteIndex = Symbol("dartx.deleteIndex"),
    $index: dartx.index = Symbol("dartx.index"),
    _put_1: dart.privateName(indexed_db, "_put_1"),
    _put_2: dart.privateName(indexed_db, "_put_2"),
    $result: dartx.result = Symbol("dartx.result"),
    $type: dartx.type = Symbol("dartx.type"),
    _observe_1: dart.privateName(indexed_db, "_observe_1"),
    $observe: dartx.observe = Symbol("dartx.observe"),
    $unobserve: dartx.unobserve = Symbol("dartx.unobserve"),
    $database: dartx.database = Symbol("dartx.database"),
    $records: dartx.records = Symbol("dartx.records"),
    $error: dartx.error = Symbol("dartx.error"),
    $readyState: dartx.readyState = Symbol("dartx.readyState"),
    _get_result: dart.privateName(indexed_db, "_get_result"),
    $onComplete: dartx.onComplete = Symbol("dartx.onComplete"),
    $completed: dartx.completed = Symbol("dartx.completed"),
    $db: dartx.db = Symbol("dartx.db"),
    $mode: dartx.mode = Symbol("dartx.mode"),
    $abort: dartx.abort = Symbol("dartx.abort"),
    $dataLoss: dartx.dataLoss = Symbol("dartx.dataLoss"),
    $dataLossMessage: dartx.dataLossMessage = Symbol("dartx.dataLossMessage"),
    $newVersion: dartx.newVersion = Symbol("dartx.newVersion"),
    $oldVersion: dartx.oldVersion = Symbol("dartx.oldVersion"),
    $target: dartx.target = Symbol("dartx.target"),
    _createEvent: dart.privateName(html$, "_createEvent"),
    _initEvent: dart.privateName(html$, "_initEvent"),
    _selector: dart.privateName(html$, "_selector"),
    $currentTarget: dartx.currentTarget = Symbol("dartx.currentTarget"),
    $matches: dartx.matches = Symbol("dartx.matches"),
    $parent: dartx.parent = Symbol("dartx.parent"),
    $matchingTarget: dartx.matchingTarget = Symbol("dartx.matchingTarget"),
    $path: dartx.path = Symbol("dartx.path"),
    $bubbles: dartx.bubbles = Symbol("dartx.bubbles"),
    $cancelable: dartx.cancelable = Symbol("dartx.cancelable"),
    $composed: dartx.composed = Symbol("dartx.composed"),
    _get_currentTarget: dart.privateName(html$, "_get_currentTarget"),
    $defaultPrevented: dartx.defaultPrevented = Symbol("dartx.defaultPrevented"),
    $eventPhase: dartx.eventPhase = Symbol("dartx.eventPhase"),
    $isTrusted: dartx.isTrusted = Symbol("dartx.isTrusted"),
    _get_target: dart.privateName(html$, "_get_target"),
    $timeStamp: dartx.timeStamp = Symbol("dartx.timeStamp"),
    $composedPath: dartx.composedPath = Symbol("dartx.composedPath"),
    $preventDefault: dartx.preventDefault = Symbol("dartx.preventDefault"),
    $stopImmediatePropagation: dartx.stopImmediatePropagation = Symbol("dartx.stopImmediatePropagation"),
    $stopPropagation: dartx.stopPropagation = Symbol("dartx.stopPropagation"),
    $nonce: dartx.nonce = Symbol("dartx.nonce"),
    $createFragment: dartx.createFragment = Symbol("dartx.createFragment"),
    $nodes: dartx.nodes = Symbol("dartx.nodes"),
    $attributes: dartx.attributes = Symbol("dartx.attributes"),
    _getAttribute: dart.privateName(html$, "_getAttribute"),
    $getAttribute: dartx.getAttribute = Symbol("dartx.getAttribute"),
    _getAttributeNS: dart.privateName(html$, "_getAttributeNS"),
    $getAttributeNS: dartx.getAttributeNS = Symbol("dartx.getAttributeNS"),
    _hasAttribute: dart.privateName(html$, "_hasAttribute"),
    $hasAttribute: dartx.hasAttribute = Symbol("dartx.hasAttribute"),
    _hasAttributeNS: dart.privateName(html$, "_hasAttributeNS"),
    $hasAttributeNS: dartx.hasAttributeNS = Symbol("dartx.hasAttributeNS"),
    _removeAttribute: dart.privateName(html$, "_removeAttribute"),
    $removeAttribute: dartx.removeAttribute = Symbol("dartx.removeAttribute"),
    _removeAttributeNS: dart.privateName(html$, "_removeAttributeNS"),
    $removeAttributeNS: dartx.removeAttributeNS = Symbol("dartx.removeAttributeNS"),
    _setAttribute: dart.privateName(html$, "_setAttribute"),
    $setAttribute: dartx.setAttribute = Symbol("dartx.setAttribute"),
    _setAttributeNS: dart.privateName(html$, "_setAttributeNS"),
    $setAttributeNS: dartx.setAttributeNS = Symbol("dartx.setAttributeNS"),
    $children: dartx.children = Symbol("dartx.children"),
    _children: dart.privateName(html$, "_children"),
    _querySelectorAll: dart.privateName(html$, "_querySelectorAll"),
    $querySelectorAll: dartx.querySelectorAll = Symbol("dartx.querySelectorAll"),
    _setApplyScroll: dart.privateName(html$, "_setApplyScroll"),
    $setApplyScroll: dartx.setApplyScroll = Symbol("dartx.setApplyScroll"),
    _setDistributeScroll: dart.privateName(html$, "_setDistributeScroll"),
    $setDistributeScroll: dartx.setDistributeScroll = Symbol("dartx.setDistributeScroll"),
    $classes: dartx.classes = Symbol("dartx.classes"),
    $dataset: dartx.dataset = Symbol("dartx.dataset"),
    $getNamespacedAttributes: dartx.getNamespacedAttributes = Symbol("dartx.getNamespacedAttributes"),
    _getComputedStyle: dart.privateName(html$, "_getComputedStyle"),
    $getComputedStyle: dartx.getComputedStyle = Symbol("dartx.getComputedStyle"),
    $client: dartx.client = Symbol("dartx.client"),
    $offsetLeft: dartx.offsetLeft = Symbol("dartx.offsetLeft"),
    $offsetTop: dartx.offsetTop = Symbol("dartx.offsetTop"),
    $offsetWidth: dartx.offsetWidth = Symbol("dartx.offsetWidth"),
    $offsetHeight: dartx.offsetHeight = Symbol("dartx.offsetHeight"),
    $offset: dartx.offset = Symbol("dartx.offset"),
    $append: dartx.append = Symbol("dartx.append"),
    $appendText: dartx.appendText = Symbol("dartx.appendText"),
    $insertAdjacentHtml: dartx.insertAdjacentHtml = Symbol("dartx.insertAdjacentHtml"),
    $appendHtml: dartx.appendHtml = Symbol("dartx.appendHtml"),
    $enteredView: dartx.enteredView = Symbol("dartx.enteredView"),
    $attached: dartx.attached = Symbol("dartx.attached"),
    $leftView: dartx.leftView = Symbol("dartx.leftView"),
    $detached: dartx.detached = Symbol("dartx.detached"),
    _getClientRects: dart.privateName(html$, "_getClientRects"),
    $getClientRects: dartx.getClientRects = Symbol("dartx.getClientRects"),
    _animate: dart.privateName(html$, "_animate"),
    $animate: dartx.animate = Symbol("dartx.animate"),
    $attributeChanged: dartx.attributeChanged = Symbol("dartx.attributeChanged"),
    _localName: dart.privateName(html$, "_localName"),
    $localName: dartx.localName = Symbol("dartx.localName"),
    _namespaceUri: dart.privateName(html$, "_namespaceUri"),
    $namespaceUri: dartx.namespaceUri = Symbol("dartx.namespaceUri"),
    _scrollIntoView: dart.privateName(html$, "_scrollIntoView"),
    _scrollIntoViewIfNeeded: dart.privateName(html$, "_scrollIntoViewIfNeeded"),
    $scrollIntoView: dartx.scrollIntoView = Symbol("dartx.scrollIntoView"),
    _insertAdjacentText: dart.privateName(html$, "_insertAdjacentText"),
    _insertAdjacentNode: dart.privateName(html$, "_insertAdjacentNode"),
    $insertAdjacentText: dartx.insertAdjacentText = Symbol("dartx.insertAdjacentText"),
    _insertAdjacentHtml: dart.privateName(html$, "_insertAdjacentHtml"),
    _insertAdjacentElement: dart.privateName(html$, "_insertAdjacentElement"),
    $insertAdjacentElement: dartx.insertAdjacentElement = Symbol("dartx.insertAdjacentElement"),
    $nextNode: dartx.nextNode = Symbol("dartx.nextNode"),
    $matchesWithAncestors: dartx.matchesWithAncestors = Symbol("dartx.matchesWithAncestors"),
    $createShadowRoot: dartx.createShadowRoot = Symbol("dartx.createShadowRoot"),
    $shadowRoot: dartx.shadowRoot = Symbol("dartx.shadowRoot"),
    $contentEdge: dartx.contentEdge = Symbol("dartx.contentEdge"),
    $paddingEdge: dartx.paddingEdge = Symbol("dartx.paddingEdge"),
    $borderEdge: dartx.borderEdge = Symbol("dartx.borderEdge"),
    $marginEdge: dartx.marginEdge = Symbol("dartx.marginEdge"),
    $offsetTo: dartx.offsetTo = Symbol("dartx.offsetTo"),
    $documentOffset: dartx.documentOffset = Symbol("dartx.documentOffset"),
    $createHtmlDocument: dartx.createHtmlDocument = Symbol("dartx.createHtmlDocument"),
    $createElement: dartx.createElement = Symbol("dartx.createElement"),
    $baseUri: dartx.baseUri = Symbol("dartx.baseUri"),
    $head: dartx.head = Symbol("dartx.head"),
    _canBeUsedToCreateContextualFragment: dart.privateName(html$, "_canBeUsedToCreateContextualFragment"),
    _innerHtml: dart.privateName(html$, "_innerHtml"),
    _cannotBeUsedToCreateContextualFragment: dart.privateName(html$, "_cannotBeUsedToCreateContextualFragment"),
    $setInnerHtml: dartx.setInnerHtml = Symbol("dartx.setInnerHtml"),
    $innerHtml: dartx.innerHtml = Symbol("dartx.innerHtml"),
    $text: dartx.text = Symbol("dartx.text"),
    $innerText: dartx.innerText = Symbol("dartx.innerText"),
    $offsetParent: dartx.offsetParent = Symbol("dartx.offsetParent"),
    $scrollHeight: dartx.scrollHeight = Symbol("dartx.scrollHeight"),
    $scrollLeft: dartx.scrollLeft = Symbol("dartx.scrollLeft"),
    $scrollTop: dartx.scrollTop = Symbol("dartx.scrollTop"),
    $scrollWidth: dartx.scrollWidth = Symbol("dartx.scrollWidth"),
    $contentEditable: dartx.contentEditable = Symbol("dartx.contentEditable"),
    $dir: dartx.dir = Symbol("dartx.dir"),
    $draggable: dartx.draggable = Symbol("dartx.draggable"),
    $hidden: dartx.hidden = Symbol("dartx.hidden"),
    $inert: dartx.inert = Symbol("dartx.inert"),
    $inputMode: dartx.inputMode = Symbol("dartx.inputMode"),
    $isContentEditable: dartx.isContentEditable = Symbol("dartx.isContentEditable"),
    $lang: dartx.lang = Symbol("dartx.lang"),
    $spellcheck: dartx.spellcheck = Symbol("dartx.spellcheck"),
    $style: dartx.style = Symbol("dartx.style"),
    $tabIndex: dartx.tabIndex = Symbol("dartx.tabIndex"),
    $title: dartx.title = Symbol("dartx.title"),
    $translate: dartx.translate = Symbol("dartx.translate"),
    $blur: dartx.blur = Symbol("dartx.blur"),
    $click: dartx.click = Symbol("dartx.click"),
    $focus: dartx.focus = Symbol("dartx.focus"),
    $accessibleNode: dartx.accessibleNode = Symbol("dartx.accessibleNode"),
    $assignedSlot: dartx.assignedSlot = Symbol("dartx.assignedSlot"),
    _attributes$1: dart.privateName(html$, "_attributes"),
    $className: dartx.className = Symbol("dartx.className"),
    $clientHeight: dartx.clientHeight = Symbol("dartx.clientHeight"),
    $clientLeft: dartx.clientLeft = Symbol("dartx.clientLeft"),
    $clientTop: dartx.clientTop = Symbol("dartx.clientTop"),
    $clientWidth: dartx.clientWidth = Symbol("dartx.clientWidth"),
    $computedName: dartx.computedName = Symbol("dartx.computedName"),
    $computedRole: dartx.computedRole = Symbol("dartx.computedRole"),
    $id: dartx.id = Symbol("dartx.id"),
    $outerHtml: dartx.outerHtml = Symbol("dartx.outerHtml"),
    _scrollHeight: dart.privateName(html$, "_scrollHeight"),
    _scrollLeft: dart.privateName(html$, "_scrollLeft"),
    _scrollTop: dart.privateName(html$, "_scrollTop"),
    _scrollWidth: dart.privateName(html$, "_scrollWidth"),
    $slot: dartx.slot = Symbol("dartx.slot"),
    $styleMap: dartx.styleMap = Symbol("dartx.styleMap"),
    $tagName: dartx.tagName = Symbol("dartx.tagName"),
    _attachShadow_1: dart.privateName(html$, "_attachShadow_1"),
    $attachShadow: dartx.attachShadow = Symbol("dartx.attachShadow"),
    $closest: dartx.closest = Symbol("dartx.closest"),
    $getAnimations: dartx.getAnimations = Symbol("dartx.getAnimations"),
    $getAttributeNames: dartx.getAttributeNames = Symbol("dartx.getAttributeNames"),
    $getBoundingClientRect: dartx.getBoundingClientRect = Symbol("dartx.getBoundingClientRect"),
    $getDestinationInsertionPoints: dartx.getDestinationInsertionPoints = Symbol("dartx.getDestinationInsertionPoints"),
    $getElementsByClassName: dartx.getElementsByClassName = Symbol("dartx.getElementsByClassName"),
    _getElementsByTagName: dart.privateName(html$, "_getElementsByTagName"),
    $hasPointerCapture: dartx.hasPointerCapture = Symbol("dartx.hasPointerCapture"),
    $releasePointerCapture: dartx.releasePointerCapture = Symbol("dartx.releasePointerCapture"),
    $requestPointerLock: dartx.requestPointerLock = Symbol("dartx.requestPointerLock"),
    _scroll_1: dart.privateName(html$, "_scroll_1"),
    _scroll_2: dart.privateName(html$, "_scroll_2"),
    _scroll_3: dart.privateName(html$, "_scroll_3"),
    $scroll: dartx.scroll = Symbol("dartx.scroll"),
    _scrollBy_1: dart.privateName(html$, "_scrollBy_1"),
    _scrollBy_2: dart.privateName(html$, "_scrollBy_2"),
    _scrollBy_3: dart.privateName(html$, "_scrollBy_3"),
    $scrollBy: dartx.scrollBy = Symbol("dartx.scrollBy"),
    _scrollTo_1: dart.privateName(html$, "_scrollTo_1"),
    _scrollTo_2: dart.privateName(html$, "_scrollTo_2"),
    _scrollTo_3: dart.privateName(html$, "_scrollTo_3"),
    $scrollTo: dartx.scrollTo = Symbol("dartx.scrollTo"),
    $setPointerCapture: dartx.setPointerCapture = Symbol("dartx.setPointerCapture"),
    $requestFullscreen: dartx.requestFullscreen = Symbol("dartx.requestFullscreen"),
    $after: dartx.after = Symbol("dartx.after"),
    $before: dartx.before = Symbol("dartx.before"),
    $nextElementSibling: dartx.nextElementSibling = Symbol("dartx.nextElementSibling"),
    $previousElementSibling: dartx.previousElementSibling = Symbol("dartx.previousElementSibling"),
    _childElementCount: dart.privateName(html$, "_childElementCount"),
    _firstElementChild: dart.privateName(html$, "_firstElementChild"),
    _lastElementChild: dart.privateName(html$, "_lastElementChild"),
    $querySelector: dartx.querySelector = Symbol("dartx.querySelector"),
    $onBeforeCopy: dartx.onBeforeCopy = Symbol("dartx.onBeforeCopy"),
    $onBeforeCut: dartx.onBeforeCut = Symbol("dartx.onBeforeCut"),
    $onBeforePaste: dartx.onBeforePaste = Symbol("dartx.onBeforePaste"),
    $onBlur: dartx.onBlur = Symbol("dartx.onBlur"),
    $onCanPlay: dartx.onCanPlay = Symbol("dartx.onCanPlay"),
    $onCanPlayThrough: dartx.onCanPlayThrough = Symbol("dartx.onCanPlayThrough"),
    $onChange: dartx.onChange = Symbol("dartx.onChange"),
    $onClick: dartx.onClick = Symbol("dartx.onClick"),
    $onContextMenu: dartx.onContextMenu = Symbol("dartx.onContextMenu"),
    $onCopy: dartx.onCopy = Symbol("dartx.onCopy"),
    $onCut: dartx.onCut = Symbol("dartx.onCut"),
    $onDoubleClick: dartx.onDoubleClick = Symbol("dartx.onDoubleClick"),
    $onDrag: dartx.onDrag = Symbol("dartx.onDrag"),
    $onDragEnd: dartx.onDragEnd = Symbol("dartx.onDragEnd"),
    $onDragEnter: dartx.onDragEnter = Symbol("dartx.onDragEnter"),
    $onDragLeave: dartx.onDragLeave = Symbol("dartx.onDragLeave"),
    $onDragOver: dartx.onDragOver = Symbol("dartx.onDragOver"),
    $onDragStart: dartx.onDragStart = Symbol("dartx.onDragStart"),
    $onDrop: dartx.onDrop = Symbol("dartx.onDrop"),
    $onDurationChange: dartx.onDurationChange = Symbol("dartx.onDurationChange"),
    $onEmptied: dartx.onEmptied = Symbol("dartx.onEmptied"),
    $onEnded: dartx.onEnded = Symbol("dartx.onEnded"),
    $onFocus: dartx.onFocus = Symbol("dartx.onFocus"),
    $onInput: dartx.onInput = Symbol("dartx.onInput"),
    $onInvalid: dartx.onInvalid = Symbol("dartx.onInvalid"),
    $onKeyDown: dartx.onKeyDown = Symbol("dartx.onKeyDown"),
    $onKeyPress: dartx.onKeyPress = Symbol("dartx.onKeyPress"),
    $onKeyUp: dartx.onKeyUp = Symbol("dartx.onKeyUp"),
    $onLoad: dartx.onLoad = Symbol("dartx.onLoad"),
    $onLoadedData: dartx.onLoadedData = Symbol("dartx.onLoadedData"),
    $onLoadedMetadata: dartx.onLoadedMetadata = Symbol("dartx.onLoadedMetadata"),
    $onMouseDown: dartx.onMouseDown = Symbol("dartx.onMouseDown"),
    $onMouseEnter: dartx.onMouseEnter = Symbol("dartx.onMouseEnter"),
    $onMouseLeave: dartx.onMouseLeave = Symbol("dartx.onMouseLeave"),
    $onMouseMove: dartx.onMouseMove = Symbol("dartx.onMouseMove"),
    $onMouseOut: dartx.onMouseOut = Symbol("dartx.onMouseOut"),
    $onMouseOver: dartx.onMouseOver = Symbol("dartx.onMouseOver"),
    $onMouseUp: dartx.onMouseUp = Symbol("dartx.onMouseUp"),
    $onMouseWheel: dartx.onMouseWheel = Symbol("dartx.onMouseWheel"),
    $onPaste: dartx.onPaste = Symbol("dartx.onPaste"),
    $onPause: dartx.onPause = Symbol("dartx.onPause"),
    $onPlay: dartx.onPlay = Symbol("dartx.onPlay"),
    $onPlaying: dartx.onPlaying = Symbol("dartx.onPlaying"),
    $onRateChange: dartx.onRateChange = Symbol("dartx.onRateChange"),
    $onReset: dartx.onReset = Symbol("dartx.onReset"),
    $onResize: dartx.onResize = Symbol("dartx.onResize"),
    $onScroll: dartx.onScroll = Symbol("dartx.onScroll"),
    $onSearch: dartx.onSearch = Symbol("dartx.onSearch"),
    $onSeeked: dartx.onSeeked = Symbol("dartx.onSeeked"),
    $onSeeking: dartx.onSeeking = Symbol("dartx.onSeeking"),
    $onSelect: dartx.onSelect = Symbol("dartx.onSelect"),
    $onSelectStart: dartx.onSelectStart = Symbol("dartx.onSelectStart"),
    $onStalled: dartx.onStalled = Symbol("dartx.onStalled"),
    $onSubmit: dartx.onSubmit = Symbol("dartx.onSubmit")
  };
  var S$ = {
    $onSuspend: dartx.onSuspend = Symbol("dartx.onSuspend"),
    $onTimeUpdate: dartx.onTimeUpdate = Symbol("dartx.onTimeUpdate"),
    $onTouchCancel: dartx.onTouchCancel = Symbol("dartx.onTouchCancel"),
    $onTouchEnd: dartx.onTouchEnd = Symbol("dartx.onTouchEnd"),
    $onTouchEnter: dartx.onTouchEnter = Symbol("dartx.onTouchEnter"),
    $onTouchLeave: dartx.onTouchLeave = Symbol("dartx.onTouchLeave"),
    $onTouchMove: dartx.onTouchMove = Symbol("dartx.onTouchMove"),
    $onTouchStart: dartx.onTouchStart = Symbol("dartx.onTouchStart"),
    $onTransitionEnd: dartx.onTransitionEnd = Symbol("dartx.onTransitionEnd"),
    $onVolumeChange: dartx.onVolumeChange = Symbol("dartx.onVolumeChange"),
    $onWaiting: dartx.onWaiting = Symbol("dartx.onWaiting"),
    $onFullscreenChange: dartx.onFullscreenChange = Symbol("dartx.onFullscreenChange"),
    $onFullscreenError: dartx.onFullscreenError = Symbol("dartx.onFullscreenError"),
    $onWheel: dartx.onWheel = Symbol("dartx.onWheel"),
    _removeChild: dart.privateName(html$, "_removeChild"),
    _replaceChild: dart.privateName(html$, "_replaceChild"),
    $replaceWith: dartx.replaceWith = Symbol("dartx.replaceWith"),
    _this: dart.privateName(html$, "_this"),
    $insertAllBefore: dartx.insertAllBefore = Symbol("dartx.insertAllBefore"),
    _clearChildren: dart.privateName(html$, "_clearChildren"),
    $childNodes: dartx.childNodes = Symbol("dartx.childNodes"),
    $firstChild: dartx.firstChild = Symbol("dartx.firstChild"),
    $isConnected: dartx.isConnected = Symbol("dartx.isConnected"),
    $lastChild: dartx.lastChild = Symbol("dartx.lastChild"),
    $nodeName: dartx.nodeName = Symbol("dartx.nodeName"),
    $nodeType: dartx.nodeType = Symbol("dartx.nodeType"),
    $nodeValue: dartx.nodeValue = Symbol("dartx.nodeValue"),
    $ownerDocument: dartx.ownerDocument = Symbol("dartx.ownerDocument"),
    $parentNode: dartx.parentNode = Symbol("dartx.parentNode"),
    $previousNode: dartx.previousNode = Symbol("dartx.previousNode"),
    $clone: dartx.clone = Symbol("dartx.clone"),
    _getRootNode_1: dart.privateName(html$, "_getRootNode_1"),
    _getRootNode_2: dart.privateName(html$, "_getRootNode_2"),
    $getRootNode: dartx.getRootNode = Symbol("dartx.getRootNode"),
    $hasChildNodes: dartx.hasChildNodes = Symbol("dartx.hasChildNodes"),
    $insertBefore: dartx.insertBefore = Symbol("dartx.insertBefore"),
    _CustomEventStreamProvider__eventTypeGetter: dart.privateName(html$, "_CustomEventStreamProvider._eventTypeGetter"),
    $respondWith: dartx.respondWith = Symbol("dartx.respondWith"),
    $waitUntil: dartx.waitUntil = Symbol("dartx.waitUntil"),
    $quaternion: dartx.quaternion = Symbol("dartx.quaternion"),
    $populateMatrix: dartx.populateMatrix = Symbol("dartx.populateMatrix"),
    $activated: dartx.activated = Symbol("dartx.activated"),
    $hasReading: dartx.hasReading = Symbol("dartx.hasReading"),
    $timestamp: dartx.timestamp = Symbol("dartx.timestamp"),
    $start: dartx.start = Symbol("dartx.start"),
    $stop: dartx.stop = Symbol("dartx.stop"),
    $x: dartx.x = Symbol("dartx.x"),
    $y: dartx.y = Symbol("dartx.y"),
    $z: dartx.z = Symbol("dartx.z"),
    $activeDescendant: dartx.activeDescendant = Symbol("dartx.activeDescendant"),
    $atomic: dartx.atomic = Symbol("dartx.atomic"),
    $autocomplete: dartx.autocomplete = Symbol("dartx.autocomplete"),
    $busy: dartx.busy = Symbol("dartx.busy"),
    $checked: dartx.checked = Symbol("dartx.checked"),
    $colCount: dartx.colCount = Symbol("dartx.colCount"),
    $colIndex: dartx.colIndex = Symbol("dartx.colIndex"),
    $colSpan: dartx.colSpan = Symbol("dartx.colSpan"),
    $controls: dartx.controls = Symbol("dartx.controls"),
    $current: dartx.current = Symbol("dartx.current"),
    $describedBy: dartx.describedBy = Symbol("dartx.describedBy"),
    $details: dartx.details = Symbol("dartx.details"),
    $disabled: dartx.disabled = Symbol("dartx.disabled"),
    $errorMessage: dartx.errorMessage = Symbol("dartx.errorMessage"),
    $expanded: dartx.expanded = Symbol("dartx.expanded"),
    $flowTo: dartx.flowTo = Symbol("dartx.flowTo"),
    $hasPopUp: dartx.hasPopUp = Symbol("dartx.hasPopUp"),
    $invalid: dartx.invalid = Symbol("dartx.invalid"),
    $keyShortcuts: dartx.keyShortcuts = Symbol("dartx.keyShortcuts"),
    $label: dartx.label = Symbol("dartx.label"),
    $labeledBy: dartx.labeledBy = Symbol("dartx.labeledBy"),
    $level: dartx.level = Symbol("dartx.level"),
    $live: dartx.live = Symbol("dartx.live"),
    $modal: dartx.modal = Symbol("dartx.modal"),
    $multiline: dartx.multiline = Symbol("dartx.multiline"),
    $multiselectable: dartx.multiselectable = Symbol("dartx.multiselectable"),
    $orientation: dartx.orientation = Symbol("dartx.orientation"),
    $owns: dartx.owns = Symbol("dartx.owns"),
    $placeholder: dartx.placeholder = Symbol("dartx.placeholder"),
    $posInSet: dartx.posInSet = Symbol("dartx.posInSet"),
    $pressed: dartx.pressed = Symbol("dartx.pressed"),
    $readOnly: dartx.readOnly = Symbol("dartx.readOnly"),
    $relevant: dartx.relevant = Symbol("dartx.relevant"),
    $required: dartx.required = Symbol("dartx.required"),
    $role: dartx.role = Symbol("dartx.role"),
    $roleDescription: dartx.roleDescription = Symbol("dartx.roleDescription"),
    $rowCount: dartx.rowCount = Symbol("dartx.rowCount"),
    $rowIndex: dartx.rowIndex = Symbol("dartx.rowIndex"),
    $rowSpan: dartx.rowSpan = Symbol("dartx.rowSpan"),
    $selected: dartx.selected = Symbol("dartx.selected"),
    $setSize: dartx.setSize = Symbol("dartx.setSize"),
    $valueMax: dartx.valueMax = Symbol("dartx.valueMax"),
    $valueMin: dartx.valueMin = Symbol("dartx.valueMin"),
    $valueNow: dartx.valueNow = Symbol("dartx.valueNow"),
    $valueText: dartx.valueText = Symbol("dartx.valueText"),
    $appendChild: dartx.appendChild = Symbol("dartx.appendChild"),
    $onAccessibleClick: dartx.onAccessibleClick = Symbol("dartx.onAccessibleClick"),
    $onAccessibleContextMenu: dartx.onAccessibleContextMenu = Symbol("dartx.onAccessibleContextMenu"),
    $onAccessibleDecrement: dartx.onAccessibleDecrement = Symbol("dartx.onAccessibleDecrement"),
    $onAccessibleFocus: dartx.onAccessibleFocus = Symbol("dartx.onAccessibleFocus"),
    $onAccessibleIncrement: dartx.onAccessibleIncrement = Symbol("dartx.onAccessibleIncrement"),
    $onAccessibleScrollIntoView: dartx.onAccessibleScrollIntoView = Symbol("dartx.onAccessibleScrollIntoView"),
    __setter__: dart.privateName(html$, "__setter__"),
    $item: dartx.item = Symbol("dartx.item"),
    $illuminance: dartx.illuminance = Symbol("dartx.illuminance"),
    $download: dartx.download = Symbol("dartx.download"),
    $hreflang: dartx.hreflang = Symbol("dartx.hreflang"),
    $referrerPolicy: dartx.referrerPolicy = Symbol("dartx.referrerPolicy"),
    $rel: dartx.rel = Symbol("dartx.rel"),
    $hash: dartx.hash = Symbol("dartx.hash"),
    $host: dartx.host = Symbol("dartx.host"),
    $hostname: dartx.hostname = Symbol("dartx.hostname"),
    $href: dartx.href = Symbol("dartx.href"),
    $origin: dartx.origin = Symbol("dartx.origin"),
    $password: dartx.password = Symbol("dartx.password"),
    $pathname: dartx.pathname = Symbol("dartx.pathname"),
    $port: dartx.port = Symbol("dartx.port"),
    $protocol: dartx.protocol = Symbol("dartx.protocol"),
    $search: dartx.search = Symbol("dartx.search"),
    $username: dartx.username = Symbol("dartx.username"),
    $currentTime: dartx.currentTime = Symbol("dartx.currentTime"),
    $effect: dartx.effect = Symbol("dartx.effect"),
    $finished: dartx.finished = Symbol("dartx.finished"),
    $playState: dartx.playState = Symbol("dartx.playState"),
    $playbackRate: dartx.playbackRate = Symbol("dartx.playbackRate"),
    $ready: dartx.ready = Symbol("dartx.ready"),
    $startTime: dartx.startTime = Symbol("dartx.startTime"),
    $timeline: dartx.timeline = Symbol("dartx.timeline"),
    $cancel: dartx.cancel = Symbol("dartx.cancel"),
    $finish: dartx.finish = Symbol("dartx.finish"),
    $pause: dartx.pause = Symbol("dartx.pause"),
    $play: dartx.play = Symbol("dartx.play"),
    $reverse: dartx.reverse = Symbol("dartx.reverse"),
    $onCancel: dartx.onCancel = Symbol("dartx.onCancel"),
    $onFinish: dartx.onFinish = Symbol("dartx.onFinish"),
    $timing: dartx.timing = Symbol("dartx.timing"),
    _getComputedTiming_1: dart.privateName(html$, "_getComputedTiming_1"),
    $getComputedTiming: dartx.getComputedTiming = Symbol("dartx.getComputedTiming"),
    $delay: dartx.delay = Symbol("dartx.delay"),
    $duration: dartx.duration = Symbol("dartx.duration"),
    $easing: dartx.easing = Symbol("dartx.easing"),
    $endDelay: dartx.endDelay = Symbol("dartx.endDelay"),
    $fill: dartx.fill = Symbol("dartx.fill"),
    $iterationStart: dartx.iterationStart = Symbol("dartx.iterationStart"),
    $iterations: dartx.iterations = Symbol("dartx.iterations"),
    $animationName: dartx.animationName = Symbol("dartx.animationName"),
    $elapsedTime: dartx.elapsedTime = Symbol("dartx.elapsedTime"),
    $timelineTime: dartx.timelineTime = Symbol("dartx.timelineTime"),
    $registerAnimator: dartx.registerAnimator = Symbol("dartx.registerAnimator"),
    $status: dartx.status = Symbol("dartx.status"),
    $swapCache: dartx.swapCache = Symbol("dartx.swapCache"),
    $onCached: dartx.onCached = Symbol("dartx.onCached"),
    $onChecking: dartx.onChecking = Symbol("dartx.onChecking"),
    $onDownloading: dartx.onDownloading = Symbol("dartx.onDownloading"),
    $onNoUpdate: dartx.onNoUpdate = Symbol("dartx.onNoUpdate"),
    $onObsolete: dartx.onObsolete = Symbol("dartx.onObsolete"),
    $onProgress: dartx.onProgress = Symbol("dartx.onProgress"),
    $onUpdateReady: dartx.onUpdateReady = Symbol("dartx.onUpdateReady"),
    $reason: dartx.reason = Symbol("dartx.reason"),
    $url: dartx.url = Symbol("dartx.url"),
    $alt: dartx.alt = Symbol("dartx.alt"),
    $coords: dartx.coords = Symbol("dartx.coords"),
    $shape: dartx.shape = Symbol("dartx.shape"),
    $audioTracks: dartx.audioTracks = Symbol("dartx.audioTracks"),
    $autoplay: dartx.autoplay = Symbol("dartx.autoplay"),
    $buffered: dartx.buffered = Symbol("dartx.buffered"),
    $controlsList: dartx.controlsList = Symbol("dartx.controlsList"),
    $crossOrigin: dartx.crossOrigin = Symbol("dartx.crossOrigin"),
    $currentSrc: dartx.currentSrc = Symbol("dartx.currentSrc"),
    $defaultMuted: dartx.defaultMuted = Symbol("dartx.defaultMuted"),
    $defaultPlaybackRate: dartx.defaultPlaybackRate = Symbol("dartx.defaultPlaybackRate"),
    $disableRemotePlayback: dartx.disableRemotePlayback = Symbol("dartx.disableRemotePlayback"),
    $ended: dartx.ended = Symbol("dartx.ended"),
    $loop: dartx.loop = Symbol("dartx.loop"),
    $mediaKeys: dartx.mediaKeys = Symbol("dartx.mediaKeys"),
    $muted: dartx.muted = Symbol("dartx.muted"),
    $networkState: dartx.networkState = Symbol("dartx.networkState"),
    $paused: dartx.paused = Symbol("dartx.paused"),
    $played: dartx.played = Symbol("dartx.played"),
    $preload: dartx.preload = Symbol("dartx.preload"),
    $remote: dartx.remote = Symbol("dartx.remote"),
    $seekable: dartx.seekable = Symbol("dartx.seekable"),
    $seeking: dartx.seeking = Symbol("dartx.seeking"),
    $sinkId: dartx.sinkId = Symbol("dartx.sinkId"),
    $src: dartx.src = Symbol("dartx.src"),
    $srcObject: dartx.srcObject = Symbol("dartx.srcObject"),
    $textTracks: dartx.textTracks = Symbol("dartx.textTracks"),
    $videoTracks: dartx.videoTracks = Symbol("dartx.videoTracks"),
    $volume: dartx.volume = Symbol("dartx.volume"),
    $audioDecodedByteCount: dartx.audioDecodedByteCount = Symbol("dartx.audioDecodedByteCount"),
    $videoDecodedByteCount: dartx.videoDecodedByteCount = Symbol("dartx.videoDecodedByteCount"),
    $addTextTrack: dartx.addTextTrack = Symbol("dartx.addTextTrack"),
    $canPlayType: dartx.canPlayType = Symbol("dartx.canPlayType"),
    $captureStream: dartx.captureStream = Symbol("dartx.captureStream"),
    $load: dartx.load = Symbol("dartx.load"),
    $setMediaKeys: dartx.setMediaKeys = Symbol("dartx.setMediaKeys"),
    $setSinkId: dartx.setSinkId = Symbol("dartx.setSinkId"),
    $authenticatorData: dartx.authenticatorData = Symbol("dartx.authenticatorData"),
    $signature: dartx.signature = Symbol("dartx.signature"),
    $clientDataJson: dartx.clientDataJson = Symbol("dartx.clientDataJson"),
    $attestationObject: dartx.attestationObject = Symbol("dartx.attestationObject"),
    $state: dartx.state = Symbol("dartx.state"),
    $fetches: dartx.fetches = Symbol("dartx.fetches"),
    $request: dartx.request = Symbol("dartx.request"),
    $fetch: dartx.fetch = Symbol("dartx.fetch"),
    $getIds: dartx.getIds = Symbol("dartx.getIds"),
    $downloadTotal: dartx.downloadTotal = Symbol("dartx.downloadTotal"),
    $downloaded: dartx.downloaded = Symbol("dartx.downloaded"),
    $totalDownloadSize: dartx.totalDownloadSize = Symbol("dartx.totalDownloadSize"),
    $uploadTotal: dartx.uploadTotal = Symbol("dartx.uploadTotal"),
    $uploaded: dartx.uploaded = Symbol("dartx.uploaded"),
    $response: dartx.response = Symbol("dartx.response"),
    $updateUI: dartx.updateUI = Symbol("dartx.updateUI"),
    $visible: dartx.visible = Symbol("dartx.visible"),
    $detect: dartx.detect = Symbol("dartx.detect"),
    $charging: dartx.charging = Symbol("dartx.charging"),
    $chargingTime: dartx.chargingTime = Symbol("dartx.chargingTime"),
    $dischargingTime: dartx.dischargingTime = Symbol("dartx.dischargingTime"),
    $platforms: dartx.platforms = Symbol("dartx.platforms"),
    $userChoice: dartx.userChoice = Symbol("dartx.userChoice"),
    $prompt: dartx.prompt = Symbol("dartx.prompt"),
    $returnValue: dartx.returnValue = Symbol("dartx.returnValue"),
    $size: dartx.size = Symbol("dartx.size"),
    $slice: dartx.slice = Symbol("dartx.slice"),
    $data: dartx.data = Symbol("dartx.data"),
    $timecode: dartx.timecode = Symbol("dartx.timecode"),
    $characteristic: dartx.characteristic = Symbol("dartx.characteristic"),
    $uuid: dartx.uuid = Symbol("dartx.uuid"),
    $readValue: dartx.readValue = Symbol("dartx.readValue"),
    $writeValue: dartx.writeValue = Symbol("dartx.writeValue"),
    $bodyUsed: dartx.bodyUsed = Symbol("dartx.bodyUsed"),
    $arrayBuffer: dartx.arrayBuffer = Symbol("dartx.arrayBuffer"),
    $blob: dartx.blob = Symbol("dartx.blob"),
    $formData: dartx.formData = Symbol("dartx.formData"),
    $json: dartx.json = Symbol("dartx.json"),
    $onHashChange: dartx.onHashChange = Symbol("dartx.onHashChange"),
    $onMessage: dartx.onMessage = Symbol("dartx.onMessage"),
    $onOffline: dartx.onOffline = Symbol("dartx.onOffline"),
    $onOnline: dartx.onOnline = Symbol("dartx.onOnline"),
    $onPopState: dartx.onPopState = Symbol("dartx.onPopState"),
    $onStorage: dartx.onStorage = Symbol("dartx.onStorage"),
    $onUnload: dartx.onUnload = Symbol("dartx.onUnload"),
    $postMessage: dartx.postMessage = Symbol("dartx.postMessage"),
    $budgetAt: dartx.budgetAt = Symbol("dartx.budgetAt"),
    $time: dartx.time = Symbol("dartx.time"),
    $autofocus: dartx.autofocus = Symbol("dartx.autofocus"),
    $form: dartx.form = Symbol("dartx.form"),
    $formAction: dartx.formAction = Symbol("dartx.formAction"),
    $formEnctype: dartx.formEnctype = Symbol("dartx.formEnctype"),
    $formMethod: dartx.formMethod = Symbol("dartx.formMethod"),
    $formNoValidate: dartx.formNoValidate = Symbol("dartx.formNoValidate"),
    $formTarget: dartx.formTarget = Symbol("dartx.formTarget"),
    $labels: dartx.labels = Symbol("dartx.labels"),
    $validationMessage: dartx.validationMessage = Symbol("dartx.validationMessage"),
    $validity: dartx.validity = Symbol("dartx.validity"),
    $willValidate: dartx.willValidate = Symbol("dartx.willValidate"),
    $checkValidity: dartx.checkValidity = Symbol("dartx.checkValidity"),
    $reportValidity: dartx.reportValidity = Symbol("dartx.reportValidity"),
    $setCustomValidity: dartx.setCustomValidity = Symbol("dartx.setCustomValidity"),
    $wholeText: dartx.wholeText = Symbol("dartx.wholeText"),
    $splitText: dartx.splitText = Symbol("dartx.splitText"),
    $appendData: dartx.appendData = Symbol("dartx.appendData"),
    $deleteData: dartx.deleteData = Symbol("dartx.deleteData"),
    $insertData: dartx.insertData = Symbol("dartx.insertData"),
    $replaceData: dartx.replaceData = Symbol("dartx.replaceData"),
    $substringData: dartx.substringData = Symbol("dartx.substringData"),
    $has: dartx.has = Symbol("dartx.has"),
    $match: dartx.match = Symbol("dartx.match"),
    $methodData: dartx.methodData = Symbol("dartx.methodData"),
    $modifiers: dartx.modifiers = Symbol("dartx.modifiers"),
    $paymentRequestOrigin: dartx.paymentRequestOrigin = Symbol("dartx.paymentRequestOrigin"),
    $topLevelOrigin: dartx.topLevelOrigin = Symbol("dartx.topLevelOrigin"),
    $canvas: dartx.canvas = Symbol("dartx.canvas"),
    $requestFrame: dartx.requestFrame = Symbol("dartx.requestFrame"),
    $contentHint: dartx.contentHint = Symbol("dartx.contentHint"),
    $enabled: dartx.enabled = Symbol("dartx.enabled"),
    $kind: dartx.kind = Symbol("dartx.kind"),
    $applyConstraints: dartx.applyConstraints = Symbol("dartx.applyConstraints"),
    _getCapabilities_1: dart.privateName(html$, "_getCapabilities_1"),
    $getCapabilities: dartx.getCapabilities = Symbol("dartx.getCapabilities"),
    _getConstraints_1: dart.privateName(html$, "_getConstraints_1"),
    $getConstraints: dartx.getConstraints = Symbol("dartx.getConstraints"),
    _getSettings_1: dart.privateName(html$, "_getSettings_1"),
    $getSettings: dartx.getSettings = Symbol("dartx.getSettings"),
    $onMute: dartx.onMute = Symbol("dartx.onMute"),
    $onUnmute: dartx.onUnmute = Symbol("dartx.onUnmute"),
    _getContext_1: dart.privateName(html$, "_getContext_1"),
    _getContext_2: dart.privateName(html$, "_getContext_2"),
    $getContext: dartx.getContext = Symbol("dartx.getContext"),
    _toDataUrl: dart.privateName(html$, "_toDataUrl"),
    $transferControlToOffscreen: dartx.transferControlToOffscreen = Symbol("dartx.transferControlToOffscreen"),
    $onWebGlContextLost: dartx.onWebGlContextLost = Symbol("dartx.onWebGlContextLost"),
    $onWebGlContextRestored: dartx.onWebGlContextRestored = Symbol("dartx.onWebGlContextRestored"),
    $context2D: dartx.context2D = Symbol("dartx.context2D"),
    $getContext3d: dartx.getContext3d = Symbol("dartx.getContext3d"),
    $toDataUrl: dartx.toDataUrl = Symbol("dartx.toDataUrl"),
    _toBlob: dart.privateName(html$, "_toBlob"),
    $toBlob: dartx.toBlob = Symbol("dartx.toBlob"),
    $addColorStop: dartx.addColorStop = Symbol("dartx.addColorStop"),
    $setTransform: dartx.setTransform = Symbol("dartx.setTransform"),
    $currentTransform: dartx.currentTransform = Symbol("dartx.currentTransform"),
    $fillStyle: dartx.fillStyle = Symbol("dartx.fillStyle"),
    $filter: dartx.filter = Symbol("dartx.filter"),
    $font: dartx.font = Symbol("dartx.font"),
    $globalAlpha: dartx.globalAlpha = Symbol("dartx.globalAlpha"),
    $globalCompositeOperation: dartx.globalCompositeOperation = Symbol("dartx.globalCompositeOperation"),
    $imageSmoothingEnabled: dartx.imageSmoothingEnabled = Symbol("dartx.imageSmoothingEnabled"),
    $imageSmoothingQuality: dartx.imageSmoothingQuality = Symbol("dartx.imageSmoothingQuality"),
    $lineCap: dartx.lineCap = Symbol("dartx.lineCap"),
    $lineJoin: dartx.lineJoin = Symbol("dartx.lineJoin"),
    $lineWidth: dartx.lineWidth = Symbol("dartx.lineWidth"),
    $miterLimit: dartx.miterLimit = Symbol("dartx.miterLimit"),
    $shadowBlur: dartx.shadowBlur = Symbol("dartx.shadowBlur"),
    $shadowColor: dartx.shadowColor = Symbol("dartx.shadowColor"),
    $shadowOffsetX: dartx.shadowOffsetX = Symbol("dartx.shadowOffsetX"),
    $shadowOffsetY: dartx.shadowOffsetY = Symbol("dartx.shadowOffsetY"),
    $strokeStyle: dartx.strokeStyle = Symbol("dartx.strokeStyle"),
    $textAlign: dartx.textAlign = Symbol("dartx.textAlign"),
    $textBaseline: dartx.textBaseline = Symbol("dartx.textBaseline"),
    _addHitRegion_1: dart.privateName(html$, "_addHitRegion_1"),
    _addHitRegion_2: dart.privateName(html$, "_addHitRegion_2"),
    $addHitRegion: dartx.addHitRegion = Symbol("dartx.addHitRegion"),
    $beginPath: dartx.beginPath = Symbol("dartx.beginPath"),
    $clearHitRegions: dartx.clearHitRegions = Symbol("dartx.clearHitRegions"),
    $clearRect: dartx.clearRect = Symbol("dartx.clearRect"),
    $clip: dartx.clip = Symbol("dartx.clip"),
    _createImageData_1: dart.privateName(html$, "_createImageData_1"),
    _createImageData_2: dart.privateName(html$, "_createImageData_2"),
    _createImageData_3: dart.privateName(html$, "_createImageData_3"),
    _createImageData_4: dart.privateName(html$, "_createImageData_4"),
    _createImageData_5: dart.privateName(html$, "_createImageData_5"),
    $createImageData: dartx.createImageData = Symbol("dartx.createImageData"),
    $createLinearGradient: dartx.createLinearGradient = Symbol("dartx.createLinearGradient"),
    $createPattern: dartx.createPattern = Symbol("dartx.createPattern"),
    $createRadialGradient: dartx.createRadialGradient = Symbol("dartx.createRadialGradient"),
    $drawFocusIfNeeded: dartx.drawFocusIfNeeded = Symbol("dartx.drawFocusIfNeeded"),
    $fillRect: dartx.fillRect = Symbol("dartx.fillRect"),
    _getContextAttributes_1: dart.privateName(html$, "_getContextAttributes_1"),
    $getContextAttributes: dartx.getContextAttributes = Symbol("dartx.getContextAttributes"),
    _getImageData_1: dart.privateName(html$, "_getImageData_1"),
    $getImageData: dartx.getImageData = Symbol("dartx.getImageData"),
    _getLineDash: dart.privateName(html$, "_getLineDash"),
    $isContextLost: dartx.isContextLost = Symbol("dartx.isContextLost"),
    $isPointInPath: dartx.isPointInPath = Symbol("dartx.isPointInPath"),
    $isPointInStroke: dartx.isPointInStroke = Symbol("dartx.isPointInStroke"),
    $measureText: dartx.measureText = Symbol("dartx.measureText"),
    _putImageData_1: dart.privateName(html$, "_putImageData_1"),
    _putImageData_2: dart.privateName(html$, "_putImageData_2"),
    $putImageData: dartx.putImageData = Symbol("dartx.putImageData"),
    $removeHitRegion: dartx.removeHitRegion = Symbol("dartx.removeHitRegion"),
    $resetTransform: dartx.resetTransform = Symbol("dartx.resetTransform"),
    $restore: dartx.restore = Symbol("dartx.restore"),
    $rotate: dartx.rotate = Symbol("dartx.rotate"),
    $save: dartx.save = Symbol("dartx.save"),
    $scale: dartx.scale = Symbol("dartx.scale"),
    $scrollPathIntoView: dartx.scrollPathIntoView = Symbol("dartx.scrollPathIntoView"),
    $stroke: dartx.stroke = Symbol("dartx.stroke"),
    $strokeRect: dartx.strokeRect = Symbol("dartx.strokeRect"),
    $strokeText: dartx.strokeText = Symbol("dartx.strokeText"),
    $transform: dartx.transform = Symbol("dartx.transform"),
    _arc: dart.privateName(html$, "_arc"),
    $arcTo: dartx.arcTo = Symbol("dartx.arcTo"),
    $bezierCurveTo: dartx.bezierCurveTo = Symbol("dartx.bezierCurveTo"),
    $closePath: dartx.closePath = Symbol("dartx.closePath"),
    $ellipse: dartx.ellipse = Symbol("dartx.ellipse"),
    $lineTo: dartx.lineTo = Symbol("dartx.lineTo"),
    $moveTo: dartx.moveTo = Symbol("dartx.moveTo"),
    $quadraticCurveTo: dartx.quadraticCurveTo = Symbol("dartx.quadraticCurveTo"),
    $rect: dartx.rect = Symbol("dartx.rect"),
    $createImageDataFromImageData: dartx.createImageDataFromImageData = Symbol("dartx.createImageDataFromImageData"),
    $setFillColorRgb: dartx.setFillColorRgb = Symbol("dartx.setFillColorRgb"),
    $setFillColorHsl: dartx.setFillColorHsl = Symbol("dartx.setFillColorHsl"),
    $setStrokeColorRgb: dartx.setStrokeColorRgb = Symbol("dartx.setStrokeColorRgb"),
    $setStrokeColorHsl: dartx.setStrokeColorHsl = Symbol("dartx.setStrokeColorHsl"),
    $arc: dartx.arc = Symbol("dartx.arc"),
    $createPatternFromImage: dartx.createPatternFromImage = Symbol("dartx.createPatternFromImage"),
    $drawImageScaled: dartx.drawImageScaled = Symbol("dartx.drawImageScaled"),
    $drawImageScaledFromSource: dartx.drawImageScaledFromSource = Symbol("dartx.drawImageScaledFromSource"),
    $drawImageToRect: dartx.drawImageToRect = Symbol("dartx.drawImageToRect"),
    $drawImage: dartx.drawImage = Symbol("dartx.drawImage"),
    $lineDashOffset: dartx.lineDashOffset = Symbol("dartx.lineDashOffset"),
    $getLineDash: dartx.getLineDash = Symbol("dartx.getLineDash"),
    $setLineDash: dartx.setLineDash = Symbol("dartx.setLineDash"),
    $fillText: dartx.fillText = Symbol("dartx.fillText"),
    $backingStorePixelRatio: dartx.backingStorePixelRatio = Symbol("dartx.backingStorePixelRatio"),
    $frameType: dartx.frameType = Symbol("dartx.frameType"),
    $claim: dartx.claim = Symbol("dartx.claim"),
    $matchAll: dartx.matchAll = Symbol("dartx.matchAll"),
    $openWindow: dartx.openWindow = Symbol("dartx.openWindow"),
    $clipboardData: dartx.clipboardData = Symbol("dartx.clipboardData"),
    $code: dartx.code = Symbol("dartx.code"),
    $wasClean: dartx.wasClean = Symbol("dartx.wasClean"),
    _initCompositionEvent: dart.privateName(html$, "_initCompositionEvent"),
    _initUIEvent: dart.privateName(html$, "_initUIEvent"),
    $detail: dartx.detail = Symbol("dartx.detail"),
    $sourceCapabilities: dartx.sourceCapabilities = Symbol("dartx.sourceCapabilities"),
    _get_view: dart.privateName(html$, "_get_view"),
    $view: dartx.view = Symbol("dartx.view"),
    _which: dart.privateName(html$, "_which"),
    $select: dartx.select = Symbol("dartx.select"),
    $getDistributedNodes: dartx.getDistributedNodes = Symbol("dartx.getDistributedNodes"),
    $set: dartx.set = Symbol("dartx.set"),
    $accuracy: dartx.accuracy = Symbol("dartx.accuracy"),
    $altitude: dartx.altitude = Symbol("dartx.altitude"),
    $altitudeAccuracy: dartx.altitudeAccuracy = Symbol("dartx.altitudeAccuracy"),
    $heading: dartx.heading = Symbol("dartx.heading"),
    $latitude: dartx.latitude = Symbol("dartx.latitude"),
    $longitude: dartx.longitude = Symbol("dartx.longitude"),
    $speed: dartx.speed = Symbol("dartx.speed"),
    $iconUrl: dartx.iconUrl = Symbol("dartx.iconUrl"),
    $create: dartx.create = Symbol("dartx.create"),
    $preventSilentAccess: dartx.preventSilentAccess = Symbol("dartx.preventSilentAccess"),
    $requireUserMediation: dartx.requireUserMediation = Symbol("dartx.requireUserMediation"),
    $store: dartx.store = Symbol("dartx.store"),
    _getRandomValues: dart.privateName(html$, "_getRandomValues"),
    $getRandomValues: dartx.getRandomValues = Symbol("dartx.getRandomValues"),
    $subtle: dartx.subtle = Symbol("dartx.subtle"),
    $algorithm: dartx.algorithm = Symbol("dartx.algorithm"),
    $extractable: dartx.extractable = Symbol("dartx.extractable"),
    $usages: dartx.usages = Symbol("dartx.usages"),
    $encoding: dartx.encoding = Symbol("dartx.encoding"),
    $cssText: dartx.cssText = Symbol("dartx.cssText"),
    $parentRule: dartx.parentRule = Symbol("dartx.parentRule"),
    $parentStyleSheet: dartx.parentStyleSheet = Symbol("dartx.parentStyleSheet"),
    $conditionText: dartx.conditionText = Symbol("dartx.conditionText"),
    $cssRules: dartx.cssRules = Symbol("dartx.cssRules"),
    $deleteRule: dartx.deleteRule = Symbol("dartx.deleteRule"),
    $insertRule: dartx.insertRule = Symbol("dartx.insertRule"),
    $intrinsicHeight: dartx.intrinsicHeight = Symbol("dartx.intrinsicHeight"),
    $intrinsicRatio: dartx.intrinsicRatio = Symbol("dartx.intrinsicRatio"),
    $intrinsicWidth: dartx.intrinsicWidth = Symbol("dartx.intrinsicWidth"),
    $media: dartx.media = Symbol("dartx.media"),
    $styleSheet: dartx.styleSheet = Symbol("dartx.styleSheet"),
    $keyText: dartx.keyText = Symbol("dartx.keyText"),
    __getter__: dart.privateName(html$, "__getter__"),
    $appendRule: dartx.appendRule = Symbol("dartx.appendRule"),
    $findRule: dartx.findRule = Symbol("dartx.findRule"),
    $matrix: dartx.matrix = Symbol("dartx.matrix"),
    $is2D: dartx.is2D = Symbol("dartx.is2D"),
    $prefix: dartx.prefix = Symbol("dartx.prefix"),
    $div: dartx.div = Symbol("dartx.div"),
    $mul: dartx.mul = Symbol("dartx.mul"),
    $sub: dartx.sub = Symbol("dartx.sub"),
    $to: dartx.to = Symbol("dartx.to"),
    $selectorText: dartx.selectorText = Symbol("dartx.selectorText"),
    $angle: dartx.angle = Symbol("dartx.angle"),
    $ax: dartx.ax = Symbol("dartx.ax"),
    $ay: dartx.ay = Symbol("dartx.ay"),
    _getPropertyValueHelper: dart.privateName(html$, "_getPropertyValueHelper"),
    $getPropertyValue: dartx.getPropertyValue = Symbol("dartx.getPropertyValue"),
    _browserPropertyName: dart.privateName(html$, "_browserPropertyName"),
    _getPropertyValue: dart.privateName(html$, "_getPropertyValue"),
    _supportsProperty: dart.privateName(html$, "_supportsProperty"),
    $supportsProperty: dartx.supportsProperty = Symbol("dartx.supportsProperty"),
    _setPropertyHelper: dart.privateName(html$, "_setPropertyHelper"),
    $setProperty: dartx.setProperty = Symbol("dartx.setProperty"),
    _supportedBrowserPropertyName: dart.privateName(html$, "_supportedBrowserPropertyName"),
    $cssFloat: dartx.cssFloat = Symbol("dartx.cssFloat"),
    $getPropertyPriority: dartx.getPropertyPriority = Symbol("dartx.getPropertyPriority"),
    $removeProperty: dartx.removeProperty = Symbol("dartx.removeProperty"),
    _background: dart.privateName(html$, "_background"),
    $background: dartx.background = Symbol("dartx.background"),
    _backgroundAttachment: dart.privateName(html$, "_backgroundAttachment"),
    $backgroundAttachment: dartx.backgroundAttachment = Symbol("dartx.backgroundAttachment"),
    _backgroundColor: dart.privateName(html$, "_backgroundColor"),
    $backgroundColor: dartx.backgroundColor = Symbol("dartx.backgroundColor"),
    _backgroundImage: dart.privateName(html$, "_backgroundImage"),
    $backgroundImage: dartx.backgroundImage = Symbol("dartx.backgroundImage"),
    _backgroundPosition: dart.privateName(html$, "_backgroundPosition"),
    $backgroundPosition: dartx.backgroundPosition = Symbol("dartx.backgroundPosition"),
    _backgroundRepeat: dart.privateName(html$, "_backgroundRepeat"),
    $backgroundRepeat: dartx.backgroundRepeat = Symbol("dartx.backgroundRepeat"),
    _border: dart.privateName(html$, "_border"),
    $border: dartx.border = Symbol("dartx.border"),
    _borderBottom: dart.privateName(html$, "_borderBottom"),
    $borderBottom: dartx.borderBottom = Symbol("dartx.borderBottom"),
    _borderBottomColor: dart.privateName(html$, "_borderBottomColor"),
    $borderBottomColor: dartx.borderBottomColor = Symbol("dartx.borderBottomColor"),
    _borderBottomStyle: dart.privateName(html$, "_borderBottomStyle"),
    $borderBottomStyle: dartx.borderBottomStyle = Symbol("dartx.borderBottomStyle"),
    _borderBottomWidth: dart.privateName(html$, "_borderBottomWidth"),
    $borderBottomWidth: dartx.borderBottomWidth = Symbol("dartx.borderBottomWidth"),
    _borderCollapse: dart.privateName(html$, "_borderCollapse"),
    $borderCollapse: dartx.borderCollapse = Symbol("dartx.borderCollapse"),
    _borderColor: dart.privateName(html$, "_borderColor"),
    $borderColor: dartx.borderColor = Symbol("dartx.borderColor"),
    _borderLeft: dart.privateName(html$, "_borderLeft"),
    $borderLeft: dartx.borderLeft = Symbol("dartx.borderLeft"),
    _borderLeftColor: dart.privateName(html$, "_borderLeftColor"),
    $borderLeftColor: dartx.borderLeftColor = Symbol("dartx.borderLeftColor"),
    _borderLeftStyle: dart.privateName(html$, "_borderLeftStyle"),
    $borderLeftStyle: dartx.borderLeftStyle = Symbol("dartx.borderLeftStyle"),
    _borderLeftWidth: dart.privateName(html$, "_borderLeftWidth"),
    $borderLeftWidth: dartx.borderLeftWidth = Symbol("dartx.borderLeftWidth"),
    _borderRight: dart.privateName(html$, "_borderRight"),
    $borderRight: dartx.borderRight = Symbol("dartx.borderRight"),
    _borderRightColor: dart.privateName(html$, "_borderRightColor"),
    $borderRightColor: dartx.borderRightColor = Symbol("dartx.borderRightColor"),
    _borderRightStyle: dart.privateName(html$, "_borderRightStyle"),
    $borderRightStyle: dartx.borderRightStyle = Symbol("dartx.borderRightStyle"),
    _borderRightWidth: dart.privateName(html$, "_borderRightWidth")
  };
  var S$0 = {
    $borderRightWidth: dartx.borderRightWidth = Symbol("dartx.borderRightWidth"),
    _borderSpacing: dart.privateName(html$, "_borderSpacing"),
    $borderSpacing: dartx.borderSpacing = Symbol("dartx.borderSpacing"),
    _borderStyle: dart.privateName(html$, "_borderStyle"),
    $borderStyle: dartx.borderStyle = Symbol("dartx.borderStyle"),
    _borderTop: dart.privateName(html$, "_borderTop"),
    $borderTop: dartx.borderTop = Symbol("dartx.borderTop"),
    _borderTopColor: dart.privateName(html$, "_borderTopColor"),
    $borderTopColor: dartx.borderTopColor = Symbol("dartx.borderTopColor"),
    _borderTopStyle: dart.privateName(html$, "_borderTopStyle"),
    $borderTopStyle: dartx.borderTopStyle = Symbol("dartx.borderTopStyle"),
    _borderTopWidth: dart.privateName(html$, "_borderTopWidth"),
    $borderTopWidth: dartx.borderTopWidth = Symbol("dartx.borderTopWidth"),
    _borderWidth: dart.privateName(html$, "_borderWidth"),
    $borderWidth: dartx.borderWidth = Symbol("dartx.borderWidth"),
    _bottom: dart.privateName(html$, "_bottom"),
    _captionSide: dart.privateName(html$, "_captionSide"),
    $captionSide: dartx.captionSide = Symbol("dartx.captionSide"),
    _clear$3: dart.privateName(html$, "_clear"),
    _clip: dart.privateName(html$, "_clip"),
    _color: dart.privateName(html$, "_color"),
    $color: dartx.color = Symbol("dartx.color"),
    _content: dart.privateName(html$, "_content"),
    $content: dartx.content = Symbol("dartx.content"),
    _cursor: dart.privateName(html$, "_cursor"),
    $cursor: dartx.cursor = Symbol("dartx.cursor"),
    _direction: dart.privateName(html$, "_direction"),
    _display: dart.privateName(html$, "_display"),
    $display: dartx.display = Symbol("dartx.display"),
    _emptyCells: dart.privateName(html$, "_emptyCells"),
    $emptyCells: dartx.emptyCells = Symbol("dartx.emptyCells"),
    _font: dart.privateName(html$, "_font"),
    _fontFamily: dart.privateName(html$, "_fontFamily"),
    $fontFamily: dartx.fontFamily = Symbol("dartx.fontFamily"),
    _fontSize: dart.privateName(html$, "_fontSize"),
    $fontSize: dartx.fontSize = Symbol("dartx.fontSize"),
    _fontStyle: dart.privateName(html$, "_fontStyle"),
    $fontStyle: dartx.fontStyle = Symbol("dartx.fontStyle"),
    _fontVariant: dart.privateName(html$, "_fontVariant"),
    $fontVariant: dartx.fontVariant = Symbol("dartx.fontVariant"),
    _fontWeight: dart.privateName(html$, "_fontWeight"),
    $fontWeight: dartx.fontWeight = Symbol("dartx.fontWeight"),
    _height$1: dart.privateName(html$, "_height"),
    _left$2: dart.privateName(html$, "_left"),
    _letterSpacing: dart.privateName(html$, "_letterSpacing"),
    $letterSpacing: dartx.letterSpacing = Symbol("dartx.letterSpacing"),
    _lineHeight: dart.privateName(html$, "_lineHeight"),
    $lineHeight: dartx.lineHeight = Symbol("dartx.lineHeight"),
    _listStyle: dart.privateName(html$, "_listStyle"),
    $listStyle: dartx.listStyle = Symbol("dartx.listStyle"),
    _listStyleImage: dart.privateName(html$, "_listStyleImage"),
    $listStyleImage: dartx.listStyleImage = Symbol("dartx.listStyleImage"),
    _listStylePosition: dart.privateName(html$, "_listStylePosition"),
    $listStylePosition: dartx.listStylePosition = Symbol("dartx.listStylePosition"),
    _listStyleType: dart.privateName(html$, "_listStyleType"),
    $listStyleType: dartx.listStyleType = Symbol("dartx.listStyleType"),
    _margin: dart.privateName(html$, "_margin"),
    $margin: dartx.margin = Symbol("dartx.margin"),
    _marginBottom: dart.privateName(html$, "_marginBottom"),
    $marginBottom: dartx.marginBottom = Symbol("dartx.marginBottom"),
    _marginLeft: dart.privateName(html$, "_marginLeft"),
    $marginLeft: dartx.marginLeft = Symbol("dartx.marginLeft"),
    _marginRight: dart.privateName(html$, "_marginRight"),
    $marginRight: dartx.marginRight = Symbol("dartx.marginRight"),
    _marginTop: dart.privateName(html$, "_marginTop"),
    $marginTop: dartx.marginTop = Symbol("dartx.marginTop"),
    _maxHeight: dart.privateName(html$, "_maxHeight"),
    $maxHeight: dartx.maxHeight = Symbol("dartx.maxHeight"),
    _maxWidth: dart.privateName(html$, "_maxWidth"),
    $maxWidth: dartx.maxWidth = Symbol("dartx.maxWidth"),
    _minHeight: dart.privateName(html$, "_minHeight"),
    $minHeight: dartx.minHeight = Symbol("dartx.minHeight"),
    _minWidth: dart.privateName(html$, "_minWidth"),
    $minWidth: dartx.minWidth = Symbol("dartx.minWidth"),
    _outline: dart.privateName(html$, "_outline"),
    $outline: dartx.outline = Symbol("dartx.outline"),
    _outlineColor: dart.privateName(html$, "_outlineColor"),
    $outlineColor: dartx.outlineColor = Symbol("dartx.outlineColor"),
    _outlineStyle: dart.privateName(html$, "_outlineStyle"),
    $outlineStyle: dartx.outlineStyle = Symbol("dartx.outlineStyle"),
    _outlineWidth: dart.privateName(html$, "_outlineWidth"),
    $outlineWidth: dartx.outlineWidth = Symbol("dartx.outlineWidth"),
    _overflow: dart.privateName(html$, "_overflow"),
    $overflow: dartx.overflow = Symbol("dartx.overflow"),
    _padding: dart.privateName(html$, "_padding"),
    $padding: dartx.padding = Symbol("dartx.padding"),
    _paddingBottom: dart.privateName(html$, "_paddingBottom"),
    $paddingBottom: dartx.paddingBottom = Symbol("dartx.paddingBottom"),
    _paddingLeft: dart.privateName(html$, "_paddingLeft"),
    $paddingLeft: dartx.paddingLeft = Symbol("dartx.paddingLeft"),
    _paddingRight: dart.privateName(html$, "_paddingRight"),
    $paddingRight: dartx.paddingRight = Symbol("dartx.paddingRight"),
    _paddingTop: dart.privateName(html$, "_paddingTop"),
    $paddingTop: dartx.paddingTop = Symbol("dartx.paddingTop"),
    _pageBreakAfter: dart.privateName(html$, "_pageBreakAfter"),
    $pageBreakAfter: dartx.pageBreakAfter = Symbol("dartx.pageBreakAfter"),
    _pageBreakBefore: dart.privateName(html$, "_pageBreakBefore"),
    $pageBreakBefore: dartx.pageBreakBefore = Symbol("dartx.pageBreakBefore"),
    _pageBreakInside: dart.privateName(html$, "_pageBreakInside"),
    $pageBreakInside: dartx.pageBreakInside = Symbol("dartx.pageBreakInside"),
    _position$2: dart.privateName(html$, "_position"),
    $position: dartx.position = Symbol("dartx.position"),
    _quotes: dart.privateName(html$, "_quotes"),
    $quotes: dartx.quotes = Symbol("dartx.quotes"),
    _right$2: dart.privateName(html$, "_right"),
    _tableLayout: dart.privateName(html$, "_tableLayout"),
    $tableLayout: dartx.tableLayout = Symbol("dartx.tableLayout"),
    _textAlign: dart.privateName(html$, "_textAlign"),
    _textDecoration: dart.privateName(html$, "_textDecoration"),
    $textDecoration: dartx.textDecoration = Symbol("dartx.textDecoration"),
    _textIndent: dart.privateName(html$, "_textIndent"),
    $textIndent: dartx.textIndent = Symbol("dartx.textIndent"),
    _textTransform: dart.privateName(html$, "_textTransform"),
    $textTransform: dartx.textTransform = Symbol("dartx.textTransform"),
    _top: dart.privateName(html$, "_top"),
    _unicodeBidi: dart.privateName(html$, "_unicodeBidi"),
    $unicodeBidi: dartx.unicodeBidi = Symbol("dartx.unicodeBidi"),
    _verticalAlign: dart.privateName(html$, "_verticalAlign"),
    $verticalAlign: dartx.verticalAlign = Symbol("dartx.verticalAlign"),
    _visibility: dart.privateName(html$, "_visibility"),
    $visibility: dartx.visibility = Symbol("dartx.visibility"),
    _whiteSpace: dart.privateName(html$, "_whiteSpace"),
    $whiteSpace: dartx.whiteSpace = Symbol("dartx.whiteSpace"),
    _width$1: dart.privateName(html$, "_width"),
    _wordSpacing: dart.privateName(html$, "_wordSpacing"),
    $wordSpacing: dartx.wordSpacing = Symbol("dartx.wordSpacing"),
    _zIndex: dart.privateName(html$, "_zIndex"),
    $zIndex: dartx.zIndex = Symbol("dartx.zIndex"),
    $alignContent: dartx.alignContent = Symbol("dartx.alignContent"),
    $alignItems: dartx.alignItems = Symbol("dartx.alignItems"),
    $alignSelf: dartx.alignSelf = Symbol("dartx.alignSelf"),
    $animation: dartx.animation = Symbol("dartx.animation"),
    $animationDelay: dartx.animationDelay = Symbol("dartx.animationDelay"),
    $animationDirection: dartx.animationDirection = Symbol("dartx.animationDirection"),
    $animationDuration: dartx.animationDuration = Symbol("dartx.animationDuration"),
    $animationFillMode: dartx.animationFillMode = Symbol("dartx.animationFillMode"),
    $animationIterationCount: dartx.animationIterationCount = Symbol("dartx.animationIterationCount"),
    $animationPlayState: dartx.animationPlayState = Symbol("dartx.animationPlayState"),
    $animationTimingFunction: dartx.animationTimingFunction = Symbol("dartx.animationTimingFunction"),
    $appRegion: dartx.appRegion = Symbol("dartx.appRegion"),
    $appearance: dartx.appearance = Symbol("dartx.appearance"),
    $aspectRatio: dartx.aspectRatio = Symbol("dartx.aspectRatio"),
    $backfaceVisibility: dartx.backfaceVisibility = Symbol("dartx.backfaceVisibility"),
    $backgroundBlendMode: dartx.backgroundBlendMode = Symbol("dartx.backgroundBlendMode"),
    $backgroundClip: dartx.backgroundClip = Symbol("dartx.backgroundClip"),
    $backgroundComposite: dartx.backgroundComposite = Symbol("dartx.backgroundComposite"),
    $backgroundOrigin: dartx.backgroundOrigin = Symbol("dartx.backgroundOrigin"),
    $backgroundPositionX: dartx.backgroundPositionX = Symbol("dartx.backgroundPositionX"),
    $backgroundPositionY: dartx.backgroundPositionY = Symbol("dartx.backgroundPositionY"),
    $backgroundRepeatX: dartx.backgroundRepeatX = Symbol("dartx.backgroundRepeatX"),
    $backgroundRepeatY: dartx.backgroundRepeatY = Symbol("dartx.backgroundRepeatY"),
    $backgroundSize: dartx.backgroundSize = Symbol("dartx.backgroundSize"),
    $borderAfter: dartx.borderAfter = Symbol("dartx.borderAfter"),
    $borderAfterColor: dartx.borderAfterColor = Symbol("dartx.borderAfterColor"),
    $borderAfterStyle: dartx.borderAfterStyle = Symbol("dartx.borderAfterStyle"),
    $borderAfterWidth: dartx.borderAfterWidth = Symbol("dartx.borderAfterWidth"),
    $borderBefore: dartx.borderBefore = Symbol("dartx.borderBefore"),
    $borderBeforeColor: dartx.borderBeforeColor = Symbol("dartx.borderBeforeColor"),
    $borderBeforeStyle: dartx.borderBeforeStyle = Symbol("dartx.borderBeforeStyle"),
    $borderBeforeWidth: dartx.borderBeforeWidth = Symbol("dartx.borderBeforeWidth"),
    $borderBottomLeftRadius: dartx.borderBottomLeftRadius = Symbol("dartx.borderBottomLeftRadius"),
    $borderBottomRightRadius: dartx.borderBottomRightRadius = Symbol("dartx.borderBottomRightRadius"),
    $borderEnd: dartx.borderEnd = Symbol("dartx.borderEnd"),
    $borderEndColor: dartx.borderEndColor = Symbol("dartx.borderEndColor"),
    $borderEndStyle: dartx.borderEndStyle = Symbol("dartx.borderEndStyle"),
    $borderEndWidth: dartx.borderEndWidth = Symbol("dartx.borderEndWidth"),
    $borderFit: dartx.borderFit = Symbol("dartx.borderFit"),
    $borderHorizontalSpacing: dartx.borderHorizontalSpacing = Symbol("dartx.borderHorizontalSpacing"),
    $borderImage: dartx.borderImage = Symbol("dartx.borderImage"),
    $borderImageOutset: dartx.borderImageOutset = Symbol("dartx.borderImageOutset"),
    $borderImageRepeat: dartx.borderImageRepeat = Symbol("dartx.borderImageRepeat"),
    $borderImageSlice: dartx.borderImageSlice = Symbol("dartx.borderImageSlice"),
    $borderImageSource: dartx.borderImageSource = Symbol("dartx.borderImageSource"),
    $borderImageWidth: dartx.borderImageWidth = Symbol("dartx.borderImageWidth"),
    $borderRadius: dartx.borderRadius = Symbol("dartx.borderRadius"),
    $borderStart: dartx.borderStart = Symbol("dartx.borderStart"),
    $borderStartColor: dartx.borderStartColor = Symbol("dartx.borderStartColor"),
    $borderStartStyle: dartx.borderStartStyle = Symbol("dartx.borderStartStyle"),
    $borderStartWidth: dartx.borderStartWidth = Symbol("dartx.borderStartWidth"),
    $borderTopLeftRadius: dartx.borderTopLeftRadius = Symbol("dartx.borderTopLeftRadius"),
    $borderTopRightRadius: dartx.borderTopRightRadius = Symbol("dartx.borderTopRightRadius"),
    $borderVerticalSpacing: dartx.borderVerticalSpacing = Symbol("dartx.borderVerticalSpacing"),
    $boxAlign: dartx.boxAlign = Symbol("dartx.boxAlign"),
    $boxDecorationBreak: dartx.boxDecorationBreak = Symbol("dartx.boxDecorationBreak"),
    $boxDirection: dartx.boxDirection = Symbol("dartx.boxDirection"),
    $boxFlex: dartx.boxFlex = Symbol("dartx.boxFlex"),
    $boxFlexGroup: dartx.boxFlexGroup = Symbol("dartx.boxFlexGroup"),
    $boxLines: dartx.boxLines = Symbol("dartx.boxLines"),
    $boxOrdinalGroup: dartx.boxOrdinalGroup = Symbol("dartx.boxOrdinalGroup"),
    $boxOrient: dartx.boxOrient = Symbol("dartx.boxOrient"),
    $boxPack: dartx.boxPack = Symbol("dartx.boxPack"),
    $boxReflect: dartx.boxReflect = Symbol("dartx.boxReflect"),
    $boxShadow: dartx.boxShadow = Symbol("dartx.boxShadow"),
    $boxSizing: dartx.boxSizing = Symbol("dartx.boxSizing"),
    $clipPath: dartx.clipPath = Symbol("dartx.clipPath"),
    $columnBreakAfter: dartx.columnBreakAfter = Symbol("dartx.columnBreakAfter"),
    $columnBreakBefore: dartx.columnBreakBefore = Symbol("dartx.columnBreakBefore"),
    $columnBreakInside: dartx.columnBreakInside = Symbol("dartx.columnBreakInside"),
    $columnCount: dartx.columnCount = Symbol("dartx.columnCount"),
    $columnFill: dartx.columnFill = Symbol("dartx.columnFill"),
    $columnGap: dartx.columnGap = Symbol("dartx.columnGap"),
    $columnRule: dartx.columnRule = Symbol("dartx.columnRule"),
    $columnRuleColor: dartx.columnRuleColor = Symbol("dartx.columnRuleColor"),
    $columnRuleStyle: dartx.columnRuleStyle = Symbol("dartx.columnRuleStyle"),
    $columnRuleWidth: dartx.columnRuleWidth = Symbol("dartx.columnRuleWidth"),
    $columnSpan: dartx.columnSpan = Symbol("dartx.columnSpan"),
    $columnWidth: dartx.columnWidth = Symbol("dartx.columnWidth"),
    $columns: dartx.columns = Symbol("dartx.columns"),
    $counterIncrement: dartx.counterIncrement = Symbol("dartx.counterIncrement"),
    $counterReset: dartx.counterReset = Symbol("dartx.counterReset"),
    $flex: dartx.flex = Symbol("dartx.flex"),
    $flexBasis: dartx.flexBasis = Symbol("dartx.flexBasis"),
    $flexDirection: dartx.flexDirection = Symbol("dartx.flexDirection"),
    $flexFlow: dartx.flexFlow = Symbol("dartx.flexFlow"),
    $flexGrow: dartx.flexGrow = Symbol("dartx.flexGrow"),
    $flexShrink: dartx.flexShrink = Symbol("dartx.flexShrink"),
    $flexWrap: dartx.flexWrap = Symbol("dartx.flexWrap"),
    $float: dartx.float = Symbol("dartx.float"),
    $fontFeatureSettings: dartx.fontFeatureSettings = Symbol("dartx.fontFeatureSettings"),
    $fontKerning: dartx.fontKerning = Symbol("dartx.fontKerning"),
    $fontSizeDelta: dartx.fontSizeDelta = Symbol("dartx.fontSizeDelta"),
    $fontSmoothing: dartx.fontSmoothing = Symbol("dartx.fontSmoothing"),
    $fontStretch: dartx.fontStretch = Symbol("dartx.fontStretch"),
    $fontVariantLigatures: dartx.fontVariantLigatures = Symbol("dartx.fontVariantLigatures"),
    $grid: dartx.grid = Symbol("dartx.grid"),
    $gridArea: dartx.gridArea = Symbol("dartx.gridArea"),
    $gridAutoColumns: dartx.gridAutoColumns = Symbol("dartx.gridAutoColumns"),
    $gridAutoFlow: dartx.gridAutoFlow = Symbol("dartx.gridAutoFlow"),
    $gridAutoRows: dartx.gridAutoRows = Symbol("dartx.gridAutoRows"),
    $gridColumn: dartx.gridColumn = Symbol("dartx.gridColumn"),
    $gridColumnEnd: dartx.gridColumnEnd = Symbol("dartx.gridColumnEnd"),
    $gridColumnStart: dartx.gridColumnStart = Symbol("dartx.gridColumnStart"),
    $gridRow: dartx.gridRow = Symbol("dartx.gridRow"),
    $gridRowEnd: dartx.gridRowEnd = Symbol("dartx.gridRowEnd"),
    $gridRowStart: dartx.gridRowStart = Symbol("dartx.gridRowStart"),
    $gridTemplate: dartx.gridTemplate = Symbol("dartx.gridTemplate"),
    $gridTemplateAreas: dartx.gridTemplateAreas = Symbol("dartx.gridTemplateAreas"),
    $gridTemplateColumns: dartx.gridTemplateColumns = Symbol("dartx.gridTemplateColumns"),
    $gridTemplateRows: dartx.gridTemplateRows = Symbol("dartx.gridTemplateRows"),
    $highlight: dartx.highlight = Symbol("dartx.highlight"),
    $hyphenateCharacter: dartx.hyphenateCharacter = Symbol("dartx.hyphenateCharacter"),
    $imageRendering: dartx.imageRendering = Symbol("dartx.imageRendering"),
    $isolation: dartx.isolation = Symbol("dartx.isolation"),
    $justifyContent: dartx.justifyContent = Symbol("dartx.justifyContent"),
    $justifySelf: dartx.justifySelf = Symbol("dartx.justifySelf"),
    $lineBoxContain: dartx.lineBoxContain = Symbol("dartx.lineBoxContain"),
    $lineBreak: dartx.lineBreak = Symbol("dartx.lineBreak"),
    $lineClamp: dartx.lineClamp = Symbol("dartx.lineClamp"),
    $locale: dartx.locale = Symbol("dartx.locale"),
    $logicalHeight: dartx.logicalHeight = Symbol("dartx.logicalHeight"),
    $logicalWidth: dartx.logicalWidth = Symbol("dartx.logicalWidth"),
    $marginAfter: dartx.marginAfter = Symbol("dartx.marginAfter"),
    $marginAfterCollapse: dartx.marginAfterCollapse = Symbol("dartx.marginAfterCollapse"),
    $marginBefore: dartx.marginBefore = Symbol("dartx.marginBefore"),
    $marginBeforeCollapse: dartx.marginBeforeCollapse = Symbol("dartx.marginBeforeCollapse"),
    $marginBottomCollapse: dartx.marginBottomCollapse = Symbol("dartx.marginBottomCollapse"),
    $marginCollapse: dartx.marginCollapse = Symbol("dartx.marginCollapse"),
    $marginEnd: dartx.marginEnd = Symbol("dartx.marginEnd"),
    $marginStart: dartx.marginStart = Symbol("dartx.marginStart"),
    $marginTopCollapse: dartx.marginTopCollapse = Symbol("dartx.marginTopCollapse"),
    $mask: dartx.mask = Symbol("dartx.mask"),
    $maskBoxImage: dartx.maskBoxImage = Symbol("dartx.maskBoxImage"),
    $maskBoxImageOutset: dartx.maskBoxImageOutset = Symbol("dartx.maskBoxImageOutset"),
    $maskBoxImageRepeat: dartx.maskBoxImageRepeat = Symbol("dartx.maskBoxImageRepeat"),
    $maskBoxImageSlice: dartx.maskBoxImageSlice = Symbol("dartx.maskBoxImageSlice"),
    $maskBoxImageSource: dartx.maskBoxImageSource = Symbol("dartx.maskBoxImageSource"),
    $maskBoxImageWidth: dartx.maskBoxImageWidth = Symbol("dartx.maskBoxImageWidth"),
    $maskClip: dartx.maskClip = Symbol("dartx.maskClip"),
    $maskComposite: dartx.maskComposite = Symbol("dartx.maskComposite"),
    $maskImage: dartx.maskImage = Symbol("dartx.maskImage"),
    $maskOrigin: dartx.maskOrigin = Symbol("dartx.maskOrigin"),
    $maskPosition: dartx.maskPosition = Symbol("dartx.maskPosition"),
    $maskPositionX: dartx.maskPositionX = Symbol("dartx.maskPositionX"),
    $maskPositionY: dartx.maskPositionY = Symbol("dartx.maskPositionY"),
    $maskRepeat: dartx.maskRepeat = Symbol("dartx.maskRepeat"),
    $maskRepeatX: dartx.maskRepeatX = Symbol("dartx.maskRepeatX"),
    $maskRepeatY: dartx.maskRepeatY = Symbol("dartx.maskRepeatY"),
    $maskSize: dartx.maskSize = Symbol("dartx.maskSize"),
    $maskSourceType: dartx.maskSourceType = Symbol("dartx.maskSourceType"),
    $maxLogicalHeight: dartx.maxLogicalHeight = Symbol("dartx.maxLogicalHeight"),
    $maxLogicalWidth: dartx.maxLogicalWidth = Symbol("dartx.maxLogicalWidth"),
    $maxZoom: dartx.maxZoom = Symbol("dartx.maxZoom"),
    $minLogicalHeight: dartx.minLogicalHeight = Symbol("dartx.minLogicalHeight"),
    $minLogicalWidth: dartx.minLogicalWidth = Symbol("dartx.minLogicalWidth"),
    $minZoom: dartx.minZoom = Symbol("dartx.minZoom"),
    $mixBlendMode: dartx.mixBlendMode = Symbol("dartx.mixBlendMode"),
    $objectFit: dartx.objectFit = Symbol("dartx.objectFit"),
    $objectPosition: dartx.objectPosition = Symbol("dartx.objectPosition"),
    $opacity: dartx.opacity = Symbol("dartx.opacity"),
    $order: dartx.order = Symbol("dartx.order"),
    $orphans: dartx.orphans = Symbol("dartx.orphans"),
    $outlineOffset: dartx.outlineOffset = Symbol("dartx.outlineOffset"),
    $overflowWrap: dartx.overflowWrap = Symbol("dartx.overflowWrap"),
    $overflowX: dartx.overflowX = Symbol("dartx.overflowX"),
    $overflowY: dartx.overflowY = Symbol("dartx.overflowY"),
    $paddingAfter: dartx.paddingAfter = Symbol("dartx.paddingAfter"),
    $paddingBefore: dartx.paddingBefore = Symbol("dartx.paddingBefore"),
    $paddingEnd: dartx.paddingEnd = Symbol("dartx.paddingEnd"),
    $paddingStart: dartx.paddingStart = Symbol("dartx.paddingStart"),
    $page: dartx.page = Symbol("dartx.page"),
    $perspective: dartx.perspective = Symbol("dartx.perspective"),
    $perspectiveOrigin: dartx.perspectiveOrigin = Symbol("dartx.perspectiveOrigin"),
    $perspectiveOriginX: dartx.perspectiveOriginX = Symbol("dartx.perspectiveOriginX"),
    $perspectiveOriginY: dartx.perspectiveOriginY = Symbol("dartx.perspectiveOriginY"),
    $pointerEvents: dartx.pointerEvents = Symbol("dartx.pointerEvents"),
    $printColorAdjust: dartx.printColorAdjust = Symbol("dartx.printColorAdjust"),
    $resize: dartx.resize = Symbol("dartx.resize"),
    $rtlOrdering: dartx.rtlOrdering = Symbol("dartx.rtlOrdering"),
    $rubyPosition: dartx.rubyPosition = Symbol("dartx.rubyPosition"),
    $scrollBehavior: dartx.scrollBehavior = Symbol("dartx.scrollBehavior"),
    $shapeImageThreshold: dartx.shapeImageThreshold = Symbol("dartx.shapeImageThreshold"),
    $shapeMargin: dartx.shapeMargin = Symbol("dartx.shapeMargin"),
    $shapeOutside: dartx.shapeOutside = Symbol("dartx.shapeOutside"),
    $speak: dartx.speak = Symbol("dartx.speak"),
    $tabSize: dartx.tabSize = Symbol("dartx.tabSize"),
    $tapHighlightColor: dartx.tapHighlightColor = Symbol("dartx.tapHighlightColor"),
    $textAlignLast: dartx.textAlignLast = Symbol("dartx.textAlignLast"),
    $textCombine: dartx.textCombine = Symbol("dartx.textCombine"),
    $textDecorationColor: dartx.textDecorationColor = Symbol("dartx.textDecorationColor"),
    $textDecorationLine: dartx.textDecorationLine = Symbol("dartx.textDecorationLine"),
    $textDecorationStyle: dartx.textDecorationStyle = Symbol("dartx.textDecorationStyle"),
    $textDecorationsInEffect: dartx.textDecorationsInEffect = Symbol("dartx.textDecorationsInEffect"),
    $textEmphasis: dartx.textEmphasis = Symbol("dartx.textEmphasis"),
    $textEmphasisColor: dartx.textEmphasisColor = Symbol("dartx.textEmphasisColor"),
    $textEmphasisPosition: dartx.textEmphasisPosition = Symbol("dartx.textEmphasisPosition"),
    $textEmphasisStyle: dartx.textEmphasisStyle = Symbol("dartx.textEmphasisStyle"),
    $textFillColor: dartx.textFillColor = Symbol("dartx.textFillColor"),
    $textJustify: dartx.textJustify = Symbol("dartx.textJustify"),
    $textLineThroughColor: dartx.textLineThroughColor = Symbol("dartx.textLineThroughColor"),
    $textLineThroughMode: dartx.textLineThroughMode = Symbol("dartx.textLineThroughMode"),
    $textLineThroughStyle: dartx.textLineThroughStyle = Symbol("dartx.textLineThroughStyle"),
    $textLineThroughWidth: dartx.textLineThroughWidth = Symbol("dartx.textLineThroughWidth"),
    $textOrientation: dartx.textOrientation = Symbol("dartx.textOrientation"),
    $textOverflow: dartx.textOverflow = Symbol("dartx.textOverflow"),
    $textOverlineColor: dartx.textOverlineColor = Symbol("dartx.textOverlineColor"),
    $textOverlineMode: dartx.textOverlineMode = Symbol("dartx.textOverlineMode"),
    $textOverlineStyle: dartx.textOverlineStyle = Symbol("dartx.textOverlineStyle"),
    $textOverlineWidth: dartx.textOverlineWidth = Symbol("dartx.textOverlineWidth"),
    $textRendering: dartx.textRendering = Symbol("dartx.textRendering"),
    $textSecurity: dartx.textSecurity = Symbol("dartx.textSecurity"),
    $textShadow: dartx.textShadow = Symbol("dartx.textShadow"),
    $textStroke: dartx.textStroke = Symbol("dartx.textStroke"),
    $textStrokeColor: dartx.textStrokeColor = Symbol("dartx.textStrokeColor"),
    $textStrokeWidth: dartx.textStrokeWidth = Symbol("dartx.textStrokeWidth"),
    $textUnderlineColor: dartx.textUnderlineColor = Symbol("dartx.textUnderlineColor"),
    $textUnderlineMode: dartx.textUnderlineMode = Symbol("dartx.textUnderlineMode"),
    $textUnderlinePosition: dartx.textUnderlinePosition = Symbol("dartx.textUnderlinePosition"),
    $textUnderlineStyle: dartx.textUnderlineStyle = Symbol("dartx.textUnderlineStyle"),
    $textUnderlineWidth: dartx.textUnderlineWidth = Symbol("dartx.textUnderlineWidth"),
    $touchAction: dartx.touchAction = Symbol("dartx.touchAction"),
    $touchActionDelay: dartx.touchActionDelay = Symbol("dartx.touchActionDelay"),
    $transformOrigin: dartx.transformOrigin = Symbol("dartx.transformOrigin"),
    $transformOriginX: dartx.transformOriginX = Symbol("dartx.transformOriginX"),
    $transformOriginY: dartx.transformOriginY = Symbol("dartx.transformOriginY"),
    $transformOriginZ: dartx.transformOriginZ = Symbol("dartx.transformOriginZ"),
    $transformStyle: dartx.transformStyle = Symbol("dartx.transformStyle"),
    $transition: dartx.transition = Symbol("dartx.transition"),
    $transitionDelay: dartx.transitionDelay = Symbol("dartx.transitionDelay"),
    $transitionDuration: dartx.transitionDuration = Symbol("dartx.transitionDuration"),
    $transitionProperty: dartx.transitionProperty = Symbol("dartx.transitionProperty"),
    $transitionTimingFunction: dartx.transitionTimingFunction = Symbol("dartx.transitionTimingFunction"),
    $unicodeRange: dartx.unicodeRange = Symbol("dartx.unicodeRange"),
    $userDrag: dartx.userDrag = Symbol("dartx.userDrag"),
    $userModify: dartx.userModify = Symbol("dartx.userModify"),
    $userSelect: dartx.userSelect = Symbol("dartx.userSelect"),
    $userZoom: dartx.userZoom = Symbol("dartx.userZoom"),
    $widows: dartx.widows = Symbol("dartx.widows"),
    $willChange: dartx.willChange = Symbol("dartx.willChange"),
    $wordBreak: dartx.wordBreak = Symbol("dartx.wordBreak"),
    $wordWrap: dartx.wordWrap = Symbol("dartx.wordWrap"),
    $wrapFlow: dartx.wrapFlow = Symbol("dartx.wrapFlow"),
    $wrapThrough: dartx.wrapThrough = Symbol("dartx.wrapThrough"),
    $writingMode: dartx.writingMode = Symbol("dartx.writingMode"),
    $zoom: dartx.zoom = Symbol("dartx.zoom"),
    _elementCssStyleDeclarationSetIterable: dart.privateName(html$, "_elementCssStyleDeclarationSetIterable"),
    _elementIterable: dart.privateName(html$, "_elementIterable"),
    _setAll: dart.privateName(html$, "_setAll"),
    $ownerRule: dartx.ownerRule = Symbol("dartx.ownerRule"),
    $rules: dartx.rules = Symbol("dartx.rules"),
    $addRule: dartx.addRule = Symbol("dartx.addRule"),
    $removeRule: dartx.removeRule = Symbol("dartx.removeRule"),
    $ownerNode: dartx.ownerNode = Symbol("dartx.ownerNode"),
    $componentAtIndex: dartx.componentAtIndex = Symbol("dartx.componentAtIndex"),
    $toMatrix: dartx.toMatrix = Symbol("dartx.toMatrix"),
    $unit: dartx.unit = Symbol("dartx.unit"),
    $fragmentAtIndex: dartx.fragmentAtIndex = Symbol("dartx.fragmentAtIndex"),
    $fallback: dartx.fallback = Symbol("dartx.fallback"),
    $variable: dartx.variable = Symbol("dartx.variable"),
    _define_1: dart.privateName(html$, "_define_1"),
    _define_2: dart.privateName(html$, "_define_2"),
    $define: dartx.define = Symbol("dartx.define"),
    $whenDefined: dartx.whenDefined = Symbol("dartx.whenDefined"),
    _dartDetail: dart.privateName(html$, "_dartDetail"),
    _initCustomEvent: dart.privateName(html$, "_initCustomEvent"),
    _detail: dart.privateName(html$, "_detail"),
    _get__detail: dart.privateName(html$, "_get__detail"),
    $options: dartx.options = Symbol("dartx.options"),
    $dropEffect: dartx.dropEffect = Symbol("dartx.dropEffect"),
    $effectAllowed: dartx.effectAllowed = Symbol("dartx.effectAllowed"),
    $files: dartx.files = Symbol("dartx.files"),
    $items: dartx.items = Symbol("dartx.items"),
    $types: dartx.types = Symbol("dartx.types"),
    $clearData: dartx.clearData = Symbol("dartx.clearData"),
    $getData: dartx.getData = Symbol("dartx.getData"),
    $setData: dartx.setData = Symbol("dartx.setData"),
    $setDragImage: dartx.setDragImage = Symbol("dartx.setDragImage"),
    _webkitGetAsEntry: dart.privateName(html$, "_webkitGetAsEntry"),
    $getAsEntry: dartx.getAsEntry = Symbol("dartx.getAsEntry"),
    $getAsFile: dartx.getAsFile = Symbol("dartx.getAsFile"),
    $addData: dartx.addData = Symbol("dartx.addData"),
    $addFile: dartx.addFile = Symbol("dartx.addFile"),
    _postMessage_1: dart.privateName(html$, "_postMessage_1"),
    _postMessage_2: dart.privateName(html$, "_postMessage_2"),
    _webkitRequestFileSystem: dart.privateName(html$, "_webkitRequestFileSystem"),
    $requestFileSystemSync: dartx.requestFileSystemSync = Symbol("dartx.requestFileSystemSync"),
    $resolveLocalFileSystemSyncUrl: dartx.resolveLocalFileSystemSyncUrl = Symbol("dartx.resolveLocalFileSystemSyncUrl"),
    _webkitResolveLocalFileSystemUrl: dart.privateName(html$, "_webkitResolveLocalFileSystemUrl"),
    $addressSpace: dartx.addressSpace = Symbol("dartx.addressSpace"),
    $caches: dartx.caches = Symbol("dartx.caches"),
    $crypto: dartx.crypto = Symbol("dartx.crypto"),
    $indexedDB: dartx.indexedDB = Symbol("dartx.indexedDB"),
    $isSecureContext: dartx.isSecureContext = Symbol("dartx.isSecureContext"),
    $location: dartx.location = Symbol("dartx.location"),
    $navigator: dartx.navigator = Symbol("dartx.navigator"),
    $performance: dartx.performance = Symbol("dartx.performance"),
    $self: dartx.self = Symbol("dartx.self"),
    $importScripts: dartx.importScripts = Symbol("dartx.importScripts"),
    $atob: dartx.atob = Symbol("dartx.atob"),
    $btoa: dartx.btoa = Symbol("dartx.btoa"),
    _setInterval_String: dart.privateName(html$, "_setInterval_String"),
    _setTimeout_String: dart.privateName(html$, "_setTimeout_String"),
    _clearInterval: dart.privateName(html$, "_clearInterval"),
    _clearTimeout: dart.privateName(html$, "_clearTimeout"),
    _setInterval: dart.privateName(html$, "_setInterval"),
    _setTimeout: dart.privateName(html$, "_setTimeout"),
    $queryUsageAndQuota: dartx.queryUsageAndQuota = Symbol("dartx.queryUsageAndQuota"),
    $requestQuota: dartx.requestQuota = Symbol("dartx.requestQuota"),
    $lineNumber: dartx.lineNumber = Symbol("dartx.lineNumber"),
    $sourceFile: dartx.sourceFile = Symbol("dartx.sourceFile"),
    $cornerPoints: dartx.cornerPoints = Symbol("dartx.cornerPoints"),
    $rawValue: dartx.rawValue = Symbol("dartx.rawValue"),
    $landmarks: dartx.landmarks = Symbol("dartx.landmarks"),
    $acceleration: dartx.acceleration = Symbol("dartx.acceleration"),
    $accelerationIncludingGravity: dartx.accelerationIncludingGravity = Symbol("dartx.accelerationIncludingGravity"),
    $interval: dartx.interval = Symbol("dartx.interval"),
    $rotationRate: dartx.rotationRate = Symbol("dartx.rotationRate"),
    $absolute: dartx.absolute = Symbol("dartx.absolute"),
    $alpha: dartx.alpha = Symbol("dartx.alpha"),
    $beta: dartx.beta = Symbol("dartx.beta"),
    $gamma: dartx.gamma = Symbol("dartx.gamma"),
    $show: dartx.show = Symbol("dartx.show"),
    $showModal: dartx.showModal = Symbol("dartx.showModal"),
    _getDirectory: dart.privateName(html$, "_getDirectory"),
    $createDirectory: dartx.createDirectory = Symbol("dartx.createDirectory"),
    _createReader: dart.privateName(html$, "_createReader"),
    $createReader: dartx.createReader = Symbol("dartx.createReader"),
    $getDirectory: dartx.getDirectory = Symbol("dartx.getDirectory"),
    _getFile: dart.privateName(html$, "_getFile"),
    $createFile: dartx.createFile = Symbol("dartx.createFile"),
    $getFile: dartx.getFile = Symbol("dartx.getFile"),
    __getDirectory_1: dart.privateName(html$, "__getDirectory_1"),
    __getDirectory_2: dart.privateName(html$, "__getDirectory_2"),
    __getDirectory_3: dart.privateName(html$, "__getDirectory_3"),
    __getDirectory_4: dart.privateName(html$, "__getDirectory_4"),
    __getDirectory: dart.privateName(html$, "__getDirectory"),
    __getFile_1: dart.privateName(html$, "__getFile_1"),
    __getFile_2: dart.privateName(html$, "__getFile_2"),
    __getFile_3: dart.privateName(html$, "__getFile_3"),
    __getFile_4: dart.privateName(html$, "__getFile_4"),
    __getFile: dart.privateName(html$, "__getFile"),
    _removeRecursively: dart.privateName(html$, "_removeRecursively"),
    $removeRecursively: dartx.removeRecursively = Symbol("dartx.removeRecursively"),
    $filesystem: dartx.filesystem = Symbol("dartx.filesystem"),
    $fullPath: dartx.fullPath = Symbol("dartx.fullPath"),
    $isDirectory: dartx.isDirectory = Symbol("dartx.isDirectory"),
    $isFile: dartx.isFile = Symbol("dartx.isFile"),
    _copyTo: dart.privateName(html$, "_copyTo"),
    $copyTo: dartx.copyTo = Symbol("dartx.copyTo"),
    _getMetadata: dart.privateName(html$, "_getMetadata"),
    $getMetadata: dartx.getMetadata = Symbol("dartx.getMetadata"),
    _getParent: dart.privateName(html$, "_getParent"),
    $getParent: dartx.getParent = Symbol("dartx.getParent"),
    _moveTo: dart.privateName(html$, "_moveTo"),
    _remove$1: dart.privateName(html$, "_remove"),
    $toUrl: dartx.toUrl = Symbol("dartx.toUrl"),
    _readEntries: dart.privateName(html$, "_readEntries"),
    $readEntries: dartx.readEntries = Symbol("dartx.readEntries"),
    _body: dart.privateName(html$, "_body"),
    $contentType: dartx.contentType = Symbol("dartx.contentType"),
    $cookie: dartx.cookie = Symbol("dartx.cookie"),
    $currentScript: dartx.currentScript = Symbol("dartx.currentScript"),
    _get_window: dart.privateName(html$, "_get_window"),
    $window: dartx.window = Symbol("dartx.window"),
    $documentElement: dartx.documentElement = Symbol("dartx.documentElement"),
    $domain: dartx.domain = Symbol("dartx.domain"),
    $fullscreenEnabled: dartx.fullscreenEnabled = Symbol("dartx.fullscreenEnabled"),
    _head$1: dart.privateName(html$, "_head"),
    $implementation: dartx.implementation = Symbol("dartx.implementation"),
    _lastModified: dart.privateName(html$, "_lastModified"),
    _preferredStylesheetSet: dart.privateName(html$, "_preferredStylesheetSet")
  };
  var S$1 = {
    _referrer: dart.privateName(html$, "_referrer"),
    $rootElement: dartx.rootElement = Symbol("dartx.rootElement"),
    $rootScroller: dartx.rootScroller = Symbol("dartx.rootScroller"),
    $scrollingElement: dartx.scrollingElement = Symbol("dartx.scrollingElement"),
    _selectedStylesheetSet: dart.privateName(html$, "_selectedStylesheetSet"),
    $suborigin: dartx.suborigin = Symbol("dartx.suborigin"),
    _title: dart.privateName(html$, "_title"),
    _visibilityState: dart.privateName(html$, "_visibilityState"),
    _webkitFullscreenElement: dart.privateName(html$, "_webkitFullscreenElement"),
    _webkitFullscreenEnabled: dart.privateName(html$, "_webkitFullscreenEnabled"),
    _webkitHidden: dart.privateName(html$, "_webkitHidden"),
    _webkitVisibilityState: dart.privateName(html$, "_webkitVisibilityState"),
    $adoptNode: dartx.adoptNode = Symbol("dartx.adoptNode"),
    _caretRangeFromPoint: dart.privateName(html$, "_caretRangeFromPoint"),
    $createDocumentFragment: dartx.createDocumentFragment = Symbol("dartx.createDocumentFragment"),
    _createElement: dart.privateName(html$, "_createElement"),
    _createElementNS: dart.privateName(html$, "_createElementNS"),
    $createRange: dartx.createRange = Symbol("dartx.createRange"),
    _createTextNode: dart.privateName(html$, "_createTextNode"),
    _createTouch_1: dart.privateName(html$, "_createTouch_1"),
    _createTouch_2: dart.privateName(html$, "_createTouch_2"),
    _createTouch_3: dart.privateName(html$, "_createTouch_3"),
    _createTouch_4: dart.privateName(html$, "_createTouch_4"),
    _createTouch_5: dart.privateName(html$, "_createTouch_5"),
    _createTouch: dart.privateName(html$, "_createTouch"),
    _createTouchList: dart.privateName(html$, "_createTouchList"),
    $execCommand: dartx.execCommand = Symbol("dartx.execCommand"),
    $exitFullscreen: dartx.exitFullscreen = Symbol("dartx.exitFullscreen"),
    $exitPointerLock: dartx.exitPointerLock = Symbol("dartx.exitPointerLock"),
    $getElementsByName: dartx.getElementsByName = Symbol("dartx.getElementsByName"),
    $getElementsByTagName: dartx.getElementsByTagName = Symbol("dartx.getElementsByTagName"),
    $importNode: dartx.importNode = Symbol("dartx.importNode"),
    $queryCommandEnabled: dartx.queryCommandEnabled = Symbol("dartx.queryCommandEnabled"),
    $queryCommandIndeterm: dartx.queryCommandIndeterm = Symbol("dartx.queryCommandIndeterm"),
    $queryCommandState: dartx.queryCommandState = Symbol("dartx.queryCommandState"),
    $queryCommandSupported: dartx.queryCommandSupported = Symbol("dartx.queryCommandSupported"),
    $queryCommandValue: dartx.queryCommandValue = Symbol("dartx.queryCommandValue"),
    _registerElement2_1: dart.privateName(html$, "_registerElement2_1"),
    _registerElement2_2: dart.privateName(html$, "_registerElement2_2"),
    $registerElement2: dartx.registerElement2 = Symbol("dartx.registerElement2"),
    _webkitExitFullscreen: dart.privateName(html$, "_webkitExitFullscreen"),
    $getElementById: dartx.getElementById = Symbol("dartx.getElementById"),
    $activeElement: dartx.activeElement = Symbol("dartx.activeElement"),
    $fullscreenElement: dartx.fullscreenElement = Symbol("dartx.fullscreenElement"),
    $pointerLockElement: dartx.pointerLockElement = Symbol("dartx.pointerLockElement"),
    _styleSheets: dart.privateName(html$, "_styleSheets"),
    _elementFromPoint: dart.privateName(html$, "_elementFromPoint"),
    $elementsFromPoint: dartx.elementsFromPoint = Symbol("dartx.elementsFromPoint"),
    $fonts: dartx.fonts = Symbol("dartx.fonts"),
    $onPointerLockChange: dartx.onPointerLockChange = Symbol("dartx.onPointerLockChange"),
    $onPointerLockError: dartx.onPointerLockError = Symbol("dartx.onPointerLockError"),
    $onReadyStateChange: dartx.onReadyStateChange = Symbol("dartx.onReadyStateChange"),
    $onSecurityPolicyViolation: dartx.onSecurityPolicyViolation = Symbol("dartx.onSecurityPolicyViolation"),
    $onSelectionChange: dartx.onSelectionChange = Symbol("dartx.onSelectionChange"),
    $supportsRegisterElement: dartx.supportsRegisterElement = Symbol("dartx.supportsRegisterElement"),
    $supportsRegister: dartx.supportsRegister = Symbol("dartx.supportsRegister"),
    $registerElement: dartx.registerElement = Symbol("dartx.registerElement"),
    _createElement_2: dart.privateName(html$, "_createElement_2"),
    _createElementNS_2: dart.privateName(html$, "_createElementNS_2"),
    $createElementNS: dartx.createElementNS = Symbol("dartx.createElementNS"),
    _createNodeIterator: dart.privateName(html$, "_createNodeIterator"),
    _createTreeWalker: dart.privateName(html$, "_createTreeWalker"),
    $visibilityState: dartx.visibilityState = Symbol("dartx.visibilityState"),
    _docChildren: dart.privateName(html$, "_docChildren"),
    $styleSheets: dartx.styleSheets = Symbol("dartx.styleSheets"),
    $elementFromPoint: dartx.elementFromPoint = Symbol("dartx.elementFromPoint"),
    $getSelection: dartx.getSelection = Symbol("dartx.getSelection"),
    $createDocument: dartx.createDocument = Symbol("dartx.createDocument"),
    $createDocumentType: dartx.createDocumentType = Symbol("dartx.createDocumentType"),
    $hasFeature: dartx.hasFeature = Symbol("dartx.hasFeature"),
    $a: dartx.a = Symbol("dartx.a"),
    $b: dartx.b = Symbol("dartx.b"),
    $c: dartx.c = Symbol("dartx.c"),
    $d: dartx.d = Symbol("dartx.d"),
    $e: dartx.e = Symbol("dartx.e"),
    $f: dartx.f = Symbol("dartx.f"),
    $m11: dartx.m11 = Symbol("dartx.m11"),
    $m12: dartx.m12 = Symbol("dartx.m12"),
    $m13: dartx.m13 = Symbol("dartx.m13"),
    $m14: dartx.m14 = Symbol("dartx.m14"),
    $m21: dartx.m21 = Symbol("dartx.m21"),
    $m22: dartx.m22 = Symbol("dartx.m22"),
    $m23: dartx.m23 = Symbol("dartx.m23"),
    $m24: dartx.m24 = Symbol("dartx.m24"),
    $m31: dartx.m31 = Symbol("dartx.m31"),
    $m32: dartx.m32 = Symbol("dartx.m32"),
    $m33: dartx.m33 = Symbol("dartx.m33"),
    $m34: dartx.m34 = Symbol("dartx.m34"),
    $m41: dartx.m41 = Symbol("dartx.m41"),
    $m42: dartx.m42 = Symbol("dartx.m42"),
    $m43: dartx.m43 = Symbol("dartx.m43"),
    $m44: dartx.m44 = Symbol("dartx.m44"),
    $invertSelf: dartx.invertSelf = Symbol("dartx.invertSelf"),
    _multiplySelf_1: dart.privateName(html$, "_multiplySelf_1"),
    _multiplySelf_2: dart.privateName(html$, "_multiplySelf_2"),
    $multiplySelf: dartx.multiplySelf = Symbol("dartx.multiplySelf"),
    _preMultiplySelf_1: dart.privateName(html$, "_preMultiplySelf_1"),
    _preMultiplySelf_2: dart.privateName(html$, "_preMultiplySelf_2"),
    $preMultiplySelf: dartx.preMultiplySelf = Symbol("dartx.preMultiplySelf"),
    $rotateAxisAngleSelf: dartx.rotateAxisAngleSelf = Symbol("dartx.rotateAxisAngleSelf"),
    $rotateFromVectorSelf: dartx.rotateFromVectorSelf = Symbol("dartx.rotateFromVectorSelf"),
    $rotateSelf: dartx.rotateSelf = Symbol("dartx.rotateSelf"),
    $scale3dSelf: dartx.scale3dSelf = Symbol("dartx.scale3dSelf"),
    $scaleSelf: dartx.scaleSelf = Symbol("dartx.scaleSelf"),
    $setMatrixValue: dartx.setMatrixValue = Symbol("dartx.setMatrixValue"),
    $skewXSelf: dartx.skewXSelf = Symbol("dartx.skewXSelf"),
    $skewYSelf: dartx.skewYSelf = Symbol("dartx.skewYSelf"),
    $translateSelf: dartx.translateSelf = Symbol("dartx.translateSelf"),
    $isIdentity: dartx.isIdentity = Symbol("dartx.isIdentity"),
    $flipX: dartx.flipX = Symbol("dartx.flipX"),
    $flipY: dartx.flipY = Symbol("dartx.flipY"),
    $inverse: dartx.inverse = Symbol("dartx.inverse"),
    _multiply_1: dart.privateName(html$, "_multiply_1"),
    _multiply_2: dart.privateName(html$, "_multiply_2"),
    $multiply: dartx.multiply = Symbol("dartx.multiply"),
    $rotateAxisAngle: dartx.rotateAxisAngle = Symbol("dartx.rotateAxisAngle"),
    $rotateFromVector: dartx.rotateFromVector = Symbol("dartx.rotateFromVector"),
    $scale3d: dartx.scale3d = Symbol("dartx.scale3d"),
    $skewX: dartx.skewX = Symbol("dartx.skewX"),
    $skewY: dartx.skewY = Symbol("dartx.skewY"),
    $toFloat32Array: dartx.toFloat32Array = Symbol("dartx.toFloat32Array"),
    $toFloat64Array: dartx.toFloat64Array = Symbol("dartx.toFloat64Array"),
    _transformPoint_1: dart.privateName(html$, "_transformPoint_1"),
    _transformPoint_2: dart.privateName(html$, "_transformPoint_2"),
    $transformPoint: dartx.transformPoint = Symbol("dartx.transformPoint"),
    $parseFromString: dartx.parseFromString = Symbol("dartx.parseFromString"),
    $w: dartx.w = Symbol("dartx.w"),
    _matrixTransform_1: dart.privateName(html$, "_matrixTransform_1"),
    _matrixTransform_2: dart.privateName(html$, "_matrixTransform_2"),
    $matrixTransform: dartx.matrixTransform = Symbol("dartx.matrixTransform"),
    $p1: dartx.p1 = Symbol("dartx.p1"),
    $p2: dartx.p2 = Symbol("dartx.p2"),
    $p3: dartx.p3 = Symbol("dartx.p3"),
    $p4: dartx.p4 = Symbol("dartx.p4"),
    $getBounds: dartx.getBounds = Symbol("dartx.getBounds"),
    __delete__: dart.privateName(html$, "__delete__"),
    $replace: dartx.replace = Symbol("dartx.replace"),
    $supports: dartx.supports = Symbol("dartx.supports"),
    $toggle: dartx.toggle = Symbol("dartx.toggle"),
    _childElements: dart.privateName(html$, "_childElements"),
    _element$2: dart.privateName(html$, "_element"),
    _filter$2: dart.privateName(html$, "_filter"),
    _nodeList: dart.privateName(html$, "_nodeList"),
    _forElementList: dart.privateName(html$, "_forElementList"),
    _value$6: dart.privateName(html$, "ScrollAlignment._value"),
    _value$7: dart.privateName(html$, "_value"),
    $colno: dartx.colno = Symbol("dartx.colno"),
    $filename: dartx.filename = Symbol("dartx.filename"),
    $lineno: dartx.lineno = Symbol("dartx.lineno"),
    $withCredentials: dartx.withCredentials = Symbol("dartx.withCredentials"),
    $onOpen: dartx.onOpen = Symbol("dartx.onOpen"),
    _ptr: dart.privateName(html$, "_ptr"),
    $lastEventId: dartx.lastEventId = Symbol("dartx.lastEventId"),
    $ports: dartx.ports = Symbol("dartx.ports"),
    $AddSearchProvider: dartx.AddSearchProvider = Symbol("dartx.AddSearchProvider"),
    $IsSearchProviderInstalled: dartx.IsSearchProviderInstalled = Symbol("dartx.IsSearchProviderInstalled"),
    $provider: dartx.provider = Symbol("dartx.provider"),
    $clientId: dartx.clientId = Symbol("dartx.clientId"),
    $isReload: dartx.isReload = Symbol("dartx.isReload"),
    $preloadResponse: dartx.preloadResponse = Symbol("dartx.preloadResponse"),
    $elements: dartx.elements = Symbol("dartx.elements"),
    $lastModified: dartx.lastModified = Symbol("dartx.lastModified"),
    _get_lastModifiedDate: dart.privateName(html$, "_get_lastModifiedDate"),
    $lastModifiedDate: dartx.lastModifiedDate = Symbol("dartx.lastModifiedDate"),
    $relativePath: dartx.relativePath = Symbol("dartx.relativePath"),
    _createWriter: dart.privateName(html$, "_createWriter"),
    $createWriter: dartx.createWriter = Symbol("dartx.createWriter"),
    _file$1: dart.privateName(html$, "_file"),
    $file: dartx.file = Symbol("dartx.file"),
    $readAsArrayBuffer: dartx.readAsArrayBuffer = Symbol("dartx.readAsArrayBuffer"),
    $readAsDataUrl: dartx.readAsDataUrl = Symbol("dartx.readAsDataUrl"),
    $readAsText: dartx.readAsText = Symbol("dartx.readAsText"),
    $onLoadEnd: dartx.onLoadEnd = Symbol("dartx.onLoadEnd"),
    $onLoadStart: dartx.onLoadStart = Symbol("dartx.onLoadStart"),
    $root: dartx.root = Symbol("dartx.root"),
    $seek: dartx.seek = Symbol("dartx.seek"),
    $write: dartx.write = Symbol("dartx.write"),
    $onWrite: dartx.onWrite = Symbol("dartx.onWrite"),
    $onWriteEnd: dartx.onWriteEnd = Symbol("dartx.onWriteEnd"),
    $onWriteStart: dartx.onWriteStart = Symbol("dartx.onWriteStart"),
    _get_relatedTarget: dart.privateName(html$, "_get_relatedTarget"),
    $relatedTarget: dartx.relatedTarget = Symbol("dartx.relatedTarget"),
    $family: dartx.family = Symbol("dartx.family"),
    $featureSettings: dartx.featureSettings = Symbol("dartx.featureSettings"),
    $loaded: dartx.loaded = Symbol("dartx.loaded"),
    $stretch: dartx.stretch = Symbol("dartx.stretch"),
    $variant: dartx.variant = Symbol("dartx.variant"),
    $weight: dartx.weight = Symbol("dartx.weight"),
    $check: dartx.check = Symbol("dartx.check"),
    $onLoading: dartx.onLoading = Symbol("dartx.onLoading"),
    $onLoadingDone: dartx.onLoadingDone = Symbol("dartx.onLoadingDone"),
    $onLoadingError: dartx.onLoadingError = Symbol("dartx.onLoadingError"),
    $fontfaces: dartx.fontfaces = Symbol("dartx.fontfaces"),
    $appendBlob: dartx.appendBlob = Symbol("dartx.appendBlob"),
    $acceptCharset: dartx.acceptCharset = Symbol("dartx.acceptCharset"),
    $action: dartx.action = Symbol("dartx.action"),
    $enctype: dartx.enctype = Symbol("dartx.enctype"),
    $method: dartx.method = Symbol("dartx.method"),
    $noValidate: dartx.noValidate = Symbol("dartx.noValidate"),
    _requestAutocomplete_1: dart.privateName(html$, "_requestAutocomplete_1"),
    $requestAutocomplete: dartx.requestAutocomplete = Symbol("dartx.requestAutocomplete"),
    $reset: dartx.reset = Symbol("dartx.reset"),
    $submit: dartx.submit = Symbol("dartx.submit"),
    $axes: dartx.axes = Symbol("dartx.axes"),
    $buttons: dartx.buttons = Symbol("dartx.buttons"),
    $connected: dartx.connected = Symbol("dartx.connected"),
    $displayId: dartx.displayId = Symbol("dartx.displayId"),
    $hand: dartx.hand = Symbol("dartx.hand"),
    $mapping: dartx.mapping = Symbol("dartx.mapping"),
    $pose: dartx.pose = Symbol("dartx.pose"),
    $touched: dartx.touched = Symbol("dartx.touched"),
    $gamepad: dartx.gamepad = Symbol("dartx.gamepad"),
    $angularAcceleration: dartx.angularAcceleration = Symbol("dartx.angularAcceleration"),
    $angularVelocity: dartx.angularVelocity = Symbol("dartx.angularVelocity"),
    $hasOrientation: dartx.hasOrientation = Symbol("dartx.hasOrientation"),
    $hasPosition: dartx.hasPosition = Symbol("dartx.hasPosition"),
    $linearAcceleration: dartx.linearAcceleration = Symbol("dartx.linearAcceleration"),
    $linearVelocity: dartx.linearVelocity = Symbol("dartx.linearVelocity"),
    _ensurePosition: dart.privateName(html$, "_ensurePosition"),
    _getCurrentPosition: dart.privateName(html$, "_getCurrentPosition"),
    $getCurrentPosition: dartx.getCurrentPosition = Symbol("dartx.getCurrentPosition"),
    _clearWatch: dart.privateName(html$, "_clearWatch"),
    _watchPosition: dart.privateName(html$, "_watchPosition"),
    $watchPosition: dartx.watchPosition = Symbol("dartx.watchPosition"),
    _getCurrentPosition_1: dart.privateName(html$, "_getCurrentPosition_1"),
    _getCurrentPosition_2: dart.privateName(html$, "_getCurrentPosition_2"),
    _getCurrentPosition_3: dart.privateName(html$, "_getCurrentPosition_3"),
    _watchPosition_1: dart.privateName(html$, "_watchPosition_1"),
    _watchPosition_2: dart.privateName(html$, "_watchPosition_2"),
    _watchPosition_3: dart.privateName(html$, "_watchPosition_3"),
    $newUrl: dartx.newUrl = Symbol("dartx.newUrl"),
    $oldUrl: dartx.oldUrl = Symbol("dartx.oldUrl"),
    $scrollRestoration: dartx.scrollRestoration = Symbol("dartx.scrollRestoration"),
    _get_state: dart.privateName(html$, "_get_state"),
    $back: dartx.back = Symbol("dartx.back"),
    $forward: dartx.forward = Symbol("dartx.forward"),
    $go: dartx.go = Symbol("dartx.go"),
    _pushState_1: dart.privateName(html$, "_pushState_1"),
    $pushState: dartx.pushState = Symbol("dartx.pushState"),
    _replaceState_1: dart.privateName(html$, "_replaceState_1"),
    $replaceState: dartx.replaceState = Symbol("dartx.replaceState"),
    $namedItem: dartx.namedItem = Symbol("dartx.namedItem"),
    $body: dartx.body = Symbol("dartx.body"),
    $caretRangeFromPoint: dartx.caretRangeFromPoint = Symbol("dartx.caretRangeFromPoint"),
    $preferredStylesheetSet: dartx.preferredStylesheetSet = Symbol("dartx.preferredStylesheetSet"),
    $referrer: dartx.referrer = Symbol("dartx.referrer"),
    $selectedStylesheetSet: dartx.selectedStylesheetSet = Symbol("dartx.selectedStylesheetSet"),
    $register: dartx.register = Symbol("dartx.register"),
    $onVisibilityChange: dartx.onVisibilityChange = Symbol("dartx.onVisibilityChange"),
    $createElementUpgrader: dartx.createElementUpgrader = Symbol("dartx.createElementUpgrader"),
    _item: dart.privateName(html$, "_item"),
    $responseHeaders: dartx.responseHeaders = Symbol("dartx.responseHeaders"),
    _get_response: dart.privateName(html$, "_get_response"),
    $responseText: dartx.responseText = Symbol("dartx.responseText"),
    $responseType: dartx.responseType = Symbol("dartx.responseType"),
    $responseUrl: dartx.responseUrl = Symbol("dartx.responseUrl"),
    $responseXml: dartx.responseXml = Symbol("dartx.responseXml"),
    $statusText: dartx.statusText = Symbol("dartx.statusText"),
    $timeout: dartx.timeout = Symbol("dartx.timeout"),
    $upload: dartx.upload = Symbol("dartx.upload"),
    $getAllResponseHeaders: dartx.getAllResponseHeaders = Symbol("dartx.getAllResponseHeaders"),
    $getResponseHeader: dartx.getResponseHeader = Symbol("dartx.getResponseHeader"),
    $overrideMimeType: dartx.overrideMimeType = Symbol("dartx.overrideMimeType"),
    $send: dartx.send = Symbol("dartx.send"),
    $setRequestHeader: dartx.setRequestHeader = Symbol("dartx.setRequestHeader"),
    $onTimeout: dartx.onTimeout = Symbol("dartx.onTimeout"),
    $allow: dartx.allow = Symbol("dartx.allow"),
    $allowFullscreen: dartx.allowFullscreen = Symbol("dartx.allowFullscreen"),
    $allowPaymentRequest: dartx.allowPaymentRequest = Symbol("dartx.allowPaymentRequest"),
    _get_contentWindow: dart.privateName(html$, "_get_contentWindow"),
    $contentWindow: dartx.contentWindow = Symbol("dartx.contentWindow"),
    $csp: dartx.csp = Symbol("dartx.csp"),
    $sandbox: dartx.sandbox = Symbol("dartx.sandbox"),
    $srcdoc: dartx.srcdoc = Symbol("dartx.srcdoc"),
    $didTimeout: dartx.didTimeout = Symbol("dartx.didTimeout"),
    $timeRemaining: dartx.timeRemaining = Symbol("dartx.timeRemaining"),
    $transferFromImageBitmap: dartx.transferFromImageBitmap = Symbol("dartx.transferFromImageBitmap"),
    $track: dartx.track = Symbol("dartx.track"),
    $getPhotoCapabilities: dartx.getPhotoCapabilities = Symbol("dartx.getPhotoCapabilities"),
    $getPhotoSettings: dartx.getPhotoSettings = Symbol("dartx.getPhotoSettings"),
    $grabFrame: dartx.grabFrame = Symbol("dartx.grabFrame"),
    $setOptions: dartx.setOptions = Symbol("dartx.setOptions"),
    $takePhoto: dartx.takePhoto = Symbol("dartx.takePhoto"),
    $async: dartx.async = Symbol("dartx.async"),
    $complete: dartx.complete = Symbol("dartx.complete"),
    $isMap: dartx.isMap = Symbol("dartx.isMap"),
    $naturalHeight: dartx.naturalHeight = Symbol("dartx.naturalHeight"),
    $naturalWidth: dartx.naturalWidth = Symbol("dartx.naturalWidth"),
    $sizes: dartx.sizes = Symbol("dartx.sizes"),
    $srcset: dartx.srcset = Symbol("dartx.srcset"),
    $useMap: dartx.useMap = Symbol("dartx.useMap"),
    $decode: dartx.decode = Symbol("dartx.decode"),
    $firesTouchEvents: dartx.firesTouchEvents = Symbol("dartx.firesTouchEvents"),
    $accept: dartx.accept = Symbol("dartx.accept"),
    $autocapitalize: dartx.autocapitalize = Symbol("dartx.autocapitalize"),
    $capture: dartx.capture = Symbol("dartx.capture"),
    $defaultChecked: dartx.defaultChecked = Symbol("dartx.defaultChecked"),
    $defaultValue: dartx.defaultValue = Symbol("dartx.defaultValue"),
    $dirName: dartx.dirName = Symbol("dartx.dirName"),
    $incremental: dartx.incremental = Symbol("dartx.incremental"),
    $indeterminate: dartx.indeterminate = Symbol("dartx.indeterminate"),
    $list: dartx.list = Symbol("dartx.list"),
    $max: dartx.max = Symbol("dartx.max"),
    $maxLength: dartx.maxLength = Symbol("dartx.maxLength"),
    $min: dartx.min = Symbol("dartx.min"),
    $minLength: dartx.minLength = Symbol("dartx.minLength"),
    $multiple: dartx.multiple = Symbol("dartx.multiple"),
    $pattern: dartx.pattern = Symbol("dartx.pattern"),
    $selectionDirection: dartx.selectionDirection = Symbol("dartx.selectionDirection"),
    $selectionEnd: dartx.selectionEnd = Symbol("dartx.selectionEnd"),
    $selectionStart: dartx.selectionStart = Symbol("dartx.selectionStart"),
    $step: dartx.step = Symbol("dartx.step"),
    _get_valueAsDate: dart.privateName(html$, "_get_valueAsDate"),
    $valueAsDate: dartx.valueAsDate = Symbol("dartx.valueAsDate"),
    _set_valueAsDate: dart.privateName(html$, "_set_valueAsDate"),
    $valueAsNumber: dartx.valueAsNumber = Symbol("dartx.valueAsNumber"),
    $directory: dartx.directory = Symbol("dartx.directory"),
    $setRangeText: dartx.setRangeText = Symbol("dartx.setRangeText"),
    $setSelectionRange: dartx.setSelectionRange = Symbol("dartx.setSelectionRange"),
    $stepDown: dartx.stepDown = Symbol("dartx.stepDown"),
    $stepUp: dartx.stepUp = Symbol("dartx.stepUp"),
    files: dart.privateName(html$, "FileUploadInputElement.files"),
    _registerForeignFetch_1: dart.privateName(html$, "_registerForeignFetch_1"),
    $registerForeignFetch: dartx.registerForeignFetch = Symbol("dartx.registerForeignFetch"),
    $rootMargin: dartx.rootMargin = Symbol("dartx.rootMargin"),
    $thresholds: dartx.thresholds = Symbol("dartx.thresholds"),
    $disconnect: dartx.disconnect = Symbol("dartx.disconnect"),
    $takeRecords: dartx.takeRecords = Symbol("dartx.takeRecords"),
    $boundingClientRect: dartx.boundingClientRect = Symbol("dartx.boundingClientRect"),
    $intersectionRatio: dartx.intersectionRatio = Symbol("dartx.intersectionRatio"),
    $intersectionRect: dartx.intersectionRect = Symbol("dartx.intersectionRect"),
    $isIntersecting: dartx.isIntersecting = Symbol("dartx.isIntersecting"),
    $rootBounds: dartx.rootBounds = Symbol("dartx.rootBounds"),
    _initKeyboardEvent: dart.privateName(html$, "_initKeyboardEvent"),
    $keyCode: dartx.keyCode = Symbol("dartx.keyCode"),
    $charCode: dartx.charCode = Symbol("dartx.charCode"),
    $which: dartx.which = Symbol("dartx.which"),
    $altKey: dartx.altKey = Symbol("dartx.altKey"),
    _charCode: dart.privateName(html$, "_charCode"),
    $ctrlKey: dartx.ctrlKey = Symbol("dartx.ctrlKey"),
    $isComposing: dartx.isComposing = Symbol("dartx.isComposing"),
    _keyCode: dart.privateName(html$, "_keyCode"),
    $metaKey: dartx.metaKey = Symbol("dartx.metaKey"),
    $repeat: dartx.repeat = Symbol("dartx.repeat"),
    $shiftKey: dartx.shiftKey = Symbol("dartx.shiftKey"),
    $getModifierState: dartx.getModifierState = Symbol("dartx.getModifierState"),
    $control: dartx.control = Symbol("dartx.control"),
    $htmlFor: dartx.htmlFor = Symbol("dartx.htmlFor"),
    $as: dartx.as = Symbol("dartx.as"),
    $import: dartx.import = Symbol("dartx.import"),
    $integrity: dartx.integrity = Symbol("dartx.integrity"),
    $relList: dartx.relList = Symbol("dartx.relList"),
    $scope: dartx.scope = Symbol("dartx.scope"),
    $sheet: dartx.sheet = Symbol("dartx.sheet"),
    $supportsImport: dartx.supportsImport = Symbol("dartx.supportsImport"),
    $ancestorOrigins: dartx.ancestorOrigins = Symbol("dartx.ancestorOrigins"),
    $trustedHref: dartx.trustedHref = Symbol("dartx.trustedHref"),
    $assign: dartx.assign = Symbol("dartx.assign"),
    $reload: dartx.reload = Symbol("dartx.reload"),
    $areas: dartx.areas = Symbol("dartx.areas"),
    $decodingInfo: dartx.decodingInfo = Symbol("dartx.decodingInfo"),
    $encodingInfo: dartx.encodingInfo = Symbol("dartx.encodingInfo"),
    $powerEfficient: dartx.powerEfficient = Symbol("dartx.powerEfficient"),
    $smooth: dartx.smooth = Symbol("dartx.smooth"),
    $supported: dartx.supported = Symbol("dartx.supported"),
    $deviceId: dartx.deviceId = Symbol("dartx.deviceId"),
    $groupId: dartx.groupId = Symbol("dartx.groupId"),
    $enumerateDevices: dartx.enumerateDevices = Symbol("dartx.enumerateDevices"),
    _getSupportedConstraints_1: dart.privateName(html$, "_getSupportedConstraints_1"),
    $getSupportedConstraints: dartx.getSupportedConstraints = Symbol("dartx.getSupportedConstraints"),
    $getUserMedia: dartx.getUserMedia = Symbol("dartx.getUserMedia"),
    $initData: dartx.initData = Symbol("dartx.initData"),
    $initDataType: dartx.initDataType = Symbol("dartx.initDataType"),
    $messageType: dartx.messageType = Symbol("dartx.messageType"),
    $closed: dartx.closed = Symbol("dartx.closed"),
    $expiration: dartx.expiration = Symbol("dartx.expiration"),
    $keyStatuses: dartx.keyStatuses = Symbol("dartx.keyStatuses"),
    $sessionId: dartx.sessionId = Symbol("dartx.sessionId"),
    $generateRequest: dartx.generateRequest = Symbol("dartx.generateRequest"),
    _update$1: dart.privateName(html$, "_update"),
    $keySystem: dartx.keySystem = Symbol("dartx.keySystem"),
    $createMediaKeys: dartx.createMediaKeys = Symbol("dartx.createMediaKeys"),
    _getConfiguration_1: dart.privateName(html$, "_getConfiguration_1"),
    $getConfiguration: dartx.getConfiguration = Symbol("dartx.getConfiguration"),
    _createSession: dart.privateName(html$, "_createSession"),
    $getStatusForPolicy: dartx.getStatusForPolicy = Symbol("dartx.getStatusForPolicy"),
    $setServerCertificate: dartx.setServerCertificate = Symbol("dartx.setServerCertificate"),
    $minHdcpVersion: dartx.minHdcpVersion = Symbol("dartx.minHdcpVersion"),
    $mediaText: dartx.mediaText = Symbol("dartx.mediaText"),
    $appendMedium: dartx.appendMedium = Symbol("dartx.appendMedium"),
    $deleteMedium: dartx.deleteMedium = Symbol("dartx.deleteMedium"),
    $album: dartx.album = Symbol("dartx.album"),
    $artist: dartx.artist = Symbol("dartx.artist"),
    $artwork: dartx.artwork = Symbol("dartx.artwork"),
    $addListener: dartx.addListener = Symbol("dartx.addListener"),
    $removeListener: dartx.removeListener = Symbol("dartx.removeListener"),
    $audioBitsPerSecond: dartx.audioBitsPerSecond = Symbol("dartx.audioBitsPerSecond"),
    $mimeType: dartx.mimeType = Symbol("dartx.mimeType"),
    $stream: dartx.stream = Symbol("dartx.stream"),
    $videoBitsPerSecond: dartx.videoBitsPerSecond = Symbol("dartx.videoBitsPerSecond"),
    $requestData: dartx.requestData = Symbol("dartx.requestData"),
    $resume: dartx.resume = Symbol("dartx.resume"),
    $metadata: dartx.metadata = Symbol("dartx.metadata"),
    $playbackState: dartx.playbackState = Symbol("dartx.playbackState"),
    $setActionHandler: dartx.setActionHandler = Symbol("dartx.setActionHandler"),
    $activeSourceBuffers: dartx.activeSourceBuffers = Symbol("dartx.activeSourceBuffers"),
    $sourceBuffers: dartx.sourceBuffers = Symbol("dartx.sourceBuffers"),
    $addSourceBuffer: dartx.addSourceBuffer = Symbol("dartx.addSourceBuffer"),
    $clearLiveSeekableRange: dartx.clearLiveSeekableRange = Symbol("dartx.clearLiveSeekableRange"),
    $endOfStream: dartx.endOfStream = Symbol("dartx.endOfStream"),
    $removeSourceBuffer: dartx.removeSourceBuffer = Symbol("dartx.removeSourceBuffer"),
    $setLiveSeekableRange: dartx.setLiveSeekableRange = Symbol("dartx.setLiveSeekableRange"),
    $active: dartx.active = Symbol("dartx.active"),
    $addTrack: dartx.addTrack = Symbol("dartx.addTrack"),
    $getAudioTracks: dartx.getAudioTracks = Symbol("dartx.getAudioTracks"),
    $getTrackById: dartx.getTrackById = Symbol("dartx.getTrackById"),
    $getTracks: dartx.getTracks = Symbol("dartx.getTracks"),
    $getVideoTracks: dartx.getVideoTracks = Symbol("dartx.getVideoTracks"),
    $removeTrack: dartx.removeTrack = Symbol("dartx.removeTrack"),
    $onAddTrack: dartx.onAddTrack = Symbol("dartx.onAddTrack"),
    $onRemoveTrack: dartx.onRemoveTrack = Symbol("dartx.onRemoveTrack"),
    $jsHeapSizeLimit: dartx.jsHeapSizeLimit = Symbol("dartx.jsHeapSizeLimit"),
    $totalJSHeapSize: dartx.totalJSHeapSize = Symbol("dartx.totalJSHeapSize"),
    $usedJSHeapSize: dartx.usedJSHeapSize = Symbol("dartx.usedJSHeapSize"),
    $port1: dartx.port1 = Symbol("dartx.port1"),
    $port2: dartx.port2 = Symbol("dartx.port2"),
    _initMessageEvent: dart.privateName(html$, "_initMessageEvent"),
    _get_data: dart.privateName(html$, "_get_data"),
    _get_source: dart.privateName(html$, "_get_source"),
    _initMessageEvent_1: dart.privateName(html$, "_initMessageEvent_1"),
    _start$4: dart.privateName(html$, "_start"),
    $httpEquiv: dartx.httpEquiv = Symbol("dartx.httpEquiv"),
    _get_modificationTime: dart.privateName(html$, "_get_modificationTime"),
    $modificationTime: dartx.modificationTime = Symbol("dartx.modificationTime"),
    $high: dartx.high = Symbol("dartx.high"),
    $low: dartx.low = Symbol("dartx.low"),
    $optimum: dartx.optimum = Symbol("dartx.optimum"),
    $inputs: dartx.inputs = Symbol("dartx.inputs"),
    $outputs: dartx.outputs = Symbol("dartx.outputs"),
    $sysexEnabled: dartx.sysexEnabled = Symbol("dartx.sysexEnabled"),
    $onMidiMessage: dartx.onMidiMessage = Symbol("dartx.onMidiMessage"),
    $connection: dartx.connection = Symbol("dartx.connection"),
    $manufacturer: dartx.manufacturer = Symbol("dartx.manufacturer"),
    _getItem: dart.privateName(html$, "_getItem"),
    $description: dartx.description = Symbol("dartx.description"),
    $enabledPlugin: dartx.enabledPlugin = Symbol("dartx.enabledPlugin"),
    $suffixes: dartx.suffixes = Symbol("dartx.suffixes"),
    $cite: dartx.cite = Symbol("dartx.cite"),
    $dateTime: dartx.dateTime = Symbol("dartx.dateTime"),
    _initMouseEvent: dart.privateName(html$, "_initMouseEvent"),
    $button: dartx.button = Symbol("dartx.button"),
    _clientX: dart.privateName(html$, "_clientX"),
    _clientY: dart.privateName(html$, "_clientY"),
    $fromElement: dartx.fromElement = Symbol("dartx.fromElement"),
    _layerX: dart.privateName(html$, "_layerX"),
    _layerY: dart.privateName(html$, "_layerY"),
    _movementX: dart.privateName(html$, "_movementX"),
    _movementY: dart.privateName(html$, "_movementY"),
    _pageX: dart.privateName(html$, "_pageX"),
    _pageY: dart.privateName(html$, "_pageY"),
    $region: dartx.region = Symbol("dartx.region"),
    _screenX: dart.privateName(html$, "_screenX"),
    _screenY: dart.privateName(html$, "_screenY"),
    $toElement: dartx.toElement = Symbol("dartx.toElement"),
    _initMouseEvent_1: dart.privateName(html$, "_initMouseEvent_1"),
    $movement: dartx.movement = Symbol("dartx.movement"),
    $screen: dartx.screen = Symbol("dartx.screen"),
    $layer: dartx.layer = Symbol("dartx.layer"),
    $dataTransfer: dartx.dataTransfer = Symbol("dartx.dataTransfer"),
    $attrChange: dartx.attrChange = Symbol("dartx.attrChange"),
    $attrName: dartx.attrName = Symbol("dartx.attrName"),
    $newValue: dartx.newValue = Symbol("dartx.newValue"),
    $prevValue: dartx.prevValue = Symbol("dartx.prevValue"),
    $relatedNode: dartx.relatedNode = Symbol("dartx.relatedNode"),
    $initMutationEvent: dartx.initMutationEvent = Symbol("dartx.initMutationEvent"),
    _observe_1$1: dart.privateName(html$, "_observe_1"),
    _observe_2: dart.privateName(html$, "_observe_2"),
    _observe: dart.privateName(html$, "_observe"),
    _call: dart.privateName(html$, "_call"),
    $addedNodes: dartx.addedNodes = Symbol("dartx.addedNodes"),
    $attributeName: dartx.attributeName = Symbol("dartx.attributeName"),
    $attributeNamespace: dartx.attributeNamespace = Symbol("dartx.attributeNamespace"),
    $nextSibling: dartx.nextSibling = Symbol("dartx.nextSibling"),
    $oldValue: dartx.oldValue = Symbol("dartx.oldValue"),
    $previousSibling: dartx.previousSibling = Symbol("dartx.previousSibling"),
    $removedNodes: dartx.removedNodes = Symbol("dartx.removedNodes"),
    $disable: dartx.disable = Symbol("dartx.disable"),
    $enable: dartx.enable = Symbol("dartx.enable"),
    $getState: dartx.getState = Symbol("dartx.getState"),
    _getGamepads: dart.privateName(html$, "_getGamepads"),
    $getGamepads: dartx.getGamepads = Symbol("dartx.getGamepads"),
    $language: dartx.language = Symbol("dartx.language"),
    _ensureGetUserMedia: dart.privateName(html$, "_ensureGetUserMedia"),
    _getUserMedia: dart.privateName(html$, "_getUserMedia"),
    $budget: dartx.budget = Symbol("dartx.budget"),
    $clipboard: dartx.clipboard = Symbol("dartx.clipboard"),
    $credentials: dartx.credentials = Symbol("dartx.credentials"),
    $deviceMemory: dartx.deviceMemory = Symbol("dartx.deviceMemory"),
    $doNotTrack: dartx.doNotTrack = Symbol("dartx.doNotTrack"),
    $geolocation: dartx.geolocation = Symbol("dartx.geolocation")
  };
  var S$2 = {
    $maxTouchPoints: dartx.maxTouchPoints = Symbol("dartx.maxTouchPoints"),
    $mediaCapabilities: dartx.mediaCapabilities = Symbol("dartx.mediaCapabilities"),
    $mediaDevices: dartx.mediaDevices = Symbol("dartx.mediaDevices"),
    $mediaSession: dartx.mediaSession = Symbol("dartx.mediaSession"),
    $mimeTypes: dartx.mimeTypes = Symbol("dartx.mimeTypes"),
    $nfc: dartx.nfc = Symbol("dartx.nfc"),
    $permissions: dartx.permissions = Symbol("dartx.permissions"),
    $presentation: dartx.presentation = Symbol("dartx.presentation"),
    $productSub: dartx.productSub = Symbol("dartx.productSub"),
    $serviceWorker: dartx.serviceWorker = Symbol("dartx.serviceWorker"),
    $storage: dartx.storage = Symbol("dartx.storage"),
    $vendor: dartx.vendor = Symbol("dartx.vendor"),
    $vendorSub: dartx.vendorSub = Symbol("dartx.vendorSub"),
    $vr: dartx.vr = Symbol("dartx.vr"),
    $persistentStorage: dartx.persistentStorage = Symbol("dartx.persistentStorage"),
    $temporaryStorage: dartx.temporaryStorage = Symbol("dartx.temporaryStorage"),
    $cancelKeyboardLock: dartx.cancelKeyboardLock = Symbol("dartx.cancelKeyboardLock"),
    $getBattery: dartx.getBattery = Symbol("dartx.getBattery"),
    $getInstalledRelatedApps: dartx.getInstalledRelatedApps = Symbol("dartx.getInstalledRelatedApps"),
    $getVRDisplays: dartx.getVRDisplays = Symbol("dartx.getVRDisplays"),
    $registerProtocolHandler: dartx.registerProtocolHandler = Symbol("dartx.registerProtocolHandler"),
    _requestKeyboardLock_1: dart.privateName(html$, "_requestKeyboardLock_1"),
    _requestKeyboardLock_2: dart.privateName(html$, "_requestKeyboardLock_2"),
    $requestKeyboardLock: dartx.requestKeyboardLock = Symbol("dartx.requestKeyboardLock"),
    $requestMidiAccess: dartx.requestMidiAccess = Symbol("dartx.requestMidiAccess"),
    $requestMediaKeySystemAccess: dartx.requestMediaKeySystemAccess = Symbol("dartx.requestMediaKeySystemAccess"),
    $sendBeacon: dartx.sendBeacon = Symbol("dartx.sendBeacon"),
    $share: dartx.share = Symbol("dartx.share"),
    $webdriver: dartx.webdriver = Symbol("dartx.webdriver"),
    $cookieEnabled: dartx.cookieEnabled = Symbol("dartx.cookieEnabled"),
    $appCodeName: dartx.appCodeName = Symbol("dartx.appCodeName"),
    $appName: dartx.appName = Symbol("dartx.appName"),
    $appVersion: dartx.appVersion = Symbol("dartx.appVersion"),
    $dartEnabled: dartx.dartEnabled = Symbol("dartx.dartEnabled"),
    $platform: dartx.platform = Symbol("dartx.platform"),
    $product: dartx.product = Symbol("dartx.product"),
    $userAgent: dartx.userAgent = Symbol("dartx.userAgent"),
    $languages: dartx.languages = Symbol("dartx.languages"),
    $onLine: dartx.onLine = Symbol("dartx.onLine"),
    $hardwareConcurrency: dartx.hardwareConcurrency = Symbol("dartx.hardwareConcurrency"),
    $constraintName: dartx.constraintName = Symbol("dartx.constraintName"),
    $downlink: dartx.downlink = Symbol("dartx.downlink"),
    $downlinkMax: dartx.downlinkMax = Symbol("dartx.downlinkMax"),
    $effectiveType: dartx.effectiveType = Symbol("dartx.effectiveType"),
    $rtt: dartx.rtt = Symbol("dartx.rtt"),
    $pointerBeforeReferenceNode: dartx.pointerBeforeReferenceNode = Symbol("dartx.pointerBeforeReferenceNode"),
    $referenceNode: dartx.referenceNode = Symbol("dartx.referenceNode"),
    $whatToShow: dartx.whatToShow = Symbol("dartx.whatToShow"),
    $detach: dartx.detach = Symbol("dartx.detach"),
    $actions: dartx.actions = Symbol("dartx.actions"),
    $badge: dartx.badge = Symbol("dartx.badge"),
    $icon: dartx.icon = Symbol("dartx.icon"),
    $image: dartx.image = Symbol("dartx.image"),
    $renotify: dartx.renotify = Symbol("dartx.renotify"),
    $requireInteraction: dartx.requireInteraction = Symbol("dartx.requireInteraction"),
    $silent: dartx.silent = Symbol("dartx.silent"),
    $tag: dartx.tag = Symbol("dartx.tag"),
    $vibrate: dartx.vibrate = Symbol("dartx.vibrate"),
    $onShow: dartx.onShow = Symbol("dartx.onShow"),
    $notification: dartx.notification = Symbol("dartx.notification"),
    $reply: dartx.reply = Symbol("dartx.reply"),
    $convertToBlob: dartx.convertToBlob = Symbol("dartx.convertToBlob"),
    $transferToImageBitmap: dartx.transferToImageBitmap = Symbol("dartx.transferToImageBitmap"),
    $commit: dartx.commit = Symbol("dartx.commit"),
    $defaultSelected: dartx.defaultSelected = Symbol("dartx.defaultSelected"),
    $constraint: dartx.constraint = Symbol("dartx.constraint"),
    $persisted: dartx.persisted = Symbol("dartx.persisted"),
    $devicePixelRatio: dartx.devicePixelRatio = Symbol("dartx.devicePixelRatio"),
    $registerPaint: dartx.registerPaint = Symbol("dartx.registerPaint"),
    $additionalData: dartx.additionalData = Symbol("dartx.additionalData"),
    $idName: dartx.idName = Symbol("dartx.idName"),
    $passwordName: dartx.passwordName = Symbol("dartx.passwordName"),
    $addPath: dartx.addPath = Symbol("dartx.addPath"),
    $addressLine: dartx.addressLine = Symbol("dartx.addressLine"),
    $city: dartx.city = Symbol("dartx.city"),
    $country: dartx.country = Symbol("dartx.country"),
    $dependentLocality: dartx.dependentLocality = Symbol("dartx.dependentLocality"),
    $languageCode: dartx.languageCode = Symbol("dartx.languageCode"),
    $organization: dartx.organization = Symbol("dartx.organization"),
    $phone: dartx.phone = Symbol("dartx.phone"),
    $postalCode: dartx.postalCode = Symbol("dartx.postalCode"),
    $recipient: dartx.recipient = Symbol("dartx.recipient"),
    $sortingCode: dartx.sortingCode = Symbol("dartx.sortingCode"),
    $instruments: dartx.instruments = Symbol("dartx.instruments"),
    $userHint: dartx.userHint = Symbol("dartx.userHint"),
    $shippingAddress: dartx.shippingAddress = Symbol("dartx.shippingAddress"),
    $shippingOption: dartx.shippingOption = Symbol("dartx.shippingOption"),
    $shippingType: dartx.shippingType = Symbol("dartx.shippingType"),
    $canMakePayment: dartx.canMakePayment = Symbol("dartx.canMakePayment"),
    $instrumentKey: dartx.instrumentKey = Symbol("dartx.instrumentKey"),
    $paymentRequestId: dartx.paymentRequestId = Symbol("dartx.paymentRequestId"),
    $total: dartx.total = Symbol("dartx.total"),
    $updateWith: dartx.updateWith = Symbol("dartx.updateWith"),
    $methodName: dartx.methodName = Symbol("dartx.methodName"),
    $payerEmail: dartx.payerEmail = Symbol("dartx.payerEmail"),
    $payerName: dartx.payerName = Symbol("dartx.payerName"),
    $payerPhone: dartx.payerPhone = Symbol("dartx.payerPhone"),
    $requestId: dartx.requestId = Symbol("dartx.requestId"),
    $memory: dartx.memory = Symbol("dartx.memory"),
    $navigation: dartx.navigation = Symbol("dartx.navigation"),
    $timeOrigin: dartx.timeOrigin = Symbol("dartx.timeOrigin"),
    $clearMarks: dartx.clearMarks = Symbol("dartx.clearMarks"),
    $clearMeasures: dartx.clearMeasures = Symbol("dartx.clearMeasures"),
    $clearResourceTimings: dartx.clearResourceTimings = Symbol("dartx.clearResourceTimings"),
    $getEntries: dartx.getEntries = Symbol("dartx.getEntries"),
    $getEntriesByName: dartx.getEntriesByName = Symbol("dartx.getEntriesByName"),
    $getEntriesByType: dartx.getEntriesByType = Symbol("dartx.getEntriesByType"),
    $mark: dartx.mark = Symbol("dartx.mark"),
    $measure: dartx.measure = Symbol("dartx.measure"),
    $now: dartx.now = Symbol("dartx.now"),
    $setResourceTimingBufferSize: dartx.setResourceTimingBufferSize = Symbol("dartx.setResourceTimingBufferSize"),
    $entryType: dartx.entryType = Symbol("dartx.entryType"),
    $attribution: dartx.attribution = Symbol("dartx.attribution"),
    $redirectCount: dartx.redirectCount = Symbol("dartx.redirectCount"),
    $domComplete: dartx.domComplete = Symbol("dartx.domComplete"),
    $domContentLoadedEventEnd: dartx.domContentLoadedEventEnd = Symbol("dartx.domContentLoadedEventEnd"),
    $domContentLoadedEventStart: dartx.domContentLoadedEventStart = Symbol("dartx.domContentLoadedEventStart"),
    $domInteractive: dartx.domInteractive = Symbol("dartx.domInteractive"),
    $loadEventEnd: dartx.loadEventEnd = Symbol("dartx.loadEventEnd"),
    $loadEventStart: dartx.loadEventStart = Symbol("dartx.loadEventStart"),
    $unloadEventEnd: dartx.unloadEventEnd = Symbol("dartx.unloadEventEnd"),
    $unloadEventStart: dartx.unloadEventStart = Symbol("dartx.unloadEventStart"),
    $connectEnd: dartx.connectEnd = Symbol("dartx.connectEnd"),
    $connectStart: dartx.connectStart = Symbol("dartx.connectStart"),
    $decodedBodySize: dartx.decodedBodySize = Symbol("dartx.decodedBodySize"),
    $domainLookupEnd: dartx.domainLookupEnd = Symbol("dartx.domainLookupEnd"),
    $domainLookupStart: dartx.domainLookupStart = Symbol("dartx.domainLookupStart"),
    $encodedBodySize: dartx.encodedBodySize = Symbol("dartx.encodedBodySize"),
    $fetchStart: dartx.fetchStart = Symbol("dartx.fetchStart"),
    $initiatorType: dartx.initiatorType = Symbol("dartx.initiatorType"),
    $nextHopProtocol: dartx.nextHopProtocol = Symbol("dartx.nextHopProtocol"),
    $redirectEnd: dartx.redirectEnd = Symbol("dartx.redirectEnd"),
    $redirectStart: dartx.redirectStart = Symbol("dartx.redirectStart"),
    $requestStart: dartx.requestStart = Symbol("dartx.requestStart"),
    $responseEnd: dartx.responseEnd = Symbol("dartx.responseEnd"),
    $responseStart: dartx.responseStart = Symbol("dartx.responseStart"),
    $secureConnectionStart: dartx.secureConnectionStart = Symbol("dartx.secureConnectionStart"),
    $serverTiming: dartx.serverTiming = Symbol("dartx.serverTiming"),
    $transferSize: dartx.transferSize = Symbol("dartx.transferSize"),
    $workerStart: dartx.workerStart = Symbol("dartx.workerStart"),
    $domLoading: dartx.domLoading = Symbol("dartx.domLoading"),
    $navigationStart: dartx.navigationStart = Symbol("dartx.navigationStart"),
    $query: dartx.query = Symbol("dartx.query"),
    $requestAll: dartx.requestAll = Symbol("dartx.requestAll"),
    $revoke: dartx.revoke = Symbol("dartx.revoke"),
    $fillLightMode: dartx.fillLightMode = Symbol("dartx.fillLightMode"),
    $imageHeight: dartx.imageHeight = Symbol("dartx.imageHeight"),
    $imageWidth: dartx.imageWidth = Symbol("dartx.imageWidth"),
    $redEyeReduction: dartx.redEyeReduction = Symbol("dartx.redEyeReduction"),
    $refresh: dartx.refresh = Symbol("dartx.refresh"),
    $isPrimary: dartx.isPrimary = Symbol("dartx.isPrimary"),
    $pointerId: dartx.pointerId = Symbol("dartx.pointerId"),
    $pointerType: dartx.pointerType = Symbol("dartx.pointerType"),
    $pressure: dartx.pressure = Symbol("dartx.pressure"),
    $tangentialPressure: dartx.tangentialPressure = Symbol("dartx.tangentialPressure"),
    $tiltX: dartx.tiltX = Symbol("dartx.tiltX"),
    $tiltY: dartx.tiltY = Symbol("dartx.tiltY"),
    $twist: dartx.twist = Symbol("dartx.twist"),
    $getCoalescedEvents: dartx.getCoalescedEvents = Symbol("dartx.getCoalescedEvents"),
    $defaultRequest: dartx.defaultRequest = Symbol("dartx.defaultRequest"),
    $receiver: dartx.receiver = Symbol("dartx.receiver"),
    $binaryType: dartx.binaryType = Symbol("dartx.binaryType"),
    $terminate: dartx.terminate = Symbol("dartx.terminate"),
    $connections: dartx.connections = Symbol("dartx.connections"),
    $connectionList: dartx.connectionList = Symbol("dartx.connectionList"),
    $getAvailability: dartx.getAvailability = Symbol("dartx.getAvailability"),
    $reconnect: dartx.reconnect = Symbol("dartx.reconnect"),
    $lengthComputable: dartx.lengthComputable = Symbol("dartx.lengthComputable"),
    $promise: dartx.promise = Symbol("dartx.promise"),
    $rawId: dartx.rawId = Symbol("dartx.rawId"),
    $getSubscription: dartx.getSubscription = Symbol("dartx.getSubscription"),
    $permissionState: dartx.permissionState = Symbol("dartx.permissionState"),
    $subscribe: dartx.subscribe = Symbol("dartx.subscribe"),
    $endpoint: dartx.endpoint = Symbol("dartx.endpoint"),
    $expirationTime: dartx.expirationTime = Symbol("dartx.expirationTime"),
    $unsubscribe: dartx.unsubscribe = Symbol("dartx.unsubscribe"),
    $applicationServerKey: dartx.applicationServerKey = Symbol("dartx.applicationServerKey"),
    $userVisibleOnly: dartx.userVisibleOnly = Symbol("dartx.userVisibleOnly"),
    $collapsed: dartx.collapsed = Symbol("dartx.collapsed"),
    $commonAncestorContainer: dartx.commonAncestorContainer = Symbol("dartx.commonAncestorContainer"),
    $endContainer: dartx.endContainer = Symbol("dartx.endContainer"),
    $endOffset: dartx.endOffset = Symbol("dartx.endOffset"),
    $startContainer: dartx.startContainer = Symbol("dartx.startContainer"),
    $startOffset: dartx.startOffset = Symbol("dartx.startOffset"),
    $cloneContents: dartx.cloneContents = Symbol("dartx.cloneContents"),
    $cloneRange: dartx.cloneRange = Symbol("dartx.cloneRange"),
    $collapse: dartx.collapse = Symbol("dartx.collapse"),
    $compareBoundaryPoints: dartx.compareBoundaryPoints = Symbol("dartx.compareBoundaryPoints"),
    $comparePoint: dartx.comparePoint = Symbol("dartx.comparePoint"),
    $createContextualFragment: dartx.createContextualFragment = Symbol("dartx.createContextualFragment"),
    $deleteContents: dartx.deleteContents = Symbol("dartx.deleteContents"),
    $extractContents: dartx.extractContents = Symbol("dartx.extractContents"),
    $insertNode: dartx.insertNode = Symbol("dartx.insertNode"),
    $isPointInRange: dartx.isPointInRange = Symbol("dartx.isPointInRange"),
    $selectNode: dartx.selectNode = Symbol("dartx.selectNode"),
    $selectNodeContents: dartx.selectNodeContents = Symbol("dartx.selectNodeContents"),
    $setEnd: dartx.setEnd = Symbol("dartx.setEnd"),
    $setEndAfter: dartx.setEndAfter = Symbol("dartx.setEndAfter"),
    $setEndBefore: dartx.setEndBefore = Symbol("dartx.setEndBefore"),
    $setStart: dartx.setStart = Symbol("dartx.setStart"),
    $setStartAfter: dartx.setStartAfter = Symbol("dartx.setStartAfter"),
    $setStartBefore: dartx.setStartBefore = Symbol("dartx.setStartBefore"),
    $surroundContents: dartx.surroundContents = Symbol("dartx.surroundContents"),
    $cancelWatchAvailability: dartx.cancelWatchAvailability = Symbol("dartx.cancelWatchAvailability"),
    $watchAvailability: dartx.watchAvailability = Symbol("dartx.watchAvailability"),
    $contentRect: dartx.contentRect = Symbol("dartx.contentRect"),
    $expires: dartx.expires = Symbol("dartx.expires"),
    $getFingerprints: dartx.getFingerprints = Symbol("dartx.getFingerprints"),
    $bufferedAmount: dartx.bufferedAmount = Symbol("dartx.bufferedAmount"),
    $bufferedAmountLowThreshold: dartx.bufferedAmountLowThreshold = Symbol("dartx.bufferedAmountLowThreshold"),
    $maxRetransmitTime: dartx.maxRetransmitTime = Symbol("dartx.maxRetransmitTime"),
    $maxRetransmits: dartx.maxRetransmits = Symbol("dartx.maxRetransmits"),
    $negotiated: dartx.negotiated = Symbol("dartx.negotiated"),
    $ordered: dartx.ordered = Symbol("dartx.ordered"),
    $reliable: dartx.reliable = Symbol("dartx.reliable"),
    $sendBlob: dartx.sendBlob = Symbol("dartx.sendBlob"),
    $sendByteBuffer: dartx.sendByteBuffer = Symbol("dartx.sendByteBuffer"),
    $sendString: dartx.sendString = Symbol("dartx.sendString"),
    $sendTypedData: dartx.sendTypedData = Symbol("dartx.sendTypedData"),
    $channel: dartx.channel = Symbol("dartx.channel"),
    $canInsertDtmf: dartx.canInsertDtmf = Symbol("dartx.canInsertDtmf"),
    $interToneGap: dartx.interToneGap = Symbol("dartx.interToneGap"),
    $toneBuffer: dartx.toneBuffer = Symbol("dartx.toneBuffer"),
    $insertDtmf: dartx.insertDtmf = Symbol("dartx.insertDtmf"),
    $onToneChange: dartx.onToneChange = Symbol("dartx.onToneChange"),
    $tone: dartx.tone = Symbol("dartx.tone"),
    $candidate: dartx.candidate = Symbol("dartx.candidate"),
    $sdpMLineIndex: dartx.sdpMLineIndex = Symbol("dartx.sdpMLineIndex"),
    $sdpMid: dartx.sdpMid = Symbol("dartx.sdpMid"),
    _get_timestamp: dart.privateName(html$, "_get_timestamp"),
    $names: dartx.names = Symbol("dartx.names"),
    $stat: dartx.stat = Symbol("dartx.stat"),
    _getStats: dart.privateName(html$, "_getStats"),
    $getLegacyStats: dartx.getLegacyStats = Symbol("dartx.getLegacyStats"),
    $iceConnectionState: dartx.iceConnectionState = Symbol("dartx.iceConnectionState"),
    $iceGatheringState: dartx.iceGatheringState = Symbol("dartx.iceGatheringState"),
    $localDescription: dartx.localDescription = Symbol("dartx.localDescription"),
    $remoteDescription: dartx.remoteDescription = Symbol("dartx.remoteDescription"),
    $signalingState: dartx.signalingState = Symbol("dartx.signalingState"),
    $addIceCandidate: dartx.addIceCandidate = Symbol("dartx.addIceCandidate"),
    _addStream_1: dart.privateName(html$, "_addStream_1"),
    _addStream_2: dart.privateName(html$, "_addStream_2"),
    $addStream: dartx.addStream = Symbol("dartx.addStream"),
    $createAnswer: dartx.createAnswer = Symbol("dartx.createAnswer"),
    $createDtmfSender: dartx.createDtmfSender = Symbol("dartx.createDtmfSender"),
    _createDataChannel_1: dart.privateName(html$, "_createDataChannel_1"),
    _createDataChannel_2: dart.privateName(html$, "_createDataChannel_2"),
    $createDataChannel: dartx.createDataChannel = Symbol("dartx.createDataChannel"),
    $createOffer: dartx.createOffer = Symbol("dartx.createOffer"),
    $getLocalStreams: dartx.getLocalStreams = Symbol("dartx.getLocalStreams"),
    $getReceivers: dartx.getReceivers = Symbol("dartx.getReceivers"),
    $getRemoteStreams: dartx.getRemoteStreams = Symbol("dartx.getRemoteStreams"),
    $getSenders: dartx.getSenders = Symbol("dartx.getSenders"),
    $getStats: dartx.getStats = Symbol("dartx.getStats"),
    $removeStream: dartx.removeStream = Symbol("dartx.removeStream"),
    _setConfiguration_1: dart.privateName(html$, "_setConfiguration_1"),
    $setConfiguration: dartx.setConfiguration = Symbol("dartx.setConfiguration"),
    $setLocalDescription: dartx.setLocalDescription = Symbol("dartx.setLocalDescription"),
    $setRemoteDescription: dartx.setRemoteDescription = Symbol("dartx.setRemoteDescription"),
    $onAddStream: dartx.onAddStream = Symbol("dartx.onAddStream"),
    $onDataChannel: dartx.onDataChannel = Symbol("dartx.onDataChannel"),
    $onIceCandidate: dartx.onIceCandidate = Symbol("dartx.onIceCandidate"),
    $onIceConnectionStateChange: dartx.onIceConnectionStateChange = Symbol("dartx.onIceConnectionStateChange"),
    $onNegotiationNeeded: dartx.onNegotiationNeeded = Symbol("dartx.onNegotiationNeeded"),
    $onRemoveStream: dartx.onRemoveStream = Symbol("dartx.onRemoveStream"),
    $onSignalingStateChange: dartx.onSignalingStateChange = Symbol("dartx.onSignalingStateChange"),
    $onTrack: dartx.onTrack = Symbol("dartx.onTrack"),
    $getContributingSources: dartx.getContributingSources = Symbol("dartx.getContributingSources"),
    $sdp: dartx.sdp = Symbol("dartx.sdp"),
    $streams: dartx.streams = Symbol("dartx.streams"),
    _availLeft: dart.privateName(html$, "_availLeft"),
    _availTop: dart.privateName(html$, "_availTop"),
    _availWidth: dart.privateName(html$, "_availWidth"),
    _availHeight: dart.privateName(html$, "_availHeight"),
    $available: dartx.available = Symbol("dartx.available"),
    $colorDepth: dartx.colorDepth = Symbol("dartx.colorDepth"),
    $keepAwake: dartx.keepAwake = Symbol("dartx.keepAwake"),
    $pixelDepth: dartx.pixelDepth = Symbol("dartx.pixelDepth"),
    $lock: dartx.lock = Symbol("dartx.lock"),
    $unlock: dartx.unlock = Symbol("dartx.unlock"),
    $charset: dartx.charset = Symbol("dartx.charset"),
    $defer: dartx.defer = Symbol("dartx.defer"),
    $noModule: dartx.noModule = Symbol("dartx.noModule"),
    $deltaGranularity: dartx.deltaGranularity = Symbol("dartx.deltaGranularity"),
    $deltaX: dartx.deltaX = Symbol("dartx.deltaX"),
    $deltaY: dartx.deltaY = Symbol("dartx.deltaY"),
    $fromUserInput: dartx.fromUserInput = Symbol("dartx.fromUserInput"),
    $inInertialPhase: dartx.inInertialPhase = Symbol("dartx.inInertialPhase"),
    $isBeginning: dartx.isBeginning = Symbol("dartx.isBeginning"),
    $isDirectManipulation: dartx.isDirectManipulation = Symbol("dartx.isDirectManipulation"),
    $isEnding: dartx.isEnding = Symbol("dartx.isEnding"),
    $positionX: dartx.positionX = Symbol("dartx.positionX"),
    $positionY: dartx.positionY = Symbol("dartx.positionY"),
    $velocityX: dartx.velocityX = Symbol("dartx.velocityX"),
    $velocityY: dartx.velocityY = Symbol("dartx.velocityY"),
    $consumeDelta: dartx.consumeDelta = Symbol("dartx.consumeDelta"),
    $distributeToScrollChainDescendant: dartx.distributeToScrollChainDescendant = Symbol("dartx.distributeToScrollChainDescendant"),
    $scrollSource: dartx.scrollSource = Symbol("dartx.scrollSource"),
    $timeRange: dartx.timeRange = Symbol("dartx.timeRange"),
    $blockedUri: dartx.blockedUri = Symbol("dartx.blockedUri"),
    $columnNumber: dartx.columnNumber = Symbol("dartx.columnNumber"),
    $disposition: dartx.disposition = Symbol("dartx.disposition"),
    $documentUri: dartx.documentUri = Symbol("dartx.documentUri"),
    $effectiveDirective: dartx.effectiveDirective = Symbol("dartx.effectiveDirective"),
    $originalPolicy: dartx.originalPolicy = Symbol("dartx.originalPolicy"),
    $sample: dartx.sample = Symbol("dartx.sample"),
    $statusCode: dartx.statusCode = Symbol("dartx.statusCode"),
    $violatedDirective: dartx.violatedDirective = Symbol("dartx.violatedDirective"),
    $selectedIndex: dartx.selectedIndex = Symbol("dartx.selectedIndex"),
    $selectedOptions: dartx.selectedOptions = Symbol("dartx.selectedOptions"),
    $anchorNode: dartx.anchorNode = Symbol("dartx.anchorNode"),
    $anchorOffset: dartx.anchorOffset = Symbol("dartx.anchorOffset"),
    $baseNode: dartx.baseNode = Symbol("dartx.baseNode"),
    $baseOffset: dartx.baseOffset = Symbol("dartx.baseOffset"),
    $extentNode: dartx.extentNode = Symbol("dartx.extentNode"),
    $extentOffset: dartx.extentOffset = Symbol("dartx.extentOffset"),
    $focusNode: dartx.focusNode = Symbol("dartx.focusNode"),
    $focusOffset: dartx.focusOffset = Symbol("dartx.focusOffset"),
    $isCollapsed: dartx.isCollapsed = Symbol("dartx.isCollapsed"),
    $rangeCount: dartx.rangeCount = Symbol("dartx.rangeCount"),
    $addRange: dartx.addRange = Symbol("dartx.addRange"),
    $collapseToEnd: dartx.collapseToEnd = Symbol("dartx.collapseToEnd"),
    $collapseToStart: dartx.collapseToStart = Symbol("dartx.collapseToStart"),
    $containsNode: dartx.containsNode = Symbol("dartx.containsNode"),
    $deleteFromDocument: dartx.deleteFromDocument = Symbol("dartx.deleteFromDocument"),
    $empty: dartx.empty = Symbol("dartx.empty"),
    $extend: dartx.extend = Symbol("dartx.extend"),
    $getRangeAt: dartx.getRangeAt = Symbol("dartx.getRangeAt"),
    $modify: dartx.modify = Symbol("dartx.modify"),
    $removeAllRanges: dartx.removeAllRanges = Symbol("dartx.removeAllRanges"),
    $selectAllChildren: dartx.selectAllChildren = Symbol("dartx.selectAllChildren"),
    $setBaseAndExtent: dartx.setBaseAndExtent = Symbol("dartx.setBaseAndExtent"),
    $setPosition: dartx.setPosition = Symbol("dartx.setPosition"),
    $scriptUrl: dartx.scriptUrl = Symbol("dartx.scriptUrl"),
    $controller: dartx.controller = Symbol("dartx.controller"),
    $getRegistration: dartx.getRegistration = Symbol("dartx.getRegistration"),
    $getRegistrations: dartx.getRegistrations = Symbol("dartx.getRegistrations"),
    $clients: dartx.clients = Symbol("dartx.clients"),
    $registration: dartx.registration = Symbol("dartx.registration"),
    $skipWaiting: dartx.skipWaiting = Symbol("dartx.skipWaiting"),
    $onActivate: dartx.onActivate = Symbol("dartx.onActivate"),
    $onFetch: dartx.onFetch = Symbol("dartx.onFetch"),
    $onForeignfetch: dartx.onForeignfetch = Symbol("dartx.onForeignfetch"),
    $onInstall: dartx.onInstall = Symbol("dartx.onInstall"),
    $backgroundFetch: dartx.backgroundFetch = Symbol("dartx.backgroundFetch"),
    $installing: dartx.installing = Symbol("dartx.installing"),
    $navigationPreload: dartx.navigationPreload = Symbol("dartx.navigationPreload"),
    $paymentManager: dartx.paymentManager = Symbol("dartx.paymentManager"),
    $pushManager: dartx.pushManager = Symbol("dartx.pushManager"),
    $sync: dartx.sync = Symbol("dartx.sync"),
    $waiting: dartx.waiting = Symbol("dartx.waiting"),
    $getNotifications: dartx.getNotifications = Symbol("dartx.getNotifications"),
    $showNotification: dartx.showNotification = Symbol("dartx.showNotification"),
    $unregister: dartx.unregister = Symbol("dartx.unregister"),
    $delegatesFocus: dartx.delegatesFocus = Symbol("dartx.delegatesFocus"),
    $olderShadowRoot: dartx.olderShadowRoot = Symbol("dartx.olderShadowRoot"),
    $console: dartx.console = Symbol("dartx.console"),
    $resetStyleInheritance: dartx.resetStyleInheritance = Symbol("dartx.resetStyleInheritance"),
    $applyAuthorStyles: dartx.applyAuthorStyles = Symbol("dartx.applyAuthorStyles"),
    $byteLength: dartx.byteLength = Symbol("dartx.byteLength"),
    $onConnect: dartx.onConnect = Symbol("dartx.onConnect"),
    _assignedNodes_1: dart.privateName(html$, "_assignedNodes_1"),
    _assignedNodes_2: dart.privateName(html$, "_assignedNodes_2"),
    $assignedNodes: dartx.assignedNodes = Symbol("dartx.assignedNodes"),
    $appendWindowEnd: dartx.appendWindowEnd = Symbol("dartx.appendWindowEnd"),
    $appendWindowStart: dartx.appendWindowStart = Symbol("dartx.appendWindowStart"),
    $timestampOffset: dartx.timestampOffset = Symbol("dartx.timestampOffset"),
    $trackDefaults: dartx.trackDefaults = Symbol("dartx.trackDefaults"),
    $updating: dartx.updating = Symbol("dartx.updating"),
    $appendBuffer: dartx.appendBuffer = Symbol("dartx.appendBuffer"),
    $appendTypedData: dartx.appendTypedData = Symbol("dartx.appendTypedData"),
    $addFromString: dartx.addFromString = Symbol("dartx.addFromString"),
    $addFromUri: dartx.addFromUri = Symbol("dartx.addFromUri"),
    $audioTrack: dartx.audioTrack = Symbol("dartx.audioTrack"),
    $continuous: dartx.continuous = Symbol("dartx.continuous"),
    $grammars: dartx.grammars = Symbol("dartx.grammars"),
    $interimResults: dartx.interimResults = Symbol("dartx.interimResults"),
    $maxAlternatives: dartx.maxAlternatives = Symbol("dartx.maxAlternatives"),
    $onAudioEnd: dartx.onAudioEnd = Symbol("dartx.onAudioEnd"),
    $onAudioStart: dartx.onAudioStart = Symbol("dartx.onAudioStart"),
    $onEnd: dartx.onEnd = Symbol("dartx.onEnd"),
    $onNoMatch: dartx.onNoMatch = Symbol("dartx.onNoMatch"),
    $onResult: dartx.onResult = Symbol("dartx.onResult"),
    $onSoundEnd: dartx.onSoundEnd = Symbol("dartx.onSoundEnd"),
    $onSoundStart: dartx.onSoundStart = Symbol("dartx.onSoundStart"),
    $onSpeechEnd: dartx.onSpeechEnd = Symbol("dartx.onSpeechEnd"),
    $onSpeechStart: dartx.onSpeechStart = Symbol("dartx.onSpeechStart"),
    $onStart: dartx.onStart = Symbol("dartx.onStart"),
    $confidence: dartx.confidence = Symbol("dartx.confidence"),
    $transcript: dartx.transcript = Symbol("dartx.transcript"),
    $emma: dartx.emma = Symbol("dartx.emma"),
    $interpretation: dartx.interpretation = Symbol("dartx.interpretation"),
    $resultIndex: dartx.resultIndex = Symbol("dartx.resultIndex"),
    $results: dartx.results = Symbol("dartx.results"),
    $isFinal: dartx.isFinal = Symbol("dartx.isFinal"),
    _getVoices: dart.privateName(html$, "_getVoices"),
    $getVoices: dartx.getVoices = Symbol("dartx.getVoices"),
    $pending: dartx.pending = Symbol("dartx.pending"),
    $speaking: dartx.speaking = Symbol("dartx.speaking"),
    $charIndex: dartx.charIndex = Symbol("dartx.charIndex"),
    $utterance: dartx.utterance = Symbol("dartx.utterance"),
    $pitch: dartx.pitch = Symbol("dartx.pitch"),
    $rate: dartx.rate = Symbol("dartx.rate"),
    $voice: dartx.voice = Symbol("dartx.voice"),
    $onBoundary: dartx.onBoundary = Symbol("dartx.onBoundary"),
    $onMark: dartx.onMark = Symbol("dartx.onMark"),
    $onResume: dartx.onResume = Symbol("dartx.onResume"),
    $localService: dartx.localService = Symbol("dartx.localService"),
    $voiceUri: dartx.voiceUri = Symbol("dartx.voiceUri"),
    _setItem: dart.privateName(html$, "_setItem"),
    _removeItem: dart.privateName(html$, "_removeItem"),
    _key: dart.privateName(html$, "_key"),
    _length$3: dart.privateName(html$, "_length"),
    _initStorageEvent: dart.privateName(html$, "_initStorageEvent"),
    $storageArea: dartx.storageArea = Symbol("dartx.storageArea"),
    $estimate: dartx.estimate = Symbol("dartx.estimate"),
    $persist: dartx.persist = Symbol("dartx.persist"),
    $matchMedium: dartx.matchMedium = Symbol("dartx.matchMedium"),
    $getProperties: dartx.getProperties = Symbol("dartx.getProperties"),
    $lastChance: dartx.lastChance = Symbol("dartx.lastChance"),
    $getTags: dartx.getTags = Symbol("dartx.getTags"),
    $cellIndex: dartx.cellIndex = Symbol("dartx.cellIndex"),
    $headers: dartx.headers = Symbol("dartx.headers"),
    $span: dartx.span = Symbol("dartx.span"),
    _tBodies: dart.privateName(html$, "_tBodies"),
    $tBodies: dartx.tBodies = Symbol("dartx.tBodies"),
    _rows: dart.privateName(html$, "_rows"),
    $rows: dartx.rows = Symbol("dartx.rows"),
    $insertRow: dartx.insertRow = Symbol("dartx.insertRow"),
    $addRow: dartx.addRow = Symbol("dartx.addRow"),
    _createCaption: dart.privateName(html$, "_createCaption"),
    $createCaption: dartx.createCaption = Symbol("dartx.createCaption"),
    _createTBody: dart.privateName(html$, "_createTBody"),
    $createTBody: dartx.createTBody = Symbol("dartx.createTBody"),
    _createTFoot: dart.privateName(html$, "_createTFoot"),
    $createTFoot: dartx.createTFoot = Symbol("dartx.createTFoot"),
    _createTHead: dart.privateName(html$, "_createTHead"),
    $createTHead: dartx.createTHead = Symbol("dartx.createTHead"),
    _insertRow: dart.privateName(html$, "_insertRow"),
    _nativeCreateTBody: dart.privateName(html$, "_nativeCreateTBody"),
    $caption: dartx.caption = Symbol("dartx.caption"),
    $tFoot: dartx.tFoot = Symbol("dartx.tFoot"),
    $tHead: dartx.tHead = Symbol("dartx.tHead"),
    $deleteCaption: dartx.deleteCaption = Symbol("dartx.deleteCaption"),
    $deleteRow: dartx.deleteRow = Symbol("dartx.deleteRow"),
    $deleteTFoot: dartx.deleteTFoot = Symbol("dartx.deleteTFoot"),
    $deleteTHead: dartx.deleteTHead = Symbol("dartx.deleteTHead"),
    _cells: dart.privateName(html$, "_cells"),
    $cells: dartx.cells = Symbol("dartx.cells"),
    $insertCell: dartx.insertCell = Symbol("dartx.insertCell"),
    $addCell: dartx.addCell = Symbol("dartx.addCell"),
    _insertCell: dart.privateName(html$, "_insertCell"),
    $sectionRowIndex: dartx.sectionRowIndex = Symbol("dartx.sectionRowIndex"),
    $deleteCell: dartx.deleteCell = Symbol("dartx.deleteCell"),
    $containerId: dartx.containerId = Symbol("dartx.containerId"),
    $containerName: dartx.containerName = Symbol("dartx.containerName"),
    $containerSrc: dartx.containerSrc = Symbol("dartx.containerSrc"),
    $containerType: dartx.containerType = Symbol("dartx.containerType"),
    $cols: dartx.cols = Symbol("dartx.cols"),
    $textLength: dartx.textLength = Symbol("dartx.textLength"),
    $wrap: dartx.wrap = Symbol("dartx.wrap"),
    _initTextEvent: dart.privateName(html$, "_initTextEvent"),
    $actualBoundingBoxAscent: dartx.actualBoundingBoxAscent = Symbol("dartx.actualBoundingBoxAscent"),
    $actualBoundingBoxDescent: dartx.actualBoundingBoxDescent = Symbol("dartx.actualBoundingBoxDescent"),
    $actualBoundingBoxLeft: dartx.actualBoundingBoxLeft = Symbol("dartx.actualBoundingBoxLeft"),
    $actualBoundingBoxRight: dartx.actualBoundingBoxRight = Symbol("dartx.actualBoundingBoxRight"),
    $alphabeticBaseline: dartx.alphabeticBaseline = Symbol("dartx.alphabeticBaseline"),
    $emHeightAscent: dartx.emHeightAscent = Symbol("dartx.emHeightAscent"),
    $emHeightDescent: dartx.emHeightDescent = Symbol("dartx.emHeightDescent"),
    $fontBoundingBoxAscent: dartx.fontBoundingBoxAscent = Symbol("dartx.fontBoundingBoxAscent"),
    $fontBoundingBoxDescent: dartx.fontBoundingBoxDescent = Symbol("dartx.fontBoundingBoxDescent"),
    $hangingBaseline: dartx.hangingBaseline = Symbol("dartx.hangingBaseline"),
    $ideographicBaseline: dartx.ideographicBaseline = Symbol("dartx.ideographicBaseline"),
    $activeCues: dartx.activeCues = Symbol("dartx.activeCues"),
    $cues: dartx.cues = Symbol("dartx.cues"),
    $addCue: dartx.addCue = Symbol("dartx.addCue"),
    $removeCue: dartx.removeCue = Symbol("dartx.removeCue"),
    $onCueChange: dartx.onCueChange = Symbol("dartx.onCueChange"),
    $endTime: dartx.endTime = Symbol("dartx.endTime"),
    $pauseOnExit: dartx.pauseOnExit = Symbol("dartx.pauseOnExit"),
    $onEnter: dartx.onEnter = Symbol("dartx.onEnter"),
    $onExit: dartx.onExit = Symbol("dartx.onExit"),
    $getCueById: dartx.getCueById = Symbol("dartx.getCueById"),
    $end: dartx.end = Symbol("dartx.end"),
    $force: dartx.force = Symbol("dartx.force"),
    $identifier: dartx.identifier = Symbol("dartx.identifier"),
    _radiusX: dart.privateName(html$, "_radiusX"),
    _radiusY: dart.privateName(html$, "_radiusY"),
    $rotationAngle: dartx.rotationAngle = Symbol("dartx.rotationAngle"),
    __clientX: dart.privateName(html$, "__clientX"),
    __clientY: dart.privateName(html$, "__clientY"),
    __screenX: dart.privateName(html$, "__screenX"),
    __screenY: dart.privateName(html$, "__screenY"),
    __pageX: dart.privateName(html$, "__pageX"),
    __pageY: dart.privateName(html$, "__pageY"),
    __radiusX: dart.privateName(html$, "__radiusX"),
    __radiusY: dart.privateName(html$, "__radiusY"),
    $radiusX: dartx.radiusX = Symbol("dartx.radiusX"),
    $radiusY: dartx.radiusY = Symbol("dartx.radiusY"),
    $changedTouches: dartx.changedTouches = Symbol("dartx.changedTouches")
  };
  var S$3 = {
    $targetTouches: dartx.targetTouches = Symbol("dartx.targetTouches"),
    $touches: dartx.touches = Symbol("dartx.touches"),
    $byteStreamTrackID: dartx.byteStreamTrackID = Symbol("dartx.byteStreamTrackID"),
    $kinds: dartx.kinds = Symbol("dartx.kinds"),
    $srclang: dartx.srclang = Symbol("dartx.srclang"),
    $propertyName: dartx.propertyName = Symbol("dartx.propertyName"),
    $pseudoElement: dartx.pseudoElement = Symbol("dartx.pseudoElement"),
    $currentNode: dartx.currentNode = Symbol("dartx.currentNode"),
    $notifyLockAcquired: dartx.notifyLockAcquired = Symbol("dartx.notifyLockAcquired"),
    $notifyLockReleased: dartx.notifyLockReleased = Symbol("dartx.notifyLockReleased"),
    $pull: dartx.pull = Symbol("dartx.pull"),
    $searchParams: dartx.searchParams = Symbol("dartx.searchParams"),
    $getDevices: dartx.getDevices = Symbol("dartx.getDevices"),
    $getTransformTo: dartx.getTransformTo = Symbol("dartx.getTransformTo"),
    $deviceName: dartx.deviceName = Symbol("dartx.deviceName"),
    $isExternal: dartx.isExternal = Symbol("dartx.isExternal"),
    $requestSession: dartx.requestSession = Symbol("dartx.requestSession"),
    $supportsSession: dartx.supportsSession = Symbol("dartx.supportsSession"),
    $device: dartx.device = Symbol("dartx.device"),
    $capabilities: dartx.capabilities = Symbol("dartx.capabilities"),
    $depthFar: dartx.depthFar = Symbol("dartx.depthFar"),
    $depthNear: dartx.depthNear = Symbol("dartx.depthNear"),
    $displayName: dartx.displayName = Symbol("dartx.displayName"),
    $isPresenting: dartx.isPresenting = Symbol("dartx.isPresenting"),
    $stageParameters: dartx.stageParameters = Symbol("dartx.stageParameters"),
    $cancelAnimationFrame: dartx.cancelAnimationFrame = Symbol("dartx.cancelAnimationFrame"),
    $exitPresent: dartx.exitPresent = Symbol("dartx.exitPresent"),
    $getEyeParameters: dartx.getEyeParameters = Symbol("dartx.getEyeParameters"),
    $getFrameData: dartx.getFrameData = Symbol("dartx.getFrameData"),
    $getLayers: dartx.getLayers = Symbol("dartx.getLayers"),
    $requestAnimationFrame: dartx.requestAnimationFrame = Symbol("dartx.requestAnimationFrame"),
    $requestPresent: dartx.requestPresent = Symbol("dartx.requestPresent"),
    $submitFrame: dartx.submitFrame = Symbol("dartx.submitFrame"),
    $canPresent: dartx.canPresent = Symbol("dartx.canPresent"),
    $hasExternalDisplay: dartx.hasExternalDisplay = Symbol("dartx.hasExternalDisplay"),
    $maxLayers: dartx.maxLayers = Symbol("dartx.maxLayers"),
    $renderHeight: dartx.renderHeight = Symbol("dartx.renderHeight"),
    $renderWidth: dartx.renderWidth = Symbol("dartx.renderWidth"),
    $leftProjectionMatrix: dartx.leftProjectionMatrix = Symbol("dartx.leftProjectionMatrix"),
    $leftViewMatrix: dartx.leftViewMatrix = Symbol("dartx.leftViewMatrix"),
    $rightProjectionMatrix: dartx.rightProjectionMatrix = Symbol("dartx.rightProjectionMatrix"),
    $rightViewMatrix: dartx.rightViewMatrix = Symbol("dartx.rightViewMatrix"),
    $bounds: dartx.bounds = Symbol("dartx.bounds"),
    $emulatedHeight: dartx.emulatedHeight = Symbol("dartx.emulatedHeight"),
    $exclusive: dartx.exclusive = Symbol("dartx.exclusive"),
    $requestFrameOfReference: dartx.requestFrameOfReference = Symbol("dartx.requestFrameOfReference"),
    $session: dartx.session = Symbol("dartx.session"),
    $geometry: dartx.geometry = Symbol("dartx.geometry"),
    $sittingToStandingTransform: dartx.sittingToStandingTransform = Symbol("dartx.sittingToStandingTransform"),
    $sizeX: dartx.sizeX = Symbol("dartx.sizeX"),
    $sizeZ: dartx.sizeZ = Symbol("dartx.sizeZ"),
    $badInput: dartx.badInput = Symbol("dartx.badInput"),
    $customError: dartx.customError = Symbol("dartx.customError"),
    $patternMismatch: dartx.patternMismatch = Symbol("dartx.patternMismatch"),
    $rangeOverflow: dartx.rangeOverflow = Symbol("dartx.rangeOverflow"),
    $rangeUnderflow: dartx.rangeUnderflow = Symbol("dartx.rangeUnderflow"),
    $stepMismatch: dartx.stepMismatch = Symbol("dartx.stepMismatch"),
    $tooLong: dartx.tooLong = Symbol("dartx.tooLong"),
    $tooShort: dartx.tooShort = Symbol("dartx.tooShort"),
    $typeMismatch: dartx.typeMismatch = Symbol("dartx.typeMismatch"),
    $valid: dartx.valid = Symbol("dartx.valid"),
    $valueMissing: dartx.valueMissing = Symbol("dartx.valueMissing"),
    $poster: dartx.poster = Symbol("dartx.poster"),
    $videoHeight: dartx.videoHeight = Symbol("dartx.videoHeight"),
    $videoWidth: dartx.videoWidth = Symbol("dartx.videoWidth"),
    $decodedFrameCount: dartx.decodedFrameCount = Symbol("dartx.decodedFrameCount"),
    $droppedFrameCount: dartx.droppedFrameCount = Symbol("dartx.droppedFrameCount"),
    $getVideoPlaybackQuality: dartx.getVideoPlaybackQuality = Symbol("dartx.getVideoPlaybackQuality"),
    $enterFullscreen: dartx.enterFullscreen = Symbol("dartx.enterFullscreen"),
    $corruptedVideoFrames: dartx.corruptedVideoFrames = Symbol("dartx.corruptedVideoFrames"),
    $creationTime: dartx.creationTime = Symbol("dartx.creationTime"),
    $droppedVideoFrames: dartx.droppedVideoFrames = Symbol("dartx.droppedVideoFrames"),
    $totalVideoFrames: dartx.totalVideoFrames = Symbol("dartx.totalVideoFrames"),
    $sourceBuffer: dartx.sourceBuffer = Symbol("dartx.sourceBuffer"),
    $pageLeft: dartx.pageLeft = Symbol("dartx.pageLeft"),
    $pageTop: dartx.pageTop = Symbol("dartx.pageTop"),
    $align: dartx.align = Symbol("dartx.align"),
    $line: dartx.line = Symbol("dartx.line"),
    $snapToLines: dartx.snapToLines = Symbol("dartx.snapToLines"),
    $vertical: dartx.vertical = Symbol("dartx.vertical"),
    $getCueAsHtml: dartx.getCueAsHtml = Symbol("dartx.getCueAsHtml"),
    $lines: dartx.lines = Symbol("dartx.lines"),
    $regionAnchorX: dartx.regionAnchorX = Symbol("dartx.regionAnchorX"),
    $regionAnchorY: dartx.regionAnchorY = Symbol("dartx.regionAnchorY"),
    $viewportAnchorX: dartx.viewportAnchorX = Symbol("dartx.viewportAnchorX"),
    $viewportAnchorY: dartx.viewportAnchorY = Symbol("dartx.viewportAnchorY"),
    $extensions: dartx.extensions = Symbol("dartx.extensions"),
    _deltaX: dart.privateName(html$, "_deltaX"),
    _deltaY: dart.privateName(html$, "_deltaY"),
    $deltaZ: dartx.deltaZ = Symbol("dartx.deltaZ"),
    $deltaMode: dartx.deltaMode = Symbol("dartx.deltaMode"),
    _wheelDelta: dart.privateName(html$, "_wheelDelta"),
    _wheelDeltaX: dart.privateName(html$, "_wheelDeltaX"),
    _hasInitMouseScrollEvent: dart.privateName(html$, "_hasInitMouseScrollEvent"),
    _initMouseScrollEvent: dart.privateName(html$, "_initMouseScrollEvent"),
    _hasInitWheelEvent: dart.privateName(html$, "_hasInitWheelEvent"),
    _initWheelEvent: dart.privateName(html$, "_initWheelEvent"),
    $animationFrame: dartx.animationFrame = Symbol("dartx.animationFrame"),
    $document: dartx.document = Symbol("dartx.document"),
    _open2: dart.privateName(html$, "_open2"),
    _open3: dart.privateName(html$, "_open3"),
    _location: dart.privateName(html$, "_location"),
    _ensureRequestAnimationFrame: dart.privateName(html$, "_ensureRequestAnimationFrame"),
    _requestAnimationFrame: dart.privateName(html$, "_requestAnimationFrame"),
    _cancelAnimationFrame: dart.privateName(html$, "_cancelAnimationFrame"),
    _requestFileSystem: dart.privateName(html$, "_requestFileSystem"),
    $requestFileSystem: dartx.requestFileSystem = Symbol("dartx.requestFileSystem"),
    $animationWorklet: dartx.animationWorklet = Symbol("dartx.animationWorklet"),
    $applicationCache: dartx.applicationCache = Symbol("dartx.applicationCache"),
    $audioWorklet: dartx.audioWorklet = Symbol("dartx.audioWorklet"),
    $cookieStore: dartx.cookieStore = Symbol("dartx.cookieStore"),
    $customElements: dartx.customElements = Symbol("dartx.customElements"),
    $defaultStatus: dartx.defaultStatus = Symbol("dartx.defaultStatus"),
    $defaultstatus: dartx.defaultstatus = Symbol("dartx.defaultstatus"),
    $external: dartx.external = Symbol("dartx.external"),
    $history: dartx.history = Symbol("dartx.history"),
    $innerHeight: dartx.innerHeight = Symbol("dartx.innerHeight"),
    $innerWidth: dartx.innerWidth = Symbol("dartx.innerWidth"),
    $localStorage: dartx.localStorage = Symbol("dartx.localStorage"),
    $locationbar: dartx.locationbar = Symbol("dartx.locationbar"),
    $menubar: dartx.menubar = Symbol("dartx.menubar"),
    $offscreenBuffering: dartx.offscreenBuffering = Symbol("dartx.offscreenBuffering"),
    _get_opener: dart.privateName(html$, "_get_opener"),
    $opener: dartx.opener = Symbol("dartx.opener"),
    $outerHeight: dartx.outerHeight = Symbol("dartx.outerHeight"),
    $outerWidth: dartx.outerWidth = Symbol("dartx.outerWidth"),
    _pageXOffset: dart.privateName(html$, "_pageXOffset"),
    _pageYOffset: dart.privateName(html$, "_pageYOffset"),
    _get_parent: dart.privateName(html$, "_get_parent"),
    $screenLeft: dartx.screenLeft = Symbol("dartx.screenLeft"),
    $screenTop: dartx.screenTop = Symbol("dartx.screenTop"),
    $screenX: dartx.screenX = Symbol("dartx.screenX"),
    $screenY: dartx.screenY = Symbol("dartx.screenY"),
    $scrollbars: dartx.scrollbars = Symbol("dartx.scrollbars"),
    _get_self: dart.privateName(html$, "_get_self"),
    $sessionStorage: dartx.sessionStorage = Symbol("dartx.sessionStorage"),
    $speechSynthesis: dartx.speechSynthesis = Symbol("dartx.speechSynthesis"),
    $statusbar: dartx.statusbar = Symbol("dartx.statusbar"),
    $styleMedia: dartx.styleMedia = Symbol("dartx.styleMedia"),
    $toolbar: dartx.toolbar = Symbol("dartx.toolbar"),
    _get_top: dart.privateName(html$, "_get_top"),
    $visualViewport: dartx.visualViewport = Symbol("dartx.visualViewport"),
    __getter___1: dart.privateName(html$, "__getter___1"),
    __getter___2: dart.privateName(html$, "__getter___2"),
    $alert: dartx.alert = Symbol("dartx.alert"),
    $cancelIdleCallback: dartx.cancelIdleCallback = Symbol("dartx.cancelIdleCallback"),
    $confirm: dartx.confirm = Symbol("dartx.confirm"),
    $find: dartx.find = Symbol("dartx.find"),
    $getComputedStyleMap: dartx.getComputedStyleMap = Symbol("dartx.getComputedStyleMap"),
    $getMatchedCssRules: dartx.getMatchedCssRules = Symbol("dartx.getMatchedCssRules"),
    $matchMedia: dartx.matchMedia = Symbol("dartx.matchMedia"),
    $moveBy: dartx.moveBy = Symbol("dartx.moveBy"),
    _openDatabase: dart.privateName(html$, "_openDatabase"),
    $print: dartx.print = Symbol("dartx.print"),
    _requestIdleCallback_1: dart.privateName(html$, "_requestIdleCallback_1"),
    _requestIdleCallback_2: dart.privateName(html$, "_requestIdleCallback_2"),
    $requestIdleCallback: dartx.requestIdleCallback = Symbol("dartx.requestIdleCallback"),
    $resizeBy: dartx.resizeBy = Symbol("dartx.resizeBy"),
    $resizeTo: dartx.resizeTo = Symbol("dartx.resizeTo"),
    _scroll_4: dart.privateName(html$, "_scroll_4"),
    _scroll_5: dart.privateName(html$, "_scroll_5"),
    _scrollBy_4: dart.privateName(html$, "_scrollBy_4"),
    _scrollBy_5: dart.privateName(html$, "_scrollBy_5"),
    _scrollTo_4: dart.privateName(html$, "_scrollTo_4"),
    _scrollTo_5: dart.privateName(html$, "_scrollTo_5"),
    __requestFileSystem: dart.privateName(html$, "__requestFileSystem"),
    _resolveLocalFileSystemUrl: dart.privateName(html$, "_resolveLocalFileSystemUrl"),
    $resolveLocalFileSystemUrl: dartx.resolveLocalFileSystemUrl = Symbol("dartx.resolveLocalFileSystemUrl"),
    $onContentLoaded: dartx.onContentLoaded = Symbol("dartx.onContentLoaded"),
    $onDeviceMotion: dartx.onDeviceMotion = Symbol("dartx.onDeviceMotion"),
    $onDeviceOrientation: dartx.onDeviceOrientation = Symbol("dartx.onDeviceOrientation"),
    $onPageHide: dartx.onPageHide = Symbol("dartx.onPageHide"),
    $onPageShow: dartx.onPageShow = Symbol("dartx.onPageShow"),
    $onAnimationEnd: dartx.onAnimationEnd = Symbol("dartx.onAnimationEnd"),
    $onAnimationIteration: dartx.onAnimationIteration = Symbol("dartx.onAnimationIteration"),
    $onAnimationStart: dartx.onAnimationStart = Symbol("dartx.onAnimationStart"),
    $onBeforeUnload: dartx.onBeforeUnload = Symbol("dartx.onBeforeUnload"),
    $openDatabase: dartx.openDatabase = Symbol("dartx.openDatabase"),
    $pageXOffset: dartx.pageXOffset = Symbol("dartx.pageXOffset"),
    $pageYOffset: dartx.pageYOffset = Symbol("dartx.pageYOffset"),
    $scrollX: dartx.scrollX = Symbol("dartx.scrollX"),
    $scrollY: dartx.scrollY = Symbol("dartx.scrollY"),
    _BeforeUnloadEventStreamProvider__eventType: dart.privateName(html$, "_BeforeUnloadEventStreamProvider._eventType"),
    _returnValue: dart.privateName(html$, "_returnValue"),
    wrapped: dart.privateName(html$, "_WrappedEvent.wrapped"),
    _eventType: dart.privateName(html$, "_BeforeUnloadEventStreamProvider._eventType"),
    _eventType$1: dart.privateName(html$, "_eventType"),
    $focused: dartx.focused = Symbol("dartx.focused"),
    $navigate: dartx.navigate = Symbol("dartx.navigate"),
    $createExpression: dartx.createExpression = Symbol("dartx.createExpression"),
    $createNSResolver: dartx.createNSResolver = Symbol("dartx.createNSResolver"),
    $evaluate: dartx.evaluate = Symbol("dartx.evaluate"),
    $lookupNamespaceUri: dartx.lookupNamespaceUri = Symbol("dartx.lookupNamespaceUri"),
    $booleanValue: dartx.booleanValue = Symbol("dartx.booleanValue"),
    $invalidIteratorState: dartx.invalidIteratorState = Symbol("dartx.invalidIteratorState"),
    $numberValue: dartx.numberValue = Symbol("dartx.numberValue"),
    $resultType: dartx.resultType = Symbol("dartx.resultType"),
    $singleNodeValue: dartx.singleNodeValue = Symbol("dartx.singleNodeValue"),
    $snapshotLength: dartx.snapshotLength = Symbol("dartx.snapshotLength"),
    $stringValue: dartx.stringValue = Symbol("dartx.stringValue"),
    $iterateNext: dartx.iterateNext = Symbol("dartx.iterateNext"),
    $snapshotItem: dartx.snapshotItem = Symbol("dartx.snapshotItem"),
    $serializeToString: dartx.serializeToString = Symbol("dartx.serializeToString"),
    $clearParameters: dartx.clearParameters = Symbol("dartx.clearParameters"),
    $getParameter: dartx.getParameter = Symbol("dartx.getParameter"),
    $importStylesheet: dartx.importStylesheet = Symbol("dartx.importStylesheet"),
    $removeParameter: dartx.removeParameter = Symbol("dartx.removeParameter"),
    $setParameter: dartx.setParameter = Symbol("dartx.setParameter"),
    $transformToDocument: dartx.transformToDocument = Symbol("dartx.transformToDocument"),
    $transformToFragment: dartx.transformToFragment = Symbol("dartx.transformToFragment"),
    $getBudget: dartx.getBudget = Symbol("dartx.getBudget"),
    $getCost: dartx.getCost = Symbol("dartx.getCost"),
    $reserve: dartx.reserve = Symbol("dartx.reserve"),
    $read: dartx.read = Symbol("dartx.read"),
    $readText: dartx.readText = Symbol("dartx.readText"),
    $writeText: dartx.writeText = Symbol("dartx.writeText"),
    $getNamedItem: dartx.getNamedItem = Symbol("dartx.getNamedItem"),
    $getNamedItemNS: dartx.getNamedItemNS = Symbol("dartx.getNamedItemNS"),
    $removeNamedItem: dartx.removeNamedItem = Symbol("dartx.removeNamedItem"),
    $removeNamedItemNS: dartx.removeNamedItemNS = Symbol("dartx.removeNamedItemNS"),
    $setNamedItem: dartx.setNamedItem = Symbol("dartx.setNamedItem"),
    $setNamedItemNS: dartx.setNamedItemNS = Symbol("dartx.setNamedItemNS"),
    $cache: dartx.cache = Symbol("dartx.cache"),
    $redirect: dartx.redirect = Symbol("dartx.redirect"),
    _matches: dart.privateName(html$, "_matches"),
    _namespace: dart.privateName(html$, "_namespace"),
    _attr: dart.privateName(html$, "_attr"),
    _strip: dart.privateName(html$, "_strip"),
    _toHyphenedName: dart.privateName(html$, "_toHyphenedName"),
    _toCamelCase: dart.privateName(html$, "_toCamelCase"),
    _addOrSubtractToBoxModel: dart.privateName(html$, "_addOrSubtractToBoxModel"),
    _elementList: dart.privateName(html$, "_elementList"),
    _sets: dart.privateName(html$, "_sets"),
    _validateToken: dart.privateName(html_common, "_validateToken"),
    _unit: dart.privateName(html$, "_unit"),
    _eventType$2: dart.privateName(html$, "EventStreamProvider._eventType"),
    _target$2: dart.privateName(html$, "_target"),
    _useCapture: dart.privateName(html$, "_useCapture"),
    _targetList: dart.privateName(html$, "_targetList"),
    _pauseCount$1: dart.privateName(html$, "_pauseCount"),
    _onData$3: dart.privateName(html$, "_onData"),
    _tryResume: dart.privateName(html$, "_tryResume"),
    _canceled: dart.privateName(html$, "_canceled"),
    _unlisten: dart.privateName(html$, "_unlisten"),
    _type$5: dart.privateName(html$, "_type"),
    _streamController: dart.privateName(html$, "_streamController"),
    _parent$2: dart.privateName(html$, "_parent"),
    _currentTarget: dart.privateName(html$, "_currentTarget"),
    _shadowAltKey: dart.privateName(html$, "_shadowAltKey"),
    _shadowCharCode: dart.privateName(html$, "_shadowCharCode"),
    _shadowKeyCode: dart.privateName(html$, "_shadowKeyCode"),
    _realAltKey: dart.privateName(html$, "_realAltKey"),
    _realCharCode: dart.privateName(html$, "_realCharCode"),
    _realKeyCode: dart.privateName(html$, "_realKeyCode"),
    _shadowKeyIdentifier: dart.privateName(html$, "_shadowKeyIdentifier"),
    _keyIdentifier: dart.privateName(html$, "_keyIdentifier"),
    _controller$2: dart.privateName(html$, "_controller"),
    _subscriptions: dart.privateName(html$, "_subscriptions"),
    _eventTypeGetter: dart.privateName(html$, "_CustomEventStreamProvider._eventTypeGetter"),
    _eventTypeGetter$1: dart.privateName(html$, "_eventTypeGetter"),
    _keyDownList: dart.privateName(html$, "_keyDownList"),
    _stream$3: dart.privateName(html$, "_stream"),
    _capsLockOn: dart.privateName(html$, "_capsLockOn"),
    _determineKeyCodeForKeypress: dart.privateName(html$, "_determineKeyCodeForKeypress"),
    _findCharCodeKeyDown: dart.privateName(html$, "_findCharCodeKeyDown"),
    _firesKeyPressEvent: dart.privateName(html$, "_firesKeyPressEvent"),
    _normalizeKeyCodes: dart.privateName(html$, "_normalizeKeyCodes"),
    _validators: dart.privateName(html$, "_validators"),
    _templateAttrs: dart.privateName(html$, "_templateAttrs"),
    _list$19: dart.privateName(html$, "_list"),
    _iterator$3: dart.privateName(html$, "_iterator"),
    _current$4: dart.privateName(html$, "_current"),
    _array: dart.privateName(html$, "_array"),
    _isConsoleDefined: dart.privateName(html$, "_isConsoleDefined"),
    _interceptor: dart.privateName(html$, "_interceptor"),
    _constructor: dart.privateName(html$, "_constructor"),
    _nativeType: dart.privateName(html$, "_nativeType"),
    _window: dart.privateName(html$, "_window"),
    _history: dart.privateName(html$, "_history"),
    _hiddenAnchor: dart.privateName(html$, "_hiddenAnchor"),
    _loc: dart.privateName(html$, "_loc"),
    _removeNode: dart.privateName(html$, "_removeNode"),
    _sanitizeElement: dart.privateName(html$, "_sanitizeElement"),
    _sanitizeUntrustedElement: dart.privateName(html$, "_sanitizeUntrustedElement"),
    alpha: dart.privateName(html_common, "ContextAttributes.alpha"),
    antialias: dart.privateName(html_common, "ContextAttributes.antialias"),
    depth: dart.privateName(html_common, "ContextAttributes.depth"),
    premultipliedAlpha: dart.privateName(html_common, "ContextAttributes.premultipliedAlpha"),
    preserveDrawingBuffer: dart.privateName(html_common, "ContextAttributes.preserveDrawingBuffer"),
    stencil: dart.privateName(html_common, "ContextAttributes.stencil"),
    failIfMajorPerformanceCaveat: dart.privateName(html_common, "ContextAttributes.failIfMajorPerformanceCaveat"),
    data$1: dart.privateName(html_common, "_TypedImageData.data"),
    height$1: dart.privateName(html_common, "_TypedImageData.height"),
    width$1: dart.privateName(html_common, "_TypedImageData.width"),
    _childNodes: dart.privateName(html_common, "_childNodes"),
    _node: dart.privateName(html_common, "_node"),
    _iterable$2: dart.privateName(html_common, "_iterable"),
    _filtered: dart.privateName(html_common, "_filtered"),
    $farthestViewportElement: dartx.farthestViewportElement = Symbol("dartx.farthestViewportElement"),
    $nearestViewportElement: dartx.nearestViewportElement = Symbol("dartx.nearestViewportElement"),
    $getBBox: dartx.getBBox = Symbol("dartx.getBBox"),
    $getCtm: dartx.getCtm = Symbol("dartx.getCtm"),
    $getScreenCtm: dartx.getScreenCtm = Symbol("dartx.getScreenCtm"),
    $requiredExtensions: dartx.requiredExtensions = Symbol("dartx.requiredExtensions"),
    $systemLanguage: dartx.systemLanguage = Symbol("dartx.systemLanguage"),
    _children$1: dart.privateName(svg$, "_children"),
    _svgClassName: dart.privateName(svg$, "_svgClassName"),
    $ownerSvgElement: dartx.ownerSvgElement = Symbol("dartx.ownerSvgElement"),
    $viewportElement: dartx.viewportElement = Symbol("dartx.viewportElement"),
    $unitType: dartx.unitType = Symbol("dartx.unitType"),
    $valueAsString: dartx.valueAsString = Symbol("dartx.valueAsString"),
    $valueInSpecifiedUnits: dartx.valueInSpecifiedUnits = Symbol("dartx.valueInSpecifiedUnits"),
    $convertToSpecifiedUnits: dartx.convertToSpecifiedUnits = Symbol("dartx.convertToSpecifiedUnits"),
    $newValueSpecifiedUnits: dartx.newValueSpecifiedUnits = Symbol("dartx.newValueSpecifiedUnits"),
    $targetElement: dartx.targetElement = Symbol("dartx.targetElement"),
    $beginElement: dartx.beginElement = Symbol("dartx.beginElement"),
    $beginElementAt: dartx.beginElementAt = Symbol("dartx.beginElementAt"),
    $endElement: dartx.endElement = Symbol("dartx.endElement"),
    $endElementAt: dartx.endElementAt = Symbol("dartx.endElementAt"),
    $getCurrentTime: dartx.getCurrentTime = Symbol("dartx.getCurrentTime"),
    $getSimpleDuration: dartx.getSimpleDuration = Symbol("dartx.getSimpleDuration"),
    $getStartTime: dartx.getStartTime = Symbol("dartx.getStartTime"),
    $animVal: dartx.animVal = Symbol("dartx.animVal"),
    $baseVal: dartx.baseVal = Symbol("dartx.baseVal"),
    $cx: dartx.cx = Symbol("dartx.cx"),
    $cy: dartx.cy = Symbol("dartx.cy"),
    $r: dartx.r = Symbol("dartx.r"),
    $pathLength: dartx.pathLength = Symbol("dartx.pathLength"),
    $getPointAtLength: dartx.getPointAtLength = Symbol("dartx.getPointAtLength"),
    $getTotalLength: dartx.getTotalLength = Symbol("dartx.getTotalLength"),
    $isPointInFill: dartx.isPointInFill = Symbol("dartx.isPointInFill"),
    $clipPathUnits: dartx.clipPathUnits = Symbol("dartx.clipPathUnits"),
    $rx: dartx.rx = Symbol("dartx.rx"),
    $ry: dartx.ry = Symbol("dartx.ry"),
    $in1: dartx.in1 = Symbol("dartx.in1"),
    $in2: dartx.in2 = Symbol("dartx.in2"),
    $k1: dartx.k1 = Symbol("dartx.k1"),
    $k2: dartx.k2 = Symbol("dartx.k2"),
    $k3: dartx.k3 = Symbol("dartx.k3"),
    $k4: dartx.k4 = Symbol("dartx.k4"),
    $operator: dartx.operator = Symbol("dartx.operator"),
    $bias: dartx.bias = Symbol("dartx.bias"),
    $divisor: dartx.divisor = Symbol("dartx.divisor"),
    $edgeMode: dartx.edgeMode = Symbol("dartx.edgeMode"),
    $kernelMatrix: dartx.kernelMatrix = Symbol("dartx.kernelMatrix"),
    $kernelUnitLengthX: dartx.kernelUnitLengthX = Symbol("dartx.kernelUnitLengthX"),
    $kernelUnitLengthY: dartx.kernelUnitLengthY = Symbol("dartx.kernelUnitLengthY"),
    $orderX: dartx.orderX = Symbol("dartx.orderX"),
    $orderY: dartx.orderY = Symbol("dartx.orderY"),
    $preserveAlpha: dartx.preserveAlpha = Symbol("dartx.preserveAlpha"),
    $targetX: dartx.targetX = Symbol("dartx.targetX"),
    $targetY: dartx.targetY = Symbol("dartx.targetY"),
    $diffuseConstant: dartx.diffuseConstant = Symbol("dartx.diffuseConstant"),
    $surfaceScale: dartx.surfaceScale = Symbol("dartx.surfaceScale"),
    $xChannelSelector: dartx.xChannelSelector = Symbol("dartx.xChannelSelector"),
    $yChannelSelector: dartx.yChannelSelector = Symbol("dartx.yChannelSelector"),
    $azimuth: dartx.azimuth = Symbol("dartx.azimuth"),
    $elevation: dartx.elevation = Symbol("dartx.elevation"),
    $stdDeviationX: dartx.stdDeviationX = Symbol("dartx.stdDeviationX"),
    $stdDeviationY: dartx.stdDeviationY = Symbol("dartx.stdDeviationY"),
    $setStdDeviation: dartx.setStdDeviation = Symbol("dartx.setStdDeviation"),
    $preserveAspectRatio: dartx.preserveAspectRatio = Symbol("dartx.preserveAspectRatio"),
    $dx: dartx.dx = Symbol("dartx.dx"),
    $dy: dartx.dy = Symbol("dartx.dy"),
    $specularConstant: dartx.specularConstant = Symbol("dartx.specularConstant"),
    $specularExponent: dartx.specularExponent = Symbol("dartx.specularExponent"),
    $limitingConeAngle: dartx.limitingConeAngle = Symbol("dartx.limitingConeAngle"),
    $pointsAtX: dartx.pointsAtX = Symbol("dartx.pointsAtX"),
    $pointsAtY: dartx.pointsAtY = Symbol("dartx.pointsAtY"),
    $pointsAtZ: dartx.pointsAtZ = Symbol("dartx.pointsAtZ"),
    $baseFrequencyX: dartx.baseFrequencyX = Symbol("dartx.baseFrequencyX"),
    $baseFrequencyY: dartx.baseFrequencyY = Symbol("dartx.baseFrequencyY"),
    $numOctaves: dartx.numOctaves = Symbol("dartx.numOctaves"),
    $seed: dartx.seed = Symbol("dartx.seed"),
    $stitchTiles: dartx.stitchTiles = Symbol("dartx.stitchTiles"),
    $filterUnits: dartx.filterUnits = Symbol("dartx.filterUnits"),
    $primitiveUnits: dartx.primitiveUnits = Symbol("dartx.primitiveUnits"),
    $viewBox: dartx.viewBox = Symbol("dartx.viewBox"),
    $numberOfItems: dartx.numberOfItems = Symbol("dartx.numberOfItems"),
    __setter__$1: dart.privateName(svg$, "__setter__"),
    $appendItem: dartx.appendItem = Symbol("dartx.appendItem"),
    $getItem: dartx.getItem = Symbol("dartx.getItem"),
    $initialize: dartx.initialize = Symbol("dartx.initialize"),
    $insertItemBefore: dartx.insertItemBefore = Symbol("dartx.insertItemBefore"),
    $removeItem: dartx.removeItem = Symbol("dartx.removeItem"),
    $replaceItem: dartx.replaceItem = Symbol("dartx.replaceItem"),
    $x1: dartx.x1 = Symbol("dartx.x1"),
    $x2: dartx.x2 = Symbol("dartx.x2"),
    $y1: dartx.y1 = Symbol("dartx.y1"),
    $y2: dartx.y2 = Symbol("dartx.y2"),
    $gradientTransform: dartx.gradientTransform = Symbol("dartx.gradientTransform"),
    $gradientUnits: dartx.gradientUnits = Symbol("dartx.gradientUnits"),
    $spreadMethod: dartx.spreadMethod = Symbol("dartx.spreadMethod"),
    $markerHeight: dartx.markerHeight = Symbol("dartx.markerHeight"),
    $markerUnits: dartx.markerUnits = Symbol("dartx.markerUnits"),
    $markerWidth: dartx.markerWidth = Symbol("dartx.markerWidth"),
    $orientAngle: dartx.orientAngle = Symbol("dartx.orientAngle"),
    $orientType: dartx.orientType = Symbol("dartx.orientType"),
    $refX: dartx.refX = Symbol("dartx.refX"),
    $refY: dartx.refY = Symbol("dartx.refY"),
    $setOrientToAngle: dartx.setOrientToAngle = Symbol("dartx.setOrientToAngle"),
    $setOrientToAuto: dartx.setOrientToAuto = Symbol("dartx.setOrientToAuto"),
    $maskContentUnits: dartx.maskContentUnits = Symbol("dartx.maskContentUnits"),
    $maskUnits: dartx.maskUnits = Symbol("dartx.maskUnits"),
    $scaleNonUniform: dartx.scaleNonUniform = Symbol("dartx.scaleNonUniform"),
    $patternContentUnits: dartx.patternContentUnits = Symbol("dartx.patternContentUnits"),
    $patternTransform: dartx.patternTransform = Symbol("dartx.patternTransform"),
    $patternUnits: dartx.patternUnits = Symbol("dartx.patternUnits"),
    $animatedPoints: dartx.animatedPoints = Symbol("dartx.animatedPoints"),
    $points: dartx.points = Symbol("dartx.points"),
    $meetOrSlice: dartx.meetOrSlice = Symbol("dartx.meetOrSlice"),
    $fr: dartx.fr = Symbol("dartx.fr"),
    $fx: dartx.fx = Symbol("dartx.fx"),
    $fy: dartx.fy = Symbol("dartx.fy"),
    $gradientOffset: dartx.gradientOffset = Symbol("dartx.gradientOffset"),
    _element$3: dart.privateName(svg$, "_element"),
    $currentScale: dartx.currentScale = Symbol("dartx.currentScale"),
    $currentTranslate: dartx.currentTranslate = Symbol("dartx.currentTranslate"),
    $animationsPaused: dartx.animationsPaused = Symbol("dartx.animationsPaused"),
    $checkEnclosure: dartx.checkEnclosure = Symbol("dartx.checkEnclosure"),
    $checkIntersection: dartx.checkIntersection = Symbol("dartx.checkIntersection"),
    $createSvgAngle: dartx.createSvgAngle = Symbol("dartx.createSvgAngle"),
    $createSvgLength: dartx.createSvgLength = Symbol("dartx.createSvgLength"),
    $createSvgMatrix: dartx.createSvgMatrix = Symbol("dartx.createSvgMatrix"),
    $createSvgNumber: dartx.createSvgNumber = Symbol("dartx.createSvgNumber"),
    $createSvgPoint: dartx.createSvgPoint = Symbol("dartx.createSvgPoint"),
    $createSvgRect: dartx.createSvgRect = Symbol("dartx.createSvgRect"),
    $createSvgTransform: dartx.createSvgTransform = Symbol("dartx.createSvgTransform"),
    $createSvgTransformFromMatrix: dartx.createSvgTransformFromMatrix = Symbol("dartx.createSvgTransformFromMatrix"),
    $deselectAll: dartx.deselectAll = Symbol("dartx.deselectAll"),
    $forceRedraw: dartx.forceRedraw = Symbol("dartx.forceRedraw"),
    $getEnclosureList: dartx.getEnclosureList = Symbol("dartx.getEnclosureList"),
    $getIntersectionList: dartx.getIntersectionList = Symbol("dartx.getIntersectionList"),
    $pauseAnimations: dartx.pauseAnimations = Symbol("dartx.pauseAnimations"),
    $setCurrentTime: dartx.setCurrentTime = Symbol("dartx.setCurrentTime"),
    $suspendRedraw: dartx.suspendRedraw = Symbol("dartx.suspendRedraw"),
    $unpauseAnimations: dartx.unpauseAnimations = Symbol("dartx.unpauseAnimations"),
    $unsuspendRedraw: dartx.unsuspendRedraw = Symbol("dartx.unsuspendRedraw"),
    $unsuspendRedrawAll: dartx.unsuspendRedrawAll = Symbol("dartx.unsuspendRedrawAll"),
    $zoomAndPan: dartx.zoomAndPan = Symbol("dartx.zoomAndPan"),
    $lengthAdjust: dartx.lengthAdjust = Symbol("dartx.lengthAdjust"),
    $getCharNumAtPosition: dartx.getCharNumAtPosition = Symbol("dartx.getCharNumAtPosition"),
    $getComputedTextLength: dartx.getComputedTextLength = Symbol("dartx.getComputedTextLength"),
    $getEndPositionOfChar: dartx.getEndPositionOfChar = Symbol("dartx.getEndPositionOfChar"),
    $getExtentOfChar: dartx.getExtentOfChar = Symbol("dartx.getExtentOfChar"),
    $getNumberOfChars: dartx.getNumberOfChars = Symbol("dartx.getNumberOfChars"),
    $getRotationOfChar: dartx.getRotationOfChar = Symbol("dartx.getRotationOfChar"),
    $getStartPositionOfChar: dartx.getStartPositionOfChar = Symbol("dartx.getStartPositionOfChar"),
    $getSubStringLength: dartx.getSubStringLength = Symbol("dartx.getSubStringLength"),
    $selectSubString: dartx.selectSubString = Symbol("dartx.selectSubString"),
    $spacing: dartx.spacing = Symbol("dartx.spacing"),
    $setMatrix: dartx.setMatrix = Symbol("dartx.setMatrix"),
    $setRotate: dartx.setRotate = Symbol("dartx.setRotate"),
    $setScale: dartx.setScale = Symbol("dartx.setScale"),
    $setSkewX: dartx.setSkewX = Symbol("dartx.setSkewX"),
    $setSkewY: dartx.setSkewY = Symbol("dartx.setSkewY"),
    $setTranslate: dartx.setTranslate = Symbol("dartx.setTranslate"),
    $consolidate: dartx.consolidate = Symbol("dartx.consolidate"),
    $fftSize: dartx.fftSize = Symbol("dartx.fftSize"),
    $frequencyBinCount: dartx.frequencyBinCount = Symbol("dartx.frequencyBinCount"),
    $maxDecibels: dartx.maxDecibels = Symbol("dartx.maxDecibels"),
    $minDecibels: dartx.minDecibels = Symbol("dartx.minDecibels"),
    $smoothingTimeConstant: dartx.smoothingTimeConstant = Symbol("dartx.smoothingTimeConstant"),
    $getByteFrequencyData: dartx.getByteFrequencyData = Symbol("dartx.getByteFrequencyData"),
    $getByteTimeDomainData: dartx.getByteTimeDomainData = Symbol("dartx.getByteTimeDomainData"),
    $getFloatFrequencyData: dartx.getFloatFrequencyData = Symbol("dartx.getFloatFrequencyData"),
    $getFloatTimeDomainData: dartx.getFloatTimeDomainData = Symbol("dartx.getFloatTimeDomainData"),
    $channelCount: dartx.channelCount = Symbol("dartx.channelCount"),
    $channelCountMode: dartx.channelCountMode = Symbol("dartx.channelCountMode"),
    $channelInterpretation: dartx.channelInterpretation = Symbol("dartx.channelInterpretation"),
    $context: dartx.context = Symbol("dartx.context"),
    $numberOfInputs: dartx.numberOfInputs = Symbol("dartx.numberOfInputs"),
    $numberOfOutputs: dartx.numberOfOutputs = Symbol("dartx.numberOfOutputs"),
    _connect: dart.privateName(web_audio, "_connect"),
    $connectNode: dartx.connectNode = Symbol("dartx.connectNode"),
    $connectParam: dartx.connectParam = Symbol("dartx.connectParam"),
    $numberOfChannels: dartx.numberOfChannels = Symbol("dartx.numberOfChannels"),
    $sampleRate: dartx.sampleRate = Symbol("dartx.sampleRate"),
    $copyFromChannel: dartx.copyFromChannel = Symbol("dartx.copyFromChannel"),
    $copyToChannel: dartx.copyToChannel = Symbol("dartx.copyToChannel"),
    $getChannelData: dartx.getChannelData = Symbol("dartx.getChannelData"),
    $detune: dartx.detune = Symbol("dartx.detune"),
    $loopEnd: dartx.loopEnd = Symbol("dartx.loopEnd"),
    $loopStart: dartx.loopStart = Symbol("dartx.loopStart"),
    $start2: dartx.start2 = Symbol("dartx.start2"),
    $baseLatency: dartx.baseLatency = Symbol("dartx.baseLatency"),
    _getOutputTimestamp_1: dart.privateName(web_audio, "_getOutputTimestamp_1"),
    $getOutputTimestamp: dartx.getOutputTimestamp = Symbol("dartx.getOutputTimestamp"),
    $suspend: dartx.suspend = Symbol("dartx.suspend"),
    $createGain: dartx.createGain = Symbol("dartx.createGain"),
    $createScriptProcessor: dartx.createScriptProcessor = Symbol("dartx.createScriptProcessor"),
    _decodeAudioData: dart.privateName(web_audio, "_decodeAudioData"),
    $decodeAudioData: dartx.decodeAudioData = Symbol("dartx.decodeAudioData"),
    $destination: dartx.destination = Symbol("dartx.destination"),
    $listener: dartx.listener = Symbol("dartx.listener"),
    $createAnalyser: dartx.createAnalyser = Symbol("dartx.createAnalyser"),
    $createBiquadFilter: dartx.createBiquadFilter = Symbol("dartx.createBiquadFilter"),
    $createBuffer: dartx.createBuffer = Symbol("dartx.createBuffer"),
    $createBufferSource: dartx.createBufferSource = Symbol("dartx.createBufferSource"),
    $createChannelMerger: dartx.createChannelMerger = Symbol("dartx.createChannelMerger")
  };
  var S$4 = {
    $createChannelSplitter: dartx.createChannelSplitter = Symbol("dartx.createChannelSplitter"),
    $createConstantSource: dartx.createConstantSource = Symbol("dartx.createConstantSource"),
    $createConvolver: dartx.createConvolver = Symbol("dartx.createConvolver"),
    $createDelay: dartx.createDelay = Symbol("dartx.createDelay"),
    $createDynamicsCompressor: dartx.createDynamicsCompressor = Symbol("dartx.createDynamicsCompressor"),
    $createIirFilter: dartx.createIirFilter = Symbol("dartx.createIirFilter"),
    $createMediaElementSource: dartx.createMediaElementSource = Symbol("dartx.createMediaElementSource"),
    $createMediaStreamDestination: dartx.createMediaStreamDestination = Symbol("dartx.createMediaStreamDestination"),
    $createMediaStreamSource: dartx.createMediaStreamSource = Symbol("dartx.createMediaStreamSource"),
    $createOscillator: dartx.createOscillator = Symbol("dartx.createOscillator"),
    $createPanner: dartx.createPanner = Symbol("dartx.createPanner"),
    _createPeriodicWave_1: dart.privateName(web_audio, "_createPeriodicWave_1"),
    _createPeriodicWave_2: dart.privateName(web_audio, "_createPeriodicWave_2"),
    $createPeriodicWave: dartx.createPeriodicWave = Symbol("dartx.createPeriodicWave"),
    $createStereoPanner: dartx.createStereoPanner = Symbol("dartx.createStereoPanner"),
    $createWaveShaper: dartx.createWaveShaper = Symbol("dartx.createWaveShaper"),
    $maxChannelCount: dartx.maxChannelCount = Symbol("dartx.maxChannelCount"),
    $forwardX: dartx.forwardX = Symbol("dartx.forwardX"),
    $forwardY: dartx.forwardY = Symbol("dartx.forwardY"),
    $forwardZ: dartx.forwardZ = Symbol("dartx.forwardZ"),
    $positionZ: dartx.positionZ = Symbol("dartx.positionZ"),
    $upX: dartx.upX = Symbol("dartx.upX"),
    $upY: dartx.upY = Symbol("dartx.upY"),
    $upZ: dartx.upZ = Symbol("dartx.upZ"),
    $setOrientation: dartx.setOrientation = Symbol("dartx.setOrientation"),
    $maxValue: dartx.maxValue = Symbol("dartx.maxValue"),
    $minValue: dartx.minValue = Symbol("dartx.minValue"),
    $cancelAndHoldAtTime: dartx.cancelAndHoldAtTime = Symbol("dartx.cancelAndHoldAtTime"),
    $cancelScheduledValues: dartx.cancelScheduledValues = Symbol("dartx.cancelScheduledValues"),
    $exponentialRampToValueAtTime: dartx.exponentialRampToValueAtTime = Symbol("dartx.exponentialRampToValueAtTime"),
    $linearRampToValueAtTime: dartx.linearRampToValueAtTime = Symbol("dartx.linearRampToValueAtTime"),
    $setTargetAtTime: dartx.setTargetAtTime = Symbol("dartx.setTargetAtTime"),
    $setValueAtTime: dartx.setValueAtTime = Symbol("dartx.setValueAtTime"),
    $setValueCurveAtTime: dartx.setValueCurveAtTime = Symbol("dartx.setValueCurveAtTime"),
    _getItem$1: dart.privateName(web_audio, "_getItem"),
    $inputBuffer: dartx.inputBuffer = Symbol("dartx.inputBuffer"),
    $outputBuffer: dartx.outputBuffer = Symbol("dartx.outputBuffer"),
    $playbackTime: dartx.playbackTime = Symbol("dartx.playbackTime"),
    __getter__$1: dart.privateName(web_audio, "__getter__"),
    $registerProcessor: dartx.registerProcessor = Symbol("dartx.registerProcessor"),
    $parameters: dartx.parameters = Symbol("dartx.parameters"),
    $Q: dartx.Q = Symbol("dartx.Q"),
    $frequency: dartx.frequency = Symbol("dartx.frequency"),
    $gain: dartx.gain = Symbol("dartx.gain"),
    $getFrequencyResponse: dartx.getFrequencyResponse = Symbol("dartx.getFrequencyResponse"),
    $normalize: dartx.normalize = Symbol("dartx.normalize"),
    $delayTime: dartx.delayTime = Symbol("dartx.delayTime"),
    $attack: dartx.attack = Symbol("dartx.attack"),
    $knee: dartx.knee = Symbol("dartx.knee"),
    $ratio: dartx.ratio = Symbol("dartx.ratio"),
    $reduction: dartx.reduction = Symbol("dartx.reduction"),
    $release: dartx.release = Symbol("dartx.release"),
    $threshold: dartx.threshold = Symbol("dartx.threshold"),
    $mediaElement: dartx.mediaElement = Symbol("dartx.mediaElement"),
    $mediaStream: dartx.mediaStream = Symbol("dartx.mediaStream"),
    $renderedBuffer: dartx.renderedBuffer = Symbol("dartx.renderedBuffer"),
    $startRendering: dartx.startRendering = Symbol("dartx.startRendering"),
    $suspendFor: dartx.suspendFor = Symbol("dartx.suspendFor"),
    $setPeriodicWave: dartx.setPeriodicWave = Symbol("dartx.setPeriodicWave"),
    $coneInnerAngle: dartx.coneInnerAngle = Symbol("dartx.coneInnerAngle"),
    $coneOuterAngle: dartx.coneOuterAngle = Symbol("dartx.coneOuterAngle"),
    $coneOuterGain: dartx.coneOuterGain = Symbol("dartx.coneOuterGain"),
    $distanceModel: dartx.distanceModel = Symbol("dartx.distanceModel"),
    $maxDistance: dartx.maxDistance = Symbol("dartx.maxDistance"),
    $orientationX: dartx.orientationX = Symbol("dartx.orientationX"),
    $orientationY: dartx.orientationY = Symbol("dartx.orientationY"),
    $orientationZ: dartx.orientationZ = Symbol("dartx.orientationZ"),
    $panningModel: dartx.panningModel = Symbol("dartx.panningModel"),
    $refDistance: dartx.refDistance = Symbol("dartx.refDistance"),
    $rolloffFactor: dartx.rolloffFactor = Symbol("dartx.rolloffFactor"),
    $bufferSize: dartx.bufferSize = Symbol("dartx.bufferSize"),
    $setEventListener: dartx.setEventListener = Symbol("dartx.setEventListener"),
    $onAudioProcess: dartx.onAudioProcess = Symbol("dartx.onAudioProcess"),
    $pan: dartx.pan = Symbol("dartx.pan"),
    $curve: dartx.curve = Symbol("dartx.curve"),
    $oversample: dartx.oversample = Symbol("dartx.oversample"),
    $drawArraysInstancedAngle: dartx.drawArraysInstancedAngle = Symbol("dartx.drawArraysInstancedAngle"),
    $drawElementsInstancedAngle: dartx.drawElementsInstancedAngle = Symbol("dartx.drawElementsInstancedAngle"),
    $vertexAttribDivisorAngle: dartx.vertexAttribDivisorAngle = Symbol("dartx.vertexAttribDivisorAngle"),
    $offscreenCanvas: dartx.offscreenCanvas = Symbol("dartx.offscreenCanvas"),
    $statusMessage: dartx.statusMessage = Symbol("dartx.statusMessage"),
    $getTranslatedShaderSource: dartx.getTranslatedShaderSource = Symbol("dartx.getTranslatedShaderSource"),
    $drawBuffersWebgl: dartx.drawBuffersWebgl = Symbol("dartx.drawBuffersWebgl"),
    $beginQueryExt: dartx.beginQueryExt = Symbol("dartx.beginQueryExt"),
    $createQueryExt: dartx.createQueryExt = Symbol("dartx.createQueryExt"),
    $deleteQueryExt: dartx.deleteQueryExt = Symbol("dartx.deleteQueryExt"),
    $endQueryExt: dartx.endQueryExt = Symbol("dartx.endQueryExt"),
    $getQueryExt: dartx.getQueryExt = Symbol("dartx.getQueryExt"),
    $getQueryObjectExt: dartx.getQueryObjectExt = Symbol("dartx.getQueryObjectExt"),
    $isQueryExt: dartx.isQueryExt = Symbol("dartx.isQueryExt"),
    $queryCounterExt: dartx.queryCounterExt = Symbol("dartx.queryCounterExt"),
    $getBufferSubDataAsync: dartx.getBufferSubDataAsync = Symbol("dartx.getBufferSubDataAsync"),
    $loseContext: dartx.loseContext = Symbol("dartx.loseContext"),
    $restoreContext: dartx.restoreContext = Symbol("dartx.restoreContext"),
    $bindVertexArray: dartx.bindVertexArray = Symbol("dartx.bindVertexArray"),
    $createVertexArray: dartx.createVertexArray = Symbol("dartx.createVertexArray"),
    $deleteVertexArray: dartx.deleteVertexArray = Symbol("dartx.deleteVertexArray"),
    $isVertexArray: dartx.isVertexArray = Symbol("dartx.isVertexArray"),
    $drawingBufferHeight: dartx.drawingBufferHeight = Symbol("dartx.drawingBufferHeight"),
    $drawingBufferWidth: dartx.drawingBufferWidth = Symbol("dartx.drawingBufferWidth"),
    $activeTexture: dartx.activeTexture = Symbol("dartx.activeTexture"),
    $attachShader: dartx.attachShader = Symbol("dartx.attachShader"),
    $bindAttribLocation: dartx.bindAttribLocation = Symbol("dartx.bindAttribLocation"),
    $bindBuffer: dartx.bindBuffer = Symbol("dartx.bindBuffer"),
    $bindFramebuffer: dartx.bindFramebuffer = Symbol("dartx.bindFramebuffer"),
    $bindRenderbuffer: dartx.bindRenderbuffer = Symbol("dartx.bindRenderbuffer"),
    $bindTexture: dartx.bindTexture = Symbol("dartx.bindTexture"),
    $blendColor: dartx.blendColor = Symbol("dartx.blendColor"),
    $blendEquation: dartx.blendEquation = Symbol("dartx.blendEquation"),
    $blendEquationSeparate: dartx.blendEquationSeparate = Symbol("dartx.blendEquationSeparate"),
    $blendFunc: dartx.blendFunc = Symbol("dartx.blendFunc"),
    $blendFuncSeparate: dartx.blendFuncSeparate = Symbol("dartx.blendFuncSeparate"),
    $bufferData: dartx.bufferData = Symbol("dartx.bufferData"),
    $bufferSubData: dartx.bufferSubData = Symbol("dartx.bufferSubData"),
    $checkFramebufferStatus: dartx.checkFramebufferStatus = Symbol("dartx.checkFramebufferStatus"),
    $clearColor: dartx.clearColor = Symbol("dartx.clearColor"),
    $clearDepth: dartx.clearDepth = Symbol("dartx.clearDepth"),
    $clearStencil: dartx.clearStencil = Symbol("dartx.clearStencil"),
    $colorMask: dartx.colorMask = Symbol("dartx.colorMask"),
    $compileShader: dartx.compileShader = Symbol("dartx.compileShader"),
    $compressedTexImage2D: dartx.compressedTexImage2D = Symbol("dartx.compressedTexImage2D"),
    $compressedTexSubImage2D: dartx.compressedTexSubImage2D = Symbol("dartx.compressedTexSubImage2D"),
    $copyTexImage2D: dartx.copyTexImage2D = Symbol("dartx.copyTexImage2D"),
    $copyTexSubImage2D: dartx.copyTexSubImage2D = Symbol("dartx.copyTexSubImage2D"),
    $createFramebuffer: dartx.createFramebuffer = Symbol("dartx.createFramebuffer"),
    $createProgram: dartx.createProgram = Symbol("dartx.createProgram"),
    $createRenderbuffer: dartx.createRenderbuffer = Symbol("dartx.createRenderbuffer"),
    $createShader: dartx.createShader = Symbol("dartx.createShader"),
    $createTexture: dartx.createTexture = Symbol("dartx.createTexture"),
    $cullFace: dartx.cullFace = Symbol("dartx.cullFace"),
    $deleteBuffer: dartx.deleteBuffer = Symbol("dartx.deleteBuffer"),
    $deleteFramebuffer: dartx.deleteFramebuffer = Symbol("dartx.deleteFramebuffer"),
    $deleteProgram: dartx.deleteProgram = Symbol("dartx.deleteProgram"),
    $deleteRenderbuffer: dartx.deleteRenderbuffer = Symbol("dartx.deleteRenderbuffer"),
    $deleteShader: dartx.deleteShader = Symbol("dartx.deleteShader"),
    $deleteTexture: dartx.deleteTexture = Symbol("dartx.deleteTexture"),
    $depthFunc: dartx.depthFunc = Symbol("dartx.depthFunc"),
    $depthMask: dartx.depthMask = Symbol("dartx.depthMask"),
    $depthRange: dartx.depthRange = Symbol("dartx.depthRange"),
    $detachShader: dartx.detachShader = Symbol("dartx.detachShader"),
    $disableVertexAttribArray: dartx.disableVertexAttribArray = Symbol("dartx.disableVertexAttribArray"),
    $drawArrays: dartx.drawArrays = Symbol("dartx.drawArrays"),
    $drawElements: dartx.drawElements = Symbol("dartx.drawElements"),
    $enableVertexAttribArray: dartx.enableVertexAttribArray = Symbol("dartx.enableVertexAttribArray"),
    $flush: dartx.flush = Symbol("dartx.flush"),
    $framebufferRenderbuffer: dartx.framebufferRenderbuffer = Symbol("dartx.framebufferRenderbuffer"),
    $framebufferTexture2D: dartx.framebufferTexture2D = Symbol("dartx.framebufferTexture2D"),
    $frontFace: dartx.frontFace = Symbol("dartx.frontFace"),
    $generateMipmap: dartx.generateMipmap = Symbol("dartx.generateMipmap"),
    $getActiveAttrib: dartx.getActiveAttrib = Symbol("dartx.getActiveAttrib"),
    $getActiveUniform: dartx.getActiveUniform = Symbol("dartx.getActiveUniform"),
    $getAttachedShaders: dartx.getAttachedShaders = Symbol("dartx.getAttachedShaders"),
    $getAttribLocation: dartx.getAttribLocation = Symbol("dartx.getAttribLocation"),
    $getBufferParameter: dartx.getBufferParameter = Symbol("dartx.getBufferParameter"),
    _getContextAttributes_1$1: dart.privateName(web_gl, "_getContextAttributes_1"),
    $getError: dartx.getError = Symbol("dartx.getError"),
    $getExtension: dartx.getExtension = Symbol("dartx.getExtension"),
    $getFramebufferAttachmentParameter: dartx.getFramebufferAttachmentParameter = Symbol("dartx.getFramebufferAttachmentParameter"),
    $getProgramInfoLog: dartx.getProgramInfoLog = Symbol("dartx.getProgramInfoLog"),
    $getProgramParameter: dartx.getProgramParameter = Symbol("dartx.getProgramParameter"),
    $getRenderbufferParameter: dartx.getRenderbufferParameter = Symbol("dartx.getRenderbufferParameter"),
    $getShaderInfoLog: dartx.getShaderInfoLog = Symbol("dartx.getShaderInfoLog"),
    $getShaderParameter: dartx.getShaderParameter = Symbol("dartx.getShaderParameter"),
    $getShaderPrecisionFormat: dartx.getShaderPrecisionFormat = Symbol("dartx.getShaderPrecisionFormat"),
    $getShaderSource: dartx.getShaderSource = Symbol("dartx.getShaderSource"),
    $getSupportedExtensions: dartx.getSupportedExtensions = Symbol("dartx.getSupportedExtensions"),
    $getTexParameter: dartx.getTexParameter = Symbol("dartx.getTexParameter"),
    $getUniform: dartx.getUniform = Symbol("dartx.getUniform"),
    $getUniformLocation: dartx.getUniformLocation = Symbol("dartx.getUniformLocation"),
    $getVertexAttrib: dartx.getVertexAttrib = Symbol("dartx.getVertexAttrib"),
    $getVertexAttribOffset: dartx.getVertexAttribOffset = Symbol("dartx.getVertexAttribOffset"),
    $hint: dartx.hint = Symbol("dartx.hint"),
    $isBuffer: dartx.isBuffer = Symbol("dartx.isBuffer"),
    $isEnabled: dartx.isEnabled = Symbol("dartx.isEnabled"),
    $isFramebuffer: dartx.isFramebuffer = Symbol("dartx.isFramebuffer"),
    $isProgram: dartx.isProgram = Symbol("dartx.isProgram"),
    $isRenderbuffer: dartx.isRenderbuffer = Symbol("dartx.isRenderbuffer"),
    $isShader: dartx.isShader = Symbol("dartx.isShader"),
    $isTexture: dartx.isTexture = Symbol("dartx.isTexture"),
    $linkProgram: dartx.linkProgram = Symbol("dartx.linkProgram"),
    $pixelStorei: dartx.pixelStorei = Symbol("dartx.pixelStorei"),
    $polygonOffset: dartx.polygonOffset = Symbol("dartx.polygonOffset"),
    _readPixels: dart.privateName(web_gl, "_readPixels"),
    $renderbufferStorage: dartx.renderbufferStorage = Symbol("dartx.renderbufferStorage"),
    $sampleCoverage: dartx.sampleCoverage = Symbol("dartx.sampleCoverage"),
    $scissor: dartx.scissor = Symbol("dartx.scissor"),
    $shaderSource: dartx.shaderSource = Symbol("dartx.shaderSource"),
    $stencilFunc: dartx.stencilFunc = Symbol("dartx.stencilFunc"),
    $stencilFuncSeparate: dartx.stencilFuncSeparate = Symbol("dartx.stencilFuncSeparate"),
    $stencilMask: dartx.stencilMask = Symbol("dartx.stencilMask"),
    $stencilMaskSeparate: dartx.stencilMaskSeparate = Symbol("dartx.stencilMaskSeparate"),
    $stencilOp: dartx.stencilOp = Symbol("dartx.stencilOp"),
    $stencilOpSeparate: dartx.stencilOpSeparate = Symbol("dartx.stencilOpSeparate"),
    _texImage2D_1: dart.privateName(web_gl, "_texImage2D_1"),
    _texImage2D_2: dart.privateName(web_gl, "_texImage2D_2"),
    _texImage2D_3: dart.privateName(web_gl, "_texImage2D_3"),
    _texImage2D_4: dart.privateName(web_gl, "_texImage2D_4"),
    _texImage2D_5: dart.privateName(web_gl, "_texImage2D_5"),
    _texImage2D_6: dart.privateName(web_gl, "_texImage2D_6"),
    $texImage2D: dartx.texImage2D = Symbol("dartx.texImage2D"),
    $texParameterf: dartx.texParameterf = Symbol("dartx.texParameterf"),
    $texParameteri: dartx.texParameteri = Symbol("dartx.texParameteri"),
    _texSubImage2D_1: dart.privateName(web_gl, "_texSubImage2D_1"),
    _texSubImage2D_2: dart.privateName(web_gl, "_texSubImage2D_2"),
    _texSubImage2D_3: dart.privateName(web_gl, "_texSubImage2D_3"),
    _texSubImage2D_4: dart.privateName(web_gl, "_texSubImage2D_4"),
    _texSubImage2D_5: dart.privateName(web_gl, "_texSubImage2D_5"),
    _texSubImage2D_6: dart.privateName(web_gl, "_texSubImage2D_6"),
    $texSubImage2D: dartx.texSubImage2D = Symbol("dartx.texSubImage2D"),
    $uniform1f: dartx.uniform1f = Symbol("dartx.uniform1f"),
    $uniform1fv: dartx.uniform1fv = Symbol("dartx.uniform1fv"),
    $uniform1i: dartx.uniform1i = Symbol("dartx.uniform1i"),
    $uniform1iv: dartx.uniform1iv = Symbol("dartx.uniform1iv"),
    $uniform2f: dartx.uniform2f = Symbol("dartx.uniform2f"),
    $uniform2fv: dartx.uniform2fv = Symbol("dartx.uniform2fv"),
    $uniform2i: dartx.uniform2i = Symbol("dartx.uniform2i"),
    $uniform2iv: dartx.uniform2iv = Symbol("dartx.uniform2iv"),
    $uniform3f: dartx.uniform3f = Symbol("dartx.uniform3f"),
    $uniform3fv: dartx.uniform3fv = Symbol("dartx.uniform3fv"),
    $uniform3i: dartx.uniform3i = Symbol("dartx.uniform3i"),
    $uniform3iv: dartx.uniform3iv = Symbol("dartx.uniform3iv"),
    $uniform4f: dartx.uniform4f = Symbol("dartx.uniform4f"),
    $uniform4fv: dartx.uniform4fv = Symbol("dartx.uniform4fv"),
    $uniform4i: dartx.uniform4i = Symbol("dartx.uniform4i"),
    $uniform4iv: dartx.uniform4iv = Symbol("dartx.uniform4iv"),
    $uniformMatrix2fv: dartx.uniformMatrix2fv = Symbol("dartx.uniformMatrix2fv"),
    $uniformMatrix3fv: dartx.uniformMatrix3fv = Symbol("dartx.uniformMatrix3fv"),
    $uniformMatrix4fv: dartx.uniformMatrix4fv = Symbol("dartx.uniformMatrix4fv"),
    $useProgram: dartx.useProgram = Symbol("dartx.useProgram"),
    $validateProgram: dartx.validateProgram = Symbol("dartx.validateProgram"),
    $vertexAttrib1f: dartx.vertexAttrib1f = Symbol("dartx.vertexAttrib1f"),
    $vertexAttrib1fv: dartx.vertexAttrib1fv = Symbol("dartx.vertexAttrib1fv"),
    $vertexAttrib2f: dartx.vertexAttrib2f = Symbol("dartx.vertexAttrib2f"),
    $vertexAttrib2fv: dartx.vertexAttrib2fv = Symbol("dartx.vertexAttrib2fv"),
    $vertexAttrib3f: dartx.vertexAttrib3f = Symbol("dartx.vertexAttrib3f"),
    $vertexAttrib3fv: dartx.vertexAttrib3fv = Symbol("dartx.vertexAttrib3fv"),
    $vertexAttrib4f: dartx.vertexAttrib4f = Symbol("dartx.vertexAttrib4f"),
    $vertexAttrib4fv: dartx.vertexAttrib4fv = Symbol("dartx.vertexAttrib4fv"),
    $vertexAttribPointer: dartx.vertexAttribPointer = Symbol("dartx.vertexAttribPointer"),
    $viewport: dartx.viewport = Symbol("dartx.viewport"),
    $readPixels: dartx.readPixels = Symbol("dartx.readPixels"),
    $texImage2DUntyped: dartx.texImage2DUntyped = Symbol("dartx.texImage2DUntyped"),
    $texImage2DTyped: dartx.texImage2DTyped = Symbol("dartx.texImage2DTyped"),
    $texSubImage2DUntyped: dartx.texSubImage2DUntyped = Symbol("dartx.texSubImage2DUntyped"),
    $texSubImage2DTyped: dartx.texSubImage2DTyped = Symbol("dartx.texSubImage2DTyped"),
    $bufferDataTyped: dartx.bufferDataTyped = Symbol("dartx.bufferDataTyped"),
    $bufferSubDataTyped: dartx.bufferSubDataTyped = Symbol("dartx.bufferSubDataTyped"),
    $beginQuery: dartx.beginQuery = Symbol("dartx.beginQuery"),
    $beginTransformFeedback: dartx.beginTransformFeedback = Symbol("dartx.beginTransformFeedback"),
    $bindBufferBase: dartx.bindBufferBase = Symbol("dartx.bindBufferBase"),
    $bindBufferRange: dartx.bindBufferRange = Symbol("dartx.bindBufferRange"),
    $bindSampler: dartx.bindSampler = Symbol("dartx.bindSampler"),
    $bindTransformFeedback: dartx.bindTransformFeedback = Symbol("dartx.bindTransformFeedback"),
    $blitFramebuffer: dartx.blitFramebuffer = Symbol("dartx.blitFramebuffer"),
    $bufferData2: dartx.bufferData2 = Symbol("dartx.bufferData2"),
    $bufferSubData2: dartx.bufferSubData2 = Symbol("dartx.bufferSubData2"),
    $clearBufferfi: dartx.clearBufferfi = Symbol("dartx.clearBufferfi"),
    $clearBufferfv: dartx.clearBufferfv = Symbol("dartx.clearBufferfv"),
    $clearBufferiv: dartx.clearBufferiv = Symbol("dartx.clearBufferiv"),
    $clearBufferuiv: dartx.clearBufferuiv = Symbol("dartx.clearBufferuiv"),
    $clientWaitSync: dartx.clientWaitSync = Symbol("dartx.clientWaitSync"),
    $compressedTexImage2D2: dartx.compressedTexImage2D2 = Symbol("dartx.compressedTexImage2D2"),
    $compressedTexImage2D3: dartx.compressedTexImage2D3 = Symbol("dartx.compressedTexImage2D3"),
    $compressedTexImage3D: dartx.compressedTexImage3D = Symbol("dartx.compressedTexImage3D"),
    $compressedTexImage3D2: dartx.compressedTexImage3D2 = Symbol("dartx.compressedTexImage3D2"),
    $compressedTexSubImage2D2: dartx.compressedTexSubImage2D2 = Symbol("dartx.compressedTexSubImage2D2"),
    $compressedTexSubImage2D3: dartx.compressedTexSubImage2D3 = Symbol("dartx.compressedTexSubImage2D3"),
    $compressedTexSubImage3D: dartx.compressedTexSubImage3D = Symbol("dartx.compressedTexSubImage3D"),
    $compressedTexSubImage3D2: dartx.compressedTexSubImage3D2 = Symbol("dartx.compressedTexSubImage3D2"),
    $copyBufferSubData: dartx.copyBufferSubData = Symbol("dartx.copyBufferSubData"),
    $copyTexSubImage3D: dartx.copyTexSubImage3D = Symbol("dartx.copyTexSubImage3D"),
    $createQuery: dartx.createQuery = Symbol("dartx.createQuery"),
    $createSampler: dartx.createSampler = Symbol("dartx.createSampler"),
    $createTransformFeedback: dartx.createTransformFeedback = Symbol("dartx.createTransformFeedback"),
    $deleteQuery: dartx.deleteQuery = Symbol("dartx.deleteQuery"),
    $deleteSampler: dartx.deleteSampler = Symbol("dartx.deleteSampler"),
    $deleteSync: dartx.deleteSync = Symbol("dartx.deleteSync"),
    $deleteTransformFeedback: dartx.deleteTransformFeedback = Symbol("dartx.deleteTransformFeedback"),
    $drawArraysInstanced: dartx.drawArraysInstanced = Symbol("dartx.drawArraysInstanced"),
    $drawBuffers: dartx.drawBuffers = Symbol("dartx.drawBuffers"),
    $drawElementsInstanced: dartx.drawElementsInstanced = Symbol("dartx.drawElementsInstanced"),
    $drawRangeElements: dartx.drawRangeElements = Symbol("dartx.drawRangeElements"),
    $endQuery: dartx.endQuery = Symbol("dartx.endQuery"),
    $endTransformFeedback: dartx.endTransformFeedback = Symbol("dartx.endTransformFeedback"),
    $fenceSync: dartx.fenceSync = Symbol("dartx.fenceSync"),
    $framebufferTextureLayer: dartx.framebufferTextureLayer = Symbol("dartx.framebufferTextureLayer"),
    $getActiveUniformBlockName: dartx.getActiveUniformBlockName = Symbol("dartx.getActiveUniformBlockName"),
    $getActiveUniformBlockParameter: dartx.getActiveUniformBlockParameter = Symbol("dartx.getActiveUniformBlockParameter"),
    $getActiveUniforms: dartx.getActiveUniforms = Symbol("dartx.getActiveUniforms"),
    $getBufferSubData: dartx.getBufferSubData = Symbol("dartx.getBufferSubData"),
    $getFragDataLocation: dartx.getFragDataLocation = Symbol("dartx.getFragDataLocation"),
    $getIndexedParameter: dartx.getIndexedParameter = Symbol("dartx.getIndexedParameter"),
    $getInternalformatParameter: dartx.getInternalformatParameter = Symbol("dartx.getInternalformatParameter"),
    $getQuery: dartx.getQuery = Symbol("dartx.getQuery"),
    $getQueryParameter: dartx.getQueryParameter = Symbol("dartx.getQueryParameter"),
    $getSamplerParameter: dartx.getSamplerParameter = Symbol("dartx.getSamplerParameter"),
    $getSyncParameter: dartx.getSyncParameter = Symbol("dartx.getSyncParameter"),
    $getTransformFeedbackVarying: dartx.getTransformFeedbackVarying = Symbol("dartx.getTransformFeedbackVarying"),
    $getUniformBlockIndex: dartx.getUniformBlockIndex = Symbol("dartx.getUniformBlockIndex"),
    _getUniformIndices_1: dart.privateName(web_gl, "_getUniformIndices_1"),
    $getUniformIndices: dartx.getUniformIndices = Symbol("dartx.getUniformIndices"),
    $invalidateFramebuffer: dartx.invalidateFramebuffer = Symbol("dartx.invalidateFramebuffer"),
    $invalidateSubFramebuffer: dartx.invalidateSubFramebuffer = Symbol("dartx.invalidateSubFramebuffer"),
    $isQuery: dartx.isQuery = Symbol("dartx.isQuery"),
    $isSampler: dartx.isSampler = Symbol("dartx.isSampler"),
    $isSync: dartx.isSync = Symbol("dartx.isSync"),
    $isTransformFeedback: dartx.isTransformFeedback = Symbol("dartx.isTransformFeedback"),
    $pauseTransformFeedback: dartx.pauseTransformFeedback = Symbol("dartx.pauseTransformFeedback"),
    $readBuffer: dartx.readBuffer = Symbol("dartx.readBuffer"),
    $readPixels2: dartx.readPixels2 = Symbol("dartx.readPixels2"),
    $renderbufferStorageMultisample: dartx.renderbufferStorageMultisample = Symbol("dartx.renderbufferStorageMultisample"),
    $resumeTransformFeedback: dartx.resumeTransformFeedback = Symbol("dartx.resumeTransformFeedback"),
    $samplerParameterf: dartx.samplerParameterf = Symbol("dartx.samplerParameterf"),
    $samplerParameteri: dartx.samplerParameteri = Symbol("dartx.samplerParameteri"),
    _texImage2D2_1: dart.privateName(web_gl, "_texImage2D2_1"),
    _texImage2D2_2: dart.privateName(web_gl, "_texImage2D2_2"),
    _texImage2D2_3: dart.privateName(web_gl, "_texImage2D2_3"),
    _texImage2D2_4: dart.privateName(web_gl, "_texImage2D2_4"),
    _texImage2D2_5: dart.privateName(web_gl, "_texImage2D2_5"),
    _texImage2D2_6: dart.privateName(web_gl, "_texImage2D2_6"),
    _texImage2D2_7: dart.privateName(web_gl, "_texImage2D2_7"),
    $texImage2D2: dartx.texImage2D2 = Symbol("dartx.texImage2D2"),
    _texImage3D_1: dart.privateName(web_gl, "_texImage3D_1"),
    _texImage3D_2: dart.privateName(web_gl, "_texImage3D_2"),
    _texImage3D_3: dart.privateName(web_gl, "_texImage3D_3"),
    _texImage3D_4: dart.privateName(web_gl, "_texImage3D_4"),
    _texImage3D_5: dart.privateName(web_gl, "_texImage3D_5"),
    _texImage3D_6: dart.privateName(web_gl, "_texImage3D_6"),
    _texImage3D_7: dart.privateName(web_gl, "_texImage3D_7"),
    _texImage3D_8: dart.privateName(web_gl, "_texImage3D_8"),
    $texImage3D: dartx.texImage3D = Symbol("dartx.texImage3D"),
    $texStorage2D: dartx.texStorage2D = Symbol("dartx.texStorage2D"),
    $texStorage3D: dartx.texStorage3D = Symbol("dartx.texStorage3D"),
    _texSubImage2D2_1: dart.privateName(web_gl, "_texSubImage2D2_1"),
    _texSubImage2D2_2: dart.privateName(web_gl, "_texSubImage2D2_2"),
    _texSubImage2D2_3: dart.privateName(web_gl, "_texSubImage2D2_3"),
    _texSubImage2D2_4: dart.privateName(web_gl, "_texSubImage2D2_4"),
    _texSubImage2D2_5: dart.privateName(web_gl, "_texSubImage2D2_5"),
    _texSubImage2D2_6: dart.privateName(web_gl, "_texSubImage2D2_6"),
    _texSubImage2D2_7: dart.privateName(web_gl, "_texSubImage2D2_7"),
    $texSubImage2D2: dartx.texSubImage2D2 = Symbol("dartx.texSubImage2D2"),
    _texSubImage3D_1: dart.privateName(web_gl, "_texSubImage3D_1"),
    _texSubImage3D_2: dart.privateName(web_gl, "_texSubImage3D_2"),
    _texSubImage3D_3: dart.privateName(web_gl, "_texSubImage3D_3"),
    _texSubImage3D_4: dart.privateName(web_gl, "_texSubImage3D_4"),
    _texSubImage3D_5: dart.privateName(web_gl, "_texSubImage3D_5"),
    _texSubImage3D_6: dart.privateName(web_gl, "_texSubImage3D_6"),
    _texSubImage3D_7: dart.privateName(web_gl, "_texSubImage3D_7"),
    _texSubImage3D_8: dart.privateName(web_gl, "_texSubImage3D_8"),
    $texSubImage3D: dartx.texSubImage3D = Symbol("dartx.texSubImage3D"),
    _transformFeedbackVaryings_1: dart.privateName(web_gl, "_transformFeedbackVaryings_1"),
    $transformFeedbackVaryings: dartx.transformFeedbackVaryings = Symbol("dartx.transformFeedbackVaryings"),
    $uniform1fv2: dartx.uniform1fv2 = Symbol("dartx.uniform1fv2"),
    $uniform1iv2: dartx.uniform1iv2 = Symbol("dartx.uniform1iv2"),
    $uniform1ui: dartx.uniform1ui = Symbol("dartx.uniform1ui"),
    $uniform1uiv: dartx.uniform1uiv = Symbol("dartx.uniform1uiv"),
    $uniform2fv2: dartx.uniform2fv2 = Symbol("dartx.uniform2fv2"),
    $uniform2iv2: dartx.uniform2iv2 = Symbol("dartx.uniform2iv2"),
    $uniform2ui: dartx.uniform2ui = Symbol("dartx.uniform2ui"),
    $uniform2uiv: dartx.uniform2uiv = Symbol("dartx.uniform2uiv"),
    $uniform3fv2: dartx.uniform3fv2 = Symbol("dartx.uniform3fv2"),
    $uniform3iv2: dartx.uniform3iv2 = Symbol("dartx.uniform3iv2"),
    $uniform3ui: dartx.uniform3ui = Symbol("dartx.uniform3ui"),
    $uniform3uiv: dartx.uniform3uiv = Symbol("dartx.uniform3uiv"),
    $uniform4fv2: dartx.uniform4fv2 = Symbol("dartx.uniform4fv2"),
    $uniform4iv2: dartx.uniform4iv2 = Symbol("dartx.uniform4iv2"),
    $uniform4ui: dartx.uniform4ui = Symbol("dartx.uniform4ui"),
    $uniform4uiv: dartx.uniform4uiv = Symbol("dartx.uniform4uiv"),
    $uniformBlockBinding: dartx.uniformBlockBinding = Symbol("dartx.uniformBlockBinding"),
    $uniformMatrix2fv2: dartx.uniformMatrix2fv2 = Symbol("dartx.uniformMatrix2fv2"),
    $uniformMatrix2x3fv: dartx.uniformMatrix2x3fv = Symbol("dartx.uniformMatrix2x3fv"),
    $uniformMatrix2x4fv: dartx.uniformMatrix2x4fv = Symbol("dartx.uniformMatrix2x4fv"),
    $uniformMatrix3fv2: dartx.uniformMatrix3fv2 = Symbol("dartx.uniformMatrix3fv2"),
    $uniformMatrix3x2fv: dartx.uniformMatrix3x2fv = Symbol("dartx.uniformMatrix3x2fv"),
    $uniformMatrix3x4fv: dartx.uniformMatrix3x4fv = Symbol("dartx.uniformMatrix3x4fv"),
    $uniformMatrix4fv2: dartx.uniformMatrix4fv2 = Symbol("dartx.uniformMatrix4fv2"),
    $uniformMatrix4x2fv: dartx.uniformMatrix4x2fv = Symbol("dartx.uniformMatrix4x2fv"),
    $uniformMatrix4x3fv: dartx.uniformMatrix4x3fv = Symbol("dartx.uniformMatrix4x3fv"),
    $vertexAttribDivisor: dartx.vertexAttribDivisor = Symbol("dartx.vertexAttribDivisor"),
    $vertexAttribI4i: dartx.vertexAttribI4i = Symbol("dartx.vertexAttribI4i"),
    $vertexAttribI4iv: dartx.vertexAttribI4iv = Symbol("dartx.vertexAttribI4iv"),
    $vertexAttribI4ui: dartx.vertexAttribI4ui = Symbol("dartx.vertexAttribI4ui"),
    $vertexAttribI4uiv: dartx.vertexAttribI4uiv = Symbol("dartx.vertexAttribI4uiv"),
    $vertexAttribIPointer: dartx.vertexAttribIPointer = Symbol("dartx.vertexAttribIPointer"),
    $waitSync: dartx.waitSync = Symbol("dartx.waitSync"),
    $precision: dartx.precision = Symbol("dartx.precision"),
    $rangeMax: dartx.rangeMax = Symbol("dartx.rangeMax"),
    $rangeMin: dartx.rangeMin = Symbol("dartx.rangeMin"),
    $lastUploadedVideoFrameWasSkipped: dartx.lastUploadedVideoFrameWasSkipped = Symbol("dartx.lastUploadedVideoFrameWasSkipped"),
    $lastUploadedVideoHeight: dartx.lastUploadedVideoHeight = Symbol("dartx.lastUploadedVideoHeight"),
    $lastUploadedVideoTimestamp: dartx.lastUploadedVideoTimestamp = Symbol("dartx.lastUploadedVideoTimestamp"),
    $lastUploadedVideoWidth: dartx.lastUploadedVideoWidth = Symbol("dartx.lastUploadedVideoWidth"),
    _changeVersion: dart.privateName(web_sql, "_changeVersion"),
    $changeVersion: dartx.changeVersion = Symbol("dartx.changeVersion"),
    _readTransaction: dart.privateName(web_sql, "_readTransaction"),
    $readTransaction: dartx.readTransaction = Symbol("dartx.readTransaction"),
    $transaction_future: dartx.transaction_future = Symbol("dartx.transaction_future"),
    $insertId: dartx.insertId = Symbol("dartx.insertId"),
    $rowsAffected: dartx.rowsAffected = Symbol("dartx.rowsAffected"),
    _item_1: dart.privateName(web_sql, "_item_1"),
    _executeSql: dart.privateName(web_sql, "_executeSql"),
    $executeSql: dartx.executeSql = Symbol("dartx.executeSql")
  };
  const CT = Object.create({
    _: () => (C, CT)
  });
  var C = Array(490).fill(void 0);
  var I = [
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/classes.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/rtti.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/runtime.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/ddc_runtime/utils.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/core_patch.dart",
    "dart:core",
    "dart:_runtime",
    "org-dartlang-sdk:///lib/core/invocation.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/debugger.dart",
    "dart:_debugger",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/profile.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/foreign_helper.dart",
    "dart:_foreign_helper",
    "dart:_interceptors",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/interceptors.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_array.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_number.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_string.dart",
    "org-dartlang-sdk:///lib/internal/internal.dart",
    "org-dartlang-sdk:///lib/internal/list.dart",
    "org-dartlang-sdk:///lib/collection/list.dart",
    "dart:collection",
    "dart:_internal",
    "org-dartlang-sdk:///lib/core/num.dart",
    "org-dartlang-sdk:///lib/internal/async_cast.dart",
    "org-dartlang-sdk:///lib/async/stream.dart",
    "dart:async",
    "org-dartlang-sdk:///lib/convert/converter.dart",
    "dart:convert",
    "org-dartlang-sdk:///lib/internal/bytes_builder.dart",
    "org-dartlang-sdk:///lib/internal/cast.dart",
    "org-dartlang-sdk:///lib/core/iterable.dart",
    "org-dartlang-sdk:///lib/collection/maps.dart",
    "org-dartlang-sdk:///lib/internal/errors.dart",
    "org-dartlang-sdk:///lib/internal/iterable.dart",
    "org-dartlang-sdk:///lib/internal/linked_list.dart",
    "org-dartlang-sdk:///lib/collection/iterable.dart",
    "org-dartlang-sdk:///lib/internal/sort.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/internal_patch.dart",
    "org-dartlang-sdk:///lib/internal/symbol.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/isolate_helper.dart",
    "dart:_isolate_helper",
    "dart:_js_helper",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_helper.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/annotations.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/linked_hash_map.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/identity_hash_map.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/custom_hash_map.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/regexp_helper.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/string_helper.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_rti.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/native_helper.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/js_primitives.dart",
    "org-dartlang-sdk:///lib/html/html_common/metadata.dart",
    "dart:_metadata",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/private/native_typed_data.dart",
    "dart:_native_typed_data",
    "dart:typed_data",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/async_patch.dart",
    "org-dartlang-sdk:///lib/async/async_error.dart",
    "org-dartlang-sdk:///lib/async/broadcast_stream_controller.dart",
    "org-dartlang-sdk:///lib/async/stream_controller.dart",
    "org-dartlang-sdk:///lib/async/stream_impl.dart",
    "org-dartlang-sdk:///lib/async/deferred_load.dart",
    "org-dartlang-sdk:///lib/async/future.dart",
    "org-dartlang-sdk:///lib/async/future_impl.dart",
    "org-dartlang-sdk:///lib/async/schedule_microtask.dart",
    "org-dartlang-sdk:///lib/async/stream_pipe.dart",
    "org-dartlang-sdk:///lib/async/stream_transformers.dart",
    "org-dartlang-sdk:///lib/async/timer.dart",
    "org-dartlang-sdk:///lib/async/zone.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/collection_patch.dart",
    "org-dartlang-sdk:///lib/collection/set.dart",
    "org-dartlang-sdk:///lib/collection/collections.dart",
    "org-dartlang-sdk:///lib/collection/hash_map.dart",
    "org-dartlang-sdk:///lib/collection/hash_set.dart",
    "org-dartlang-sdk:///lib/collection/iterator.dart",
    "org-dartlang-sdk:///lib/collection/linked_hash_map.dart",
    "org-dartlang-sdk:///lib/collection/linked_hash_set.dart",
    "org-dartlang-sdk:///lib/collection/linked_list.dart",
    "org-dartlang-sdk:///lib/collection/queue.dart",
    "org-dartlang-sdk:///lib/collection/splay_tree.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/convert_patch.dart",
    "org-dartlang-sdk:///lib/convert/string_conversion.dart",
    "org-dartlang-sdk:///lib/convert/ascii.dart",
    "org-dartlang-sdk:///lib/convert/encoding.dart",
    "org-dartlang-sdk:///lib/convert/codec.dart",
    "org-dartlang-sdk:///lib/core/list.dart",
    "org-dartlang-sdk:///lib/convert/byte_conversion.dart",
    "org-dartlang-sdk:///lib/convert/base64.dart",
    "org-dartlang-sdk:///lib/convert/chunked_conversion.dart",
    "org-dartlang-sdk:///lib/convert/html_escape.dart",
    "org-dartlang-sdk:///lib/convert/json.dart",
    "org-dartlang-sdk:///lib/convert/latin1.dart",
    "org-dartlang-sdk:///lib/convert/line_splitter.dart",
    "org-dartlang-sdk:///lib/convert/utf.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/developer_patch.dart",
    "dart:developer",
    "org-dartlang-sdk:///lib/developer/extension.dart",
    "org-dartlang-sdk:///lib/developer/profiler.dart",
    "org-dartlang-sdk:///lib/developer/service.dart",
    "org-dartlang-sdk:///lib/developer/timeline.dart",
    "dart:io",
    "org-dartlang-sdk:///lib/io/common.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/io_patch.dart",
    "org-dartlang-sdk:///lib/io/data_transformer.dart",
    "org-dartlang-sdk:///lib/io/directory.dart",
    "org-dartlang-sdk:///lib/io/directory_impl.dart",
    "org-dartlang-sdk:///lib/io/file_system_entity.dart",
    "org-dartlang-sdk:///lib/io/embedder_config.dart",
    "org-dartlang-sdk:///lib/io/file.dart",
    "org-dartlang-sdk:///lib/io/file_impl.dart",
    "org-dartlang-sdk:///lib/io/io_resource_info.dart",
    "org-dartlang-sdk:///lib/io/io_sink.dart",
    "org-dartlang-sdk:///lib/io/link.dart",
    "org-dartlang-sdk:///lib/io/network_policy.dart",
    "org-dartlang-sdk:///lib/io/network_profiling.dart",
    "org-dartlang-sdk:///lib/io/overrides.dart",
    "org-dartlang-sdk:///lib/io/platform_impl.dart",
    "org-dartlang-sdk:///lib/io/process.dart",
    "org-dartlang-sdk:///lib/io/secure_server_socket.dart",
    "org-dartlang-sdk:///lib/io/secure_socket.dart",
    "org-dartlang-sdk:///lib/io/socket.dart",
    "org-dartlang-sdk:///lib/io/security_context.dart",
    "org-dartlang-sdk:///lib/io/service_object.dart",
    "org-dartlang-sdk:///lib/io/stdio.dart",
    "org-dartlang-sdk:///lib/io/string_transformer.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/isolate_patch.dart",
    "dart:isolate",
    "org-dartlang-sdk:///lib/isolate/isolate.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/js_patch.dart",
    "dart:js",
    "org-dartlang-sdk:///lib/js/js.dart",
    "org-dartlang-sdk:///lib/js_util/js_util.dart",
    "dart:js_util",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/math_patch.dart",
    "dart:math",
    "org-dartlang-sdk:///lib/math/point.dart",
    "org-dartlang-sdk:///lib/math/rectangle.dart",
    "org-dartlang-sdk:///lib/typed_data/typed_data.dart",
    "org-dartlang-sdk:///lib/_internal/js_dev_runtime/patch/typed_data_patch.dart",
    "org-dartlang-sdk:///lib/typed_data/unmodifiable_typed_data.dart",
    "org-dartlang-sdk:///lib/indexed_db/dart2js/indexed_db_dart2js.dart",
    "dart:indexed_db",
    "org-dartlang-sdk:///lib/html/dart2js/html_dart2js.dart",
    "dart:html",
    "org-dartlang-sdk:///lib/html/html_common/css_class_set.dart",
    "dart:html_common",
    "org-dartlang-sdk:///lib/html/html_common/conversions.dart",
    "org-dartlang-sdk:///lib/html/html_common/conversions_dart2js.dart",
    "org-dartlang-sdk:///lib/html/html_common/device.dart",
    "org-dartlang-sdk:///lib/html/html_common/filtered_element_list.dart",
    "org-dartlang-sdk:///lib/html/html_common/lists.dart",
    "org-dartlang-sdk:///lib/svg/dart2js/svg_dart2js.dart",
    "dart:svg",
    "org-dartlang-sdk:///lib/web_audio/dart2js/web_audio_dart2js.dart",
    "dart:web_audio",
    "dart:web_gl",
    "org-dartlang-sdk:///lib/web_gl/dart2js/web_gl_dart2js.dart",
    "org-dartlang-sdk:///lib/web_sql/dart2js/web_sql_dart2js.dart",
    "dart:web_sql",
    "org-dartlang-sdk:///lib/core/map.dart",
    "org-dartlang-sdk:///lib/core/annotations.dart",
    "org-dartlang-sdk:///lib/core/bool.dart",
    "org-dartlang-sdk:///lib/core/comparable.dart",
    "org-dartlang-sdk:///lib/core/date_time.dart",
    "org-dartlang-sdk:///lib/core/duration.dart",
    "org-dartlang-sdk:///lib/core/errors.dart",
    "org-dartlang-sdk:///lib/core/exceptions.dart",
    "org-dartlang-sdk:///lib/core/set.dart",
    "org-dartlang-sdk:///lib/core/stacktrace.dart",
    "org-dartlang-sdk:///lib/core/string.dart",
    "org-dartlang-sdk:///lib/core/uri.dart",
    "org-dartlang-sdk:///lib/_http/http.dart",
    "dart:_http",
    "org-dartlang-sdk:///lib/_http/crypto.dart",
    "org-dartlang-sdk:///lib/_http/http_date.dart",
    "org-dartlang-sdk:///lib/_http/http_headers.dart",
    "org-dartlang-sdk:///lib/_http/http_impl.dart",
    "org-dartlang-sdk:///lib/_http/http_parser.dart",
    "org-dartlang-sdk:///lib/_http/http_session.dart",
    "org-dartlang-sdk:///lib/_http/overrides.dart",
    "org-dartlang-sdk:///lib/_http/websocket.dart",
    "org-dartlang-sdk:///lib/_http/websocket_impl.dart"
  ];
  var _jsError$ = dart.privateName(dart, "_jsError");
  var _type$ = dart.privateName(dart, "_type");
  dart.applyMixin = function applyMixin(to, from) {
    to[dart._mixin] = from;
    let toProto = to.prototype;
    let fromProto = from.prototype;
    dart._copyMembers(toProto, fromProto);
    dart._mixinSignature(to, from, dart._methodSig);
    dart._mixinSignature(to, from, dart._fieldSig);
    dart._mixinSignature(to, from, dart._getterSig);
    dart._mixinSignature(to, from, dart._setterSig);
    let mixinOnFn = from[dart.mixinOn];
    if (mixinOnFn != null) {
      let proto = mixinOnFn(to.__proto__).prototype;
      dart._copyMembers(toProto, proto);
    }
  };
  dart._copyMembers = function _copyMembers(to, from) {
    let names = dart.getOwnNamesAndSymbols(from);
    for (let i = 0, n = names.length; i < n; i = i + 1) {
      let name = names[i];
      if (name === "constructor") continue;
      dart._copyMember(to, from, name);
    }
    return to;
  };
  dart._copyMember = function _copyMember(to, from, name) {
    let desc = dart.getOwnPropertyDescriptor(from, name);
    if (name == Symbol.iterator) {
      let existing = dart.getOwnPropertyDescriptor(to, name);
      if (existing != null) {
        if (existing.writable) {
          to[name] = desc.value;
        }
        return;
      }
    }
    let getter = desc.get;
    let setter = desc.set;
    if (getter != null) {
      if (setter == null) {
        let obj = desc.set = {
          __proto__: to.__proto__,
          set [name](x) {
            return super[name] = x;
          }
        };
        desc.set = dart.getOwnPropertyDescriptor(obj, name).set;
      }
    } else if (setter != null) {
      if (getter == null) {
        let obj = desc.get = {
          __proto__: to.__proto__,
          get [name]() {
            return super[name];
          }
        };
        desc.get = dart.getOwnPropertyDescriptor(obj, name).get;
      }
    }
    dart.defineProperty(to, name, desc);
  };
  dart._mixinSignature = function _mixinSignature(to, from, kind) {
    to[kind] = () => {
      let baseMembers = dart._getMembers(to.__proto__, kind);
      let fromMembers = dart._getMembers(from, kind);
      if (fromMembers == null) return baseMembers;
      let toSignature = {__proto__: baseMembers};
      dart.copyProperties(toSignature, fromMembers);
      return toSignature;
    };
  };
  dart.getMixin = function getMixin(clazz) {
    return Object.hasOwnProperty.call(clazz, dart._mixin) ? clazz[dart._mixin] : null;
  };
  dart.getImplements = function getImplements(clazz) {
    return Object.hasOwnProperty.call(clazz, dart.implements) ? clazz[dart.implements] : null;
  };
  dart.normalizeFutureOr = function normalizeFutureOr(typeConstructor, setBaseClass) {
    let genericFutureOrType = dart.generic(typeConstructor, setBaseClass);
    function normalize(typeArg) {
      if (typeArg == void 0) return dart.dynamic;
      if (dart._isTop(typeArg) || typeArg === core.Object || typeArg instanceof dart.LegacyType && typeArg.type === core.Object) {
        return typeArg;
      }
      if (typeArg === dart.Never) {
        return async.Future$(typeArg);
      }
      if (typeArg === core.Null) {
        return dart.nullable(async.Future$(typeArg));
      }
      let genericType = genericFutureOrType(typeArg);
      genericType[dart._originalDeclaration] = normalize;
      dart.addTypeCaches(genericType);
      function is_FutureOr(obj) {
        return typeArg.is(obj) || async.Future$(typeArg).is(obj);
      }
      genericType.is = is_FutureOr;
      function as_FutureOr(obj) {
        if (obj == null && typeArg instanceof dart.LegacyType) {
          return obj;
        }
        if (typeArg.is(obj) || async.Future$(typeArg).is(obj)) {
          return obj;
        }
        return dart.as(obj, async.FutureOr$(typeArg));
      }
      genericType.as = as_FutureOr;
      return genericType;
    }
    return normalize;
  };
  dart.generic = function generic(typeConstructor, setBaseClass) {
    let length = typeConstructor.length;
    if (length < 1) {
      dart.throwInternalError('must have at least one generic type argument');
    }
    let resultMap = new Map();
    function makeGenericType(...args) {
      if (args.length != length && args.length != 0) {
        dart.throwInternalError('requires ' + length + ' or 0 type arguments');
      }
      while (args.length < length)
        args.push(dart.dynamic);
      let value = resultMap;
      for (let i = 0; i < length; i++) {
        let arg = args[i];
        if (arg == null) {
          dart.throwInternalError('type arguments should not be null: ' + typeConstructor);
        }
        let map = value;
        value = map.get(arg);
        if (value === void 0) {
          if (i + 1 == length) {
            value = typeConstructor.apply(null, args);
            if (value) {
              value[dart._typeArguments] = args;
              value[dart._originalDeclaration] = makeGenericType;
            }
            map.set(arg, value);
            if (setBaseClass != null) setBaseClass.apply(null, args);
          } else {
            value = new Map();
            map.set(arg, value);
          }
        }
      }
      return value;
    }
    makeGenericType[dart._genericTypeCtor] = typeConstructor;
    dart.addTypeCaches(makeGenericType);
    return makeGenericType;
  };
  dart.getGenericClass = function getGenericClass(type) {
    return dart.safeGetOwnProperty(type, dart._originalDeclaration);
  };
  dart.getGenericArgs = function getGenericArgs(type) {
    return dart.safeGetOwnProperty(type, dart._typeArguments);
  };
  dart.getGenericArgVariances = function getGenericArgVariances(type) {
    return dart.safeGetOwnProperty(type, dart._variances);
  };
  dart.setGenericArgVariances = function setGenericArgVariances(f, variances) {
    return f[dart._variances] = variances;
  };
  dart.getGenericTypeFormals = function getGenericTypeFormals(genericClass) {
    return dart._typeFormalsFromFunction(dart.getGenericTypeCtor(genericClass));
  };
  dart.instantiateClass = function instantiateClass(genericClass, typeArgs) {
    if (genericClass == null) dart.nullFailed(I[0], 287, 32, "genericClass");
    if (typeArgs == null) dart.nullFailed(I[0], 287, 59, "typeArgs");
    return genericClass.apply(null, typeArgs);
  };
  dart.getConstructors = function getConstructors(value) {
    return dart._getMembers(value, dart._constructorSig);
  };
  dart.getMethods = function getMethods(value) {
    return dart._getMembers(value, dart._methodSig);
  };
  dart.getFields = function getFields(value) {
    return dart._getMembers(value, dart._fieldSig);
  };
  dart.getGetters = function getGetters(value) {
    return dart._getMembers(value, dart._getterSig);
  };
  dart.getSetters = function getSetters(value) {
    return dart._getMembers(value, dart._setterSig);
  };
  dart.getStaticMethods = function getStaticMethods(value) {
    return dart._getMembers(value, dart._staticMethodSig);
  };
  dart.getStaticFields = function getStaticFields(value) {
    return dart._getMembers(value, dart._staticFieldSig);
  };
  dart.getStaticGetters = function getStaticGetters(value) {
    return dart._getMembers(value, dart._staticGetterSig);
  };
  dart.getStaticSetters = function getStaticSetters(value) {
    return dart._getMembers(value, dart._staticSetterSig);
  };
  dart.getGenericTypeCtor = function getGenericTypeCtor(value) {
    return value[dart._genericTypeCtor];
  };
  dart.getType = function getType(obj) {
    if (obj == null) return core.Object;
    let constructor = obj.constructor;
    return constructor ? constructor : dart.global.Object.prototype.constructor;
  };
  dart.getLibraryUri = function getLibraryUri(value) {
    return value[dart._libraryUri];
  };
  dart.setLibraryUri = function setLibraryUri(f, uri) {
    return f[dart._libraryUri] = uri;
  };
  dart.isJsInterop = function isJsInterop(obj) {
    if (obj == null) return false;
    if (typeof obj === "function") {
      return obj[dart._runtimeType] == null;
    }
    if (typeof obj !== "object") return false;
    if (obj[dart._extensionType] != null) return false;
    return !(obj instanceof core.Object);
  };
  dart.getMethodType = function getMethodType(type, name) {
    let m = dart.getMethods(type);
    return m != null ? m[name] : null;
  };
  dart.getSetterType = function getSetterType(type, name) {
    let setters = dart.getSetters(type);
    if (setters != null) {
      let type = setters[name];
      if (type != null) {
        return type;
      }
    }
    let fields = dart.getFields(type);
    if (fields != null) {
      let fieldInfo = fields[name];
      if (fieldInfo != null && !fieldInfo.isFinal) {
        return fieldInfo.type;
      }
    }
    return null;
  };
  dart.finalFieldType = function finalFieldType(type, metadata) {
    return {type: type, isFinal: true, metadata: metadata};
  };
  dart.fieldType = function fieldType(type, metadata) {
    return {type: type, isFinal: false, metadata: metadata};
  };
  dart.classGetConstructorType = function classGetConstructorType(cls, name) {
    if (cls == null) return null;
    if (name == null) name = "new";
    let ctors = dart.getConstructors(cls);
    return ctors != null ? ctors[name] : null;
  };
  dart.setMethodSignature = function setMethodSignature(f, sigF) {
    return f[dart._methodSig] = sigF;
  };
  dart.setFieldSignature = function setFieldSignature(f, sigF) {
    return f[dart._fieldSig] = sigF;
  };
  dart.setGetterSignature = function setGetterSignature(f, sigF) {
    return f[dart._getterSig] = sigF;
  };
  dart.setSetterSignature = function setSetterSignature(f, sigF) {
    return f[dart._setterSig] = sigF;
  };
  dart.setConstructorSignature = function setConstructorSignature(f, sigF) {
    return f[dart._constructorSig] = sigF;
  };
  dart.setStaticMethodSignature = function setStaticMethodSignature(f, sigF) {
    return f[dart._staticMethodSig] = sigF;
  };
  dart.setStaticFieldSignature = function setStaticFieldSignature(f, sigF) {
    return f[dart._staticFieldSig] = sigF;
  };
  dart.setStaticGetterSignature = function setStaticGetterSignature(f, sigF) {
    return f[dart._staticGetterSig] = sigF;
  };
  dart.setStaticSetterSignature = function setStaticSetterSignature(f, sigF) {
    return f[dart._staticSetterSig] = sigF;
  };
  dart._getMembers = function _getMembers(type, kind) {
    let sig = type[kind];
    return typeof sig == "function" ? type[kind] = sig() : sig;
  };
  dart._hasMember = function _hasMember(type, kind, name) {
    let sig = dart._getMembers(type, kind);
    return sig != null && name in sig;
  };
  dart.hasMethod = function hasMethod(type, name) {
    return dart._hasMember(type, dart._methodSig, name);
  };
  dart.hasGetter = function hasGetter(type, name) {
    return dart._hasMember(type, dart._getterSig, name);
  };
  dart.hasSetter = function hasSetter(type, name) {
    return dart._hasMember(type, dart._setterSig, name);
  };
  dart.hasField = function hasField(type, name) {
    return dart._hasMember(type, dart._fieldSig, name);
  };
  dart._installProperties = function _installProperties(jsProto, dartType, installedParent) {
    if (dartType === core.Object) {
      dart._installPropertiesForObject(jsProto);
      return;
    }
    let dartSupertype = dartType.__proto__;
    if (dartSupertype !== installedParent) {
      dart._installProperties(jsProto, dartSupertype, installedParent);
    }
    let dartProto = dartType.prototype;
    dart.copyTheseProperties(jsProto, dartProto, dart.getOwnPropertySymbols(dartProto));
  };
  dart._installPropertiesForObject = function _installPropertiesForObject(jsProto) {
    let coreObjProto = core.Object.prototype;
    let names = dart.getOwnPropertyNames(coreObjProto);
    for (let i = 0, n = names.length; i < n; i = i + 1) {
      let name = names[i];
      if (name === "constructor") continue;
      let desc = dart.getOwnPropertyDescriptor(coreObjProto, name);
      dart.defineProperty(jsProto, dart.dartx[name], desc);
    }
  };
  dart._installPropertiesForGlobalObject = function _installPropertiesForGlobalObject(jsProto) {
    dart._installPropertiesForObject(jsProto);
    jsProto[dartx.toString] = function() {
      return this.toString();
    };
    dart.identityEquals == null ? dart.identityEquals = jsProto[dartx._equals] : null;
  };
  dart._applyExtension = function _applyExtension(jsType, dartExtType) {
    if (jsType == null) return;
    let jsProto = jsType.prototype;
    if (jsProto == null) return;
    if (dartExtType === core.Object) {
      dart._installPropertiesForGlobalObject(jsProto);
      return;
    }
    if (jsType === dart.global.Object) {
      let extName = dartExtType.name;
      dart._warn("Attempting to install properties from non-Object type '" + extName + "' onto the native JS Object.");
      return;
    }
    dart._installProperties(jsProto, dartExtType, jsProto[dart._extensionType]);
    if (dartExtType !== _interceptors.JSFunction) {
      jsProto[dart._extensionType] = dartExtType;
    }
    jsType[dart._methodSig] = dartExtType[dart._methodSig];
    jsType[dart._fieldSig] = dartExtType[dart._fieldSig];
    jsType[dart._getterSig] = dartExtType[dart._getterSig];
    jsType[dart._setterSig] = dartExtType[dart._setterSig];
  };
  dart.applyExtension = function applyExtension(name, nativeObject) {
    let dartExtType = dart._extensionMap.get(name);
    let jsType = nativeObject.constructor;
    dart._applyExtension(jsType, dartExtType);
  };
  dart.applyAllExtensions = function applyAllExtensions(global) {
    dart._extensionMap.forEach((dartExtType, name) => dart._applyExtension(global[name], dartExtType));
  };
  dart.registerExtension = function registerExtension(name, dartExtType) {
    dart._extensionMap.set(name, dartExtType);
    let jsType = dart.global[name];
    dart._applyExtension(jsType, dartExtType);
  };
  dart.applyExtensionForTesting = function applyExtensionForTesting(name) {
    let dartExtType = dart._extensionMap.get(name);
    let jsType = dart.global[name];
    dart._applyExtension(jsType, dartExtType);
  };
  dart.defineExtensionMethods = function defineExtensionMethods(type, memberNames) {
    if (memberNames == null) dart.nullFailed(I[0], 563, 39, "memberNames");
    let proto = type.prototype;
    for (let name of memberNames) {
      proto[dartx[name]] = proto[name];
    }
  };
  dart.defineExtensionAccessors = function defineExtensionAccessors(type, memberNames) {
    if (memberNames == null) dart.nullFailed(I[0], 571, 46, "memberNames");
    let proto = type.prototype;
    for (let name of memberNames) {
      let member = null;
      let p = proto;
      for (;; p = p.__proto__) {
        member = dart.getOwnPropertyDescriptor(p, name);
        if (member != null) break;
      }
      dart.defineProperty(proto, dartx[name], member);
    }
  };
  dart.definePrimitiveHashCode = function definePrimitiveHashCode(proto) {
    dart.defineProperty(proto, dart.identityHashCode_, dart.getOwnPropertyDescriptor(proto, $hashCode));
  };
  dart.setBaseClass = function setBaseClass(derived, base) {
    derived.prototype.__proto__ = base.prototype;
    derived.__proto__ = base;
  };
  dart.setExtensionBaseClass = function setExtensionBaseClass(dartType, jsType) {
    let dartProto = dartType.prototype;
    dartProto[dart._extensionType] = dartType;
    dartProto.__proto__ = jsType.prototype;
  };
  dart.addTypeTests = function addTypeTests(ctor, isClass) {
    if (isClass == null) isClass = Symbol("_is_" + ctor.name);
    ctor.prototype[isClass] = true;
    ctor.is = function is_C(obj) {
      return obj != null && (obj[isClass] || dart.is(obj, this));
    };
    ctor.as = function as_C(obj) {
      if (obj != null && obj[isClass]) return obj;
      return dart.as(obj, this);
    };
  };
  dart.addTypeCaches = function addTypeCaches(type) {
    type[dart._cachedLegacy] = void 0;
    type[dart._cachedNullable] = void 0;
    let subtypeCacheMap = new Map();
    type[dart._subtypeCache] = subtypeCacheMap;
    dart._cacheMaps.push(subtypeCacheMap);
  };
  dart.argumentError = function argumentError(value) {
    dart.throw(new core.ArgumentError.value(value));
  };
  dart.throwUnimplementedError = function throwUnimplementedError(message) {
    if (message == null) dart.nullFailed(I[1], 16, 32, "message");
    dart.throw(new core.UnimplementedError.new(message));
  };
  dart.throwDeferredIsLoadedError = function throwDeferredIsLoadedError(enclosingLibrary, importPrefix) {
    dart.throw(new _js_helper.DeferredNotLoadedError.new(enclosingLibrary, importPrefix));
  };
  dart.assertFailed = function assertFailed(message, fileUri = null, line = null, column = null, conditionSource = null) {
    dart.throw(new _js_helper.AssertionErrorImpl.new(message, fileUri, line, column, conditionSource));
  };
  dart._checkModuleNullSafetyMode = function _checkModuleNullSafetyMode(isModuleSound) {
    if (isModuleSound !== false) {
      let sdkMode = false ? "sound" : "unsound";
      let moduleMode = isModuleSound ? "sound" : "unsound";
      dart.throw(new core.AssertionError.new("The null safety mode of the Dart SDK module " + "(" + sdkMode + ") does not match the null safety mode of this module " + "(" + moduleMode + ")."));
    }
  };
  dart._nullFailedMessage = function _nullFailedMessage(variableName) {
    return "A null value was passed into a non-nullable parameter: " + dart.str(variableName) + ".";
  };
  dart.nullFailed = function nullFailed(fileUri, line, column, variable) {
    if (dart._nonNullAsserts) {
      dart.throw(new _js_helper.AssertionErrorImpl.new(dart._nullFailedMessage(variable), fileUri, line, column, dart.str(variable) + " != null"));
    }
    let key = dart.str(fileUri) + ":" + dart.str(line) + ":" + dart.str(column);
    if (!dart._nullFailedSet.has(key)) {
      dart._nullFailedSet.add(key);
      dart._nullWarn(dart._nullFailedMessage(variable));
    }
  };
  dart.throwLateInitializationError = function throwLateInitializationError(name) {
    if (name == null) dart.nullFailed(I[1], 66, 37, "name");
    dart.throw(new _internal.LateError.new(name));
  };
  dart.throwCyclicInitializationError = function throwCyclicInitializationError(field = null) {
    dart.throw(new core.CyclicInitializationError.new(field));
  };
  dart.throwNullValueError = function throwNullValueError() {
    dart.throw(new core.NoSuchMethodError.new(null, new _internal.Symbol.new("<Unexpected Null Value>"), null, null));
  };
  dart.castError = function castError(obj, expectedType) {
    let actualType = dart.getReifiedType(obj);
    let message = dart._castErrorMessage(actualType, expectedType);
    dart.throw(new _js_helper.TypeErrorImpl.new(message));
  };
  dart._castErrorMessage = function _castErrorMessage(from, to) {
    return "Expected a value of type '" + dart.typeName(to) + "', " + "but got one of type '" + dart.typeName(from) + "'";
  };
  dart.getThrown = function getThrown(error) {
    if (error != null) {
      let value = error[dart._thrownValue];
      if (value != null) return value;
    }
    return error;
  };
  dart.stackTrace = function stackTrace(error) {
    if (!(error instanceof Error)) {
      return new dart._StackTrace.missing(error);
    }
    let trace = error[dart._stackTrace];
    if (trace != null) return trace;
    return error[dart._stackTrace] = new dart._StackTrace.new(error);
  };
  dart.stackTraceForError = function stackTraceForError(error) {
    if (error == null) dart.nullFailed(I[1], 164, 37, "error");
    return dart.stackTrace(error[dart._jsError]);
  };
  dart.rethrow = function rethrow_(error) {
    if (error == null) dart.nullFailed(I[1], 173, 22, "error");
    throw error;
  };
  dart.throw = function throw_(exception) {
    throw new dart.DartError(exception);
  };
  dart.createErrorWithStack = function createErrorWithStack(exception, trace) {
    if (exception == null) dart.nullFailed(I[1], 256, 37, "exception");
    if (trace == null) {
      let error = exception[dart._jsError];
      return error != null ? error : new dart.DartError(exception);
    }
    if (dart._StackTrace.is(trace)) {
      let originalError = trace[_jsError$];
      if (core.identical(exception, dart.getThrown(originalError))) {
        return originalError;
      }
    }
    return new dart.RethrownDartError(exception, trace);
  };
  dart.stackPrint = function stackPrint(error) {
    if (error == null) dart.nullFailed(I[1], 274, 24, "error");
    console.log(error.stack ? error.stack : "No stack trace for: " + error);
  };
  dart.bind = function bind(obj, name, method) {
    if (obj == null) obj = _interceptors.jsNull;
    if (method == null) method = obj[name];
    let f = method.bind(obj);
    f._boundObject = obj;
    f._boundMethod = method;
    f[dart._runtimeType] = dart.getMethodType(dart.getType(obj), name);
    return f;
  };
  dart.bindCall = function bindCall(obj, name) {
    if (obj == null) return null;
    let ftype = dart.getMethodType(dart.getType(obj), name);
    if (ftype == null) return null;
    let method = obj[name];
    let f = method.bind(obj);
    f._boundObject = obj;
    f._boundMethod = method;
    f[dart._runtimeType] = ftype;
    return f;
  };
  dart.gbind = function gbind(f, ...typeArgs) {
    if (typeArgs == null) dart.nullFailed(I[2], 85, 29, "typeArgs");
    let type = f[dart._runtimeType];
    type.checkBounds(typeArgs);
    let result = (...args) => f.apply(null, typeArgs.concat(args));
    return dart.fn(result, type.instantiate(typeArgs));
  };
  dart.dloadRepl = function dloadRepl(obj, field) {
    return dart.dload(obj, dart.replNameLookup(obj, field));
  };
  dart.dload = function dload(obj, field) {
    if (typeof obj == "function" && field == "call") {
      return obj;
    }
    let f = dart._canonicalMember(obj, field);
    _debugger.trackCall(obj);
    if (f != null) {
      let type = dart.getType(obj);
      if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
      if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, null);
      if (dart.test(dart.isJsInterop(obj))) return obj[f];
    }
    return dart.noSuchMethod(obj, new dart.InvocationImpl.new(field, [], {isGetter: true}));
  };
  dart._stripGenericArguments = function _stripGenericArguments(type) {
    let genericClass = dart.getGenericClass(type);
    if (genericClass != null) return genericClass();
    return type;
  };
  dart.dputRepl = function dputRepl(obj, field, value) {
    return dart.dput(obj, dart.replNameLookup(obj, field), value);
  };
  dart.dput = function dput(obj, field, value) {
    let f = dart._canonicalMember(obj, field);
    _debugger.trackCall(obj);
    if (f != null) {
      let setterType = dart.getSetterType(dart.getType(obj), f);
      if (setterType != null) {
        return obj[f] = setterType.as(value);
      }
      if (dart.test(dart.isJsInterop(obj))) return obj[f] = value;
    }
    dart.noSuchMethod(obj, new dart.InvocationImpl.new(field, [value], {isSetter: true}));
    return value;
  };
  dart._argumentErrors = function _argumentErrors(type, actuals, namedActuals) {
    if (type == null) dart.nullFailed(I[2], 147, 38, "type");
    if (actuals == null) dart.nullFailed(I[2], 147, 49, "actuals");
    let actualsCount = actuals.length;
    let required = type.args;
    let requiredCount = required.length;
    if (actualsCount < requiredCount) {
      return "Dynamic call with too few arguments. " + "Expected: " + dart.str(requiredCount) + " Actual: " + dart.str(actualsCount);
    }
    let extras = actualsCount - requiredCount;
    let optionals = type.optionals;
    if (extras > optionals.length) {
      return "Dynamic call with too many arguments. " + "Expected: " + dart.str(requiredCount) + " Actual: " + dart.str(actualsCount);
    }
    let names = null;
    let named = type.named;
    let requiredNamed = type.requiredNamed;
    if (namedActuals != null) {
      names = dart.getOwnPropertyNames(namedActuals);
      for (let name of names) {
        if (!(named.hasOwnProperty(name) || requiredNamed.hasOwnProperty(name))) {
          return "Dynamic call with unexpected named argument '" + dart.str(name) + "'.";
        }
      }
    }
    let requiredNames = dart.getOwnPropertyNames(requiredNamed);
    if (dart.test(requiredNames[$isNotEmpty])) {
      let missingRequired = namedActuals == null ? requiredNames : requiredNames[$where](name => !namedActuals.hasOwnProperty(name));
      if (dart.test(missingRequired[$isNotEmpty])) {
        let error = "Dynamic call with missing required named arguments: " + dart.str(missingRequired[$join](", ")) + ".";
        if (!false) {
          dart._nullWarn(error);
        } else {
          return error;
        }
      }
    }
    for (let i = 0; i < requiredCount; i = i + 1) {
      required[i].as(actuals[i]);
    }
    for (let i = 0; i < extras; i = i + 1) {
      optionals[i].as(actuals[i + requiredCount]);
    }
    if (names != null) {
      for (let name of names) {
        (named[name] || requiredNamed[name]).as(namedActuals[name]);
      }
    }
    return null;
  };
  dart._toSymbolName = function _toSymbolName(symbol) {
    let str = symbol.toString();
    return str.substring(7, str.length - 1);
  };
  dart._toDisplayName = function _toDisplayName(name) {
    if (name[0] === '_') {
      switch (name) {
        case '_get':
        {
          return '[]';
        }
        case '_set':
        {
          return '[]=';
        }
        case '_negate':
        {
          return 'unary-';
        }
        case '_constructor':
        case '_prototype':
        {
          return name.substring(1);
        }
      }
    }
    return name;
  };
  dart._dartSymbol = function _dartSymbol(name) {
    return typeof name === "symbol" ? dart.const(new _js_helper.PrivateSymbol.new(dart._toSymbolName(name), name)) : dart.const(new _internal.Symbol.new(dart._toDisplayName(name)));
  };
  dart._setterSymbol = function _setterSymbol(name) {
    return typeof name === "symbol" ? dart.const(new _js_helper.PrivateSymbol.new(dart._toSymbolName(name) + "=", name)) : dart.const(new _internal.Symbol.new(dart._toDisplayName(name) + "="));
  };
  dart._checkAndCall = function _checkAndCall(f, ftype, obj, typeArgs, args, named, displayName) {
    _debugger.trackCall(obj);
    let originalTarget = obj === void 0 ? f : obj;
    function callNSM(errorMessage) {
      return dart.noSuchMethod(originalTarget, new dart.InvocationImpl.new(displayName, args, {namedArguments: named, typeArguments: typeArgs || [], isMethod: true, failureMessage: errorMessage}));
    }
    if (f == null) return callNSM('Dynamic call of null.');
    if (!(f instanceof Function)) {
      if (f != null) {
        originalTarget = f;
        f = dart.bindCall(f, dart._canonicalMember(f, "call"));
        ftype = null;
        displayName = "call";
      }
      if (f == null) return callNSM("Dynamic call of object has no instance method 'call'.");
    }
    if (ftype == null) ftype = f[dart._runtimeType];
    if (ftype == null) {
      if (typeArgs != null) {
        dart.throwTypeError('call to JS object `' + obj + '` with type arguments <' + typeArgs + '> is not supported.');
      }
      if (named != null) args.push(named);
      return f.apply(obj, args);
    }
    if (ftype instanceof dart.GenericFunctionType) {
      let formalCount = ftype.formalCount;
      if (typeArgs == null) {
        typeArgs = ftype.instantiateDefaultBounds();
      } else if (typeArgs.length != formalCount) {
        return callNSM('Dynamic call with incorrect number of type arguments. ' + 'Expected: ' + formalCount + ' Actual: ' + typeArgs.length);
      } else {
        ftype.checkBounds(typeArgs);
      }
      ftype = ftype.instantiate(typeArgs);
    } else if (typeArgs != null) {
      return callNSM('Dynamic call with unexpected type arguments. ' + 'Expected: 0 Actual: ' + typeArgs.length);
    }
    let errorMessage = dart._argumentErrors(ftype, args, named);
    if (errorMessage == null) {
      if (typeArgs != null) args = typeArgs.concat(args);
      if (named != null) args.push(named);
      return f.apply(obj, args);
    }
    return callNSM(errorMessage);
  };
  dart.dcall = function dcall(f, args, named = null) {
    return dart._checkAndCall(f, null, void 0, null, args, named, f.name);
  };
  dart.dgcall = function dgcall(f, typeArgs, args, named = null) {
    return dart._checkAndCall(f, null, void 0, typeArgs, args, named, f.name || 'call');
  };
  dart.replNameLookup = function replNameLookup(object, field) {
    let rawField = field;
    if (typeof field == 'symbol') {
      if (field in object) return field;
      field = field.toString();
      field = field.substring('Symbol('.length, field.length - 1);
    } else if (field.charAt(0) != '_') {
      return field;
    }
    if (field in object) return field;
    let proto = object;
    while (proto !== null) {
      let symbols = Object.getOwnPropertySymbols(proto);
      let target = 'Symbol(' + field + ')';
      for (let s = 0; s < symbols.length; s++) {
        let sym = symbols[s];
        if (target == sym.toString()) return sym;
      }
      proto = proto.__proto__;
    }
    return rawField;
  };
  dart.callMethod = function callMethod(obj, name, typeArgs, args, named, displayName) {
    if (typeof obj == "function" && name == "call") {
      return dart.dgcall(obj, typeArgs, args, named);
    }
    let symbol = dart._canonicalMember(obj, name);
    if (symbol == null) {
      return dart.noSuchMethod(obj, new dart.InvocationImpl.new(displayName, T$.ListOfObjectN().as(args), {isMethod: true}));
    }
    let f = obj != null ? obj[symbol] : null;
    let type = dart.getType(obj);
    let ftype = dart.getMethodType(type, symbol);
    return dart._checkAndCall(f, ftype, obj, typeArgs, args, named, displayName);
  };
  dart.dsend = function dsend(obj, method, args, named = null) {
    return dart.callMethod(obj, method, null, args, named, method);
  };
  dart.dgsend = function dgsend(obj, typeArgs, method, args, named = null) {
    return dart.callMethod(obj, method, typeArgs, args, named, method);
  };
  dart.dsendRepl = function dsendRepl(obj, method, args, named = null) {
    return dart.callMethod(obj, dart.replNameLookup(obj, method), null, args, named, method);
  };
  dart.dgsendRepl = function dgsendRepl(obj, typeArgs, method, args, named = null) {
    return dart.callMethod(obj, dart.replNameLookup(obj, method), typeArgs, args, named, method);
  };
  dart.dindex = function dindex(obj, index) {
    return dart.callMethod(obj, "_get", null, [index], null, "[]");
  };
  dart.dsetindex = function dsetindex(obj, index, value) {
    return dart.callMethod(obj, "_set", null, [index, value], null, "[]=");
  };
  dart.is = function instanceOf(obj, type) {
    if (obj == null) {
      return type === core.Null || dart._isTop(type) || type instanceof dart.NullableType;
    }
    return dart.isSubtypeOf(dart.getReifiedType(obj), type);
  };
  dart.as = function cast(obj, type) {
    if (obj == null && !false) {
      dart._nullWarnOnType(type);
      return obj;
    } else {
      let actual = dart.getReifiedType(obj);
      if (dart.isSubtypeOf(actual, type)) return obj;
    }
    return dart.castError(obj, type);
  };
  dart.test = function test(obj) {
    if (obj == null) dart.throw(new _js_helper.BooleanConversionAssertionError.new());
    return obj;
  };
  dart.dtest = function dtest(obj) {
    if (!(typeof obj == 'boolean')) {
      dart.booleanConversionFailed(false ? obj : dart.test(T$.boolN().as(obj)));
      dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
    }
    return obj;
  };
  dart.booleanConversionFailed = function booleanConversionFailed(obj) {
    let actual = dart.typeName(dart.getReifiedType(obj));
    dart.throw(new _js_helper.TypeErrorImpl.new("type '" + actual + "' is not a 'bool' in boolean expression"));
  };
  dart.asInt = function asInt(obj) {
    if (Math.floor(obj) != obj) {
      if (obj == null && !false) {
        dart._nullWarnOnType(core.int);
        return null;
      } else {
        dart.castError(obj, core.int);
      }
    }
    return obj;
  };
  dart.asNullableInt = function asNullableInt(obj) {
    return obj == null ? null : dart.asInt(obj);
  };
  dart.notNull = function _notNull(x) {
    if (x == null) dart.throwNullValueError();
    return x;
  };
  dart.nullCast = function nullCast(x, type) {
    if (x == null) {
      if (!false) {
        dart._nullWarnOnType(type);
      } else {
        dart.castError(x, type);
      }
    }
    return x;
  };
  dart.nullCheck = function nullCheck(x) {
    if (x == null) dart.throw(new _js_helper.TypeErrorImpl.new("Unexpected null value."));
    return x;
  };
  dart._lookupNonTerminal = function _lookupNonTerminal(map, key) {
    if (map == null) dart.nullFailed(I[2], 529, 34, "map");
    let result = map.get(key);
    if (result != null) return result;
    map.set(key, result = new Map());
    return dart.nullCheck(result);
  };
  dart.constMap = function constMap(K, V, elements) {
    if (elements == null) dart.nullFailed(I[2], 536, 34, "elements");
    let count = elements[$length];
    let map = dart._lookupNonTerminal(dart.constantMaps, count);
    for (let i = 0; i < count; i = i + 1) {
      map = dart._lookupNonTerminal(map, elements[i]);
    }
    map = dart._lookupNonTerminal(map, dart.wrapType(K));
    let result = map.get(V);
    if (result != null) return result;
    result = new (_js_helper.ImmutableMap$(K, V)).from(elements);
    map.set(V, result);
    return result;
  };
  dart._createImmutableSet = function _createImmutableSet(E, elements) {
    if (elements == null) dart.nullFailed(I[2], 554, 42, "elements");
    dart._immutableSetConstructor == null ? dart._immutableSetConstructor = dart.getLibrary("dart:collection")._ImmutableSet$ : null;
    return new (dart._immutableSetConstructor(E)).from(elements);
  };
  dart.constSet = function constSet(E, elements) {
    if (elements == null) dart.nullFailed(I[2], 560, 31, "elements");
    let count = elements[$length];
    let map = dart._lookupNonTerminal(dart.constantSets, count);
    for (let i = 0; i < count; i = i + 1) {
      map = dart._lookupNonTerminal(map, elements[i]);
    }
    let result = map.get(E);
    if (result != null) return result;
    result = dart._createImmutableSet(E, elements);
    map.set(E, result);
    return result;
  };
  dart.multiKeyPutIfAbsent = function multiKeyPutIfAbsent(map, keys, valueFn) {
    for (let k of keys) {
      let value = map.get(k);
      if (!value) {
        map.set(k, value = new Map());
      }
      map = value;
    }
    if (map.has(dart._value)) return map.get(dart._value);
    let value = valueFn();
    map.set(dart._value, value);
    return value;
  };
  dart.const = function const_(obj) {
    let names = dart.getOwnNamesAndSymbols(obj);
    let count = names.length;
    let map = dart._lookupNonTerminal(dart.constants, count);
    for (let i = 0; i < count; i++) {
      let name = names[i];
      map = dart._lookupNonTerminal(map, name);
      map = dart._lookupNonTerminal(map, obj[name]);
    }
    let type = dart.getReifiedType(obj);
    let value = map.get(type);
    if (value) return value;
    map.set(type, obj);
    return obj;
  };
  dart.constList = function constList(elements, elementType) {
    let count = elements.length;
    let map = dart._lookupNonTerminal(dart.constantLists, count);
    for (let i = 0; i < count; i++) {
      map = dart._lookupNonTerminal(map, elements[i]);
    }
    let value = map.get(elementType);
    if (value) return value;
    _interceptors.JSArray$(elementType).unmodifiable(elements);
    map.set(elementType, elements);
    return elements;
  };
  dart.constFn = function constFn(x) {
    return () => x;
  };
  dart.extensionSymbol = function extensionSymbol(name) {
    if (name == null) dart.nullFailed(I[2], 678, 24, "name");
    return dartx[name];
  };
  dart.equals = function equals(x, y) {
    return x == null ? y == null : x[$_equals](y);
  };
  dart.hashCode = function hashCode(obj) {
    return obj == null ? 0 : obj[$hashCode];
  };
  dart.toString = function _toString(obj) {
    if (obj == null) return "null";
    if (typeof obj == 'string') return obj;
    return obj[$toString]();
  };
  dart.str = function str(obj) {
    if (obj == null) return "null";
    if (typeof obj == 'string') return obj;
    return core.String.as(dart.notNull(obj[$toString]()));
  };
  dart.noSuchMethod = function noSuchMethod(obj, invocation) {
    if (invocation == null) dart.nullFailed(I[2], 714, 30, "invocation");
    if (obj == null) dart.defaultNoSuchMethod(obj, invocation);
    return obj[$noSuchMethod](invocation);
  };
  dart.defaultNoSuchMethod = function defaultNoSuchMethod(obj, i) {
    if (i == null) dart.nullFailed(I[2], 720, 37, "i");
    dart.throw(new core.NoSuchMethodError._withInvocation(obj, i));
  };
  dart.runtimeType = function runtimeType(obj) {
    return obj == null ? dart.wrapType(core.Null) : obj[dartx.runtimeType];
  };
  dart._canonicalMember = function _canonicalMember(obj, name) {
    if (typeof name === "symbol") return name;
    if (obj != null && obj[dart._extensionType] != null) {
      return dartx[name];
    }
    if (name == "constructor" || name == "prototype") {
      name = "+" + name;
    }
    return name;
  };
  dart.loadLibrary = function loadLibrary(enclosingLibrary, importPrefix) {
    let result = dart.deferredImports.get(enclosingLibrary);
    if (dart.test(result === void 0)) {
      dart.deferredImports.set(enclosingLibrary, result = new Set());
    }
    result.add(importPrefix);
    return async.Future.value();
  };
  dart.checkDeferredIsLoaded = function checkDeferredIsLoaded(enclosingLibrary, importPrefix) {
    let loaded = dart.deferredImports.get(enclosingLibrary);
    if (dart.test(loaded === void 0) || dart.test(!loaded.has(importPrefix))) {
      dart.throwDeferredIsLoadedError(enclosingLibrary, importPrefix);
    }
  };
  dart.defineLazy = function defineLazy(to, from, useOldSemantics) {
    if (useOldSemantics == null) dart.nullFailed(I[2], 795, 32, "useOldSemantics");
    for (let name of dart.getOwnNamesAndSymbols(from)) {
      if (dart.test(useOldSemantics)) {
        dart.defineLazyFieldOld(to, name, dart.getOwnPropertyDescriptor(from, name));
      } else {
        dart.defineLazyField(to, name, dart.getOwnPropertyDescriptor(from, name));
      }
    }
  };
  dart.defineLazyField = function defineLazyField(to, name, desc) {
    const initializer = desc.get;
    const final = desc.set == null;
    let initialized = false;
    let init = initializer;
    let value = null;
    let savedLocals = false;
    desc.get = function() {
      if (init == null) return value;
      if (final && initialized) dart.throwLateInitializationError(name);
      if (!savedLocals) {
        dart._resetFields.push(() => {
          init = initializer;
          value = null;
          savedLocals = false;
          initialized = false;
        });
        savedLocals = true;
      }
      initialized = true;
      try {
        value = init();
      } catch (e) {
        initialized = false;
        throw e;
      }
      init = null;
      return value;
    };
    desc.configurable = true;
    if (desc.set != null) {
      desc.set = function(x) {
        init = null;
        value = x;
      };
    }
    return dart.defineProperty(to, name, desc);
  };
  dart.defineLazyFieldOld = function defineLazyFieldOld(to, name, desc) {
    const initializer = desc.get;
    let init = initializer;
    let value = null;
    desc.get = function() {
      if (init == null) return value;
      let f = init;
      init = dart.throwCyclicInitializationError;
      if (f === init) f(name);
      dart._resetFields.push(() => {
        init = initializer;
        value = null;
      });
      try {
        value = f();
        init = null;
        return value;
      } catch (e) {
        init = null;
        value = null;
        throw e;
      }
    };
    desc.configurable = true;
    if (desc.set != null) {
      desc.set = function(x) {
        init = null;
        value = x;
      };
    }
    return dart.defineProperty(to, name, desc);
  };
  dart.checkNativeNonNull = function checkNativeNonNull(variable) {
    if (dart._nativeNonNullAsserts && variable == null) {
      dart.throw(new _js_helper.TypeErrorImpl.new("      Unexpected null value encountered in Dart web platform libraries.\n      This may be a bug in the Dart SDK APIs. If you would like to report a bug\n      or disable this error, you can use the following instructions:\n      https://github.com/dart-lang/sdk/tree/master/sdk/lib/html/doc/NATIVE_NULL_ASSERTIONS.md\n    "));
    }
    return variable;
  };
  dart.fn = function fn(closure, type) {
    closure[dart._runtimeType] = type;
    return closure;
  };
  dart.lazyFn = function lazyFn(closure, computeType) {
    if (computeType == null) dart.nullFailed(I[3], 63, 35, "computeType");
    dart.defineAccessor(closure, dart._runtimeType, {
      get: () => dart.defineValue(closure, dart._runtimeType, computeType()),
      set: value => dart.defineValue(closure, dart._runtimeType, value),
      configurable: true
    });
    return closure;
  };
  dart.getFunctionType = function getFunctionType(obj) {
    let args = Array(obj.length).fill(dart.dynamic);
    return dart.fnType(dart.bottom, args, void 0);
  };
  dart.getReifiedType = function getReifiedType(obj) {
    switch (typeof obj) {
      case "object":
      {
        if (obj == null) return core.Null;
        if (obj instanceof core.Object) {
          return obj.constructor;
        }
        let result = obj[dart._extensionType];
        if (result == null) return dart.jsobject;
        return result;
      }
      case "function":
      {
        let result = obj[dart._runtimeType];
        if (result != null) return result;
        return dart.jsobject;
      }
      case "undefined":
      {
        return core.Null;
      }
      case "number":
      {
        return Math.floor(obj) == obj ? core.int : core.double;
      }
      case "boolean":
      {
        return core.bool;
      }
      case "string":
      {
        return core.String;
      }
      case "symbol":
      default:
      {
        return dart.jsobject;
      }
    }
  };
  dart.getModuleName = function getModuleName(module) {
    if (module == null) dart.nullFailed(I[3], 117, 30, "module");
    return module[dart._moduleName];
  };
  dart.getModuleNames = function getModuleNames() {
    return Array.from(dart._loadedModules.keys());
  };
  dart.getSourceMap = function getSourceMap(moduleName) {
    if (moduleName == null) dart.nullFailed(I[3], 127, 29, "moduleName");
    return dart._loadedSourceMaps.get(moduleName);
  };
  dart.getModuleLibraries = function getModuleLibraries(name) {
    if (name == null) dart.nullFailed(I[3], 132, 27, "name");
    let module = dart._loadedModules.get(name);
    if (module == null) return null;
    module[dart._moduleName] = name;
    return module;
  };
  dart.getModulePartMap = function getModulePartMap(name) {
    if (name == null) dart.nullFailed(I[3], 140, 25, "name");
    return dart._loadedPartMaps.get(name);
  };
  dart.trackLibraries = function trackLibraries(moduleName, libraries, parts, sourceMap) {
    if (moduleName == null) dart.nullFailed(I[3], 144, 12, "moduleName");
    if (libraries == null) dart.nullFailed(I[3], 144, 31, "libraries");
    if (parts == null) dart.nullFailed(I[3], 144, 49, "parts");
    if (typeof parts == 'string') {
      sourceMap = parts;
      parts = {};
    }
    dart._loadedSourceMaps.set(moduleName, sourceMap);
    dart._loadedModules.set(moduleName, libraries);
    dart._loadedPartMaps.set(moduleName, parts);
    dart._libraries = null;
    dart._libraryObjects = null;
    dart._parts = null;
  };
  dart._computeLibraryMetadata = function _computeLibraryMetadata() {
    dart._libraries = T$.JSArrayOfString().of([]);
    dart._libraryObjects = new (T$.IdentityMapOfString$ObjectN()).new();
    dart._parts = new (T$.IdentityMapOfString$ListNOfString()).new();
    let modules = dart.getModuleNames();
    for (let name of modules) {
      let module = dart.getModuleLibraries(name);
      let libraries = dart.getOwnPropertyNames(module)[$cast](core.String);
      dart.nullCheck(dart._libraries)[$addAll](libraries);
      for (let library of libraries) {
        dart.nullCheck(dart._libraryObjects)[$_set](library, module[library]);
      }
      let partMap = dart.getModulePartMap(name);
      libraries = dart.getOwnPropertyNames(partMap)[$cast](core.String);
      for (let library of libraries) {
        dart.nullCheck(dart._parts)[$_set](library, T$.ListOfString().from(partMap[library]));
      }
    }
  };
  dart.getLibrary = function getLibrary(uri) {
    if (uri == null) dart.nullFailed(I[3], 192, 27, "uri");
    if (dart._libraryObjects == null) {
      dart._computeLibraryMetadata();
    }
    return dart.nullCheck(dart._libraryObjects)[$_get](uri);
  };
  dart.getLibraries = function getLibraries() {
    if (dart._libraries == null) {
      dart._computeLibraryMetadata();
    }
    return dart.nullCheck(dart._libraries);
  };
  dart.getParts = function getParts(libraryUri) {
    let t0;
    if (libraryUri == null) dart.nullFailed(I[3], 222, 30, "libraryUri");
    if (dart._parts == null) {
      dart._computeLibraryMetadata();
    }
    t0 = dart.nullCheck(dart._parts)[$_get](libraryUri);
    return t0 == null ? T$.JSArrayOfString().of([]) : t0;
  };
  dart.polyfill = function polyfill(window) {
    if (window[dart._polyfilled]) return false;
    window[dart._polyfilled] = true;
    if (typeof window.NodeList !== "undefined") {
      window.NodeList.prototype.get = function(i) {
        return this[i];
      };
      window.NamedNodeMap.prototype.get = function(i) {
        return this[i];
      };
      window.DOMTokenList.prototype.get = function(i) {
        return this[i];
      };
      window.HTMLCollection.prototype.get = function(i) {
        return this[i];
      };
      if (typeof window.PannerNode == "undefined") {
        let audioContext;
        if (typeof window.AudioContext == "undefined" && typeof window.webkitAudioContext != "undefined") {
          audioContext = new window.webkitAudioContext();
        } else {
          audioContext = new window.AudioContext();
          window.StereoPannerNode = audioContext.createStereoPanner().constructor;
        }
        window.PannerNode = audioContext.createPanner().constructor;
      }
      if (typeof window.AudioSourceNode == "undefined") {
        window.AudioSourceNode = MediaElementAudioSourceNode.__proto__;
      }
      if (typeof window.FontFaceSet == "undefined") {
        if (typeof window.document.fonts != "undefined") {
          window.FontFaceSet = window.document.fonts.__proto__.constructor;
        }
      }
      if (typeof window.MemoryInfo == "undefined") {
        if (typeof window.performance.memory != "undefined") {
          window.MemoryInfo = function() {
          };
          window.MemoryInfo.prototype = window.performance.memory.__proto__;
        }
      }
      if (typeof window.Geolocation == "undefined") {
        window.Geolocation == window.navigator.geolocation.constructor;
      }
      if (typeof window.Animation == "undefined") {
        let d = window.document.createElement('div');
        if (typeof d.animate != "undefined") {
          window.Animation = d.animate(d).constructor;
        }
      }
      if (typeof window.SourceBufferList == "undefined") {
        if ('MediaSource' in window) {
          window.SourceBufferList = new window.MediaSource().sourceBuffers.constructor;
        }
      }
      if (typeof window.SpeechRecognition == "undefined") {
        window.SpeechRecognition = window.webkitSpeechRecognition;
        window.SpeechRecognitionError = window.webkitSpeechRecognitionError;
        window.SpeechRecognitionEvent = window.webkitSpeechRecognitionEvent;
      }
    }
    return true;
  };
  dart.trackProfile = function trackProfile(flag) {
    if (flag == null) dart.nullFailed(I[4], 141, 24, "flag");
    dart.__trackProfile = flag;
  };
  dart.setStartAsyncSynchronously = function setStartAsyncSynchronously(value = true) {
    if (value == null) dart.nullFailed(I[4], 166, 39, "value");
    dart.startAsyncSynchronously = value;
  };
  dart.hotRestart = function hotRestart() {
    dart.hotRestartIteration = dart.notNull(dart.hotRestartIteration) + 1;
    for (let f of dart._resetFields)
      f();
    dart._resetFields[$clear]();
    for (let m of dart._cacheMaps)
      m.clear();
    dart._cacheMaps[$clear]();
    dart._nullComparisonSet.clear();
    dart.constantMaps.clear();
    dart.deferredImports.clear();
  };
  dart._throwInvalidFlagError = function _throwInvalidFlagError(message) {
    if (message == null) dart.nullFailed(I[5], 15, 31, "message");
    return dart.throw(new core.UnsupportedError.new("Invalid flag combination.\n" + dart.str(message)));
  };
  dart.weakNullSafetyWarnings = function weakNullSafetyWarnings(showWarnings) {
    if (showWarnings == null) dart.nullFailed(I[5], 25, 34, "showWarnings");
    if (dart.test(showWarnings) && false) {
      dart._throwInvalidFlagError("Null safety violations cannot be shown as warnings when running with " + "sound null safety.");
    }
    dart._weakNullSafetyWarnings = showWarnings;
  };
  dart.weakNullSafetyErrors = function weakNullSafetyErrors(showErrors) {
    if (showErrors == null) dart.nullFailed(I[5], 42, 32, "showErrors");
    if (dart.test(showErrors) && false) {
      dart._throwInvalidFlagError("Null safety violations are already thrown as errors when running with " + "sound null safety.");
    }
    if (dart.test(showErrors) && dart._weakNullSafetyWarnings) {
      dart._throwInvalidFlagError("Null safety violations can be shown as warnings or thrown as errors, " + "not both.");
    }
    dart._weakNullSafetyErrors = showErrors;
  };
  dart.nonNullAsserts = function nonNullAsserts(enable) {
    if (enable == null) dart.nullFailed(I[5], 66, 26, "enable");
    dart._nonNullAsserts = enable;
  };
  dart.nativeNonNullAsserts = function nativeNonNullAsserts(enable) {
    if (enable == null) dart.nullFailed(I[5], 78, 32, "enable");
    dart._nativeNonNullAsserts = enable;
  };
  dart._isJsObject = function _isJsObject(obj) {
    return dart.getReifiedType(obj) === dart.jsobject;
  };
  dart.assertInterop = function assertInterop(f) {
    if (f == null) dart.nullFailed(I[5], 164, 39, "f");
    if (!(dart._isJsObject(f) || !(f instanceof dart.global.Function))) dart.assertFailed("Dart function requires `allowInterop` to be passed to JavaScript.", I[5], 166, 7, "_isJsObject(f) ||\n          !JS<bool>('bool', '# instanceof #.Function', f, global_)");
    return f;
  };
  dart.isDartFunction = function isDartFunction(obj) {
    return obj instanceof Function && obj[dart._runtimeType] != null;
  };
  dart.tearoffInterop = function tearoffInterop(f) {
    if (!dart._isJsObject(f) || f == null) return f;
    let ret = dart._assertInteropExpando._get(f);
    if (ret == null) {
      ret = function(...arguments$) {
        var args = arguments$.map(dart.assertInterop);
        return f.apply(this, args);
      };
      dart._assertInteropExpando._set(f, ret);
    }
    return ret;
  };
  dart._warn = function _warn(arg) {
    console.warn(arg);
  };
  dart._nullWarn = function _nullWarn(message) {
    if (dart._weakNullSafetyWarnings) {
      dart._warn(dart.str(message) + "\n" + "This will become a failure when runtime null safety is enabled.");
    } else if (dart._weakNullSafetyErrors) {
      dart.throw(new _js_helper.TypeErrorImpl.new(core.String.as(message)));
    }
  };
  dart._nullWarnOnType = function _nullWarnOnType(type) {
    let result = dart._nullComparisonSet.has(type);
    if (!dart.test(result)) {
      dart._nullComparisonSet.add(type);
      dart._nullWarn("Null is not a subtype of " + dart.str(type) + ".");
    }
  };
  dart.lazyJSType = function lazyJSType(getJSTypeCallback, name) {
    if (getJSTypeCallback == null) dart.nullFailed(I[5], 304, 23, "getJSTypeCallback");
    if (name == null) dart.nullFailed(I[5], 304, 49, "name");
    let ret = dart._lazyJSTypes.get(name);
    if (ret == null) {
      ret = new dart.LazyJSType.new(getJSTypeCallback, name);
      dart._lazyJSTypes.set(name, ret);
    }
    return ret;
  };
  dart.anonymousJSType = function anonymousJSType(name) {
    if (name == null) dart.nullFailed(I[5], 313, 24, "name");
    let ret = dart._anonymousJSTypes.get(name);
    if (ret == null) {
      ret = new dart.AnonymousJSType.new(name);
      dart._anonymousJSTypes.set(name, ret);
    }
    return ret;
  };
  dart.nullable = function nullable(type) {
    let cached = type[dart._cachedNullable];
    if (cached !== void 0) {
      return cached;
    }
    let cachedType = dart._computeNullable(type);
    type[dart._cachedNullable] = cachedType;
    return cachedType;
  };
  dart._computeNullable = function _computeNullable(type) {
    if (type instanceof dart.LegacyType) {
      return dart.nullable(type.type);
    }
    if (type instanceof dart.NullableType || dart._isTop(type) || type === core.Null || dart._isFutureOr(type) && dart.getGenericArgs(type)[0] instanceof dart.NullableType) {
      return type;
    }
    if (type === dart.Never) return core.Null;
    return new dart.NullableType.new(type);
  };
  dart.legacy = function legacy(type) {
    let cached = type[dart._cachedLegacy];
    if (cached !== void 0) {
      return cached;
    }
    let cachedType = dart._computeLegacy(type);
    type[dart._cachedLegacy] = cachedType;
    return cachedType;
  };
  dart._computeLegacy = function _computeLegacy(type) {
    if (type instanceof dart.LegacyType || type instanceof dart.NullableType || dart._isTop(type) || type === core.Null) {
      return type;
    }
    return new dart.LegacyType.new(type);
  };
  dart.wrapType = function wrapType(type, isNormalized = false) {
    if (type.hasOwnProperty(dart._typeObject)) {
      return type[dart._typeObject];
    }
    let result = isNormalized ? new dart._Type.new(core.Object.as(type)) : type instanceof dart.LegacyType ? dart.wrapType(type.type) : dart._canonicalizeNormalizedTypeObject(type);
    type[dart._typeObject] = result;
    return result;
  };
  dart._canonicalizeNormalizedTypeObject = function _canonicalizeNormalizedTypeObject(type) {
    if (!!(type instanceof dart.LegacyType)) dart.assertFailed(null, I[5], 528, 10, "!_jsInstanceOf(type, LegacyType)");
    function normalizeHelper(a) {
      return dart.unwrapType(dart.wrapType(a));
    }
    if (type instanceof dart.GenericFunctionTypeIdentifier) {
      return dart.wrapType(type, true);
    }
    if (type instanceof dart.FunctionType) {
      let normReturnType = normalizeHelper(dart.dload(type, 'returnType'));
      let normArgs = dart.dsend(dart.dsend(dart.dload(type, 'args'), 'map', [normalizeHelper]), 'toList', []);
      if (dart.global.Object.keys(dart.dload(type, 'named')).length === 0 && dart.global.Object.keys(dart.dload(type, 'requiredNamed')).length === 0) {
        if (dart.dtest(dart.dload(dart.dload(type, 'optionals'), 'isEmpty'))) {
          let normType = dart.fnType(normReturnType, core.List.as(normArgs));
          return dart.wrapType(normType, true);
        }
        let normOptionals = dart.dsend(dart.dsend(dart.dload(type, 'optionals'), 'map', [normalizeHelper]), 'toList', []);
        let normType = dart.fnType(normReturnType, core.List.as(normArgs), normOptionals);
        return dart.wrapType(normType, true);
      }
      let normNamed = {};
      dart._transformJSObject(dart.dload(type, 'named'), normNamed, normalizeHelper);
      let normRequiredNamed = {};
      dart._transformJSObject(dart.dload(type, 'requiredNamed'), normRequiredNamed, normalizeHelper);
      let normType = dart.fnType(normReturnType, core.List.as(normArgs), normNamed, normRequiredNamed);
      return dart.wrapType(normType, true);
    }
    if (type instanceof dart.GenericFunctionType) {
      let formals = dart._getCanonicalTypeFormals(core.int.as(dart.dload(dart.dload(type, 'typeFormals'), 'length')));
      let normBounds = core.List.as(dart.dsend(dart.dsend(dart.dsend(type, 'instantiateTypeBounds', [formals]), 'map', [normalizeHelper]), 'toList', []));
      let substitutedTypes = [];
      if (dart.test(normBounds[$contains](dart.Never))) {
        for (let i = 0; i < dart.notNull(formals[$length]); i = i + 1) {
          let substitutedType = normBounds[$_get](i);
          while (dart.test(formals[$contains](substitutedType))) {
            substitutedType = normBounds[$_get](formals[$indexOf](dart.TypeVariable.as(substitutedType)));
          }
          if (dart.equals(substitutedType, dart.Never)) {
            substitutedTypes[$add](dart.Never);
          } else {
            substitutedTypes[$add](formals[$_get](i));
          }
        }
      } else {
        substitutedTypes = formals;
      }
      let normFunc = dart.FunctionType.as(normalizeHelper(dart.dsend(type, 'instantiate', [substitutedTypes])));
      let typeObjectIdKey = [];
      typeObjectIdKey.push(...normBounds);
      typeObjectIdKey.push(normFunc);
      let memoizedId = dart._memoizeArray(dart._gFnTypeTypeMap, typeObjectIdKey, () => new dart.GenericFunctionTypeIdentifier.new(formals, normBounds, normFunc));
      return dart.wrapType(memoizedId, true);
    }
    let args = dart.getGenericArgs(type);
    let normType = null;
    if (args == null || dart.test(args[$isEmpty])) {
      normType = type;
    } else {
      let genericClass = dart.getGenericClass(type);
      let normArgs = args[$map](core.Object, normalizeHelper)[$toList]();
      normType = genericClass(...normArgs);
    }
    return dart.wrapType(normType, true);
  };
  dart._transformJSObject = function _transformJSObject(srcObject, dstObject, transform) {
    if (transform == null) dart.nullFailed(I[5], 610, 56, "transform");
    for (let key of dart.global.Object.keys(srcObject)) {
      dstObject[key] = dart.dcall(transform, [srcObject[key]]);
    }
  };
  dart.unwrapType = function unwrapType(obj) {
    if (obj == null) dart.nullFailed(I[5], 621, 24, "obj");
    return obj[_type$];
  };
  dart._getCanonicalTypeFormals = function _getCanonicalTypeFormals(count) {
    if (count == null) dart.nullFailed(I[5], 666, 49, "count");
    while (dart.notNull(count) > dart.notNull(dart._typeVariablePool[$length])) {
      dart._fillTypeVariable();
    }
    return dart._typeVariablePool[$sublist](0, count);
  };
  dart._fillTypeVariable = function _fillTypeVariable() {
    if (dart.notNull(dart._typeVariablePool[$length]) < 26) {
      dart._typeVariablePool[$add](new dart.TypeVariable.new(core.String.fromCharCode(65 + dart.notNull(dart._typeVariablePool[$length]))));
    } else {
      dart._typeVariablePool[$add](new dart.TypeVariable.new("T" + dart.str(dart.notNull(dart._typeVariablePool[$length]) - 26)));
    }
  };
  dart._memoizeArray = function _memoizeArray(map, arr, create) {
    if (create == null) dart.nullFailed(I[5], 688, 32, "create");
    return (() => {
      let len = arr.length;
      map = dart._lookupNonTerminal(map, len);
      for (var i = 0; i < len - 1; ++i) {
        map = dart._lookupNonTerminal(map, arr[i]);
      }
      let result = map.get(arr[len - 1]);
      if (result !== void 0) return result;
      map.set(arr[len - 1], result = create());
      return result;
    })();
  };
  dart._canonicalizeArray = function _canonicalizeArray(array, map) {
    if (array == null) dart.nullFailed(I[5], 700, 30, "array");
    return dart._memoizeArray(map, array, () => array);
  };
  dart._canonicalizeNamed = function _canonicalizeNamed(named, map) {
    let key = [];
    let names = dart.getOwnPropertyNames(named);
    for (var i = 0; i < names.length; ++i) {
      let name = names[i];
      let type = named[name];
      key.push(name);
      key.push(type);
    }
    return dart._memoizeArray(map, key, () => named);
  };
  dart._createSmall = function _createSmall(returnType, required) {
    if (required == null) dart.nullFailed(I[5], 720, 44, "required");
    return (() => {
      let count = required.length;
      let map = dart._fnTypeSmallMap[count];
      for (var i = 0; i < count; ++i) {
        map = dart._lookupNonTerminal(map, required[i]);
      }
      let result = map.get(returnType);
      if (result !== void 0) return result;
      result = new dart.FunctionType.new(core.Type.as(returnType), required, [], {}, {});
      map.set(returnType, result);
      return result;
    })();
  };
  dart._typeFormalsFromFunction = function _typeFormalsFromFunction(typeConstructor) {
    let str = typeConstructor.toString();
    let hasParens = str[$_get](0) === "(";
    let end = str[$indexOf](hasParens ? ")" : "=>");
    if (hasParens) {
      return str[$substring](1, end)[$split](",")[$map](dart.TypeVariable, n => {
        if (n == null) dart.nullFailed(I[5], 1152, 15, "n");
        return new dart.TypeVariable.new(n[$trim]());
      })[$toList]();
    } else {
      return T$.JSArrayOfTypeVariable().of([new dart.TypeVariable.new(str[$substring](0, end)[$trim]())]);
    }
  };
  dart.fnType = function fnType(returnType, args, optional = null, requiredNamed = null) {
    if (args == null) dart.nullFailed(I[5], 1160, 38, "args");
    return dart.FunctionType.create(returnType, args, optional, requiredNamed);
  };
  dart.gFnType = function gFnType(instantiateFn, typeBounds) {
    return new dart.GenericFunctionType.new(instantiateFn, typeBounds);
  };
  dart.isType = function isType(obj) {
    return obj[dart._runtimeType] === core.Type;
  };
  dart.checkTypeBound = function checkTypeBound(type, bound, name) {
    if (!dart.isSubtypeOf(type, bound)) {
      dart.throwTypeError("type `" + dart.str(type) + "` does not extend `" + dart.str(bound) + "` of `" + name + "`.");
    }
  };
  dart.typeName = function typeName(type) {
    if (type === void 0) return "undefined type";
    if (type === null) return "null type";
    if (type instanceof dart.DartType) {
      return type.toString();
    }
    let tag = type[dart._runtimeType];
    if (tag === core.Type) {
      let name = type.name;
      let args = dart.getGenericArgs(type);
      if (args == null) return name;
      if (dart.getGenericClass(type) == _interceptors.JSArray$) name = 'List';
      let result = name;
      result += '<';
      for (let i = 0; i < args.length; ++i) {
        if (i > 0) result += ', ';
        result += dart.typeName(args[i]);
      }
      result += '>';
      return result;
    }
    if (tag) return "Not a type: " + tag.name;
    return "JSObject<" + type.name + ">";
  };
  dart._isFunctionSubtype = function _isFunctionSubtype(ft1, ft2, strictMode) {
    let ret1 = ft1.returnType;
    let ret2 = ft2.returnType;
    let args1 = ft1.args;
    let args2 = ft2.args;
    if (args1.length > args2.length) {
      return false;
    }
    for (let i = 0; i < args1.length; ++i) {
      if (!dart._isSubtype(args2[i], args1[i], strictMode)) {
        return false;
      }
    }
    let optionals1 = ft1.optionals;
    let optionals2 = ft2.optionals;
    if (args1.length + optionals1.length < args2.length + optionals2.length) {
      return false;
    }
    let j = 0;
    for (let i = args1.length; i < args2.length; ++i, ++j) {
      if (!dart._isSubtype(args2[i], optionals1[j], strictMode)) {
        return false;
      }
    }
    for (let i = 0; i < optionals2.length; ++i, ++j) {
      if (!dart._isSubtype(optionals2[i], optionals1[j], strictMode)) {
        return false;
      }
    }
    let named1 = ft1.named;
    let requiredNamed1 = ft1.requiredNamed;
    let named2 = ft2.named;
    let requiredNamed2 = ft2.requiredNamed;
    if (!strictMode) {
      named1 = Object.assign({}, named1, requiredNamed1);
      named2 = Object.assign({}, named2, requiredNamed2);
      requiredNamed1 = {};
      requiredNamed2 = {};
    }
    let names = dart.getOwnPropertyNames(requiredNamed1);
    for (let i = 0; i < names.length; ++i) {
      let name = names[i];
      let n2 = requiredNamed2[name];
      if (n2 === void 0) {
        return false;
      }
    }
    names = dart.getOwnPropertyNames(named2);
    for (let i = 0; i < names.length; ++i) {
      let name = names[i];
      let n1 = named1[name];
      let n2 = named2[name];
      if (n1 === void 0) {
        return false;
      }
      if (!dart._isSubtype(n2, n1, strictMode)) {
        return false;
      }
    }
    names = dart.getOwnPropertyNames(requiredNamed2);
    for (let i = 0; i < names.length; ++i) {
      let name = names[i];
      let n1 = named1[name] || requiredNamed1[name];
      let n2 = requiredNamed2[name];
      if (n1 === void 0) {
        return false;
      }
      if (!dart._isSubtype(n2, n1, strictMode)) {
        return false;
      }
    }
    return dart._isSubtype(ret1, ret2, strictMode);
  };
  dart.isSubtypeOf = function isSubtypeOf(t1, t2) {
    let map = t1[dart._subtypeCache];
    let result = map.get(t2);
    if (result !== void 0) return result;
    let validSubtype = dart._isSubtype(t1, t2, true);
    if (!validSubtype && !false) {
      validSubtype = dart._isSubtype(t1, t2, false);
      if (validSubtype) {
        dart._nullWarn(dart.str(t1) + " is not a subtype of " + dart.str(t2) + ".");
      }
    }
    map.set(t2, validSubtype);
    return validSubtype;
  };
  dart._isBottom = function _isBottom(type, strictMode) {
    return type === dart.Never || !strictMode && type === core.Null;
  };
  dart._isTop = function _isTop(type) {
    if (type instanceof dart.NullableType) return type.type === core.Object;
    return type === dart.dynamic || type === dart.void;
  };
  dart._isFutureOr = function _isFutureOr(type) {
    let genericClass = dart.getGenericClass(type);
    return genericClass && genericClass === async.FutureOr$;
  };
  dart._isSubtype = function _isSubtype(t1, t2, strictMode) {
    if (!strictMode) {
      if (t1 instanceof dart.NullableType) {
        t1 = t1.type;
      }
      if (t2 instanceof dart.NullableType) {
        t2 = t2.type;
      }
    }
    if (t1 === t2) {
      return true;
    }
    if (dart._isTop(t2) || dart._isBottom(t1, strictMode)) {
      return true;
    }
    if (t1 === dart.dynamic || t1 === dart.void) {
      return dart._isSubtype(dart.nullable(core.Object), t2, strictMode);
    }
    if (t2 === core.Object) {
      if (dart._isFutureOr(t1)) {
        let t1TypeArg = dart.getGenericArgs(t1)[0];
        return dart._isSubtype(t1TypeArg, core.Object, strictMode);
      }
      if (t1 instanceof dart.LegacyType) {
        return dart._isSubtype(t1.type, t2, strictMode);
      }
      if (t1 === core.Null || t1 instanceof dart.NullableType) {
        return false;
      }
      return true;
    }
    if (t1 === core.Null) {
      if (dart._isFutureOr(t2)) {
        let t2TypeArg = dart.getGenericArgs(t2)[0];
        return dart._isSubtype(core.Null, t2TypeArg, strictMode);
      }
      return t2 === core.Null || t2 instanceof dart.LegacyType || t2 instanceof dart.NullableType;
    }
    if (t1 instanceof dart.LegacyType) {
      return dart._isSubtype(t1.type, t2, strictMode);
    }
    if (t2 instanceof dart.LegacyType) {
      return dart._isSubtype(t1, dart.nullable(t2.type), strictMode);
    }
    if (dart._isFutureOr(t1)) {
      let t1TypeArg = dart.getGenericArgs(t1)[0];
      if (dart._isFutureOr(t2)) {
        let t2TypeArg = dart.getGenericArgs(t2)[0];
        if (dart._isSubtype(t1TypeArg, t2TypeArg, strictMode)) {
          return true;
        }
      }
      let t1Future = async.Future$(t1TypeArg);
      return dart._isSubtype(t1Future, t2, strictMode) && dart._isSubtype(t1TypeArg, t2, strictMode);
    }
    if (t1 instanceof dart.NullableType) {
      return dart._isSubtype(t1.type, t2, strictMode) && dart._isSubtype(core.Null, t2, strictMode);
    }
    if (dart._isFutureOr(t2)) {
      let t2TypeArg = dart.getGenericArgs(t2)[0];
      let t2Future = async.Future$(t2TypeArg);
      return dart._isSubtype(t1, t2Future, strictMode) || dart._isSubtype(t1, t2TypeArg, strictMode);
    }
    if (t2 instanceof dart.NullableType) {
      return dart._isSubtype(t1, t2.type, strictMode) || dart._isSubtype(t1, core.Null, strictMode);
    }
    if (!(t2 instanceof dart.AbstractFunctionType)) {
      if (t1 instanceof dart.AbstractFunctionType) {
        return t2 === core.Function;
      }
      if (t1 === dart.jsobject && t2 instanceof dart.AnonymousJSType) {
        return true;
      }
      return dart._isInterfaceSubtype(t1, t2, strictMode);
    }
    if (!(t1 instanceof dart.AbstractFunctionType)) {
      return false;
    }
    if (t1 instanceof dart.GenericFunctionType) {
      if (!(t2 instanceof dart.GenericFunctionType)) {
        return false;
      }
      let formalCount = t1.formalCount;
      if (formalCount !== t2.formalCount) {
        return false;
      }
      let fresh = t2.typeFormals;
      if (t1.hasTypeBounds || t2.hasTypeBounds) {
        let t1Bounds = t1.instantiateTypeBounds(fresh);
        let t2Bounds = t2.instantiateTypeBounds(fresh);
        for (let i = 0; i < formalCount; i++) {
          if (t1Bounds[i] != t2Bounds[i]) {
            if (!(dart._isSubtype(t1Bounds[i], t2Bounds[i], strictMode) && dart._isSubtype(t2Bounds[i], t1Bounds[i], strictMode))) {
              return false;
            }
          }
        }
      }
      t1 = t1.instantiate(fresh);
      t2 = t2.instantiate(fresh);
    } else if (t2 instanceof dart.GenericFunctionType) {
      return false;
    }
    return dart._isFunctionSubtype(t1, t2, strictMode);
  };
  dart._isInterfaceSubtype = function _isInterfaceSubtype(t1, t2, strictMode) {
    if (t1 instanceof dart.LazyJSType) t1 = t1.rawJSTypeForCheck();
    if (t2 instanceof dart.LazyJSType) t2 = t2.rawJSTypeForCheck();
    if (t1 === t2) {
      return true;
    }
    if (t1 === core.Object) {
      return false;
    }
    if (t1 === core.Function || t2 === core.Function) {
      return false;
    }
    if (t1 == null) {
      return t2 === core.Object || t2 === dart.dynamic;
    }
    let raw1 = dart.getGenericClass(t1);
    let raw2 = dart.getGenericClass(t2);
    if (raw1 != null && raw1 == raw2) {
      let typeArguments1 = dart.getGenericArgs(t1);
      let typeArguments2 = dart.getGenericArgs(t2);
      if (typeArguments1.length != typeArguments2.length) {
        dart.assertFailed();
      }
      let variances = dart.getGenericArgVariances(t1);
      for (let i = 0; i < typeArguments1.length; ++i) {
        if (variances === void 0 || variances[i] == 1) {
          if (!dart._isSubtype(typeArguments1[i], typeArguments2[i], strictMode)) {
            return false;
          }
        } else if (variances[i] == 2) {
          if (!dart._isSubtype(typeArguments2[i], typeArguments1[i], strictMode)) {
            return false;
          }
        } else if (variances[i] == 3) {
          if (!dart._isSubtype(typeArguments1[i], typeArguments2[i], strictMode) || !dart._isSubtype(typeArguments2[i], typeArguments1[i], strictMode)) {
            return false;
          }
        }
      }
      return true;
    }
    if (dart._isInterfaceSubtype(t1.__proto__, t2, strictMode)) {
      return true;
    }
    let m1 = dart.getMixin(t1);
    if (m1 != null && dart._isInterfaceSubtype(m1, t2, strictMode)) {
      return true;
    }
    let getInterfaces = dart.getImplements(t1);
    if (getInterfaces) {
      for (let i1 of getInterfaces()) {
        if (dart._isInterfaceSubtype(i1, t2, strictMode)) {
          return true;
        }
      }
    }
    return false;
  };
  dart.extractTypeArguments = function extractTypeArguments(T, instance, f) {
    if (f == null) dart.nullFailed(I[5], 1666, 54, "f");
    if (instance == null) {
      dart.throw(new core.ArgumentError.new("Cannot extract type of null instance."));
    }
    let type = T;
    type = type.type || type;
    if (dart.AbstractFunctionType.is(type) || dart._isFutureOr(type)) {
      dart.throw(new core.ArgumentError.new("Cannot extract from non-class type (" + dart.str(type) + ")."));
    }
    let typeArguments = dart.getGenericArgs(type);
    if (dart.test(dart.nullCheck(typeArguments)[$isEmpty])) {
      dart.throw(new core.ArgumentError.new("Cannot extract from non-generic type (" + dart.str(type) + ")."));
    }
    let supertype = dart._getMatchingSupertype(dart.getReifiedType(instance), type);
    if (!(supertype != null)) dart.assertFailed(null, I[5], 1684, 10, "supertype != null");
    let typeArgs = dart.getGenericArgs(supertype);
    if (!(typeArgs != null && dart.test(typeArgs[$isNotEmpty]))) dart.assertFailed(null, I[5], 1686, 10, "typeArgs != null && typeArgs.isNotEmpty");
    return dart.dgcall(f, typeArgs, []);
  };
  dart._getMatchingSupertype = function _getMatchingSupertype(subtype, supertype) {
    if (supertype == null) dart.nullFailed(I[5], 2047, 55, "supertype");
    if (core.identical(subtype, supertype)) return supertype;
    if (subtype == null || subtype === core.Object) return null;
    let subclass = dart.getGenericClass(subtype);
    let superclass = dart.getGenericClass(supertype);
    if (subclass != null && core.identical(subclass, superclass)) {
      return subtype;
    }
    let result = dart._getMatchingSupertype(subtype.__proto__, supertype);
    if (result != null) return result;
    let mixin = dart.getMixin(subtype);
    if (mixin != null) {
      result = dart._getMatchingSupertype(mixin, supertype);
      if (result != null) return result;
    }
    let getInterfaces = dart.getImplements(subtype);
    if (getInterfaces != null) {
      for (let iface of getInterfaces()) {
        result = dart._getMatchingSupertype(iface, supertype);
        if (result != null) return result;
      }
    }
    return null;
  };
  dart.defineValue = function defineValue(obj, name, value) {
    dart.defineAccessor(obj, name, {value: value, configurable: true, writable: true});
    return value;
  };
  dart.throwTypeError = function throwTypeError(message) {
    if (message == null) dart.nullFailed(I[6], 39, 28, "message");
    dart.throw(new _js_helper.TypeErrorImpl.new(message));
  };
  dart.throwInternalError = function throwInternalError(message) {
    if (message == null) dart.nullFailed(I[6], 44, 32, "message");
    throw Error(message);
  };
  dart.getOwnNamesAndSymbols = function getOwnNamesAndSymbols(obj) {
    let names = dart.getOwnPropertyNames(obj);
    let symbols = dart.getOwnPropertySymbols(obj);
    return names.concat(symbols);
  };
  dart.safeGetOwnProperty = function safeGetOwnProperty(obj, name) {
    if (obj.hasOwnProperty(name)) return obj[name];
  };
  dart.copyTheseProperties = function copyTheseProperties(to, from, names) {
    for (let i = 0, n = names.length; i < n; i = i + 1) {
      let name = names[i];
      if (dart.equals(name, "constructor")) continue;
      dart.copyProperty(to, from, name);
    }
    return to;
  };
  dart.copyProperty = function copyProperty(to, from, name) {
    let desc = dart.getOwnPropertyDescriptor(from, name);
    if (name == Symbol.iterator) {
      let existing = dart.getOwnPropertyDescriptor(to, name);
      if (existing != null) {
        if (existing.writable) {
          to[name] = desc.value;
        }
        return;
      }
    }
    dart.defineProperty(to, name, desc);
  };
  dart.export = function exportProperty(to, from, name) {
    return dart.copyProperty(to, from, name);
  };
  dart.copyProperties = function copyProperties(to, from) {
    return dart.copyTheseProperties(to, from, dart.getOwnNamesAndSymbols(from));
  };
  dart._polyfilled = Symbol("_polyfilled");
  dart.global = (function() {
    var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : null;
    if (!globalState) {
      globalState = new Function('return this;')();
    }
    dart.polyfill(globalState);
    if (globalState.Error) {
      globalState.Error.stackTraceLimit = Infinity;
    }
    let settings = 'ddcSettings' in globalState ? globalState.ddcSettings : {};
    dart.trackProfile('trackProfile' in settings ? settings.trackProfile : false);
    return globalState;
  })();
  dart.JsSymbol = Symbol;
  dart.libraryPrototype = dart.library;
  dart.startAsyncSynchronously = true;
  dart._cacheMaps = [];
  dart._resetFields = [];
  dart.hotRestartIteration = 0;
  dart.addAsyncCallback = function() {
  };
  dart.removeAsyncCallback = function() {
  };
  dart.defineProperty = Object.defineProperty;
  dart.defineAccessor = Object.defineProperty;
  dart.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  dart.getOwnPropertyNames = Object.getOwnPropertyNames;
  dart.getOwnPropertySymbols = Object.getOwnPropertySymbols;
  dart.getPrototypeOf = Object.getPrototypeOf;
  dart._mixin = Symbol("mixin");
  dart.mixinOn = Symbol("mixinOn");
  dart.implements = Symbol("implements");
  dart._typeArguments = Symbol("typeArguments");
  dart._variances = Symbol("variances");
  dart._originalDeclaration = Symbol("originalDeclaration");
  dart.mixinNew = Symbol("dart.mixinNew");
  dart._constructorSig = Symbol("sigCtor");
  dart._methodSig = Symbol("sigMethod");
  dart._fieldSig = Symbol("sigField");
  dart._getterSig = Symbol("sigGetter");
  dart._setterSig = Symbol("sigSetter");
  dart._staticMethodSig = Symbol("sigStaticMethod");
  dart._staticFieldSig = Symbol("sigStaticField");
  dart._staticGetterSig = Symbol("sigStaticGetter");
  dart._staticSetterSig = Symbol("sigStaticSetter");
  dart._genericTypeCtor = Symbol("genericType");
  dart._libraryUri = Symbol("libraryUri");
  dart._extensionType = Symbol("extensionType");
  dart.dartx = dartx;
  dart._extensionMap = new Map();
  dart.isFuture = Symbol("_is_Future");
  dart.isIterable = Symbol("_is_Iterable");
  dart.isList = Symbol("_is_List");
  dart.isMap = Symbol("_is_Map");
  dart.isStream = Symbol("_is_Stream");
  dart.isStreamSubscription = Symbol("_is_StreamSubscription");
  dart.identityEquals = null;
  dart._runtimeType = Symbol("_runtimeType");
  dart._moduleName = Symbol("_moduleName");
  dart._loadedModules = new Map();
  dart._loadedPartMaps = new Map();
  dart._loadedSourceMaps = new Map();
  dart._libraries = null;
  dart._libraryObjects = null;
  dart._parts = null;
  dart._weakNullSafetyWarnings = false;
  dart._weakNullSafetyErrors = false;
  dart._nonNullAsserts = false;
  dart._nativeNonNullAsserts = false;
  dart.metadata = Symbol("metadata");
  dart._nullComparisonSet = new Set();
  dart._lazyJSTypes = new Map();
  dart._anonymousJSTypes = new Map();
  dart._cachedNullable = Symbol("cachedNullable");
  dart._cachedLegacy = Symbol("cachedLegacy");
  dart._subtypeCache = Symbol("_subtypeCache");
  core.Object = class Object {
    constructor() {
      throw Error("use `new " + dart.typeName(dart.getReifiedType(this)) + ".new(...)` to create a Dart object");
    }
    static is(o) {
      return o != null;
    }
    static as(o) {
      return o == null ? dart.as(o, core.Object) : o;
    }
    _equals(other) {
      if (other == null) return false;
      return this === other;
    }
    get hashCode() {
      return core.identityHashCode(this);
    }
    toString() {
      return "Instance of '" + dart.typeName(dart.getReifiedType(this)) + "'";
    }
    noSuchMethod(invocation) {
      if (invocation == null) dart.nullFailed(I[7], 60, 35, "invocation");
      return dart.defaultNoSuchMethod(this, invocation);
    }
    get runtimeType() {
      return dart.wrapType(dart.getReifiedType(this));
    }
  };
  (core.Object.new = function() {
    ;
  }).prototype = core.Object.prototype;
  dart.addTypeCaches(core.Object);
  dart.setMethodSignature(core.Object, () => ({
    __proto__: Object.create(null),
    _equals: dart.fnType(core.bool, [core.Object]),
    [$_equals]: dart.fnType(core.bool, [core.Object]),
    toString: dart.fnType(core.String, []),
    [$toString]: dart.fnType(core.String, []),
    noSuchMethod: dart.fnType(dart.dynamic, [core.Invocation]),
    [$noSuchMethod]: dart.fnType(dart.dynamic, [core.Invocation])
  }));
  dart.setGetterSignature(core.Object, () => ({
    __proto__: Object.create(null),
    hashCode: core.int,
    [$hashCode]: core.int,
    runtimeType: core.Type,
    [$runtimeType]: core.Type
  }));
  dart.setLibraryUri(core.Object, I[8]);
  dart.lazyFn(core.Object, () => core.Type);
  dart.defineExtensionMethods(core.Object, ['_equals', 'toString', 'noSuchMethod']);
  dart.defineExtensionAccessors(core.Object, ['hashCode', 'runtimeType']);
  dart.registerExtension("Object", core.Object);
  dart.DartType = class DartType extends core.Object {
    get name() {
      return this[$toString]();
    }
    is(object) {
      return dart.is(object, this);
    }
    as(object) {
      return dart.as(object, this);
    }
  };
  (dart.DartType.new = function() {
    dart.addTypeCaches(this);
  }).prototype = dart.DartType.prototype;
  dart.addTypeTests(dart.DartType);
  dart.addTypeCaches(dart.DartType);
  dart.DartType[dart.implements] = () => [core.Type];
  dart.setMethodSignature(dart.DartType, () => ({
    __proto__: dart.getMethods(dart.DartType.__proto__),
    is: dart.fnType(core.bool, [dart.dynamic]),
    as: dart.fnType(dart.dynamic, [dart.dynamic])
  }));
  dart.setGetterSignature(dart.DartType, () => ({
    __proto__: dart.getGetters(dart.DartType.__proto__),
    name: core.String
  }));
  dart.setLibraryUri(dart.DartType, I[9]);
  dart.NeverType = class NeverType extends dart.DartType {
    toString() {
      return "Never";
    }
  };
  (dart.NeverType.new = function() {
    dart.NeverType.__proto__.new.call(this);
    ;
  }).prototype = dart.NeverType.prototype;
  dart.addTypeTests(dart.NeverType);
  dart.addTypeCaches(dart.NeverType);
  dart.setLibraryUri(dart.NeverType, I[9]);
  dart.defineExtensionMethods(dart.NeverType, ['toString']);
  dart.Never = new dart.NeverType.new();
  dart.DynamicType = class DynamicType extends dart.DartType {
    toString() {
      return "dynamic";
    }
    is(object) {
      return true;
    }
    as(object) {
      return object;
    }
  };
  (dart.DynamicType.new = function() {
    dart.DynamicType.__proto__.new.call(this);
    ;
  }).prototype = dart.DynamicType.prototype;
  dart.addTypeTests(dart.DynamicType);
  dart.addTypeCaches(dart.DynamicType);
  dart.setMethodSignature(dart.DynamicType, () => ({
    __proto__: dart.getMethods(dart.DynamicType.__proto__),
    as: dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(dart.DynamicType, I[9]);
  dart.defineExtensionMethods(dart.DynamicType, ['toString']);
  dart.dynamic = new dart.DynamicType.new();
  dart.VoidType = class VoidType extends dart.DartType {
    toString() {
      return "void";
    }
    is(object) {
      return true;
    }
    as(object) {
      return object;
    }
  };
  (dart.VoidType.new = function() {
    dart.VoidType.__proto__.new.call(this);
    ;
  }).prototype = dart.VoidType.prototype;
  dart.addTypeTests(dart.VoidType);
  dart.addTypeCaches(dart.VoidType);
  dart.setMethodSignature(dart.VoidType, () => ({
    __proto__: dart.getMethods(dart.VoidType.__proto__),
    as: dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(dart.VoidType, I[9]);
  dart.defineExtensionMethods(dart.VoidType, ['toString']);
  dart.void = new dart.VoidType.new();
  dart.JSObjectType = class JSObjectType extends dart.DartType {
    toString() {
      return "NativeJavaScriptObject";
    }
  };
  (dart.JSObjectType.new = function() {
    dart.JSObjectType.__proto__.new.call(this);
    ;
  }).prototype = dart.JSObjectType.prototype;
  dart.addTypeTests(dart.JSObjectType);
  dart.addTypeCaches(dart.JSObjectType);
  dart.setLibraryUri(dart.JSObjectType, I[9]);
  dart.defineExtensionMethods(dart.JSObjectType, ['toString']);
  dart.jsobject = new dart.JSObjectType.new();
  dart._typeObject = Symbol("typeObject");
  dart._fnTypeNamedArgMap = new Map();
  dart._fnTypeArrayArgMap = new Map();
  dart._fnTypeTypeMap = new Map();
  dart._fnTypeSmallMap = [new Map(), new Map(), new Map()];
  dart._gFnTypeTypeMap = new Map();
  dart._nullFailedSet = new Set();
  dart._thrownValue = Symbol("_thrownValue");
  dart._jsError = Symbol("_jsError");
  dart._stackTrace = Symbol("_stackTrace");
  dart.DartError = class DartError extends Error {
    constructor(error) {
      super();
      if (error == null) error = new core.NullThrownError.new();
      this[dart._thrownValue] = error;
      if (error != null && typeof error == "object" && error[dart._jsError] == null) {
        error[dart._jsError] = this;
      }
    }
    get message() {
      return dart.toString(this[dart._thrownValue]);
    }
  };
  dart.RethrownDartError = class RethrownDartError extends dart.DartError {
    constructor(error, stackTrace) {
      super(error);
      this[dart._stackTrace] = stackTrace;
    }
    get message() {
      return super.message + "\n    " + dart.toString(this[dart._stackTrace]) + "\n";
    }
  };
  dart.constantMaps = new Map();
  dart.constantSets = new Map();
  dart._immutableSetConstructor = null;
  dart._value = Symbol("_value");
  dart.constants = new Map();
  dart.constantLists = new Map();
  dart.identityHashCode_ = Symbol("_identityHashCode");
  dart.JsIterator = class JsIterator {
    constructor(dartIterator) {
      this.dartIterator = dartIterator;
    }
    next() {
      let i = this.dartIterator;
      let done = !i.moveNext();
      return {done: done, value: done ? void 0 : i.current};
    }
  };
  dart.deferredImports = new Map();
  dart.defineLazy(dart, {
    /*dart._assertInteropExpando*/get _assertInteropExpando() {
      return new (T$.ExpandoOfFunction()).new();
    },
    set _assertInteropExpando(_) {},
    /*dart.bottom*/get bottom() {
      return core.Null;
    },
    /*dart._typeVariablePool*/get _typeVariablePool() {
      return T$.JSArrayOfTypeVariable().of([]);
    }
  }, false);
  var _rawJSType = dart.privateName(dart, "_rawJSType");
  var _getRawJSTypeFn$ = dart.privateName(dart, "_getRawJSTypeFn");
  var _dartName$ = dart.privateName(dart, "_dartName");
  var _getRawJSType = dart.privateName(dart, "_getRawJSType");
  dart.LazyJSType = class LazyJSType extends dart.DartType {
    toString() {
      let raw = this[_getRawJSType]();
      return raw != null ? dart.typeName(raw) : "JSObject<" + this[_dartName$] + ">";
    }
    [_getRawJSType]() {
      let raw = this[_rawJSType];
      if (raw != null) return raw;
      try {
        raw = this[_getRawJSTypeFn$]();
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      if (raw == null) {
        dart._warn("Cannot find native JavaScript type (" + this[_dartName$] + ") for type check");
      } else {
        this[_rawJSType] = raw;
        dart._resetFields.push(() => this[_rawJSType] = null);
      }
      return raw;
    }
    rawJSTypeForCheck() {
      let t1;
      t1 = this[_getRawJSType]();
      return t1 == null ? dart.jsobject : t1;
    }
    is(obj) {
      return obj != null && (dart._isJsObject(obj) || dart.isSubtypeOf(dart.getReifiedType(obj), this));
    }
    as(obj) {
      return this.is(obj) ? obj : dart.castError(obj, this);
    }
  };
  (dart.LazyJSType.new = function(_getRawJSTypeFn, _dartName) {
    if (_getRawJSTypeFn == null) dart.nullFailed(I[5], 211, 19, "_getRawJSTypeFn");
    if (_dartName == null) dart.nullFailed(I[5], 211, 41, "_dartName");
    this[_rawJSType] = null;
    this[_getRawJSTypeFn$] = _getRawJSTypeFn;
    this[_dartName$] = _dartName;
    dart.LazyJSType.__proto__.new.call(this);
    ;
  }).prototype = dart.LazyJSType.prototype;
  dart.addTypeTests(dart.LazyJSType);
  dart.addTypeCaches(dart.LazyJSType);
  dart.setMethodSignature(dart.LazyJSType, () => ({
    __proto__: dart.getMethods(dart.LazyJSType.__proto__),
    [_getRawJSType]: dart.fnType(dart.nullable(core.Object), []),
    rawJSTypeForCheck: dart.fnType(core.Object, [])
  }));
  dart.setLibraryUri(dart.LazyJSType, I[9]);
  dart.setFieldSignature(dart.LazyJSType, () => ({
    __proto__: dart.getFields(dart.LazyJSType.__proto__),
    [_getRawJSTypeFn$]: dart.fieldType(dart.fnType(dart.dynamic, [])),
    [_dartName$]: dart.finalFieldType(core.String),
    [_rawJSType]: dart.fieldType(dart.nullable(core.Object))
  }));
  dart.defineExtensionMethods(dart.LazyJSType, ['toString']);
  dart.AnonymousJSType = class AnonymousJSType extends dart.DartType {
    toString() {
      return this[_dartName$];
    }
    is(obj) {
      return obj != null && (dart._isJsObject(obj) || dart.isSubtypeOf(dart.getReifiedType(obj), this));
    }
    as(obj) {
      return dart.test(this.is(obj)) ? obj : dart.castError(obj, this);
    }
  };
  (dart.AnonymousJSType.new = function(_dartName) {
    if (_dartName == null) dart.nullFailed(I[5], 257, 24, "_dartName");
    this[_dartName$] = _dartName;
    dart.AnonymousJSType.__proto__.new.call(this);
    ;
  }).prototype = dart.AnonymousJSType.prototype;
  dart.addTypeTests(dart.AnonymousJSType);
  dart.addTypeCaches(dart.AnonymousJSType);
  dart.setLibraryUri(dart.AnonymousJSType, I[9]);
  dart.setFieldSignature(dart.AnonymousJSType, () => ({
    __proto__: dart.getFields(dart.AnonymousJSType.__proto__),
    [_dartName$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(dart.AnonymousJSType, ['toString']);
  var type$ = dart.privateName(dart, "NullableType.type");
  dart.NullableType = class NullableType extends dart.DartType {
    get type() {
      return this[type$];
    }
    set type(value) {
      super.type = value;
    }
    get name() {
      return this.type instanceof dart.FunctionType ? "(" + dart.str(this.type) + ")?" : dart.str(this.type) + "?";
    }
    toString() {
      return this.name;
    }
    is(obj) {
      return obj == null || this.type.is(obj);
    }
    as(obj) {
      return obj == null || this.type.is(obj) ? obj : dart.as(obj, this);
    }
  };
  (dart.NullableType.new = function(type) {
    this[type$] = type;
    dart.NullableType.__proto__.new.call(this);
    ;
  }).prototype = dart.NullableType.prototype;
  dart.addTypeTests(dart.NullableType);
  dart.addTypeCaches(dart.NullableType);
  dart.setLibraryUri(dart.NullableType, I[9]);
  dart.setFieldSignature(dart.NullableType, () => ({
    __proto__: dart.getFields(dart.NullableType.__proto__),
    type: dart.finalFieldType(core.Type)
  }));
  dart.defineExtensionMethods(dart.NullableType, ['toString']);
  var type$0 = dart.privateName(dart, "LegacyType.type");
  dart.LegacyType = class LegacyType extends dart.DartType {
    get type() {
      return this[type$0];
    }
    set type(value) {
      super.type = value;
    }
    get name() {
      return dart.str(this.type);
    }
    toString() {
      return this.name;
    }
    is(obj) {
      if (obj == null) {
        return this.type === core.Object || this.type === dart.Never;
      }
      return this.type.is(obj);
    }
    as(obj) {
      return obj == null || this.type.is(obj) ? obj : dart.as(obj, this);
    }
  };
  (dart.LegacyType.new = function(type) {
    this[type$0] = type;
    dart.LegacyType.__proto__.new.call(this);
    ;
  }).prototype = dart.LegacyType.prototype;
  dart.addTypeTests(dart.LegacyType);
  dart.addTypeCaches(dart.LegacyType);
  dart.setLibraryUri(dart.LegacyType, I[9]);
  dart.setFieldSignature(dart.LegacyType, () => ({
    __proto__: dart.getFields(dart.LegacyType.__proto__),
    type: dart.finalFieldType(core.Type)
  }));
  dart.defineExtensionMethods(dart.LegacyType, ['toString']);
  dart.BottomType = class BottomType extends dart.DartType {
    toString() {
      return "bottom";
    }
  };
  (dart.BottomType.new = function() {
    dart.BottomType.__proto__.new.call(this);
    ;
  }).prototype = dart.BottomType.prototype;
  dart.addTypeTests(dart.BottomType);
  dart.addTypeCaches(dart.BottomType);
  dart.setLibraryUri(dart.BottomType, I[9]);
  dart.defineExtensionMethods(dart.BottomType, ['toString']);
  core.Type = class Type extends core.Object {};
  (core.Type.new = function() {
    ;
  }).prototype = core.Type.prototype;
  dart.addTypeTests(core.Type);
  dart.addTypeCaches(core.Type);
  dart.setLibraryUri(core.Type, I[8]);
  dart._Type = class _Type extends core.Type {
    toString() {
      return dart.typeName(this[_type$]);
    }
    get runtimeType() {
      return dart.wrapType(core.Type);
    }
  };
  (dart._Type.new = function(_type) {
    if (_type == null) dart.nullFailed(I[5], 496, 14, "_type");
    this[_type$] = _type;
    ;
  }).prototype = dart._Type.prototype;
  dart.addTypeTests(dart._Type);
  dart.addTypeCaches(dart._Type);
  dart.setLibraryUri(dart._Type, I[9]);
  dart.setFieldSignature(dart._Type, () => ({
    __proto__: dart.getFields(dart._Type.__proto__),
    [_type$]: dart.finalFieldType(core.Object)
  }));
  dart.defineExtensionMethods(dart._Type, ['toString']);
  dart.defineExtensionAccessors(dart._Type, ['runtimeType']);
  dart.AbstractFunctionType = class AbstractFunctionType extends dart.DartType {};
  (dart.AbstractFunctionType.new = function() {
    dart.AbstractFunctionType.__proto__.new.call(this);
    ;
  }).prototype = dart.AbstractFunctionType.prototype;
  dart.addTypeTests(dart.AbstractFunctionType);
  dart.addTypeCaches(dart.AbstractFunctionType);
  dart.setLibraryUri(dart.AbstractFunctionType, I[9]);
  var returnType$ = dart.privateName(dart, "FunctionType.returnType");
  var args$ = dart.privateName(dart, "FunctionType.args");
  var optionals$ = dart.privateName(dart, "FunctionType.optionals");
  var named$ = dart.privateName(dart, "FunctionType.named");
  var requiredNamed$ = dart.privateName(dart, "FunctionType.requiredNamed");
  var _stringValue = dart.privateName(dart, "_stringValue");
  var _createNameMap = dart.privateName(dart, "_createNameMap");
  dart.FunctionType = class FunctionType extends dart.AbstractFunctionType {
    get returnType() {
      return this[returnType$];
    }
    set returnType(value) {
      super.returnType = value;
    }
    get args() {
      return this[args$];
    }
    set args(value) {
      super.args = value;
    }
    get optionals() {
      return this[optionals$];
    }
    set optionals(value) {
      super.optionals = value;
    }
    get named() {
      return this[named$];
    }
    set named(value) {
      super.named = value;
    }
    get requiredNamed() {
      return this[requiredNamed$];
    }
    set requiredNamed(value) {
      super.requiredNamed = value;
    }
    static create(returnType, args, optionalArgs, requiredNamedArgs) {
      if (args == null) dart.nullFailed(I[5], 753, 24, "args");
      let noOptionalArgs = optionalArgs == null && requiredNamedArgs == null;
      if (noOptionalArgs && args.length < 3) {
        return dart._createSmall(returnType, args);
      }
      args = dart._canonicalizeArray(args, dart._fnTypeArrayArgMap);
      let keys = [];
      let create = null;
      if (noOptionalArgs) {
        keys = [returnType, args];
        create = () => new dart.FunctionType.new(core.Type.as(returnType), args, [], {}, {});
      } else if (optionalArgs instanceof Array) {
        let optionals = dart._canonicalizeArray(optionalArgs, dart._fnTypeArrayArgMap);
        keys = [returnType, args, optionals];
        create = () => new dart.FunctionType.new(core.Type.as(returnType), args, optionals, {}, {});
      } else {
        let named = dart._canonicalizeNamed(optionalArgs, dart._fnTypeNamedArgMap);
        let requiredNamed = dart._canonicalizeNamed(requiredNamedArgs, dart._fnTypeNamedArgMap);
        keys = [returnType, args, named, requiredNamed];
        create = () => new dart.FunctionType.new(core.Type.as(returnType), args, [], named, requiredNamed);
      }
      return dart._memoizeArray(dart._fnTypeTypeMap, keys, create);
    }
    toString() {
      return this.name;
    }
    get requiredParameterCount() {
      return this.args[$length];
    }
    get positionalParameterCount() {
      return dart.notNull(this.args[$length]) + dart.notNull(this.optionals[$length]);
    }
    getPositionalParameter(i) {
      if (i == null) dart.nullFailed(I[5], 792, 30, "i");
      let n = this.args[$length];
      return dart.notNull(i) < dart.notNull(n) ? this.args[$_get](i) : this.optionals[$_get](dart.notNull(i) + dart.notNull(n));
    }
    [_createNameMap](names) {
      if (names == null) dart.nullFailed(I[5], 798, 52, "names");
      let result = new (T$.IdentityMapOfString$Object()).new();
      names.sort();
      for (let i = 0; i < names.length; i = i + 1) {
        let name = names[i];
        result[$_set](name, this.named[name]);
      }
      return result;
    }
    getNamedParameters() {
      return this[_createNameMap](dart.getOwnPropertyNames(this.named)[$toList]());
    }
    getRequiredNamedParameters() {
      return this[_createNameMap](dart.getOwnPropertyNames(this.requiredNamed)[$toList]());
    }
    get name() {
      if (this[_stringValue] != null) return dart.nullCheck(this[_stringValue]);
      let buffer = "(";
      for (let i = 0; i < this.args.length; i = i + 1) {
        if (i > 0) {
          buffer = buffer + ", ";
        }
        buffer = buffer + dart.typeName(this.args[i]);
      }
      if (this.optionals.length > 0) {
        if (this.args.length > 0) buffer = buffer + ", ";
        buffer = buffer + "[";
        for (let i = 0; i < this.optionals.length; i = i + 1) {
          if (i > 0) {
            buffer = buffer + ", ";
          }
          buffer = buffer + dart.typeName(this.optionals[i]);
        }
        buffer = buffer + "]";
      } else if (Object.keys(this.named).length > 0 || Object.keys(this.requiredNamed).length > 0) {
        if (this.args.length > 0) buffer = buffer + ", ";
        buffer = buffer + "{";
        let names = dart.getOwnPropertyNames(this.named);
        names.sort();
        for (let i = 0; i < names.length; i = i + 1) {
          if (i > 0) {
            buffer = buffer + ", ";
          }
          let typeNameString = dart.typeName(this.named[names[i]]);
          buffer = buffer + (typeNameString + " " + dart.str(names[i]));
        }
        if (Object.keys(this.requiredNamed).length > 0 && names.length > 0) buffer = buffer + ", ";
        names = dart.getOwnPropertyNames(this.requiredNamed);
        names.sort();
        for (let i = 0; i < names.length; i = i + 1) {
          if (i > 0) {
            buffer = buffer + ", ";
          }
          let typeNameString = dart.typeName(this.requiredNamed[names[i]]);
          buffer = buffer + ("required " + typeNameString + " " + dart.str(names[i]));
        }
        buffer = buffer + "}";
      }
      let returnTypeName = dart.typeName(this.returnType);
      buffer = buffer + (") => " + returnTypeName);
      this[_stringValue] = buffer;
      return buffer;
    }
    is(obj) {
      if (typeof obj == "function") {
        let actual = obj[dart._runtimeType];
        return actual == null || dart.isSubtypeOf(actual, this);
      }
      return false;
    }
    as(obj) {
      if (dart.test(this.is(obj))) return obj;
      return dart.as(obj, this);
    }
  };
  (dart.FunctionType.new = function(returnType, args, optionals, named, requiredNamed) {
    if (returnType == null) dart.nullFailed(I[5], 784, 21, "returnType");
    if (args == null) dart.nullFailed(I[5], 784, 38, "args");
    if (optionals == null) dart.nullFailed(I[5], 784, 49, "optionals");
    this[_stringValue] = null;
    this[returnType$] = returnType;
    this[args$] = args;
    this[optionals$] = optionals;
    this[named$] = named;
    this[requiredNamed$] = requiredNamed;
    dart.FunctionType.__proto__.new.call(this);
    ;
  }).prototype = dart.FunctionType.prototype;
  dart.addTypeTests(dart.FunctionType);
  dart.addTypeCaches(dart.FunctionType);
  dart.setMethodSignature(dart.FunctionType, () => ({
    __proto__: dart.getMethods(dart.FunctionType.__proto__),
    getPositionalParameter: dart.fnType(dart.dynamic, [core.int]),
    [_createNameMap]: dart.fnType(core.Map$(core.String, core.Object), [core.List$(dart.nullable(core.Object))]),
    getNamedParameters: dart.fnType(core.Map$(core.String, core.Object), []),
    getRequiredNamedParameters: dart.fnType(core.Map$(core.String, core.Object), [])
  }));
  dart.setGetterSignature(dart.FunctionType, () => ({
    __proto__: dart.getGetters(dart.FunctionType.__proto__),
    requiredParameterCount: core.int,
    positionalParameterCount: core.int
  }));
  dart.setLibraryUri(dart.FunctionType, I[9]);
  dart.setFieldSignature(dart.FunctionType, () => ({
    __proto__: dart.getFields(dart.FunctionType.__proto__),
    returnType: dart.finalFieldType(core.Type),
    args: dart.finalFieldType(core.List),
    optionals: dart.finalFieldType(core.List),
    named: dart.finalFieldType(dart.dynamic),
    requiredNamed: dart.finalFieldType(dart.dynamic),
    [_stringValue]: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(dart.FunctionType, ['toString']);
  var name$ = dart.privateName(dart, "TypeVariable.name");
  dart.TypeVariable = class TypeVariable extends dart.DartType {
    get name() {
      return this[name$];
    }
    set name(value) {
      super.name = value;
    }
    toString() {
      return this.name;
    }
  };
  (dart.TypeVariable.new = function(name) {
    if (name == null) dart.nullFailed(I[5], 893, 21, "name");
    this[name$] = name;
    dart.TypeVariable.__proto__.new.call(this);
    ;
  }).prototype = dart.TypeVariable.prototype;
  dart.addTypeTests(dart.TypeVariable);
  dart.addTypeCaches(dart.TypeVariable);
  dart.setLibraryUri(dart.TypeVariable, I[9]);
  dart.setFieldSignature(dart.TypeVariable, () => ({
    __proto__: dart.getFields(dart.TypeVariable.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(dart.TypeVariable, ['toString']);
  dart.Variance = class Variance extends core.Object {};
  (dart.Variance.new = function() {
    ;
  }).prototype = dart.Variance.prototype;
  dart.addTypeTests(dart.Variance);
  dart.addTypeCaches(dart.Variance);
  dart.setLibraryUri(dart.Variance, I[9]);
  dart.defineLazy(dart.Variance, {
    /*dart.Variance.unrelated*/get unrelated() {
      return 0;
    },
    /*dart.Variance.covariant*/get covariant() {
      return 1;
    },
    /*dart.Variance.contravariant*/get contravariant() {
      return 2;
    },
    /*dart.Variance.invariant*/get invariant() {
      return 3;
    }
  }, false);
  var typeFormals$ = dart.privateName(dart, "GenericFunctionTypeIdentifier.typeFormals");
  var typeBounds$ = dart.privateName(dart, "GenericFunctionTypeIdentifier.typeBounds");
  var $function$ = dart.privateName(dart, "GenericFunctionTypeIdentifier.function");
  dart.GenericFunctionTypeIdentifier = class GenericFunctionTypeIdentifier extends dart.AbstractFunctionType {
    get typeFormals() {
      return this[typeFormals$];
    }
    set typeFormals(value) {
      super.typeFormals = value;
    }
    get typeBounds() {
      return this[typeBounds$];
    }
    set typeBounds(value) {
      super.typeBounds = value;
    }
    get function() {
      return this[$function$];
    }
    set function(value) {
      super.function = value;
    }
    toString() {
      if (this[_stringValue] != null) return dart.nullCheck(this[_stringValue]);
      let s = "<";
      let typeFormals = this.typeFormals;
      let typeBounds = this.typeBounds;
      for (let i = 0, n = core.int.as(dart.dload(typeFormals, 'length')); i < dart.notNull(n); i = i + 1) {
        if (i !== 0) s = s + ", ";
        s = s + typeFormals[i].name;
        let bound = dart.dsend(typeBounds, '_get', [i]);
        if (bound === dart.dynamic || bound === dart.nullable(core.Object) || !false && bound === core.Object) {
          continue;
        }
        s = s + (" extends " + dart.str(bound));
      }
      s = s + (">" + dart.notNull(dart.toString(this.function)));
      return this[_stringValue] = s;
    }
  };
  (dart.GenericFunctionTypeIdentifier.new = function(typeFormals, typeBounds, $function) {
    if ($function == null) dart.nullFailed(I[5], 916, 47, "function");
    this[_stringValue] = null;
    this[typeFormals$] = typeFormals;
    this[typeBounds$] = typeBounds;
    this[$function$] = $function;
    dart.GenericFunctionTypeIdentifier.__proto__.new.call(this);
    ;
  }).prototype = dart.GenericFunctionTypeIdentifier.prototype;
  dart.addTypeTests(dart.GenericFunctionTypeIdentifier);
  dart.addTypeCaches(dart.GenericFunctionTypeIdentifier);
  dart.setLibraryUri(dart.GenericFunctionTypeIdentifier, I[9]);
  dart.setFieldSignature(dart.GenericFunctionTypeIdentifier, () => ({
    __proto__: dart.getFields(dart.GenericFunctionTypeIdentifier.__proto__),
    typeFormals: dart.finalFieldType(dart.dynamic),
    typeBounds: dart.finalFieldType(dart.dynamic),
    function: dart.finalFieldType(dart.FunctionType),
    [_stringValue]: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(dart.GenericFunctionTypeIdentifier, ['toString']);
  var formalCount = dart.privateName(dart, "GenericFunctionType.formalCount");
  var _instantiateTypeBounds$ = dart.privateName(dart, "_instantiateTypeBounds");
  var _instantiateTypeParts = dart.privateName(dart, "_instantiateTypeParts");
  var _typeFormals = dart.privateName(dart, "_typeFormals");
  dart.GenericFunctionType = class GenericFunctionType extends dart.AbstractFunctionType {
    get formalCount() {
      return this[formalCount];
    }
    set formalCount(value) {
      super.formalCount = value;
    }
    get typeFormals() {
      return this[_typeFormals];
    }
    get hasTypeBounds() {
      return this[_instantiateTypeBounds$] != null;
    }
    checkBounds(typeArgs) {
      if (typeArgs == null) dart.nullFailed(I[5], 964, 33, "typeArgs");
      if (!dart.test(this.hasTypeBounds)) return;
      let bounds = this.instantiateTypeBounds(typeArgs);
      let typeFormals = this.typeFormals;
      for (let i = 0; i < dart.notNull(typeArgs[$length]); i = i + 1) {
        dart.checkTypeBound(typeArgs[$_get](i), bounds[$_get](i), typeFormals[$_get](i).name);
      }
    }
    instantiate(typeArgs) {
      let parts = this[_instantiateTypeParts].apply(null, typeArgs);
      return dart.FunctionType.create(parts[0], parts[1], parts[2], parts[3]);
    }
    instantiateTypeBounds(typeArgs) {
      if (typeArgs == null) dart.nullFailed(I[5], 982, 43, "typeArgs");
      if (!dart.test(this.hasTypeBounds)) {
        return T$.ListOfObject().filled(this.formalCount, dart.legacy(core.Object));
      }
      return this[_instantiateTypeBounds$].apply(null, typeArgs);
    }
    toString() {
      let s = "<";
      let typeFormals = this.typeFormals;
      let typeBounds = this.instantiateTypeBounds(typeFormals);
      for (let i = 0, n = typeFormals[$length]; i < dart.notNull(n); i = i + 1) {
        if (i !== 0) s = s + ", ";
        s = s + typeFormals[i].name;
        let bound = typeBounds[$_get](i);
        if (bound !== dart.dynamic && bound !== core.Object) {
          s = s + (" extends " + dart.str(bound));
        }
      }
      s = s + (">" + dart.notNull(dart.toString(this.instantiate(typeFormals))));
      return s;
    }
    instantiateDefaultBounds() {
      function defaultsToDynamic(type) {
        if (type === dart.dynamic) return true;
        if (type instanceof dart.NullableType || !false && type instanceof dart.LegacyType) {
          return type.type === core.Object;
        }
        return false;
      }
      let typeFormals = this.typeFormals;
      let all = new (T$.IdentityMapOfTypeVariable$int()).new();
      let defaults = T$.ListOfObjectN().filled(typeFormals[$length], null);
      let partials = new (T$.IdentityMapOfTypeVariable$Object()).new();
      let typeBounds = this.instantiateTypeBounds(typeFormals);
      for (let i = 0; i < dart.notNull(typeFormals[$length]); i = i + 1) {
        let typeFormal = typeFormals[$_get](i);
        let bound = typeBounds[$_get](i);
        all[$_set](typeFormal, i);
        if (dart.test(defaultsToDynamic(bound))) {
          defaults[$_set](i, dart.dynamic);
        } else {
          defaults[$_set](i, typeFormal);
          partials[$_set](typeFormal, bound);
        }
      }
      function hasFreeFormal(t) {
        if (dart.test(partials[$containsKey](t))) return true;
        if (t instanceof dart.LegacyType || t instanceof dart.NullableType) {
          return hasFreeFormal(t.type);
        }
        let typeArgs = dart.getGenericArgs(t);
        if (typeArgs != null) return typeArgs[$any](hasFreeFormal);
        if (dart.GenericFunctionType.is(t)) {
          return hasFreeFormal(t.instantiate(t.typeFormals));
        }
        if (dart.FunctionType.is(t)) {
          return dart.test(hasFreeFormal(t.returnType)) || dart.test(t.args[$any](hasFreeFormal));
        }
        return false;
      }
      let hasProgress = true;
      while (hasProgress) {
        hasProgress = false;
        for (let typeFormal of partials[$keys]) {
          let partialBound = dart.nullCheck(partials[$_get](typeFormal));
          if (!dart.test(hasFreeFormal(partialBound))) {
            let index = dart.nullCheck(all[$_get](typeFormal));
            defaults[$_set](index, this.instantiateTypeBounds(defaults)[$_get](index));
            partials[$remove](typeFormal);
            hasProgress = true;
            break;
          }
        }
      }
      if (dart.test(partials[$isNotEmpty])) {
        dart.throwTypeError("Instantiate to bounds failed for type with " + "recursive generic bounds: " + dart.typeName(this) + ". " + "Try passing explicit type arguments.");
      }
      return defaults;
    }
    is(obj) {
      if (typeof obj == "function") {
        let actual = obj[dart._runtimeType];
        return actual != null && dart.isSubtypeOf(actual, this);
      }
      return false;
    }
    as(obj) {
      if (this.is(obj)) return obj;
      return dart.as(obj, this);
    }
  };
  (dart.GenericFunctionType.new = function(instantiateTypeParts, _instantiateTypeBounds) {
    this[_instantiateTypeBounds$] = _instantiateTypeBounds;
    this[_instantiateTypeParts] = instantiateTypeParts;
    this[formalCount] = instantiateTypeParts.length;
    this[_typeFormals] = dart._typeFormalsFromFunction(instantiateTypeParts);
    dart.GenericFunctionType.__proto__.new.call(this);
    ;
  }).prototype = dart.GenericFunctionType.prototype;
  dart.addTypeTests(dart.GenericFunctionType);
  dart.addTypeCaches(dart.GenericFunctionType);
  dart.setMethodSignature(dart.GenericFunctionType, () => ({
    __proto__: dart.getMethods(dart.GenericFunctionType.__proto__),
    checkBounds: dart.fnType(dart.void, [core.List$(core.Object)]),
    instantiate: dart.fnType(dart.FunctionType, [dart.dynamic]),
    instantiateTypeBounds: dart.fnType(core.List$(core.Object), [core.List]),
    instantiateDefaultBounds: dart.fnType(core.List, [])
  }));
  dart.setGetterSignature(dart.GenericFunctionType, () => ({
    __proto__: dart.getGetters(dart.GenericFunctionType.__proto__),
    typeFormals: core.List$(dart.TypeVariable),
    hasTypeBounds: core.bool
  }));
  dart.setLibraryUri(dart.GenericFunctionType, I[9]);
  dart.setFieldSignature(dart.GenericFunctionType, () => ({
    __proto__: dart.getFields(dart.GenericFunctionType.__proto__),
    [_instantiateTypeParts]: dart.finalFieldType(dart.dynamic),
    formalCount: dart.finalFieldType(core.int),
    [_instantiateTypeBounds$]: dart.finalFieldType(dart.dynamic),
    [_typeFormals]: dart.finalFieldType(core.List$(dart.TypeVariable))
  }));
  dart.defineExtensionMethods(dart.GenericFunctionType, ['toString']);
  var _typeVariables = dart.privateName(dart, "_typeVariables");
  var _isSubtypeMatch = dart.privateName(dart, "_isSubtypeMatch");
  var _constrainLower = dart.privateName(dart, "_constrainLower");
  var _constrainUpper = dart.privateName(dart, "_constrainUpper");
  var _isFunctionSubtypeMatch = dart.privateName(dart, "_isFunctionSubtypeMatch");
  var _isInterfaceSubtypeMatch = dart.privateName(dart, "_isInterfaceSubtypeMatch");
  var _isTop$ = dart.privateName(dart, "_isTop");
  dart._TypeInferrer = class _TypeInferrer extends core.Object {
    getInferredTypes() {
      let result = T$.JSArrayOfObject().of([]);
      for (let constraint of this[_typeVariables][$values]) {
        if (constraint.lower != null) {
          result[$add](dart.nullCheck(constraint.lower));
        } else if (constraint.upper != null) {
          result[$add](dart.nullCheck(constraint.upper));
        } else {
          return null;
        }
      }
      return result;
    }
    trySubtypeMatch(subtype, supertype) {
      if (subtype == null) dart.nullFailed(I[5], 1722, 31, "subtype");
      if (supertype == null) dart.nullFailed(I[5], 1722, 47, "supertype");
      return this[_isSubtypeMatch](subtype, supertype);
    }
    [_constrainLower](parameter, lower) {
      if (parameter == null) dart.nullFailed(I[5], 1725, 37, "parameter");
      if (lower == null) dart.nullFailed(I[5], 1725, 55, "lower");
      dart.nullCheck(this[_typeVariables][$_get](parameter))[_constrainLower](lower);
    }
    [_constrainUpper](parameter, upper) {
      if (parameter == null) dart.nullFailed(I[5], 1729, 37, "parameter");
      if (upper == null) dart.nullFailed(I[5], 1729, 55, "upper");
      dart.nullCheck(this[_typeVariables][$_get](parameter))[_constrainUpper](upper);
    }
    [_isFunctionSubtypeMatch](subtype, supertype) {
      let t7;
      if (subtype == null) dart.nullFailed(I[5], 1733, 45, "subtype");
      if (supertype == null) dart.nullFailed(I[5], 1733, 67, "supertype");
      if (dart.notNull(subtype.requiredParameterCount) > dart.notNull(supertype.requiredParameterCount)) {
        return false;
      }
      if (dart.notNull(subtype.positionalParameterCount) < dart.notNull(supertype.positionalParameterCount)) {
        return false;
      }
      if (!dart.VoidType.is(supertype.returnType) && !dart.test(this[_isSubtypeMatch](subtype.returnType, supertype.returnType))) {
        return false;
      }
      for (let i = 0, n = supertype.positionalParameterCount; i < dart.notNull(n); i = i + 1) {
        if (!dart.test(this[_isSubtypeMatch](core.Object.as(supertype.getPositionalParameter(i)), core.Object.as(subtype.getPositionalParameter(i))))) {
          return false;
        }
      }
      let supertypeNamed = supertype.getNamedParameters();
      let supertypeRequiredNamed = supertype.getRequiredNamedParameters();
      let subtypeNamed = supertype.getNamedParameters();
      let subtypeRequiredNamed = supertype.getRequiredNamedParameters();
      if (!false) {
        supertypeNamed = (() => {
          let t1 = new (T$.IdentityMapOfString$Object()).new();
          for (let t2 of supertypeNamed[$entries])
            t1[$_set](t2.key, t2.value);
          for (let t3 of supertypeRequiredNamed[$entries])
            t1[$_set](t3.key, t3.value);
          return t1;
        })();
        subtypeNamed = (() => {
          let t4 = new (T$.IdentityMapOfString$Object()).new();
          for (let t5 of subtypeNamed[$entries])
            t4[$_set](t5.key, t5.value);
          for (let t6 of subtypeRequiredNamed[$entries])
            t4[$_set](t6.key, t6.value);
          return t4;
        })();
        supertypeRequiredNamed = new (T$.IdentityMapOfString$Object()).new();
        subtypeRequiredNamed = new (T$.IdentityMapOfString$Object()).new();
      }
      for (let name of subtypeRequiredNamed[$keys]) {
        let supertypeParamType = supertypeRequiredNamed[$_get](name);
        if (supertypeParamType == null) return false;
      }
      for (let name of supertypeNamed[$keys]) {
        let subtypeParamType = subtypeNamed[$_get](name);
        if (subtypeParamType == null) return false;
        if (!dart.test(this[_isSubtypeMatch](dart.nullCheck(supertypeNamed[$_get](name)), subtypeParamType))) {
          return false;
        }
      }
      for (let name of supertypeRequiredNamed[$keys]) {
        let subtypeParamType = (t7 = subtypeRequiredNamed[$_get](name), t7 == null ? dart.nullCheck(subtypeNamed[$_get](name)) : t7);
        if (!dart.test(this[_isSubtypeMatch](dart.nullCheck(supertypeRequiredNamed[$_get](name)), subtypeParamType))) {
          return false;
        }
      }
      return true;
    }
    [_isInterfaceSubtypeMatch](subtype, supertype) {
      if (subtype == null) dart.nullFailed(I[5], 1809, 40, "subtype");
      if (supertype == null) dart.nullFailed(I[5], 1809, 56, "supertype");
      let matchingSupertype = dart._getMatchingSupertype(subtype, supertype);
      if (matchingSupertype == null) return false;
      let matchingTypeArgs = dart.nullCheck(dart.getGenericArgs(matchingSupertype));
      let supertypeTypeArgs = dart.nullCheck(dart.getGenericArgs(supertype));
      for (let i = 0; i < dart.notNull(supertypeTypeArgs[$length]); i = i + 1) {
        if (!dart.test(this[_isSubtypeMatch](core.Object.as(matchingTypeArgs[$_get](i)), core.Object.as(supertypeTypeArgs[$_get](i))))) {
          return false;
        }
      }
      return true;
    }
    [_isSubtypeMatch](subtype, supertype) {
      if (subtype == null) dart.nullFailed(I[5], 1853, 31, "subtype");
      if (supertype == null) dart.nullFailed(I[5], 1853, 47, "supertype");
      if (dart.TypeVariable.is(subtype) && dart.test(this[_typeVariables][$containsKey](subtype))) {
        this[_constrainUpper](subtype, supertype);
        return true;
      }
      if (dart.TypeVariable.is(supertype) && dart.test(this[_typeVariables][$containsKey](supertype))) {
        this[_constrainLower](supertype, subtype);
        return true;
      }
      if (core.identical(subtype, supertype)) return true;
      if (dart.test(this[_isTop$](supertype))) return true;
      if (subtype === core.Null) return true;
      if (dart._isFutureOr(subtype)) {
        let subtypeArg = dart.nullCheck(dart.getGenericArgs(subtype))[$_get](0);
        if (dart._isFutureOr(supertype)) {
          let supertypeArg = dart.nullCheck(dart.getGenericArgs(supertype))[$_get](0);
          return this[_isSubtypeMatch](core.Object.as(subtypeArg), core.Object.as(supertypeArg));
        }
        let subtypeFuture = async.Future$(subtypeArg);
        return dart.test(this[_isSubtypeMatch](subtypeFuture, supertype)) && dart.test(this[_isSubtypeMatch](core.Object.as(dart.nullCheck(subtypeArg)), supertype));
      }
      if (dart._isFutureOr(supertype)) {
        let supertypeArg = dart.nullCheck(dart.getGenericArgs(supertype))[$_get](0);
        let supertypeFuture = async.Future$(supertypeArg);
        return dart.test(this[_isSubtypeMatch](subtype, supertypeFuture)) || dart.test(this[_isSubtypeMatch](subtype, core.Object.as(supertypeArg)));
      }
      if (dart.TypeVariable.is(subtype)) {
        return dart.TypeVariable.is(supertype) && subtype == supertype;
      }
      if (dart.GenericFunctionType.is(subtype)) {
        if (dart.GenericFunctionType.is(supertype)) {
          let formalCount = subtype.formalCount;
          if (formalCount != supertype.formalCount) return false;
          let fresh = supertype.typeFormals;
          let t1Bounds = subtype.instantiateTypeBounds(fresh);
          let t2Bounds = supertype.instantiateTypeBounds(fresh);
          for (let i = 0; i < dart.notNull(formalCount); i = i + 1) {
            if (!dart.test(this[_isSubtypeMatch](t2Bounds[$_get](i), t1Bounds[$_get](i)))) {
              return false;
            }
          }
          return this[_isFunctionSubtypeMatch](subtype.instantiate(fresh), supertype.instantiate(fresh));
        } else {
          return false;
        }
      } else if (dart.GenericFunctionType.is(supertype)) {
        return false;
      }
      if (dart.FunctionType.is(subtype)) {
        if (!dart.FunctionType.is(supertype)) {
          if (supertype === core.Function || supertype === core.Object) {
            return true;
          } else {
            return false;
          }
        }
        if (dart.FunctionType.is(supertype)) {
          return this[_isFunctionSubtypeMatch](subtype, supertype);
        }
      }
      return this[_isInterfaceSubtypeMatch](subtype, supertype);
    }
    [_isTop$](type) {
      if (type == null) dart.nullFailed(I[5], 1996, 22, "type");
      return core.identical(type, dart.dynamic) || core.identical(type, dart.void) || type === core.Object;
    }
  };
  (dart._TypeInferrer.new = function(typeVariables) {
    if (typeVariables == null) dart.nullFailed(I[5], 1697, 40, "typeVariables");
    this[_typeVariables] = T$.LinkedHashMapOfTypeVariable$TypeConstraint().fromIterables(typeVariables, typeVariables[$map](dart.TypeConstraint, _ => {
      if (_ == null) dart.nullFailed(I[5], 1699, 47, "_");
      return new dart.TypeConstraint.new();
    }));
    ;
  }).prototype = dart._TypeInferrer.prototype;
  dart.addTypeTests(dart._TypeInferrer);
  dart.addTypeCaches(dart._TypeInferrer);
  dart.setMethodSignature(dart._TypeInferrer, () => ({
    __proto__: dart.getMethods(dart._TypeInferrer.__proto__),
    getInferredTypes: dart.fnType(dart.nullable(core.List$(core.Object)), []),
    trySubtypeMatch: dart.fnType(core.bool, [core.Object, core.Object]),
    [_constrainLower]: dart.fnType(dart.void, [dart.TypeVariable, core.Object]),
    [_constrainUpper]: dart.fnType(dart.void, [dart.TypeVariable, core.Object]),
    [_isFunctionSubtypeMatch]: dart.fnType(core.bool, [dart.FunctionType, dart.FunctionType]),
    [_isInterfaceSubtypeMatch]: dart.fnType(core.bool, [core.Object, core.Object]),
    [_isSubtypeMatch]: dart.fnType(core.bool, [core.Object, core.Object]),
    [_isTop$]: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(dart._TypeInferrer, I[9]);
  dart.setFieldSignature(dart._TypeInferrer, () => ({
    __proto__: dart.getFields(dart._TypeInferrer.__proto__),
    [_typeVariables]: dart.finalFieldType(core.Map$(dart.TypeVariable, dart.TypeConstraint))
  }));
  var lower = dart.privateName(dart, "TypeConstraint.lower");
  var upper = dart.privateName(dart, "TypeConstraint.upper");
  dart.TypeConstraint = class TypeConstraint extends core.Object {
    get lower() {
      return this[lower];
    }
    set lower(value) {
      this[lower] = value;
    }
    get upper() {
      return this[upper];
    }
    set upper(value) {
      this[upper] = value;
    }
    [_constrainLower](type) {
      if (type == null) dart.nullFailed(I[5], 2012, 31, "type");
      let _lower = this.lower;
      if (_lower != null) {
        if (dart.isSubtypeOf(_lower, type)) {
          return;
        }
        if (!dart.isSubtypeOf(type, _lower)) {
          type = core.Null;
        }
      }
      this.lower = type;
    }
    [_constrainUpper](type) {
      if (type == null) dart.nullFailed(I[5], 2027, 31, "type");
      let _upper = this.upper;
      if (_upper != null) {
        if (dart.isSubtypeOf(type, _upper)) {
          return;
        }
        if (!dart.isSubtypeOf(_upper, type)) {
          type = core.Object;
        }
      }
      this.upper = type;
    }
    toString() {
      return dart.typeName(this.lower) + " <: <type> <: " + dart.typeName(this.upper);
    }
  };
  (dart.TypeConstraint.new = function() {
    this[lower] = null;
    this[upper] = null;
    ;
  }).prototype = dart.TypeConstraint.prototype;
  dart.addTypeTests(dart.TypeConstraint);
  dart.addTypeCaches(dart.TypeConstraint);
  dart.setMethodSignature(dart.TypeConstraint, () => ({
    __proto__: dart.getMethods(dart.TypeConstraint.__proto__),
    [_constrainLower]: dart.fnType(dart.void, [core.Object]),
    [_constrainUpper]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setLibraryUri(dart.TypeConstraint, I[9]);
  dart.setFieldSignature(dart.TypeConstraint, () => ({
    __proto__: dart.getFields(dart.TypeConstraint.__proto__),
    lower: dart.fieldType(dart.nullable(core.Object)),
    upper: dart.fieldType(dart.nullable(core.Object))
  }));
  dart.defineExtensionMethods(dart.TypeConstraint, ['toString']);
  var _trace = dart.privateName(dart, "_trace");
  var _jsObjectMissingTrace = dart.privateName(dart, "_jsObjectMissingTrace");
  dart._StackTrace = class _StackTrace extends core.Object {
    toString() {
      if (this[_trace] != null) return dart.nullCheck(this[_trace]);
      let e = this[_jsError$];
      let trace = "";
      if (e != null && typeof e === "object") {
        trace = _interceptors.NativeError.is(e) ? e[$dartStack]() : e.stack;
        let mapper = _debugger.stackTraceMapper;
        if (trace != null && mapper != null) {
          trace = mapper(trace);
        }
      }
      if (trace[$isEmpty] || this[_jsObjectMissingTrace] != null) {
        let jsToString = null;
        try {
          jsToString = "" + this[_jsObjectMissingTrace];
        } catch (e$) {
          let _ = dart.getThrown(e$);
          if (core.Object.is(_)) {
            jsToString = "<error converting JS object to string>";
          } else
            throw e$;
        }
        trace = "Non-error `" + dart.str(jsToString) + "` thrown by JS does not have stack trace." + "\nCaught in Dart at:\n\n" + dart.str(trace);
      }
      return this[_trace] = trace;
    }
  };
  (dart._StackTrace.new = function(_jsError) {
    this[_trace] = null;
    this[_jsError$] = _jsError;
    this[_jsObjectMissingTrace] = null;
    ;
  }).prototype = dart._StackTrace.prototype;
  (dart._StackTrace.missing = function(caughtObj) {
    this[_trace] = null;
    this[_jsObjectMissingTrace] = caughtObj != null ? caughtObj : "null";
    this[_jsError$] = Error();
    ;
  }).prototype = dart._StackTrace.prototype;
  dart.addTypeTests(dart._StackTrace);
  dart.addTypeCaches(dart._StackTrace);
  dart._StackTrace[dart.implements] = () => [core.StackTrace];
  dart.setLibraryUri(dart._StackTrace, I[9]);
  dart.setFieldSignature(dart._StackTrace, () => ({
    __proto__: dart.getFields(dart._StackTrace.__proto__),
    [_jsError$]: dart.finalFieldType(dart.nullable(core.Object)),
    [_jsObjectMissingTrace]: dart.finalFieldType(dart.nullable(core.Object)),
    [_trace]: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(dart._StackTrace, ['toString']);
  var memberName$ = dart.privateName(dart, "InvocationImpl.memberName");
  var positionalArguments$ = dart.privateName(dart, "InvocationImpl.positionalArguments");
  var namedArguments$ = dart.privateName(dart, "InvocationImpl.namedArguments");
  var typeArguments$ = dart.privateName(dart, "InvocationImpl.typeArguments");
  var isMethod$ = dart.privateName(dart, "InvocationImpl.isMethod");
  var isGetter$ = dart.privateName(dart, "InvocationImpl.isGetter");
  var isSetter$ = dart.privateName(dart, "InvocationImpl.isSetter");
  var failureMessage$ = dart.privateName(dart, "InvocationImpl.failureMessage");
  let const$;
  let const$0;
  dart.defineLazy(CT, {
    get C0() {
      return C[0] = dart.constList([], T$.TypeL());
    },
    get C1() {
      return C[1] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "none"
      });
    },
    get C2() {
      return C[2] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "skipDart"
      });
    },
    get C3() {
      return C[3] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "keyToString"
      });
    },
    get C4() {
      return C[4] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "asClass"
      });
    },
    get C5() {
      return C[5] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "asObject"
      });
    },
    get C6() {
      return C[6] = dart.const({
        __proto__: _debugger.JsonMLConfig.prototype,
        [name$0]: "asMap"
      });
    },
    get C7() {
      return C[7] = dart.fn(_debugger.getTypeName, T$.dynamicToString());
    },
    get C8() {
      return C[8] = dart.const({
        __proto__: _foreign_helper._Rest.prototype
      });
    },
    get C9() {
      return C[9] = dart.const(new _js_helper.PrivateSymbol.new('_receiver', _receiver));
    },
    get C10() {
      return C[10] = dart.const(new _js_helper.PrivateSymbol.new('_arguments', _arguments));
    },
    get C11() {
      return C[11] = dart.const(new _js_helper.PrivateSymbol.new('_memberName', _memberName));
    },
    get C12() {
      return C[12] = dart.const(new _js_helper.PrivateSymbol.new('_invocation', _invocation));
    },
    get C13() {
      return C[13] = dart.const(new _js_helper.PrivateSymbol.new('_namedArguments', _namedArguments));
    },
    get C14() {
      return C[14] = dart.const(new _js_helper.PrivateSymbol.new('_hasValue', _hasValue));
    },
    get C15() {
      return C[15] = dart.const(new _js_helper.PrivateSymbol.new('_errorExplanation', _errorExplanation));
    },
    get C16() {
      return C[16] = dart.const(new _js_helper.PrivateSymbol.new('_errorName', _errorName));
    },
    get C17() {
      return C[17] = dart.const({
        __proto__: core.OutOfMemoryError.prototype
      });
    },
    get C18() {
      return C[18] = dart.fn(collection.ListMixin._compareAny, T$.dynamicAnddynamicToint());
    },
    get C19() {
      return C[19] = dart.fn(collection.MapBase._id, T$.ObjectNToObjectN());
    },
    get C20() {
      return C[20] = dart.const({
        __proto__: T$.EmptyIteratorOfNeverL().prototype
      });
    },
    get C21() {
      return C[21] = dart.constList([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22], T$.doubleL());
    },
    get C22() {
      return C[22] = dart.fn(_js_helper.Primitives.dateNow, T$.VoidToint());
    },
    get C23() {
      return C[23] = dart.const(new _js_helper.PrivateSymbol.new('_receiver', _receiver$1));
    },
    get C24() {
      return C[24] = dart.const(new _js_helper.PrivateSymbol.new('_arguments', _arguments$0));
    },
    get C25() {
      return C[25] = dart.const(new _js_helper.PrivateSymbol.new('_memberName', _memberName$0));
    },
    get C26() {
      return C[26] = dart.const(new _js_helper.PrivateSymbol.new('_invocation', _invocation$0));
    },
    get C27() {
      return C[27] = dart.const(new _js_helper.PrivateSymbol.new('_namedArguments', _namedArguments$0));
    },
    get C28() {
      return C[28] = dart.applyExtensionForTesting;
    },
    get C29() {
      return C[29] = dart.fn(_js_helper.assertInterop, T$.ObjectNTovoid());
    },
    get C30() {
      return C[30] = dart.fn(_js_helper._matchString, T$.MatchToString());
    },
    get C31() {
      return C[31] = dart.fn(_js_helper._stringIdentity, T$.StringToString());
    },
    get C32() {
      return C[32] = dart.const({
        __proto__: _js_helper._Patch.prototype
      });
    },
    get C33() {
      return C[33] = dart.const({
        __proto__: _js_helper._NotNull.prototype
      });
    },
    get C34() {
      return C[34] = dart.const({
        __proto__: _js_helper._Undefined.prototype
      });
    },
    get C35() {
      return C[35] = dart.const({
        __proto__: _js_helper._NullCheck.prototype
      });
    },
    get C36() {
      return C[36] = dart.const({
        __proto__: typed_data.Endian.prototype,
        [Endian__littleEndian]: false
      });
    },
    get C37() {
      return C[37] = dart.fn(async._nullDataHandler, T$.dynamicTovoid());
    },
    get C38() {
      return C[38] = dart.fn(async._nullErrorHandler, T$.ObjectAndStackTraceTovoid());
    },
    get C39() {
      return C[39] = dart.fn(async._nullDoneHandler, T$.VoidTovoid());
    },
    get C40() {
      return C[40] = dart.const({
        __proto__: async._DelayedDone.prototype
      });
    },
    get C41() {
      return C[41] = dart.fn(async.Future._kTrue, T$.ObjectNTobool());
    },
    get C42() {
      return C[42] = async._AsyncRun._scheduleImmediateJSOverride;
    },
    get C43() {
      return C[43] = async._AsyncRun._scheduleImmediateWithPromise;
    },
    get C44() {
      return C[44] = dart.const({
        __proto__: async._RootZone.prototype
      });
    },
    get C46() {
      return C[46] = dart.fn(async._rootRun, T$.ZoneNAndZoneDelegateNAndZone__ToR());
    },
    get C45() {
      return C[45] = dart.const({
        __proto__: async._RunNullaryZoneFunction.prototype,
        [$function$1]: C[46] || CT.C46,
        [zone$0]: C[44] || CT.C44
      });
    },
    get C48() {
      return C[48] = dart.fn(async._rootRunUnary, T$.ZoneNAndZoneDelegateNAndZone__ToR$1());
    },
    get C47() {
      return C[47] = dart.const({
        __proto__: async._RunUnaryZoneFunction.prototype,
        [$function$2]: C[48] || CT.C48,
        [zone$1]: C[44] || CT.C44
      });
    },
    get C50() {
      return C[50] = dart.fn(async._rootRunBinary, T$.ZoneNAndZoneDelegateNAndZone__ToR$2());
    },
    get C49() {
      return C[49] = dart.const({
        __proto__: async._RunBinaryZoneFunction.prototype,
        [$function$3]: C[50] || CT.C50,
        [zone$2]: C[44] || CT.C44
      });
    },
    get C52() {
      return C[52] = dart.fn(async._rootRegisterCallback, T$.ZoneAndZoneDelegateAndZone__ToFn());
    },
    get C51() {
      return C[51] = dart.const({
        __proto__: async._RegisterNullaryZoneFunction.prototype,
        [$function$4]: C[52] || CT.C52,
        [zone$3]: C[44] || CT.C44
      });
    },
    get C54() {
      return C[54] = dart.fn(async._rootRegisterUnaryCallback, T$.ZoneAndZoneDelegateAndZone__ToFn$1());
    },
    get C53() {
      return C[53] = dart.const({
        __proto__: async._RegisterUnaryZoneFunction.prototype,
        [$function$5]: C[54] || CT.C54,
        [zone$4]: C[44] || CT.C44
      });
    },
    get C56() {
      return C[56] = dart.fn(async._rootRegisterBinaryCallback, T$.ZoneAndZoneDelegateAndZone__ToFn$2());
    },
    get C55() {
      return C[55] = dart.const({
        __proto__: async._RegisterBinaryZoneFunction.prototype,
        [$function$6]: C[56] || CT.C56,
        [zone$5]: C[44] || CT.C44
      });
    },
    get C58() {
      return C[58] = dart.fn(async._rootErrorCallback, T$.ZoneAndZoneDelegateAndZone__ToAsyncErrorN());
    },
    get C57() {
      return C[57] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorN().prototype,
        [$function$0]: C[58] || CT.C58,
        [zone$]: C[44] || CT.C44
      });
    },
    get C60() {
      return C[60] = dart.fn(async._rootScheduleMicrotask, T$.ZoneNAndZoneDelegateNAndZone__Tovoid());
    },
    get C59() {
      return C[59] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid().prototype,
        [$function$0]: C[60] || CT.C60,
        [zone$]: C[44] || CT.C44
      });
    },
    get C62() {
      return C[62] = dart.fn(async._rootCreateTimer, T$.ZoneAndZoneDelegateAndZone__ToTimer());
    },
    get C61() {
      return C[61] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL().prototype,
        [$function$0]: C[62] || CT.C62,
        [zone$]: C[44] || CT.C44
      });
    },
    get C64() {
      return C[64] = dart.fn(async._rootCreatePeriodicTimer, T$.ZoneAndZoneDelegateAndZone__ToTimer$1());
    },
    get C63() {
      return C[63] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$1().prototype,
        [$function$0]: C[64] || CT.C64,
        [zone$]: C[44] || CT.C44
      });
    },
    get C66() {
      return C[66] = dart.fn(async._rootPrint, T$.ZoneAndZoneDelegateAndZone__Tovoid$1());
    },
    get C65() {
      return C[65] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$1().prototype,
        [$function$0]: C[66] || CT.C66,
        [zone$]: C[44] || CT.C44
      });
    },
    get C68() {
      return C[68] = dart.fn(async._rootFork, T$.ZoneNAndZoneDelegateNAndZone__ToZone());
    },
    get C67() {
      return C[67] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL().prototype,
        [$function$0]: C[68] || CT.C68,
        [zone$]: C[44] || CT.C44
      });
    },
    get C70() {
      return C[70] = dart.fn(async._rootHandleUncaughtError, T$.ZoneNAndZoneDelegateNAndZone__Tovoid$1());
    },
    get C69() {
      return C[69] = dart.const({
        __proto__: T$._ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$2().prototype,
        [$function$0]: C[70] || CT.C70,
        [zone$]: C[44] || CT.C44
      });
    },
    get C71() {
      return C[71] = dart.fn(async._startMicrotaskLoop, T$.VoidTovoid());
    },
    get C72() {
      return C[72] = dart.fn(async._printToZone, T$.StringTovoid());
    },
    get C73() {
      return C[73] = dart.const({
        __proto__: async._ZoneSpecification.prototype,
        [fork$]: null,
        [print$]: null,
        [createPeriodicTimer$]: null,
        [createTimer$]: null,
        [scheduleMicrotask$]: null,
        [errorCallback$]: null,
        [registerBinaryCallback$]: null,
        [registerUnaryCallback$]: null,
        [registerCallback$]: null,
        [runBinary$]: null,
        [runUnary$]: null,
        [run$]: null,
        [handleUncaughtError$]: null
      });
    },
    get C74() {
      return C[74] = dart.hashCode;
    },
    get C75() {
      return C[75] = dart.fn(core.identityHashCode, T$.ObjectNToint());
    },
    get C76() {
      return C[76] = dart.fn(core.identical, T$.ObjectNAndObjectNTobool());
    },
    get C77() {
      return C[77] = dart.equals;
    },
    get C78() {
      return C[78] = dart.fn(core.Comparable.compare, T$0.ComparableAndComparableToint());
    },
    get C79() {
      return C[79] = dart.fn(collection._dynamicCompare, T$.dynamicAnddynamicToint());
    },
    get C80() {
      return C[80] = dart.const({
        __proto__: convert.AsciiDecoder.prototype,
        [_UnicodeSubsetDecoder__subsetMask]: 127,
        [_UnicodeSubsetDecoder__allowInvalid]: true
      });
    },
    get C81() {
      return C[81] = dart.const({
        __proto__: convert.AsciiDecoder.prototype,
        [_UnicodeSubsetDecoder__subsetMask]: 127,
        [_UnicodeSubsetDecoder__allowInvalid]: false
      });
    },
    get C82() {
      return C[82] = dart.const({
        __proto__: convert.AsciiEncoder.prototype,
        [_UnicodeSubsetEncoder__subsetMask]: 127
      });
    },
    get C83() {
      return C[83] = dart.constList([239, 191, 189], T$0.intL());
    },
    get C84() {
      return C[84] = dart.const({
        __proto__: convert.Base64Encoder.prototype,
        [Base64Encoder__urlSafe]: false
      });
    },
    get C85() {
      return C[85] = dart.const({
        __proto__: convert.Base64Encoder.prototype,
        [Base64Encoder__urlSafe]: true
      });
    },
    get C86() {
      return C[86] = dart.const({
        __proto__: convert.Base64Decoder.prototype
      });
    },
    get C87() {
      return C[87] = dart.constList([], T$0.intL());
    },
    get C88() {
      return C[88] = dart.const({
        __proto__: convert.HtmlEscapeMode.prototype,
        [escapeSlash$]: true,
        [escapeApos$]: true,
        [escapeQuot$]: true,
        [escapeLtGt$]: true,
        [_name$2]: "unknown"
      });
    },
    get C89() {
      return C[89] = dart.const({
        __proto__: convert.HtmlEscapeMode.prototype,
        [escapeSlash$]: false,
        [escapeApos$]: false,
        [escapeQuot$]: true,
        [escapeLtGt$]: true,
        [_name$2]: "attribute"
      });
    },
    get C90() {
      return C[90] = dart.const({
        __proto__: convert.HtmlEscapeMode.prototype,
        [escapeSlash$]: false,
        [escapeApos$]: true,
        [escapeQuot$]: false,
        [escapeLtGt$]: true,
        [_name$2]: "attribute"
      });
    },
    get C91() {
      return C[91] = dart.const({
        __proto__: convert.HtmlEscapeMode.prototype,
        [escapeSlash$]: false,
        [escapeApos$]: false,
        [escapeQuot$]: false,
        [escapeLtGt$]: true,
        [_name$2]: "element"
      });
    },
    get C92() {
      return C[92] = dart.const({
        __proto__: convert.JsonEncoder.prototype,
        [JsonEncoder__toEncodable]: null,
        [JsonEncoder_indent]: null
      });
    },
    get C93() {
      return C[93] = dart.const({
        __proto__: convert.JsonDecoder.prototype,
        [JsonDecoder__reviver]: null
      });
    },
    get C94() {
      return C[94] = dart.fn(convert._defaultToEncodable, T$.dynamicTodynamic());
    },
    get C95() {
      return C[95] = dart.const({
        __proto__: convert.Latin1Decoder.prototype,
        [_UnicodeSubsetDecoder__subsetMask]: 255,
        [_UnicodeSubsetDecoder__allowInvalid]: true
      });
    },
    get C96() {
      return C[96] = dart.const({
        __proto__: convert.Latin1Decoder.prototype,
        [_UnicodeSubsetDecoder__subsetMask]: 255,
        [_UnicodeSubsetDecoder__allowInvalid]: false
      });
    },
    get C97() {
      return C[97] = dart.const({
        __proto__: convert.Latin1Encoder.prototype,
        [_UnicodeSubsetEncoder__subsetMask]: 255
      });
    },
    get C98() {
      return C[98] = dart.constList([65533], T$0.intL());
    },
    get C99() {
      return C[99] = dart.const({
        __proto__: convert.Utf8Decoder.prototype,
        [Utf8Decoder__allowMalformed]: true
      });
    },
    get C100() {
      return C[100] = dart.const({
        __proto__: convert.Utf8Decoder.prototype,
        [Utf8Decoder__allowMalformed]: false
      });
    },
    get C101() {
      return C[101] = dart.const({
        __proto__: convert.Utf8Encoder.prototype
      });
    },
    get C102() {
      return C[102] = dart.const({
        __proto__: convert.AsciiCodec.prototype,
        [_allowInvalid]: false
      });
    },
    get C103() {
      return C[103] = dart.const({
        __proto__: convert.Base64Codec.prototype,
        [_encoder]: C[84] || CT.C84
      });
    },
    get C104() {
      return C[104] = dart.const({
        __proto__: convert.Base64Codec.prototype,
        [_encoder]: C[85] || CT.C85
      });
    },
    get C105() {
      return C[105] = dart.const({
        __proto__: convert.HtmlEscape.prototype,
        [mode$]: C[88] || CT.C88
      });
    },
    get C106() {
      return C[106] = dart.const({
        __proto__: convert.JsonCodec.prototype,
        [_toEncodable]: null,
        [_reviver]: null
      });
    },
    get C107() {
      return C[107] = dart.const({
        __proto__: convert.Latin1Codec.prototype,
        [_allowInvalid$1]: false
      });
    },
    get C108() {
      return C[108] = dart.const({
        __proto__: convert.Utf8Codec.prototype,
        [_allowMalformed]: false
      });
    },
    get C109() {
      return C[109] = dart.const({
        __proto__: io.FileMode.prototype,
        [_mode$]: 0
      });
    },
    get C110() {
      return C[110] = dart.const({
        __proto__: io.FileMode.prototype,
        [_mode$]: 1
      });
    },
    get C111() {
      return C[111] = dart.const({
        __proto__: io.FileMode.prototype,
        [_mode$]: 2
      });
    },
    get C112() {
      return C[112] = dart.const({
        __proto__: io.FileMode.prototype,
        [_mode$]: 3
      });
    },
    get C113() {
      return C[113] = dart.const({
        __proto__: io.FileMode.prototype,
        [_mode$]: 4
      });
    },
    get C114() {
      return C[114] = dart.const({
        __proto__: io.FileLock.prototype,
        [_type$1]: 1
      });
    },
    get C115() {
      return C[115] = dart.const({
        __proto__: io.FileLock.prototype,
        [_type$1]: 2
      });
    },
    get C116() {
      return C[116] = dart.const({
        __proto__: io.FileLock.prototype,
        [_type$1]: 3
      });
    },
    get C117() {
      return C[117] = dart.const({
        __proto__: io.FileLock.prototype,
        [_type$1]: 4
      });
    },
    get C118() {
      return C[118] = dart.const({
        __proto__: convert.LineSplitter.prototype
      });
    },
    get C119() {
      return C[119] = dart.fn(io._FileResourceInfo.getOpenFiles, T$0.dynamicAnddynamicToFutureOfServiceExtensionResponse());
    },
    get C120() {
      return C[120] = dart.fn(io._FileResourceInfo.getOpenFileInfoMapByID, T$0.dynamicAnddynamicToFutureOfServiceExtensionResponse());
    },
    get C121() {
      return C[121] = dart.constList(["file", "directory", "link", "notFound"], T$.StringL());
    },
    get C122() {
      return C[122] = dart.const({
        __proto__: io.FileSystemEntityType.prototype,
        [_type$2]: 0
      });
    },
    get C123() {
      return C[123] = dart.const({
        __proto__: io.FileSystemEntityType.prototype,
        [_type$2]: 1
      });
    },
    get C124() {
      return C[124] = dart.const({
        __proto__: io.FileSystemEntityType.prototype,
        [_type$2]: 2
      });
    },
    get C125() {
      return C[125] = dart.const({
        __proto__: io.FileSystemEntityType.prototype,
        [_type$2]: 3
      });
    },
    get C126() {
      return C[126] = dart.constList([C[122] || CT.C122, C[123] || CT.C123, C[124] || CT.C124, C[125] || CT.C125], T$0.FileSystemEntityTypeL());
    },
    get C127() {
      return C[127] = dart.constList(["---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"], T$.StringL());
    },
    get C128() {
      return C[128] = dart.fn(io._NetworkProfiling._serviceExtensionHandler, T$0.StringAndMapOfString$StringToFutureOfServiceExtensionResponse());
    },
    get C129() {
      return C[129] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.startTime",
        index: 0
      });
    },
    get C130() {
      return C[130] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.endTime",
        index: 1
      });
    },
    get C131() {
      return C[131] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.address",
        index: 2
      });
    },
    get C132() {
      return C[132] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.port",
        index: 3
      });
    },
    get C133() {
      return C[133] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.socketType",
        index: 4
      });
    },
    get C134() {
      return C[134] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.readBytes",
        index: 5
      });
    },
    get C135() {
      return C[135] = dart.const({
        __proto__: io._SocketProfileType.prototype,
        [_name$4]: "_SocketProfileType.writeBytes",
        index: 6
      });
    },
    get C136() {
      return C[136] = dart.constList([C[129] || CT.C129, C[130] || CT.C130, C[131] || CT.C131, C[132] || CT.C132, C[133] || CT.C133, C[134] || CT.C134, C[135] || CT.C135], T$0._SocketProfileTypeL());
    },
    get C138() {
      return C[138] = dart.const({
        __proto__: io.ProcessStartMode.prototype,
        [_mode$0]: 0
      });
    },
    get C139() {
      return C[139] = dart.const({
        __proto__: io.ProcessStartMode.prototype,
        [_mode$0]: 1
      });
    },
    get C140() {
      return C[140] = dart.const({
        __proto__: io.ProcessStartMode.prototype,
        [_mode$0]: 2
      });
    },
    get C141() {
      return C[141] = dart.const({
        __proto__: io.ProcessStartMode.prototype,
        [_mode$0]: 3
      });
    },
    get C137() {
      return C[137] = dart.constList([C[138] || CT.C138, C[139] || CT.C139, C[140] || CT.C140, C[141] || CT.C141], T$0.ProcessStartModeL());
    },
    get C142() {
      return C[142] = dart.constList(["normal", "inheritStdio", "detached", "detachedWithStdio"], T$.StringL());
    },
    get C143() {
      return C[143] = dart.const({
        __proto__: io.SystemEncoding.prototype
      });
    },
    get C144() {
      return C[144] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGTERM",
        [ProcessSignal__signalNumber]: 15
      });
    },
    get C145() {
      return C[145] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGHUP",
        [ProcessSignal__signalNumber]: 1
      });
    },
    get C146() {
      return C[146] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGINT",
        [ProcessSignal__signalNumber]: 2
      });
    },
    get C147() {
      return C[147] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGQUIT",
        [ProcessSignal__signalNumber]: 3
      });
    },
    get C148() {
      return C[148] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGILL",
        [ProcessSignal__signalNumber]: 4
      });
    },
    get C149() {
      return C[149] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGTRAP",
        [ProcessSignal__signalNumber]: 5
      });
    },
    get C150() {
      return C[150] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGABRT",
        [ProcessSignal__signalNumber]: 6
      });
    },
    get C151() {
      return C[151] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGBUS",
        [ProcessSignal__signalNumber]: 7
      });
    },
    get C152() {
      return C[152] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGFPE",
        [ProcessSignal__signalNumber]: 8
      });
    },
    get C153() {
      return C[153] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGKILL",
        [ProcessSignal__signalNumber]: 9
      });
    },
    get C154() {
      return C[154] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGUSR1",
        [ProcessSignal__signalNumber]: 10
      });
    },
    get C155() {
      return C[155] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGSEGV",
        [ProcessSignal__signalNumber]: 11
      });
    },
    get C156() {
      return C[156] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGUSR2",
        [ProcessSignal__signalNumber]: 12
      });
    },
    get C157() {
      return C[157] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGPIPE",
        [ProcessSignal__signalNumber]: 13
      });
    },
    get C158() {
      return C[158] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGALRM",
        [ProcessSignal__signalNumber]: 14
      });
    },
    get C159() {
      return C[159] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGCHLD",
        [ProcessSignal__signalNumber]: 17
      });
    },
    get C160() {
      return C[160] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGCONT",
        [ProcessSignal__signalNumber]: 18
      });
    },
    get C161() {
      return C[161] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGSTOP",
        [ProcessSignal__signalNumber]: 19
      });
    },
    get C162() {
      return C[162] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGTSTP",
        [ProcessSignal__signalNumber]: 20
      });
    },
    get C163() {
      return C[163] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGTTIN",
        [ProcessSignal__signalNumber]: 21
      });
    },
    get C164() {
      return C[164] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGTTOU",
        [ProcessSignal__signalNumber]: 22
      });
    },
    get C165() {
      return C[165] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGURG",
        [ProcessSignal__signalNumber]: 23
      });
    },
    get C166() {
      return C[166] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGXCPU",
        [ProcessSignal__signalNumber]: 24
      });
    },
    get C167() {
      return C[167] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGXFSZ",
        [ProcessSignal__signalNumber]: 25
      });
    },
    get C168() {
      return C[168] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGVTALRM",
        [ProcessSignal__signalNumber]: 26
      });
    },
    get C169() {
      return C[169] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGPROF",
        [ProcessSignal__signalNumber]: 27
      });
    },
    get C170() {
      return C[170] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGWINCH",
        [ProcessSignal__signalNumber]: 28
      });
    },
    get C171() {
      return C[171] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGPOLL",
        [ProcessSignal__signalNumber]: 29
      });
    },
    get C172() {
      return C[172] = dart.const({
        __proto__: io.ProcessSignal.prototype,
        [ProcessSignal__name]: "SIGSYS",
        [ProcessSignal__signalNumber]: 31
      });
    },
    get C173() {
      return C[173] = dart.constList(["RawSocketEvent.read", "RawSocketEvent.write", "RawSocketEvent.readClosed", "RawSocketEvent.closed"], T$.StringL());
    },
    get C174() {
      return C[174] = dart.const({
        __proto__: io.RawSocketEvent.prototype,
        [_value$]: 0
      });
    },
    get C175() {
      return C[175] = dart.const({
        __proto__: io.RawSocketEvent.prototype,
        [_value$]: 1
      });
    },
    get C176() {
      return C[176] = dart.const({
        __proto__: io.RawSocketEvent.prototype,
        [_value$]: 2
      });
    },
    get C177() {
      return C[177] = dart.const({
        __proto__: io.RawSocketEvent.prototype,
        [_value$]: 3
      });
    },
    get C178() {
      return C[178] = dart.constList(["ANY", "IPv4", "IPv6", "Unix"], T$.StringL());
    },
    get C179() {
      return C[179] = dart.const({
        __proto__: io.InternetAddressType.prototype,
        [_value$1]: 0
      });
    },
    get C180() {
      return C[180] = dart.const({
        __proto__: io.InternetAddressType.prototype,
        [_value$1]: 1
      });
    },
    get C181() {
      return C[181] = dart.const({
        __proto__: io.InternetAddressType.prototype,
        [_value$1]: 2
      });
    },
    get C182() {
      return C[182] = dart.const({
        __proto__: io.InternetAddressType.prototype,
        [_value$1]: -1
      });
    },
    get C183() {
      return C[183] = dart.const({
        __proto__: io.SocketDirection.prototype,
        [_value$2]: 0
      });
    },
    get C184() {
      return C[184] = dart.const({
        __proto__: io.SocketDirection.prototype,
        [_value$2]: 1
      });
    },
    get C185() {
      return C[185] = dart.const({
        __proto__: io.SocketDirection.prototype,
        [_value$2]: 2
      });
    },
    get C186() {
      return C[186] = dart.const({
        __proto__: io.SocketOption.prototype,
        [_value$3]: 0
      });
    },
    get C187() {
      return C[187] = dart.const({
        __proto__: io.SocketOption.prototype,
        [_value$3]: 1
      });
    },
    get C188() {
      return C[188] = dart.const({
        __proto__: io.SocketOption.prototype,
        [_value$3]: 2
      });
    },
    get C189() {
      return C[189] = dart.const({
        __proto__: io.SocketOption.prototype,
        [_value$3]: 3
      });
    },
    get C190() {
      return C[190] = dart.const({
        __proto__: io.SocketOption.prototype,
        [_value$3]: 4
      });
    },
    get C191() {
      return C[191] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.SOL_SOCKET",
        index: 0
      });
    },
    get C192() {
      return C[192] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IPPROTO_IP",
        index: 1
      });
    },
    get C193() {
      return C[193] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IP_MULTICAST_IF",
        index: 2
      });
    },
    get C194() {
      return C[194] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IPPROTO_IPV6",
        index: 3
      });
    },
    get C195() {
      return C[195] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IPV6_MULTICAST_IF",
        index: 4
      });
    },
    get C196() {
      return C[196] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IPPROTO_TCP",
        index: 5
      });
    },
    get C197() {
      return C[197] = dart.const({
        __proto__: io._RawSocketOptions.prototype,
        [_name$4]: "_RawSocketOptions.IPPROTO_UDP",
        index: 6
      });
    },
    get C198() {
      return C[198] = dart.constList([C[191] || CT.C191, C[192] || CT.C192, C[193] || CT.C193, C[194] || CT.C194, C[195] || CT.C195, C[196] || CT.C196, C[197] || CT.C197], T$0._RawSocketOptionsL());
    },
    get C199() {
      return C[199] = dart.const({
        __proto__: io.StdioType.prototype,
        [name$11]: "terminal"
      });
    },
    get C200() {
      return C[200] = dart.const({
        __proto__: io.StdioType.prototype,
        [name$11]: "pipe"
      });
    },
    get C201() {
      return C[201] = dart.const({
        __proto__: io.StdioType.prototype,
        [name$11]: "file"
      });
    },
    get C202() {
      return C[202] = dart.const({
        __proto__: io.StdioType.prototype,
        [name$11]: "other"
      });
    },
    get C203() {
      return C[203] = dart.const({
        __proto__: io._WindowsCodePageEncoder.prototype
      });
    },
    get C204() {
      return C[204] = dart.const({
        __proto__: io._WindowsCodePageDecoder.prototype
      });
    },
    get C205() {
      return C[205] = dart.constList([1, 2, 3, 4, 0], T$0.intL());
    },
    get C206() {
      return C[206] = dart.const({
        __proto__: io.ZLibCodec.prototype,
        [dictionary$]: null,
        [raw$]: false,
        [windowBits$]: 15,
        [strategy$]: 0,
        [memLevel$]: 8,
        [level$]: 6,
        [gzip$]: false
      });
    },
    get C207() {
      return C[207] = dart.const({
        __proto__: io.GZipCodec.prototype,
        [raw$0]: false,
        [dictionary$0]: null,
        [windowBits$0]: 15,
        [strategy$0]: 0,
        [memLevel$0]: 8,
        [level$0]: 6,
        [gzip$0]: true
      });
    },
    get C208() {
      return C[208] = dart.fn(async.runZoned, T$0.Fn__ToR());
    },
    get C209() {
      return C[209] = dart.fn(js._convertToJS, T$.ObjectNToObjectN());
    },
    get C210() {
      return C[210] = dart.fn(js._wrapDartFunction, T$0.ObjectToObject());
    },
    get C211() {
      return C[211] = dart.fn(js._wrapToDartHelper, T$0.ObjectToJsObject());
    },
    get C212() {
      return C[212] = dart.const({
        __proto__: math._JSRandom.prototype
      });
    },
    get C213() {
      return C[213] = dart.const({
        __proto__: typed_data.Endian.prototype,
        [Endian__littleEndian]: true
      });
    },
    get C214() {
      return C[214] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "abort"
      });
    },
    get C215() {
      return C[215] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "close"
      });
    },
    get C216() {
      return C[216] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "error"
      });
    },
    get C217() {
      return C[217] = dart.const({
        __proto__: T$0.EventStreamProviderOfVersionChangeEventL().prototype,
        [S.EventStreamProvider__eventType]: "versionchange"
      });
    },
    get C218() {
      return C[218] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "success"
      });
    },
    get C219() {
      return C[219] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "blocked"
      });
    },
    get C220() {
      return C[220] = dart.const({
        __proto__: T$0.EventStreamProviderOfVersionChangeEventL().prototype,
        [S.EventStreamProvider__eventType]: "upgradeneeded"
      });
    },
    get C221() {
      return C[221] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "complete"
      });
    },
    get C222() {
      return C[222] = dart.const({
        __proto__: _js_helper.Creates.prototype,
        [types$0]: "JSExtendableArray|=Object|num|String"
      });
    },
    get C223() {
      return C[223] = dart.const({
        __proto__: _js_helper.Returns.prototype,
        [types$1]: "JSExtendableArray|=Object|num|String"
      });
    },
    get C224() {
      return C[224] = dart.fn(html_common.convertDartToNative_Dictionary, T$0.MapNAndFnTodynamic());
    },
    get C226() {
      return C[226] = dart.fn(html$.Element._determineMouseWheelEventType, T$0.EventTargetToString());
    },
    get C225() {
      return C[225] = dart.const({
        __proto__: T$0._CustomEventStreamProviderOfWheelEventL().prototype,
        [S$._CustomEventStreamProvider__eventTypeGetter]: C[226] || CT.C226
      });
    },
    get C228() {
      return C[228] = dart.fn(html$.Element._determineTransitionEventType, T$0.EventTargetToString());
    },
    get C227() {
      return C[227] = dart.const({
        __proto__: T$0._CustomEventStreamProviderOfTransitionEventL().prototype,
        [S$._CustomEventStreamProvider__eventTypeGetter]: C[228] || CT.C228
      });
    },
    get C229() {
      return C[229] = dart.constList(["HEAD", "AREA", "BASE", "BASEFONT", "BR", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"], T$.StringL());
    },
    get C230() {
      return C[230] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "beforecopy"
      });
    },
    get C231() {
      return C[231] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "beforecut"
      });
    },
    get C232() {
      return C[232] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "beforepaste"
      });
    },
    get C233() {
      return C[233] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "blur"
      });
    },
    get C234() {
      return C[234] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "canplay"
      });
    },
    get C235() {
      return C[235] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "canplaythrough"
      });
    },
    get C236() {
      return C[236] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "change"
      });
    },
    get C237() {
      return C[237] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "click"
      });
    },
    get C238() {
      return C[238] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "contextmenu"
      });
    },
    get C239() {
      return C[239] = dart.const({
        __proto__: T$0.EventStreamProviderOfClipboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "copy"
      });
    },
    get C240() {
      return C[240] = dart.const({
        __proto__: T$0.EventStreamProviderOfClipboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "cut"
      });
    },
    get C241() {
      return C[241] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "dblclick"
      });
    },
    get C242() {
      return C[242] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "drag"
      });
    },
    get C243() {
      return C[243] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "dragend"
      });
    },
    get C244() {
      return C[244] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "dragenter"
      });
    },
    get C245() {
      return C[245] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "dragleave"
      });
    },
    get C246() {
      return C[246] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "dragover"
      });
    },
    get C247() {
      return C[247] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "dragstart"
      });
    },
    get C248() {
      return C[248] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "drop"
      });
    },
    get C249() {
      return C[249] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "durationchange"
      });
    },
    get C250() {
      return C[250] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "emptied"
      });
    },
    get C251() {
      return C[251] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "ended"
      });
    },
    get C252() {
      return C[252] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "focus"
      });
    },
    get C253() {
      return C[253] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "input"
      });
    },
    get C254() {
      return C[254] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "invalid"
      });
    },
    get C255() {
      return C[255] = dart.const({
        __proto__: T$0.EventStreamProviderOfKeyboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "keydown"
      });
    },
    get C256() {
      return C[256] = dart.const({
        __proto__: T$0.EventStreamProviderOfKeyboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "keypress"
      });
    },
    get C257() {
      return C[257] = dart.const({
        __proto__: T$0.EventStreamProviderOfKeyboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "keyup"
      });
    },
    get C258() {
      return C[258] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "load"
      });
    },
    get C259() {
      return C[259] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadeddata"
      });
    },
    get C260() {
      return C[260] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadedmetadata"
      });
    },
    get C261() {
      return C[261] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mousedown"
      });
    },
    get C262() {
      return C[262] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mouseenter"
      });
    },
    get C263() {
      return C[263] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mouseleave"
      });
    },
    get C264() {
      return C[264] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mousemove"
      });
    },
    get C265() {
      return C[265] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mouseout"
      });
    },
    get C266() {
      return C[266] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mouseover"
      });
    },
    get C267() {
      return C[267] = dart.const({
        __proto__: T$0.EventStreamProviderOfMouseEventL().prototype,
        [S.EventStreamProvider__eventType]: "mouseup"
      });
    },
    get C268() {
      return C[268] = dart.const({
        __proto__: T$0.EventStreamProviderOfClipboardEventL().prototype,
        [S.EventStreamProvider__eventType]: "paste"
      });
    },
    get C269() {
      return C[269] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "pause"
      });
    },
    get C270() {
      return C[270] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "play"
      });
    },
    get C271() {
      return C[271] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "playing"
      });
    },
    get C272() {
      return C[272] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "ratechange"
      });
    },
    get C273() {
      return C[273] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "reset"
      });
    },
    get C274() {
      return C[274] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "resize"
      });
    },
    get C275() {
      return C[275] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "scroll"
      });
    },
    get C276() {
      return C[276] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "search"
      });
    },
    get C277() {
      return C[277] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "seeked"
      });
    },
    get C278() {
      return C[278] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "seeking"
      });
    },
    get C279() {
      return C[279] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "select"
      });
    },
    get C280() {
      return C[280] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "selectstart"
      });
    },
    get C281() {
      return C[281] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "stalled"
      });
    },
    get C282() {
      return C[282] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "submit"
      });
    },
    get C283() {
      return C[283] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "suspend"
      });
    },
    get C284() {
      return C[284] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "timeupdate"
      });
    },
    get C285() {
      return C[285] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchcancel"
      });
    },
    get C286() {
      return C[286] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchend"
      });
    },
    get C287() {
      return C[287] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchenter"
      });
    },
    get C288() {
      return C[288] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchleave"
      });
    },
    get C289() {
      return C[289] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchmove"
      });
    },
    get C290() {
      return C[290] = dart.const({
        __proto__: T$0.EventStreamProviderOfTouchEventL().prototype,
        [S.EventStreamProvider__eventType]: "touchstart"
      });
    },
    get C291() {
      return C[291] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "volumechange"
      });
    },
    get C292() {
      return C[292] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "waiting"
      });
    },
    get C293() {
      return C[293] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "webkitfullscreenchange"
      });
    },
    get C294() {
      return C[294] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "webkitfullscreenerror"
      });
    },
    get C295() {
      return C[295] = dart.const({
        __proto__: T$0.EventStreamProviderOfWheelEventL().prototype,
        [S.EventStreamProvider__eventType]: "wheel"
      });
    },
    get C296() {
      return C[296] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessibleclick"
      });
    },
    get C297() {
      return C[297] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessiblecontextmenu"
      });
    },
    get C298() {
      return C[298] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessibledecrement"
      });
    },
    get C299() {
      return C[299] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessiblefocus"
      });
    },
    get C300() {
      return C[300] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessibleincrement"
      });
    },
    get C301() {
      return C[301] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "accessiblescrollintoview"
      });
    },
    get C302() {
      return C[302] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "cancel"
      });
    },
    get C303() {
      return C[303] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "finish"
      });
    },
    get C304() {
      return C[304] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "cached"
      });
    },
    get C305() {
      return C[305] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "checking"
      });
    },
    get C306() {
      return C[306] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "downloading"
      });
    },
    get C307() {
      return C[307] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "noupdate"
      });
    },
    get C308() {
      return C[308] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "obsolete"
      });
    },
    get C309() {
      return C[309] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "progress"
      });
    },
    get C310() {
      return C[310] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "updateready"
      });
    },
    get C311() {
      return C[311] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "hashchange"
      });
    },
    get C312() {
      return C[312] = dart.const({
        __proto__: T$0.EventStreamProviderOfMessageEventL().prototype,
        [S.EventStreamProvider__eventType]: "message"
      });
    },
    get C313() {
      return C[313] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "offline"
      });
    },
    get C314() {
      return C[314] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "online"
      });
    },
    get C315() {
      return C[315] = dart.const({
        __proto__: T$0.EventStreamProviderOfPopStateEventL().prototype,
        [S.EventStreamProvider__eventType]: "popstate"
      });
    },
    get C316() {
      return C[316] = dart.const({
        __proto__: T$0.EventStreamProviderOfStorageEventL().prototype,
        [S.EventStreamProvider__eventType]: "storage"
      });
    },
    get C317() {
      return C[317] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "unload"
      });
    },
    get C318() {
      return C[318] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "mute"
      });
    },
    get C319() {
      return C[319] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "unmute"
      });
    },
    get C320() {
      return C[320] = dart.const({
        __proto__: T$0.EventStreamProviderOfContextEventL().prototype,
        [S.EventStreamProvider__eventType]: "webglcontextlost"
      });
    },
    get C321() {
      return C[321] = dart.const({
        __proto__: T$0.EventStreamProviderOfContextEventL().prototype,
        [S.EventStreamProvider__eventType]: "webglcontextrestored"
      });
    },
    get C322() {
      return C[322] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "pointerlockchange"
      });
    },
    get C323() {
      return C[323] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "pointerlockerror"
      });
    },
    get C324() {
      return C[324] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "readystatechange"
      });
    },
    get C325() {
      return C[325] = dart.const({
        __proto__: T$0.EventStreamProviderOfSecurityPolicyViolationEventL().prototype,
        [S.EventStreamProvider__eventType]: "securitypolicyviolation"
      });
    },
    get C326() {
      return C[326] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "selectionchange"
      });
    },
    get C327() {
      return C[327] = dart.const({
        __proto__: html$.ScrollAlignment.prototype,
        [S$1._value$6]: "TOP"
      });
    },
    get C328() {
      return C[328] = dart.const({
        __proto__: html$.ScrollAlignment.prototype,
        [S$1._value$6]: "CENTER"
      });
    },
    get C329() {
      return C[329] = dart.const({
        __proto__: html$.ScrollAlignment.prototype,
        [S$1._value$6]: "BOTTOM"
      });
    },
    get C330() {
      return C[330] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "open"
      });
    },
    get C331() {
      return C[331] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "abort"
      });
    },
    get C332() {
      return C[332] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "error"
      });
    },
    get C333() {
      return C[333] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "load"
      });
    },
    get C334() {
      return C[334] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadend"
      });
    },
    get C335() {
      return C[335] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadstart"
      });
    },
    get C336() {
      return C[336] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "write"
      });
    },
    get C337() {
      return C[337] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "writeend"
      });
    },
    get C338() {
      return C[338] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "writestart"
      });
    },
    get C339() {
      return C[339] = dart.const({
        __proto__: T$0.EventStreamProviderOfFontFaceSetLoadEventL().prototype,
        [S.EventStreamProvider__eventType]: "loading"
      });
    },
    get C340() {
      return C[340] = dart.const({
        __proto__: T$0.EventStreamProviderOfFontFaceSetLoadEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadingdone"
      });
    },
    get C341() {
      return C[341] = dart.const({
        __proto__: T$0.EventStreamProviderOfFontFaceSetLoadEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadingerror"
      });
    },
    get C342() {
      return C[342] = dart.const({
        __proto__: T$0.EventStreamProviderOfWheelEventL().prototype,
        [S.EventStreamProvider__eventType]: "mousewheel"
      });
    },
    get C344() {
      return C[344] = dart.fn(html$.HtmlDocument._determineVisibilityChangeEventType, T$0.EventTargetToString());
    },
    get C343() {
      return C[343] = dart.const({
        __proto__: T$0._CustomEventStreamProviderOfEventL().prototype,
        [S$._CustomEventStreamProvider__eventTypeGetter]: C[344] || CT.C344
      });
    },
    get C345() {
      return C[345] = dart.const({
        __proto__: T$0.EventStreamProviderOfProgressEventL().prototype,
        [S.EventStreamProvider__eventType]: "timeout"
      });
    },
    get C346() {
      return C[346] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "addtrack"
      });
    },
    get C347() {
      return C[347] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "removetrack"
      });
    },
    get C348() {
      return C[348] = dart.constList([], T$0.MessagePortL());
    },
    get C349() {
      return C[349] = dart.const({
        __proto__: T$0.EventStreamProviderOfMidiMessageEventL().prototype,
        [S.EventStreamProvider__eventType]: "midimessage"
      });
    },
    get C350() {
      return C[350] = dart.constMap(T$.StringL(), T$0.boolL(), ["childList", true, "attributes", true, "characterData", true, "subtree", true, "attributeOldValue", true, "characterDataOldValue", true]);
    },
    get C351() {
      return C[351] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "click"
      });
    },
    get C352() {
      return C[352] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "show"
      });
    },
    get C353() {
      return C[353] = dart.const({
        __proto__: T$0.EventStreamProviderOfRtcDtmfToneChangeEventL().prototype,
        [S.EventStreamProvider__eventType]: "tonechange"
      });
    },
    get C354() {
      return C[354] = dart.const({
        __proto__: T$0.EventStreamProviderOfMediaStreamEventL().prototype,
        [S.EventStreamProvider__eventType]: "addstream"
      });
    },
    get C355() {
      return C[355] = dart.const({
        __proto__: T$0.EventStreamProviderOfRtcDataChannelEventL().prototype,
        [S.EventStreamProvider__eventType]: "datachannel"
      });
    },
    get C356() {
      return C[356] = dart.const({
        __proto__: T$0.EventStreamProviderOfRtcPeerConnectionIceEventL().prototype,
        [S.EventStreamProvider__eventType]: "icecandidate"
      });
    },
    get C357() {
      return C[357] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "iceconnectionstatechange"
      });
    },
    get C358() {
      return C[358] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "negotiationneeded"
      });
    },
    get C359() {
      return C[359] = dart.const({
        __proto__: T$0.EventStreamProviderOfMediaStreamEventL().prototype,
        [S.EventStreamProvider__eventType]: "removestream"
      });
    },
    get C360() {
      return C[360] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "signalingstatechange"
      });
    },
    get C361() {
      return C[361] = dart.const({
        __proto__: T$0.EventStreamProviderOfRtcTrackEventL().prototype,
        [S.EventStreamProvider__eventType]: "track"
      });
    },
    get C362() {
      return C[362] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "activate"
      });
    },
    get C363() {
      return C[363] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "fetch"
      });
    },
    get C364() {
      return C[364] = dart.const({
        __proto__: T$0.EventStreamProviderOfForeignFetchEventL().prototype,
        [S.EventStreamProvider__eventType]: "foreignfetch"
      });
    },
    get C365() {
      return C[365] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "install"
      });
    },
    get C366() {
      return C[366] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "connect"
      });
    },
    get C367() {
      return C[367] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "audioend"
      });
    },
    get C368() {
      return C[368] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "audiostart"
      });
    },
    get C369() {
      return C[369] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "end"
      });
    },
    get C370() {
      return C[370] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechRecognitionErrorL().prototype,
        [S.EventStreamProvider__eventType]: "error"
      });
    },
    get C371() {
      return C[371] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechRecognitionEventL().prototype,
        [S.EventStreamProvider__eventType]: "nomatch"
      });
    },
    get C372() {
      return C[372] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechRecognitionEventL().prototype,
        [S.EventStreamProvider__eventType]: "result"
      });
    },
    get C373() {
      return C[373] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "soundend"
      });
    },
    get C374() {
      return C[374] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "soundstart"
      });
    },
    get C375() {
      return C[375] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "speechend"
      });
    },
    get C376() {
      return C[376] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "speechstart"
      });
    },
    get C377() {
      return C[377] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "start"
      });
    },
    get C378() {
      return C[378] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechSynthesisEventL().prototype,
        [S.EventStreamProvider__eventType]: "boundary"
      });
    },
    get C379() {
      return C[379] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechSynthesisEventL().prototype,
        [S.EventStreamProvider__eventType]: "end"
      });
    },
    get C380() {
      return C[380] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechSynthesisEventL().prototype,
        [S.EventStreamProvider__eventType]: "mark"
      });
    },
    get C381() {
      return C[381] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechSynthesisEventL().prototype,
        [S.EventStreamProvider__eventType]: "resume"
      });
    },
    get C382() {
      return C[382] = dart.const({
        __proto__: T$0.EventStreamProviderOfSpeechSynthesisEventL().prototype,
        [S.EventStreamProvider__eventType]: "start"
      });
    },
    get C383() {
      return C[383] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "cuechange"
      });
    },
    get C384() {
      return C[384] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "enter"
      });
    },
    get C385() {
      return C[385] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "exit"
      });
    },
    get C386() {
      return C[386] = dart.const({
        __proto__: T$0.EventStreamProviderOfTrackEventL().prototype,
        [S.EventStreamProvider__eventType]: "addtrack"
      });
    },
    get C387() {
      return C[387] = dart.const({
        __proto__: T$0.EventStreamProviderOfCloseEventL().prototype,
        [S.EventStreamProvider__eventType]: "close"
      });
    },
    get C388() {
      return C[388] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "DOMContentLoaded"
      });
    },
    get C389() {
      return C[389] = dart.const({
        __proto__: T$0.EventStreamProviderOfDeviceMotionEventL().prototype,
        [S.EventStreamProvider__eventType]: "devicemotion"
      });
    },
    get C390() {
      return C[390] = dart.const({
        __proto__: T$0.EventStreamProviderOfDeviceOrientationEventL().prototype,
        [S.EventStreamProvider__eventType]: "deviceorientation"
      });
    },
    get C391() {
      return C[391] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "loadstart"
      });
    },
    get C392() {
      return C[392] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "pagehide"
      });
    },
    get C393() {
      return C[393] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "pageshow"
      });
    },
    get C394() {
      return C[394] = dart.const({
        __proto__: T$0.EventStreamProviderOfEventL().prototype,
        [S.EventStreamProvider__eventType]: "progress"
      });
    },
    get C395() {
      return C[395] = dart.const({
        __proto__: T$0.EventStreamProviderOfAnimationEventL().prototype,
        [S.EventStreamProvider__eventType]: "webkitAnimationEnd"
      });
    },
    get C396() {
      return C[396] = dart.const({
        __proto__: T$0.EventStreamProviderOfAnimationEventL().prototype,
        [S.EventStreamProvider__eventType]: "webkitAnimationIteration"
      });
    },
    get C397() {
      return C[397] = dart.const({
        __proto__: T$0.EventStreamProviderOfAnimationEventL().prototype,
        [S.EventStreamProvider__eventType]: "webkitAnimationStart"
      });
    },
    get C398() {
      return C[398] = dart.const({
        __proto__: html$._BeforeUnloadEventStreamProvider.prototype,
        [S$3._BeforeUnloadEventStreamProvider__eventType]: "beforeunload"
      });
    },
    get C399() {
      return C[399] = dart.fn(html$._Html5NodeValidator._standardAttributeValidator, T$0.ElementAndStringAndString__Tobool());
    },
    get C400() {
      return C[400] = dart.fn(html$._Html5NodeValidator._uriAttributeValidator, T$0.ElementAndStringAndString__Tobool());
    },
    get C401() {
      return C[401] = dart.constList(["*::class", "*::dir", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohref", "AREA::shape", "AREA::tabindex", "AREA::target", "AUDIO::controls", "AUDIO::loop", "AUDIO::mediagroup", "AUDIO::muted", "AUDIO::preload", "BDO::dir", "BODY::alink", "BODY::bgcolor", "BODY::link", "BODY::text", "BODY::vlink", "BR::clear", "BUTTON::accesskey", "BUTTON::disabled", "BUTTON::name", "BUTTON::tabindex", "BUTTON::type", "BUTTON::value", "CANVAS::height", "CANVAS::width", "CAPTION::align", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "COL::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP::span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::command", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::type", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::align", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::size", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::align", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::noshade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameborder", "IFRAME::height", "IFRAME::marginheight", "IFRAME::marginwidth", "IFRAME::width", "IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width", "INPUT::accept", "INPUT::accesskey", "INPUT::align", "INPUT::alt", "INPUT::autocomplete", "INPUT::autofocus", "INPUT::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPUT::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "INPUT::name", "INPUT::placeholder", "INPUT::readonly", "INPUT::required", "INPUT::size", "INPUT::step", "INPUT::tabindex", "INPUT::type", "INPUT::usemap", "INPUT::value", "INS::datetime", "KEYGEN::disabled", "KEYGEN::keytype", "KEYGEN::name", "LABEL::accesskey", "LABEL::for", "LEGEND::accesskey", "LEGEND::align", "LI::type", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "MENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::value", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::type", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::label", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::align", "PRE::width", "PROGRESS::max", "PROGRESS::min", "PROGRESS::value", "SELECT::autocomplete", "SELECT::disabled", "SELECT::multiple", "SELECT::name", "SELECT::required", "SELECT::size", "SELECT::tabindex", "SOURCE::type", "TABLE::align", "TABLE::bgcolor", "TABLE::border", "TABLE::cellpadding", "TABLE::cellspacing", "TABLE::frame", "TABLE::rules", "TABLE::summary", "TABLE::width", "TBODY::align", "TBODY::char", "TBODY::charoff", "TBODY::valign", "TD::abbr", "TD::align", "TD::axis", "TD::bgcolor", "TD::char", "TD::charoff", "TD::colspan", "TD::headers", "TD::height", "TD::nowrap", "TD::rowspan", "TD::scope", "TD::valign", "TD::width", "TEXTAREA::accesskey", "TEXTAREA::autocomplete", "TEXTAREA::cols", "TEXTAREA::disabled", "TEXTAREA::inputmode", "TEXTAREA::name", "TEXTAREA::placeholder", "TEXTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex", "TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::valign", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charoff", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::charoff", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "TR::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", "UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VIDEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"], T$.StringL());
    },
    get C402() {
      return C[402] = dart.constList(["A::href", "AREA::href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FORM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"], T$.StringL());
    },
    get C403() {
      return C[403] = dart.constMap(T$.StringL(), T$0.intL(), ["Up", 38, "Down", 40, "Left", 37, "Right", 39, "Enter", 13, "F1", 112, "F2", 113, "F3", 114, "F4", 115, "F5", 116, "F6", 117, "F7", 118, "F8", 119, "F9", 120, "F10", 121, "F11", 122, "F12", 123, "U+007F", 46, "Home", 36, "End", 35, "PageUp", 33, "PageDown", 34, "Insert", 45]);
    },
    get C404() {
      return C[404] = dart.constList([], T$.StringL());
    },
    get C405() {
      return C[405] = dart.constList(["A", "FORM"], T$.StringL());
    },
    get C406() {
      return C[406] = dart.constList(["A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target"], T$.StringL());
    },
    get C407() {
      return C[407] = dart.constList(["A::href", "FORM::action"], T$.StringL());
    },
    get C408() {
      return C[408] = dart.constList(["IMG"], T$.StringL());
    },
    get C409() {
      return C[409] = dart.constList(["IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width"], T$.StringL());
    },
    get C410() {
      return C[410] = dart.constList(["IMG::src"], T$.StringL());
    },
    get C411() {
      return C[411] = dart.constList(["B", "BLOCKQUOTE", "BR", "EM", "H1", "H2", "H3", "H4", "H5", "H6", "HR", "I", "LI", "OL", "P", "SPAN", "UL"], T$.StringL());
    },
    get C412() {
      return C[412] = dart.constList(["bind", "if", "ref", "repeat", "syntax"], T$.StringL());
    },
    get C413() {
      return C[413] = dart.const({
        __proto__: html$.Console.prototype
      });
    },
    get C414() {
      return C[414] = dart.const({
        __proto__: html$._TrustedHtmlTreeSanitizer.prototype
      });
    },
    get C415() {
      return C[415] = dart.fn(html_common.convertNativeToDart_Dictionary, T$0.dynamicToMapNOfString$dynamic());
    },
    get C416() {
      return C[416] = dart.const({
        __proto__: _js_helper.Creates.prototype,
        [types$0]: "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort"
      });
    },
    get C417() {
      return C[417] = dart.const({
        __proto__: _js_helper.Returns.prototype,
        [types$1]: "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort"
      });
    },
    get C418() {
      return C[418] = dart.const({
        __proto__: T$0.EventStreamProviderOfAudioProcessingEventL().prototype,
        [S.EventStreamProvider__eventType]: "audioprocess"
      });
    },
    get C419() {
      return C[419] = dart.const({
        __proto__: core.IntegerDivisionByZeroException.prototype
      });
    },
    get C420() {
      return C[420] = dart.const({
        __proto__: core.Duration.prototype,
        [_duration$]: 0
      });
    },
    get C421() {
      return C[421] = dart.constList([], T$.ObjectN());
    },
    get C422() {
      return C[422] = dart.constMap(T$.SymbolL(), T$.ObjectN(), []);
    },
    get C423() {
      return C[423] = dart.constList([], T$.ObjectL());
    },
    get C424() {
      return C[424] = dart.constMap(T$.SymbolL(), T$.ObjectL(), []);
    },
    get C425() {
      return C[425] = dart.fn(core._GeneratorIterable._id, T$0.intToint());
    },
    get C426() {
      return C[426] = dart.const({
        __proto__: core._StringStackTrace.prototype,
        [_StringStackTrace__stackTrace]: ""
      });
    },
    get C427() {
      return C[427] = dart.const(new _internal.Symbol.new('unary-'));
    },
    get C428() {
      return C[428] = dart.const(new _internal.Symbol.new(''));
    },
    get C429() {
      return C[429] = dart.fn(core.Uri.decodeComponent, T$.StringToString());
    },
    get C430() {
      return C[430] = dart.constMap(T$.StringL(), T$0.ListLOfStringL(), []);
    },
    get C431() {
      return C[431] = dart.fn(core._toUnmodifiableStringList, T$0.StringAndListOfStringToListOfString());
    },
    get C432() {
      return C[432] = dart.fn(core._Uri._createList, T$0.VoidToListOfString());
    },
    get C433() {
      return C[433] = dart.constList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431], T$0.intL());
    },
    get C434() {
      return C[434] = dart.constList([0, 0, 26498, 1023, 65534, 34815, 65534, 18431], T$0.intL());
    },
    get C435() {
      return C[435] = dart.constList([0, 0, 65498, 45055, 65535, 34815, 65534, 18431], T$0.intL());
    },
    get C436() {
      return C[436] = dart.constList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047], T$0.intL());
    },
    get C437() {
      return C[437] = dart.constList([0, 0, 32776, 33792, 1, 10240, 0, 0], T$0.intL());
    },
    get C438() {
      return C[438] = dart.constList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431], T$0.intL());
    },
    get C439() {
      return C[439] = dart.constList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431], T$0.intL());
    },
    get C440() {
      return C[440] = dart.constList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431], T$0.intL());
    },
    get C441() {
      return C[441] = dart.constList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431], T$0.intL());
    },
    get C442() {
      return C[442] = dart.constList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431], T$0.intL());
    },
    get C443() {
      return C[443] = dart.constList([0, 0, 27858, 1023, 65534, 51199, 65535, 32767], T$0.intL());
    },
    get C444() {
      return C[444] = dart.constMap(T$.StringL(), T$.StringL(), []);
    },
    get C445() {
      return C[445] = dart.const({
        __proto__: core.Deprecated.prototype,
        [message$11]: "next release"
      });
    },
    get C446() {
      return C[446] = dart.const({
        __proto__: core._Override.prototype
      });
    },
    get C447() {
      return C[447] = dart.const({
        __proto__: core.Duration.prototype,
        [_duration$]: 120000000
      });
    },
    get C448() {
      return C[448] = dart.constList(["cache-control", "connection", "date", "pragma", "trailer", "transfer-encoding", "upgrade", "via", "warning"], T$.StringL());
    },
    get C449() {
      return C[449] = dart.constList(["allow", "content-encoding", "content-language", "content-length", "content-location", "content-md5", "content-range", "content-type", "expires", "last-modified"], T$.StringL());
    },
    get C450() {
      return C[450] = dart.constList(["accept-ranges", "age", "etag", "location", "proxy-authenticate", "retry-after", "server", "vary", "www-authenticate"], T$.StringL());
    },
    get C451() {
      return C[451] = dart.constList(["accept", "accept-charset", "accept-encoding", "accept-language", "authorization", "expect", "from", "host", "if-match", "if-modified-since", "if-none-match", "if-range", "if-unmodified-since", "max-forwards", "proxy-authorization", "range", "referer", "te", "user-agent"], T$.StringL());
    },
    get C452() {
      return C[452] = dart.constMap(T$.StringL(), T$.StringN(), []);
    },
    get C453() {
      return C[453] = dart.const({
        __proto__: core.Duration.prototype,
        [_duration$]: 15000000
      });
    },
    get C454() {
      return C[454] = dart.const({
        __proto__: _http.HttpClientResponseCompressionState.prototype,
        [_name$7]: "HttpClientResponseCompressionState.notCompressed",
        index: 0
      });
    },
    get C455() {
      return C[455] = dart.const({
        __proto__: _http.HttpClientResponseCompressionState.prototype,
        [_name$7]: "HttpClientResponseCompressionState.decompressed",
        index: 1
      });
    },
    get C456() {
      return C[456] = dart.const({
        __proto__: _http.HttpClientResponseCompressionState.prototype,
        [_name$7]: "HttpClientResponseCompressionState.compressed",
        index: 2
      });
    },
    get C457() {
      return C[457] = dart.constList([C[454] || CT.C454, C[455] || CT.C455, C[456] || CT.C456], T$0.HttpClientResponseCompressionStateL());
    },
    get C458() {
      return C[458] = dart.constList([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, 0, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], T$0.intL());
    },
    get C459() {
      return C[459] = dart.constList([3614090360.0, 3905402710.0, 606105819, 3250441966.0, 4118548399.0, 1200080426, 2821735955.0, 4249261313.0, 1770035416, 2336552879.0, 4294925233.0, 2304563134.0, 1804603682, 4254626195.0, 2792965006.0, 1236535329, 4129170786.0, 3225465664.0, 643717713, 3921069994.0, 3593408605.0, 38016083, 3634488961.0, 3889429448.0, 568446438, 3275163606.0, 4107603335.0, 1163531501, 2850285829.0, 4243563512.0, 1735328473, 2368359562.0, 4294588738.0, 2272392833.0, 1839030562, 4259657740.0, 2763975236.0, 1272893353, 4139469664.0, 3200236656.0, 681279174, 3936430074.0, 3572445317.0, 76029189, 3654602809.0, 3873151461.0, 530742520, 3299628645.0, 4096336452.0, 1126891415, 2878612391.0, 4237533241.0, 1700485571, 2399980690.0, 4293915773.0, 2240044497.0, 1873313359, 4264355552.0, 2734768916.0, 1309151649, 4149444226.0, 3174756917.0, 718787259, 3951481745.0], T$0.intL());
    },
    get C460() {
      return C[460] = dart.constList([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21], T$0.intL());
    },
    get C461() {
      return C[461] = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], dart.dynamic);
    },
    get C462() {
      return C[462] = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dart.dynamic);
    },
    get C463() {
      return C[463] = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], dart.dynamic);
    },
    get C464() {
      return C[464] = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], dart.dynamic);
    },
    get C465() {
      return C[465] = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", "\"", "/", "[", "]", "?", "=", "{", "}"], T$.StringL());
    },
    get C466() {
      return C[466] = dart.const({
        __proto__: _http._ToUint8List.prototype
      });
    },
    get C467() {
      return C[467] = dart.const(new _js_helper.PrivateSymbol.new('_#IOSink#encoding#isSet', __IOSink_encoding_isSet$));
    },
    get C468() {
      return C[468] = dart.const(new _js_helper.PrivateSymbol.new('_#IOSink#encoding', __IOSink_encoding$));
    },
    get C469() {
      return C[469] = dart.const(new _js_helper.PrivateSymbol.new('_#IOSink#encoding#isSet=', __IOSink_encoding_isSet_));
    },
    get C470() {
      return C[470] = dart.const(new _js_helper.PrivateSymbol.new('_#IOSink#encoding=', __IOSink_encoding_));
    },
    get C471() {
      return C[471] = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], T$0.intL());
    },
    get C472() {
      return C[472] = dart.constList([13, 10, 48, 13, 10, 13, 10], T$0.intL());
    },
    get C473() {
      return C[473] = dart.constList([48, 13, 10, 13, 10], T$0.intL());
    },
    get C474() {
      return C[474] = dart.fn(_http.HttpClient.findProxyFromEnvironment, T.Uri__ToString());
    },
    get C477() {
      return C[477] = dart.const({
        __proto__: _http._Proxy.prototype,
        [_Proxy_isDirect]: true,
        [_Proxy_password]: null,
        [_Proxy_username]: null,
        [_Proxy_port]: null,
        [_Proxy_host]: null
      });
    },
    get C476() {
      return C[476] = dart.constList([C[477] || CT.C477], T._ProxyL());
    },
    get C475() {
      return C[475] = dart.const({
        __proto__: _http._ProxyConfiguration.prototype,
        [_ProxyConfiguration_proxies]: C[476] || CT.C476
      });
    },
    get C478() {
      return C[478] = dart.const({
        __proto__: _http._AuthenticationScheme.prototype,
        [_scheme$]: -1
      });
    },
    get C479() {
      return C[479] = dart.const({
        __proto__: _http._AuthenticationScheme.prototype,
        [_scheme$]: 0
      });
    },
    get C480() {
      return C[480] = dart.const({
        __proto__: _http._AuthenticationScheme.prototype,
        [_scheme$]: 1
      });
    },
    get C481() {
      return C[481] = dart.constList([72, 84, 84, 80], T$0.intL());
    },
    get C482() {
      return C[482] = dart.constList([72, 84, 84, 80, 47, 49, 46], T$0.intL());
    },
    get C483() {
      return C[483] = dart.constList([72, 84, 84, 80, 47, 49, 46, 48], T$0.intL());
    },
    get C484() {
      return C[484] = dart.constList([72, 84, 84, 80, 47, 49, 46, 49], T$0.intL());
    },
    get C485() {
      return C[485] = dart.constList([false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, false, false, true, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false], T$0.boolL());
    },
    get C486() {
      return C[486] = dart.const({
        __proto__: _http.CompressionOptions.prototype,
        [enabled$]: true,
        [serverMaxWindowBits$]: null,
        [clientMaxWindowBits$]: null,
        [serverNoContextTakeover$]: false,
        [clientNoContextTakeover$]: false
      });
    },
    get C487() {
      return C[487] = dart.const({
        __proto__: _http.CompressionOptions.prototype,
        [enabled$]: false,
        [serverMaxWindowBits$]: null,
        [clientMaxWindowBits$]: null,
        [serverNoContextTakeover$]: false,
        [clientNoContextTakeover$]: false
      });
    },
    get C488() {
      return C[488] = dart.constList([0, 0, 255, 255], T$0.intL());
    },
    get C489() {
      return C[489] = dart.const({
        __proto__: core.Duration.prototype,
        [_duration$]: 5000000
      });
    }
  }, false);
  core.Invocation = class Invocation extends core.Object {
    static method(memberName, positionalArguments, namedArguments = null) {
      if (memberName == null) dart.nullFailed(I[10], 20, 18, "memberName");
      return new core._Invocation.method(memberName, null, positionalArguments, namedArguments);
    }
    static genericMethod(memberName, typeArguments, positionalArguments, namedArguments = null) {
      if (memberName == null) dart.nullFailed(I[10], 31, 43, "memberName");
      return new core._Invocation.method(memberName, typeArguments, positionalArguments, namedArguments);
    }
    get typeArguments() {
      return C[0] || CT.C0;
    }
    get isAccessor() {
      return dart.test(this.isGetter) || dart.test(this.isSetter);
    }
  };
  (core.Invocation.new = function() {
    ;
  }).prototype = core.Invocation.prototype;
  dart.addTypeTests(core.Invocation);
  dart.addTypeCaches(core.Invocation);
  dart.setGetterSignature(core.Invocation, () => ({
    __proto__: dart.getGetters(core.Invocation.__proto__),
    typeArguments: core.List$(core.Type),
    isAccessor: core.bool
  }));
  dart.setLibraryUri(core.Invocation, I[8]);
  dart.InvocationImpl = class InvocationImpl extends core.Invocation {
    get memberName() {
      return this[memberName$];
    }
    set memberName(value) {
      super.memberName = value;
    }
    get positionalArguments() {
      return this[positionalArguments$];
    }
    set positionalArguments(value) {
      super.positionalArguments = value;
    }
    get namedArguments() {
      return this[namedArguments$];
    }
    set namedArguments(value) {
      super.namedArguments = value;
    }
    get typeArguments() {
      return this[typeArguments$];
    }
    set typeArguments(value) {
      super.typeArguments = value;
    }
    get isMethod() {
      return this[isMethod$];
    }
    set isMethod(value) {
      super.isMethod = value;
    }
    get isGetter() {
      return this[isGetter$];
    }
    set isGetter(value) {
      super.isGetter = value;
    }
    get isSetter() {
      return this[isSetter$];
    }
    set isSetter(value) {
      super.isSetter = value;
    }
    get failureMessage() {
      return this[failureMessage$];
    }
    set failureMessage(value) {
      super.failureMessage = value;
    }
    static _namedArgsToSymbols(namedArgs) {
      if (namedArgs == null) return const$0 || (const$0 = dart.constMap(T$.SymbolL(), dart.dynamic, []));
      return T$.MapOfSymbol$dynamic().unmodifiable(collection.LinkedHashMap.fromIterable(dart.getOwnPropertyNames(namedArgs), {
        key: dart._dartSymbol,
        value: k => namedArgs[k]
      }));
    }
  };
  (dart.InvocationImpl.new = function(memberName, positionalArguments, opts) {
    if (positionalArguments == null) dart.nullFailed(I[2], 20, 44, "positionalArguments");
    let namedArguments = opts && 'namedArguments' in opts ? opts.namedArguments : null;
    let typeArguments = opts && 'typeArguments' in opts ? opts.typeArguments : const$ || (const$ = dart.constList([], dart.dynamic));
    if (typeArguments == null) dart.nullFailed(I[2], 22, 12, "typeArguments");
    let isMethod = opts && 'isMethod' in opts ? opts.isMethod : false;
    if (isMethod == null) dart.nullFailed(I[2], 23, 12, "isMethod");
    let isGetter = opts && 'isGetter' in opts ? opts.isGetter : false;
    if (isGetter == null) dart.nullFailed(I[2], 24, 12, "isGetter");
    let isSetter = opts && 'isSetter' in opts ? opts.isSetter : false;
    if (isSetter == null) dart.nullFailed(I[2], 25, 12, "isSetter");
    let failureMessage = opts && 'failureMessage' in opts ? opts.failureMessage : "method not found";
    if (failureMessage == null) dart.nullFailed(I[2], 26, 12, "failureMessage");
    this[isMethod$] = isMethod;
    this[isGetter$] = isGetter;
    this[isSetter$] = isSetter;
    this[failureMessage$] = failureMessage;
    this[memberName$] = dart.test(isSetter) ? dart._setterSymbol(memberName) : dart._dartSymbol(memberName);
    this[positionalArguments$] = core.List.unmodifiable(positionalArguments);
    this[namedArguments$] = dart.InvocationImpl._namedArgsToSymbols(namedArguments);
    this[typeArguments$] = T$.ListOfType().unmodifiable(typeArguments[$map](dart.dynamic, dart.wrapType));
    dart.InvocationImpl.__proto__.new.call(this);
    ;
  }).prototype = dart.InvocationImpl.prototype;
  dart.addTypeTests(dart.InvocationImpl);
  dart.addTypeCaches(dart.InvocationImpl);
  dart.setLibraryUri(dart.InvocationImpl, I[9]);
  dart.setFieldSignature(dart.InvocationImpl, () => ({
    __proto__: dart.getFields(dart.InvocationImpl.__proto__),
    memberName: dart.finalFieldType(core.Symbol),
    positionalArguments: dart.finalFieldType(core.List),
    namedArguments: dart.finalFieldType(core.Map$(core.Symbol, dart.dynamic)),
    typeArguments: dart.finalFieldType(core.List$(core.Type)),
    isMethod: dart.finalFieldType(core.bool),
    isGetter: dart.finalFieldType(core.bool),
    isSetter: dart.finalFieldType(core.bool),
    failureMessage: dart.finalFieldType(core.String)
  }));
  var name$0 = dart.privateName(_debugger, "JsonMLConfig.name");
  _debugger.JsonMLConfig = class JsonMLConfig extends core.Object {
    get name() {
      return this[name$0];
    }
    set name(value) {
      super.name = value;
    }
    toString() {
      return "JsonMLConfig(" + dart.str(this.name) + ")";
    }
  };
  (_debugger.JsonMLConfig.new = function(name) {
    if (name == null) dart.nullFailed(I[11], 28, 27, "name");
    this[name$0] = name;
    ;
  }).prototype = _debugger.JsonMLConfig.prototype;
  dart.addTypeTests(_debugger.JsonMLConfig);
  dart.addTypeCaches(_debugger.JsonMLConfig);
  dart.setLibraryUri(_debugger.JsonMLConfig, I[12]);
  dart.setFieldSignature(_debugger.JsonMLConfig, () => ({
    __proto__: dart.getFields(_debugger.JsonMLConfig.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_debugger.JsonMLConfig, ['toString']);
  dart.defineLazy(_debugger.JsonMLConfig, {
    /*_debugger.JsonMLConfig.none*/get none() {
      return C[1] || CT.C1;
    },
    /*_debugger.JsonMLConfig.skipDart*/get skipDart() {
      return C[2] || CT.C2;
    },
    /*_debugger.JsonMLConfig.keyToString*/get keyToString() {
      return C[3] || CT.C3;
    },
    /*_debugger.JsonMLConfig.asClass*/get asClass() {
      return C[4] || CT.C4;
    },
    /*_debugger.JsonMLConfig.asObject*/get asObject() {
      return C[5] || CT.C5;
    },
    /*_debugger.JsonMLConfig.asMap*/get asMap() {
      return C[6] || CT.C6;
    }
  }, false);
  _debugger.JSNative = class JSNative extends core.Object {
    static getProperty(object, name) {
      return object[name];
    }
    static setProperty(object, name, value) {
      return object[name] = value;
    }
  };
  (_debugger.JSNative.new = function() {
    ;
  }).prototype = _debugger.JSNative.prototype;
  dart.addTypeTests(_debugger.JSNative);
  dart.addTypeCaches(_debugger.JSNative);
  dart.setLibraryUri(_debugger.JSNative, I[12]);
  var name$1 = dart.privateName(_debugger, "NameValuePair.name");
  var value$ = dart.privateName(_debugger, "NameValuePair.value");
  var config$ = dart.privateName(_debugger, "NameValuePair.config");
  var hideName$ = dart.privateName(_debugger, "NameValuePair.hideName");
  _debugger.NameValuePair = class NameValuePair extends core.Object {
    get name() {
      return this[name$1];
    }
    set name(value) {
      super.name = value;
    }
    get value() {
      return this[value$];
    }
    set value(value) {
      super.value = value;
    }
    get config() {
      return this[config$];
    }
    set config(value) {
      super.config = value;
    }
    get hideName() {
      return this[hideName$];
    }
    set hideName(value) {
      super.hideName = value;
    }
    _equals(other) {
      if (other == null) return false;
      if (!_debugger.NameValuePair.is(other)) return false;
      if (dart.test(this.hideName) || dart.test(other.hideName)) return this === other;
      return other.name == this.name;
    }
    get hashCode() {
      return dart.hashCode(this.name);
    }
    get displayName() {
      return dart.test(this.hideName) ? "" : this.name;
    }
  };
  (_debugger.NameValuePair.new = function(opts) {
    let name = opts && 'name' in opts ? opts.name : "";
    if (name == null) dart.nullFailed(I[11], 172, 13, "name");
    let value = opts && 'value' in opts ? opts.value : null;
    let config = opts && 'config' in opts ? opts.config : C[1] || CT.C1;
    if (config == null) dart.nullFailed(I[11], 174, 12, "config");
    let hideName = opts && 'hideName' in opts ? opts.hideName : false;
    if (hideName == null) dart.nullFailed(I[11], 175, 12, "hideName");
    this[name$1] = name;
    this[value$] = value;
    this[config$] = config;
    this[hideName$] = hideName;
    ;
  }).prototype = _debugger.NameValuePair.prototype;
  dart.addTypeTests(_debugger.NameValuePair);
  dart.addTypeCaches(_debugger.NameValuePair);
  dart.setGetterSignature(_debugger.NameValuePair, () => ({
    __proto__: dart.getGetters(_debugger.NameValuePair.__proto__),
    displayName: core.String
  }));
  dart.setLibraryUri(_debugger.NameValuePair, I[12]);
  dart.setFieldSignature(_debugger.NameValuePair, () => ({
    __proto__: dart.getFields(_debugger.NameValuePair.__proto__),
    name: dart.finalFieldType(core.String),
    value: dart.finalFieldType(dart.nullable(core.Object)),
    config: dart.finalFieldType(_debugger.JsonMLConfig),
    hideName: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(_debugger.NameValuePair, ['_equals']);
  dart.defineExtensionAccessors(_debugger.NameValuePair, ['hashCode']);
  var key$ = dart.privateName(_debugger, "MapEntry.key");
  var value$0 = dart.privateName(_debugger, "MapEntry.value");
  _debugger.MapEntry = class MapEntry extends core.Object {
    get key() {
      return this[key$];
    }
    set key(value) {
      super.key = value;
    }
    get value() {
      return this[value$0];
    }
    set value(value) {
      super.value = value;
    }
  };
  (_debugger.MapEntry.new = function(opts) {
    let key = opts && 'key' in opts ? opts.key : null;
    let value = opts && 'value' in opts ? opts.value : null;
    this[key$] = key;
    this[value$0] = value;
    ;
  }).prototype = _debugger.MapEntry.prototype;
  dart.addTypeTests(_debugger.MapEntry);
  dart.addTypeCaches(_debugger.MapEntry);
  dart.setLibraryUri(_debugger.MapEntry, I[12]);
  dart.setFieldSignature(_debugger.MapEntry, () => ({
    __proto__: dart.getFields(_debugger.MapEntry.__proto__),
    key: dart.finalFieldType(dart.nullable(core.Object)),
    value: dart.finalFieldType(dart.nullable(core.Object))
  }));
  var start$ = dart.privateName(_debugger, "IterableSpan.start");
  var end$ = dart.privateName(_debugger, "IterableSpan.end");
  var iterable$ = dart.privateName(_debugger, "IterableSpan.iterable");
  _debugger.IterableSpan = class IterableSpan extends core.Object {
    get start() {
      return this[start$];
    }
    set start(value) {
      super.start = value;
    }
    get end() {
      return this[end$];
    }
    set end(value) {
      super.end = value;
    }
    get iterable() {
      return this[iterable$];
    }
    set iterable(value) {
      super.iterable = value;
    }
    get length() {
      return dart.notNull(this.end) - dart.notNull(this.start);
    }
    get maxPowerOfSubsetSize() {
      return (math.log(dart.notNull(this.length) - 0.5) / math.log(_debugger._maxSpanLength))[$truncate]();
    }
    get subsetSize() {
      return math.pow(_debugger._maxSpanLength, this.maxPowerOfSubsetSize)[$toInt]();
    }
    asMap() {
      return this.iterable[$skip](this.start)[$take](this.length)[$toList]()[$asMap]();
    }
    children() {
      let children = T$.JSArrayOfNameValuePair().of([]);
      if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
        this.asMap()[$forEach](dart.fn((i, element) => {
          if (i == null) dart.nullFailed(I[11], 225, 24, "i");
          children[$add](new _debugger.NameValuePair.new({name: (dart.notNull(i) + dart.notNull(this.start))[$toString](), value: element}));
        }, T$.intAnddynamicTovoid()));
      } else {
        for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
          let subSpan = new _debugger.IterableSpan.new(i, math.min(core.int, this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
          if (subSpan.length === 1) {
            children[$add](new _debugger.NameValuePair.new({name: dart.toString(i), value: this.iterable[$elementAt](i)}));
          } else {
            children[$add](new _debugger.NameValuePair.new({name: "[" + dart.str(i) + "..." + dart.str(dart.notNull(subSpan.end) - 1) + "]", value: subSpan, hideName: true}));
          }
        }
      }
      return children;
    }
  };
  (_debugger.IterableSpan.new = function(start, end, iterable) {
    if (start == null) dart.nullFailed(I[11], 203, 21, "start");
    if (end == null) dart.nullFailed(I[11], 203, 33, "end");
    if (iterable == null) dart.nullFailed(I[11], 203, 43, "iterable");
    this[start$] = start;
    this[end$] = end;
    this[iterable$] = iterable;
    ;
  }).prototype = _debugger.IterableSpan.prototype;
  dart.addTypeTests(_debugger.IterableSpan);
  dart.addTypeCaches(_debugger.IterableSpan);
  dart.setMethodSignature(_debugger.IterableSpan, () => ({
    __proto__: dart.getMethods(_debugger.IterableSpan.__proto__),
    asMap: dart.fnType(core.Map$(core.int, dart.dynamic), []),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [])
  }));
  dart.setGetterSignature(_debugger.IterableSpan, () => ({
    __proto__: dart.getGetters(_debugger.IterableSpan.__proto__),
    length: core.int,
    maxPowerOfSubsetSize: core.int,
    subsetSize: core.int
  }));
  dart.setLibraryUri(_debugger.IterableSpan, I[12]);
  dart.setFieldSignature(_debugger.IterableSpan, () => ({
    __proto__: dart.getFields(_debugger.IterableSpan.__proto__),
    start: dart.finalFieldType(core.int),
    end: dart.finalFieldType(core.int),
    iterable: dart.finalFieldType(core.Iterable)
  }));
  var name$2 = dart.privateName(_debugger, "Library.name");
  var object$ = dart.privateName(_debugger, "Library.object");
  _debugger.Library = class Library extends core.Object {
    get name() {
      return this[name$2];
    }
    set name(value) {
      super.name = value;
    }
    get object() {
      return this[object$];
    }
    set object(value) {
      super.object = value;
    }
  };
  (_debugger.Library.new = function(name, object) {
    if (name == null) dart.nullFailed(I[11], 248, 16, "name");
    if (object == null) dart.nullFailed(I[11], 248, 27, "object");
    this[name$2] = name;
    this[object$] = object;
    ;
  }).prototype = _debugger.Library.prototype;
  dart.addTypeTests(_debugger.Library);
  dart.addTypeCaches(_debugger.Library);
  dart.setLibraryUri(_debugger.Library, I[12]);
  dart.setFieldSignature(_debugger.Library, () => ({
    __proto__: dart.getFields(_debugger.Library.__proto__),
    name: dart.finalFieldType(core.String),
    object: dart.finalFieldType(core.Object)
  }));
  var object$0 = dart.privateName(_debugger, "NamedConstructor.object");
  _debugger.NamedConstructor = class NamedConstructor extends core.Object {
    get object() {
      return this[object$0];
    }
    set object(value) {
      super.object = value;
    }
  };
  (_debugger.NamedConstructor.new = function(object) {
    if (object == null) dart.nullFailed(I[11], 255, 25, "object");
    this[object$0] = object;
    ;
  }).prototype = _debugger.NamedConstructor.prototype;
  dart.addTypeTests(_debugger.NamedConstructor);
  dart.addTypeCaches(_debugger.NamedConstructor);
  dart.setLibraryUri(_debugger.NamedConstructor, I[12]);
  dart.setFieldSignature(_debugger.NamedConstructor, () => ({
    __proto__: dart.getFields(_debugger.NamedConstructor.__proto__),
    object: dart.finalFieldType(core.Object)
  }));
  var name$3 = dart.privateName(_debugger, "HeritageClause.name");
  var types$ = dart.privateName(_debugger, "HeritageClause.types");
  _debugger.HeritageClause = class HeritageClause extends core.Object {
    get name() {
      return this[name$3];
    }
    set name(value) {
      super.name = value;
    }
    get types() {
      return this[types$];
    }
    set types(value) {
      super.types = value;
    }
  };
  (_debugger.HeritageClause.new = function(name, types) {
    if (name == null) dart.nullFailed(I[11], 261, 23, "name");
    if (types == null) dart.nullFailed(I[11], 261, 34, "types");
    this[name$3] = name;
    this[types$] = types;
    ;
  }).prototype = _debugger.HeritageClause.prototype;
  dart.addTypeTests(_debugger.HeritageClause);
  dart.addTypeCaches(_debugger.HeritageClause);
  dart.setLibraryUri(_debugger.HeritageClause, I[12]);
  dart.setFieldSignature(_debugger.HeritageClause, () => ({
    __proto__: dart.getFields(_debugger.HeritageClause.__proto__),
    name: dart.finalFieldType(core.String),
    types: dart.finalFieldType(core.List)
  }));
  var _attributes = dart.privateName(_debugger, "_attributes");
  var __JsonMLElement__jsonML = dart.privateName(_debugger, "_#JsonMLElement#_jsonML");
  var __JsonMLElement__jsonML_isSet = dart.privateName(_debugger, "_#JsonMLElement#_jsonML#isSet");
  var _jsonML = dart.privateName(_debugger, "_jsonML");
  _debugger.JsonMLElement = class JsonMLElement extends core.Object {
    get [_jsonML]() {
      let t8;
      return dart.test(this[__JsonMLElement__jsonML_isSet]) ? (t8 = this[__JsonMLElement__jsonML], t8) : dart.throw(new _internal.LateError.fieldNI("_jsonML"));
    }
    set [_jsonML](t8) {
      if (t8 == null) dart.nullFailed(I[11], 285, 13, "null");
      this[__JsonMLElement__jsonML_isSet] = true;
      this[__JsonMLElement__jsonML] = t8;
    }
    appendChild(element) {
      this[_jsonML][$add](dart.dsend(element, 'toJsonML', []));
    }
    createChild(tagName) {
      if (tagName == null) dart.nullFailed(I[11], 296, 36, "tagName");
      let c = new _debugger.JsonMLElement.new(tagName);
      this[_jsonML][$add](c.toJsonML());
      return c;
    }
    createObjectTag(object) {
      let t9;
      t9 = this.createChild("object");
      return (() => {
        t9.addAttribute("object", object);
        return t9;
      })();
    }
    setStyle(style) {
      if (style == null) dart.nullFailed(I[11], 305, 24, "style");
      dart.dput(this[_attributes], 'style', style);
    }
    addStyle(style) {
      let t9;
      if (style == null) dart.nullFailed(I[11], 309, 19, "style");
      if (dart.dload(this[_attributes], 'style') == null) {
        dart.dput(this[_attributes], 'style', style);
      } else {
        t9 = this[_attributes];
        dart.dput(t9, 'style', dart.dsend(dart.dload(t9, 'style'), '+', [style]));
      }
    }
    addAttribute(key, value) {
      _debugger.JSNative.setProperty(this[_attributes], key, value);
    }
    createTextChild(text) {
      if (text == null) dart.nullFailed(I[11], 321, 26, "text");
      this[_jsonML][$add](text);
    }
    toJsonML() {
      return this[_jsonML];
    }
  };
  (_debugger.JsonMLElement.new = function(tagName) {
    this[_attributes] = null;
    this[__JsonMLElement__jsonML] = null;
    this[__JsonMLElement__jsonML_isSet] = false;
    this[_attributes] = {};
    this[_jsonML] = [tagName, this[_attributes]];
  }).prototype = _debugger.JsonMLElement.prototype;
  dart.addTypeTests(_debugger.JsonMLElement);
  dart.addTypeCaches(_debugger.JsonMLElement);
  dart.setMethodSignature(_debugger.JsonMLElement, () => ({
    __proto__: dart.getMethods(_debugger.JsonMLElement.__proto__),
    appendChild: dart.fnType(dart.dynamic, [dart.dynamic]),
    createChild: dart.fnType(_debugger.JsonMLElement, [core.String]),
    createObjectTag: dart.fnType(_debugger.JsonMLElement, [dart.dynamic]),
    setStyle: dart.fnType(dart.void, [core.String]),
    addStyle: dart.fnType(dart.dynamic, [core.String]),
    addAttribute: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
    createTextChild: dart.fnType(dart.dynamic, [core.String]),
    toJsonML: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(_debugger.JsonMLElement, () => ({
    __proto__: dart.getGetters(_debugger.JsonMLElement.__proto__),
    [_jsonML]: core.List
  }));
  dart.setSetterSignature(_debugger.JsonMLElement, () => ({
    __proto__: dart.getSetters(_debugger.JsonMLElement.__proto__),
    [_jsonML]: core.List
  }));
  dart.setLibraryUri(_debugger.JsonMLElement, I[12]);
  dart.setFieldSignature(_debugger.JsonMLElement, () => ({
    __proto__: dart.getFields(_debugger.JsonMLElement.__proto__),
    [_attributes]: dart.fieldType(dart.dynamic),
    [__JsonMLElement__jsonML]: dart.fieldType(dart.nullable(core.List)),
    [__JsonMLElement__jsonML_isSet]: dart.fieldType(core.bool)
  }));
  var customFormattersOn = dart.privateName(_debugger, "JsonMLFormatter.customFormattersOn");
  var _simpleFormatter$ = dart.privateName(_debugger, "_simpleFormatter");
  _debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
    get customFormattersOn() {
      return this[customFormattersOn];
    }
    set customFormattersOn(value) {
      this[customFormattersOn] = value;
    }
    setMaxSpanLengthForTestingOnly(spanLength) {
      if (spanLength == null) dart.nullFailed(I[11], 363, 43, "spanLength");
      _debugger._maxSpanLength = spanLength;
    }
    header(object, config) {
      let t9;
      this.customFormattersOn = true;
      if (dart.equals(config, _debugger.JsonMLConfig.skipDart) || dart.test(_debugger.isNativeJavaScriptObject(object))) {
        return null;
      }
      let c = this[_simpleFormatter$].preview(object, config);
      if (c == null) return null;
      if (dart.equals(config, _debugger.JsonMLConfig.keyToString)) {
        c = dart.toString(object);
      }
      let element = (t9 = new _debugger.JsonMLElement.new("span"), (() => {
        t9.setStyle("background-color: #d9edf7;color: black");
        t9.createTextChild(c);
        return t9;
      })());
      return element.toJsonML();
    }
    hasBody(object, config) {
      return this[_simpleFormatter$].hasChildren(object, config);
    }
    body(object, config) {
      let t9, t9$, t9$0, t9$1, t9$2;
      let body = (t9 = new _debugger.JsonMLElement.new("ol"), (() => {
        t9.setStyle("list-style-type: none;" + "padding-left: 0px;" + "margin-top: 0px;" + "margin-bottom: 0px;" + "margin-left: 12px;");
        return t9;
      })());
      if (core.StackTrace.is(object)) {
        body.addStyle("background-color: thistle;color: rgb(196, 26, 22);");
      }
      let children = this[_simpleFormatter$].children(object, config);
      if (children == null) return body.toJsonML();
      for (let child of children) {
        let li = body.createChild("li");
        li.setStyle("padding-left: 13px;");
        let nameSpan = null;
        let valueStyle = "";
        if (!dart.test(child.hideName)) {
          nameSpan = (t9$ = new _debugger.JsonMLElement.new("span"), (() => {
            t9$.createTextChild(child.displayName[$isNotEmpty] ? dart.str(child.displayName) + ": " : "");
            t9$.setStyle("background-color: thistle; color: rgb(136, 19, 145); margin-right: -13px");
            return t9$;
          })());
          valueStyle = "margin-left: 13px";
        }
        if (_debugger._typeof(child.value) === "object" || _debugger._typeof(child.value) === "function") {
          let valueSpan = (t9$0 = new _debugger.JsonMLElement.new("span"), (() => {
            t9$0.setStyle(valueStyle);
            return t9$0;
          })());
          t9$1 = valueSpan.createObjectTag(child.value);
          (() => {
            t9$1.addAttribute("config", child.config);
            return t9$1;
          })();
          if (nameSpan != null) {
            li.appendChild(nameSpan);
          }
          li.appendChild(valueSpan);
        } else {
          let line = li.createChild("span");
          if (nameSpan != null) {
            line.appendChild(nameSpan);
          }
          line.appendChild((t9$2 = new _debugger.JsonMLElement.new("span"), (() => {
            t9$2.createTextChild(_debugger.safePreview(child.value, child.config));
            t9$2.setStyle(valueStyle);
            return t9$2;
          })()));
        }
      }
      return body.toJsonML();
    }
  };
  (_debugger.JsonMLFormatter.new = function(_simpleFormatter) {
    if (_simpleFormatter == null) dart.nullFailed(I[11], 361, 24, "_simpleFormatter");
    this[customFormattersOn] = false;
    this[_simpleFormatter$] = _simpleFormatter;
    ;
  }).prototype = _debugger.JsonMLFormatter.prototype;
  dart.addTypeTests(_debugger.JsonMLFormatter);
  dart.addTypeCaches(_debugger.JsonMLFormatter);
  dart.setMethodSignature(_debugger.JsonMLFormatter, () => ({
    __proto__: dart.getMethods(_debugger.JsonMLFormatter.__proto__),
    setMaxSpanLengthForTestingOnly: dart.fnType(dart.void, [core.int]),
    header: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
    hasBody: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    body: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.JsonMLFormatter, I[12]);
  dart.setFieldSignature(_debugger.JsonMLFormatter, () => ({
    __proto__: dart.getFields(_debugger.JsonMLFormatter.__proto__),
    [_simpleFormatter$]: dart.fieldType(_debugger.DartFormatter),
    customFormattersOn: dart.fieldType(core.bool)
  }));
  _debugger.Formatter = class Formatter extends core.Object {};
  (_debugger.Formatter.new = function() {
    ;
  }).prototype = _debugger.Formatter.prototype;
  dart.addTypeTests(_debugger.Formatter);
  dart.addTypeCaches(_debugger.Formatter);
  dart.setLibraryUri(_debugger.Formatter, I[12]);
  var _formatters = dart.privateName(_debugger, "_formatters");
  var _printConsoleError = dart.privateName(_debugger, "_printConsoleError");
  _debugger.DartFormatter = class DartFormatter extends core.Object {
    preview(object, config) {
      try {
        if (object == null || typeof object == 'number' || typeof object == 'string' || dart.test(_debugger.isNativeJavaScriptObject(object))) {
          return dart.toString(object);
        }
        for (let formatter of this[_formatters]) {
          if (dart.test(formatter.accept(object, config))) return formatter.preview(object);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let trace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this[_printConsoleError]("Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
        } else
          throw e$;
      }
      return null;
    }
    hasChildren(object, config) {
      if (object == null) return false;
      try {
        for (let formatter of this[_formatters]) {
          if (dart.test(formatter.accept(object, config))) return formatter.hasChildren(object);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let trace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this[_printConsoleError]("[hasChildren] Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
        } else
          throw e$;
      }
      return false;
    }
    children(object, config) {
      try {
        if (object != null) {
          for (let formatter of this[_formatters]) {
            if (dart.test(formatter.accept(object, config))) return formatter.children(object);
          }
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let trace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this[_printConsoleError]("Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
        } else
          throw e$;
      }
      return T$.JSArrayOfNameValuePair().of([]);
    }
    [_printConsoleError](message) {
      if (message == null) dart.nullFailed(I[11], 523, 34, "message");
      return window.console.error(message);
    }
  };
  (_debugger.DartFormatter.new = function() {
    this[_formatters] = T$.JSArrayOfFormatter().of([new _debugger.ObjectInternalsFormatter.new(), new _debugger.ClassFormatter.new(), new _debugger.TypeFormatter.new(), new _debugger.NamedConstructorFormatter.new(), new _debugger.MapFormatter.new(), new _debugger.MapOverviewFormatter.new(), new _debugger.IterableFormatter.new(), new _debugger.IterableSpanFormatter.new(), new _debugger.MapEntryFormatter.new(), new _debugger.StackTraceFormatter.new(), new _debugger.ErrorAndExceptionFormatter.new(), new _debugger.FunctionFormatter.new(), new _debugger.HeritageClauseFormatter.new(), new _debugger.LibraryModuleFormatter.new(), new _debugger.LibraryFormatter.new(), new _debugger.ObjectFormatter.new()]);
    ;
  }).prototype = _debugger.DartFormatter.prototype;
  dart.addTypeTests(_debugger.DartFormatter);
  dart.addTypeCaches(_debugger.DartFormatter);
  dart.setMethodSignature(_debugger.DartFormatter, () => ({
    __proto__: dart.getMethods(_debugger.DartFormatter.__proto__),
    preview: dart.fnType(dart.nullable(core.String), [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    children: dart.fnType(dart.nullable(core.List$(_debugger.NameValuePair)), [dart.dynamic, dart.dynamic]),
    [_printConsoleError]: dart.fnType(dart.void, [core.String])
  }));
  dart.setLibraryUri(_debugger.DartFormatter, I[12]);
  dart.setFieldSignature(_debugger.DartFormatter, () => ({
    __proto__: dart.getFields(_debugger.DartFormatter.__proto__),
    [_formatters]: dart.finalFieldType(core.List$(_debugger.Formatter))
  }));
  _debugger.ObjectFormatter = class ObjectFormatter extends _debugger.Formatter {
    accept(object, config) {
      return !dart.test(_debugger.isNativeJavaScriptObject(object));
    }
    preview(object) {
      let typeName = _debugger.getObjectTypeName(object);
      try {
        let toString = dart.str(object);
        if (toString.length > dart.notNull(_debugger.maxFormatterStringLength)) {
          toString = toString[$substring](0, dart.notNull(_debugger.maxFormatterStringLength) - 3) + "...";
        }
        if (toString[$contains](typeName)) {
          return toString;
        } else {
          return toString + " (" + dart.str(typeName) + ")";
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return typeName;
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      let type = dart.getType(object);
      let ret = new (T$._HashSetOfNameValuePair()).new();
      let fields = new (T$._HashSetOfNameValuePair()).new();
      _debugger.addPropertiesFromSignature(dart.getFields(type), fields, object, true);
      let getters = new (T$._HashSetOfNameValuePair()).new();
      _debugger.addPropertiesFromSignature(dart.getGetters(type), getters, object, true);
      ret.addAll(_debugger.sortProperties(fields));
      ret.addAll(_debugger.sortProperties(getters));
      _debugger.addMetadataChildren(object, ret);
      return ret[$toList]();
    }
  };
  (_debugger.ObjectFormatter.new = function() {
    ;
  }).prototype = _debugger.ObjectFormatter.prototype;
  dart.addTypeTests(_debugger.ObjectFormatter);
  dart.addTypeCaches(_debugger.ObjectFormatter);
  dart.setMethodSignature(_debugger.ObjectFormatter, () => ({
    __proto__: dart.getMethods(_debugger.ObjectFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(dart.nullable(core.List$(_debugger.NameValuePair)), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.ObjectFormatter, I[12]);
  _debugger.ObjectInternalsFormatter = class ObjectInternalsFormatter extends _debugger.ObjectFormatter {
    accept(object, config) {
      return dart.test(super.accept(object, config)) && dart.equals(config, _debugger.JsonMLConfig.asObject);
    }
    preview(object) {
      return _debugger.getObjectTypeName(object);
    }
  };
  (_debugger.ObjectInternalsFormatter.new = function() {
    ;
  }).prototype = _debugger.ObjectInternalsFormatter.prototype;
  dart.addTypeTests(_debugger.ObjectInternalsFormatter);
  dart.addTypeCaches(_debugger.ObjectInternalsFormatter);
  dart.setLibraryUri(_debugger.ObjectInternalsFormatter, I[12]);
  _debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Object {
    accept(object, config) {
      return dart.getModuleName(core.Object.as(object)) != null;
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      let libraryNames = dart.nullCheck(dart.getModuleName(core.Object.as(object)))[$split]("/");
      if (dart.notNull(libraryNames[$length]) > 1 && libraryNames[$last] == libraryNames[$_get](dart.notNull(libraryNames[$length]) - 2)) {
        libraryNames[$_set](dart.notNull(libraryNames[$length]) - 1, "");
      }
      return "Library Module: " + dart.str(libraryNames[$join]("/"));
    }
    children(object) {
      let children = new (T$._HashSetOfNameValuePair()).new();
      for (let name of _debugger.getOwnPropertyNames(object)) {
        let value = _debugger.safeGetProperty(core.Object.as(object), name);
        children.add(new _debugger.NameValuePair.new({name: name, value: new _debugger.Library.new(name, dart.nullCheck(value)), hideName: true}));
      }
      return children[$toList]();
    }
  };
  (_debugger.LibraryModuleFormatter.new = function() {
    ;
  }).prototype = _debugger.LibraryModuleFormatter.prototype;
  dart.addTypeTests(_debugger.LibraryModuleFormatter);
  dart.addTypeCaches(_debugger.LibraryModuleFormatter);
  _debugger.LibraryModuleFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.LibraryModuleFormatter, () => ({
    __proto__: dart.getMethods(_debugger.LibraryModuleFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.LibraryModuleFormatter, I[12]);
  var genericParameters = dart.privateName(_debugger, "LibraryFormatter.genericParameters");
  _debugger.LibraryFormatter = class LibraryFormatter extends core.Object {
    get genericParameters() {
      return this[genericParameters];
    }
    set genericParameters(value) {
      this[genericParameters] = value;
    }
    accept(object, config) {
      return _debugger.Library.is(object);
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      return core.String.as(dart.dload(object, 'name'));
    }
    children(object) {
      let children = new (T$._HashSetOfNameValuePair()).new();
      let objectProperties = _debugger.safeProperties(dart.dload(object, 'object'));
      dart.dsend(objectProperties, 'forEach', [dart.fn((name, value) => {
          if (dart.getGenericTypeCtor(value) != null) return;
          children.add(_debugger.NameValuePair.as(dart.isType(value) ? this.classChild(core.String.as(name), core.Object.as(value)) : new _debugger.NameValuePair.new({name: core.String.as(name), value: value})));
        }, T$.dynamicAnddynamicToNull())]);
      return children[$toList]();
    }
    classChild(name, child) {
      if (name == null) dart.nullFailed(I[11], 644, 21, "name");
      if (child == null) dart.nullFailed(I[11], 644, 34, "child");
      let typeName = _debugger.getTypeName(child);
      return new _debugger.NameValuePair.new({name: typeName, value: child, config: _debugger.JsonMLConfig.asClass});
    }
  };
  (_debugger.LibraryFormatter.new = function() {
    this[genericParameters] = new (T$.IdentityMapOfString$String()).new();
    ;
  }).prototype = _debugger.LibraryFormatter.prototype;
  dart.addTypeTests(_debugger.LibraryFormatter);
  dart.addTypeCaches(_debugger.LibraryFormatter);
  _debugger.LibraryFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.LibraryFormatter, () => ({
    __proto__: dart.getMethods(_debugger.LibraryFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
    classChild: dart.fnType(dart.dynamic, [core.String, core.Object])
  }));
  dart.setLibraryUri(_debugger.LibraryFormatter, I[12]);
  dart.setFieldSignature(_debugger.LibraryFormatter, () => ({
    __proto__: dart.getFields(_debugger.LibraryFormatter.__proto__),
    genericParameters: dart.fieldType(collection.HashMap$(core.String, core.String))
  }));
  _debugger.FunctionFormatter = class FunctionFormatter extends core.Object {
    accept(object, config) {
      if (_debugger._typeof(object) !== "function") return false;
      return dart.getReifiedType(object) != null;
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      try {
        return dart.typeName(dart.getReifiedType(object));
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
        } else
          throw e$;
      }
    }
    children(object) {
      return T$.JSArrayOfNameValuePair().of([new _debugger.NameValuePair.new({name: "signature", value: this.preview(object)}), new _debugger.NameValuePair.new({name: "JavaScript Function", value: object, config: _debugger.JsonMLConfig.skipDart})]);
    }
  };
  (_debugger.FunctionFormatter.new = function() {
    ;
  }).prototype = _debugger.FunctionFormatter.prototype;
  dart.addTypeTests(_debugger.FunctionFormatter);
  dart.addTypeCaches(_debugger.FunctionFormatter);
  _debugger.FunctionFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.FunctionFormatter, () => ({
    __proto__: dart.getMethods(_debugger.FunctionFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.FunctionFormatter, I[12]);
  _debugger.MapOverviewFormatter = class MapOverviewFormatter extends core.Object {
    accept(object, config) {
      return core.Map.is(object);
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      let map = core.Map.as(object);
      try {
        return dart.str(_debugger.getObjectTypeName(map));
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
        } else
          throw e$;
      }
    }
    children(object) {
      return T$.JSArrayOfNameValuePair().of([new _debugger.NameValuePair.new({name: "[[instance view]]", value: object, config: _debugger.JsonMLConfig.asObject}), new _debugger.NameValuePair.new({name: "[[entries]]", value: object, config: _debugger.JsonMLConfig.asMap})]);
    }
  };
  (_debugger.MapOverviewFormatter.new = function() {
    ;
  }).prototype = _debugger.MapOverviewFormatter.prototype;
  dart.addTypeTests(_debugger.MapOverviewFormatter);
  dart.addTypeCaches(_debugger.MapOverviewFormatter);
  _debugger.MapOverviewFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.MapOverviewFormatter, () => ({
    __proto__: dart.getMethods(_debugger.MapOverviewFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.MapOverviewFormatter, I[12]);
  _debugger.MapFormatter = class MapFormatter extends core.Object {
    accept(object, config) {
      return _js_helper.InternalMap.is(object) || dart.equals(config, _debugger.JsonMLConfig.asMap);
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      let map = core.Map.as(object);
      try {
        return dart.str(_debugger.getObjectTypeName(map)) + " length " + dart.str(map[$length]);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
        } else
          throw e$;
      }
    }
    children(object) {
      let map = core.Map.as(object);
      let entries = new (T$._HashSetOfNameValuePair()).new();
      map[$forEach](dart.fn((key, value) => {
        let entryWrapper = new _debugger.MapEntry.new({key: key, value: value});
        entries.add(new _debugger.NameValuePair.new({name: dart.toString(entries[$length]), value: entryWrapper}));
      }, T$.dynamicAnddynamicTovoid()));
      _debugger.addMetadataChildren(object, entries);
      return entries[$toList]();
    }
  };
  (_debugger.MapFormatter.new = function() {
    ;
  }).prototype = _debugger.MapFormatter.prototype;
  dart.addTypeTests(_debugger.MapFormatter);
  dart.addTypeCaches(_debugger.MapFormatter);
  _debugger.MapFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.MapFormatter, () => ({
    __proto__: dart.getMethods(_debugger.MapFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.MapFormatter, I[12]);
  _debugger.IterableFormatter = class IterableFormatter extends core.Object {
    accept(object, config) {
      return core.Iterable.is(object);
    }
    preview(object) {
      let iterable = core.Iterable.as(object);
      try {
        let length = iterable[$length];
        return dart.str(_debugger.getObjectTypeName(iterable)) + " length " + dart.str(length);
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          return dart.str(_debugger.getObjectTypeName(iterable));
        } else
          throw e;
      }
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      let children = new (T$._HashSetOfNameValuePair()).new();
      children.addAll(new _debugger.IterableSpan.new(0, core.int.as(dart.dload(object, 'length')), core.Iterable.as(object)).children());
      _debugger.addMetadataChildren(object, children);
      return children[$toList]();
    }
  };
  (_debugger.IterableFormatter.new = function() {
    ;
  }).prototype = _debugger.IterableFormatter.prototype;
  dart.addTypeTests(_debugger.IterableFormatter);
  dart.addTypeCaches(_debugger.IterableFormatter);
  _debugger.IterableFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.IterableFormatter, () => ({
    __proto__: dart.getMethods(_debugger.IterableFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.IterableFormatter, I[12]);
  _debugger.NamedConstructorFormatter = class NamedConstructorFormatter extends core.Object {
    accept(object, config) {
      return _debugger.NamedConstructor.is(object);
    }
    preview(object) {
      return "Named Constructor";
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      return T$.JSArrayOfNameValuePair().of([new _debugger.NameValuePair.new({name: "JavaScript Function", value: object, config: _debugger.JsonMLConfig.skipDart})]);
    }
  };
  (_debugger.NamedConstructorFormatter.new = function() {
    ;
  }).prototype = _debugger.NamedConstructorFormatter.prototype;
  dart.addTypeTests(_debugger.NamedConstructorFormatter);
  dart.addTypeCaches(_debugger.NamedConstructorFormatter);
  _debugger.NamedConstructorFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.NamedConstructorFormatter, () => ({
    __proto__: dart.getMethods(_debugger.NamedConstructorFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.NamedConstructorFormatter, I[12]);
  _debugger.MapEntryFormatter = class MapEntryFormatter extends core.Object {
    accept(object, config) {
      return _debugger.MapEntry.is(object);
    }
    preview(object) {
      let entry = _debugger.MapEntry.as(object);
      return dart.str(_debugger.safePreview(entry.key, _debugger.JsonMLConfig.none)) + " => " + dart.str(_debugger.safePreview(entry.value, _debugger.JsonMLConfig.none));
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      return T$.JSArrayOfNameValuePair().of([new _debugger.NameValuePair.new({name: "key", value: dart.dload(object, 'key'), config: _debugger.JsonMLConfig.keyToString}), new _debugger.NameValuePair.new({name: "value", value: dart.dload(object, 'value')})]);
    }
  };
  (_debugger.MapEntryFormatter.new = function() {
    ;
  }).prototype = _debugger.MapEntryFormatter.prototype;
  dart.addTypeTests(_debugger.MapEntryFormatter);
  dart.addTypeCaches(_debugger.MapEntryFormatter);
  _debugger.MapEntryFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.MapEntryFormatter, () => ({
    __proto__: dart.getMethods(_debugger.MapEntryFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.MapEntryFormatter, I[12]);
  _debugger.HeritageClauseFormatter = class HeritageClauseFormatter extends core.Object {
    accept(object, config) {
      return _debugger.HeritageClause.is(object);
    }
    preview(object) {
      let clause = _debugger.HeritageClause.as(object);
      let typeNames = clause.types[$map](core.String, C[7] || CT.C7);
      return dart.str(clause.name) + " " + dart.str(typeNames[$join](", "));
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      let clause = _debugger.HeritageClause.as(object);
      let children = T$.JSArrayOfNameValuePair().of([]);
      for (let type of clause.types) {
        children[$add](new _debugger.NameValuePair.new({value: type, config: _debugger.JsonMLConfig.asClass}));
      }
      return children;
    }
  };
  (_debugger.HeritageClauseFormatter.new = function() {
    ;
  }).prototype = _debugger.HeritageClauseFormatter.prototype;
  dart.addTypeTests(_debugger.HeritageClauseFormatter);
  dart.addTypeCaches(_debugger.HeritageClauseFormatter);
  _debugger.HeritageClauseFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.HeritageClauseFormatter, () => ({
    __proto__: dart.getMethods(_debugger.HeritageClauseFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.HeritageClauseFormatter, I[12]);
  _debugger.IterableSpanFormatter = class IterableSpanFormatter extends core.Object {
    accept(object, config) {
      return _debugger.IterableSpan.is(object);
    }
    preview(object) {
      return "[" + dart.str(dart.dload(object, 'start')) + "..." + dart.str(dart.dsend(dart.dload(object, 'end'), '-', [1])) + "]";
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      return T$.ListOfNameValuePair().as(dart.dsend(object, 'children', []));
    }
  };
  (_debugger.IterableSpanFormatter.new = function() {
    ;
  }).prototype = _debugger.IterableSpanFormatter.prototype;
  dart.addTypeTests(_debugger.IterableSpanFormatter);
  dart.addTypeCaches(_debugger.IterableSpanFormatter);
  _debugger.IterableSpanFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.IterableSpanFormatter, () => ({
    __proto__: dart.getMethods(_debugger.IterableSpanFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.IterableSpanFormatter, I[12]);
  _debugger.ErrorAndExceptionFormatter = class ErrorAndExceptionFormatter extends _debugger.ObjectFormatter {
    accept(object, config) {
      return core.Error.is(object) || core.Exception.is(object);
    }
    hasChildren(object) {
      return true;
    }
    preview(object) {
      let trace = dart.stackTrace(object);
      let line = dart.str(trace)[$split]("\n")[$firstWhere](dart.fn(l => {
        if (l == null) dart.nullFailed(I[11], 862, 10, "l");
        return l[$contains](_debugger.ErrorAndExceptionFormatter._pattern) && !l[$contains]("dart:sdk") && !l[$contains]("dart_sdk");
      }, T$.StringTobool()), {orElse: dart.fn(() => "", T$.VoidToString())});
      return line !== "" ? dart.str(object) + " at " + dart.str(line) : dart.str(object);
    }
    children(object) {
      let trace = dart.stackTrace(object);
      let entries = new (T$._HashSetOfNameValuePair()).new();
      entries.add(new _debugger.NameValuePair.new({name: "stackTrace", value: trace}));
      this.addInstanceMembers(object, entries);
      _debugger.addMetadataChildren(object, entries);
      return entries[$toList]();
    }
    addInstanceMembers(object, ret) {
      if (ret == null) dart.nullFailed(I[11], 880, 54, "ret");
      ret.add(new _debugger.NameValuePair.new({name: "[[instance members]]", value: object, config: _debugger.JsonMLConfig.asObject}));
    }
  };
  (_debugger.ErrorAndExceptionFormatter.new = function() {
    ;
  }).prototype = _debugger.ErrorAndExceptionFormatter.prototype;
  dart.addTypeTests(_debugger.ErrorAndExceptionFormatter);
  dart.addTypeCaches(_debugger.ErrorAndExceptionFormatter);
  dart.setMethodSignature(_debugger.ErrorAndExceptionFormatter, () => ({
    __proto__: dart.getMethods(_debugger.ErrorAndExceptionFormatter.__proto__),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
    addInstanceMembers: dart.fnType(dart.void, [dart.dynamic, core.Set$(_debugger.NameValuePair)])
  }));
  dart.setLibraryUri(_debugger.ErrorAndExceptionFormatter, I[12]);
  dart.defineLazy(_debugger.ErrorAndExceptionFormatter, {
    /*_debugger.ErrorAndExceptionFormatter._pattern*/get _pattern() {
      return core.RegExp.new("\\d+\\:\\d+");
    }
  }, false);
  _debugger.StackTraceFormatter = class StackTraceFormatter extends core.Object {
    accept(object, config) {
      return core.StackTrace.is(object);
    }
    preview(object) {
      return "StackTrace";
    }
    hasChildren(object) {
      return true;
    }
    children(object) {
      return dart.toString(object)[$split]("\n")[$map](_debugger.NameValuePair, dart.fn(line => {
        if (line == null) dart.nullFailed(I[11], 901, 13, "line");
        return new _debugger.NameValuePair.new({value: line[$replaceFirst](core.RegExp.new("^\\s+at\\s"), ""), hideName: true});
      }, T$.StringToNameValuePair()))[$toList]();
    }
  };
  (_debugger.StackTraceFormatter.new = function() {
    ;
  }).prototype = _debugger.StackTraceFormatter.prototype;
  dart.addTypeTests(_debugger.StackTraceFormatter);
  dart.addTypeCaches(_debugger.StackTraceFormatter);
  _debugger.StackTraceFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.StackTraceFormatter, () => ({
    __proto__: dart.getMethods(_debugger.StackTraceFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.StackTraceFormatter, I[12]);
  _debugger.ClassFormatter = class ClassFormatter extends core.Object {
    accept(object, config) {
      return dart.equals(config, _debugger.JsonMLConfig.asClass);
    }
    preview(type) {
      let $implements = dart.getImplements(type);
      let typeName = _debugger.getTypeName(type);
      if ($implements != null) {
        let typeNames = $implements()[$map](core.String, C[7] || CT.C7);
        return dart.str(typeName) + " implements " + dart.str(typeNames[$join](", "));
      } else {
        return typeName;
      }
    }
    hasChildren(object) {
      return true;
    }
    children(type) {
      let t17, t17$;
      let ret = new (T$._HashSetOfNameValuePair()).new();
      let staticProperties = new (T$._HashSetOfNameValuePair()).new();
      let staticMethods = new (T$._HashSetOfNameValuePair()).new();
      _debugger.addPropertiesFromSignature(dart.getStaticFields(type), staticProperties, type, false);
      _debugger.addPropertiesFromSignature(dart.getStaticGetters(type), staticProperties, type, false);
      _debugger.addPropertiesFromSignature(dart.getStaticMethods(type), staticMethods, type, false);
      if (dart.test(staticProperties[$isNotEmpty]) || dart.test(staticMethods[$isNotEmpty])) {
        t17 = ret;
        (() => {
          t17.add(new _debugger.NameValuePair.new({value: "[[Static members]]", hideName: true}));
          t17.addAll(_debugger.sortProperties(staticProperties));
          t17.addAll(_debugger.sortProperties(staticMethods));
          return t17;
        })();
      }
      let instanceMethods = new (T$._HashSetOfNameValuePair()).new();
      _debugger.addPropertiesFromSignature(dart.getMethods(type), instanceMethods, type.prototype, false, {tagTypes: true});
      if (dart.test(instanceMethods[$isNotEmpty])) {
        t17$ = ret;
        (() => {
          t17$.add(new _debugger.NameValuePair.new({value: "[[Instance Methods]]", hideName: true}));
          t17$.addAll(_debugger.sortProperties(instanceMethods));
          return t17$;
        })();
      }
      let mixin = dart.getMixin(type);
      if (mixin != null) {
        ret.add(new _debugger.NameValuePair.new({name: "[[Mixins]]", value: new _debugger.HeritageClause.new("mixins", [mixin])}));
      }
      let baseProto = type.__proto__;
      if (baseProto != null && !dart.test(dart.isJsInterop(baseProto))) {
        ret.add(new _debugger.NameValuePair.new({name: "[[base class]]", value: baseProto, config: _debugger.JsonMLConfig.asClass}));
      }
      return ret[$toList]();
    }
  };
  (_debugger.ClassFormatter.new = function() {
    ;
  }).prototype = _debugger.ClassFormatter.prototype;
  dart.addTypeTests(_debugger.ClassFormatter);
  dart.addTypeCaches(_debugger.ClassFormatter);
  _debugger.ClassFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.ClassFormatter, () => ({
    __proto__: dart.getMethods(_debugger.ClassFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.ClassFormatter, I[12]);
  _debugger.TypeFormatter = class TypeFormatter extends core.Object {
    accept(object, config) {
      return core.Type.is(object);
    }
    preview(object) {
      return dart.toString(object);
    }
    hasChildren(object) {
      return false;
    }
    children(object) {
      return T$.JSArrayOfNameValuePair().of([]);
    }
  };
  (_debugger.TypeFormatter.new = function() {
    ;
  }).prototype = _debugger.TypeFormatter.prototype;
  dart.addTypeTests(_debugger.TypeFormatter);
  dart.addTypeCaches(_debugger.TypeFormatter);
  _debugger.TypeFormatter[dart.implements] = () => [_debugger.Formatter];
  dart.setMethodSignature(_debugger.TypeFormatter, () => ({
    __proto__: dart.getMethods(_debugger.TypeFormatter.__proto__),
    accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    preview: dart.fnType(core.String, [dart.dynamic]),
    hasChildren: dart.fnType(core.bool, [dart.dynamic]),
    children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
  }));
  dart.setLibraryUri(_debugger.TypeFormatter, I[12]);
  _debugger._MethodStats = class _MethodStats extends core.Object {};
  (_debugger._MethodStats.new = function(typeName, frame) {
    if (typeName == null) dart.nullFailed(I[13], 13, 21, "typeName");
    if (frame == null) dart.nullFailed(I[13], 13, 36, "frame");
    this.count = 0.0;
    this.typeName = typeName;
    this.frame = frame;
    ;
  }).prototype = _debugger._MethodStats.prototype;
  dart.addTypeTests(_debugger._MethodStats);
  dart.addTypeCaches(_debugger._MethodStats);
  dart.setLibraryUri(_debugger._MethodStats, I[12]);
  dart.setFieldSignature(_debugger._MethodStats, () => ({
    __proto__: dart.getFields(_debugger._MethodStats.__proto__),
    typeName: dart.finalFieldType(core.String),
    frame: dart.finalFieldType(core.String),
    count: dart.fieldType(core.double)
  }));
  _debugger._CallMethodRecord = class _CallMethodRecord extends core.Object {};
  (_debugger._CallMethodRecord.new = function(jsError, type) {
    this.jsError = jsError;
    this.type = type;
    ;
  }).prototype = _debugger._CallMethodRecord.prototype;
  dart.addTypeTests(_debugger._CallMethodRecord);
  dart.addTypeCaches(_debugger._CallMethodRecord);
  dart.setLibraryUri(_debugger._CallMethodRecord, I[12]);
  dart.setFieldSignature(_debugger._CallMethodRecord, () => ({
    __proto__: dart.getFields(_debugger._CallMethodRecord.__proto__),
    jsError: dart.fieldType(dart.dynamic),
    type: dart.fieldType(dart.dynamic)
  }));
  _debugger._typeof = function _typeof(object) {
    return typeof object;
  };
  _debugger.getOwnPropertyNames = function getOwnPropertyNames(object) {
    return T$.JSArrayOfString().of(dart.getOwnPropertyNames(object));
  };
  _debugger.getOwnPropertySymbols = function getOwnPropertySymbols(object) {
    return Object.getOwnPropertySymbols(object);
  };
  _debugger.addMetadataChildren = function addMetadataChildren(object, ret) {
    if (ret == null) dart.nullFailed(I[11], 63, 53, "ret");
    ret.add(new _debugger.NameValuePair.new({name: "[[class]]", value: dart.getReifiedType(object), config: _debugger.JsonMLConfig.asClass}));
  };
  _debugger.addPropertiesFromSignature = function addPropertiesFromSignature(sig, properties, object, walkPrototypeChain, opts) {
    let t17;
    if (properties == null) dart.nullFailed(I[11], 75, 29, "properties");
    if (walkPrototypeChain == null) dart.nullFailed(I[11], 75, 54, "walkPrototypeChain");
    let tagTypes = opts && 'tagTypes' in opts ? opts.tagTypes : false;
    let skippedNames = (t17 = new collection._HashSet.new(), (() => {
      t17.add("hashCode");
      return t17;
    })());
    let objectPrototype = Object.prototype;
    while (sig != null && !core.identical(sig, objectPrototype)) {
      for (let symbol of _debugger.getOwnPropertySymbols(sig)) {
        let dartName = _debugger.symbolName(symbol);
        let dartXPrefix = "dartx.";
        if (dartName[$startsWith](dartXPrefix)) {
          dartName = dartName[$substring](dartXPrefix.length);
        }
        if (dart.test(skippedNames.contains(dartName))) continue;
        let value = _debugger.safeGetProperty(core.Object.as(object), core.Object.as(symbol));
        if (dart.dtest(tagTypes) && _debugger._typeof(value) === "function") {
          dart.fn(value, sig[symbol]);
        }
        properties.add(new _debugger.NameValuePair.new({name: dartName, value: value}));
      }
      for (let name of _debugger.getOwnPropertyNames(sig)) {
        let value = _debugger.safeGetProperty(core.Object.as(object), name);
        if (dart.test(skippedNames.contains(name))) continue;
        if (dart.dtest(tagTypes) && _debugger._typeof(value) === "function") {
          dart.fn(value, sig[name]);
        }
        properties.add(new _debugger.NameValuePair.new({name: name, value: value}));
      }
      if (!dart.test(walkPrototypeChain)) break;
      sig = dart.getPrototypeOf(sig);
    }
  };
  _debugger.sortProperties = function sortProperties(properties) {
    if (properties == null) dart.nullFailed(I[11], 115, 60, "properties");
    let sortedProperties = properties[$toList]();
    sortedProperties[$sort](dart.fn((a, b) => {
      if (a == null) dart.nullFailed(I[11], 118, 26, "a");
      if (b == null) dart.nullFailed(I[11], 118, 29, "b");
      let aPrivate = a.name[$startsWith]("_");
      let bPrivate = b.name[$startsWith]("_");
      if (aPrivate !== bPrivate) return aPrivate ? 1 : -1;
      return a.name[$compareTo](b.name);
    }, T$.NameValuePairAndNameValuePairToint()));
    return sortedProperties;
  };
  _debugger.getObjectTypeName = function getObjectTypeName(object) {
    let reifiedType = dart.getReifiedType(object);
    if (reifiedType == null) {
      if (_debugger._typeof(object) === "function") {
        return "[[Raw JavaScript Function]]";
      }
      return "<Error getting type name>";
    }
    return _debugger.getTypeName(reifiedType);
  };
  _debugger.getTypeName = function getTypeName(type) {
    return dart.typeName(type);
  };
  _debugger.safePreview = function safePreview(object, config) {
    try {
      let preview = _debugger._devtoolsFormatter[_simpleFormatter$].preview(object, config);
      if (preview != null) return preview;
      return dart.toString(object);
    } catch (e$) {
      let e = dart.getThrown(e$);
      if (core.Object.is(e)) {
        return "<Exception thrown> " + dart.str(e);
      } else
        throw e$;
    }
  };
  _debugger.symbolName = function symbolName(symbol) {
    let name = dart.toString(symbol);
    if (!name[$startsWith]("Symbol(")) dart.assertFailed(null, I[11], 157, 10, "name.startsWith('Symbol(')");
    return name[$substring]("Symbol(".length, name.length - 1);
  };
  _debugger.hasMethod = function hasMethod$(object, name) {
    if (name == null) dart.nullFailed(I[11], 161, 31, "name");
    try {
      return dart.hasMethod(object, name);
    } catch (e$) {
      let e = dart.getThrown(e$);
      if (core.Object.is(e)) {
        return false;
      } else
        throw e$;
    }
  };
  _debugger.safeGetProperty = function safeGetProperty(protoChain, name) {
    if (protoChain == null) dart.nullFailed(I[11], 267, 32, "protoChain");
    if (name == null) dart.nullFailed(I[11], 267, 51, "name");
    try {
      return _debugger.JSNative.getProperty(protoChain, name);
    } catch (e$) {
      let e = dart.getThrown(e$);
      if (core.Object.is(e)) {
        return "<Exception thrown> " + dart.str(e);
      } else
        throw e$;
    }
  };
  _debugger.safeProperties = function safeProperties(object) {
    return T$.LinkedHashMapOfdynamic$ObjectN().fromIterable(_debugger.getOwnPropertyNames(object)[$where](dart.fn(each => {
      if (each == null) dart.nullFailed(I[11], 277, 17, "each");
      return _debugger.safeGetProperty(core.Object.as(object), each) != null;
    }, T$.StringTobool())), {key: dart.fn(name => name, T$.dynamicTodynamic()), value: dart.fn(name => _debugger.safeGetProperty(core.Object.as(object), core.Object.as(name)), T$.dynamicToObjectN())});
  };
  _debugger.isNativeJavaScriptObject = function isNativeJavaScriptObject(object) {
    let type = _debugger._typeof(object);
    if (type !== "object" && type !== "function") return true;
    if (dart.test(dart.isJsInterop(object)) && dart.getModuleName(core.Object.as(object)) == null) {
      return true;
    }
    return object instanceof Node;
  };
  _debugger.registerDevtoolsFormatter = function registerDevtoolsFormatter() {
    dart.global.devtoolsFormatters = [_debugger._devtoolsFormatter];
  };
  _debugger.getModuleNames = function getModuleNames$() {
    return dart.getModuleNames();
  };
  _debugger.getModuleLibraries = function getModuleLibraries$(name) {
    if (name == null) dart.nullFailed(I[11], 1015, 27, "name");
    return dart.getModuleLibraries(name);
  };
  _debugger.getDynamicStats = function getDynamicStats() {
    let t20;
    let callMethodStats = new (T$.IdentityMapOfString$_MethodStats()).new();
    if (dart.notNull(_debugger._callMethodRecords[$length]) > 0) {
      let recordRatio = dart.notNull(_debugger._totalCallRecords) / dart.notNull(_debugger._callMethodRecords[$length]);
      for (let record of _debugger._callMethodRecords) {
        let stackStr = record.jsError.stack;
        let frames = stackStr[$split]("\n");
        let src = frames[$skip](2)[$map](core.String, dart.fn(f => {
          if (f == null) dart.nullFailed(I[13], 66, 17, "f");
          return _debugger._frameMappingCache[$putIfAbsent](f, dart.fn(() => dart.nullCheck(_debugger.stackTraceMapper)("\n" + dart.str(f)), T$.VoidToString()));
        }, T$.StringToString()))[$firstWhere](dart.fn(f => {
          if (f == null) dart.nullFailed(I[13], 68, 24, "f");
          return !f[$startsWith]("dart:");
        }, T$.StringTobool()), {orElse: dart.fn(() => "", T$.VoidToString())});
        let actualTypeName = dart.typeName(record.type);
        t20 = callMethodStats[$putIfAbsent](actualTypeName + " <" + dart.str(src) + ">", dart.fn(() => new _debugger._MethodStats.new(actualTypeName, src), T$.VoidTo_MethodStats()));
        t20.count = dart.notNull(t20.count) + recordRatio;
      }
      if (_debugger._totalCallRecords != _debugger._callMethodRecords[$length]) {
        for (let k of callMethodStats[$keys][$toList]()) {
          let stats = dart.nullCheck(callMethodStats[$_get](k));
          let threshold = dart.notNull(_debugger._minCount) * recordRatio;
          if (dart.notNull(stats.count) + 0.001 < threshold) {
            callMethodStats[$remove](k);
          }
        }
      }
    }
    _debugger._callMethodRecords[$clear]();
    _debugger._totalCallRecords = 0;
    let keys = callMethodStats[$keys][$toList]();
    keys[$sort](dart.fn((a, b) => {
      if (a == null) dart.nullFailed(I[13], 94, 8, "a");
      if (b == null) dart.nullFailed(I[13], 94, 11, "b");
      return dart.nullCheck(callMethodStats[$_get](b)).count[$compareTo](dart.nullCheck(callMethodStats[$_get](a)).count);
    }, T$.StringAndStringToint()));
    let ret = T$.JSArrayOfListOfObject().of([]);
    for (let key of keys) {
      let stats = dart.nullCheck(callMethodStats[$_get](key));
      ret[$add](T$.JSArrayOfObject().of([stats.typeName, stats.frame, stats.count[$round]()]));
    }
    return ret;
  };
  _debugger.clearDynamicStats = function clearDynamicStats() {
    _debugger._callMethodRecords[$clear]();
  };
  _debugger.trackCall = function trackCall(obj) {
    if (!_debugger._trackProfile) return;
    let index = -1;
    _debugger._totalCallRecords = dart.notNull(_debugger._totalCallRecords) + 1;
    if (_debugger._callMethodRecords[$length] == _debugger._callRecordSampleSize) {
      index = Math.floor(Math.random() * _debugger._totalCallRecords);
      if (index >= dart.notNull(_debugger._callMethodRecords[$length])) return;
    }
    let record = new _debugger._CallMethodRecord.new(new Error(), dart.getReifiedType(obj));
    if (index === -1) {
      _debugger._callMethodRecords[$add](record);
    } else {
      _debugger._callMethodRecords[$_set](index, record);
    }
  };
  dart.copyProperties(_debugger, {
    get stackTraceMapper() {
      let _util = dart.global.$dartStackTraceUtility;
      return _util != null ? _util.mapper : null;
    },
    get _trackProfile() {
      return dart.__trackProfile;
    }
  });
  dart.defineLazy(_debugger, {
    /*_debugger._maxSpanLength*/get _maxSpanLength() {
      return 100;
    },
    set _maxSpanLength(_) {},
    /*_debugger._devtoolsFormatter*/get _devtoolsFormatter() {
      return new _debugger.JsonMLFormatter.new(new _debugger.DartFormatter.new());
    },
    set _devtoolsFormatter(_) {},
    /*_debugger.maxFormatterStringLength*/get maxFormatterStringLength() {
      return 100;
    },
    set maxFormatterStringLength(_) {},
    /*_debugger._callRecordSampleSize*/get _callRecordSampleSize() {
      return 5000;
    },
    set _callRecordSampleSize(_) {},
    /*_debugger._callMethodRecords*/get _callMethodRecords() {
      return T$.JSArrayOf_CallMethodRecord().of([]);
    },
    set _callMethodRecords(_) {},
    /*_debugger._totalCallRecords*/get _totalCallRecords() {
      return 0;
    },
    set _totalCallRecords(_) {},
    /*_debugger._minCount*/get _minCount() {
      return 2;
    },
    set _minCount(_) {},
    /*_debugger._frameMappingCache*/get _frameMappingCache() {
      return new (T$.IdentityMapOfString$String()).new();
    },
    set _frameMappingCache(_) {}
  }, false);
  var name$4 = dart.privateName(_foreign_helper, "JSExportName.name");
  _foreign_helper.JSExportName = class JSExportName extends core.Object {
    get name() {
      return this[name$4];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_foreign_helper.JSExportName.new = function(name) {
    if (name == null) dart.nullFailed(I[14], 139, 27, "name");
    this[name$4] = name;
    ;
  }).prototype = _foreign_helper.JSExportName.prototype;
  dart.addTypeTests(_foreign_helper.JSExportName);
  dart.addTypeCaches(_foreign_helper.JSExportName);
  dart.setLibraryUri(_foreign_helper.JSExportName, I[15]);
  dart.setFieldSignature(_foreign_helper.JSExportName, () => ({
    __proto__: dart.getFields(_foreign_helper.JSExportName.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  var code$ = dart.privateName(_foreign_helper, "JS_CONST.code");
  _foreign_helper.JS_CONST = class JS_CONST extends core.Object {
    get code() {
      return this[code$];
    }
    set code(value) {
      super.code = value;
    }
  };
  (_foreign_helper.JS_CONST.new = function(code) {
    if (code == null) dart.nullFailed(I[14], 259, 23, "code");
    this[code$] = code;
    ;
  }).prototype = _foreign_helper.JS_CONST.prototype;
  dart.addTypeTests(_foreign_helper.JS_CONST);
  dart.addTypeCaches(_foreign_helper.JS_CONST);
  dart.setLibraryUri(_foreign_helper.JS_CONST, I[15]);
  dart.setFieldSignature(_foreign_helper.JS_CONST, () => ({
    __proto__: dart.getFields(_foreign_helper.JS_CONST.__proto__),
    code: dart.finalFieldType(core.String)
  }));
  _foreign_helper._Rest = class _Rest extends core.Object {};
  (_foreign_helper._Rest.new = function() {
    ;
  }).prototype = _foreign_helper._Rest.prototype;
  dart.addTypeTests(_foreign_helper._Rest);
  dart.addTypeCaches(_foreign_helper._Rest);
  dart.setLibraryUri(_foreign_helper._Rest, I[15]);
  _foreign_helper.JS_DART_OBJECT_CONSTRUCTOR = function JS_DART_OBJECT_CONSTRUCTOR() {
  };
  _foreign_helper.JS_INTERCEPTOR_CONSTANT = function JS_INTERCEPTOR_CONSTANT(type) {
    if (type == null) dart.nullFailed(I[14], 157, 30, "type");
  };
  _foreign_helper.JS_EFFECT = function JS_EFFECT(code) {
    if (code == null) dart.nullFailed(I[14], 244, 25, "code");
    dart.dcall(code, [null]);
  };
  _foreign_helper.spread = function spread(args) {
    dart.throw(new core.StateError.new("The spread function cannot be called, " + "it should be compiled away."));
  };
  dart.defineLazy(_foreign_helper, {
    /*_foreign_helper.rest*/get rest() {
      return C[8] || CT.C8;
    }
  }, false);
  _interceptors.Interceptor = class Interceptor extends core.Object {
    toString() {
      return this.toString();
    }
  };
  (_interceptors.Interceptor.new = function() {
    ;
  }).prototype = _interceptors.Interceptor.prototype;
  dart.addTypeTests(_interceptors.Interceptor);
  dart.addTypeCaches(_interceptors.Interceptor);
  dart.setLibraryUri(_interceptors.Interceptor, I[16]);
  dart.defineExtensionMethods(_interceptors.Interceptor, ['toString']);
  _interceptors.JSBool = class JSBool extends _interceptors.Interceptor {
    [$toString]() {
      return String(this);
    }
    get [$hashCode]() {
      return this ? 2 * 3 * 23 * 3761 : 269 * 811;
    }
    [$bitAnd](other) {
      if (other == null) dart.argumentError(other);
      return other && this;
    }
    [$bitOr](other) {
      if (other == null) dart.argumentError(other);
      return other || this;
    }
    [$bitXor](other) {
      if (other == null) dart.argumentError(other);
      return this !== other;
    }
    get [$runtimeType]() {
      return dart.wrapType(core.bool);
    }
  };
  (_interceptors.JSBool.new = function() {
    _interceptors.JSBool.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSBool.prototype;
  dart.addTypeTests(_interceptors.JSBool);
  dart.addTypeCaches(_interceptors.JSBool);
  _interceptors.JSBool[dart.implements] = () => [core.bool];
  dart.setMethodSignature(_interceptors.JSBool, () => ({
    __proto__: dart.getMethods(_interceptors.JSBool.__proto__),
    [$bitAnd]: dart.fnType(core.bool, [core.bool]),
    [$bitOr]: dart.fnType(core.bool, [core.bool]),
    [$bitXor]: dart.fnType(core.bool, [core.bool])
  }));
  dart.setLibraryUri(_interceptors.JSBool, I[16]);
  dart.definePrimitiveHashCode(_interceptors.JSBool.prototype);
  dart.registerExtension("Boolean", _interceptors.JSBool);
  const _is_JSIndexable_default = Symbol('_is_JSIndexable_default');
  _interceptors.JSIndexable$ = dart.generic(E => {
    class JSIndexable extends core.Object {}
    (JSIndexable.new = function() {
      ;
    }).prototype = JSIndexable.prototype;
    dart.addTypeTests(JSIndexable);
    JSIndexable.prototype[_is_JSIndexable_default] = true;
    dart.addTypeCaches(JSIndexable);
    dart.setLibraryUri(JSIndexable, I[16]);
    return JSIndexable;
  });
  _interceptors.JSIndexable = _interceptors.JSIndexable$();
  dart.addTypeTests(_interceptors.JSIndexable, _is_JSIndexable_default);
  const _is_JSMutableIndexable_default = Symbol('_is_JSMutableIndexable_default');
  _interceptors.JSMutableIndexable$ = dart.generic(E => {
    class JSMutableIndexable extends _interceptors.JSIndexable$(E) {}
    (JSMutableIndexable.new = function() {
      ;
    }).prototype = JSMutableIndexable.prototype;
    dart.addTypeTests(JSMutableIndexable);
    JSMutableIndexable.prototype[_is_JSMutableIndexable_default] = true;
    dart.addTypeCaches(JSMutableIndexable);
    dart.setLibraryUri(JSMutableIndexable, I[16]);
    return JSMutableIndexable;
  });
  _interceptors.JSMutableIndexable = _interceptors.JSMutableIndexable$();
  dart.addTypeTests(_interceptors.JSMutableIndexable, _is_JSMutableIndexable_default);
  _interceptors.JSObject = class JSObject extends core.Object {};
  (_interceptors.JSObject.new = function() {
    ;
  }).prototype = _interceptors.JSObject.prototype;
  dart.addTypeTests(_interceptors.JSObject);
  dart.addTypeCaches(_interceptors.JSObject);
  dart.setLibraryUri(_interceptors.JSObject, I[16]);
  _interceptors.JavaScriptObject = class JavaScriptObject extends _interceptors.Interceptor {
    get hashCode() {
      return 0;
    }
    get runtimeType() {
      return dart.wrapType(_interceptors.JSObject);
    }
  };
  (_interceptors.JavaScriptObject.new = function() {
    _interceptors.JavaScriptObject.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JavaScriptObject.prototype;
  dart.addTypeTests(_interceptors.JavaScriptObject);
  dart.addTypeCaches(_interceptors.JavaScriptObject);
  _interceptors.JavaScriptObject[dart.implements] = () => [_interceptors.JSObject];
  dart.setLibraryUri(_interceptors.JavaScriptObject, I[16]);
  dart.defineExtensionAccessors(_interceptors.JavaScriptObject, ['hashCode', 'runtimeType']);
  _interceptors.PlainJavaScriptObject = class PlainJavaScriptObject extends _interceptors.JavaScriptObject {};
  (_interceptors.PlainJavaScriptObject.new = function() {
    _interceptors.PlainJavaScriptObject.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.PlainJavaScriptObject.prototype;
  dart.addTypeTests(_interceptors.PlainJavaScriptObject);
  dart.addTypeCaches(_interceptors.PlainJavaScriptObject);
  dart.setLibraryUri(_interceptors.PlainJavaScriptObject, I[16]);
  _interceptors.UnknownJavaScriptObject = class UnknownJavaScriptObject extends _interceptors.JavaScriptObject {
    toString() {
      return String(this);
    }
  };
  (_interceptors.UnknownJavaScriptObject.new = function() {
    _interceptors.UnknownJavaScriptObject.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.UnknownJavaScriptObject.prototype;
  dart.addTypeTests(_interceptors.UnknownJavaScriptObject);
  dart.addTypeCaches(_interceptors.UnknownJavaScriptObject);
  dart.setLibraryUri(_interceptors.UnknownJavaScriptObject, I[16]);
  dart.defineExtensionMethods(_interceptors.UnknownJavaScriptObject, ['toString']);
  _interceptors.NativeError = class NativeError extends _interceptors.Interceptor {
    dartStack() {
      return this.stack;
    }
  };
  (_interceptors.NativeError.new = function() {
    _interceptors.NativeError.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.NativeError.prototype;
  dart.addTypeTests(_interceptors.NativeError);
  dart.addTypeCaches(_interceptors.NativeError);
  dart.setMethodSignature(_interceptors.NativeError, () => ({
    __proto__: dart.getMethods(_interceptors.NativeError.__proto__),
    dartStack: dart.fnType(core.String, []),
    [$dartStack]: dart.fnType(core.String, [])
  }));
  dart.setLibraryUri(_interceptors.NativeError, I[16]);
  dart.defineExtensionMethods(_interceptors.NativeError, ['dartStack']);
  var _fieldName = dart.privateName(_interceptors, "_fieldName");
  var _functionCallTarget = dart.privateName(_interceptors, "_functionCallTarget");
  var _receiver = dart.privateName(_interceptors, "_receiver");
  var _receiver$ = dart.privateName(core, "_receiver");
  var _arguments = dart.privateName(_interceptors, "_arguments");
  var _arguments$ = dart.privateName(core, "_arguments");
  var _memberName = dart.privateName(_interceptors, "_memberName");
  var _memberName$ = dart.privateName(core, "_memberName");
  var _invocation = dart.privateName(_interceptors, "_invocation");
  var _invocation$ = dart.privateName(core, "_invocation");
  var _namedArguments = dart.privateName(_interceptors, "_namedArguments");
  var _namedArguments$ = dart.privateName(core, "_namedArguments");
  _interceptors.JSNoSuchMethodError = class JSNoSuchMethodError extends _interceptors.NativeError {
    [_fieldName](message) {
      let t20;
      if (message == null) dart.nullFailed(I[17], 131, 29, "message");
      let match = _interceptors.JSNoSuchMethodError._nullError.firstMatch(message);
      if (match == null) return null;
      let name = dart.nullCheck(match._get(1));
      match = (t20 = _interceptors.JSNoSuchMethodError._extensionName.firstMatch(name), t20 == null ? _interceptors.JSNoSuchMethodError._privateName.firstMatch(name) : t20);
      return match != null ? match._get(1) : name;
    }
    [_functionCallTarget](message) {
      if (message == null) dart.nullFailed(I[17], 139, 38, "message");
      let match = _interceptors.JSNoSuchMethodError._notAFunction.firstMatch(message);
      return match != null ? match._get(1) : null;
    }
    [$dartStack]() {
      let stack = super[$dartStack]();
      stack = dart.notNull(this[$toString]()) + "\n" + dart.notNull(stack[$split]("\n")[$sublist](1)[$join]("\n"));
      return stack;
    }
    get [$stackTrace]() {
      return dart.stackTrace(this);
    }
    [$toString]() {
      let message = this.message;
      let callTarget = this[_functionCallTarget](message);
      if (callTarget != null) {
        return "NoSuchMethodError: tried to call a non-function, such as null: " + "'" + dart.str(callTarget) + "'";
      }
      let name = this[_fieldName](message);
      if (name == null) {
        return this.toString();
      }
      return "NoSuchMethodError: invalid member on null: '" + dart.str(name) + "'";
    }
    get [_receiver$]() {
      return this[$noSuchMethod](new core._Invocation.getter(C[9] || CT.C9));
    }
    get [_arguments$]() {
      return T$.ListN().as(this[$noSuchMethod](new core._Invocation.getter(C[10] || CT.C10)));
    }
    get [_memberName$]() {
      return core.Symbol.as(this[$noSuchMethod](new core._Invocation.getter(C[11] || CT.C11)));
    }
    get [_invocation$]() {
      return T$.InvocationN().as(this[$noSuchMethod](new core._Invocation.getter(C[12] || CT.C12)));
    }
    get [_namedArguments$]() {
      return T$.MapNOfSymbol$dynamic().as(this[$noSuchMethod](new core._Invocation.getter(C[13] || CT.C13)));
    }
  };
  (_interceptors.JSNoSuchMethodError.new = function() {
    _interceptors.JSNoSuchMethodError.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSNoSuchMethodError.prototype;
  dart.addTypeTests(_interceptors.JSNoSuchMethodError);
  dart.addTypeCaches(_interceptors.JSNoSuchMethodError);
  _interceptors.JSNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
  dart.setMethodSignature(_interceptors.JSNoSuchMethodError, () => ({
    __proto__: dart.getMethods(_interceptors.JSNoSuchMethodError.__proto__),
    [_fieldName]: dart.fnType(dart.nullable(core.String), [core.String]),
    [_functionCallTarget]: dart.fnType(dart.nullable(core.String), [core.String])
  }));
  dart.setGetterSignature(_interceptors.JSNoSuchMethodError, () => ({
    __proto__: dart.getGetters(_interceptors.JSNoSuchMethodError.__proto__),
    [$stackTrace]: core.StackTrace,
    [_receiver$]: dart.nullable(core.Object),
    [_arguments$]: dart.nullable(core.List),
    [_memberName$]: core.Symbol,
    [_invocation$]: dart.nullable(core.Invocation),
    [_namedArguments$]: dart.nullable(core.Map$(core.Symbol, dart.dynamic))
  }));
  dart.setLibraryUri(_interceptors.JSNoSuchMethodError, I[16]);
  dart.defineLazy(_interceptors.JSNoSuchMethodError, {
    /*_interceptors.JSNoSuchMethodError._nullError*/get _nullError() {
      return core.RegExp.new("^Cannot read property '(.+)' of null$");
    },
    /*_interceptors.JSNoSuchMethodError._notAFunction*/get _notAFunction() {
      return core.RegExp.new("^(.+) is not a function$");
    },
    /*_interceptors.JSNoSuchMethodError._extensionName*/get _extensionName() {
      return core.RegExp.new("^Symbol\\(dartx\\.(.+)\\)$");
    },
    /*_interceptors.JSNoSuchMethodError._privateName*/get _privateName() {
      return core.RegExp.new("^Symbol\\((_.+)\\)$");
    }
  }, false);
  dart.registerExtension("TypeError", _interceptors.JSNoSuchMethodError);
  _interceptors.JSFunction = class JSFunction extends _interceptors.Interceptor {
    [$toString]() {
      if (dart.isType(this)) return dart.typeName(this);
      return "Closure: " + dart.typeName(dart.getReifiedType(this)) + " from: " + this;
    }
    [$_equals](other) {
      if (other == null) return false;
      if (other == null) return false;
      let boundObj = this._boundObject;
      if (boundObj == null) return this === other;
      return boundObj === other._boundObject && this._boundMethod === other._boundMethod;
    }
    get [$hashCode]() {
      let boundObj = this._boundObject;
      if (boundObj == null) return core.identityHashCode(this);
      let boundMethod = this._boundMethod;
      let hash = 17 * 31 + dart.notNull(dart.hashCode(boundObj)) & 536870911;
      return hash * 31 + dart.notNull(core.identityHashCode(boundMethod)) & 536870911;
    }
    get [$runtimeType]() {
      return dart.wrapType(dart.getReifiedType(this));
    }
  };
  (_interceptors.JSFunction.new = function() {
    _interceptors.JSFunction.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSFunction.prototype;
  dart.addTypeTests(_interceptors.JSFunction);
  dart.addTypeCaches(_interceptors.JSFunction);
  dart.setLibraryUri(_interceptors.JSFunction, I[16]);
  dart.registerExtension("Function", _interceptors.JSFunction);
  _interceptors.JSNull = class JSNull extends core.Object {
    toString() {
      return "null";
    }
    noSuchMethod(i) {
      if (i == null) dart.nullFailed(I[17], 215, 27, "i");
      return dart.defaultNoSuchMethod(null, i);
    }
  };
  (_interceptors.JSNull.new = function() {
    ;
  }).prototype = _interceptors.JSNull.prototype;
  dart.addTypeTests(_interceptors.JSNull);
  dart.addTypeCaches(_interceptors.JSNull);
  dart.setLibraryUri(_interceptors.JSNull, I[16]);
  dart.defineExtensionMethods(_interceptors.JSNull, ['toString', 'noSuchMethod']);
  var _hasValue = dart.privateName(_interceptors, "_hasValue");
  var _hasValue$ = dart.privateName(core, "_hasValue");
  var _errorExplanation = dart.privateName(_interceptors, "_errorExplanation");
  var _errorExplanation$ = dart.privateName(core, "_errorExplanation");
  var _errorName = dart.privateName(_interceptors, "_errorName");
  var _errorName$ = dart.privateName(core, "_errorName");
  _interceptors.JSRangeError = class JSRangeError extends _interceptors.Interceptor {
    get [$stackTrace]() {
      return dart.stackTrace(this);
    }
    get [$invalidValue]() {
      return null;
    }
    get [$name]() {
      return null;
    }
    get [$message]() {
      return this.message;
    }
    [$toString]() {
      return "Invalid argument: " + dart.str(this[$message]);
    }
    get [_hasValue$]() {
      return core.bool.as(this[$noSuchMethod](new core._Invocation.getter(C[14] || CT.C14)));
    }
    get [_errorExplanation$]() {
      return core.String.as(this[$noSuchMethod](new core._Invocation.getter(C[15] || CT.C15)));
    }
    get [_errorName$]() {
      return core.String.as(this[$noSuchMethod](new core._Invocation.getter(C[16] || CT.C16)));
    }
  };
  (_interceptors.JSRangeError.new = function() {
    _interceptors.JSRangeError.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSRangeError.prototype;
  dart.addTypeTests(_interceptors.JSRangeError);
  dart.addTypeCaches(_interceptors.JSRangeError);
  _interceptors.JSRangeError[dart.implements] = () => [core.ArgumentError];
  dart.setGetterSignature(_interceptors.JSRangeError, () => ({
    __proto__: dart.getGetters(_interceptors.JSRangeError.__proto__),
    [$stackTrace]: core.StackTrace,
    [$invalidValue]: dart.dynamic,
    [$name]: dart.nullable(core.String),
    [$message]: dart.dynamic,
    [_hasValue$]: core.bool,
    [_errorExplanation$]: core.String,
    [_errorName$]: core.String
  }));
  dart.setLibraryUri(_interceptors.JSRangeError, I[16]);
  dart.registerExtension("RangeError", _interceptors.JSRangeError);
  var _setLengthUnsafe = dart.privateName(_interceptors, "_setLengthUnsafe");
  var _removeWhere = dart.privateName(_interceptors, "_removeWhere");
  const _is_JSArray_default = Symbol('_is_JSArray_default');
  _interceptors.JSArray$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
    var SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
    var TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
    var SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    var ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
    var LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
    var ArrayIteratorOfE = () => (ArrayIteratorOfE = dart.constFn(_interceptors.ArrayIterator$(E)))();
    var ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
    var FollowedByIterableOfE = () => (FollowedByIterableOfE = dart.constFn(_internal.FollowedByIterable$(E)))();
    class JSArray extends core.Object {
      constructor() {
        return [];
      }
      static of(list) {
        list.__proto__ = JSArray.prototype;
        return list;
      }
      static fixed(list) {
        list.__proto__ = JSArray.prototype;
        list.fixed$length = Array;
        return list;
      }
      static unmodifiable(list) {
        list.__proto__ = JSArray.prototype;
        list.fixed$length = Array;
        list.immutable$list = Array;
        return list;
      }
      static markFixedList(list) {
        list.fixed$length = Array;
      }
      static markUnmodifiableList(list) {
        list.fixed$length = Array;
        list.immutable$list = Array;
      }
      [$checkMutable](reason) {
        if (this.immutable$list) {
          dart.throw(new core.UnsupportedError.new(core.String.as(reason)));
        }
      }
      [$checkGrowable](reason) {
        if (this.fixed$length) {
          dart.throw(new core.UnsupportedError.new(core.String.as(reason)));
        }
      }
      [$cast](R) {
        return core.List.castFrom(E, R, this);
      }
      [$add](value) {
        E.as(value);
        this[$checkGrowable]("add");
        this.push(value);
      }
      [$removeAt](index) {
        if (index == null) dart.argumentError(index);
        this[$checkGrowable]("removeAt");
        if (index < 0 || index >= this[$length]) {
          dart.throw(new core.RangeError.value(index));
        }
        return this.splice(index, 1)[0];
      }
      [$insert](index, value) {
        if (index == null) dart.argumentError(index);
        E.as(value);
        this[$checkGrowable]("insert");
        if (index < 0 || index > this[$length]) {
          dart.throw(new core.RangeError.value(index));
        }
        this.splice(index, 0, value);
      }
      [$insertAll](index, iterable) {
        if (index == null) dart.argumentError(index);
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[18], 93, 52, "iterable");
        this[$checkGrowable]("insertAll");
        core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
        if (!_internal.EfficientLengthIterable.is(iterable)) {
          iterable = iterable[$toList]();
        }
        let insertionLength = dart.notNull(iterable[$length]);
        this[_setLengthUnsafe](this[$length] + insertionLength);
        let end = index + insertionLength;
        this[$setRange](end, this[$length], this, index);
        this[$setRange](index, end, iterable);
      }
      [$setAll](index, iterable) {
        let t20;
        if (index == null) dart.argumentError(index);
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[18], 107, 49, "iterable");
        this[$checkMutable]("setAll");
        core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
        for (let element of iterable) {
          this[$_set]((t20 = index, index = t20 + 1, t20), element);
        }
      }
      [$removeLast]() {
        this[$checkGrowable]("removeLast");
        if (this[$length] === 0) dart.throw(_js_helper.diagnoseIndexError(this, -1));
        return this.pop();
      }
      [$remove](element) {
        this[$checkGrowable]("remove");
        let length = this[$length];
        for (let i = 0; i < length; i = i + 1) {
          if (dart.equals(this[$_get](i), element)) {
            this.splice(i, 1);
            return true;
          }
        }
        return false;
      }
      [$removeWhere](test) {
        if (test == null) dart.nullFailed(I[18], 136, 37, "test");
        this[$checkGrowable]("removeWhere");
        this[_removeWhere](test, true);
      }
      [$retainWhere](test) {
        if (test == null) dart.nullFailed(I[18], 141, 37, "test");
        this[$checkGrowable]("retainWhere");
        this[_removeWhere](test, false);
      }
      [_removeWhere](test, removeMatching) {
        if (test == null) dart.nullFailed(I[18], 146, 38, "test");
        if (removeMatching == null) dart.nullFailed(I[18], 146, 49, "removeMatching");
        let retained = [];
        let end = this[$length];
        for (let i = 0; i < end; i = i + 1) {
          let element = this[i];
          if (!dart.test(test(element)) === removeMatching) {
            retained.push(element);
          }
          if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (retained[$length] === end) return;
        this[$length] = retained[$length];
        let length = dart.notNull(retained[$length]);
        for (let i = 0; i < length; i = i + 1) {
          this[i] = retained[i];
        }
      }
      [$where](f) {
        if (f == null) dart.nullFailed(I[18], 175, 38, "f");
        return new (WhereIterableOfE()).new(this, f);
      }
      [$expand](T, f) {
        if (f == null) dart.nullFailed(I[18], 179, 49, "f");
        return new (_internal.ExpandIterable$(E, T)).new(this, f);
      }
      [$addAll](collection) {
        IterableOfE().as(collection);
        if (collection == null) dart.nullFailed(I[18], 183, 27, "collection");
        let i = this[$length];
        this[$checkGrowable]("addAll");
        for (let e of collection) {
          if (!(i === this[$length] || dart.throw(new core.ConcurrentModificationError.new(this)))) dart.assertFailed(null, I[18], 187, 14, "i == this.length || (throw ConcurrentModificationError(this))");
          i = i + 1;
          this.push(e);
        }
      }
      [$clear]() {
        this[$length] = 0;
      }
      [$forEach](f) {
        if (f == null) dart.nullFailed(I[18], 197, 33, "f");
        let end = this[$length];
        for (let i = 0; i < end; i = i + 1) {
          let element = this[i];
          f(element);
          if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      [$map](T, f) {
        if (f == null) dart.nullFailed(I[18], 206, 36, "f");
        return new (_internal.MappedListIterable$(E, T)).new(this, f);
      }
      [$join](separator = "") {
        if (separator == null) dart.nullFailed(I[18], 210, 23, "separator");
        let length = this[$length];
        let list = T$.ListOfString().filled(length, "");
        for (let i = 0; i < length; i = i + 1) {
          list[$_set](i, dart.str(this[$_get](i)));
        }
        return list.join(separator);
      }
      [$take](n) {
        if (n == null) dart.nullFailed(I[18], 219, 24, "n");
        return new (SubListIterableOfE()).new(this, 0, _internal.checkNotNullable(core.int, n, "count"));
      }
      [$takeWhile](test) {
        if (test == null) dart.nullFailed(I[18], 223, 30, "test");
        return new (TakeWhileIterableOfE()).new(this, test);
      }
      [$skip](n) {
        if (n == null) dart.nullFailed(I[18], 227, 24, "n");
        return new (SubListIterableOfE()).new(this, n, null);
      }
      [$skipWhile](test) {
        if (test == null) dart.nullFailed(I[18], 231, 42, "test");
        return new (SkipWhileIterableOfE()).new(this, test);
      }
      [$reduce](combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[18], 235, 14, "combine");
        let length = this[$length];
        if (length === 0) dart.throw(_internal.IterableElementError.noElement());
        let value = this[$_get](0);
        for (let i = 1; i < length; i = i + 1) {
          let element = this[i];
          value = combine(value, element);
          if (length !== this[$length]) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        return value;
      }
      [$fold](T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[18], 247, 68, "combine");
        let value = initialValue;
        let length = this[$length];
        for (let i = 0; i < length; i = i + 1) {
          let element = this[i];
          value = combine(value, element);
          if (this[$length] !== length) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        return value;
      }
      [$firstWhere](test, opts) {
        if (test == null) dart.nullFailed(I[18], 258, 33, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let end = this[$length];
        for (let i = 0; i < end; i = i + 1) {
          let element = this[i];
          if (dart.test(test(element))) return element;
          if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      [$lastWhere](test, opts) {
        if (test == null) dart.nullFailed(I[18], 269, 32, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this[$length];
        for (let i = length - 1; i >= 0; i = i - 1) {
          let element = this[i];
          if (dart.test(test(element))) return element;
          if (length !== this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      [$singleWhere](test, opts) {
        if (test == null) dart.nullFailed(I[18], 282, 34, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this[$length];
        let match = null;
        let matchFound = false;
        for (let i = 0; i < length; i = i + 1) {
          let element = this[i];
          if (dart.test(test(element))) {
            if (matchFound) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            matchFound = true;
            match = element;
          }
          if (length !== this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (matchFound) return E.as(match);
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      [$elementAt](index) {
        if (index == null) dart.nullFailed(I[18], 304, 19, "index");
        return this[$_get](index);
      }
      [$sublist](start, end = null) {
        if (start == null) dart.argumentError(start);
        if (start < 0 || start > this[$length]) {
          dart.throw(new core.RangeError.range(start, 0, this[$length], "start"));
        }
        if (end == null) {
          end = this[$length];
        } else {
          let _end = end;
          if (_end < start || _end > this[$length]) {
            dart.throw(new core.RangeError.range(end, start, this[$length], "end"));
          }
        }
        if (start === end) return JSArrayOfE().of([]);
        return JSArrayOfE().of(this.slice(start, end));
      }
      [$getRange](start, end) {
        if (start == null) dart.nullFailed(I[18], 325, 28, "start");
        if (end == null) dart.nullFailed(I[18], 325, 39, "end");
        core.RangeError.checkValidRange(start, end, this[$length]);
        return new (SubListIterableOfE()).new(this, start, end);
      }
      get [$first]() {
        if (this[$length] > 0) return this[$_get](0);
        dart.throw(_internal.IterableElementError.noElement());
      }
      get [$last]() {
        if (this[$length] > 0) return this[$_get](this[$length] - 1);
        dart.throw(_internal.IterableElementError.noElement());
      }
      get [$single]() {
        if (this[$length] === 1) return this[$_get](0);
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        dart.throw(_internal.IterableElementError.tooMany());
      }
      [$removeRange](start, end) {
        if (start == null) dart.argumentError(start);
        if (end == null) dart.argumentError(end);
        this[$checkGrowable]("removeRange");
        core.RangeError.checkValidRange(start, end, this[$length]);
        let deleteCount = end - start;
        this.splice(start, deleteCount);
      }
      [$setRange](start, end, iterable, skipCount = 0) {
        if (start == null) dart.argumentError(start);
        if (end == null) dart.argumentError(end);
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[18], 353, 71, "iterable");
        if (skipCount == null) dart.argumentError(skipCount);
        this[$checkMutable]("set range");
        core.RangeError.checkValidRange(start, end, this[$length]);
        let length = end - start;
        if (length === 0) return;
        core.RangeError.checkNotNegative(skipCount, "skipCount");
        let otherList = JSArrayOfE().of([]);
        let otherStart = 0;
        if (ListOfE().is(iterable)) {
          otherList = iterable;
          otherStart = skipCount;
        } else {
          otherList = iterable[$skip](skipCount)[$toList]({growable: false});
          otherStart = 0;
        }
        if (otherStart + length > dart.notNull(otherList[$length])) {
          dart.throw(_internal.IterableElementError.tooFew());
        }
        if (otherStart < start) {
          for (let i = length - 1; i >= 0; i = i - 1) {
            let element = otherList[$_get](otherStart + i);
            this[start + i] = element;
          }
        } else {
          for (let i = 0; i < length; i = i + 1) {
            let element = otherList[$_get](otherStart + i);
            this[start + i] = element;
          }
        }
      }
      [$fillRange](start, end, fillValue = null) {
        if (start == null) dart.argumentError(start);
        if (end == null) dart.argumentError(end);
        EN().as(fillValue);
        this[$checkMutable]("fill range");
        core.RangeError.checkValidRange(start, end, this[$length]);
        let checkedFillValue = E.as(fillValue);
        for (let i = start; i < end; i = i + 1) {
          this[i] = checkedFillValue;
        }
      }
      [$replaceRange](start, end, replacement) {
        if (start == null) dart.argumentError(start);
        if (end == null) dart.argumentError(end);
        IterableOfE().as(replacement);
        if (replacement == null) dart.nullFailed(I[18], 404, 61, "replacement");
        this[$checkGrowable]("replace range");
        core.RangeError.checkValidRange(start, end, this[$length]);
        if (!_internal.EfficientLengthIterable.is(replacement)) {
          replacement = replacement[$toList]();
        }
        let removeLength = end - start;
        let insertLength = dart.notNull(replacement[$length]);
        if (removeLength >= insertLength) {
          let delta = removeLength - insertLength;
          let insertEnd = start + insertLength;
          let newLength = this[$length] - delta;
          this[$setRange](start, insertEnd, replacement);
          if (delta !== 0) {
            this[$setRange](insertEnd, newLength, this, end);
            this[$length] = newLength;
          }
        } else {
          let delta = insertLength - removeLength;
          let newLength = this[$length] + delta;
          let insertEnd = start + insertLength;
          this[_setLengthUnsafe](newLength);
          this[$setRange](insertEnd, newLength, this, end);
          this[$setRange](start, insertEnd, replacement);
        }
      }
      [$any](test) {
        if (test == null) dart.nullFailed(I[18], 432, 29, "test");
        let end = this[$length];
        for (let i = 0; i < end; i = i + 1) {
          let element = this[i];
          if (dart.test(test(element))) return true;
          if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        return false;
      }
      [$every](test) {
        if (test == null) dart.nullFailed(I[18], 442, 31, "test");
        let end = this[$length];
        for (let i = 0; i < end; i = i + 1) {
          let element = this[i];
          if (!dart.test(test(element))) return false;
          if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        return true;
      }
      get [$reversed]() {
        return new (ReversedListIterableOfE()).new(this);
      }
      [$sort](compare = null) {
        this[$checkMutable]("sort");
        if (compare == null) {
          _internal.Sort.sort(E, this, dart.fn((a, b) => core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b)), T$.ObjectNAndObjectNToint()));
        } else {
          _internal.Sort.sort(E, this, compare);
        }
      }
      [$shuffle](random = null) {
        this[$checkMutable]("shuffle");
        if (random == null) random = math.Random.new();
        let length = this[$length];
        while (length > 1) {
          let pos = random.nextInt(length);
          length = length - 1;
          let tmp = this[$_get](length);
          this[$_set](length, this[$_get](pos));
          this[$_set](pos, tmp);
        }
      }
      [$indexOf](element, start = 0) {
        if (start == null) dart.argumentError(start);
        let length = this[$length];
        if (start >= length) {
          return -1;
        }
        if (start < 0) {
          start = 0;
        }
        for (let i = start; i < length; i = i + 1) {
          if (dart.equals(this[$_get](i), element)) {
            return i;
          }
        }
        return -1;
      }
      [$lastIndexOf](element, startIndex = null) {
        let t20;
        let start = (t20 = startIndex, t20 == null ? this[$length] - 1 : t20);
        if (start >= this[$length]) {
          start = this[$length] - 1;
        } else if (start < 0) {
          return -1;
        }
        for (let i = start; i >= 0; i = i - 1) {
          if (dart.equals(this[$_get](i), element)) {
            return i;
          }
        }
        return -1;
      }
      [$contains](other) {
        let length = this[$length];
        for (let i = 0; i < length; i = i + 1) {
          let element = this[i];
          if (dart.equals(element, other)) return true;
        }
        return false;
      }
      get [$isEmpty]() {
        return this[$length] === 0;
      }
      get [$isNotEmpty]() {
        return !this[$isEmpty];
      }
      [$toString]() {
        return collection.ListBase.listToString(this);
      }
      [$toList](opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.argumentError(growable);
        let list = this.slice();
        if (!growable) _interceptors.JSArray.markFixedList(list);
        return JSArrayOfE().of(list);
      }
      [$toSet]() {
        return LinkedHashSetOfE().from(this);
      }
      get [$iterator]() {
        return new (ArrayIteratorOfE()).new(this);
      }
      get [$hashCode]() {
        return core.identityHashCode(this);
      }
      [$_equals](other) {
        if (other == null) return false;
        return this === other;
      }
      get [$length]() {
        return this.length;
      }
      set [$length](newLength) {
        if (newLength == null) dart.argumentError(newLength);
        this[$checkGrowable]("set length");
        if (newLength < 0) {
          dart.throw(new core.RangeError.range(newLength, 0, null, "newLength"));
        }
        if (newLength > this[$length]) E.as(null);
        this.length = newLength;
      }
      [_setLengthUnsafe](newLength) {
        if (newLength == null) dart.nullFailed(I[18], 566, 29, "newLength");
        if (dart.notNull(newLength) < 0) {
          dart.throw(new core.RangeError.range(newLength, 0, null, "newLength"));
        }
        this.length = newLength;
      }
      [$_get](index) {
        if (index == null) dart.nullFailed(I[18], 576, 21, "index");
        if (index == null || index >= this.length || index < 0) {
          dart.throw(_js_helper.diagnoseIndexError(this, index));
        }
        return this[index];
      }
      [$_set](index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[18], 586, 25, "index");
        E.as(value);
        this[$checkMutable]("indexed set");
        if (index == null || index >= this.length || index < 0) {
          dart.throw(_js_helper.diagnoseIndexError(this, index));
        }
        this[index] = value;
        return value$;
      }
      [$asMap]() {
        return new (ListMapViewOfE()).new(this);
      }
      get [$runtimeType]() {
        return dart.wrapType(core.List$(E));
      }
      [$followedBy](other) {
        IterableOfE().as(other);
        if (other == null) dart.nullFailed(I[18], 603, 38, "other");
        return FollowedByIterableOfE().firstEfficient(this, other);
      }
      [$whereType](T) {
        return new (_internal.WhereTypeIterable$(T)).new(this);
      }
      [$plus](other) {
        ListOfE().as(other);
        if (other == null) dart.nullFailed(I[18], 608, 30, "other");
        return (() => {
          let t20 = ListOfE().of(this);
          t20[$addAll](other);
          return t20;
        })();
      }
      [$indexWhere](test, start = 0) {
        if (test == null) dart.nullFailed(I[18], 610, 35, "test");
        if (start == null) dart.nullFailed(I[18], 610, 46, "start");
        if (dart.notNull(start) >= this[$length]) return -1;
        if (dart.notNull(start) < 0) start = 0;
        for (let i = start; dart.notNull(i) < this[$length]; i = dart.notNull(i) + 1) {
          if (dart.test(test(this[$_get](i)))) return i;
        }
        return -1;
      }
      [$lastIndexWhere](test, start = null) {
        if (test == null) dart.nullFailed(I[18], 619, 39, "test");
        if (start == null) start = this[$length] - 1;
        if (dart.notNull(start) < 0) return -1;
        for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
          if (dart.test(test(this[$_get](i)))) return i;
        }
        return -1;
      }
      set [$first](element) {
        E.as(element);
        if (this[$isEmpty]) dart.throw(new core.IndexError.new(0, this));
        this[$_set](0, element);
      }
      set [$last](element) {
        E.as(element);
        if (this[$isEmpty]) dart.throw(new core.IndexError.new(0, this));
        this[$_set](this[$length] - 1, element);
      }
    }
    (JSArray.new = function() {
      ;
    }).prototype = JSArray.prototype;
    dart.setExtensionBaseClass(JSArray, dart.global.Array);
    JSArray.prototype[dart.isList] = true;
    dart.addTypeTests(JSArray);
    JSArray.prototype[_is_JSArray_default] = true;
    dart.addTypeCaches(JSArray);
    JSArray[dart.implements] = () => [core.List$(E), _interceptors.JSIndexable$(E)];
    dart.setMethodSignature(JSArray, () => ({
      __proto__: dart.getMethods(JSArray.__proto__),
      [$checkMutable]: dart.fnType(dart.dynamic, [dart.dynamic]),
      [$checkGrowable]: dart.fnType(dart.dynamic, [dart.dynamic]),
      [$cast]: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      [$add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$removeAt]: dart.fnType(E, [core.int]),
      [$insert]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insertAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$setAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$removeLast]: dart.fnType(E, []),
      [$remove]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [_removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
      [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$clear]: dart.fnType(dart.void, []),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$join]: dart.fnType(core.String, [], [core.String]),
      [$take]: dart.fnType(core.Iterable$(E), [core.int]),
      [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
      [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$reduce]: dart.fnType(E, [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$elementAt]: dart.fnType(E, [core.int]),
      [$sublist]: dart.fnType(core.List$(E), [core.int], [dart.nullable(core.int)]),
      [$getRange]: dart.fnType(core.Iterable$(E), [core.int, core.int]),
      [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
      [$setRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)]),
      [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$sort]: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      [$shuffle]: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      [$indexOf]: dart.fnType(core.int, [dart.nullable(core.Object)], [core.int]),
      [$lastIndexOf]: dart.fnType(core.int, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      [$toSet]: dart.fnType(core.Set$(E), []),
      [_setLengthUnsafe]: dart.fnType(dart.void, [core.int]),
      [$_get]: dart.fnType(E, [core.int]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$asMap]: dart.fnType(core.Map$(core.int, E), []),
      [$followedBy]: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      [$whereType]: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      [$plus]: dart.fnType(core.List$(E), [dart.nullable(core.Object)]),
      [$indexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
      [$lastIndexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [dart.nullable(core.int)])
    }));
    dart.setGetterSignature(JSArray, () => ({
      __proto__: dart.getGetters(JSArray.__proto__),
      [$first]: E,
      [$last]: E,
      [$single]: E,
      [$reversed]: core.Iterable$(E),
      [$isEmpty]: core.bool,
      [$isNotEmpty]: core.bool,
      [$iterator]: core.Iterator$(E),
      [$length]: core.int
    }));
    dart.setSetterSignature(JSArray, () => ({
      __proto__: dart.getSetters(JSArray.__proto__),
      [$length]: core.int,
      [$first]: dart.nullable(core.Object),
      [$last]: dart.nullable(core.Object)
    }));
    dart.setLibraryUri(JSArray, I[16]);
    return JSArray;
  });
  _interceptors.JSArray = _interceptors.JSArray$();
  dart.addTypeTests(_interceptors.JSArray, _is_JSArray_default);
  dart.registerExtension("Array", _interceptors.JSArray);
  const _is_JSMutableArray_default = Symbol('_is_JSMutableArray_default');
  _interceptors.JSMutableArray$ = dart.generic(E => {
    class JSMutableArray extends _interceptors.JSArray$(E) {}
    (JSMutableArray.new = function() {
      JSMutableArray.__proto__.new.call(this);
      ;
    }).prototype = JSMutableArray.prototype;
    dart.addTypeTests(JSMutableArray);
    JSMutableArray.prototype[_is_JSMutableArray_default] = true;
    dart.addTypeCaches(JSMutableArray);
    JSMutableArray[dart.implements] = () => [_interceptors.JSMutableIndexable$(E)];
    dart.setLibraryUri(JSMutableArray, I[16]);
    return JSMutableArray;
  });
  _interceptors.JSMutableArray = _interceptors.JSMutableArray$();
  dart.addTypeTests(_interceptors.JSMutableArray, _is_JSMutableArray_default);
  const _is_JSFixedArray_default = Symbol('_is_JSFixedArray_default');
  _interceptors.JSFixedArray$ = dart.generic(E => {
    class JSFixedArray extends _interceptors.JSMutableArray$(E) {}
    (JSFixedArray.new = function() {
      JSFixedArray.__proto__.new.call(this);
      ;
    }).prototype = JSFixedArray.prototype;
    dart.addTypeTests(JSFixedArray);
    JSFixedArray.prototype[_is_JSFixedArray_default] = true;
    dart.addTypeCaches(JSFixedArray);
    dart.setLibraryUri(JSFixedArray, I[16]);
    return JSFixedArray;
  });
  _interceptors.JSFixedArray = _interceptors.JSFixedArray$();
  dart.addTypeTests(_interceptors.JSFixedArray, _is_JSFixedArray_default);
  const _is_JSExtendableArray_default = Symbol('_is_JSExtendableArray_default');
  _interceptors.JSExtendableArray$ = dart.generic(E => {
    class JSExtendableArray extends _interceptors.JSMutableArray$(E) {}
    (JSExtendableArray.new = function() {
      JSExtendableArray.__proto__.new.call(this);
      ;
    }).prototype = JSExtendableArray.prototype;
    dart.addTypeTests(JSExtendableArray);
    JSExtendableArray.prototype[_is_JSExtendableArray_default] = true;
    dart.addTypeCaches(JSExtendableArray);
    dart.setLibraryUri(JSExtendableArray, I[16]);
    return JSExtendableArray;
  });
  _interceptors.JSExtendableArray = _interceptors.JSExtendableArray$();
  dart.addTypeTests(_interceptors.JSExtendableArray, _is_JSExtendableArray_default);
  const _is_JSUnmodifiableArray_default = Symbol('_is_JSUnmodifiableArray_default');
  _interceptors.JSUnmodifiableArray$ = dart.generic(E => {
    class JSUnmodifiableArray extends _interceptors.JSArray$(E) {}
    (JSUnmodifiableArray.new = function() {
      JSUnmodifiableArray.__proto__.new.call(this);
      ;
    }).prototype = JSUnmodifiableArray.prototype;
    dart.addTypeTests(JSUnmodifiableArray);
    JSUnmodifiableArray.prototype[_is_JSUnmodifiableArray_default] = true;
    dart.addTypeCaches(JSUnmodifiableArray);
    dart.setLibraryUri(JSUnmodifiableArray, I[16]);
    return JSUnmodifiableArray;
  });
  _interceptors.JSUnmodifiableArray = _interceptors.JSUnmodifiableArray$();
  dart.addTypeTests(_interceptors.JSUnmodifiableArray, _is_JSUnmodifiableArray_default);
  var _current = dart.privateName(_interceptors, "_current");
  var _iterable = dart.privateName(_interceptors, "_iterable");
  var _length = dart.privateName(_interceptors, "_length");
  var _index = dart.privateName(_interceptors, "_index");
  const _is_ArrayIterator_default = Symbol('_is_ArrayIterator_default');
  _interceptors.ArrayIterator$ = dart.generic(E => {
    class ArrayIterator extends core.Object {
      get current() {
        return E.as(this[_current]);
      }
      moveNext() {
        let length = this[_iterable][$length];
        if (this[_length] !== length) {
          dart.throw(_js_helper.throwConcurrentModificationError(this[_iterable]));
        }
        if (this[_index] >= length) {
          this[_current] = null;
          return false;
        }
        this[_current] = this[_iterable][$_get](this[_index]);
        this[_index] = this[_index] + 1;
        return true;
      }
    }
    (ArrayIterator.new = function(iterable) {
      if (iterable == null) dart.nullFailed(I[18], 668, 28, "iterable");
      this[_current] = null;
      this[_iterable] = iterable;
      this[_length] = iterable[$length];
      this[_index] = 0;
      ;
    }).prototype = ArrayIterator.prototype;
    dart.addTypeTests(ArrayIterator);
    ArrayIterator.prototype[_is_ArrayIterator_default] = true;
    dart.addTypeCaches(ArrayIterator);
    ArrayIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(ArrayIterator, () => ({
      __proto__: dart.getMethods(ArrayIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(ArrayIterator, () => ({
      __proto__: dart.getGetters(ArrayIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(ArrayIterator, I[16]);
    dart.setFieldSignature(ArrayIterator, () => ({
      __proto__: dart.getFields(ArrayIterator.__proto__),
      [_iterable]: dart.finalFieldType(_interceptors.JSArray$(E)),
      [_length]: dart.finalFieldType(core.int),
      [_index]: dart.fieldType(core.int),
      [_current]: dart.fieldType(dart.nullable(E))
    }));
    return ArrayIterator;
  });
  _interceptors.ArrayIterator = _interceptors.ArrayIterator$();
  dart.addTypeTests(_interceptors.ArrayIterator, _is_ArrayIterator_default);
  var _isInt32 = dart.privateName(_interceptors, "_isInt32");
  var _tdivSlow = dart.privateName(_interceptors, "_tdivSlow");
  var _shlPositive = dart.privateName(_interceptors, "_shlPositive");
  var _shrOtherPositive = dart.privateName(_interceptors, "_shrOtherPositive");
  var _shrUnsigned = dart.privateName(_interceptors, "_shrUnsigned");
  _interceptors.JSNumber = class JSNumber extends _interceptors.Interceptor {
    [$compareTo](b) {
      core.num.as(b);
      if (b == null) dart.argumentError(b);
      if (this < b) {
        return -1;
      } else if (this > b) {
        return 1;
      } else if (this === b) {
        if (this === 0) {
          let bIsNegative = b[$isNegative];
          if (this[$isNegative] === bIsNegative) return 0;
          if (this[$isNegative]) return -1;
          return 1;
        }
        return 0;
      } else if (this[$isNaN]) {
        if (b[$isNaN]) {
          return 0;
        }
        return 1;
      } else {
        return -1;
      }
    }
    get [$isNegative]() {
      return this === 0 ? 1 / this < 0 : this < 0;
    }
    get [$isNaN]() {
      return isNaN(this);
    }
    get [$isInfinite]() {
      return this == 1 / 0 || this == -1 / 0;
    }
    get [$isFinite]() {
      return isFinite(this);
    }
    [$remainder](b) {
      if (b == null) dart.argumentError(b);
      return this % b;
    }
    [$abs]() {
      return Math.abs(this);
    }
    get [$sign]() {
      return _interceptors.JSNumber.as(this > 0 ? 1 : this < 0 ? -1 : this);
    }
    [$toInt]() {
      if (this >= -2147483648 && this <= 2147483647) {
        return this | 0;
      }
      if (isFinite(this)) {
        return this[$truncateToDouble]() + 0;
      }
      dart.throw(new core.UnsupportedError.new("" + this));
    }
    [$truncate]() {
      return this[$toInt]();
    }
    [$ceil]() {
      return this[$ceilToDouble]()[$toInt]();
    }
    [$floor]() {
      return this[$floorToDouble]()[$toInt]();
    }
    [$round]() {
      if (this > 0) {
        if (this !== 1 / 0) {
          return Math.round(this);
        }
      } else if (this > -1 / 0) {
        return 0 - Math.round(0 - this);
      }
      dart.throw(new core.UnsupportedError.new("" + this));
    }
    [$ceilToDouble]() {
      return Math.ceil(this);
    }
    [$floorToDouble]() {
      return Math.floor(this);
    }
    [$roundToDouble]() {
      if (this < 0) {
        return -Math.round(-this);
      } else {
        return Math.round(this);
      }
    }
    [$truncateToDouble]() {
      return this < 0 ? this[$ceilToDouble]() : this[$floorToDouble]();
    }
    [$clamp](lowerLimit, upperLimit) {
      if (lowerLimit == null) dart.argumentError(lowerLimit);
      if (upperLimit == null) dart.argumentError(upperLimit);
      if (lowerLimit[$compareTo](upperLimit) > 0) {
        dart.throw(_js_helper.argumentErrorValue(lowerLimit));
      }
      if (this[$compareTo](lowerLimit) < 0) return lowerLimit;
      if (this[$compareTo](upperLimit) > 0) return upperLimit;
      return this;
    }
    [$toDouble]() {
      return this;
    }
    [$toStringAsFixed](fractionDigits) {
      if (fractionDigits == null) dart.argumentError(fractionDigits);
      if (fractionDigits < 0 || fractionDigits > 20) {
        dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
      }
      let result = this.toFixed(fractionDigits);
      if (this === 0 && this[$isNegative]) return "-" + result;
      return result;
    }
    [$toStringAsExponential](fractionDigits = null) {
      let result = null;
      if (fractionDigits != null) {
        let _fractionDigits = fractionDigits;
        if (_fractionDigits < 0 || _fractionDigits > 20) {
          dart.throw(new core.RangeError.range(_fractionDigits, 0, 20, "fractionDigits"));
        }
        result = this.toExponential(_fractionDigits);
      } else {
        result = this.toExponential();
      }
      if (this === 0 && this[$isNegative]) return "-" + dart.str(result);
      return result;
    }
    [$toStringAsPrecision](precision) {
      if (precision == null) dart.argumentError(precision);
      if (precision < 1 || precision > 21) {
        dart.throw(new core.RangeError.range(precision, 1, 21, "precision"));
      }
      let result = this.toPrecision(precision);
      if (this === 0 && this[$isNegative]) return "-" + result;
      return result;
    }
    [$toRadixString](radix) {
      if (radix == null) dart.argumentError(radix);
      if (radix < 2 || radix > 36) {
        dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
      }
      let result = this.toString(radix);
      if (result[$codeUnitAt](result.length - 1) !== 41) {
        return result;
      }
      return _interceptors.JSNumber._handleIEtoString(result);
    }
    static _handleIEtoString(result) {
      if (result == null) dart.nullFailed(I[19], 194, 42, "result");
      let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
      if (match == null) {
        dart.throw(new core.UnsupportedError.new("Unexpected toString result: " + dart.str(result)));
      }
      result = match[$_get](1);
      let exponent = +match[$_get](3);
      if (match[$_get](2) != null) {
        result = result + match[$_get](2);
        exponent = exponent - match[$_get](2).length;
      }
      return dart.notNull(result) + "0"[$times](exponent);
    }
    [$toString]() {
      if (this === 0 && 1 / this < 0) {
        return "-0.0";
      } else {
        return "" + this;
      }
    }
    get [$hashCode]() {
      let intValue = this | 0;
      if (this === intValue) return 536870911 & intValue;
      let absolute = Math.abs(this);
      let lnAbsolute = Math.log(absolute);
      let log2 = lnAbsolute / 0.6931471805599453;
      let floorLog2 = log2 | 0;
      let factor = Math.pow(2, floorLog2);
      let scaled = absolute < 1 ? absolute / factor : factor / absolute;
      let rescaled1 = scaled * 9007199254740992;
      let rescaled2 = scaled * 3542243181176521;
      let d1 = rescaled1 | 0;
      let d2 = rescaled2 | 0;
      let d3 = floorLog2;
      let h = 536870911 & (d1 + d2) * (601 * 997) + d3 * 1259;
      return h;
    }
    [$_negate]() {
      return -this;
    }
    [$plus](other) {
      if (other == null) dart.argumentError(other);
      return this + other;
    }
    [$minus](other) {
      if (other == null) dart.argumentError(other);
      return this - other;
    }
    [$divide](other) {
      if (other == null) dart.argumentError(other);
      return this / other;
    }
    [$times](other) {
      if (other == null) dart.argumentError(other);
      return this * other;
    }
    [$modulo](other) {
      if (other == null) dart.argumentError(other);
      let result = this % other;
      if (result === 0) return _interceptors.JSNumber.as(0);
      if (result > 0) return result;
      if (other < 0) {
        return result - other;
      } else {
        return result + other;
      }
    }
    [_isInt32](value) {
      return (value | 0) === value;
    }
    [$floorDivide](other) {
      if (other == null) dart.argumentError(other);
      if (this[_isInt32](this) && this[_isInt32](other) && 0 !== other && -1 !== other) {
        return this / other | 0;
      } else {
        return this[_tdivSlow](other);
      }
    }
    [_tdivSlow](other) {
      if (other == null) dart.nullFailed(I[19], 308, 21, "other");
      return (this / other)[$toInt]();
    }
    [$leftShift](other) {
      if (other == null) dart.argumentError(other);
      if (other < 0) _js_helper.throwArgumentErrorValue(other);
      return this[_shlPositive](other);
    }
    [_shlPositive](other) {
      return other > 31 ? 0 : this << other >>> 0;
    }
    [$rightShift](other) {
      if (other == null) dart.argumentError(other);
      if (other < 0) _js_helper.throwArgumentErrorValue(other);
      return this[_shrOtherPositive](other);
    }
    [$tripleShift](other) {
      if (other == null) dart.argumentError(other);
      if (other < 0) _js_helper.throwArgumentErrorValue(other);
      return this[_shrUnsigned](other);
    }
    [_shrOtherPositive](other) {
      return this > 0 ? this[_shrUnsigned](other) : this >> (other > 31 ? 31 : other) >>> 0;
    }
    [_shrUnsigned](other) {
      return other > 31 ? 0 : this >>> other;
    }
    [$bitAnd](other) {
      if (other == null) dart.argumentError(other);
      return (this & other) >>> 0;
    }
    [$bitOr](other) {
      if (other == null) dart.argumentError(other);
      return (this | other) >>> 0;
    }
    [$bitXor](other) {
      if (other == null) dart.argumentError(other);
      return (this ^ other) >>> 0;
    }
    [$lessThan](other) {
      if (other == null) dart.argumentError(other);
      return this < other;
    }
    [$greaterThan](other) {
      if (other == null) dart.argumentError(other);
      return this > other;
    }
    [$lessOrEquals](other) {
      if (other == null) dart.argumentError(other);
      return this <= other;
    }
    [$greaterOrEquals](other) {
      if (other == null) dart.argumentError(other);
      return this >= other;
    }
    get [$isEven]() {
      return (this & 1) === 0;
    }
    get [$isOdd]() {
      return (this & 1) === 1;
    }
    [$toUnsigned](width) {
      if (width == null) dart.argumentError(width);
      return (this & (1)[$leftShift](width) - 1) >>> 0;
    }
    [$toSigned](width) {
      if (width == null) dart.argumentError(width);
      let signMask = (1)[$leftShift](width - 1);
      return ((this & signMask - 1) >>> 0) - ((this & signMask) >>> 0);
    }
    get [$bitLength]() {
      let nonneg = this < 0 ? -this - 1 : this;
      let wordBits = 32;
      while (nonneg >= 4294967296) {
        nonneg = (nonneg / 4294967296)[$truncate]();
        wordBits = wordBits + 32;
      }
      return wordBits - _interceptors.JSNumber._clz32(nonneg);
    }
    static _clz32(uint32) {
      return 32 - _interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(uint32));
    }
    [$modPow](e, m) {
      if (e == null) dart.argumentError(e);
      if (m == null) dart.argumentError(m);
      if (e < 0) dart.throw(new core.RangeError.range(e, 0, null, "exponent"));
      if (m <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
      if (e === 0) return 1;
      if (this < -9007199254740991.0 || this > 9007199254740991.0) {
        dart.throw(new core.RangeError.range(this, -9007199254740991.0, 9007199254740991.0, "receiver"));
      }
      if (e > 9007199254740991.0) {
        dart.throw(new core.RangeError.range(e, 0, 9007199254740991.0, "exponent"));
      }
      if (m > 9007199254740991.0) {
        dart.throw(new core.RangeError.range(e, 1, 9007199254740991.0, "modulus"));
      }
      if (m > 94906265) {
        return core._BigIntImpl.from(this).modPow(core._BigIntImpl.from(e), core._BigIntImpl.from(m)).toInt();
      }
      let b = this;
      if (b < 0 || b > m) {
        b = b[$modulo](m);
      }
      let r = 1;
      while (e > 0) {
        if (e[$isOdd]) {
          r = (r * b)[$modulo](m);
        }
        e = (e / 2)[$truncate]();
        b = (b * b)[$modulo](m);
      }
      return r;
    }
    static _binaryGcd(x, y, inv) {
      let s = 1;
      if (!inv) {
        while (x[$isEven] && y[$isEven]) {
          x = (x / 2)[$truncate]();
          y = (y / 2)[$truncate]();
          s = s * 2;
        }
        if (y[$isOdd]) {
          let t = x;
          x = y;
          y = t;
        }
      }
      let ac = x[$isEven];
      let u = x;
      let v = y;
      let a = 1;
      let b = 0;
      let c = 0;
      let d = 1;
      do {
        while (u[$isEven]) {
          u = (u / 2)[$truncate]();
          if (ac) {
            if (!a[$isEven] || !b[$isEven]) {
              a = a + y;
              b = b - x;
            }
            a = (a / 2)[$truncate]();
          } else if (!b[$isEven]) {
            b = b - x;
          }
          b = (b / 2)[$truncate]();
        }
        while (v[$isEven]) {
          v = (v / 2)[$truncate]();
          if (ac) {
            if (!c[$isEven] || !d[$isEven]) {
              c = c + y;
              d = d - x;
            }
            c = (c / 2)[$truncate]();
          } else if (!d[$isEven]) {
            d = d - x;
          }
          d = (d / 2)[$truncate]();
        }
        if (u >= v) {
          u = u - v;
          if (ac) a = a - c;
          b = b - d;
        } else {
          v = v - u;
          if (ac) c = c - a;
          d = d - b;
        }
      } while (u !== 0);
      if (!inv) return s * v;
      if (v !== 1) dart.throw(core.Exception.new("Not coprime"));
      if (d < 0) {
        d = d + x;
        if (d < 0) d = d + x;
      } else if (d > x) {
        d = d - x;
        if (d > x) d = d - x;
      }
      return d;
    }
    [$modInverse](m) {
      if (m == null) dart.argumentError(m);
      if (m <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
      if (m === 1) return 0;
      let t = this;
      if (t < 0 || t >= m) t = t[$modulo](m);
      if (t === 1) return 1;
      if (t === 0 || t[$isEven] && m[$isEven]) {
        dart.throw(core.Exception.new("Not coprime"));
      }
      return _interceptors.JSNumber._binaryGcd(m, t, true);
    }
    [$gcd](other) {
      if (other == null) dart.argumentError(other);
      if (!core.int.is(this)) _js_helper.throwArgumentErrorValue(this);
      let x = this[$abs]();
      let y = other[$abs]();
      if (x === 0) return y;
      if (y === 0) return x;
      if (x === 1 || y === 1) return 1;
      return _interceptors.JSNumber._binaryGcd(x, y, false);
    }
    static _bitCount(i) {
      i = _interceptors.JSNumber._shru(i, 0) - (_interceptors.JSNumber._shru(i, 1) & 1431655765);
      i = (i & 858993459) + (_interceptors.JSNumber._shru(i, 2) & 858993459);
      i = 252645135 & i + _interceptors.JSNumber._shru(i, 4);
      i = i + _interceptors.JSNumber._shru(i, 8);
      i = i + _interceptors.JSNumber._shru(i, 16);
      return i & 63;
    }
    static _shru(value, shift) {
      if (value == null) dart.nullFailed(I[19], 613, 24, "value");
      if (shift == null) dart.nullFailed(I[19], 613, 35, "shift");
      return value >>> shift;
    }
    static _shrs(value, shift) {
      if (value == null) dart.nullFailed(I[19], 616, 24, "value");
      if (shift == null) dart.nullFailed(I[19], 616, 35, "shift");
      return value >> shift;
    }
    static _ors(a, b) {
      if (a == null) dart.nullFailed(I[19], 619, 23, "a");
      if (b == null) dart.nullFailed(I[19], 619, 30, "b");
      return a | b;
    }
    static _spread(i) {
      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 1));
      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 2));
      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 4));
      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 8));
      i = _interceptors.JSNumber._shru(_interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 16)), 0);
      return i;
    }
    [$bitNot]() {
      return ~this >>> 0;
    }
  };
  (_interceptors.JSNumber.new = function() {
    _interceptors.JSNumber.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSNumber.prototype;
  dart.addTypeTests(_interceptors.JSNumber);
  dart.addTypeCaches(_interceptors.JSNumber);
  _interceptors.JSNumber[dart.implements] = () => [core.int, core.double];
  dart.setMethodSignature(_interceptors.JSNumber, () => ({
    __proto__: dart.getMethods(_interceptors.JSNumber.__proto__),
    [$compareTo]: dart.fnType(core.int, [dart.nullable(core.Object)]),
    [$remainder]: dart.fnType(_interceptors.JSNumber, [core.num]),
    [$abs]: dart.fnType(_interceptors.JSNumber, []),
    [$toInt]: dart.fnType(core.int, []),
    [$truncate]: dart.fnType(core.int, []),
    [$ceil]: dart.fnType(core.int, []),
    [$floor]: dart.fnType(core.int, []),
    [$round]: dart.fnType(core.int, []),
    [$ceilToDouble]: dart.fnType(core.double, []),
    [$floorToDouble]: dart.fnType(core.double, []),
    [$roundToDouble]: dart.fnType(core.double, []),
    [$truncateToDouble]: dart.fnType(core.double, []),
    [$clamp]: dart.fnType(core.num, [core.num, core.num]),
    [$toDouble]: dart.fnType(core.double, []),
    [$toStringAsFixed]: dart.fnType(core.String, [core.int]),
    [$toStringAsExponential]: dart.fnType(core.String, [], [dart.nullable(core.int)]),
    [$toStringAsPrecision]: dart.fnType(core.String, [core.int]),
    [$toRadixString]: dart.fnType(core.String, [core.int]),
    [$_negate]: dart.fnType(_interceptors.JSNumber, []),
    [$plus]: dart.fnType(_interceptors.JSNumber, [core.num]),
    [$minus]: dart.fnType(_interceptors.JSNumber, [core.num]),
    [$divide]: dart.fnType(core.double, [core.num]),
    [$times]: dart.fnType(_interceptors.JSNumber, [core.num]),
    [$modulo]: dart.fnType(_interceptors.JSNumber, [core.num]),
    [_isInt32]: dart.fnType(core.bool, [core.num]),
    [$floorDivide]: dart.fnType(core.int, [core.num]),
    [_tdivSlow]: dart.fnType(core.int, [core.num]),
    [$leftShift]: dart.fnType(core.int, [core.num]),
    [_shlPositive]: dart.fnType(core.int, [core.num]),
    [$rightShift]: dart.fnType(core.int, [core.num]),
    [$tripleShift]: dart.fnType(core.int, [core.num]),
    [_shrOtherPositive]: dart.fnType(core.int, [core.num]),
    [_shrUnsigned]: dart.fnType(core.int, [core.num]),
    [$bitAnd]: dart.fnType(core.int, [core.num]),
    [$bitOr]: dart.fnType(core.int, [core.num]),
    [$bitXor]: dart.fnType(core.int, [core.num]),
    [$lessThan]: dart.fnType(core.bool, [core.num]),
    [$greaterThan]: dart.fnType(core.bool, [core.num]),
    [$lessOrEquals]: dart.fnType(core.bool, [core.num]),
    [$greaterOrEquals]: dart.fnType(core.bool, [core.num]),
    [$toUnsigned]: dart.fnType(core.int, [core.int]),
    [$toSigned]: dart.fnType(core.int, [core.int]),
    [$modPow]: dart.fnType(core.int, [core.int, core.int]),
    [$modInverse]: dart.fnType(core.int, [core.int]),
    [$gcd]: dart.fnType(core.int, [core.int]),
    [$bitNot]: dart.fnType(core.int, [])
  }));
  dart.setGetterSignature(_interceptors.JSNumber, () => ({
    __proto__: dart.getGetters(_interceptors.JSNumber.__proto__),
    [$isNegative]: core.bool,
    [$isNaN]: core.bool,
    [$isInfinite]: core.bool,
    [$isFinite]: core.bool,
    [$sign]: _interceptors.JSNumber,
    [$isEven]: core.bool,
    [$isOdd]: core.bool,
    [$bitLength]: core.int
  }));
  dart.setLibraryUri(_interceptors.JSNumber, I[16]);
  dart.defineLazy(_interceptors.JSNumber, {
    /*_interceptors.JSNumber._MIN_INT32*/get _MIN_INT32() {
      return -2147483648;
    },
    /*_interceptors.JSNumber._MAX_INT32*/get _MAX_INT32() {
      return 2147483647;
    }
  }, false);
  dart.definePrimitiveHashCode(_interceptors.JSNumber.prototype);
  dart.registerExtension("Number", _interceptors.JSNumber);
  var _defaultSplit = dart.privateName(_interceptors, "_defaultSplit");
  _interceptors.JSString = class JSString extends _interceptors.Interceptor {
    [$codeUnitAt](index) {
      if (index == null) dart.argumentError(index);
      let len = this.length;
      if (index < 0 || index >= len) {
        dart.throw(new core.IndexError.new(index, this, "index", null, len));
      }
      return this.charCodeAt(index);
    }
    [$allMatches](string, start = 0) {
      if (string == null) dart.argumentError(string);
      if (start == null) dart.argumentError(start);
      let len = string.length;
      if (0 > start || start > len) {
        dart.throw(new core.RangeError.range(start, 0, len));
      }
      return _js_helper.allMatchesInStringUnchecked(this, string, start);
    }
    [$matchAsPrefix](string, start = 0) {
      if (string == null) dart.argumentError(string);
      if (start == null) dart.argumentError(start);
      let stringLength = string.length;
      if (start < 0 || start > stringLength) {
        dart.throw(new core.RangeError.range(start, 0, stringLength));
      }
      let thisLength = this.length;
      if (start + thisLength > stringLength) return null;
      for (let i = 0; i < thisLength; i = i + 1) {
        if (string[$codeUnitAt](start + i) !== this[$codeUnitAt](i)) {
          return null;
        }
      }
      return new _js_helper.StringMatch.new(start, string, this);
    }
    [$plus](other) {
      if (other == null) dart.argumentError(other);
      return this + other;
    }
    [$endsWith](other) {
      if (other == null) dart.argumentError(other);
      let otherLength = other.length;
      let thisLength = this.length;
      if (otherLength > thisLength) return false;
      return other === this[$substring](thisLength - otherLength);
    }
    [$replaceAll](from, to) {
      if (from == null) dart.nullFailed(I[20], 67, 29, "from");
      if (to == null) dart.argumentError(to);
      return _js_helper.stringReplaceAllUnchecked(this, from, to);
    }
    [$replaceAllMapped](from, convert) {
      if (from == null) dart.nullFailed(I[20], 72, 35, "from");
      if (convert == null) dart.nullFailed(I[20], 72, 64, "convert");
      return this[$splitMapJoin](from, {onMatch: convert});
    }
    [$splitMapJoin](from, opts) {
      if (from == null) dart.nullFailed(I[20], 77, 31, "from");
      let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null;
      let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null;
      return _js_helper.stringReplaceAllFuncUnchecked(this, from, onMatch, onNonMatch);
    }
    [$replaceFirst](from, to, startIndex = 0) {
      if (from == null) dart.nullFailed(I[20], 83, 31, "from");
      if (to == null) dart.argumentError(to);
      if (startIndex == null) dart.argumentError(startIndex);
      core.RangeError.checkValueInInterval(startIndex, 0, this.length, "startIndex");
      return _js_helper.stringReplaceFirstUnchecked(this, from, to, startIndex);
    }
    [$replaceFirstMapped](from, replace, startIndex = 0) {
      if (from == null) dart.nullFailed(I[20], 91, 15, "from");
      if (replace == null) dart.argumentError(replace);
      if (startIndex == null) dart.argumentError(startIndex);
      core.RangeError.checkValueInInterval(startIndex, 0, this.length, "startIndex");
      return _js_helper.stringReplaceFirstMappedUnchecked(this, from, replace, startIndex);
    }
    [$split](pattern) {
      if (pattern == null) dart.argumentError(pattern);
      if (typeof pattern == 'string') {
        return T$.JSArrayOfString().of(this.split(pattern));
      } else if (_js_helper.JSSyntaxRegExp.is(pattern) && _js_helper.regExpCaptureCount(pattern) === 0) {
        let re = _js_helper.regExpGetNative(pattern);
        return T$.JSArrayOfString().of(this.split(re));
      } else {
        return this[_defaultSplit](pattern);
      }
    }
    [$replaceRange](start, end, replacement) {
      if (start == null) dart.argumentError(start);
      if (replacement == null) dart.argumentError(replacement);
      let e = core.RangeError.checkValidRange(start, end, this.length);
      return _js_helper.stringReplaceRangeUnchecked(this, start, e, replacement);
    }
    [_defaultSplit](pattern) {
      if (pattern == null) dart.nullFailed(I[20], 117, 38, "pattern");
      let result = T$.JSArrayOfString().of([]);
      let start = 0;
      let length = 1;
      for (let match of pattern[$allMatches](this)) {
        let matchStart = match.start;
        let matchEnd = match.end;
        length = matchEnd - matchStart;
        if (length === 0 && start === matchStart) {
          continue;
        }
        let end = matchStart;
        result[$add](this[$substring](start, end));
        start = matchEnd;
      }
      if (start < this.length || length > 0) {
        result[$add](this[$substring](start));
      }
      return result;
    }
    [$startsWith](pattern, index = 0) {
      if (pattern == null) dart.nullFailed(I[20], 148, 27, "pattern");
      if (index == null) dart.argumentError(index);
      let length = this.length;
      if (index < 0 || index > length) {
        dart.throw(new core.RangeError.range(index, 0, this.length));
      }
      if (typeof pattern == 'string') {
        let other = pattern;
        let otherLength = other.length;
        let endIndex = index + otherLength;
        if (endIndex > length) return false;
        return other === this.substring(index, endIndex);
      }
      return pattern[$matchAsPrefix](this, index) != null;
    }
    [$substring](startIndex, _endIndex = null) {
      let t21;
      if (startIndex == null) dart.argumentError(startIndex);
      let length = this.length;
      let endIndex = (t21 = _endIndex, t21 == null ? length : t21);
      if (startIndex < 0) dart.throw(new core.RangeError.value(startIndex));
      if (startIndex > dart.notNull(endIndex)) dart.throw(new core.RangeError.value(startIndex));
      if (dart.notNull(endIndex) > length) dart.throw(new core.RangeError.value(endIndex));
      return this.substring(startIndex, endIndex);
    }
    [$toLowerCase]() {
      return this.toLowerCase();
    }
    [$toUpperCase]() {
      return this.toUpperCase();
    }
    static _isWhitespace(codeUnit) {
      if (codeUnit < 256) {
        switch (codeUnit) {
          case 9:
          case 10:
          case 11:
          case 12:
          case 13:
          case 32:
          case 133:
          case 160:
          {
            return true;
          }
          default:
          {
            return false;
          }
        }
      }
      switch (codeUnit) {
        case 5760:
        case 8192:
        case 8193:
        case 8194:
        case 8195:
        case 8196:
        case 8197:
        case 8198:
        case 8199:
        case 8200:
        case 8201:
        case 8202:
        case 8232:
        case 8233:
        case 8239:
        case 8287:
        case 12288:
        case 65279:
        {
          return true;
        }
        default:
        {
          return false;
        }
      }
    }
    static _skipLeadingWhitespace(string, index) {
      if (string == null) dart.nullFailed(I[20], 247, 44, "string");
      if (index == null) dart.argumentError(index);
      let stringLength = string.length;
      while (index < stringLength) {
        let codeUnit = string[$codeUnitAt](index);
        if (codeUnit !== 32 && codeUnit !== 13 && !_interceptors.JSString._isWhitespace(codeUnit)) {
          break;
        }
        index = index + 1;
      }
      return index;
    }
    static _skipTrailingWhitespace(string, index) {
      if (string == null) dart.nullFailed(I[20], 266, 45, "string");
      if (index == null) dart.argumentError(index);
      while (index > 0) {
        let codeUnit = string[$codeUnitAt](index - 1);
        if (codeUnit !== 32 && codeUnit !== 13 && !_interceptors.JSString._isWhitespace(codeUnit)) {
          break;
        }
        index = index - 1;
      }
      return index;
    }
    [$trim]() {
      let result = this.trim();
      let length = result.length;
      if (length === 0) return result;
      let firstCode = result[$codeUnitAt](0);
      let startIndex = 0;
      if (firstCode === 133) {
        startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
        if (startIndex === length) return "";
      }
      let endIndex = length;
      let lastCode = result[$codeUnitAt](endIndex - 1);
      if (lastCode === 133) {
        endIndex = _interceptors.JSString._skipTrailingWhitespace(result, endIndex - 1);
      }
      if (startIndex === 0 && endIndex === length) return result;
      return result.substring(startIndex, endIndex);
    }
    [$trimLeft]() {
      let result = null;
      let startIndex = 0;
      if (typeof this.trimLeft != "undefined") {
        result = this.trimLeft();
        if (result.length === 0) return result;
        let firstCode = result[$codeUnitAt](0);
        if (firstCode === 133) {
          startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
        }
      } else {
        result = this;
        startIndex = _interceptors.JSString._skipLeadingWhitespace(this, 0);
      }
      if (startIndex === 0) return result;
      if (startIndex === result.length) return "";
      return result.substring(startIndex);
    }
    [$trimRight]() {
      let result = null;
      let endIndex = 0;
      if (typeof this.trimRight != "undefined") {
        result = this.trimRight();
        endIndex = result.length;
        if (endIndex === 0) return result;
        let lastCode = result[$codeUnitAt](endIndex - 1);
        if (lastCode === 133) {
          endIndex = _interceptors.JSString._skipTrailingWhitespace(result, endIndex - 1);
        }
      } else {
        result = this;
        endIndex = _interceptors.JSString._skipTrailingWhitespace(this, this.length);
      }
      if (endIndex === result.length) return result;
      if (endIndex === 0) return "";
      return result.substring(0, endIndex);
    }
    [$times](times) {
      if (times == null) dart.argumentError(times);
      if (0 >= times) return "";
      if (times === 1 || this.length === 0) return this;
      if (times !== times >>> 0) {
        dart.throw(C[17] || CT.C17);
      }
      let result = "";
      let s = this;
      while (true) {
        if ((times & 1) === 1) result = s + result;
        times = times >>> 1;
        if (times === 0) break;
        s = s + s;
      }
      return result;
    }
    [$padLeft](width, padding = " ") {
      if (width == null) dart.argumentError(width);
      if (padding == null) dart.nullFailed(I[20], 390, 48, "padding");
      let delta = width - this.length;
      if (delta <= 0) return this;
      return padding[$times](delta) + this;
    }
    [$padRight](width, padding = " ") {
      if (width == null) dart.argumentError(width);
      if (padding == null) dart.nullFailed(I[20], 397, 49, "padding");
      let delta = width - this.length;
      if (delta <= 0) return this;
      return this[$plus](padding[$times](delta));
    }
    get [$codeUnits]() {
      return new _internal.CodeUnits.new(this);
    }
    get [$runes]() {
      return new core.Runes.new(this);
    }
    [$indexOf](pattern, start = 0) {
      if (pattern == null) dart.argumentError(pattern);
      if (start == null) dart.argumentError(start);
      if (start < 0 || start > this.length) {
        dart.throw(new core.RangeError.range(start, 0, this.length));
      }
      if (typeof pattern == 'string') {
        return _js_helper.stringIndexOfStringUnchecked(this, pattern, start);
      }
      if (_js_helper.JSSyntaxRegExp.is(pattern)) {
        let re = pattern;
        let match = _js_helper.firstMatchAfter(re, this, start);
        return match == null ? -1 : match.start;
      }
      let length = this.length;
      for (let i = start; i <= length; i = i + 1) {
        if (pattern[$matchAsPrefix](this, i) != null) return i;
      }
      return -1;
    }
    [$lastIndexOf](pattern, _start = null) {
      let t21;
      if (pattern == null) dart.argumentError(pattern);
      let length = this.length;
      let start = (t21 = _start, t21 == null ? length : t21);
      if (dart.notNull(start) < 0 || dart.notNull(start) > length) {
        dart.throw(new core.RangeError.range(start, 0, length));
      }
      if (typeof pattern == 'string') {
        let other = pattern;
        if (dart.notNull(start) + other.length > length) {
          start = length - other.length;
        }
        return _js_helper.stringLastIndexOfUnchecked(this, other, start);
      }
      for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (pattern[$matchAsPrefix](this, i) != null) return i;
      }
      return -1;
    }
    [$contains](other, startIndex = 0) {
      if (other == null) dart.argumentError(other);
      if (startIndex == null) dart.argumentError(startIndex);
      if (startIndex < 0 || startIndex > this.length) {
        dart.throw(new core.RangeError.range(startIndex, 0, this.length));
      }
      return _js_helper.stringContainsUnchecked(this, other, startIndex);
    }
    get [$isEmpty]() {
      return this.length === 0;
    }
    get [$isNotEmpty]() {
      return !this[$isEmpty];
    }
    [$compareTo](other) {
      core.String.as(other);
      if (other == null) dart.argumentError(other);
      return this === other ? 0 : this < other ? -1 : 1;
    }
    [$toString]() {
      return this;
    }
    get [$hashCode]() {
      let hash = 0;
      let length = this.length;
      for (let i = 0; i < length; i = i + 1) {
        hash = 536870911 & hash + this.charCodeAt(i);
        hash = 536870911 & hash + ((524287 & hash) << 10);
        hash = hash ^ hash >> 6;
      }
      hash = 536870911 & hash + ((67108863 & hash) << 3);
      hash = hash ^ hash >> 11;
      return 536870911 & hash + ((16383 & hash) << 15);
    }
    get [$runtimeType]() {
      return dart.wrapType(core.String);
    }
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.argumentError(index);
      if (index >= this.length || index < 0) {
        dart.throw(_js_helper.diagnoseIndexError(this, index));
      }
      return this[index];
    }
  };
  (_interceptors.JSString.new = function() {
    _interceptors.JSString.__proto__.new.call(this);
    ;
  }).prototype = _interceptors.JSString.prototype;
  dart.addTypeTests(_interceptors.JSString);
  dart.addTypeCaches(_interceptors.JSString);
  _interceptors.JSString[dart.implements] = () => [core.String, _interceptors.JSIndexable$(core.String)];
  dart.setMethodSignature(_interceptors.JSString, () => ({
    __proto__: dart.getMethods(_interceptors.JSString.__proto__),
    [$codeUnitAt]: dart.fnType(core.int, [core.int]),
    [$allMatches]: dart.fnType(core.Iterable$(core.Match), [core.String], [core.int]),
    [$matchAsPrefix]: dart.fnType(dart.nullable(core.Match), [core.String], [core.int]),
    [$plus]: dart.fnType(core.String, [core.String]),
    [$endsWith]: dart.fnType(core.bool, [core.String]),
    [$replaceAll]: dart.fnType(core.String, [core.Pattern, core.String]),
    [$replaceAllMapped]: dart.fnType(core.String, [core.Pattern, dart.fnType(core.String, [core.Match])]),
    [$splitMapJoin]: dart.fnType(core.String, [core.Pattern], {onMatch: dart.nullable(dart.fnType(core.String, [core.Match])), onNonMatch: dart.nullable(dart.fnType(core.String, [core.String]))}, {}),
    [$replaceFirst]: dart.fnType(core.String, [core.Pattern, core.String], [core.int]),
    [$replaceFirstMapped]: dart.fnType(core.String, [core.Pattern, dart.fnType(core.String, [core.Match])], [core.int]),
    [$split]: dart.fnType(core.List$(core.String), [core.Pattern]),
    [$replaceRange]: dart.fnType(core.String, [core.int, dart.nullable(core.int), core.String]),
    [_defaultSplit]: dart.fnType(core.List$(core.String), [core.Pattern]),
    [$startsWith]: dart.fnType(core.bool, [core.Pattern], [core.int]),
    [$substring]: dart.fnType(core.String, [core.int], [dart.nullable(core.int)]),
    [$toLowerCase]: dart.fnType(core.String, []),
    [$toUpperCase]: dart.fnType(core.String, []),
    [$trim]: dart.fnType(core.String, []),
    [$trimLeft]: dart.fnType(core.String, []),
    [$trimRight]: dart.fnType(core.String, []),
    [$times]: dart.fnType(core.String, [core.int]),
    [$padLeft]: dart.fnType(core.String, [core.int], [core.String]),
    [$padRight]: dart.fnType(core.String, [core.int], [core.String]),
    [$indexOf]: dart.fnType(core.int, [core.Pattern], [core.int]),
    [$lastIndexOf]: dart.fnType(core.int, [core.Pattern], [dart.nullable(core.int)]),
    [$contains]: dart.fnType(core.bool, [core.Pattern], [core.int]),
    [$compareTo]: dart.fnType(core.int, [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(core.String, [core.int])
  }));
  dart.setGetterSignature(_interceptors.JSString, () => ({
    __proto__: dart.getGetters(_interceptors.JSString.__proto__),
    [$codeUnits]: core.List$(core.int),
    [$runes]: core.Runes,
    [$isEmpty]: core.bool,
    [$isNotEmpty]: core.bool,
    [$length]: core.int
  }));
  dart.setLibraryUri(_interceptors.JSString, I[16]);
  dart.definePrimitiveHashCode(_interceptors.JSString.prototype);
  dart.registerExtension("String", _interceptors.JSString);
  _interceptors.getInterceptor = function getInterceptor(obj) {
    return obj;
  };
  _interceptors.findInterceptorConstructorForType = function findInterceptorConstructorForType(type) {
  };
  _interceptors.findConstructorForNativeSubclassType = function findConstructorForNativeSubclassType(type, name) {
    if (name == null) dart.nullFailed(I[17], 239, 57, "name");
  };
  _interceptors.getNativeInterceptor = function getNativeInterceptor(object) {
  };
  _interceptors.setDispatchProperty = function setDispatchProperty(object, value) {
  };
  _interceptors.findInterceptorForType = function findInterceptorForType(type) {
  };
  dart.defineLazy(_interceptors, {
    /*_interceptors.jsNull*/get jsNull() {
      return new _interceptors.JSNull.new();
    }
  }, false);
  var _string$ = dart.privateName(_internal, "_string");
  var _closeGap = dart.privateName(collection, "_closeGap");
  var _filter = dart.privateName(collection, "_filter");
  const _is_ListMixin_default = Symbol('_is_ListMixin_default');
  collection.ListMixin$ = dart.generic(E => {
    var ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var FollowedByIterableOfE = () => (FollowedByIterableOfE = dart.constFn(_internal.FollowedByIterable$(E)))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var ETodynamic = () => (ETodynamic = dart.constFn(dart.fnType(dart.dynamic, [E])))();
    var WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
    var SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
    var TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
    var JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
    var ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    var ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
    class ListMixin extends core.Object {
      get iterator() {
        return new (ListIteratorOfE()).new(this);
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[23], 78, 19, "index");
        return this[$_get](index);
      }
      followedBy(other) {
        IterableOfE().as(other);
        if (other == null) dart.nullFailed(I[23], 80, 38, "other");
        return FollowedByIterableOfE().firstEfficient(this, other);
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[23], 83, 21, "action");
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          action(this[$_get](i));
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
      }
      get isEmpty() {
        return this[$length] === 0;
      }
      get isNotEmpty() {
        return !dart.test(this[$isEmpty]);
      }
      get first() {
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        return this[$_get](0);
      }
      set first(value) {
        E.as(value);
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        this[$_set](0, value);
      }
      get last() {
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        return this[$_get](dart.notNull(this[$length]) - 1);
      }
      set last(value) {
        E.as(value);
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        this[$_set](dart.notNull(this[$length]) - 1, value);
      }
      get single() {
        if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
        if (dart.notNull(this[$length]) > 1) dart.throw(_internal.IterableElementError.tooMany());
        return this[$_get](0);
      }
      contains(element) {
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (dart.equals(this[$_get](i), element)) return true;
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return false;
      }
      every(test) {
        if (test == null) dart.nullFailed(I[23], 135, 19, "test");
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (!dart.test(test(this[$_get](i)))) return false;
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return true;
      }
      any(test) {
        if (test == null) dart.nullFailed(I[23], 146, 17, "test");
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (dart.test(test(this[$_get](i)))) return true;
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return false;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[23], 157, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          let element = this[$_get](i);
          if (dart.test(test(element))) return element;
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[23], 170, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this[$length];
        for (let i = dart.notNull(length) - 1; i >= 0; i = i - 1) {
          let element = this[$_get](i);
          if (dart.test(test(element))) return element;
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[23], 183, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this[$length];
        let match = null;
        let match$35isSet = false;
        function match$35get() {
          return match$35isSet ? match : dart.throw(new _internal.LateError.localNI("match"));
        }
        dart.fn(match$35get, VoidToE());
        function match$35set(t24) {
          match$35isSet = true;
          return match = t24;
        }
        dart.fn(match$35set, ETodynamic());
        let matchFound = false;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          let element = this[$_get](i);
          if (dart.test(test(element))) {
            if (matchFound) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            matchFound = true;
            match$35set(element);
          }
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (matchFound) return match$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      join(separator = "") {
        let t26;
        if (separator == null) dart.nullFailed(I[23], 205, 23, "separator");
        if (this[$length] === 0) return "";
        let buffer = (t26 = new core.StringBuffer.new(), (() => {
          t26.writeAll(this, separator);
          return t26;
        })());
        return dart.toString(buffer);
      }
      where(test) {
        if (test == null) dart.nullFailed(I[23], 211, 26, "test");
        return new (WhereIterableOfE()).new(this, test);
      }
      whereType(T) {
        return new (_internal.WhereTypeIterable$(T)).new(this);
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[23], 215, 24, "f");
        return new (_internal.MappedListIterable$(E, T)).new(this, f);
      }
      expand(T, f) {
        if (f == null) dart.nullFailed(I[23], 217, 37, "f");
        return new (_internal.ExpandIterable$(E, T)).new(this, f);
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[23], 220, 14, "combine");
        let length = this[$length];
        if (length === 0) dart.throw(_internal.IterableElementError.noElement());
        let value = this[$_get](0);
        for (let i = 1; i < dart.notNull(length); i = i + 1) {
          value = combine(value, this[$_get](i));
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return value;
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[23], 233, 31, "combine");
        let value = initialValue;
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          value = combine(value, this[$_get](i));
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return value;
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[23], 245, 24, "count");
        return new (SubListIterableOfE()).new(this, count, null);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[23], 247, 30, "test");
        return new (SkipWhileIterableOfE()).new(this, test);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[23], 251, 24, "count");
        return new (SubListIterableOfE()).new(this, 0, _internal.checkNotNullable(core.int, count, "count"));
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[23], 254, 30, "test");
        return new (TakeWhileIterableOfE()).new(this, test);
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[23], 258, 24, "growable");
        if (dart.test(this[$isEmpty])) return ListOfE().empty({growable: growable});
        let first = this[$_get](0);
        let result = ListOfE().filled(this[$length], first, {growable: growable});
        for (let i = 1; i < dart.notNull(this[$length]); i = i + 1) {
          result[$_set](i, this[$_get](i));
        }
        return result;
      }
      toSet() {
        let result = new (_HashSetOfE()).new();
        for (let i = 0; i < dart.notNull(this[$length]); i = i + 1) {
          result.add(this[$_get](i));
        }
        return result;
      }
      add(element) {
        let t26;
        E.as(element);
        this[$_set]((t26 = this[$length], this[$length] = dart.notNull(t26) + 1, t26), element);
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[23], 282, 27, "iterable");
        let i = this[$length];
        for (let element of iterable) {
          if (!(this[$length] == i || dart.throw(new core.ConcurrentModificationError.new(this)))) dart.assertFailed(null, I[23], 285, 14, "this.length == i || (throw ConcurrentModificationError(this))");
          this[$add](element);
          i = dart.notNull(i) + 1;
        }
      }
      remove(element) {
        for (let i = 0; i < dart.notNull(this[$length]); i = i + 1) {
          if (dart.equals(this[$_get](i), element)) {
            this[_closeGap](i, i + 1);
            return true;
          }
        }
        return false;
      }
      [_closeGap](start, end) {
        if (start == null) dart.nullFailed(I[23], 303, 22, "start");
        if (end == null) dart.nullFailed(I[23], 303, 33, "end");
        let length = this[$length];
        if (!(0 <= dart.notNull(start))) dart.assertFailed(null, I[23], 305, 12, "0 <= start");
        if (!(dart.notNull(start) < dart.notNull(end))) dart.assertFailed(null, I[23], 306, 12, "start < end");
        if (!(dart.notNull(end) <= dart.notNull(length))) dart.assertFailed(null, I[23], 307, 12, "end <= length");
        let size = dart.notNull(end) - dart.notNull(start);
        for (let i = end; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
          this[$_set](dart.notNull(i) - size, this[$_get](i));
        }
        this[$length] = dart.notNull(length) - size;
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[23], 315, 25, "test");
        this[_filter](test, false);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[23], 319, 25, "test");
        this[_filter](test, true);
      }
      [_filter](test, retainMatching) {
        if (test == null) dart.nullFailed(I[23], 323, 21, "test");
        if (retainMatching == null) dart.nullFailed(I[23], 323, 43, "retainMatching");
        let retained = JSArrayOfE().of([]);
        let length = this[$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          let element = this[$_get](i);
          if (test(element) == retainMatching) {
            retained[$add](element);
          }
          if (length != this[$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (retained[$length] != this[$length]) {
          this[$setRange](0, retained[$length], retained);
          this[$length] = retained[$length];
        }
      }
      clear() {
        this[$length] = 0;
      }
      cast(R) {
        return core.List.castFrom(E, R, this);
      }
      removeLast() {
        if (this[$length] === 0) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let result = this[$_get](dart.notNull(this[$length]) - 1);
        this[$length] = dart.notNull(this[$length]) - 1;
        return result;
      }
      sort(compare = null) {
        let t26;
        _internal.Sort.sort(E, this, (t26 = compare, t26 == null ? C[18] || CT.C18 : t26));
      }
      static _compareAny(a, b) {
        return core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b));
      }
      shuffle(random = null) {
        random == null ? random = math.Random.new() : null;
        if (random == null) dart.throw("!");
        let length = this[$length];
        while (dart.notNull(length) > 1) {
          let pos = random.nextInt(length);
          length = dart.notNull(length) - 1;
          let tmp = this[$_get](length);
          this[$_set](length, this[$_get](pos));
          this[$_set](pos, tmp);
        }
      }
      asMap() {
        return new (ListMapViewOfE()).new(this);
      }
      ['+'](other) {
        ListOfE().as(other);
        if (other == null) dart.nullFailed(I[23], 381, 30, "other");
        return (() => {
          let t26 = ListOfE().of(this);
          t26[$addAll](other);
          return t26;
        })();
      }
      sublist(start, end = null) {
        if (start == null) dart.nullFailed(I[23], 383, 23, "start");
        let listLength = this[$length];
        end == null ? end = listLength : null;
        if (end == null) dart.throw("!");
        core.RangeError.checkValidRange(start, end, listLength);
        return ListOfE().from(this[$getRange](start, end));
      }
      getRange(start, end) {
        if (start == null) dart.nullFailed(I[23], 392, 28, "start");
        if (end == null) dart.nullFailed(I[23], 392, 39, "end");
        core.RangeError.checkValidRange(start, end, this[$length]);
        return new (SubListIterableOfE()).new(this, start, end);
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[23], 397, 24, "start");
        if (end == null) dart.nullFailed(I[23], 397, 35, "end");
        core.RangeError.checkValidRange(start, end, this[$length]);
        if (dart.notNull(end) > dart.notNull(start)) {
          this[_closeGap](start, end);
        }
      }
      fillRange(start, end, fill = null) {
        if (start == null) dart.nullFailed(I[23], 404, 22, "start");
        if (end == null) dart.nullFailed(I[23], 404, 33, "end");
        EN().as(fill);
        let value = E.as(fill);
        core.RangeError.checkValidRange(start, end, this[$length]);
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          this[$_set](i, value);
        }
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[23], 414, 21, "start");
        if (end == null) dart.nullFailed(I[23], 414, 32, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[23], 414, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[23], 414, 64, "skipCount");
        core.RangeError.checkValidRange(start, end, this[$length]);
        let length = dart.notNull(end) - dart.notNull(start);
        if (length === 0) return;
        core.RangeError.checkNotNegative(skipCount, "skipCount");
        let otherList = null;
        let otherStart = null;
        if (ListOfE().is(iterable)) {
          otherList = iterable;
          otherStart = skipCount;
        } else {
          otherList = iterable[$skip](skipCount)[$toList]({growable: false});
          otherStart = 0;
        }
        if (dart.notNull(otherStart) + length > dart.notNull(otherList[$length])) {
          dart.throw(_internal.IterableElementError.tooFew());
        }
        if (dart.notNull(otherStart) < dart.notNull(start)) {
          for (let i = length - 1; i >= 0; i = i - 1) {
            this[$_set](dart.notNull(start) + i, otherList[$_get](dart.notNull(otherStart) + i));
          }
        } else {
          for (let i = 0; i < length; i = i + 1) {
            this[$_set](dart.notNull(start) + i, otherList[$_get](dart.notNull(otherStart) + i));
          }
        }
      }
      replaceRange(start, end, newContents) {
        if (start == null) dart.nullFailed(I[23], 445, 25, "start");
        if (end == null) dart.nullFailed(I[23], 445, 36, "end");
        IterableOfE().as(newContents);
        if (newContents == null) dart.nullFailed(I[23], 445, 53, "newContents");
        core.RangeError.checkValidRange(start, end, this[$length]);
        if (start == this[$length]) {
          this[$addAll](newContents);
          return;
        }
        if (!_internal.EfficientLengthIterable.is(newContents)) {
          newContents = newContents[$toList]();
        }
        let removeLength = dart.notNull(end) - dart.notNull(start);
        let insertLength = newContents[$length];
        if (removeLength >= dart.notNull(insertLength)) {
          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
          this[$setRange](start, insertEnd, newContents);
          if (removeLength > dart.notNull(insertLength)) {
            this[_closeGap](insertEnd, end);
          }
        } else if (end == this[$length]) {
          let i = start;
          for (let element of newContents) {
            if (dart.notNull(i) < dart.notNull(end)) {
              this[$_set](i, element);
            } else {
              this[$add](element);
            }
            i = dart.notNull(i) + 1;
          }
        } else {
          let delta = dart.notNull(insertLength) - removeLength;
          let oldLength = this[$length];
          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
          for (let i = dart.notNull(oldLength) - delta; i < dart.notNull(oldLength); i = i + 1) {
            this[$add](this[$_get](i > 0 ? i : 0));
          }
          if (insertEnd < dart.notNull(oldLength)) {
            this[$setRange](insertEnd, oldLength, this, end);
          }
          this[$setRange](start, insertEnd, newContents);
        }
      }
      indexOf(element, start = 0) {
        if (start == null) dart.nullFailed(I[23], 486, 37, "start");
        if (dart.notNull(start) < 0) start = 0;
        for (let i = start; dart.notNull(i) < dart.notNull(this[$length]); i = dart.notNull(i) + 1) {
          if (dart.equals(this[$_get](i), element)) return i;
        }
        return -1;
      }
      indexWhere(test, start = 0) {
        if (test == null) dart.nullFailed(I[23], 494, 23, "test");
        if (start == null) dart.nullFailed(I[23], 494, 45, "start");
        if (dart.notNull(start) < 0) start = 0;
        for (let i = start; dart.notNull(i) < dart.notNull(this[$length]); i = dart.notNull(i) + 1) {
          if (dart.test(test(this[$_get](i)))) return i;
        }
        return -1;
      }
      lastIndexOf(element, start = null) {
        if (start == null || dart.notNull(start) >= dart.notNull(this[$length])) start = dart.notNull(this[$length]) - 1;
        if (start == null) dart.throw("!");
        for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
          if (dart.equals(this[$_get](i), element)) return i;
        }
        return -1;
      }
      lastIndexWhere(test, start = null) {
        if (test == null) dart.nullFailed(I[23], 514, 27, "test");
        if (start == null || dart.notNull(start) >= dart.notNull(this[$length])) start = dart.notNull(this[$length]) - 1;
        if (start == null) dart.throw("!");
        for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
          if (dart.test(test(this[$_get](i)))) return i;
        }
        return -1;
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[23], 526, 19, "index");
        E.as(element);
        _internal.checkNotNullable(core.int, index, "index");
        let length = this[$length];
        core.RangeError.checkValueInInterval(index, 0, length, "index");
        this[$add](element);
        if (index != length) {
          this[$setRange](dart.notNull(index) + 1, dart.notNull(length) + 1, this, index);
          this[$_set](index, element);
        }
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[23], 537, 18, "index");
        let result = this[$_get](index);
        this[_closeGap](index, dart.notNull(index) + 1);
        return result;
      }
      insertAll(index, iterable) {
        if (index == null) dart.nullFailed(I[23], 543, 22, "index");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[23], 543, 41, "iterable");
        core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
        if (index == this[$length]) {
          this[$addAll](iterable);
          return;
        }
        if (!_internal.EfficientLengthIterable.is(iterable) || iterable === this) {
          iterable = iterable[$toList]();
        }
        let insertionLength = iterable[$length];
        if (insertionLength === 0) {
          return;
        }
        let oldLength = this[$length];
        for (let i = dart.notNull(oldLength) - dart.notNull(insertionLength); i < dart.notNull(oldLength); i = i + 1) {
          this[$add](this[$_get](i > 0 ? i : 0));
        }
        if (iterable[$length] != insertionLength) {
          this[$length] = dart.notNull(this[$length]) - dart.notNull(insertionLength);
          dart.throw(new core.ConcurrentModificationError.new(iterable));
        }
        let oldCopyStart = dart.notNull(index) + dart.notNull(insertionLength);
        if (oldCopyStart < dart.notNull(oldLength)) {
          this[$setRange](oldCopyStart, oldLength, this, index);
        }
        this[$setAll](index, iterable);
      }
      setAll(index, iterable) {
        let t27;
        if (index == null) dart.nullFailed(I[23], 576, 19, "index");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[23], 576, 38, "iterable");
        if (core.List.is(iterable)) {
          this[$setRange](index, dart.notNull(index) + dart.notNull(iterable[$length]), iterable);
        } else {
          for (let element of iterable) {
            this[$_set]((t27 = index, index = dart.notNull(t27) + 1, t27), element);
          }
        }
      }
      get reversed() {
        return new (ReversedListIterableOfE()).new(this);
      }
      toString() {
        return collection.IterableBase.iterableToFullString(this, "[", "]");
      }
    }
    (ListMixin.new = function() {
      ;
    }).prototype = ListMixin.prototype;
    ListMixin.prototype[dart.isList] = true;
    dart.addTypeTests(ListMixin);
    ListMixin.prototype[_is_ListMixin_default] = true;
    dart.addTypeCaches(ListMixin);
    ListMixin[dart.implements] = () => [core.List$(E)];
    dart.setMethodSignature(ListMixin, () => ({
      __proto__: dart.getMethods(ListMixin.__proto__),
      elementAt: dart.fnType(E, [core.int]),
      [$elementAt]: dart.fnType(E, [core.int]),
      followedBy: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      [$followedBy]: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      join: dart.fnType(core.String, [], [core.String]),
      [$join]: dart.fnType(core.String, [], [core.String]),
      where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      whereType: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      [$whereType]: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      reduce: dart.fnType(E, [dart.nullable(core.Object)]),
      [$reduce]: dart.fnType(E, [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      skip: dart.fnType(core.Iterable$(E), [core.int]),
      [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
      skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      take: dart.fnType(core.Iterable$(E), [core.int]),
      [$take]: dart.fnType(core.Iterable$(E), [core.int]),
      takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      toSet: dart.fnType(core.Set$(E), []),
      [$toSet]: dart.fnType(core.Set$(E), []),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [_closeGap]: dart.fnType(dart.void, [core.int, core.int]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [_filter]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      cast: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      removeLast: dart.fnType(E, []),
      [$removeLast]: dart.fnType(E, []),
      sort: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      [$sort]: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      shuffle: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      [$shuffle]: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      asMap: dart.fnType(core.Map$(core.int, E), []),
      [$asMap]: dart.fnType(core.Map$(core.int, E), []),
      '+': dart.fnType(core.List$(E), [dart.nullable(core.Object)]),
      [$plus]: dart.fnType(core.List$(E), [dart.nullable(core.Object)]),
      sublist: dart.fnType(core.List$(E), [core.int], [dart.nullable(core.int)]),
      [$sublist]: dart.fnType(core.List$(E), [core.int], [dart.nullable(core.int)]),
      getRange: dart.fnType(core.Iterable$(E), [core.int, core.int]),
      [$getRange]: dart.fnType(core.Iterable$(E), [core.int, core.int]),
      removeRange: dart.fnType(dart.void, [core.int, core.int]),
      [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
      fillRange: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)]),
      [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)]),
      setRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      [$setRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      replaceRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      indexOf: dart.fnType(core.int, [dart.nullable(core.Object)], [core.int]),
      [$indexOf]: dart.fnType(core.int, [dart.nullable(core.Object)], [core.int]),
      indexWhere: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
      [$indexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
      lastIndexOf: dart.fnType(core.int, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
      [$lastIndexOf]: dart.fnType(core.int, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
      lastIndexWhere: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [dart.nullable(core.int)]),
      [$lastIndexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [dart.nullable(core.int)]),
      insert: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insert]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      removeAt: dart.fnType(E, [core.int]),
      [$removeAt]: dart.fnType(E, [core.int]),
      insertAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insertAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      setAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$setAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(ListMixin, () => ({
      __proto__: dart.getGetters(ListMixin.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E),
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      first: E,
      [$first]: E,
      last: E,
      [$last]: E,
      single: E,
      [$single]: E,
      reversed: core.Iterable$(E),
      [$reversed]: core.Iterable$(E)
    }));
    dart.setSetterSignature(ListMixin, () => ({
      __proto__: dart.getSetters(ListMixin.__proto__),
      first: dart.nullable(core.Object),
      [$first]: dart.nullable(core.Object),
      last: dart.nullable(core.Object),
      [$last]: dart.nullable(core.Object)
    }));
    dart.setLibraryUri(ListMixin, I[24]);
    dart.defineExtensionMethods(ListMixin, [
      'elementAt',
      'followedBy',
      'forEach',
      'contains',
      'every',
      'any',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'join',
      'where',
      'whereType',
      'map',
      'expand',
      'reduce',
      'fold',
      'skip',
      'skipWhile',
      'take',
      'takeWhile',
      'toList',
      'toSet',
      'add',
      'addAll',
      'remove',
      'removeWhere',
      'retainWhere',
      'clear',
      'cast',
      'removeLast',
      'sort',
      'shuffle',
      'asMap',
      '+',
      'sublist',
      'getRange',
      'removeRange',
      'fillRange',
      'setRange',
      'replaceRange',
      'indexOf',
      'indexWhere',
      'lastIndexOf',
      'lastIndexWhere',
      'insert',
      'removeAt',
      'insertAll',
      'setAll',
      'toString'
    ]);
    dart.defineExtensionAccessors(ListMixin, [
      'iterator',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last',
      'single',
      'reversed'
    ]);
    return ListMixin;
  });
  collection.ListMixin = collection.ListMixin$();
  dart.addTypeTests(collection.ListMixin, _is_ListMixin_default);
  const _is_ListBase_default = Symbol('_is_ListBase_default');
  collection.ListBase$ = dart.generic(E => {
    const Object_ListMixin$36 = class Object_ListMixin extends core.Object {};
    (Object_ListMixin$36.new = function() {
    }).prototype = Object_ListMixin$36.prototype;
    dart.applyMixin(Object_ListMixin$36, collection.ListMixin$(E));
    class ListBase extends Object_ListMixin$36 {
      static listToString(list) {
        if (list == null) dart.nullFailed(I[23], 42, 35, "list");
        return collection.IterableBase.iterableToFullString(list, "[", "]");
      }
    }
    (ListBase.new = function() {
      ;
    }).prototype = ListBase.prototype;
    dart.addTypeTests(ListBase);
    ListBase.prototype[_is_ListBase_default] = true;
    dart.addTypeCaches(ListBase);
    dart.setLibraryUri(ListBase, I[24]);
    return ListBase;
  });
  collection.ListBase = collection.ListBase$();
  dart.addTypeTests(collection.ListBase, _is_ListBase_default);
  const _is_UnmodifiableListMixin_default = Symbol('_is_UnmodifiableListMixin_default');
  _internal.UnmodifiableListMixin$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    class UnmodifiableListMixin extends core.Object {
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[22], 89, 25, "index");
        E.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
        return value$;
      }
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[22], 94, 18, "newLength");
        dart.throw(new core.UnsupportedError.new("Cannot change the length of an unmodifiable list"));
      }
      set first(element) {
        E.as(element);
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      set last(element) {
        E.as(element);
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      setAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 108, 19, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 108, 35, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      add(value) {
        E.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[22], 118, 19, "index");
        E.as(element);
        dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
      }
      insertAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 123, 22, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 123, 38, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 128, 27, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
      }
      remove(element) {
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[22], 138, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[22], 143, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      sort(compare = null) {
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      shuffle(random = null) {
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      clear() {
        dart.throw(new core.UnsupportedError.new("Cannot clear an unmodifiable list"));
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[22], 163, 18, "index");
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      removeLast() {
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[22], 173, 21, "start");
        if (end == null) dart.nullFailed(I[22], 173, 32, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 173, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[22], 173, 64, "skipCount");
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[22], 178, 24, "start");
        if (end == null) dart.nullFailed(I[22], 178, 35, "end");
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[22], 183, 25, "start");
        if (end == null) dart.nullFailed(I[22], 183, 36, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 183, 53, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
      }
      fillRange(start, end, fillValue = null) {
        if (start == null) dart.nullFailed(I[22], 188, 22, "start");
        if (end == null) dart.nullFailed(I[22], 188, 33, "end");
        EN().as(fillValue);
        dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (UnmodifiableListMixin.new = function() {
      ;
    }).prototype = UnmodifiableListMixin.prototype;
    UnmodifiableListMixin.prototype[dart.isList] = true;
    dart.addTypeTests(UnmodifiableListMixin);
    UnmodifiableListMixin.prototype[_is_UnmodifiableListMixin_default] = true;
    dart.addTypeCaches(UnmodifiableListMixin);
    UnmodifiableListMixin[dart.implements] = () => [core.List$(E)];
    dart.setMethodSignature(UnmodifiableListMixin, () => ({
      __proto__: dart.getMethods(UnmodifiableListMixin.__proto__),
      _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      setAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$setAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      insert: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insert]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      insertAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insertAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      sort: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      [$sort]: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      shuffle: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      [$shuffle]: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      removeAt: dart.fnType(E, [core.int]),
      [$removeAt]: dart.fnType(E, [core.int]),
      removeLast: dart.fnType(E, []),
      [$removeLast]: dart.fnType(E, []),
      setRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      [$setRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      removeRange: dart.fnType(dart.void, [core.int, core.int]),
      [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
      replaceRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      fillRange: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)]),
      [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)])
    }));
    dart.setSetterSignature(UnmodifiableListMixin, () => ({
      __proto__: dart.getSetters(UnmodifiableListMixin.__proto__),
      length: core.int,
      [$length]: core.int,
      first: dart.nullable(core.Object),
      [$first]: dart.nullable(core.Object),
      last: dart.nullable(core.Object),
      [$last]: dart.nullable(core.Object)
    }));
    dart.setLibraryUri(UnmodifiableListMixin, I[25]);
    dart.defineExtensionMethods(UnmodifiableListMixin, [
      '_set',
      'setAll',
      'add',
      'insert',
      'insertAll',
      'addAll',
      'remove',
      'removeWhere',
      'retainWhere',
      'sort',
      'shuffle',
      'clear',
      'removeAt',
      'removeLast',
      'setRange',
      'removeRange',
      'replaceRange',
      'fillRange'
    ]);
    dart.defineExtensionAccessors(UnmodifiableListMixin, ['length', 'first', 'last']);
    return UnmodifiableListMixin;
  });
  _internal.UnmodifiableListMixin = _internal.UnmodifiableListMixin$();
  dart.addTypeTests(_internal.UnmodifiableListMixin, _is_UnmodifiableListMixin_default);
  const _is_UnmodifiableListBase_default = Symbol('_is_UnmodifiableListBase_default');
  _internal.UnmodifiableListBase$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    const ListBase_UnmodifiableListMixin$36 = class ListBase_UnmodifiableListMixin extends collection.ListBase$(E) {};
    (ListBase_UnmodifiableListMixin$36.new = function() {
    }).prototype = ListBase_UnmodifiableListMixin$36.prototype;
    dart.applyMixin(ListBase_UnmodifiableListMixin$36, _internal.UnmodifiableListMixin$(E));
    class UnmodifiableListBase extends ListBase_UnmodifiableListMixin$36 {
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[22], 208, 16, "newLength");
        return super.length = newLength;
      }
      set first(element) {
        E.as(element);
        return super.first = element;
      }
      get first() {
        return super.first;
      }
      set last(element) {
        E.as(element);
        return super.last = element;
      }
      get last() {
        return super.last;
      }
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[22], 208, 16, "index");
        E.as(value);
        super._set(index, value);
        return value$;
      }
      setAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 208, 16, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 208, 16, "iterable");
        return super.setAll(at, iterable);
      }
      add(value) {
        E.as(value);
        return super.add(value);
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[22], 208, 16, "index");
        E.as(element);
        return super.insert(index, element);
      }
      insertAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 208, 16, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 208, 16, "iterable");
        return super.insertAll(at, iterable);
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 208, 16, "iterable");
        return super.addAll(iterable);
      }
      remove(element) {
        return super.remove(element);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[22], 208, 16, "test");
        return super.removeWhere(test);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[22], 208, 16, "test");
        return super.retainWhere(test);
      }
      sort(compare = null) {
        return super.sort(compare);
      }
      shuffle(random = null) {
        return super.shuffle(random);
      }
      clear() {
        return super.clear();
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[22], 208, 16, "index");
        return super.removeAt(index);
      }
      removeLast() {
        return super.removeLast();
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[22], 208, 16, "start");
        if (end == null) dart.nullFailed(I[22], 208, 16, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 208, 16, "iterable");
        if (skipCount == null) dart.nullFailed(I[22], 208, 16, "skipCount");
        return super.setRange(start, end, iterable, skipCount);
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[22], 208, 16, "start");
        if (end == null) dart.nullFailed(I[22], 208, 16, "end");
        return super.removeRange(start, end);
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[22], 208, 16, "start");
        if (end == null) dart.nullFailed(I[22], 208, 16, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 208, 16, "iterable");
        return super.replaceRange(start, end, iterable);
      }
      fillRange(start, end, fillValue = null) {
        if (start == null) dart.nullFailed(I[22], 208, 16, "start");
        if (end == null) dart.nullFailed(I[22], 208, 16, "end");
        EN().as(fillValue);
        return super.fillRange(start, end, fillValue);
      }
    }
    (UnmodifiableListBase.new = function() {
      ;
    }).prototype = UnmodifiableListBase.prototype;
    dart.addTypeTests(UnmodifiableListBase);
    UnmodifiableListBase.prototype[_is_UnmodifiableListBase_default] = true;
    dart.addTypeCaches(UnmodifiableListBase);
    dart.setMethodSignature(UnmodifiableListBase, () => ({
      __proto__: dart.getMethods(UnmodifiableListBase.__proto__),
      _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
    }));
    dart.setSetterSignature(UnmodifiableListBase, () => ({
      __proto__: dart.getSetters(UnmodifiableListBase.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(UnmodifiableListBase, I[25]);
    dart.defineExtensionMethods(UnmodifiableListBase, [
      '_set',
      'setAll',
      'add',
      'insert',
      'insertAll',
      'addAll',
      'remove',
      'removeWhere',
      'retainWhere',
      'sort',
      'shuffle',
      'clear',
      'removeAt',
      'removeLast',
      'setRange',
      'removeRange',
      'replaceRange',
      'fillRange'
    ]);
    dart.defineExtensionAccessors(UnmodifiableListBase, ['length', 'first', 'last']);
    return UnmodifiableListBase;
  });
  _internal.UnmodifiableListBase = _internal.UnmodifiableListBase$();
  dart.addTypeTests(_internal.UnmodifiableListBase, _is_UnmodifiableListBase_default);
  core.num = class num extends core.Object {
    static is(o) {
      return typeof o == "number";
    }
    static as(o) {
      if (typeof o == "number") return o;
      return dart.as(o, core.num);
    }
    static parse(input, onError = null) {
      if (input == null) dart.nullFailed(I[26], 483, 27, "input");
      let result = core.num.tryParse(input);
      if (result != null) return result;
      if (onError == null) dart.throw(new core.FormatException.new(input));
      return onError(input);
    }
    static tryParse(input) {
      let t27;
      if (input == null) dart.nullFailed(I[26], 494, 31, "input");
      let source = input[$trim]();
      t27 = core.int.tryParse(source);
      return t27 == null ? core.double.tryParse(source) : t27;
    }
  };
  (core.num.new = function() {
    ;
  }).prototype = core.num.prototype;
  dart.addTypeCaches(core.num);
  core.num[dart.implements] = () => [core.Comparable$(core.num)];
  dart.setLibraryUri(core.num, I[8]);
  core.int = class int extends core.num {
    static is(o) {
      return typeof o == "number" && Math.floor(o) == o;
    }
    static as(o) {
      if (typeof o == "number" && Math.floor(o) == o) {
        return o;
      }
      return dart.as(o, core.int);
    }
    static fromEnvironment(name, opts) {
      if (name == null) dart.nullFailed(I[7], 187, 38, "name");
      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : 0;
      if (defaultValue == null) dart.nullFailed(I[7], 187, 49, "defaultValue");
      dart.throw(new core.UnsupportedError.new("int.fromEnvironment can only be used as a const constructor"));
    }
    static parse(source, opts) {
      if (source == null) dart.nullFailed(I[7], 173, 27, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let value = core.int.tryParse(source, {radix: radix});
      if (value != null) return value;
      if (onError != null) return onError(source);
      dart.throw(new core.FormatException.new(source));
    }
    static tryParse(source, opts) {
      if (source == null) dart.nullFailed(I[7], 182, 31, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      return _js_helper.Primitives.parseInt(source, radix);
    }
  };
  dart.addTypeCaches(core.int);
  dart.setLibraryUri(core.int, I[8]);
  _internal.CodeUnits = class CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
    get length() {
      return this[_string$].length;
    }
    set length(value) {
      super.length = value;
    }
    _get(i) {
      if (i == null) dart.nullFailed(I[21], 77, 23, "i");
      return this[_string$][$codeUnitAt](i);
    }
    static stringOf(u) {
      if (u == null) dart.nullFailed(I[21], 79, 36, "u");
      return u[_string$];
    }
  };
  (_internal.CodeUnits.new = function(_string) {
    if (_string == null) dart.nullFailed(I[21], 74, 18, "_string");
    this[_string$] = _string;
    ;
  }).prototype = _internal.CodeUnits.prototype;
  dart.addTypeTests(_internal.CodeUnits);
  dart.addTypeCaches(_internal.CodeUnits);
  dart.setMethodSignature(_internal.CodeUnits, () => ({
    __proto__: dart.getMethods(_internal.CodeUnits.__proto__),
    _get: dart.fnType(core.int, [core.int]),
    [$_get]: dart.fnType(core.int, [core.int])
  }));
  dart.setGetterSignature(_internal.CodeUnits, () => ({
    __proto__: dart.getGetters(_internal.CodeUnits.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_internal.CodeUnits, I[25]);
  dart.setFieldSignature(_internal.CodeUnits, () => ({
    __proto__: dart.getFields(_internal.CodeUnits.__proto__),
    [_string$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_internal.CodeUnits, ['_get']);
  dart.defineExtensionAccessors(_internal.CodeUnits, ['length']);
  var name$5 = dart.privateName(_internal, "ExternalName.name");
  _internal.ExternalName = class ExternalName extends core.Object {
    get name() {
      return this[name$5];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_internal.ExternalName.new = function(name) {
    if (name == null) dart.nullFailed(I[21], 92, 27, "name");
    this[name$5] = name;
    ;
  }).prototype = _internal.ExternalName.prototype;
  dart.addTypeTests(_internal.ExternalName);
  dart.addTypeCaches(_internal.ExternalName);
  dart.setLibraryUri(_internal.ExternalName, I[25]);
  dart.setFieldSignature(_internal.ExternalName, () => ({
    __proto__: dart.getFields(_internal.ExternalName.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  _internal.SystemHash = class SystemHash extends core.Object {
    static combine(hash, value) {
      if (hash == null) dart.nullFailed(I[21], 165, 26, "hash");
      if (value == null) dart.nullFailed(I[21], 165, 36, "value");
      hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
      hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
      return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
    }
    static finish(hash) {
      if (hash == null) dart.nullFailed(I[21], 171, 25, "hash");
      hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
      hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
      return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
    }
    static hash2(v1, v2) {
      if (v1 == null) dart.nullFailed(I[21], 177, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 177, 32, "v2");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      return _internal.SystemHash.finish(hash);
    }
    static hash3(v1, v2, v3) {
      if (v1 == null) dart.nullFailed(I[21], 184, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 184, 32, "v2");
      if (v3 == null) dart.nullFailed(I[21], 184, 40, "v3");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      return _internal.SystemHash.finish(hash);
    }
    static hash4(v1, v2, v3, v4) {
      if (v1 == null) dart.nullFailed(I[21], 192, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 192, 32, "v2");
      if (v3 == null) dart.nullFailed(I[21], 192, 40, "v3");
      if (v4 == null) dart.nullFailed(I[21], 192, 48, "v4");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      return _internal.SystemHash.finish(hash);
    }
    static hash5(v1, v2, v3, v4, v5) {
      if (v1 == null) dart.nullFailed(I[21], 201, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 201, 32, "v2");
      if (v3 == null) dart.nullFailed(I[21], 201, 40, "v3");
      if (v4 == null) dart.nullFailed(I[21], 201, 48, "v4");
      if (v5 == null) dart.nullFailed(I[21], 201, 56, "v5");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      return _internal.SystemHash.finish(hash);
    }
    static hash6(v1, v2, v3, v4, v5, v6) {
      if (v1 == null) dart.nullFailed(I[21], 211, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 211, 32, "v2");
      if (v3 == null) dart.nullFailed(I[21], 211, 40, "v3");
      if (v4 == null) dart.nullFailed(I[21], 211, 48, "v4");
      if (v5 == null) dart.nullFailed(I[21], 211, 56, "v5");
      if (v6 == null) dart.nullFailed(I[21], 211, 64, "v6");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      hash = _internal.SystemHash.combine(hash, v6);
      return _internal.SystemHash.finish(hash);
    }
    static hash7(v1, v2, v3, v4, v5, v6, v7) {
      if (v1 == null) dart.nullFailed(I[21], 222, 24, "v1");
      if (v2 == null) dart.nullFailed(I[21], 222, 32, "v2");
      if (v3 == null) dart.nullFailed(I[21], 222, 40, "v3");
      if (v4 == null) dart.nullFailed(I[21], 222, 48, "v4");
      if (v5 == null) dart.nullFailed(I[21], 222, 56, "v5");
      if (v6 == null) dart.nullFailed(I[21], 222, 64, "v6");
      if (v7 == null) dart.nullFailed(I[21], 222, 72, "v7");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      hash = _internal.SystemHash.combine(hash, v6);
      hash = _internal.SystemHash.combine(hash, v7);
      return _internal.SystemHash.finish(hash);
    }
    static hash8(v1, v2, v3, v4, v5, v6, v7, v8) {
      if (v1 == null) dart.nullFailed(I[21], 235, 11, "v1");
      if (v2 == null) dart.nullFailed(I[21], 235, 19, "v2");
      if (v3 == null) dart.nullFailed(I[21], 235, 27, "v3");
      if (v4 == null) dart.nullFailed(I[21], 235, 35, "v4");
      if (v5 == null) dart.nullFailed(I[21], 235, 43, "v5");
      if (v6 == null) dart.nullFailed(I[21], 235, 51, "v6");
      if (v7 == null) dart.nullFailed(I[21], 235, 59, "v7");
      if (v8 == null) dart.nullFailed(I[21], 235, 67, "v8");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      hash = _internal.SystemHash.combine(hash, v6);
      hash = _internal.SystemHash.combine(hash, v7);
      hash = _internal.SystemHash.combine(hash, v8);
      return _internal.SystemHash.finish(hash);
    }
    static hash9(v1, v2, v3, v4, v5, v6, v7, v8, v9) {
      if (v1 == null) dart.nullFailed(I[21], 249, 11, "v1");
      if (v2 == null) dart.nullFailed(I[21], 249, 19, "v2");
      if (v3 == null) dart.nullFailed(I[21], 249, 27, "v3");
      if (v4 == null) dart.nullFailed(I[21], 249, 35, "v4");
      if (v5 == null) dart.nullFailed(I[21], 249, 43, "v5");
      if (v6 == null) dart.nullFailed(I[21], 249, 51, "v6");
      if (v7 == null) dart.nullFailed(I[21], 249, 59, "v7");
      if (v8 == null) dart.nullFailed(I[21], 249, 67, "v8");
      if (v9 == null) dart.nullFailed(I[21], 249, 75, "v9");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      hash = _internal.SystemHash.combine(hash, v6);
      hash = _internal.SystemHash.combine(hash, v7);
      hash = _internal.SystemHash.combine(hash, v8);
      hash = _internal.SystemHash.combine(hash, v9);
      return _internal.SystemHash.finish(hash);
    }
    static hash10(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
      if (v1 == null) dart.nullFailed(I[21], 263, 25, "v1");
      if (v2 == null) dart.nullFailed(I[21], 263, 33, "v2");
      if (v3 == null) dart.nullFailed(I[21], 263, 41, "v3");
      if (v4 == null) dart.nullFailed(I[21], 263, 49, "v4");
      if (v5 == null) dart.nullFailed(I[21], 263, 57, "v5");
      if (v6 == null) dart.nullFailed(I[21], 263, 65, "v6");
      if (v7 == null) dart.nullFailed(I[21], 263, 73, "v7");
      if (v8 == null) dart.nullFailed(I[21], 264, 11, "v8");
      if (v9 == null) dart.nullFailed(I[21], 264, 19, "v9");
      if (v10 == null) dart.nullFailed(I[21], 264, 27, "v10");
      let hash = 0;
      hash = _internal.SystemHash.combine(hash, v1);
      hash = _internal.SystemHash.combine(hash, v2);
      hash = _internal.SystemHash.combine(hash, v3);
      hash = _internal.SystemHash.combine(hash, v4);
      hash = _internal.SystemHash.combine(hash, v5);
      hash = _internal.SystemHash.combine(hash, v6);
      hash = _internal.SystemHash.combine(hash, v7);
      hash = _internal.SystemHash.combine(hash, v8);
      hash = _internal.SystemHash.combine(hash, v9);
      hash = _internal.SystemHash.combine(hash, v10);
      return _internal.SystemHash.finish(hash);
    }
    static smear(x) {
      if (x == null) dart.nullFailed(I[21], 290, 24, "x");
      x = (dart.notNull(x) ^ x[$rightShift](16)) >>> 0;
      x = (dart.notNull(x) * 2146121005 & 4294967295) >>> 0;
      x = (dart.notNull(x) ^ x[$rightShift](15)) >>> 0;
      x = (dart.notNull(x) * 2221713035 & 4294967295) >>> 0;
      x = (dart.notNull(x) ^ x[$rightShift](16)) >>> 0;
      return x;
    }
  };
  (_internal.SystemHash.new = function() {
    ;
  }).prototype = _internal.SystemHash.prototype;
  dart.addTypeTests(_internal.SystemHash);
  dart.addTypeCaches(_internal.SystemHash);
  dart.setLibraryUri(_internal.SystemHash, I[25]);
  var version$ = dart.privateName(_internal, "Since.version");
  _internal.Since = class Since extends core.Object {
    get version() {
      return this[version$];
    }
    set version(value) {
      super.version = value;
    }
  };
  (_internal.Since.new = function(version) {
    if (version == null) dart.nullFailed(I[21], 389, 20, "version");
    this[version$] = version;
    ;
  }).prototype = _internal.Since.prototype;
  dart.addTypeTests(_internal.Since);
  dart.addTypeCaches(_internal.Since);
  dart.setLibraryUri(_internal.Since, I[25]);
  dart.setFieldSignature(_internal.Since, () => ({
    __proto__: dart.getFields(_internal.Since.__proto__),
    version: dart.finalFieldType(core.String)
  }));
  var _name$ = dart.privateName(_internal, "_name");
  core.Error = class Error extends core.Object {
    static safeToString(object) {
      if (typeof object == 'number' || typeof object == 'boolean' || object == null) {
        return dart.toString(object);
      }
      if (typeof object == 'string') {
        return core.Error._stringToSafeString(object);
      }
      return core.Error._objectToString(object);
    }
    static _stringToSafeString(string) {
      if (string == null) dart.nullFailed(I[7], 281, 44, "string");
      return JSON.stringify(string);
    }
    static _objectToString(object) {
      if (object == null) dart.nullFailed(I[7], 276, 40, "object");
      return "Instance of '" + dart.typeName(dart.getReifiedType(object)) + "'";
    }
    get stackTrace() {
      return dart.stackTraceForError(this);
    }
  };
  (core.Error.new = function() {
    ;
  }).prototype = core.Error.prototype;
  dart.addTypeTests(core.Error);
  dart.addTypeCaches(core.Error);
  dart.setGetterSignature(core.Error, () => ({
    __proto__: dart.getGetters(core.Error.__proto__),
    stackTrace: dart.nullable(core.StackTrace),
    [$stackTrace]: dart.nullable(core.StackTrace)
  }));
  dart.setLibraryUri(core.Error, I[8]);
  dart.defineExtensionAccessors(core.Error, ['stackTrace']);
  const _is_NotNullableError_default = Symbol('_is_NotNullableError_default');
  _internal.NotNullableError$ = dart.generic(T => {
    class NotNullableError extends core.Error {
      toString() {
        return "Null is not a valid value for the parameter '" + dart.str(this[_name$]) + "' of type '" + dart.str(dart.wrapType(T)) + "'";
      }
    }
    (NotNullableError.new = function(_name) {
      if (_name == null) dart.nullFailed(I[21], 412, 25, "_name");
      this[_name$] = _name;
      NotNullableError.__proto__.new.call(this);
      ;
    }).prototype = NotNullableError.prototype;
    dart.addTypeTests(NotNullableError);
    NotNullableError.prototype[_is_NotNullableError_default] = true;
    dart.addTypeCaches(NotNullableError);
    NotNullableError[dart.implements] = () => [core.TypeError];
    dart.setLibraryUri(NotNullableError, I[25]);
    dart.setFieldSignature(NotNullableError, () => ({
      __proto__: dart.getFields(NotNullableError.__proto__),
      [_name$]: dart.finalFieldType(core.String)
    }));
    dart.defineExtensionMethods(NotNullableError, ['toString']);
    return NotNullableError;
  });
  _internal.NotNullableError = _internal.NotNullableError$();
  dart.addTypeTests(_internal.NotNullableError, _is_NotNullableError_default);
  _internal.HttpStatus = class HttpStatus extends core.Object {};
  (_internal.HttpStatus.new = function() {
    ;
  }).prototype = _internal.HttpStatus.prototype;
  dart.addTypeTests(_internal.HttpStatus);
  dart.addTypeCaches(_internal.HttpStatus);
  dart.setLibraryUri(_internal.HttpStatus, I[25]);
  dart.defineLazy(_internal.HttpStatus, {
    /*_internal.HttpStatus.continue__*/get continue__() {
      return 100;
    },
    /*_internal.HttpStatus.switchingProtocols*/get switchingProtocols() {
      return 101;
    },
    /*_internal.HttpStatus.processing*/get processing() {
      return 102;
    },
    /*_internal.HttpStatus.ok*/get ok() {
      return 200;
    },
    /*_internal.HttpStatus.created*/get created() {
      return 201;
    },
    /*_internal.HttpStatus.accepted*/get accepted() {
      return 202;
    },
    /*_internal.HttpStatus.nonAuthoritativeInformation*/get nonAuthoritativeInformation() {
      return 203;
    },
    /*_internal.HttpStatus.noContent*/get noContent() {
      return 204;
    },
    /*_internal.HttpStatus.resetContent*/get resetContent() {
      return 205;
    },
    /*_internal.HttpStatus.partialContent*/get partialContent() {
      return 206;
    },
    /*_internal.HttpStatus.multiStatus*/get multiStatus() {
      return 207;
    },
    /*_internal.HttpStatus.alreadyReported*/get alreadyReported() {
      return 208;
    },
    /*_internal.HttpStatus.imUsed*/get imUsed() {
      return 226;
    },
    /*_internal.HttpStatus.multipleChoices*/get multipleChoices() {
      return 300;
    },
    /*_internal.HttpStatus.movedPermanently*/get movedPermanently() {
      return 301;
    },
    /*_internal.HttpStatus.found*/get found() {
      return 302;
    },
    /*_internal.HttpStatus.movedTemporarily*/get movedTemporarily() {
      return 302;
    },
    /*_internal.HttpStatus.seeOther*/get seeOther() {
      return 303;
    },
    /*_internal.HttpStatus.notModified*/get notModified() {
      return 304;
    },
    /*_internal.HttpStatus.useProxy*/get useProxy() {
      return 305;
    },
    /*_internal.HttpStatus.temporaryRedirect*/get temporaryRedirect() {
      return 307;
    },
    /*_internal.HttpStatus.permanentRedirect*/get permanentRedirect() {
      return 308;
    },
    /*_internal.HttpStatus.badRequest*/get badRequest() {
      return 400;
    },
    /*_internal.HttpStatus.unauthorized*/get unauthorized() {
      return 401;
    },
    /*_internal.HttpStatus.paymentRequired*/get paymentRequired() {
      return 402;
    },
    /*_internal.HttpStatus.forbidden*/get forbidden() {
      return 403;
    },
    /*_internal.HttpStatus.notFound*/get notFound() {
      return 404;
    },
    /*_internal.HttpStatus.methodNotAllowed*/get methodNotAllowed() {
      return 405;
    },
    /*_internal.HttpStatus.notAcceptable*/get notAcceptable() {
      return 406;
    },
    /*_internal.HttpStatus.proxyAuthenticationRequired*/get proxyAuthenticationRequired() {
      return 407;
    },
    /*_internal.HttpStatus.requestTimeout*/get requestTimeout() {
      return 408;
    },
    /*_internal.HttpStatus.conflict*/get conflict() {
      return 409;
    },
    /*_internal.HttpStatus.gone*/get gone() {
      return 410;
    },
    /*_internal.HttpStatus.lengthRequired*/get lengthRequired() {
      return 411;
    },
    /*_internal.HttpStatus.preconditionFailed*/get preconditionFailed() {
      return 412;
    },
    /*_internal.HttpStatus.requestEntityTooLarge*/get requestEntityTooLarge() {
      return 413;
    },
    /*_internal.HttpStatus.requestUriTooLong*/get requestUriTooLong() {
      return 414;
    },
    /*_internal.HttpStatus.unsupportedMediaType*/get unsupportedMediaType() {
      return 415;
    },
    /*_internal.HttpStatus.requestedRangeNotSatisfiable*/get requestedRangeNotSatisfiable() {
      return 416;
    },
    /*_internal.HttpStatus.expectationFailed*/get expectationFailed() {
      return 417;
    },
    /*_internal.HttpStatus.misdirectedRequest*/get misdirectedRequest() {
      return 421;
    },
    /*_internal.HttpStatus.unprocessableEntity*/get unprocessableEntity() {
      return 422;
    },
    /*_internal.HttpStatus.locked*/get locked() {
      return 423;
    },
    /*_internal.HttpStatus.failedDependency*/get failedDependency() {
      return 424;
    },
    /*_internal.HttpStatus.upgradeRequired*/get upgradeRequired() {
      return 426;
    },
    /*_internal.HttpStatus.preconditionRequired*/get preconditionRequired() {
      return 428;
    },
    /*_internal.HttpStatus.tooManyRequests*/get tooManyRequests() {
      return 429;
    },
    /*_internal.HttpStatus.requestHeaderFieldsTooLarge*/get requestHeaderFieldsTooLarge() {
      return 431;
    },
    /*_internal.HttpStatus.connectionClosedWithoutResponse*/get connectionClosedWithoutResponse() {
      return 444;
    },
    /*_internal.HttpStatus.unavailableForLegalReasons*/get unavailableForLegalReasons() {
      return 451;
    },
    /*_internal.HttpStatus.clientClosedRequest*/get clientClosedRequest() {
      return 499;
    },
    /*_internal.HttpStatus.internalServerError*/get internalServerError() {
      return 500;
    },
    /*_internal.HttpStatus.notImplemented*/get notImplemented() {
      return 501;
    },
    /*_internal.HttpStatus.badGateway*/get badGateway() {
      return 502;
    },
    /*_internal.HttpStatus.serviceUnavailable*/get serviceUnavailable() {
      return 503;
    },
    /*_internal.HttpStatus.gatewayTimeout*/get gatewayTimeout() {
      return 504;
    },
    /*_internal.HttpStatus.httpVersionNotSupported*/get httpVersionNotSupported() {
      return 505;
    },
    /*_internal.HttpStatus.variantAlsoNegotiates*/get variantAlsoNegotiates() {
      return 506;
    },
    /*_internal.HttpStatus.insufficientStorage*/get insufficientStorage() {
      return 507;
    },
    /*_internal.HttpStatus.loopDetected*/get loopDetected() {
      return 508;
    },
    /*_internal.HttpStatus.notExtended*/get notExtended() {
      return 510;
    },
    /*_internal.HttpStatus.networkAuthenticationRequired*/get networkAuthenticationRequired() {
      return 511;
    },
    /*_internal.HttpStatus.networkConnectTimeoutError*/get networkConnectTimeoutError() {
      return 599;
    },
    /*_internal.HttpStatus.CONTINUE*/get CONTINUE() {
      return 100;
    },
    /*_internal.HttpStatus.SWITCHING_PROTOCOLS*/get SWITCHING_PROTOCOLS() {
      return 101;
    },
    /*_internal.HttpStatus.OK*/get OK() {
      return 200;
    },
    /*_internal.HttpStatus.CREATED*/get CREATED() {
      return 201;
    },
    /*_internal.HttpStatus.ACCEPTED*/get ACCEPTED() {
      return 202;
    },
    /*_internal.HttpStatus.NON_AUTHORITATIVE_INFORMATION*/get NON_AUTHORITATIVE_INFORMATION() {
      return 203;
    },
    /*_internal.HttpStatus.NO_CONTENT*/get NO_CONTENT() {
      return 204;
    },
    /*_internal.HttpStatus.RESET_CONTENT*/get RESET_CONTENT() {
      return 205;
    },
    /*_internal.HttpStatus.PARTIAL_CONTENT*/get PARTIAL_CONTENT() {
      return 206;
    },
    /*_internal.HttpStatus.MULTIPLE_CHOICES*/get MULTIPLE_CHOICES() {
      return 300;
    },
    /*_internal.HttpStatus.MOVED_PERMANENTLY*/get MOVED_PERMANENTLY() {
      return 301;
    },
    /*_internal.HttpStatus.FOUND*/get FOUND() {
      return 302;
    },
    /*_internal.HttpStatus.MOVED_TEMPORARILY*/get MOVED_TEMPORARILY() {
      return 302;
    },
    /*_internal.HttpStatus.SEE_OTHER*/get SEE_OTHER() {
      return 303;
    },
    /*_internal.HttpStatus.NOT_MODIFIED*/get NOT_MODIFIED() {
      return 304;
    },
    /*_internal.HttpStatus.USE_PROXY*/get USE_PROXY() {
      return 305;
    },
    /*_internal.HttpStatus.TEMPORARY_REDIRECT*/get TEMPORARY_REDIRECT() {
      return 307;
    },
    /*_internal.HttpStatus.BAD_REQUEST*/get BAD_REQUEST() {
      return 400;
    },
    /*_internal.HttpStatus.UNAUTHORIZED*/get UNAUTHORIZED() {
      return 401;
    },
    /*_internal.HttpStatus.PAYMENT_REQUIRED*/get PAYMENT_REQUIRED() {
      return 402;
    },
    /*_internal.HttpStatus.FORBIDDEN*/get FORBIDDEN() {
      return 403;
    },
    /*_internal.HttpStatus.NOT_FOUND*/get NOT_FOUND() {
      return 404;
    },
    /*_internal.HttpStatus.METHOD_NOT_ALLOWED*/get METHOD_NOT_ALLOWED() {
      return 405;
    },
    /*_internal.HttpStatus.NOT_ACCEPTABLE*/get NOT_ACCEPTABLE() {
      return 406;
    },
    /*_internal.HttpStatus.PROXY_AUTHENTICATION_REQUIRED*/get PROXY_AUTHENTICATION_REQUIRED() {
      return 407;
    },
    /*_internal.HttpStatus.REQUEST_TIMEOUT*/get REQUEST_TIMEOUT() {
      return 408;
    },
    /*_internal.HttpStatus.CONFLICT*/get CONFLICT() {
      return 409;
    },
    /*_internal.HttpStatus.GONE*/get GONE() {
      return 410;
    },
    /*_internal.HttpStatus.LENGTH_REQUIRED*/get LENGTH_REQUIRED() {
      return 411;
    },
    /*_internal.HttpStatus.PRECONDITION_FAILED*/get PRECONDITION_FAILED() {
      return 412;
    },
    /*_internal.HttpStatus.REQUEST_ENTITY_TOO_LARGE*/get REQUEST_ENTITY_TOO_LARGE() {
      return 413;
    },
    /*_internal.HttpStatus.REQUEST_URI_TOO_LONG*/get REQUEST_URI_TOO_LONG() {
      return 414;
    },
    /*_internal.HttpStatus.UNSUPPORTED_MEDIA_TYPE*/get UNSUPPORTED_MEDIA_TYPE() {
      return 415;
    },
    /*_internal.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE*/get REQUESTED_RANGE_NOT_SATISFIABLE() {
      return 416;
    },
    /*_internal.HttpStatus.EXPECTATION_FAILED*/get EXPECTATION_FAILED() {
      return 417;
    },
    /*_internal.HttpStatus.UPGRADE_REQUIRED*/get UPGRADE_REQUIRED() {
      return 426;
    },
    /*_internal.HttpStatus.INTERNAL_SERVER_ERROR*/get INTERNAL_SERVER_ERROR() {
      return 500;
    },
    /*_internal.HttpStatus.NOT_IMPLEMENTED*/get NOT_IMPLEMENTED() {
      return 501;
    },
    /*_internal.HttpStatus.BAD_GATEWAY*/get BAD_GATEWAY() {
      return 502;
    },
    /*_internal.HttpStatus.SERVICE_UNAVAILABLE*/get SERVICE_UNAVAILABLE() {
      return 503;
    },
    /*_internal.HttpStatus.GATEWAY_TIMEOUT*/get GATEWAY_TIMEOUT() {
      return 504;
    },
    /*_internal.HttpStatus.HTTP_VERSION_NOT_SUPPORTED*/get HTTP_VERSION_NOT_SUPPORTED() {
      return 505;
    },
    /*_internal.HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR*/get NETWORK_CONNECT_TIMEOUT_ERROR() {
      return 599;
    }
  }, false);
  var _source$ = dart.privateName(_internal, "_source");
  var _add = dart.privateName(async, "_add");
  var _closeUnchecked = dart.privateName(async, "_closeUnchecked");
  var _addError = dart.privateName(async, "_addError");
  var _completeError = dart.privateName(async, "_completeError");
  var _complete = dart.privateName(async, "_complete");
  var _sink$ = dart.privateName(async, "_sink");
  async.Stream$ = dart.generic(T => {
    var _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
    var _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
    var TTovoid = () => (TTovoid = dart.constFn(dart.fnType(dart.void, [T])))();
    var _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
    var StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
    var TAndTToT = () => (TAndTToT = dart.constFn(dart.fnType(T, [T, T])))();
    var _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
    var VoidToT = () => (VoidToT = dart.constFn(dart.fnType(T, [])))();
    var TTodynamic = () => (TTodynamic = dart.constFn(dart.fnType(dart.dynamic, [T])))();
    var TToNull = () => (TToNull = dart.constFn(dart.fnType(core.Null, [T])))();
    var JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
    var ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
    var _FutureOfListOfT = () => (_FutureOfListOfT = dart.constFn(async._Future$(ListOfT())))();
    var _HashSetOfT = () => (_HashSetOfT = dart.constFn(collection._HashSet$(T)))();
    var SetOfT = () => (SetOfT = dart.constFn(core.Set$(T)))();
    var _FutureOfSetOfT = () => (_FutureOfSetOfT = dart.constFn(async._Future$(SetOfT())))();
    var _TakeStreamOfT = () => (_TakeStreamOfT = dart.constFn(async._TakeStream$(T)))();
    var _TakeWhileStreamOfT = () => (_TakeWhileStreamOfT = dart.constFn(async._TakeWhileStream$(T)))();
    var _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
    var _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
    var _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
    var VoidToNT = () => (VoidToNT = dart.constFn(dart.nullable(VoidToT())))();
    var _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
    var _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
    var EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
    var _ControllerEventSinkWrapperOfT = () => (_ControllerEventSinkWrapperOfT = dart.constFn(async._ControllerEventSinkWrapper$(T)))();
    class Stream extends core.Object {
      static value(value) {
        let t27;
        return (t27 = new (async._AsyncStreamController$(T)).new(null, null, null, null), (() => {
          t27[_add](value);
          t27[_closeUnchecked]();
          return t27;
        })()).stream;
      }
      static error(error, stackTrace = null) {
        let t28, t27;
        if (error == null) dart.nullFailed(I[28], 143, 31, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        return (t27 = new (async._AsyncStreamController$(T)).new(null, null, null, null), (() => {
          t27[_addError](error, (t28 = stackTrace, t28 == null ? async.AsyncError.defaultStackTrace(error) : t28));
          t27[_closeUnchecked]();
          return t27;
        })()).stream;
      }
      static fromFuture(future) {
        if (future == null) dart.nullFailed(I[28], 156, 39, "future");
        let controller = new (async._SyncStreamController$(T)).new(null, null, null, null);
        future.then(core.Null, dart.fn(value => {
          controller[_add](value);
          controller[_closeUnchecked]();
        }, dart.fnType(core.Null, [T])), {onError: dart.fn((error, stackTrace) => {
            controller[_addError](core.Object.as(error), core.StackTrace.as(stackTrace));
            controller[_closeUnchecked]();
          }, T$.dynamicAnddynamicToNull())});
        return controller.stream;
      }
      static fromFutures(futures) {
        if (futures == null) dart.nullFailed(I[28], 185, 50, "futures");
        let controller = new (async._SyncStreamController$(T)).new(null, null, null, null);
        let count = 0;
        function onValue(value) {
          if (!dart.test(controller.isClosed)) {
            controller[_add](value);
            if ((count = count - 1) === 0) controller[_closeUnchecked]();
          }
        }
        dart.fn(onValue, dart.fnType(dart.void, [T]));
        function onError(error, stack) {
          if (error == null) dart.nullFailed(I[28], 199, 25, "error");
          if (stack == null) dart.nullFailed(I[28], 199, 43, "stack");
          if (!dart.test(controller.isClosed)) {
            controller[_addError](error, stack);
            if ((count = count - 1) === 0) controller[_closeUnchecked]();
          }
        }
        dart.fn(onError, T$.ObjectAndStackTraceTovoid());
        for (let future of futures) {
          count = count + 1;
          future.then(dart.void, onValue, {onError: onError});
        }
        if (count === 0) async.scheduleMicrotask(dart.bind(controller, 'close'));
        return controller.stream;
      }
      static fromIterable(elements) {
        if (elements == null) dart.nullFailed(I[28], 229, 43, "elements");
        return new (async._GeneratedStreamImpl$(T)).new(dart.fn(() => new (async._IterablePendingEvents$(T)).new(elements), dart.fnType(async._IterablePendingEvents$(T), [])));
      }
      static multi(onListen, opts) {
        if (onListen == null) dart.nullFailed(I[28], 298, 64, "onListen");
        let isBroadcast = opts && 'isBroadcast' in opts ? opts.isBroadcast : false;
        if (isBroadcast == null) dart.nullFailed(I[28], 299, 13, "isBroadcast");
        return new (async._MultiStream$(T)).new(onListen, isBroadcast);
      }
      static periodic(period, computation = null) {
        if (period == null) dart.nullFailed(I[28], 315, 36, "period");
        if (computation == null && !dart.test(_internal.typeAcceptsNull(T))) {
          dart.throw(new core.ArgumentError.value(null, "computation", "Must not be omitted when the event type is non-nullable"));
        }
        let controller = new (async._SyncStreamController$(T)).new(null, null, null, null);
        let watch = new core.Stopwatch.new();
        controller.onListen = dart.fn(() => {
          let t28;
          let computationCount = 0;
          function sendEvent(_) {
            let t27;
            watch.reset();
            if (computation != null) {
              let event = null;
              try {
                event = computation((t27 = computationCount, computationCount = t27 + 1, t27));
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                if (core.Object.is(e)) {
                  controller.addError(e, s);
                  return;
                } else
                  throw e$;
              }
              controller.add(event);
            } else {
              controller.add(T.as(null));
            }
          }
          dart.fn(sendEvent, T$.dynamicTovoid());
          let timer = async.Timer.periodic(period, sendEvent);
          t28 = controller;
          (() => {
            t28.onCancel = dart.fn(() => {
              timer.cancel();
              return async.Future._nullFuture;
            }, T$.VoidTo_FutureOfNull());
            t28.onPause = dart.fn(() => {
              watch.stop();
              timer.cancel();
            }, T$.VoidTovoid());
            t28.onResume = dart.fn(() => {
              let elapsed = watch.elapsed;
              watch.start();
              timer = async.Timer.new(period['-'](elapsed), dart.fn(() => {
                timer = async.Timer.periodic(period, sendEvent);
                sendEvent(null);
              }, T$.VoidTovoid()));
            }, T$.VoidTovoid());
            return t28;
          })();
        }, T$.VoidTovoid());
        return controller.stream;
      }
      static eventTransformed(source, mapSink) {
        if (source == null) dart.nullFailed(I[28], 403, 23, "source");
        if (mapSink == null) dart.nullFailed(I[28], 403, 50, "mapSink");
        return new (async._BoundSinkStream$(dart.dynamic, T)).new(source, mapSink);
      }
      static castFrom(S, T, source) {
        if (source == null) dart.nullFailed(I[28], 413, 45, "source");
        return new (_internal.CastStream$(S, T)).new(source);
      }
      get isBroadcast() {
        return false;
      }
      asBroadcastStream(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        return new (_AsBroadcastStreamOfT()).new(this, onListen, onCancel);
      }
      where(test) {
        if (test == null) dart.nullFailed(I[28], 493, 24, "test");
        return new (_WhereStreamOfT()).new(this, test);
      }
      map(S, convert) {
        if (convert == null) dart.nullFailed(I[28], 521, 22, "convert");
        return new (async._MapStream$(T, S)).new(this, convert);
      }
      asyncMap(E, convert) {
        if (convert == null) dart.nullFailed(I[28], 533, 37, "convert");
        let controller = null;
        if (dart.test(this.isBroadcast)) {
          controller = new (async._SyncBroadcastStreamController$(E)).new(null, null);
        } else {
          controller = new (async._SyncStreamController$(E)).new(null, null, null, null);
        }
        controller.onListen = dart.fn(() => {
          let t29;
          let subscription = this.listen(null, {onError: dart.bind(controller, _addError), onDone: dart.bind(controller, 'close')});
          function add(value) {
            controller.add(value);
          }
          dart.fn(add, dart.fnType(T$.FutureNOfNull(), [E]));
          let addError = dart.bind(controller, _addError);
          let resume = dart.bind(subscription, 'resume');
          subscription.onData(dart.fn(event => {
            let newValue = null;
            try {
              newValue = convert(event);
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                controller.addError(e, s);
                return;
              } else
                throw e$;
            }
            if (async.Future$(E).is(newValue)) {
              subscription.pause();
              newValue.then(core.Null, add, {onError: addError}).whenComplete(resume);
            } else {
              controller.add(E.as(newValue));
            }
          }, TTovoid()));
          controller.onCancel = dart.bind(subscription, 'cancel');
          if (!dart.test(this.isBroadcast)) {
            t29 = controller;
            (() => {
              t29.onPause = dart.bind(subscription, 'pause');
              t29.onResume = resume;
              return t29;
            })();
          }
        }, T$.VoidTovoid());
        return controller.stream;
      }
      asyncExpand(E, convert) {
        if (convert == null) dart.nullFailed(I[28], 593, 39, "convert");
        let controller = null;
        if (dart.test(this.isBroadcast)) {
          controller = new (async._SyncBroadcastStreamController$(E)).new(null, null);
        } else {
          controller = new (async._SyncStreamController$(E)).new(null, null, null, null);
        }
        controller.onListen = dart.fn(() => {
          let t30;
          let subscription = this.listen(null, {onError: dart.bind(controller, _addError), onDone: dart.bind(controller, 'close')});
          subscription.onData(dart.fn(event => {
            let newStream = null;
            try {
              newStream = convert(event);
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                controller.addError(e, s);
                return;
              } else
                throw e$;
            }
            if (newStream != null) {
              subscription.pause();
              controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
            }
          }, TTovoid()));
          controller.onCancel = dart.bind(subscription, 'cancel');
          if (!dart.test(this.isBroadcast)) {
            t30 = controller;
            (() => {
              t30.onPause = dart.bind(subscription, 'pause');
              t30.onResume = dart.bind(subscription, 'resume');
              return t30;
            })();
          }
        }, T$.VoidTovoid());
        return controller.stream;
      }
      handleError(onError, opts) {
        if (onError == null) dart.nullFailed(I[28], 658, 34, "onError");
        let test = opts && 'test' in opts ? opts.test : null;
        return new (_HandleErrorStreamOfT()).new(this, onError, test);
      }
      expand(S, convert) {
        if (convert == null) dart.nullFailed(I[28], 679, 35, "convert");
        return new (async._ExpandStream$(T, S)).new(this, convert);
      }
      pipe(streamConsumer) {
        StreamConsumerOfT().as(streamConsumer);
        if (streamConsumer == null) dart.nullFailed(I[28], 697, 33, "streamConsumer");
        return streamConsumer.addStream(this).then(dart.dynamic, dart.fn(_ => streamConsumer.close(), T$.dynamicToFuture()));
      }
      transform(S, streamTransformer) {
        async.StreamTransformer$(T, S).as(streamTransformer);
        if (streamTransformer == null) dart.nullFailed(I[28], 726, 50, "streamTransformer");
        return streamTransformer.bind(this);
      }
      reduce(combine) {
        TAndTToT().as(combine);
        if (combine == null) dart.nullFailed(I[28], 747, 22, "combine");
        let result = new (_FutureOfT()).new();
        let seenFirst = false;
        let value = null;
        let value$35isSet = false;
        function value$35get() {
          return value$35isSet ? value : dart.throw(new _internal.LateError.localNI("value"));
        }
        dart.fn(value$35get, VoidToT());
        function value$35set(t33) {
          value$35isSet = true;
          return value = t33;
        }
        dart.fn(value$35set, TTodynamic());
        let subscription = this.listen(null, {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
            if (!seenFirst) {
              try {
                dart.throw(_internal.IterableElementError.noElement());
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                if (core.Object.is(e)) {
                  async._completeWithErrorCallback(result, e, s);
                } else
                  throw e$;
              }
            } else {
              result[_complete](value$35get());
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          if (seenFirst) {
            async._runUserCode(T, dart.fn(() => combine(value$35get(), element), VoidToT()), dart.fn(newValue => {
              value$35set(newValue);
            }, TToNull()), async._cancelAndErrorClosure(subscription, result));
          } else {
            value$35set(element);
            seenFirst = true;
          }
        }, TTovoid()));
        return result;
      }
      fold(S, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[28], 794, 39, "combine");
        let result = new (async._Future$(S)).new();
        let value = initialValue;
        let subscription = this.listen(null, {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
            result[_complete](value);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          async._runUserCode(S, dart.fn(() => combine(value, element), dart.fnType(S, [])), dart.fn(newValue => {
            value = newValue;
          }, dart.fnType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
        }, TTovoid()));
        return result;
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[28], 821, 31, "separator");
        let result = new (T$._FutureOfString()).new();
        let buffer = new core.StringBuffer.new();
        let first = true;
        let subscription = this.listen(null, {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
            result[_complete](buffer.toString());
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(separator[$isEmpty] ? dart.fn(element => {
          try {
            buffer.write(element);
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._cancelAndErrorWithReplacement(subscription, result, e, s);
            } else
              throw e$;
          }
        }, TTovoid()) : dart.fn(element => {
          if (!first) {
            buffer.write(separator);
          }
          first = false;
          try {
            buffer.write(element);
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._cancelAndErrorWithReplacement(subscription, result, e, s);
            } else
              throw e$;
          }
        }, TTovoid()));
        return result;
      }
      contains(needle) {
        let future = new (T$._FutureOfbool()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](false);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          async._runUserCode(core.bool, dart.fn(() => dart.equals(element, needle), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 868, 53, "isMatch");
            if (dart.test(isMatch)) {
              async._cancelAndValue(subscription, future, true);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[28], 885, 23, "action");
        let future = new async._Future.new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](null);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          async._runUserCode(dart.void, dart.fn(() => action(element), T$.VoidTovoid()), dart.fn(_ => {
          }, T$.voidToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      every(test) {
        if (test == null) dart.nullFailed(I[28], 910, 27, "test");
        let future = new (T$._FutureOfbool()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](true);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          async._runUserCode(core.bool, dart.fn(() => test(element), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 917, 47, "isMatch");
            if (!dart.test(isMatch)) {
              async._cancelAndValue(subscription, future, false);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      any(test) {
        if (test == null) dart.nullFailed(I[28], 938, 25, "test");
        let future = new (T$._FutureOfbool()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](false);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(element => {
          async._runUserCode(core.bool, dart.fn(() => test(element), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 945, 47, "isMatch");
            if (dart.test(isMatch)) {
              async._cancelAndValue(subscription, future, true);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      get length() {
        let future = new (T$._FutureOfint()).new();
        let count = 0;
        this.listen(dart.fn(_ => {
          count = count + 1;
        }, TTovoid()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](count);
          }, T$.VoidTovoid()), cancelOnError: true});
        return future;
      }
      get isEmpty() {
        let future = new (T$._FutureOfbool()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](true);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(_ => {
          async._cancelAndValue(subscription, future, false);
        }, TTovoid()));
        return future;
      }
      cast(R) {
        return async.Stream.castFrom(T, R, this);
      }
      toList() {
        let result = JSArrayOfT().of([]);
        let future = new (_FutureOfListOfT()).new();
        this.listen(dart.fn(data => {
          result[$add](data);
        }, TTovoid()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](result);
          }, T$.VoidTovoid()), cancelOnError: true});
        return future;
      }
      toSet() {
        let result = new (_HashSetOfT()).new();
        let future = new (_FutureOfSetOfT()).new();
        this.listen(dart.fn(data => {
          result.add(data);
        }, TTovoid()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            future[_complete](result);
          }, T$.VoidTovoid()), cancelOnError: true});
        return future;
      }
      drain(E, futureValue = null) {
        if (futureValue == null) {
          futureValue = E.as(futureValue);
        }
        return this.listen(null, {cancelOnError: true}).asFuture(E, futureValue);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[28], 1104, 22, "count");
        return new (_TakeStreamOfT()).new(this, count);
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[28], 1128, 28, "test");
        return new (_TakeWhileStreamOfT()).new(this, test);
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[28], 1145, 22, "count");
        return new (_SkipStreamOfT()).new(this, count);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[28], 1165, 28, "test");
        return new (_SkipWhileStreamOfT()).new(this, test);
      }
      distinct(equals = null) {
        return new (_DistinctStreamOfT()).new(this, equals);
      }
      get first() {
        let future = new (_FutureOfT()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          async._cancelAndValue(subscription, future, value);
        }, TTovoid()));
        return future;
      }
      get last() {
        let future = new (_FutureOfT()).new();
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToT());
        function result$35set(t42) {
          result$35isSet = true;
          return result = t42;
        }
        dart.fn(result$35set, TTodynamic());
        let foundResult = false;
        this.listen(dart.fn(value => {
          foundResult = true;
          result$35set(value);
        }, TTovoid()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            if (foundResult) {
              future[_complete](result$35get());
              return;
            }
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        return future;
      }
      get single() {
        let future = new (_FutureOfT()).new();
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToT());
        function result$35set(t48) {
          result$35isSet = true;
          return result = t48;
        }
        dart.fn(result$35set, TTodynamic());
        let foundResult = false;
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            if (foundResult) {
              future[_complete](result$35get());
              return;
            }
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          if (foundResult) {
            try {
              dart.throw(_internal.IterableElementError.tooMany());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._cancelAndErrorWithReplacement(subscription, future, e, s);
              } else
                throw e$;
            }
            return;
          }
          foundResult = true;
          result$35set(value);
        }, TTovoid()));
        return future;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[28], 1320, 29, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNT().as(orElse);
        let future = new (_FutureOfT()).new();
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            if (orElse != null) {
              async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
              return;
            }
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          async._runUserCode(core.bool, dart.fn(() => test(value), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 1337, 45, "isMatch");
            if (dart.test(isMatch)) {
              async._cancelAndValue(subscription, future, value);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[28], 1355, 28, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNT().as(orElse);
        let future = new (_FutureOfT()).new();
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToT());
        function result$35set(t56) {
          result$35isSet = true;
          return result = t56;
        }
        dart.fn(result$35set, TTodynamic());
        let foundResult = false;
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            if (foundResult) {
              future[_complete](result$35get());
              return;
            }
            if (orElse != null) {
              async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
              return;
            }
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          async._runUserCode(core.bool, dart.fn(() => test(value), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 1377, 45, "isMatch");
            if (dart.test(isMatch)) {
              foundResult = true;
              result$35set(value);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[28], 1391, 30, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNT().as(orElse);
        let future = new (_FutureOfT()).new();
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToT());
        function result$35set(t62) {
          result$35isSet = true;
          return result = t62;
        }
        dart.fn(result$35set, TTodynamic());
        let foundResult = false;
        let subscription = this.listen(null, {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
            if (foundResult) {
              future[_complete](result$35get());
              return;
            }
            if (orElse != null) {
              async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
              return;
            }
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(future, e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          async._runUserCode(core.bool, dart.fn(() => test(value), T$.VoidTobool()), dart.fn(isMatch => {
            if (isMatch == null) dart.nullFailed(I[28], 1413, 45, "isMatch");
            if (dart.test(isMatch)) {
              if (foundResult) {
                try {
                  dart.throw(_internal.IterableElementError.tooMany());
                } catch (e$) {
                  let e = dart.getThrown(e$);
                  let s = dart.stackTrace(e$);
                  if (core.Object.is(e)) {
                    async._cancelAndErrorWithReplacement(subscription, future, e, s);
                  } else
                    throw e$;
                }
                return;
              }
              foundResult = true;
              result$35set(value);
            }
          }, T$.boolToNull()), async._cancelAndErrorClosure(subscription, future));
        }, TTovoid()));
        return future;
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[28], 1445, 27, "index");
        core.RangeError.checkNotNegative(index, "index");
        let result = new (_FutureOfT()).new();
        let elementIndex = 0;
        let subscription = null;
        subscription = this.listen(null, {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
            result[_completeError](new core.IndexError.new(index, this, "index", null, elementIndex), core.StackTrace.empty);
          }, T$.VoidTovoid()), cancelOnError: true});
        subscription.onData(dart.fn(value => {
          if (index === elementIndex) {
            async._cancelAndValue(subscription, result, value);
            return;
          }
          elementIndex = elementIndex + 1;
        }, TTovoid()));
        return result;
      }
      timeout(timeLimit, opts) {
        if (timeLimit == null) dart.nullFailed(I[28], 1492, 30, "timeLimit");
        let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
        let controller = null;
        if (dart.test(this.isBroadcast)) {
          controller = new (_SyncBroadcastStreamControllerOfT()).new(null, null);
        } else {
          controller = new (_SyncStreamControllerOfT()).new(null, null, null, null);
        }
        let zone = async.Zone.current;
        let timeoutCallback = null;
        if (onTimeout == null) {
          timeoutCallback = dart.fn(() => {
            controller.addError(new async.TimeoutException.new("No stream event", timeLimit), null);
          }, T$.VoidTovoid());
        } else {
          let registeredOnTimeout = zone.registerUnaryCallback(dart.void, EventSinkOfT(), onTimeout);
          let wrapper = new (_ControllerEventSinkWrapperOfT()).new(null);
          timeoutCallback = dart.fn(() => {
            wrapper[_sink$] = controller;
            zone.runUnaryGuarded(_ControllerEventSinkWrapperOfT(), registeredOnTimeout, wrapper);
            wrapper[_sink$] = null;
          }, T$.VoidTovoid());
        }
        controller.onListen = dart.fn(() => {
          let t66, t66$;
          let timer = zone.createTimer(timeLimit, timeoutCallback);
          let subscription = this.listen(null);
          t66 = subscription;
          (() => {
            t66.onData(dart.fn(event => {
              timer.cancel();
              timer = zone.createTimer(timeLimit, timeoutCallback);
              controller.add(event);
            }, TTovoid()));
            t66.onError(dart.fn((error, stackTrace) => {
              if (error == null) dart.nullFailed(I[28], 1536, 27, "error");
              if (stackTrace == null) dart.nullFailed(I[28], 1536, 45, "stackTrace");
              timer.cancel();
              timer = zone.createTimer(timeLimit, timeoutCallback);
              controller[_addError](error, stackTrace);
            }, T$.ObjectAndStackTraceToNull()));
            t66.onDone(dart.fn(() => {
              timer.cancel();
              controller.close();
            }, T$.VoidTovoid()));
            return t66;
          })();
          controller.onCancel = dart.fn(() => {
            timer.cancel();
            return subscription.cancel();
          }, T$.VoidToFutureOfvoid());
          if (!dart.test(this.isBroadcast)) {
            t66$ = controller;
            (() => {
              t66$.onPause = dart.fn(() => {
                timer.cancel();
                subscription.pause();
              }, T$.VoidTovoid());
              t66$.onResume = dart.fn(() => {
                subscription.resume();
                timer = zone.createTimer(timeLimit, timeoutCallback);
              }, T$.VoidTovoid());
              return t66$;
            })();
          }
        }, T$.VoidTovoid());
        return controller.stream;
      }
    }
    (Stream.new = function() {
      ;
    }).prototype = Stream.prototype;
    (Stream._internal = function() {
      ;
    }).prototype = Stream.prototype;
    dart.addTypeTests(Stream);
    Stream.prototype[dart.isStream] = true;
    dart.addTypeCaches(Stream);
    dart.setMethodSignature(Stream, () => ({
      __proto__: dart.getMethods(Stream.__proto__),
      asBroadcastStream: dart.fnType(async.Stream$(T), [], {onCancel: dart.nullable(dart.fnType(dart.void, [async.StreamSubscription$(T)])), onListen: dart.nullable(dart.fnType(dart.void, [async.StreamSubscription$(T)]))}, {}),
      where: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
      map: dart.gFnType(S => [async.Stream$(S), [dart.fnType(S, [T])]], S => [dart.nullable(core.Object)]),
      asyncMap: dart.gFnType(E => [async.Stream$(E), [dart.fnType(async.FutureOr$(E), [T])]], E => [dart.nullable(core.Object)]),
      asyncExpand: dart.gFnType(E => [async.Stream$(E), [dart.fnType(dart.nullable(async.Stream$(E)), [T])]], E => [dart.nullable(core.Object)]),
      handleError: dart.fnType(async.Stream$(T), [core.Function], {test: dart.nullable(dart.fnType(core.bool, [dart.dynamic]))}, {}),
      expand: dart.gFnType(S => [async.Stream$(S), [dart.fnType(core.Iterable$(S), [T])]], S => [dart.nullable(core.Object)]),
      pipe: dart.fnType(async.Future, [dart.nullable(core.Object)]),
      transform: dart.gFnType(S => [async.Stream$(S), [dart.nullable(core.Object)]], S => [dart.nullable(core.Object)]),
      reduce: dart.fnType(async.Future$(T), [dart.nullable(core.Object)]),
      fold: dart.gFnType(S => [async.Future$(S), [S, dart.fnType(S, [S, T])]], S => [dart.nullable(core.Object)]),
      join: dart.fnType(async.Future$(core.String), [], [core.String]),
      contains: dart.fnType(async.Future$(core.bool), [dart.nullable(core.Object)]),
      forEach: dart.fnType(async.Future, [dart.fnType(dart.void, [T])]),
      every: dart.fnType(async.Future$(core.bool), [dart.fnType(core.bool, [T])]),
      any: dart.fnType(async.Future$(core.bool), [dart.fnType(core.bool, [T])]),
      cast: dart.gFnType(R => [async.Stream$(R), []], R => [dart.nullable(core.Object)]),
      toList: dart.fnType(async.Future$(core.List$(T)), []),
      toSet: dart.fnType(async.Future$(core.Set$(T)), []),
      drain: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)]),
      take: dart.fnType(async.Stream$(T), [core.int]),
      takeWhile: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
      skip: dart.fnType(async.Stream$(T), [core.int]),
      skipWhile: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
      distinct: dart.fnType(async.Stream$(T), [], [dart.nullable(dart.fnType(core.bool, [T, T]))]),
      firstWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: dart.nullable(core.Object)}, {}),
      lastWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: dart.nullable(core.Object)}, {}),
      singleWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: dart.nullable(core.Object)}, {}),
      elementAt: dart.fnType(async.Future$(T), [core.int]),
      timeout: dart.fnType(async.Stream$(T), [core.Duration], {onTimeout: dart.nullable(dart.fnType(dart.void, [async.EventSink$(T)]))}, {})
    }));
    dart.setGetterSignature(Stream, () => ({
      __proto__: dart.getGetters(Stream.__proto__),
      isBroadcast: core.bool,
      length: async.Future$(core.int),
      isEmpty: async.Future$(core.bool),
      first: async.Future$(T),
      last: async.Future$(T),
      single: async.Future$(T)
    }));
    dart.setLibraryUri(Stream, I[29]);
    return Stream;
  });
  async.Stream = async.Stream$();
  dart.addTypeTests(async.Stream, dart.isStream);
  const _is_CastStream_default = Symbol('_is_CastStream_default');
  _internal.CastStream$ = dart.generic((S, T) => {
    var CastStreamSubscriptionOfS$T = () => (CastStreamSubscriptionOfS$T = dart.constFn(_internal.CastStreamSubscription$(S, T)))();
    class CastStream extends async.Stream$(T) {
      get isBroadcast() {
        return this[_source$].isBroadcast;
      }
      listen(onData, opts) {
        let t27;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        t27 = new (CastStreamSubscriptionOfS$T()).new(this[_source$].listen(null, {onDone: onDone, cancelOnError: cancelOnError}));
        return (() => {
          t27.onData(onData);
          t27.onError(onError);
          return t27;
        })();
      }
      cast(R) {
        return new (_internal.CastStream$(S, R)).new(this[_source$]);
      }
    }
    (CastStream.new = function(_source) {
      if (_source == null) dart.nullFailed(I[27], 11, 19, "_source");
      this[_source$] = _source;
      CastStream.__proto__.new.call(this);
      ;
    }).prototype = CastStream.prototype;
    dart.addTypeTests(CastStream);
    CastStream.prototype[_is_CastStream_default] = true;
    dart.addTypeCaches(CastStream);
    dart.setMethodSignature(CastStream, () => ({
      __proto__: dart.getMethods(CastStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      cast: dart.gFnType(R => [async.Stream$(R), []], R => [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastStream, I[25]);
    dart.setFieldSignature(CastStream, () => ({
      __proto__: dart.getFields(CastStream.__proto__),
      [_source$]: dart.finalFieldType(async.Stream$(S))
    }));
    return CastStream;
  });
  _internal.CastStream = _internal.CastStream$();
  dart.addTypeTests(_internal.CastStream, _is_CastStream_default);
  var _zone = dart.privateName(_internal, "_zone");
  var _handleData = dart.privateName(_internal, "_handleData");
  var _handleError = dart.privateName(_internal, "_handleError");
  var _onData = dart.privateName(_internal, "_onData");
  const _is_CastStreamSubscription_default = Symbol('_is_CastStreamSubscription_default');
  _internal.CastStreamSubscription$ = dart.generic((S, T) => {
    class CastStreamSubscription extends core.Object {
      cancel() {
        return this[_source$].cancel();
      }
      onData(handleData) {
        this[_handleData] = handleData == null ? null : this[_zone].registerUnaryCallback(dart.dynamic, T, handleData);
      }
      onError(handleError) {
        this[_source$].onError(handleError);
        if (handleError == null) {
          this[_handleError] = null;
        } else if (T$.ObjectAndStackTraceTovoid().is(handleError)) {
          this[_handleError] = this[_zone].registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, handleError);
        } else if (T$.ObjectTovoid().is(handleError)) {
          this[_handleError] = this[_zone].registerUnaryCallback(dart.dynamic, core.Object, handleError);
        } else {
          dart.throw(new core.ArgumentError.new("handleError callback must take either an Object " + "(the error), or both an Object (the error) and a StackTrace."));
        }
      }
      onDone(handleDone) {
        this[_source$].onDone(handleDone);
      }
      [_onData](data) {
        S.as(data);
        if (this[_handleData] == null) return;
        let targetData = null;
        try {
          targetData = T.as(data);
        } catch (e) {
          let error = dart.getThrown(e);
          let stack = dart.stackTrace(e);
          if (core.Object.is(error)) {
            let handleError = this[_handleError];
            if (handleError == null) {
              this[_zone].handleUncaughtError(error, stack);
            } else if (T$.ObjectAndStackTraceTovoid().is(handleError)) {
              this[_zone].runBinaryGuarded(core.Object, core.StackTrace, handleError, error, stack);
            } else {
              this[_zone].runUnaryGuarded(core.Object, T$.ObjectTovoid().as(handleError), error);
            }
            return;
          } else
            throw e;
        }
        this[_zone].runUnaryGuarded(T, dart.nullCheck(this[_handleData]), targetData);
      }
      pause(resumeSignal = null) {
        this[_source$].pause(resumeSignal);
      }
      resume() {
        this[_source$].resume();
      }
      get isPaused() {
        return this[_source$].isPaused;
      }
      asFuture(E, futureValue = null) {
        return this[_source$].asFuture(E, futureValue);
      }
    }
    (CastStreamSubscription.new = function(_source) {
      if (_source == null) dart.nullFailed(I[27], 37, 31, "_source");
      this[_zone] = async.Zone.current;
      this[_handleData] = null;
      this[_handleError] = null;
      this[_source$] = _source;
      this[_source$].onData(dart.bind(this, _onData));
    }).prototype = CastStreamSubscription.prototype;
    CastStreamSubscription.prototype[dart.isStreamSubscription] = true;
    dart.addTypeTests(CastStreamSubscription);
    CastStreamSubscription.prototype[_is_CastStreamSubscription_default] = true;
    dart.addTypeCaches(CastStreamSubscription);
    CastStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T)];
    dart.setMethodSignature(CastStreamSubscription, () => ({
      __proto__: dart.getMethods(CastStreamSubscription.__proto__),
      cancel: dart.fnType(async.Future, []),
      onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [T]))]),
      onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
      onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
      [_onData]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      pause: dart.fnType(dart.void, [], [dart.nullable(async.Future)]),
      resume: dart.fnType(dart.void, []),
      asFuture: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(CastStreamSubscription, () => ({
      __proto__: dart.getGetters(CastStreamSubscription.__proto__),
      isPaused: core.bool
    }));
    dart.setLibraryUri(CastStreamSubscription, I[25]);
    dart.setFieldSignature(CastStreamSubscription, () => ({
      __proto__: dart.getFields(CastStreamSubscription.__proto__),
      [_source$]: dart.finalFieldType(async.StreamSubscription$(S)),
      [_zone]: dart.finalFieldType(async.Zone),
      [_handleData]: dart.fieldType(dart.nullable(dart.fnType(dart.void, [T]))),
      [_handleError]: dart.fieldType(dart.nullable(core.Function))
    }));
    return CastStreamSubscription;
  });
  _internal.CastStreamSubscription = _internal.CastStreamSubscription$();
  dart.addTypeTests(_internal.CastStreamSubscription, _is_CastStreamSubscription_default);
  const _is_StreamTransformerBase_default = Symbol('_is_StreamTransformerBase_default');
  async.StreamTransformerBase$ = dart.generic((S, T) => {
    class StreamTransformerBase extends core.Object {
      cast(RS, RT) {
        return async.StreamTransformer.castFrom(S, T, RS, RT, this);
      }
    }
    (StreamTransformerBase.new = function() {
      ;
    }).prototype = StreamTransformerBase.prototype;
    dart.addTypeTests(StreamTransformerBase);
    StreamTransformerBase.prototype[_is_StreamTransformerBase_default] = true;
    dart.addTypeCaches(StreamTransformerBase);
    StreamTransformerBase[dart.implements] = () => [async.StreamTransformer$(S, T)];
    dart.setMethodSignature(StreamTransformerBase, () => ({
      __proto__: dart.getMethods(StreamTransformerBase.__proto__),
      cast: dart.gFnType((RS, RT) => [async.StreamTransformer$(RS, RT), []], (RS, RT) => [dart.nullable(core.Object), dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(StreamTransformerBase, I[29]);
    return StreamTransformerBase;
  });
  async.StreamTransformerBase = async.StreamTransformerBase$();
  dart.addTypeTests(async.StreamTransformerBase, _is_StreamTransformerBase_default);
  const _is_CastStreamTransformer_default = Symbol('_is_CastStreamTransformer_default');
  _internal.CastStreamTransformer$ = dart.generic((SS, ST, TS, TT) => {
    var StreamOfTS = () => (StreamOfTS = dart.constFn(async.Stream$(TS)))();
    class CastStreamTransformer extends async.StreamTransformerBase$(TS, TT) {
      cast(RS, RT) {
        return new (_internal.CastStreamTransformer$(SS, ST, RS, RT)).new(this[_source$]);
      }
      bind(stream) {
        StreamOfTS().as(stream);
        if (stream == null) dart.nullFailed(I[27], 108, 30, "stream");
        return this[_source$].bind(stream.cast(SS)).cast(TT);
      }
    }
    (CastStreamTransformer.new = function(_source) {
      if (_source == null) dart.nullFailed(I[27], 104, 30, "_source");
      this[_source$] = _source;
      CastStreamTransformer.__proto__.new.call(this);
      ;
    }).prototype = CastStreamTransformer.prototype;
    dart.addTypeTests(CastStreamTransformer);
    CastStreamTransformer.prototype[_is_CastStreamTransformer_default] = true;
    dart.addTypeCaches(CastStreamTransformer);
    dart.setMethodSignature(CastStreamTransformer, () => ({
      __proto__: dart.getMethods(CastStreamTransformer.__proto__),
      cast: dart.gFnType((RS, RT) => [async.StreamTransformer$(RS, RT), []], (RS, RT) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      bind: dart.fnType(async.Stream$(TT), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastStreamTransformer, I[25]);
    dart.setFieldSignature(CastStreamTransformer, () => ({
      __proto__: dart.getFields(CastStreamTransformer.__proto__),
      [_source$]: dart.finalFieldType(async.StreamTransformer$(SS, ST))
    }));
    return CastStreamTransformer;
  });
  _internal.CastStreamTransformer = _internal.CastStreamTransformer$();
  dart.addTypeTests(_internal.CastStreamTransformer, _is_CastStreamTransformer_default);
  const _is_Converter_default = Symbol('_is_Converter_default');
  convert.Converter$ = dart.generic((S, T) => {
    var StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
    var SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    class Converter extends async.StreamTransformerBase$(S, T) {
      static castFrom(SS, ST, TS, TT, source) {
        if (source == null) dart.nullFailed(I[30], 21, 71, "source");
        return new (_internal.CastConverter$(SS, ST, TS, TT)).new(source);
      }
      fuse(TT, other) {
        convert.Converter$(T, TT).as(other);
        if (other == null) dart.nullFailed(I[30], 31, 46, "other");
        return new (convert._FusedConverter$(S, T, TT)).new(this, other);
      }
      startChunkedConversion(sink) {
        SinkOfT().as(sink);
        if (sink == null) dart.nullFailed(I[30], 39, 42, "sink");
        dart.throw(new core.UnsupportedError.new("This converter does not support chunked conversions: " + dart.str(this)));
      }
      bind(stream) {
        StreamOfS().as(stream);
        if (stream == null) dart.nullFailed(I[30], 44, 28, "stream");
        return StreamOfT().eventTransformed(stream, dart.fn(sink => {
          if (sink == null) dart.nullFailed(I[30], 46, 28, "sink");
          return new convert._ConverterStreamEventSink.new(this, sink);
        }, T$.EventSinkTo_ConverterStreamEventSink()));
      }
      cast(RS, RT) {
        return convert.Converter.castFrom(S, T, RS, RT, this);
      }
    }
    (Converter.new = function() {
      Converter.__proto__.new.call(this);
      ;
    }).prototype = Converter.prototype;
    dart.addTypeTests(Converter);
    Converter.prototype[_is_Converter_default] = true;
    dart.addTypeCaches(Converter);
    dart.setMethodSignature(Converter, () => ({
      __proto__: dart.getMethods(Converter.__proto__),
      fuse: dart.gFnType(TT => [convert.Converter$(S, TT), [dart.nullable(core.Object)]], TT => [dart.nullable(core.Object)]),
      startChunkedConversion: dart.fnType(core.Sink$(S), [dart.nullable(core.Object)]),
      bind: dart.fnType(async.Stream$(T), [dart.nullable(core.Object)]),
      cast: dart.gFnType((RS, RT) => [convert.Converter$(RS, RT), []], (RS, RT) => [dart.nullable(core.Object), dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(Converter, I[31]);
    return Converter;
  });
  convert.Converter = convert.Converter$();
  dart.addTypeTests(convert.Converter, _is_Converter_default);
  const _is_CastConverter_default = Symbol('_is_CastConverter_default');
  _internal.CastConverter$ = dart.generic((SS, ST, TS, TT) => {
    var StreamOfTS = () => (StreamOfTS = dart.constFn(async.Stream$(TS)))();
    class CastConverter extends convert.Converter$(TS, TT) {
      convert(input) {
        TS.as(input);
        return TT.as(this[_source$].convert(SS.as(input)));
      }
      bind(stream) {
        StreamOfTS().as(stream);
        if (stream == null) dart.nullFailed(I[27], 120, 30, "stream");
        return this[_source$].bind(stream.cast(SS)).cast(TT);
      }
      cast(RS, RT) {
        return new (_internal.CastConverter$(SS, ST, RS, RT)).new(this[_source$]);
      }
    }
    (CastConverter.new = function(_source) {
      if (_source == null) dart.nullFailed(I[27], 114, 22, "_source");
      this[_source$] = _source;
      CastConverter.__proto__.new.call(this);
      ;
    }).prototype = CastConverter.prototype;
    dart.addTypeTests(CastConverter);
    CastConverter.prototype[_is_CastConverter_default] = true;
    dart.addTypeCaches(CastConverter);
    dart.setMethodSignature(CastConverter, () => ({
      __proto__: dart.getMethods(CastConverter.__proto__),
      convert: dart.fnType(TT, [dart.nullable(core.Object)]),
      cast: dart.gFnType((RS, RT) => [convert.Converter$(RS, RT), []], (RS, RT) => [dart.nullable(core.Object), dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastConverter, I[25]);
    dart.setFieldSignature(CastConverter, () => ({
      __proto__: dart.getFields(CastConverter.__proto__),
      [_source$]: dart.finalFieldType(convert.Converter$(SS, ST))
    }));
    return CastConverter;
  });
  _internal.CastConverter = _internal.CastConverter$();
  dart.addTypeTests(_internal.CastConverter, _is_CastConverter_default);
  _internal.BytesBuilder = class BytesBuilder extends core.Object {
    static new(opts) {
      let copy = opts && 'copy' in opts ? opts.copy : true;
      if (copy == null) dart.nullFailed(I[32], 30, 30, "copy");
      return dart.test(copy) ? new _internal._CopyingBytesBuilder.new() : new _internal._BytesBuilder.new();
    }
  };
  (_internal.BytesBuilder[dart.mixinNew] = function() {
  }).prototype = _internal.BytesBuilder.prototype;
  dart.addTypeTests(_internal.BytesBuilder);
  dart.addTypeCaches(_internal.BytesBuilder);
  dart.setLibraryUri(_internal.BytesBuilder, I[25]);
  var _length$ = dart.privateName(_internal, "_length");
  var _buffer = dart.privateName(_internal, "_buffer");
  var _grow = dart.privateName(_internal, "_grow");
  var _clear = dart.privateName(_internal, "_clear");
  _internal._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
    add(bytes) {
      if (bytes == null) dart.nullFailed(I[32], 89, 22, "bytes");
      let byteCount = bytes[$length];
      if (byteCount === 0) return;
      let required = dart.notNull(this[_length$]) + dart.notNull(byteCount);
      if (dart.notNull(this[_buffer][$length]) < required) {
        this[_grow](required);
      }
      if (!(dart.notNull(this[_buffer][$length]) >= required)) dart.assertFailed(null, I[32], 96, 12, "_buffer.length >= required");
      if (typed_data.Uint8List.is(bytes)) {
        this[_buffer][$setRange](this[_length$], required, bytes);
      } else {
        for (let i = 0; i < dart.notNull(byteCount); i = i + 1) {
          this[_buffer][$_set](dart.notNull(this[_length$]) + i, bytes[$_get](i));
        }
      }
      this[_length$] = required;
    }
    addByte(byte) {
      if (byte == null) dart.nullFailed(I[32], 107, 20, "byte");
      if (this[_buffer][$length] == this[_length$]) {
        this[_grow](this[_length$]);
      }
      if (!(dart.notNull(this[_buffer][$length]) > dart.notNull(this[_length$]))) dart.assertFailed(null, I[32], 113, 12, "_buffer.length > _length");
      this[_buffer][$_set](this[_length$], byte);
      this[_length$] = dart.notNull(this[_length$]) + 1;
    }
    [_grow](required) {
      if (required == null) dart.nullFailed(I[32], 118, 18, "required");
      let newSize = dart.notNull(required) * 2;
      if (dart.notNull(newSize) < 1024) {
        newSize = 1024;
      } else {
        newSize = _internal._CopyingBytesBuilder._pow2roundup(newSize);
      }
      let newBuffer = _native_typed_data.NativeUint8List.new(newSize);
      newBuffer[$setRange](0, this[_buffer][$length], this[_buffer]);
      this[_buffer] = newBuffer;
    }
    takeBytes() {
      if (this[_length$] === 0) return _internal._CopyingBytesBuilder._emptyList;
      let buffer = typed_data.Uint8List.view(this[_buffer][$buffer], this[_buffer][$offsetInBytes], this[_length$]);
      this[_clear]();
      return buffer;
    }
    toBytes() {
      if (this[_length$] === 0) return _internal._CopyingBytesBuilder._emptyList;
      return _native_typed_data.NativeUint8List.fromList(typed_data.Uint8List.view(this[_buffer][$buffer], this[_buffer][$offsetInBytes], this[_length$]));
    }
    get length() {
      return this[_length$];
    }
    get isEmpty() {
      return this[_length$] === 0;
    }
    get isNotEmpty() {
      return this[_length$] !== 0;
    }
    clear() {
      this[_clear]();
    }
    [_clear]() {
      this[_length$] = 0;
      this[_buffer] = _internal._CopyingBytesBuilder._emptyList;
    }
    static _pow2roundup(x) {
      if (x == null) dart.nullFailed(I[32], 161, 31, "x");
      if (!(dart.notNull(x) > 0)) dart.assertFailed(null, I[32], 162, 12, "x > 0");
      x = dart.notNull(x) - 1;
      x = (dart.notNull(x) | x[$rightShift](1)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](2)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](4)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](8)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](16)) >>> 0;
      return dart.notNull(x) + 1;
    }
  };
  (_internal._CopyingBytesBuilder.new = function() {
    this[_length$] = 0;
    this[_buffer] = _internal._CopyingBytesBuilder._emptyList;
    ;
  }).prototype = _internal._CopyingBytesBuilder.prototype;
  dart.addTypeTests(_internal._CopyingBytesBuilder);
  dart.addTypeCaches(_internal._CopyingBytesBuilder);
  _internal._CopyingBytesBuilder[dart.implements] = () => [_internal.BytesBuilder];
  dart.setMethodSignature(_internal._CopyingBytesBuilder, () => ({
    __proto__: dart.getMethods(_internal._CopyingBytesBuilder.__proto__),
    add: dart.fnType(dart.void, [core.List$(core.int)]),
    addByte: dart.fnType(dart.void, [core.int]),
    [_grow]: dart.fnType(dart.void, [core.int]),
    takeBytes: dart.fnType(typed_data.Uint8List, []),
    toBytes: dart.fnType(typed_data.Uint8List, []),
    clear: dart.fnType(dart.void, []),
    [_clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_internal._CopyingBytesBuilder, () => ({
    __proto__: dart.getGetters(_internal._CopyingBytesBuilder.__proto__),
    length: core.int,
    isEmpty: core.bool,
    isNotEmpty: core.bool
  }));
  dart.setLibraryUri(_internal._CopyingBytesBuilder, I[25]);
  dart.setFieldSignature(_internal._CopyingBytesBuilder, () => ({
    __proto__: dart.getFields(_internal._CopyingBytesBuilder.__proto__),
    [_length$]: dart.fieldType(core.int),
    [_buffer]: dart.fieldType(typed_data.Uint8List)
  }));
  dart.defineLazy(_internal._CopyingBytesBuilder, {
    /*_internal._CopyingBytesBuilder._initSize*/get _initSize() {
      return 1024;
    },
    /*_internal._CopyingBytesBuilder._emptyList*/get _emptyList() {
      return _native_typed_data.NativeUint8List.new(0);
    }
  }, false);
  var _chunks = dart.privateName(_internal, "_chunks");
  _internal._BytesBuilder = class _BytesBuilder extends core.Object {
    add(bytes) {
      if (bytes == null) dart.nullFailed(I[32], 181, 22, "bytes");
      let typedBytes = null;
      if (typed_data.Uint8List.is(bytes)) {
        typedBytes = bytes;
      } else {
        typedBytes = _native_typed_data.NativeUint8List.fromList(bytes);
      }
      this[_chunks][$add](typedBytes);
      this[_length$] = dart.notNull(this[_length$]) + dart.notNull(typedBytes[$length]);
    }
    addByte(byte) {
      let t67;
      if (byte == null) dart.nullFailed(I[32], 192, 20, "byte");
      this[_chunks][$add]((t67 = _native_typed_data.NativeUint8List.new(1), (() => {
        t67[$_set](0, byte);
        return t67;
      })()));
      this[_length$] = dart.notNull(this[_length$]) + 1;
    }
    takeBytes() {
      if (this[_length$] === 0) return _internal._CopyingBytesBuilder._emptyList;
      if (this[_chunks][$length] === 1) {
        let buffer = this[_chunks][$_get](0);
        this[_clear]();
        return buffer;
      }
      let buffer = _native_typed_data.NativeUint8List.new(this[_length$]);
      let offset = 0;
      for (let chunk of this[_chunks]) {
        buffer[$setRange](offset, offset + dart.notNull(chunk[$length]), chunk);
        offset = offset + dart.notNull(chunk[$length]);
      }
      this[_clear]();
      return buffer;
    }
    toBytes() {
      if (this[_length$] === 0) return _internal._CopyingBytesBuilder._emptyList;
      let buffer = _native_typed_data.NativeUint8List.new(this[_length$]);
      let offset = 0;
      for (let chunk of this[_chunks]) {
        buffer[$setRange](offset, offset + dart.notNull(chunk[$length]), chunk);
        offset = offset + dart.notNull(chunk[$length]);
      }
      return buffer;
    }
    get length() {
      return this[_length$];
    }
    get isEmpty() {
      return this[_length$] === 0;
    }
    get isNotEmpty() {
      return this[_length$] !== 0;
    }
    clear() {
      this[_clear]();
    }
    [_clear]() {
      this[_length$] = 0;
      this[_chunks][$clear]();
    }
  };
  (_internal._BytesBuilder.new = function() {
    this[_length$] = 0;
    this[_chunks] = T$.JSArrayOfUint8List().of([]);
    ;
  }).prototype = _internal._BytesBuilder.prototype;
  dart.addTypeTests(_internal._BytesBuilder);
  dart.addTypeCaches(_internal._BytesBuilder);
  _internal._BytesBuilder[dart.implements] = () => [_internal.BytesBuilder];
  dart.setMethodSignature(_internal._BytesBuilder, () => ({
    __proto__: dart.getMethods(_internal._BytesBuilder.__proto__),
    add: dart.fnType(dart.void, [core.List$(core.int)]),
    addByte: dart.fnType(dart.void, [core.int]),
    takeBytes: dart.fnType(typed_data.Uint8List, []),
    toBytes: dart.fnType(typed_data.Uint8List, []),
    clear: dart.fnType(dart.void, []),
    [_clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_internal._BytesBuilder, () => ({
    __proto__: dart.getGetters(_internal._BytesBuilder.__proto__),
    length: core.int,
    isEmpty: core.bool,
    isNotEmpty: core.bool
  }));
  dart.setLibraryUri(_internal._BytesBuilder, I[25]);
  dart.setFieldSignature(_internal._BytesBuilder, () => ({
    __proto__: dart.getFields(_internal._BytesBuilder.__proto__),
    [_length$]: dart.fieldType(core.int),
    [_chunks]: dart.finalFieldType(core.List$(typed_data.Uint8List))
  }));
  core.Iterable$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EfficientLengthIterableOfE = () => (EfficientLengthIterableOfE = dart.constFn(_internal.EfficientLengthIterable$(E)))();
    var FollowedByIterableOfE = () => (FollowedByIterableOfE = dart.constFn(_internal.FollowedByIterable$(E)))();
    var WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
    var TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
    var TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
    var SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
    var SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var ETodynamic = () => (ETodynamic = dart.constFn(dart.fnType(dart.dynamic, [E])))();
    class Iterable extends core.Object {
      static generate(count, generator = null) {
        if (count == null) dart.nullFailed(I[34], 102, 33, "count");
        if (dart.notNull(count) <= 0) return new (_internal.EmptyIterable$(E)).new();
        return new (core._GeneratorIterable$(E)).new(count, generator);
      }
      static castFrom(S, T, source) {
        if (source == null) dart.nullFailed(I[34], 119, 49, "source");
        return _internal.CastIterable$(S, T).new(source);
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
      cast(R) {
        return core.Iterable.castFrom(E, R, this);
      }
      followedBy(other) {
        IterableOfE().as(other);
        if (other == null) dart.nullFailed(I[34], 165, 38, "other");
        let self = this;
        if (EfficientLengthIterableOfE().is(self)) {
          return FollowedByIterableOfE().firstEfficient(self, other);
        }
        return new (FollowedByIterableOfE()).new(this, other);
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[34], 185, 24, "f");
        return _internal.MappedIterable$(E, T).new(this, f);
      }
      where(test) {
        if (test == null) dart.nullFailed(I[34], 199, 26, "test");
        return new (WhereIterableOfE()).new(this, test);
      }
      whereType(T) {
        return new (_internal.WhereTypeIterable$(T)).new(this);
      }
      expand(T, f) {
        if (f == null) dart.nullFailed(I[34], 230, 37, "f");
        return new (_internal.ExpandIterable$(E, T)).new(this, f);
      }
      contains(element) {
        for (let e of this) {
          if (dart.equals(e, element)) return true;
        }
        return false;
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[34], 256, 21, "f");
        for (let element of this)
          f(element);
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[34], 280, 14, "combine");
        let iterator = this[$iterator];
        if (!dart.test(iterator.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let value = iterator.current;
        while (dart.test(iterator.moveNext())) {
          value = combine(value, iterator.current);
        }
        return value;
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[34], 309, 31, "combine");
        let value = initialValue;
        for (let element of this)
          value = combine(value, element);
        return value;
      }
      every(test) {
        if (test == null) dart.nullFailed(I[34], 319, 19, "test");
        for (let element of this) {
          if (!dart.test(test(element))) return false;
        }
        return true;
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[34], 332, 23, "separator");
        let iterator = this[$iterator];
        if (!dart.test(iterator.moveNext())) return "";
        let buffer = new core.StringBuffer.new();
        if (separator == null || separator === "") {
          do {
            buffer.write(dart.toString(iterator.current));
          } while (dart.test(iterator.moveNext()));
        } else {
          buffer.write(dart.toString(iterator.current));
          while (dart.test(iterator.moveNext())) {
            buffer.write(separator);
            buffer.write(dart.toString(iterator.current));
          }
        }
        return buffer.toString();
      }
      any(test) {
        if (test == null) dart.nullFailed(I[34], 354, 17, "test");
        for (let element of this) {
          if (dart.test(test(element))) return true;
        }
        return false;
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[34], 365, 24, "growable");
        return ListOfE().of(this, {growable: growable});
      }
      toSet() {
        return LinkedHashSetOfE().of(this);
      }
      get length() {
        if (!!_internal.EfficientLengthIterable.is(this)) dart.assertFailed(null, I[34], 384, 12, "this is! EfficientLengthIterable");
        let count = 0;
        let it = this[$iterator];
        while (dart.test(it.moveNext())) {
          count = count + 1;
        }
        return count;
      }
      get isEmpty() {
        return !dart.test(this[$iterator].moveNext());
      }
      get isNotEmpty() {
        return !dart.test(this[$isEmpty]);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[34], 412, 24, "count");
        return TakeIterableOfE().new(this, count);
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[34], 424, 30, "test");
        return new (TakeWhileIterableOfE()).new(this, test);
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[34], 442, 24, "count");
        return SkipIterableOfE().new(this, count);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[34], 456, 30, "test");
        return new (SkipWhileIterableOfE()).new(this, test);
      }
      get first() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        return it.current;
      }
      get last() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let result = null;
        do {
          result = it.current;
        } while (dart.test(it.moveNext()));
        return result;
      }
      get single() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
        let result = it.current;
        if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
        return result;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[34], 511, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        for (let element of this) {
          if (dart.test(test(element))) return element;
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[34], 531, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t70) {
          result$35isSet = true;
          return result = t70;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[34], 552, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t75) {
          result$35isSet = true;
          return result = t75;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            if (foundMatching) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[34], 578, 19, "index");
        core.RangeError.checkNotNegative(index, "index");
        let elementIndex = 0;
        for (let element of this) {
          if (index === elementIndex) return element;
          elementIndex = elementIndex + 1;
        }
        dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
      }
      toString() {
        return collection.IterableBase.iterableToShortString(this, "(", ")");
      }
    }
    (Iterable.new = function() {
      ;
    }).prototype = Iterable.prototype;
    dart.addTypeTests(Iterable);
    Iterable.prototype[dart.isIterable] = true;
    dart.addTypeCaches(Iterable);
    dart.setMethodSignature(Iterable, () => ({
      __proto__: dart.getMethods(Iterable.__proto__),
      cast: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)]),
      followedBy: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      [$followedBy]: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      whereType: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      [$whereType]: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      reduce: dart.fnType(E, [dart.nullable(core.Object)]),
      [$reduce]: dart.fnType(E, [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      join: dart.fnType(core.String, [], [core.String]),
      [$join]: dart.fnType(core.String, [], [core.String]),
      any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      toSet: dart.fnType(core.Set$(E), []),
      [$toSet]: dart.fnType(core.Set$(E), []),
      take: dart.fnType(core.Iterable$(E), [core.int]),
      [$take]: dart.fnType(core.Iterable$(E), [core.int]),
      takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      skip: dart.fnType(core.Iterable$(E), [core.int]),
      [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
      skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      elementAt: dart.fnType(E, [core.int]),
      [$elementAt]: dart.fnType(E, [core.int])
    }));
    dart.setGetterSignature(Iterable, () => ({
      __proto__: dart.getGetters(Iterable.__proto__),
      length: core.int,
      [$length]: core.int,
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      first: E,
      [$first]: E,
      last: E,
      [$last]: E,
      single: E,
      [$single]: E
    }));
    dart.setLibraryUri(Iterable, I[8]);
    dart.defineExtensionMethods(Iterable, [
      'cast',
      'followedBy',
      'map',
      'where',
      'whereType',
      'expand',
      'contains',
      'forEach',
      'reduce',
      'fold',
      'every',
      'join',
      'any',
      'toList',
      'toSet',
      'take',
      'takeWhile',
      'skip',
      'skipWhile',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'elementAt',
      'toString'
    ]);
    dart.defineExtensionAccessors(Iterable, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last',
      'single'
    ]);
    return Iterable;
  });
  core.Iterable = core.Iterable$();
  dart.addTypeTests(core.Iterable, dart.isIterable);
  const _is__CastIterableBase_default = Symbol('_is__CastIterableBase_default');
  _internal._CastIterableBase$ = dart.generic((S, T) => {
    var CastIteratorOfS$T = () => (CastIteratorOfS$T = dart.constFn(_internal.CastIterator$(S, T)))();
    var CastIterableOfS$T = () => (CastIterableOfS$T = dart.constFn(_internal.CastIterable$(S, T)))();
    var STobool = () => (STobool = dart.constFn(dart.fnType(core.bool, [S])))();
    var VoidToS = () => (VoidToS = dart.constFn(dart.fnType(S, [])))();
    var VoidToT = () => (VoidToT = dart.constFn(dart.fnType(T, [])))();
    var VoidToNT = () => (VoidToNT = dart.constFn(dart.nullable(VoidToT())))();
    class _CastIterableBase extends core.Iterable$(T) {
      get iterator() {
        return new (CastIteratorOfS$T()).new(this[_source$][$iterator]);
      }
      get length() {
        return this[_source$][$length];
      }
      get isEmpty() {
        return this[_source$][$isEmpty];
      }
      get isNotEmpty() {
        return this[_source$][$isNotEmpty];
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[33], 39, 24, "count");
        return CastIterableOfS$T().new(this[_source$][$skip](count));
      }
      take(count) {
        if (count == null) dart.nullFailed(I[33], 40, 24, "count");
        return CastIterableOfS$T().new(this[_source$][$take](count));
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[33], 42, 19, "index");
        return T.as(this[_source$][$elementAt](index));
      }
      get first() {
        return T.as(this[_source$][$first]);
      }
      get last() {
        return T.as(this[_source$][$last]);
      }
      get single() {
        return T.as(this[_source$][$single]);
      }
      contains(other) {
        return this[_source$][$contains](other);
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[33], 51, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNT().as(orElse);
        return T.as(this[_source$][$lastWhere](dart.fn(element => test(T.as(element)), STobool()), {orElse: orElse == null ? null : dart.fn(() => S.as(orElse()), VoidToS())}));
      }
      toString() {
        return dart.toString(this[_source$]);
      }
    }
    (_CastIterableBase.new = function() {
      _CastIterableBase.__proto__.new.call(this);
      ;
    }).prototype = _CastIterableBase.prototype;
    dart.addTypeTests(_CastIterableBase);
    _CastIterableBase.prototype[_is__CastIterableBase_default] = true;
    dart.addTypeCaches(_CastIterableBase);
    dart.setGetterSignature(_CastIterableBase, () => ({
      __proto__: dart.getGetters(_CastIterableBase.__proto__),
      iterator: core.Iterator$(T),
      [$iterator]: core.Iterator$(T)
    }));
    dart.setLibraryUri(_CastIterableBase, I[25]);
    dart.defineExtensionMethods(_CastIterableBase, [
      'skip',
      'take',
      'elementAt',
      'contains',
      'lastWhere',
      'toString'
    ]);
    dart.defineExtensionAccessors(_CastIterableBase, [
      'iterator',
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last',
      'single'
    ]);
    return _CastIterableBase;
  });
  _internal._CastIterableBase = _internal._CastIterableBase$();
  dart.addTypeTests(_internal._CastIterableBase, _is__CastIterableBase_default);
  const _is_CastIterator_default = Symbol('_is_CastIterator_default');
  _internal.CastIterator$ = dart.generic((S, T) => {
    class CastIterator extends core.Object {
      moveNext() {
        return this[_source$].moveNext();
      }
      get current() {
        return T.as(this[_source$].current);
      }
    }
    (CastIterator.new = function(_source) {
      if (_source == null) dart.nullFailed(I[33], 60, 21, "_source");
      this[_source$] = _source;
      ;
    }).prototype = CastIterator.prototype;
    dart.addTypeTests(CastIterator);
    CastIterator.prototype[_is_CastIterator_default] = true;
    dart.addTypeCaches(CastIterator);
    CastIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(CastIterator, () => ({
      __proto__: dart.getMethods(CastIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(CastIterator, () => ({
      __proto__: dart.getGetters(CastIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(CastIterator, I[25]);
    dart.setFieldSignature(CastIterator, () => ({
      __proto__: dart.getFields(CastIterator.__proto__),
      [_source$]: dart.fieldType(core.Iterator$(S))
    }));
    return CastIterator;
  });
  _internal.CastIterator = _internal.CastIterator$();
  dart.addTypeTests(_internal.CastIterator, _is_CastIterator_default);
  var _source$0 = dart.privateName(_internal, "CastIterable._source");
  const _is_CastIterable_default = Symbol('_is_CastIterable_default');
  _internal.CastIterable$ = dart.generic((S, T) => {
    class CastIterable extends _internal._CastIterableBase$(S, T) {
      get [_source$]() {
        return this[_source$0];
      }
      set [_source$](value) {
        super[_source$] = value;
      }
      static new(source) {
        if (source == null) dart.nullFailed(I[33], 70, 36, "source");
        if (_internal.EfficientLengthIterable$(S).is(source)) {
          return new (_internal._EfficientLengthCastIterable$(S, T)).new(source);
        }
        return new (_internal.CastIterable$(S, T)).__(source);
      }
      cast(R) {
        return _internal.CastIterable$(S, R).new(this[_source$]);
      }
    }
    (CastIterable.__ = function(_source) {
      if (_source == null) dart.nullFailed(I[33], 68, 23, "_source");
      this[_source$0] = _source;
      CastIterable.__proto__.new.call(this);
      ;
    }).prototype = CastIterable.prototype;
    dart.addTypeTests(CastIterable);
    CastIterable.prototype[_is_CastIterable_default] = true;
    dart.addTypeCaches(CastIterable);
    dart.setMethodSignature(CastIterable, () => ({
      __proto__: dart.getMethods(CastIterable.__proto__),
      cast: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastIterable, I[25]);
    dart.setFieldSignature(CastIterable, () => ({
      __proto__: dart.getFields(CastIterable.__proto__),
      [_source$]: dart.finalFieldType(core.Iterable$(S))
    }));
    dart.defineExtensionMethods(CastIterable, ['cast']);
    return CastIterable;
  });
  _internal.CastIterable = _internal.CastIterable$();
  dart.addTypeTests(_internal.CastIterable, _is_CastIterable_default);
  const _is__EfficientLengthCastIterable_default = Symbol('_is__EfficientLengthCastIterable_default');
  _internal._EfficientLengthCastIterable$ = dart.generic((S, T) => {
    class _EfficientLengthCastIterable extends _internal.CastIterable$(S, T) {}
    (_EfficientLengthCastIterable.new = function(source) {
      if (source == null) dart.nullFailed(I[33], 82, 59, "source");
      _EfficientLengthCastIterable.__proto__.__.call(this, source);
      ;
    }).prototype = _EfficientLengthCastIterable.prototype;
    dart.addTypeTests(_EfficientLengthCastIterable);
    _EfficientLengthCastIterable.prototype[_is__EfficientLengthCastIterable_default] = true;
    dart.addTypeCaches(_EfficientLengthCastIterable);
    _EfficientLengthCastIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(T)];
    dart.setLibraryUri(_EfficientLengthCastIterable, I[25]);
    return _EfficientLengthCastIterable;
  });
  _internal._EfficientLengthCastIterable = _internal._EfficientLengthCastIterable$();
  dart.addTypeTests(_internal._EfficientLengthCastIterable, _is__EfficientLengthCastIterable_default);
  const _is__CastListBase_default = Symbol('_is__CastListBase_default');
  _internal._CastListBase$ = dart.generic((S, T) => {
    var CastIterableOfT$S = () => (CastIterableOfT$S = dart.constFn(_internal.CastIterable$(T, S)))();
    var SAndSToint = () => (SAndSToint = dart.constFn(dart.fnType(core.int, [S, S])))();
    var STobool = () => (STobool = dart.constFn(dart.fnType(core.bool, [S])))();
    var CastIterableOfS$T = () => (CastIterableOfS$T = dart.constFn(_internal.CastIterable$(S, T)))();
    var IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
    var TN = () => (TN = dart.constFn(dart.nullable(T)))();
    const _CastIterableBase_ListMixin$36 = class _CastIterableBase_ListMixin extends _internal._CastIterableBase$(S, T) {};
    (_CastIterableBase_ListMixin$36.new = function() {
      _CastIterableBase_ListMixin$36.__proto__.new.call(this);
    }).prototype = _CastIterableBase_ListMixin$36.prototype;
    dart.applyMixin(_CastIterableBase_ListMixin$36, collection.ListMixin$(T));
    class _CastListBase extends _CastIterableBase_ListMixin$36 {
      _get(index) {
        if (index == null) dart.nullFailed(I[33], 99, 21, "index");
        return T.as(this[_source$][$_get](index));
      }
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[33], 101, 25, "index");
        T.as(value);
        this[_source$][$_set](index, S.as(value));
        return value$;
      }
      set length(length) {
        if (length == null) dart.nullFailed(I[33], 105, 23, "length");
        this[_source$][$length] = length;
      }
      get length() {
        return super.length;
      }
      add(value) {
        T.as(value);
        this[_source$][$add](S.as(value));
      }
      addAll(values) {
        IterableOfT().as(values);
        if (values == null) dart.nullFailed(I[33], 113, 27, "values");
        this[_source$][$addAll](CastIterableOfT$S().new(values));
      }
      sort(compare = null) {
        this[_source$][$sort](compare == null ? null : dart.fn((v1, v2) => compare(T.as(v1), T.as(v2)), SAndSToint()));
      }
      shuffle(random = null) {
        this[_source$][$shuffle](random);
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[33], 126, 19, "index");
        T.as(element);
        this[_source$][$insert](index, S.as(element));
      }
      insertAll(index, elements) {
        if (index == null) dart.nullFailed(I[33], 130, 22, "index");
        IterableOfT().as(elements);
        if (elements == null) dart.nullFailed(I[33], 130, 41, "elements");
        this[_source$][$insertAll](index, CastIterableOfT$S().new(elements));
      }
      setAll(index, elements) {
        if (index == null) dart.nullFailed(I[33], 134, 19, "index");
        IterableOfT().as(elements);
        if (elements == null) dart.nullFailed(I[33], 134, 38, "elements");
        this[_source$][$setAll](index, CastIterableOfT$S().new(elements));
      }
      remove(value) {
        return this[_source$][$remove](value);
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[33], 140, 18, "index");
        return T.as(this[_source$][$removeAt](index));
      }
      removeLast() {
        return T.as(this[_source$][$removeLast]());
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[33], 144, 25, "test");
        this[_source$][$removeWhere](dart.fn(element => test(T.as(element)), STobool()));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[33], 148, 25, "test");
        this[_source$][$retainWhere](dart.fn(element => test(T.as(element)), STobool()));
      }
      getRange(start, end) {
        if (start == null) dart.nullFailed(I[33], 152, 28, "start");
        if (end == null) dart.nullFailed(I[33], 152, 39, "end");
        return CastIterableOfS$T().new(this[_source$][$getRange](start, end));
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[33], 155, 21, "start");
        if (end == null) dart.nullFailed(I[33], 155, 32, "end");
        IterableOfT().as(iterable);
        if (iterable == null) dart.nullFailed(I[33], 155, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[33], 155, 64, "skipCount");
        this[_source$][$setRange](start, end, CastIterableOfT$S().new(iterable), skipCount);
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[33], 159, 24, "start");
        if (end == null) dart.nullFailed(I[33], 159, 35, "end");
        this[_source$][$removeRange](start, end);
      }
      fillRange(start, end, fillValue = null) {
        if (start == null) dart.nullFailed(I[33], 163, 22, "start");
        if (end == null) dart.nullFailed(I[33], 163, 33, "end");
        TN().as(fillValue);
        this[_source$][$fillRange](start, end, S.as(fillValue));
      }
      replaceRange(start, end, replacement) {
        if (start == null) dart.nullFailed(I[33], 167, 25, "start");
        if (end == null) dart.nullFailed(I[33], 167, 36, "end");
        IterableOfT().as(replacement);
        if (replacement == null) dart.nullFailed(I[33], 167, 53, "replacement");
        this[_source$][$replaceRange](start, end, CastIterableOfT$S().new(replacement));
      }
    }
    (_CastListBase.new = function() {
      _CastListBase.__proto__.new.call(this);
      ;
    }).prototype = _CastListBase.prototype;
    dart.addTypeTests(_CastListBase);
    _CastListBase.prototype[_is__CastListBase_default] = true;
    dart.addTypeCaches(_CastListBase);
    dart.setMethodSignature(_CastListBase, () => ({
      __proto__: dart.getMethods(_CastListBase.__proto__),
      _get: dart.fnType(T, [core.int]),
      [$_get]: dart.fnType(T, [core.int]),
      _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
    }));
    dart.setSetterSignature(_CastListBase, () => ({
      __proto__: dart.getSetters(_CastListBase.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(_CastListBase, I[25]);
    dart.defineExtensionMethods(_CastListBase, [
      '_get',
      '_set',
      'add',
      'addAll',
      'sort',
      'shuffle',
      'insert',
      'insertAll',
      'setAll',
      'remove',
      'removeAt',
      'removeLast',
      'removeWhere',
      'retainWhere',
      'getRange',
      'setRange',
      'removeRange',
      'fillRange',
      'replaceRange'
    ]);
    dart.defineExtensionAccessors(_CastListBase, ['length']);
    return _CastListBase;
  });
  _internal._CastListBase = _internal._CastListBase$();
  dart.addTypeTests(_internal._CastListBase, _is__CastListBase_default);
  var _source$1 = dart.privateName(_internal, "CastList._source");
  const _is_CastList_default = Symbol('_is_CastList_default');
  _internal.CastList$ = dart.generic((S, T) => {
    class CastList extends _internal._CastListBase$(S, T) {
      get [_source$]() {
        return this[_source$1];
      }
      set [_source$](value) {
        super[_source$] = value;
      }
      cast(R) {
        return new (_internal.CastList$(S, R)).new(this[_source$]);
      }
    }
    (CastList.new = function(_source) {
      if (_source == null) dart.nullFailed(I[33], 174, 17, "_source");
      this[_source$1] = _source;
      CastList.__proto__.new.call(this);
      ;
    }).prototype = CastList.prototype;
    dart.addTypeTests(CastList);
    CastList.prototype[_is_CastList_default] = true;
    dart.addTypeCaches(CastList);
    dart.setMethodSignature(CastList, () => ({
      __proto__: dart.getMethods(CastList.__proto__),
      cast: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastList, I[25]);
    dart.setFieldSignature(CastList, () => ({
      __proto__: dart.getFields(CastList.__proto__),
      [_source$]: dart.finalFieldType(core.List$(S))
    }));
    dart.defineExtensionMethods(CastList, ['cast']);
    return CastList;
  });
  _internal.CastList = _internal.CastList$();
  dart.addTypeTests(_internal.CastList, _is_CastList_default);
  var _source$2 = dart.privateName(_internal, "CastSet._source");
  var _emptySet$ = dart.privateName(_internal, "_emptySet");
  var _conditionalAdd = dart.privateName(_internal, "_conditionalAdd");
  var _clone = dart.privateName(_internal, "_clone");
  const _is_CastSet_default = Symbol('_is_CastSet_default');
  _internal.CastSet$ = dart.generic((S, T) => {
    var CastIterableOfT$S = () => (CastIterableOfT$S = dart.constFn(_internal.CastIterable$(T, S)))();
    var STobool = () => (STobool = dart.constFn(dart.fnType(core.bool, [S])))();
    var CastSetOfS$T = () => (CastSetOfS$T = dart.constFn(_internal.CastSet$(S, T)))();
    var IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
    var _HashSetOfT = () => (_HashSetOfT = dart.constFn(collection._HashSet$(T)))();
    var SetOfT = () => (SetOfT = dart.constFn(core.Set$(T)))();
    class CastSet extends _internal._CastIterableBase$(S, T) {
      get [_source$]() {
        return this[_source$2];
      }
      set [_source$](value) {
        super[_source$] = value;
      }
      static _defaultEmptySet(R) {
        return new (collection._HashSet$(R)).new();
      }
      cast(R) {
        return new (_internal.CastSet$(S, R)).new(this[_source$], this[_emptySet$]);
      }
      add(value) {
        T.as(value);
        return this[_source$].add(S.as(value));
      }
      addAll(elements) {
        IterableOfT().as(elements);
        if (elements == null) dart.nullFailed(I[33], 194, 27, "elements");
        this[_source$].addAll(CastIterableOfT$S().new(elements));
      }
      remove(object) {
        return this[_source$].remove(object);
      }
      removeAll(objects) {
        if (objects == null) dart.nullFailed(I[33], 200, 36, "objects");
        this[_source$].removeAll(objects);
      }
      retainAll(objects) {
        if (objects == null) dart.nullFailed(I[33], 204, 36, "objects");
        this[_source$].retainAll(objects);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[33], 208, 25, "test");
        this[_source$].removeWhere(dart.fn(element => test(T.as(element)), STobool()));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[33], 212, 25, "test");
        this[_source$].retainWhere(dart.fn(element => test(T.as(element)), STobool()));
      }
      containsAll(objects) {
        if (objects == null) dart.nullFailed(I[33], 216, 38, "objects");
        return this[_source$].containsAll(objects);
      }
      intersection(other) {
        if (other == null) dart.nullFailed(I[33], 218, 36, "other");
        if (this[_emptySet$] != null) return this[_conditionalAdd](other, true);
        return new (CastSetOfS$T()).new(this[_source$].intersection(other), null);
      }
      difference(other) {
        if (other == null) dart.nullFailed(I[33], 223, 34, "other");
        if (this[_emptySet$] != null) return this[_conditionalAdd](other, false);
        return new (CastSetOfS$T()).new(this[_source$].difference(other), null);
      }
      [_conditionalAdd](other, otherContains) {
        if (other == null) dart.nullFailed(I[33], 228, 39, "other");
        if (otherContains == null) dart.nullFailed(I[33], 228, 51, "otherContains");
        let emptySet = this[_emptySet$];
        let result = emptySet == null ? new (_HashSetOfT()).new() : emptySet(T);
        for (let element of this[_source$]) {
          let castElement = T.as(element);
          if (otherContains == other.contains(castElement)) result.add(castElement);
        }
        return result;
      }
      union(other) {
        let t77;
        SetOfT().as(other);
        if (other == null) dart.nullFailed(I[33], 238, 23, "other");
        t77 = this[_clone]();
        return (() => {
          t77.addAll(other);
          return t77;
        })();
      }
      clear() {
        this[_source$].clear();
      }
      [_clone]() {
        let emptySet = this[_emptySet$];
        let result = emptySet == null ? new (_HashSetOfT()).new() : emptySet(T);
        result.addAll(this);
        return result;
      }
      toSet() {
        return this[_clone]();
      }
      lookup(key) {
        return T.as(this[_source$].lookup(key));
      }
    }
    (CastSet.new = function(_source, _emptySet) {
      if (_source == null) dart.nullFailed(I[33], 187, 16, "_source");
      this[_source$2] = _source;
      this[_emptySet$] = _emptySet;
      CastSet.__proto__.new.call(this);
      ;
    }).prototype = CastSet.prototype;
    dart.addTypeTests(CastSet);
    CastSet.prototype[_is_CastSet_default] = true;
    dart.addTypeCaches(CastSet);
    CastSet[dart.implements] = () => [core.Set$(T)];
    dart.setMethodSignature(CastSet, () => ({
      __proto__: dart.getMethods(CastSet.__proto__),
      cast: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      removeAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      retainAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
      containsAll: dart.fnType(core.bool, [core.Iterable$(dart.nullable(core.Object))]),
      intersection: dart.fnType(core.Set$(T), [core.Set$(dart.nullable(core.Object))]),
      difference: dart.fnType(core.Set$(T), [core.Set$(dart.nullable(core.Object))]),
      [_conditionalAdd]: dart.fnType(core.Set$(T), [core.Set$(dart.nullable(core.Object)), core.bool]),
      union: dart.fnType(core.Set$(T), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [_clone]: dart.fnType(core.Set$(T), []),
      lookup: dart.fnType(T, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(CastSet, I[25]);
    dart.setFieldSignature(CastSet, () => ({
      __proto__: dart.getFields(CastSet.__proto__),
      [_source$]: dart.finalFieldType(core.Set$(S)),
      [_emptySet$]: dart.finalFieldType(dart.nullable(dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)])))
    }));
    dart.defineExtensionMethods(CastSet, ['cast', 'toSet']);
    return CastSet;
  });
  _internal.CastSet = _internal.CastSet$();
  dart.addTypeTests(_internal.CastSet, _is_CastSet_default);
  const _is_MapMixin_default = Symbol('_is_MapMixin_default');
  collection.MapMixin$ = dart.generic((K, V) => {
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var MapEntryOfK$V = () => (MapEntryOfK$V = dart.constFn(core.MapEntry$(K, V)))();
    var KToMapEntryOfK$V = () => (KToMapEntryOfK$V = dart.constFn(dart.fnType(MapEntryOfK$V(), [K])))();
    var IterableOfMapEntryOfK$V = () => (IterableOfMapEntryOfK$V = dart.constFn(core.Iterable$(MapEntryOfK$V())))();
    var JSArrayOfK = () => (JSArrayOfK = dart.constFn(_interceptors.JSArray$(K)))();
    var _MapBaseValueIterableOfK$V = () => (_MapBaseValueIterableOfK$V = dart.constFn(collection._MapBaseValueIterable$(K, V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    class MapMixin extends core.Object {
      cast(RK, RV) {
        return core.Map.castFrom(K, V, RK, RV, this);
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[35], 121, 21, "action");
        for (let key of this[$keys]) {
          action(key, V.as(this[$_get](key)));
        }
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[35], 127, 25, "other");
        for (let key of other[$keys]) {
          this[$_set](key, V.as(other[$_get](key)));
        }
      }
      containsValue(value) {
        for (let key of this[$keys]) {
          if (dart.equals(this[$_get](key), value)) return true;
        }
        return false;
      }
      putIfAbsent(key, ifAbsent) {
        let t78, t77;
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[35], 140, 26, "ifAbsent");
        if (dart.test(this[$containsKey](key))) {
          return V.as(this[$_get](key));
        }
        t77 = key;
        t78 = ifAbsent();
        this[$_set](t77, t78);
        return t78;
      }
      update(key, update, opts) {
        let t78, t77, t78$, t77$;
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[35], 147, 21, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        if (dart.test(this[$containsKey](key))) {
          t77 = key;
          t78 = update(V.as(this[$_get](key)));
          this[$_set](t77, t78);
          return t78;
        }
        if (ifAbsent != null) {
          t77$ = key;
          t78$ = ifAbsent();
          this[$_set](t77$, t78$);
          return t78$;
        }
        dart.throw(new core.ArgumentError.value(key, "key", "Key not in map."));
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[35], 157, 20, "update");
        for (let key of this[$keys]) {
          this[$_set](key, update(key, V.as(this[$_get](key))));
        }
      }
      get entries() {
        return this[$keys][$map](MapEntryOfK$V(), dart.fn(key => new (MapEntryOfK$V()).__(key, V.as(this[$_get](key))), KToMapEntryOfK$V()));
      }
      map(K2, V2, transform) {
        if (transform == null) dart.nullFailed(I[35], 167, 44, "transform");
        let result = new (_js_helper.LinkedMap$(K2, V2)).new();
        for (let key of this[$keys]) {
          let entry = transform(key, V.as(this[$_get](key)));
          result[$_set](entry.key, entry.value);
        }
        return result;
      }
      addEntries(newEntries) {
        IterableOfMapEntryOfK$V().as(newEntries);
        if (newEntries == null) dart.nullFailed(I[35], 176, 44, "newEntries");
        for (let entry of newEntries) {
          this[$_set](entry.key, entry.value);
        }
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[35], 182, 25, "test");
        let keysToRemove = JSArrayOfK().of([]);
        for (let key of this[$keys]) {
          if (dart.test(test(key, V.as(this[$_get](key))))) keysToRemove[$add](key);
        }
        for (let key of keysToRemove) {
          this[$remove](key);
        }
      }
      containsKey(key) {
        return this[$keys][$contains](key);
      }
      get length() {
        return this[$keys][$length];
      }
      get isEmpty() {
        return this[$keys][$isEmpty];
      }
      get isNotEmpty() {
        return this[$keys][$isNotEmpty];
      }
      get values() {
        return new (_MapBaseValueIterableOfK$V()).new(this);
      }
      toString() {
        return collection.MapBase.mapToString(this);
      }
    }
    (MapMixin.new = function() {
      ;
    }).prototype = MapMixin.prototype;
    MapMixin.prototype[dart.isMap] = true;
    dart.addTypeTests(MapMixin);
    MapMixin.prototype[_is_MapMixin_default] = true;
    dart.addTypeCaches(MapMixin);
    MapMixin[dart.implements] = () => [core.Map$(K, V)];
    dart.setMethodSignature(MapMixin, () => ({
      __proto__: dart.getMethods(MapMixin.__proto__),
      cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      containsValue: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$containsValue]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      putIfAbsent: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$putIfAbsent]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      update: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      [$update]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      updateAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$updateAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      addEntries: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addEntries]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
      containsKey: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$containsKey]: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(MapMixin, () => ({
      __proto__: dart.getGetters(MapMixin.__proto__),
      entries: core.Iterable$(core.MapEntry$(K, V)),
      [$entries]: core.Iterable$(core.MapEntry$(K, V)),
      length: core.int,
      [$length]: core.int,
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      values: core.Iterable$(V),
      [$values]: core.Iterable$(V)
    }));
    dart.setLibraryUri(MapMixin, I[24]);
    dart.defineExtensionMethods(MapMixin, [
      'cast',
      'forEach',
      'addAll',
      'containsValue',
      'putIfAbsent',
      'update',
      'updateAll',
      'map',
      'addEntries',
      'removeWhere',
      'containsKey',
      'toString'
    ]);
    dart.defineExtensionAccessors(MapMixin, [
      'entries',
      'length',
      'isEmpty',
      'isNotEmpty',
      'values'
    ]);
    return MapMixin;
  });
  collection.MapMixin = collection.MapMixin$();
  dart.addTypeTests(collection.MapMixin, _is_MapMixin_default);
  const _is_MapBase_default = Symbol('_is_MapBase_default');
  collection.MapBase$ = dart.generic((K, V) => {
    class MapBase extends collection.MapMixin$(K, V) {
      static mapToString(m) {
        if (m == null) dart.nullFailed(I[35], 22, 51, "m");
        if (dart.test(collection._isToStringVisiting(m))) {
          return "{...}";
        }
        let result = new core.StringBuffer.new();
        try {
          collection._toStringVisiting[$add](m);
          result.write("{");
          let first = true;
          m[$forEach](dart.fn((k, v) => {
            if (!first) {
              result.write(", ");
            }
            first = false;
            result.write(k);
            result.write(": ");
            result.write(v);
          }, T$.ObjectNAndObjectNTovoid()));
          result.write("}");
        } finally {
          if (!core.identical(collection._toStringVisiting[$last], m)) dart.assertFailed(null, I[35], 44, 14, "identical(_toStringVisiting.last, m)");
          collection._toStringVisiting[$removeLast]();
        }
        return result.toString();
      }
      static _id(x) {
        return x;
      }
      static _fillMapWithMappedIterable(map, iterable, key, value) {
        if (map == null) dart.nullFailed(I[35], 58, 29, "map");
        if (iterable == null) dart.nullFailed(I[35], 59, 25, "iterable");
        key == null ? key = C[19] || CT.C19 : null;
        value == null ? value = C[19] || CT.C19 : null;
        if (key == null) dart.throw("!");
        if (value == null) dart.throw("!");
        for (let element of iterable) {
          map[$_set](key(element), value(element));
        }
      }
      static _fillMapWithIterables(map, keys, values) {
        if (map == null) dart.nullFailed(I[35], 77, 59, "map");
        if (keys == null) dart.nullFailed(I[35], 78, 25, "keys");
        if (values == null) dart.nullFailed(I[35], 78, 49, "values");
        let keyIterator = keys[$iterator];
        let valueIterator = values[$iterator];
        let hasNextKey = keyIterator.moveNext();
        let hasNextValue = valueIterator.moveNext();
        while (dart.test(hasNextKey) && dart.test(hasNextValue)) {
          map[$_set](keyIterator.current, valueIterator.current);
          hasNextKey = keyIterator.moveNext();
          hasNextValue = valueIterator.moveNext();
        }
        if (dart.test(hasNextKey) || dart.test(hasNextValue)) {
          dart.throw(new core.ArgumentError.new("Iterables do not have same length."));
        }
      }
    }
    (MapBase.new = function() {
      ;
    }).prototype = MapBase.prototype;
    dart.addTypeTests(MapBase);
    MapBase.prototype[_is_MapBase_default] = true;
    dart.addTypeCaches(MapBase);
    dart.setLibraryUri(MapBase, I[24]);
    return MapBase;
  });
  collection.MapBase = collection.MapBase$();
  dart.addTypeTests(collection.MapBase, _is_MapBase_default);
  const _is_CastMap_default = Symbol('_is_CastMap_default');
  _internal.CastMap$ = dart.generic((SK, SV, K, V) => {
    var CastMapOfK$V$SK$SV = () => (CastMapOfK$V$SK$SV = dart.constFn(_internal.CastMap$(K, V, SK, SV)))();
    var SKAndSVTovoid = () => (SKAndSVTovoid = dart.constFn(dart.fnType(dart.void, [SK, SV])))();
    var CastIterableOfSK$K = () => (CastIterableOfSK$K = dart.constFn(_internal.CastIterable$(SK, K)))();
    var SKAndSVToSV = () => (SKAndSVToSV = dart.constFn(dart.fnType(SV, [SK, SV])))();
    var MapEntryOfSK$SV = () => (MapEntryOfSK$SV = dart.constFn(core.MapEntry$(SK, SV)))();
    var MapEntryOfSK$SVToMapEntryOfK$V = () => (MapEntryOfSK$SVToMapEntryOfK$V = dart.constFn(dart.fnType(MapEntryOfK$V(), [MapEntryOfSK$SV()])))();
    var SKAndSVTobool = () => (SKAndSVTobool = dart.constFn(dart.fnType(core.bool, [SK, SV])))();
    var VoidToSV = () => (VoidToSV = dart.constFn(dart.fnType(SV, [])))();
    var CastIterableOfSV$V = () => (CastIterableOfSV$V = dart.constFn(_internal.CastIterable$(SV, V)))();
    var SVToSV = () => (SVToSV = dart.constFn(dart.fnType(SV, [SV])))();
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var MapEntryOfK$V = () => (MapEntryOfK$V = dart.constFn(core.MapEntry$(K, V)))();
    var IterableOfMapEntryOfK$V = () => (IterableOfMapEntryOfK$V = dart.constFn(core.Iterable$(MapEntryOfK$V())))();
    var VN = () => (VN = dart.constFn(dart.nullable(V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    class CastMap extends collection.MapBase$(K, V) {
      cast(RK, RV) {
        return new (_internal.CastMap$(SK, SV, RK, RV)).new(this[_source$]);
      }
      containsValue(value) {
        return this[_source$][$containsValue](value);
      }
      containsKey(key) {
        return this[_source$][$containsKey](key);
      }
      _get(key) {
        return VN().as(this[_source$][$_get](key));
      }
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        this[_source$][$_set](SK.as(key), SV.as(value));
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[33], 273, 37, "ifAbsent");
        return V.as(this[_source$][$putIfAbsent](SK.as(key), dart.fn(() => SV.as(ifAbsent()), VoidToSV())));
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[33], 276, 25, "other");
        this[_source$][$addAll](new (CastMapOfK$V$SK$SV()).new(other));
      }
      remove(key) {
        return VN().as(this[_source$][$remove](key));
      }
      clear() {
        this[_source$][$clear]();
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[33], 286, 21, "f");
        this[_source$][$forEach](dart.fn((key, value) => {
          f(K.as(key), V.as(value));
        }, SKAndSVTovoid()));
      }
      get keys() {
        return CastIterableOfSK$K().new(this[_source$][$keys]);
      }
      get values() {
        return CastIterableOfSV$V().new(this[_source$][$values]);
      }
      get length() {
        return this[_source$][$length];
      }
      get isEmpty() {
        return this[_source$][$isEmpty];
      }
      get isNotEmpty() {
        return this[_source$][$isNotEmpty];
      }
      update(key, update, opts) {
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[33], 302, 21, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        return V.as(this[_source$][$update](SK.as(key), dart.fn(value => SV.as(update(V.as(value))), SVToSV()), {ifAbsent: ifAbsent == null ? null : dart.fn(() => SV.as(ifAbsent()), VoidToSV())}));
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[33], 307, 20, "update");
        this[_source$][$updateAll](dart.fn((key, value) => SV.as(update(K.as(key), V.as(value))), SKAndSVToSV()));
      }
      get entries() {
        return this[_source$][$entries][$map](MapEntryOfK$V(), dart.fn(e => {
          if (e == null) dart.nullFailed(I[33], 313, 27, "e");
          return new (MapEntryOfK$V()).__(K.as(e.key), V.as(e.value));
        }, MapEntryOfSK$SVToMapEntryOfK$V()));
      }
      addEntries(entries) {
        IterableOfMapEntryOfK$V().as(entries);
        if (entries == null) dart.nullFailed(I[33], 316, 44, "entries");
        for (let entry of entries) {
          this[_source$][$_set](SK.as(entry.key), SV.as(entry.value));
        }
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[33], 322, 25, "test");
        this[_source$][$removeWhere](dart.fn((key, value) => test(K.as(key), V.as(value)), SKAndSVTobool()));
      }
    }
    (CastMap.new = function(_source) {
      if (_source == null) dart.nullFailed(I[33], 259, 16, "_source");
      this[_source$] = _source;
      ;
    }).prototype = CastMap.prototype;
    dart.addTypeTests(CastMap);
    CastMap.prototype[_is_CastMap_default] = true;
    dart.addTypeCaches(CastMap);
    dart.setMethodSignature(CastMap, () => ({
      __proto__: dart.getMethods(CastMap.__proto__),
      cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(CastMap, () => ({
      __proto__: dart.getGetters(CastMap.__proto__),
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K)
    }));
    dart.setLibraryUri(CastMap, I[25]);
    dart.setFieldSignature(CastMap, () => ({
      __proto__: dart.getFields(CastMap.__proto__),
      [_source$]: dart.finalFieldType(core.Map$(SK, SV))
    }));
    dart.defineExtensionMethods(CastMap, [
      'cast',
      'containsValue',
      'containsKey',
      '_get',
      '_set',
      'putIfAbsent',
      'addAll',
      'remove',
      'clear',
      'forEach',
      'update',
      'updateAll',
      'addEntries',
      'removeWhere'
    ]);
    dart.defineExtensionAccessors(CastMap, [
      'keys',
      'values',
      'length',
      'isEmpty',
      'isNotEmpty',
      'entries'
    ]);
    return CastMap;
  });
  _internal.CastMap = _internal.CastMap$();
  dart.addTypeTests(_internal.CastMap, _is_CastMap_default);
  var _source$3 = dart.privateName(_internal, "CastQueue._source");
  const _is_CastQueue_default = Symbol('_is_CastQueue_default');
  _internal.CastQueue$ = dart.generic((S, T) => {
    var CastIterableOfT$S = () => (CastIterableOfT$S = dart.constFn(_internal.CastIterable$(T, S)))();
    var STobool = () => (STobool = dart.constFn(dart.fnType(core.bool, [S])))();
    var IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
    class CastQueue extends _internal._CastIterableBase$(S, T) {
      get [_source$]() {
        return this[_source$3];
      }
      set [_source$](value) {
        super[_source$] = value;
      }
      cast(R) {
        return new (_internal.CastQueue$(S, R)).new(this[_source$]);
      }
      removeFirst() {
        return T.as(this[_source$].removeFirst());
      }
      removeLast() {
        return T.as(this[_source$].removeLast());
      }
      add(value) {
        T.as(value);
        this[_source$].add(S.as(value));
      }
      addFirst(value) {
        T.as(value);
        this[_source$].addFirst(S.as(value));
      }
      addLast(value) {
        T.as(value);
        this[_source$].addLast(S.as(value));
      }
      remove(other) {
        return this[_source$].remove(other);
      }
      addAll(elements) {
        IterableOfT().as(elements);
        if (elements == null) dart.nullFailed(I[33], 348, 27, "elements");
        this[_source$].addAll(CastIterableOfT$S().new(elements));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[33], 352, 25, "test");
        this[_source$].removeWhere(dart.fn(element => test(T.as(element)), STobool()));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[33], 356, 25, "test");
        this[_source$].retainWhere(dart.fn(element => test(T.as(element)), STobool()));
      }
      clear() {
        this[_source$].clear();
      }
    }
    (CastQueue.new = function(_source) {
      if (_source == null) dart.nullFailed(I[33], 329, 18, "_source");
      this[_source$3] = _source;
      CastQueue.__proto__.new.call(this);
      ;
    }).prototype = CastQueue.prototype;
    dart.addTypeTests(CastQueue);
    CastQueue.prototype[_is_CastQueue_default] = true;
    dart.addTypeCaches(CastQueue);
    CastQueue[dart.implements] = () => [collection.Queue$(T)];
    dart.setMethodSignature(CastQueue, () => ({
      __proto__: dart.getMethods(CastQueue.__proto__),
      cast: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      removeFirst: dart.fnType(T, []),
      removeLast: dart.fnType(T, []),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addFirst: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addLast: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
      clear: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(CastQueue, I[25]);
    dart.setFieldSignature(CastQueue, () => ({
      __proto__: dart.getFields(CastQueue.__proto__),
      [_source$]: dart.finalFieldType(collection.Queue$(S))
    }));
    dart.defineExtensionMethods(CastQueue, ['cast']);
    return CastQueue;
  });
  _internal.CastQueue = _internal.CastQueue$();
  dart.addTypeTests(_internal.CastQueue, _is_CastQueue_default);
  var _message$ = dart.privateName(_internal, "_message");
  _internal.LateError = class LateError extends core.Error {
    toString() {
      let message = this[_message$];
      return message != null ? "LateInitializationError: " + dart.str(message) : "LateInitializationError";
    }
  };
  (_internal.LateError.new = function(_message = null) {
    this[_message$] = _message;
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.fieldADI = function(fieldName) {
    if (fieldName == null) dart.nullFailed(I[36], 16, 29, "fieldName");
    this[_message$] = "Field '" + dart.str(fieldName) + "' has been assigned during initialization.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.localADI = function(localName) {
    if (localName == null) dart.nullFailed(I[36], 20, 29, "localName");
    this[_message$] = "Local '" + dart.str(localName) + "' has been assigned during initialization.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.fieldNI = function(fieldName) {
    if (fieldName == null) dart.nullFailed(I[36], 25, 28, "fieldName");
    this[_message$] = "Field '" + dart.str(fieldName) + "' has not been initialized.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.localNI = function(localName) {
    if (localName == null) dart.nullFailed(I[36], 28, 28, "localName");
    this[_message$] = "Local '" + dart.str(localName) + "' has not been initialized.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.fieldAI = function(fieldName) {
    if (fieldName == null) dart.nullFailed(I[36], 31, 28, "fieldName");
    this[_message$] = "Field '" + dart.str(fieldName) + "' has already been initialized.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  (_internal.LateError.localAI = function(localName) {
    if (localName == null) dart.nullFailed(I[36], 34, 28, "localName");
    this[_message$] = "Local '" + dart.str(localName) + "' has already been initialized.";
    _internal.LateError.__proto__.new.call(this);
    ;
  }).prototype = _internal.LateError.prototype;
  dart.addTypeTests(_internal.LateError);
  dart.addTypeCaches(_internal.LateError);
  dart.setLibraryUri(_internal.LateError, I[25]);
  dart.setFieldSignature(_internal.LateError, () => ({
    __proto__: dart.getFields(_internal.LateError.__proto__),
    [_message$]: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(_internal.LateError, ['toString']);
  _internal.ReachabilityError = class ReachabilityError extends core.Error {
    toString() {
      let message = this[_message$];
      return message != null ? "ReachabilityError: " + dart.str(message) : "ReachabilityError";
    }
  };
  (_internal.ReachabilityError.new = function(_message = null) {
    this[_message$] = _message;
    _internal.ReachabilityError.__proto__.new.call(this);
    ;
  }).prototype = _internal.ReachabilityError.prototype;
  dart.addTypeTests(_internal.ReachabilityError);
  dart.addTypeCaches(_internal.ReachabilityError);
  dart.setLibraryUri(_internal.ReachabilityError, I[25]);
  dart.setFieldSignature(_internal.ReachabilityError, () => ({
    __proto__: dart.getFields(_internal.ReachabilityError.__proto__),
    [_message$]: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(_internal.ReachabilityError, ['toString']);
  const _is_EfficientLengthIterable_default = Symbol('_is_EfficientLengthIterable_default');
  _internal.EfficientLengthIterable$ = dart.generic(T => {
    class EfficientLengthIterable extends core.Iterable$(T) {}
    (EfficientLengthIterable.new = function() {
      EfficientLengthIterable.__proto__.new.call(this);
      ;
    }).prototype = EfficientLengthIterable.prototype;
    dart.addTypeTests(EfficientLengthIterable);
    EfficientLengthIterable.prototype[_is_EfficientLengthIterable_default] = true;
    dart.addTypeCaches(EfficientLengthIterable);
    dart.setLibraryUri(EfficientLengthIterable, I[25]);
    return EfficientLengthIterable;
  });
  _internal.EfficientLengthIterable = _internal.EfficientLengthIterable$();
  dart.addTypeTests(_internal.EfficientLengthIterable, _is_EfficientLengthIterable_default);
  const _is_ListIterable_default = Symbol('_is_ListIterable_default');
  _internal.ListIterable$ = dart.generic(E => {
    var ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var ETodynamic = () => (ETodynamic = dart.constFn(dart.fnType(dart.dynamic, [E])))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
    class ListIterable extends _internal.EfficientLengthIterable$(E) {
      get iterator() {
        return new (ListIteratorOfE()).new(this);
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[37], 36, 21, "action");
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          action(this.elementAt(i));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
      }
      get isEmpty() {
        return this.length === 0;
      }
      get first() {
        if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
        return this.elementAt(0);
      }
      get last() {
        if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
        return this.elementAt(dart.notNull(this.length) - 1);
      }
      get single() {
        if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
        return this.elementAt(0);
      }
      contains(element) {
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (dart.equals(this.elementAt(i), element)) return true;
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return false;
      }
      every(test) {
        if (test == null) dart.nullFailed(I[37], 75, 19, "test");
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (!dart.test(test(this.elementAt(i)))) return false;
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return true;
      }
      any(test) {
        if (test == null) dart.nullFailed(I[37], 86, 17, "test");
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          if (dart.test(test(this.elementAt(i)))) return true;
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return false;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 97, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          let element = this.elementAt(i);
          if (dart.test(test(element))) return element;
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 110, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this.length;
        for (let i = dart.notNull(length) - 1; i >= 0; i = i - 1) {
          let element = this.elementAt(i);
          if (dart.test(test(element))) return element;
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 123, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let length = this.length;
        let match = null;
        let match$35isSet = false;
        function match$35get() {
          return match$35isSet ? match : dart.throw(new _internal.LateError.localNI("match"));
        }
        dart.fn(match$35get, VoidToE());
        function match$35set(t80) {
          match$35isSet = true;
          return match = t80;
        }
        dart.fn(match$35set, ETodynamic());
        let matchFound = false;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          let element = this.elementAt(i);
          if (dart.test(test(element))) {
            if (matchFound) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            matchFound = true;
            match$35set(element);
          }
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        if (matchFound) return match$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[37], 145, 23, "separator");
        let length = this.length;
        if (!separator[$isEmpty]) {
          if (length === 0) return "";
          let first = dart.str(this.elementAt(0));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          let buffer = new core.StringBuffer.new(first);
          for (let i = 1; i < dart.notNull(length); i = i + 1) {
            buffer.write(separator);
            buffer.write(this.elementAt(i));
            if (length != this.length) {
              dart.throw(new core.ConcurrentModificationError.new(this));
            }
          }
          return buffer.toString();
        } else {
          let buffer = new core.StringBuffer.new();
          for (let i = 0; i < dart.notNull(length); i = i + 1) {
            buffer.write(this.elementAt(i));
            if (length != this.length) {
              dart.throw(new core.ConcurrentModificationError.new(this));
            }
          }
          return buffer.toString();
        }
      }
      where(test) {
        if (test == null) dart.nullFailed(I[37], 174, 26, "test");
        return super[$where](test);
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[37], 176, 24, "f");
        return new (_internal.MappedListIterable$(E, T)).new(this, f);
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[37], 178, 14, "combine");
        let length = this.length;
        if (length === 0) dart.throw(_internal.IterableElementError.noElement());
        let value = this.elementAt(0);
        for (let i = 1; i < dart.notNull(length); i = i + 1) {
          value = combine(value, this.elementAt(i));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return value;
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[37], 191, 31, "combine");
        let value = initialValue;
        let length = this.length;
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          value = combine(value, this.elementAt(i));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return value;
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[37], 203, 24, "count");
        return new (SubListIterableOfE()).new(this, count, null);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[37], 205, 30, "test");
        return super[$skipWhile](test);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[37], 207, 24, "count");
        return new (SubListIterableOfE()).new(this, 0, _internal.checkNotNullable(core.int, count, "count"));
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[37], 210, 30, "test");
        return super[$takeWhile](test);
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[37], 212, 24, "growable");
        return ListOfE().of(this, {growable: growable});
      }
      toSet() {
        let result = new (_HashSetOfE()).new();
        for (let i = 0; i < dart.notNull(this.length); i = i + 1) {
          result.add(this.elementAt(i));
        }
        return result;
      }
    }
    (ListIterable.new = function() {
      ListIterable.__proto__.new.call(this);
      ;
    }).prototype = ListIterable.prototype;
    dart.addTypeTests(ListIterable);
    ListIterable.prototype[_is_ListIterable_default] = true;
    dart.addTypeCaches(ListIterable);
    dart.setMethodSignature(ListIterable, () => ({
      __proto__: dart.getMethods(ListIterable.__proto__),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(ListIterable, () => ({
      __proto__: dart.getGetters(ListIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(ListIterable, I[25]);
    dart.defineExtensionMethods(ListIterable, [
      'forEach',
      'contains',
      'every',
      'any',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'join',
      'where',
      'map',
      'reduce',
      'fold',
      'skip',
      'skipWhile',
      'take',
      'takeWhile',
      'toList',
      'toSet'
    ]);
    dart.defineExtensionAccessors(ListIterable, [
      'iterator',
      'isEmpty',
      'first',
      'last',
      'single'
    ]);
    return ListIterable;
  });
  _internal.ListIterable = _internal.ListIterable$();
  dart.addTypeTests(_internal.ListIterable, _is_ListIterable_default);
  var _iterable$ = dart.privateName(_internal, "_iterable");
  var _start$ = dart.privateName(_internal, "_start");
  var _endOrLength$ = dart.privateName(_internal, "_endOrLength");
  var _endIndex = dart.privateName(_internal, "_endIndex");
  var _startIndex = dart.privateName(_internal, "_startIndex");
  const _is_SubListIterable_default = Symbol('_is_SubListIterable_default');
  _internal.SubListIterable$ = dart.generic(E => {
    var EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
    var SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    class SubListIterable extends _internal.ListIterable$(E) {
      get [_endIndex]() {
        let length = this[_iterable$][$length];
        let endOrLength = this[_endOrLength$];
        if (endOrLength == null || dart.notNull(endOrLength) > dart.notNull(length)) return length;
        return endOrLength;
      }
      get [_startIndex]() {
        let length = this[_iterable$][$length];
        if (dart.notNull(this[_start$]) > dart.notNull(length)) return length;
        return this[_start$];
      }
      get length() {
        let length = this[_iterable$][$length];
        if (dart.notNull(this[_start$]) >= dart.notNull(length)) return 0;
        let endOrLength = this[_endOrLength$];
        if (endOrLength == null || dart.notNull(endOrLength) >= dart.notNull(length)) {
          return dart.notNull(length) - dart.notNull(this[_start$]);
        }
        return dart.notNull(endOrLength) - dart.notNull(this[_start$]);
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[37], 263, 19, "index");
        let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index);
        if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex])) {
          dart.throw(new core.IndexError.new(index, this, "index"));
        }
        return this[_iterable$][$elementAt](realIndex);
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[37], 271, 24, "count");
        core.RangeError.checkNotNegative(count, "count");
        let newStart = dart.notNull(this[_start$]) + dart.notNull(count);
        let endOrLength = this[_endOrLength$];
        if (endOrLength != null && newStart >= dart.notNull(endOrLength)) {
          return new (EmptyIterableOfE()).new();
        }
        return new (SubListIterableOfE()).new(this[_iterable$], newStart, this[_endOrLength$]);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[37], 281, 24, "count");
        core.RangeError.checkNotNegative(count, "count");
        let endOrLength = this[_endOrLength$];
        if (endOrLength == null) {
          return new (SubListIterableOfE()).new(this[_iterable$], this[_start$], dart.notNull(this[_start$]) + dart.notNull(count));
        } else {
          let newEnd = dart.notNull(this[_start$]) + dart.notNull(count);
          if (dart.notNull(endOrLength) < newEnd) return this;
          return new (SubListIterableOfE()).new(this[_iterable$], this[_start$], newEnd);
        }
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[37], 293, 24, "growable");
        let start = this[_start$];
        let end = this[_iterable$][$length];
        let endOrLength = this[_endOrLength$];
        if (endOrLength != null && dart.notNull(endOrLength) < dart.notNull(end)) end = endOrLength;
        let length = dart.notNull(end) - dart.notNull(start);
        if (length <= 0) return ListOfE().empty({growable: growable});
        let result = ListOfE().filled(length, this[_iterable$][$elementAt](start), {growable: growable});
        for (let i = 1; i < length; i = i + 1) {
          result[$_set](i, this[_iterable$][$elementAt](dart.notNull(start) + i));
          if (dart.notNull(this[_iterable$][$length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError.new(this));
        }
        return result;
      }
    }
    (SubListIterable.new = function(_iterable, _start, _endOrLength) {
      if (_iterable == null) dart.nullFailed(I[37], 229, 24, "_iterable");
      if (_start == null) dart.nullFailed(I[37], 229, 40, "_start");
      this[_iterable$] = _iterable;
      this[_start$] = _start;
      this[_endOrLength$] = _endOrLength;
      SubListIterable.__proto__.new.call(this);
      core.RangeError.checkNotNegative(this[_start$], "start");
      let endOrLength = this[_endOrLength$];
      if (endOrLength != null) {
        core.RangeError.checkNotNegative(endOrLength, "end");
        if (dart.notNull(this[_start$]) > dart.notNull(endOrLength)) {
          dart.throw(new core.RangeError.range(this[_start$], 0, endOrLength, "start"));
        }
      }
    }).prototype = SubListIterable.prototype;
    dart.addTypeTests(SubListIterable);
    SubListIterable.prototype[_is_SubListIterable_default] = true;
    dart.addTypeCaches(SubListIterable);
    dart.setGetterSignature(SubListIterable, () => ({
      __proto__: dart.getGetters(SubListIterable.__proto__),
      [_endIndex]: core.int,
      [_startIndex]: core.int
    }));
    dart.setLibraryUri(SubListIterable, I[25]);
    dart.setFieldSignature(SubListIterable, () => ({
      __proto__: dart.getFields(SubListIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_start$]: dart.finalFieldType(core.int),
      [_endOrLength$]: dart.finalFieldType(dart.nullable(core.int))
    }));
    dart.defineExtensionMethods(SubListIterable, ['elementAt', 'skip', 'take', 'toList']);
    dart.defineExtensionAccessors(SubListIterable, ['length']);
    return SubListIterable;
  });
  _internal.SubListIterable = _internal.SubListIterable$();
  dart.addTypeTests(_internal.SubListIterable, _is_SubListIterable_default);
  var _current$ = dart.privateName(_internal, "_current");
  var _index$ = dart.privateName(_internal, "_index");
  const _is_ListIterator_default = Symbol('_is_ListIterator_default');
  _internal.ListIterator$ = dart.generic(E => {
    class ListIterator extends core.Object {
      get current() {
        return E.as(this[_current$]);
      }
      moveNext() {
        let length = this[_iterable$][$length];
        if (this[_length$] != length) {
          dart.throw(new core.ConcurrentModificationError.new(this[_iterable$]));
        }
        if (dart.notNull(this[_index$]) >= dart.notNull(length)) {
          this[_current$] = null;
          return false;
        }
        this[_current$] = this[_iterable$][$elementAt](this[_index$]);
        this[_index$] = dart.notNull(this[_index$]) + 1;
        return true;
      }
    }
    (ListIterator.new = function(iterable) {
      if (iterable == null) dart.nullFailed(I[37], 324, 28, "iterable");
      this[_current$] = null;
      this[_iterable$] = iterable;
      this[_length$] = iterable[$length];
      this[_index$] = 0;
      ;
    }).prototype = ListIterator.prototype;
    dart.addTypeTests(ListIterator);
    ListIterator.prototype[_is_ListIterator_default] = true;
    dart.addTypeCaches(ListIterator);
    ListIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(ListIterator, () => ({
      __proto__: dart.getMethods(ListIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(ListIterator, () => ({
      __proto__: dart.getGetters(ListIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(ListIterator, I[25]);
    dart.setFieldSignature(ListIterator, () => ({
      __proto__: dart.getFields(ListIterator.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_length$]: dart.finalFieldType(core.int),
      [_index$]: dart.fieldType(core.int),
      [_current$]: dart.fieldType(dart.nullable(E))
    }));
    return ListIterator;
  });
  _internal.ListIterator = _internal.ListIterator$();
  dart.addTypeTests(_internal.ListIterator, _is_ListIterator_default);
  var _f$ = dart.privateName(_internal, "_f");
  const _is_MappedIterable_default = Symbol('_is_MappedIterable_default');
  _internal.MappedIterable$ = dart.generic((S, T) => {
    var MappedIteratorOfS$T = () => (MappedIteratorOfS$T = dart.constFn(_internal.MappedIterator$(S, T)))();
    class MappedIterable extends core.Iterable$(T) {
      static new(iterable, $function) {
        if (iterable == null) dart.nullFailed(I[37], 353, 38, "iterable");
        if ($function == null) dart.nullFailed(I[37], 353, 50, "function");
        if (_internal.EfficientLengthIterable.is(iterable)) {
          return new (_internal.EfficientLengthMappedIterable$(S, T)).new(iterable, $function);
        }
        return new (_internal.MappedIterable$(S, T)).__(iterable, $function);
      }
      get iterator() {
        return new (MappedIteratorOfS$T()).new(this[_iterable$][$iterator], this[_f$]);
      }
      get length() {
        return this[_iterable$][$length];
      }
      get isEmpty() {
        return this[_iterable$][$isEmpty];
      }
      get first() {
        let t82;
        t82 = this[_iterable$][$first];
        return this[_f$](t82);
      }
      get last() {
        let t82;
        t82 = this[_iterable$][$last];
        return this[_f$](t82);
      }
      get single() {
        let t82;
        t82 = this[_iterable$][$single];
        return this[_f$](t82);
      }
      elementAt(index) {
        let t82;
        if (index == null) dart.nullFailed(I[37], 372, 19, "index");
        t82 = this[_iterable$][$elementAt](index);
        return this[_f$](t82);
      }
    }
    (MappedIterable.__ = function(_iterable, _f) {
      if (_iterable == null) dart.nullFailed(I[37], 360, 25, "_iterable");
      if (_f == null) dart.nullFailed(I[37], 360, 41, "_f");
      this[_iterable$] = _iterable;
      this[_f$] = _f;
      MappedIterable.__proto__.new.call(this);
      ;
    }).prototype = MappedIterable.prototype;
    dart.addTypeTests(MappedIterable);
    MappedIterable.prototype[_is_MappedIterable_default] = true;
    dart.addTypeCaches(MappedIterable);
    dart.setGetterSignature(MappedIterable, () => ({
      __proto__: dart.getGetters(MappedIterable.__proto__),
      iterator: core.Iterator$(T),
      [$iterator]: core.Iterator$(T)
    }));
    dart.setLibraryUri(MappedIterable, I[25]);
    dart.setFieldSignature(MappedIterable, () => ({
      __proto__: dart.getFields(MappedIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(S)),
      [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
    }));
    dart.defineExtensionMethods(MappedIterable, ['elementAt']);
    dart.defineExtensionAccessors(MappedIterable, [
      'iterator',
      'length',
      'isEmpty',
      'first',
      'last',
      'single'
    ]);
    return MappedIterable;
  });
  _internal.MappedIterable = _internal.MappedIterable$();
  dart.addTypeTests(_internal.MappedIterable, _is_MappedIterable_default);
  const _is_EfficientLengthMappedIterable_default = Symbol('_is_EfficientLengthMappedIterable_default');
  _internal.EfficientLengthMappedIterable$ = dart.generic((S, T) => {
    class EfficientLengthMappedIterable extends _internal.MappedIterable$(S, T) {}
    (EfficientLengthMappedIterable.new = function(iterable, $function) {
      if (iterable == null) dart.nullFailed(I[37], 377, 45, "iterable");
      if ($function == null) dart.nullFailed(I[37], 377, 57, "function");
      EfficientLengthMappedIterable.__proto__.__.call(this, iterable, $function);
      ;
    }).prototype = EfficientLengthMappedIterable.prototype;
    dart.addTypeTests(EfficientLengthMappedIterable);
    EfficientLengthMappedIterable.prototype[_is_EfficientLengthMappedIterable_default] = true;
    dart.addTypeCaches(EfficientLengthMappedIterable);
    EfficientLengthMappedIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(T)];
    dart.setLibraryUri(EfficientLengthMappedIterable, I[25]);
    return EfficientLengthMappedIterable;
  });
  _internal.EfficientLengthMappedIterable = _internal.EfficientLengthMappedIterable$();
  dart.addTypeTests(_internal.EfficientLengthMappedIterable, _is_EfficientLengthMappedIterable_default);
  var _iterator$ = dart.privateName(_internal, "_iterator");
  const _is_Iterator_default = Symbol('_is_Iterator_default');
  core.Iterator$ = dart.generic(E => {
    class Iterator extends core.Object {}
    (Iterator.new = function() {
      ;
    }).prototype = Iterator.prototype;
    dart.addTypeTests(Iterator);
    Iterator.prototype[_is_Iterator_default] = true;
    dart.addTypeCaches(Iterator);
    dart.setLibraryUri(Iterator, I[8]);
    return Iterator;
  });
  core.Iterator = core.Iterator$();
  dart.addTypeTests(core.Iterator, _is_Iterator_default);
  const _is_MappedIterator_default = Symbol('_is_MappedIterator_default');
  _internal.MappedIterator$ = dart.generic((S, T) => {
    class MappedIterator extends core.Iterator$(T) {
      moveNext() {
        let t82;
        if (dart.test(this[_iterator$].moveNext())) {
          this[_current$] = (t82 = this[_iterator$].current, this[_f$](t82));
          return true;
        }
        this[_current$] = null;
        return false;
      }
      get current() {
        return T.as(this[_current$]);
      }
    }
    (MappedIterator.new = function(_iterator, _f) {
      if (_iterator == null) dart.nullFailed(I[37], 386, 23, "_iterator");
      if (_f == null) dart.nullFailed(I[37], 386, 39, "_f");
      this[_current$] = null;
      this[_iterator$] = _iterator;
      this[_f$] = _f;
      ;
    }).prototype = MappedIterator.prototype;
    dart.addTypeTests(MappedIterator);
    MappedIterator.prototype[_is_MappedIterator_default] = true;
    dart.addTypeCaches(MappedIterator);
    dart.setMethodSignature(MappedIterator, () => ({
      __proto__: dart.getMethods(MappedIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(MappedIterator, () => ({
      __proto__: dart.getGetters(MappedIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(MappedIterator, I[25]);
    dart.setFieldSignature(MappedIterator, () => ({
      __proto__: dart.getFields(MappedIterator.__proto__),
      [_current$]: dart.fieldType(dart.nullable(T)),
      [_iterator$]: dart.finalFieldType(core.Iterator$(S)),
      [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
    }));
    return MappedIterator;
  });
  _internal.MappedIterator = _internal.MappedIterator$();
  dart.addTypeTests(_internal.MappedIterator, _is_MappedIterator_default);
  const _is_MappedListIterable_default = Symbol('_is_MappedListIterable_default');
  _internal.MappedListIterable$ = dart.generic((S, T) => {
    class MappedListIterable extends _internal.ListIterable$(T) {
      get length() {
        return this[_source$][$length];
      }
      elementAt(index) {
        let t82;
        if (index == null) dart.nullFailed(I[37], 412, 19, "index");
        t82 = this[_source$][$elementAt](index);
        return this[_f$](t82);
      }
    }
    (MappedListIterable.new = function(_source, _f) {
      if (_source == null) dart.nullFailed(I[37], 409, 27, "_source");
      if (_f == null) dart.nullFailed(I[37], 409, 41, "_f");
      this[_source$] = _source;
      this[_f$] = _f;
      MappedListIterable.__proto__.new.call(this);
      ;
    }).prototype = MappedListIterable.prototype;
    dart.addTypeTests(MappedListIterable);
    MappedListIterable.prototype[_is_MappedListIterable_default] = true;
    dart.addTypeCaches(MappedListIterable);
    dart.setLibraryUri(MappedListIterable, I[25]);
    dart.setFieldSignature(MappedListIterable, () => ({
      __proto__: dart.getFields(MappedListIterable.__proto__),
      [_source$]: dart.finalFieldType(core.Iterable$(S)),
      [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
    }));
    dart.defineExtensionMethods(MappedListIterable, ['elementAt']);
    dart.defineExtensionAccessors(MappedListIterable, ['length']);
    return MappedListIterable;
  });
  _internal.MappedListIterable = _internal.MappedListIterable$();
  dart.addTypeTests(_internal.MappedListIterable, _is_MappedListIterable_default);
  const _is_WhereIterable_default = Symbol('_is_WhereIterable_default');
  _internal.WhereIterable$ = dart.generic(E => {
    var WhereIteratorOfE = () => (WhereIteratorOfE = dart.constFn(_internal.WhereIterator$(E)))();
    class WhereIterable extends core.Iterable$(E) {
      get iterator() {
        return new (WhereIteratorOfE()).new(this[_iterable$][$iterator], this[_f$]);
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[37], 426, 24, "f");
        return new (_internal.MappedIterable$(E, T)).__(this, f);
      }
    }
    (WhereIterable.new = function(_iterable, _f) {
      if (_iterable == null) dart.nullFailed(I[37], 421, 22, "_iterable");
      if (_f == null) dart.nullFailed(I[37], 421, 38, "_f");
      this[_iterable$] = _iterable;
      this[_f$] = _f;
      WhereIterable.__proto__.new.call(this);
      ;
    }).prototype = WhereIterable.prototype;
    dart.addTypeTests(WhereIterable);
    WhereIterable.prototype[_is_WhereIterable_default] = true;
    dart.addTypeCaches(WhereIterable);
    dart.setMethodSignature(WhereIterable, () => ({
      __proto__: dart.getMethods(WhereIterable.__proto__),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(WhereIterable, () => ({
      __proto__: dart.getGetters(WhereIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(WhereIterable, I[25]);
    dart.setFieldSignature(WhereIterable, () => ({
      __proto__: dart.getFields(WhereIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
    }));
    dart.defineExtensionMethods(WhereIterable, ['map']);
    dart.defineExtensionAccessors(WhereIterable, ['iterator']);
    return WhereIterable;
  });
  _internal.WhereIterable = _internal.WhereIterable$();
  dart.addTypeTests(_internal.WhereIterable, _is_WhereIterable_default);
  const _is_WhereIterator_default = Symbol('_is_WhereIterator_default');
  _internal.WhereIterator$ = dart.generic(E => {
    class WhereIterator extends core.Iterator$(E) {
      moveNext() {
        let t82;
        while (dart.test(this[_iterator$].moveNext())) {
          if (dart.test((t82 = this[_iterator$].current, this[_f$](t82)))) {
            return true;
          }
        }
        return false;
      }
      get current() {
        return this[_iterator$].current;
      }
    }
    (WhereIterator.new = function(_iterator, _f) {
      if (_iterator == null) dart.nullFailed(I[37], 433, 22, "_iterator");
      if (_f == null) dart.nullFailed(I[37], 433, 38, "_f");
      this[_iterator$] = _iterator;
      this[_f$] = _f;
      ;
    }).prototype = WhereIterator.prototype;
    dart.addTypeTests(WhereIterator);
    WhereIterator.prototype[_is_WhereIterator_default] = true;
    dart.addTypeCaches(WhereIterator);
    dart.setMethodSignature(WhereIterator, () => ({
      __proto__: dart.getMethods(WhereIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(WhereIterator, () => ({
      __proto__: dart.getGetters(WhereIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(WhereIterator, I[25]);
    dart.setFieldSignature(WhereIterator, () => ({
      __proto__: dart.getFields(WhereIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
    }));
    return WhereIterator;
  });
  _internal.WhereIterator = _internal.WhereIterator$();
  dart.addTypeTests(_internal.WhereIterator, _is_WhereIterator_default);
  const _is_ExpandIterable_default = Symbol('_is_ExpandIterable_default');
  _internal.ExpandIterable$ = dart.generic((S, T) => {
    var ExpandIteratorOfS$T = () => (ExpandIteratorOfS$T = dart.constFn(_internal.ExpandIterator$(S, T)))();
    class ExpandIterable extends core.Iterable$(T) {
      get iterator() {
        return new (ExpandIteratorOfS$T()).new(this[_iterable$][$iterator], this[_f$]);
      }
    }
    (ExpandIterable.new = function(_iterable, _f) {
      if (_iterable == null) dart.nullFailed(I[37], 453, 23, "_iterable");
      if (_f == null) dart.nullFailed(I[37], 453, 39, "_f");
      this[_iterable$] = _iterable;
      this[_f$] = _f;
      ExpandIterable.__proto__.new.call(this);
      ;
    }).prototype = ExpandIterable.prototype;
    dart.addTypeTests(ExpandIterable);
    ExpandIterable.prototype[_is_ExpandIterable_default] = true;
    dart.addTypeCaches(ExpandIterable);
    dart.setGetterSignature(ExpandIterable, () => ({
      __proto__: dart.getGetters(ExpandIterable.__proto__),
      iterator: core.Iterator$(T),
      [$iterator]: core.Iterator$(T)
    }));
    dart.setLibraryUri(ExpandIterable, I[25]);
    dart.setFieldSignature(ExpandIterable, () => ({
      __proto__: dart.getFields(ExpandIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(S)),
      [_f$]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S]))
    }));
    dart.defineExtensionAccessors(ExpandIterable, ['iterator']);
    return ExpandIterable;
  });
  _internal.ExpandIterable = _internal.ExpandIterable$();
  dart.addTypeTests(_internal.ExpandIterable, _is_ExpandIterable_default);
  var _currentExpansion = dart.privateName(_internal, "_currentExpansion");
  const _is_ExpandIterator_default = Symbol('_is_ExpandIterator_default');
  _internal.ExpandIterator$ = dart.generic((S, T) => {
    class ExpandIterator extends core.Object {
      get current() {
        return T.as(this[_current$]);
      }
      moveNext() {
        let t82;
        if (this[_currentExpansion] == null) return false;
        while (!dart.test(dart.nullCheck(this[_currentExpansion]).moveNext())) {
          this[_current$] = null;
          if (dart.test(this[_iterator$].moveNext())) {
            this[_currentExpansion] = null;
            this[_currentExpansion] = (t82 = this[_iterator$].current, this[_f$](t82))[$iterator];
          } else {
            return false;
          }
        }
        this[_current$] = dart.nullCheck(this[_currentExpansion]).current;
        return true;
      }
    }
    (ExpandIterator.new = function(_iterator, _f) {
      if (_iterator == null) dart.nullFailed(I[37], 467, 23, "_iterator");
      if (_f == null) dart.nullFailed(I[37], 467, 39, "_f");
      this[_currentExpansion] = C[20] || CT.C20;
      this[_current$] = null;
      this[_iterator$] = _iterator;
      this[_f$] = _f;
      ;
    }).prototype = ExpandIterator.prototype;
    dart.addTypeTests(ExpandIterator);
    ExpandIterator.prototype[_is_ExpandIterator_default] = true;
    dart.addTypeCaches(ExpandIterator);
    ExpandIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(ExpandIterator, () => ({
      __proto__: dart.getMethods(ExpandIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(ExpandIterator, () => ({
      __proto__: dart.getGetters(ExpandIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(ExpandIterator, I[25]);
    dart.setFieldSignature(ExpandIterator, () => ({
      __proto__: dart.getFields(ExpandIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(S)),
      [_f$]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S])),
      [_currentExpansion]: dart.fieldType(dart.nullable(core.Iterator$(T))),
      [_current$]: dart.fieldType(dart.nullable(T))
    }));
    return ExpandIterator;
  });
  _internal.ExpandIterator = _internal.ExpandIterator$();
  dart.addTypeTests(_internal.ExpandIterator, _is_ExpandIterator_default);
  var _takeCount$ = dart.privateName(_internal, "_takeCount");
  const _is_TakeIterable_default = Symbol('_is_TakeIterable_default');
  _internal.TakeIterable$ = dart.generic(E => {
    var TakeIteratorOfE = () => (TakeIteratorOfE = dart.constFn(_internal.TakeIterator$(E)))();
    class TakeIterable extends core.Iterable$(E) {
      static new(iterable, takeCount) {
        if (iterable == null) dart.nullFailed(I[37], 493, 36, "iterable");
        if (takeCount == null) dart.nullFailed(I[37], 493, 50, "takeCount");
        core.ArgumentError.checkNotNull(core.int, takeCount, "takeCount");
        core.RangeError.checkNotNegative(takeCount, "takeCount");
        if (_internal.EfficientLengthIterable.is(iterable)) {
          return new (_internal.EfficientLengthTakeIterable$(E)).new(iterable, takeCount);
        }
        return new (_internal.TakeIterable$(E)).__(iterable, takeCount);
      }
      get iterator() {
        return new (TakeIteratorOfE()).new(this[_iterable$][$iterator], this[_takeCount$]);
      }
    }
    (TakeIterable.__ = function(_iterable, _takeCount) {
      if (_iterable == null) dart.nullFailed(I[37], 502, 23, "_iterable");
      if (_takeCount == null) dart.nullFailed(I[37], 502, 39, "_takeCount");
      this[_iterable$] = _iterable;
      this[_takeCount$] = _takeCount;
      TakeIterable.__proto__.new.call(this);
      ;
    }).prototype = TakeIterable.prototype;
    dart.addTypeTests(TakeIterable);
    TakeIterable.prototype[_is_TakeIterable_default] = true;
    dart.addTypeCaches(TakeIterable);
    dart.setGetterSignature(TakeIterable, () => ({
      __proto__: dart.getGetters(TakeIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(TakeIterable, I[25]);
    dart.setFieldSignature(TakeIterable, () => ({
      __proto__: dart.getFields(TakeIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_takeCount$]: dart.finalFieldType(core.int)
    }));
    dart.defineExtensionAccessors(TakeIterable, ['iterator']);
    return TakeIterable;
  });
  _internal.TakeIterable = _internal.TakeIterable$();
  dart.addTypeTests(_internal.TakeIterable, _is_TakeIterable_default);
  const _is_EfficientLengthTakeIterable_default = Symbol('_is_EfficientLengthTakeIterable_default');
  _internal.EfficientLengthTakeIterable$ = dart.generic(E => {
    class EfficientLengthTakeIterable extends _internal.TakeIterable$(E) {
      get length() {
        let iterableLength = this[_iterable$][$length];
        if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount$])) return this[_takeCount$];
        return iterableLength;
      }
    }
    (EfficientLengthTakeIterable.new = function(iterable, takeCount) {
      if (iterable == null) dart.nullFailed(I[37], 511, 43, "iterable");
      if (takeCount == null) dart.nullFailed(I[37], 511, 57, "takeCount");
      EfficientLengthTakeIterable.__proto__.__.call(this, iterable, takeCount);
      ;
    }).prototype = EfficientLengthTakeIterable.prototype;
    dart.addTypeTests(EfficientLengthTakeIterable);
    EfficientLengthTakeIterable.prototype[_is_EfficientLengthTakeIterable_default] = true;
    dart.addTypeCaches(EfficientLengthTakeIterable);
    EfficientLengthTakeIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
    dart.setLibraryUri(EfficientLengthTakeIterable, I[25]);
    dart.defineExtensionAccessors(EfficientLengthTakeIterable, ['length']);
    return EfficientLengthTakeIterable;
  });
  _internal.EfficientLengthTakeIterable = _internal.EfficientLengthTakeIterable$();
  dart.addTypeTests(_internal.EfficientLengthTakeIterable, _is_EfficientLengthTakeIterable_default);
  var _remaining$ = dart.privateName(_internal, "_remaining");
  const _is_TakeIterator_default = Symbol('_is_TakeIterator_default');
  _internal.TakeIterator$ = dart.generic(E => {
    class TakeIterator extends core.Iterator$(E) {
      moveNext() {
        this[_remaining$] = dart.notNull(this[_remaining$]) - 1;
        if (dart.notNull(this[_remaining$]) >= 0) {
          return this[_iterator$].moveNext();
        }
        this[_remaining$] = -1;
        return false;
      }
      get current() {
        if (dart.notNull(this[_remaining$]) < 0) return E.as(null);
        return this[_iterator$].current;
      }
    }
    (TakeIterator.new = function(_iterator, _remaining) {
      if (_iterator == null) dart.nullFailed(I[37], 525, 21, "_iterator");
      if (_remaining == null) dart.nullFailed(I[37], 525, 37, "_remaining");
      this[_iterator$] = _iterator;
      this[_remaining$] = _remaining;
      if (!(dart.notNull(this[_remaining$]) >= 0)) dart.assertFailed(null, I[37], 526, 12, "_remaining >= 0");
    }).prototype = TakeIterator.prototype;
    dart.addTypeTests(TakeIterator);
    TakeIterator.prototype[_is_TakeIterator_default] = true;
    dart.addTypeCaches(TakeIterator);
    dart.setMethodSignature(TakeIterator, () => ({
      __proto__: dart.getMethods(TakeIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(TakeIterator, () => ({
      __proto__: dart.getGetters(TakeIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(TakeIterator, I[25]);
    dart.setFieldSignature(TakeIterator, () => ({
      __proto__: dart.getFields(TakeIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
      [_remaining$]: dart.fieldType(core.int)
    }));
    return TakeIterator;
  });
  _internal.TakeIterator = _internal.TakeIterator$();
  dart.addTypeTests(_internal.TakeIterator, _is_TakeIterator_default);
  const _is_TakeWhileIterable_default = Symbol('_is_TakeWhileIterable_default');
  _internal.TakeWhileIterable$ = dart.generic(E => {
    var TakeWhileIteratorOfE = () => (TakeWhileIteratorOfE = dart.constFn(_internal.TakeWhileIterator$(E)))();
    class TakeWhileIterable extends core.Iterable$(E) {
      get iterator() {
        return new (TakeWhileIteratorOfE()).new(this[_iterable$][$iterator], this[_f$]);
      }
    }
    (TakeWhileIterable.new = function(_iterable, _f) {
      if (_iterable == null) dart.nullFailed(I[37], 552, 26, "_iterable");
      if (_f == null) dart.nullFailed(I[37], 552, 42, "_f");
      this[_iterable$] = _iterable;
      this[_f$] = _f;
      TakeWhileIterable.__proto__.new.call(this);
      ;
    }).prototype = TakeWhileIterable.prototype;
    dart.addTypeTests(TakeWhileIterable);
    TakeWhileIterable.prototype[_is_TakeWhileIterable_default] = true;
    dart.addTypeCaches(TakeWhileIterable);
    dart.setGetterSignature(TakeWhileIterable, () => ({
      __proto__: dart.getGetters(TakeWhileIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(TakeWhileIterable, I[25]);
    dart.setFieldSignature(TakeWhileIterable, () => ({
      __proto__: dart.getFields(TakeWhileIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
    }));
    dart.defineExtensionAccessors(TakeWhileIterable, ['iterator']);
    return TakeWhileIterable;
  });
  _internal.TakeWhileIterable = _internal.TakeWhileIterable$();
  dart.addTypeTests(_internal.TakeWhileIterable, _is_TakeWhileIterable_default);
  var _isFinished = dart.privateName(_internal, "_isFinished");
  const _is_TakeWhileIterator_default = Symbol('_is_TakeWhileIterator_default');
  _internal.TakeWhileIterator$ = dart.generic(E => {
    class TakeWhileIterator extends core.Iterator$(E) {
      moveNext() {
        let t82;
        if (dart.test(this[_isFinished])) return false;
        if (!dart.test(this[_iterator$].moveNext()) || !dart.test((t82 = this[_iterator$].current, this[_f$](t82)))) {
          this[_isFinished] = true;
          return false;
        }
        return true;
      }
      get current() {
        if (dart.test(this[_isFinished])) return E.as(null);
        return this[_iterator$].current;
      }
    }
    (TakeWhileIterator.new = function(_iterator, _f) {
      if (_iterator == null) dart.nullFailed(I[37], 564, 26, "_iterator");
      if (_f == null) dart.nullFailed(I[37], 564, 42, "_f");
      this[_isFinished] = false;
      this[_iterator$] = _iterator;
      this[_f$] = _f;
      ;
    }).prototype = TakeWhileIterator.prototype;
    dart.addTypeTests(TakeWhileIterator);
    TakeWhileIterator.prototype[_is_TakeWhileIterator_default] = true;
    dart.addTypeCaches(TakeWhileIterator);
    dart.setMethodSignature(TakeWhileIterator, () => ({
      __proto__: dart.getMethods(TakeWhileIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(TakeWhileIterator, () => ({
      __proto__: dart.getGetters(TakeWhileIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(TakeWhileIterator, I[25]);
    dart.setFieldSignature(TakeWhileIterator, () => ({
      __proto__: dart.getFields(TakeWhileIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E])),
      [_isFinished]: dart.fieldType(core.bool)
    }));
    return TakeWhileIterator;
  });
  _internal.TakeWhileIterator = _internal.TakeWhileIterator$();
  dart.addTypeTests(_internal.TakeWhileIterator, _is_TakeWhileIterator_default);
  var _skipCount$ = dart.privateName(_internal, "_skipCount");
  const _is_SkipIterable_default = Symbol('_is_SkipIterable_default');
  _internal.SkipIterable$ = dart.generic(E => {
    var SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
    var SkipIteratorOfE = () => (SkipIteratorOfE = dart.constFn(_internal.SkipIterator$(E)))();
    class SkipIterable extends core.Iterable$(E) {
      static new(iterable, count) {
        if (iterable == null) dart.nullFailed(I[37], 585, 36, "iterable");
        if (count == null) dart.nullFailed(I[37], 585, 50, "count");
        if (_internal.EfficientLengthIterable.is(iterable)) {
          return _internal.EfficientLengthSkipIterable$(E).new(iterable, count);
        }
        return new (_internal.SkipIterable$(E)).__(iterable, _internal._checkCount(count));
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[37], 594, 24, "count");
        return new (SkipIterableOfE()).__(this[_iterable$], dart.notNull(this[_skipCount$]) + dart.notNull(_internal._checkCount(count)));
      }
      get iterator() {
        return new (SkipIteratorOfE()).new(this[_iterable$][$iterator], this[_skipCount$]);
      }
    }
    (SkipIterable.__ = function(_iterable, _skipCount) {
      if (_iterable == null) dart.nullFailed(I[37], 592, 23, "_iterable");
      if (_skipCount == null) dart.nullFailed(I[37], 592, 39, "_skipCount");
      this[_iterable$] = _iterable;
      this[_skipCount$] = _skipCount;
      SkipIterable.__proto__.new.call(this);
      ;
    }).prototype = SkipIterable.prototype;
    dart.addTypeTests(SkipIterable);
    SkipIterable.prototype[_is_SkipIterable_default] = true;
    dart.addTypeCaches(SkipIterable);
    dart.setGetterSignature(SkipIterable, () => ({
      __proto__: dart.getGetters(SkipIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(SkipIterable, I[25]);
    dart.setFieldSignature(SkipIterable, () => ({
      __proto__: dart.getFields(SkipIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_skipCount$]: dart.finalFieldType(core.int)
    }));
    dart.defineExtensionMethods(SkipIterable, ['skip']);
    dart.defineExtensionAccessors(SkipIterable, ['iterator']);
    return SkipIterable;
  });
  _internal.SkipIterable = _internal.SkipIterable$();
  dart.addTypeTests(_internal.SkipIterable, _is_SkipIterable_default);
  const _is_EfficientLengthSkipIterable_default = Symbol('_is_EfficientLengthSkipIterable_default');
  _internal.EfficientLengthSkipIterable$ = dart.generic(E => {
    var EfficientLengthSkipIterableOfE = () => (EfficientLengthSkipIterableOfE = dart.constFn(_internal.EfficientLengthSkipIterable$(E)))();
    class EfficientLengthSkipIterable extends _internal.SkipIterable$(E) {
      static new(iterable, count) {
        if (iterable == null) dart.nullFailed(I[37], 605, 51, "iterable");
        if (count == null) dart.nullFailed(I[37], 605, 65, "count");
        return new (_internal.EfficientLengthSkipIterable$(E)).__(iterable, _internal._checkCount(count));
      }
      get length() {
        let length = dart.notNull(this[_iterable$][$length]) - dart.notNull(this[_skipCount$]);
        if (length >= 0) return length;
        return 0;
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[37], 618, 24, "count");
        return new (EfficientLengthSkipIterableOfE()).__(this[_iterable$], dart.notNull(this[_skipCount$]) + dart.notNull(_internal._checkCount(count)));
      }
    }
    (EfficientLengthSkipIterable.__ = function(iterable, count) {
      if (iterable == null) dart.nullFailed(I[37], 609, 45, "iterable");
      if (count == null) dart.nullFailed(I[37], 609, 59, "count");
      EfficientLengthSkipIterable.__proto__.__.call(this, iterable, count);
      ;
    }).prototype = EfficientLengthSkipIterable.prototype;
    dart.addTypeTests(EfficientLengthSkipIterable);
    EfficientLengthSkipIterable.prototype[_is_EfficientLengthSkipIterable_default] = true;
    dart.addTypeCaches(EfficientLengthSkipIterable);
    EfficientLengthSkipIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
    dart.setLibraryUri(EfficientLengthSkipIterable, I[25]);
    dart.defineExtensionMethods(EfficientLengthSkipIterable, ['skip']);
    dart.defineExtensionAccessors(EfficientLengthSkipIterable, ['length']);
    return EfficientLengthSkipIterable;
  });
  _internal.EfficientLengthSkipIterable = _internal.EfficientLengthSkipIterable$();
  dart.addTypeTests(_internal.EfficientLengthSkipIterable, _is_EfficientLengthSkipIterable_default);
  const _is_SkipIterator_default = Symbol('_is_SkipIterator_default');
  _internal.SkipIterator$ = dart.generic(E => {
    class SkipIterator extends core.Iterator$(E) {
      moveNext() {
        for (let i = 0; i < dart.notNull(this[_skipCount$]); i = i + 1)
          this[_iterator$].moveNext();
        this[_skipCount$] = 0;
        return this[_iterator$].moveNext();
      }
      get current() {
        return this[_iterator$].current;
      }
    }
    (SkipIterator.new = function(_iterator, _skipCount) {
      if (_iterator == null) dart.nullFailed(I[37], 634, 21, "_iterator");
      if (_skipCount == null) dart.nullFailed(I[37], 634, 37, "_skipCount");
      this[_iterator$] = _iterator;
      this[_skipCount$] = _skipCount;
      if (!(dart.notNull(this[_skipCount$]) >= 0)) dart.assertFailed(null, I[37], 635, 12, "_skipCount >= 0");
    }).prototype = SkipIterator.prototype;
    dart.addTypeTests(SkipIterator);
    SkipIterator.prototype[_is_SkipIterator_default] = true;
    dart.addTypeCaches(SkipIterator);
    dart.setMethodSignature(SkipIterator, () => ({
      __proto__: dart.getMethods(SkipIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(SkipIterator, () => ({
      __proto__: dart.getGetters(SkipIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(SkipIterator, I[25]);
    dart.setFieldSignature(SkipIterator, () => ({
      __proto__: dart.getFields(SkipIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
      [_skipCount$]: dart.fieldType(core.int)
    }));
    return SkipIterator;
  });
  _internal.SkipIterator = _internal.SkipIterator$();
  dart.addTypeTests(_internal.SkipIterator, _is_SkipIterator_default);
  const _is_SkipWhileIterable_default = Symbol('_is_SkipWhileIterable_default');
  _internal.SkipWhileIterable$ = dart.generic(E => {
    var SkipWhileIteratorOfE = () => (SkipWhileIteratorOfE = dart.constFn(_internal.SkipWhileIterator$(E)))();
    class SkipWhileIterable extends core.Iterable$(E) {
      get iterator() {
        return new (SkipWhileIteratorOfE()).new(this[_iterable$][$iterator], this[_f$]);
      }
    }
    (SkipWhileIterable.new = function(_iterable, _f) {
      if (_iterable == null) dart.nullFailed(I[37], 651, 26, "_iterable");
      if (_f == null) dart.nullFailed(I[37], 651, 42, "_f");
      this[_iterable$] = _iterable;
      this[_f$] = _f;
      SkipWhileIterable.__proto__.new.call(this);
      ;
    }).prototype = SkipWhileIterable.prototype;
    dart.addTypeTests(SkipWhileIterable);
    SkipWhileIterable.prototype[_is_SkipWhileIterable_default] = true;
    dart.addTypeCaches(SkipWhileIterable);
    dart.setGetterSignature(SkipWhileIterable, () => ({
      __proto__: dart.getGetters(SkipWhileIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(SkipWhileIterable, I[25]);
    dart.setFieldSignature(SkipWhileIterable, () => ({
      __proto__: dart.getFields(SkipWhileIterable.__proto__),
      [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
    }));
    dart.defineExtensionAccessors(SkipWhileIterable, ['iterator']);
    return SkipWhileIterable;
  });
  _internal.SkipWhileIterable = _internal.SkipWhileIterable$();
  dart.addTypeTests(_internal.SkipWhileIterable, _is_SkipWhileIterable_default);
  var _hasSkipped = dart.privateName(_internal, "_hasSkipped");
  const _is_SkipWhileIterator_default = Symbol('_is_SkipWhileIterator_default');
  _internal.SkipWhileIterator$ = dart.generic(E => {
    class SkipWhileIterator extends core.Iterator$(E) {
      moveNext() {
        let t82;
        if (!dart.test(this[_hasSkipped])) {
          this[_hasSkipped] = true;
          while (dart.test(this[_iterator$].moveNext())) {
            if (!dart.test((t82 = this[_iterator$].current, this[_f$](t82)))) return true;
          }
        }
        return this[_iterator$].moveNext();
      }
      get current() {
        return this[_iterator$].current;
      }
    }
    (SkipWhileIterator.new = function(_iterator, _f) {
      if (_iterator == null) dart.nullFailed(I[37], 663, 26, "_iterator");
      if (_f == null) dart.nullFailed(I[37], 663, 42, "_f");
      this[_hasSkipped] = false;
      this[_iterator$] = _iterator;
      this[_f$] = _f;
      ;
    }).prototype = SkipWhileIterator.prototype;
    dart.addTypeTests(SkipWhileIterator);
    SkipWhileIterator.prototype[_is_SkipWhileIterator_default] = true;
    dart.addTypeCaches(SkipWhileIterator);
    dart.setMethodSignature(SkipWhileIterator, () => ({
      __proto__: dart.getMethods(SkipWhileIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(SkipWhileIterator, () => ({
      __proto__: dart.getGetters(SkipWhileIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(SkipWhileIterator, I[25]);
    dart.setFieldSignature(SkipWhileIterator, () => ({
      __proto__: dart.getFields(SkipWhileIterator.__proto__),
      [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
      [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E])),
      [_hasSkipped]: dart.fieldType(core.bool)
    }));
    return SkipWhileIterator;
  });
  _internal.SkipWhileIterator = _internal.SkipWhileIterator$();
  dart.addTypeTests(_internal.SkipWhileIterator, _is_SkipWhileIterator_default);
  const _is_EmptyIterable_default = Symbol('_is_EmptyIterable_default');
  _internal.EmptyIterable$ = dart.generic(E => {
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
    class EmptyIterable extends _internal.EfficientLengthIterable$(E) {
      get iterator() {
        return C[20] || CT.C20;
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[37], 686, 21, "action");
      }
      get isEmpty() {
        return true;
      }
      get length() {
        return 0;
      }
      get first() {
        dart.throw(_internal.IterableElementError.noElement());
      }
      get last() {
        dart.throw(_internal.IterableElementError.noElement());
      }
      get single() {
        dart.throw(_internal.IterableElementError.noElement());
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[37], 704, 19, "index");
        dart.throw(new core.RangeError.range(index, 0, 0, "index"));
      }
      contains(element) {
        return false;
      }
      every(test) {
        if (test == null) dart.nullFailed(I[37], 710, 19, "test");
        return true;
      }
      any(test) {
        if (test == null) dart.nullFailed(I[37], 712, 17, "test");
        return false;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 714, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 719, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[37], 724, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[37], 729, 23, "separator");
        return "";
      }
      where(test) {
        if (test == null) dart.nullFailed(I[37], 731, 26, "test");
        return this;
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[37], 733, 24, "f");
        return new (_internal.EmptyIterable$(T)).new();
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[37], 735, 14, "combine");
        dart.throw(_internal.IterableElementError.noElement());
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[37], 739, 31, "combine");
        return initialValue;
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[37], 743, 24, "count");
        core.RangeError.checkNotNegative(count, "count");
        return this;
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[37], 748, 30, "test");
        return this;
      }
      take(count) {
        if (count == null) dart.nullFailed(I[37], 750, 24, "count");
        core.RangeError.checkNotNegative(count, "count");
        return this;
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[37], 755, 30, "test");
        return this;
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[37], 757, 24, "growable");
        return ListOfE().empty({growable: growable});
      }
      toSet() {
        return new (_HashSetOfE()).new();
      }
    }
    (EmptyIterable.new = function() {
      EmptyIterable.__proto__.new.call(this);
      ;
    }).prototype = EmptyIterable.prototype;
    dart.addTypeTests(EmptyIterable);
    EmptyIterable.prototype[_is_EmptyIterable_default] = true;
    dart.addTypeCaches(EmptyIterable);
    dart.setMethodSignature(EmptyIterable, () => ({
      __proto__: dart.getMethods(EmptyIterable.__proto__),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(EmptyIterable, () => ({
      __proto__: dart.getGetters(EmptyIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(EmptyIterable, I[25]);
    dart.defineExtensionMethods(EmptyIterable, [
      'forEach',
      'elementAt',
      'contains',
      'every',
      'any',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'join',
      'where',
      'map',
      'reduce',
      'fold',
      'skip',
      'skipWhile',
      'take',
      'takeWhile',
      'toList',
      'toSet'
    ]);
    dart.defineExtensionAccessors(EmptyIterable, [
      'iterator',
      'isEmpty',
      'length',
      'first',
      'last',
      'single'
    ]);
    return EmptyIterable;
  });
  _internal.EmptyIterable = _internal.EmptyIterable$();
  dart.addTypeTests(_internal.EmptyIterable, _is_EmptyIterable_default);
  const _is_EmptyIterator_default = Symbol('_is_EmptyIterator_default');
  _internal.EmptyIterator$ = dart.generic(E => {
    class EmptyIterator extends core.Object {
      moveNext() {
        return false;
      }
      get current() {
        dart.throw(_internal.IterableElementError.noElement());
      }
    }
    (EmptyIterator.new = function() {
      ;
    }).prototype = EmptyIterator.prototype;
    dart.addTypeTests(EmptyIterator);
    EmptyIterator.prototype[_is_EmptyIterator_default] = true;
    dart.addTypeCaches(EmptyIterator);
    EmptyIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(EmptyIterator, () => ({
      __proto__: dart.getMethods(EmptyIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(EmptyIterator, () => ({
      __proto__: dart.getGetters(EmptyIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(EmptyIterator, I[25]);
    return EmptyIterator;
  });
  _internal.EmptyIterator = _internal.EmptyIterator$();
  dart.addTypeTests(_internal.EmptyIterator, _is_EmptyIterator_default);
  var _first$ = dart.privateName(_internal, "_first");
  var _second$ = dart.privateName(_internal, "_second");
  const _is_FollowedByIterable_default = Symbol('_is_FollowedByIterable_default');
  _internal.FollowedByIterable$ = dart.generic(E => {
    var FollowedByIteratorOfE = () => (FollowedByIteratorOfE = dart.constFn(_internal.FollowedByIterator$(E)))();
    class FollowedByIterable extends core.Iterable$(E) {
      static firstEfficient(first, second) {
        if (first == null) dart.nullFailed(I[37], 777, 34, "first");
        if (second == null) dart.nullFailed(I[37], 777, 53, "second");
        if (_internal.EfficientLengthIterable$(E).is(second)) {
          return new (_internal.EfficientLengthFollowedByIterable$(E)).new(first, second);
        }
        return new (_internal.FollowedByIterable$(E)).new(first, second);
      }
      get iterator() {
        return new (FollowedByIteratorOfE()).new(this[_first$], this[_second$]);
      }
      get length() {
        return dart.notNull(this[_first$][$length]) + dart.notNull(this[_second$][$length]);
      }
      get isEmpty() {
        return dart.test(this[_first$][$isEmpty]) && dart.test(this[_second$][$isEmpty]);
      }
      get isNotEmpty() {
        return dart.test(this[_first$][$isNotEmpty]) || dart.test(this[_second$][$isNotEmpty]);
      }
      contains(value) {
        return dart.test(this[_first$][$contains](value)) || dart.test(this[_second$][$contains](value));
      }
      get first() {
        let iterator = this[_first$][$iterator];
        if (dart.test(iterator.moveNext())) return iterator.current;
        return this[_second$][$first];
      }
      get last() {
        let iterator = this[_second$][$iterator];
        if (dart.test(iterator.moveNext())) {
          let last = iterator.current;
          while (dart.test(iterator.moveNext()))
            last = iterator.current;
          return last;
        }
        return this[_first$][$last];
      }
    }
    (FollowedByIterable.new = function(_first, _second) {
      if (_first == null) dart.nullFailed(I[37], 774, 27, "_first");
      if (_second == null) dart.nullFailed(I[37], 774, 40, "_second");
      this[_first$] = _first;
      this[_second$] = _second;
      FollowedByIterable.__proto__.new.call(this);
      ;
    }).prototype = FollowedByIterable.prototype;
    dart.addTypeTests(FollowedByIterable);
    FollowedByIterable.prototype[_is_FollowedByIterable_default] = true;
    dart.addTypeCaches(FollowedByIterable);
    dart.setGetterSignature(FollowedByIterable, () => ({
      __proto__: dart.getGetters(FollowedByIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(FollowedByIterable, I[25]);
    dart.setFieldSignature(FollowedByIterable, () => ({
      __proto__: dart.getFields(FollowedByIterable.__proto__),
      [_first$]: dart.finalFieldType(core.Iterable$(E)),
      [_second$]: dart.finalFieldType(core.Iterable$(E))
    }));
    dart.defineExtensionMethods(FollowedByIterable, ['contains']);
    dart.defineExtensionAccessors(FollowedByIterable, [
      'iterator',
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last'
    ]);
    return FollowedByIterable;
  });
  _internal.FollowedByIterable = _internal.FollowedByIterable$();
  dart.addTypeTests(_internal.FollowedByIterable, _is_FollowedByIterable_default);
  const _is_EfficientLengthFollowedByIterable_default = Symbol('_is_EfficientLengthFollowedByIterable_default');
  _internal.EfficientLengthFollowedByIterable$ = dart.generic(E => {
    class EfficientLengthFollowedByIterable extends _internal.FollowedByIterable$(E) {
      elementAt(index) {
        if (index == null) dart.nullFailed(I[37], 820, 19, "index");
        let firstLength = this[_first$][$length];
        if (dart.notNull(index) < dart.notNull(firstLength)) return this[_first$][$elementAt](index);
        return this[_second$][$elementAt](dart.notNull(index) - dart.notNull(firstLength));
      }
      get first() {
        if (dart.test(this[_first$][$isNotEmpty])) return this[_first$][$first];
        return this[_second$][$first];
      }
      get last() {
        if (dart.test(this[_second$][$isNotEmpty])) return this[_second$][$last];
        return this[_first$][$last];
      }
    }
    (EfficientLengthFollowedByIterable.new = function(first, second) {
      if (first == null) dart.nullFailed(I[37], 817, 34, "first");
      if (second == null) dart.nullFailed(I[37], 817, 68, "second");
      EfficientLengthFollowedByIterable.__proto__.new.call(this, first, second);
      ;
    }).prototype = EfficientLengthFollowedByIterable.prototype;
    dart.addTypeTests(EfficientLengthFollowedByIterable);
    EfficientLengthFollowedByIterable.prototype[_is_EfficientLengthFollowedByIterable_default] = true;
    dart.addTypeCaches(EfficientLengthFollowedByIterable);
    EfficientLengthFollowedByIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
    dart.setLibraryUri(EfficientLengthFollowedByIterable, I[25]);
    dart.defineExtensionMethods(EfficientLengthFollowedByIterable, ['elementAt']);
    dart.defineExtensionAccessors(EfficientLengthFollowedByIterable, ['first', 'last']);
    return EfficientLengthFollowedByIterable;
  });
  _internal.EfficientLengthFollowedByIterable = _internal.EfficientLengthFollowedByIterable$();
  dart.addTypeTests(_internal.EfficientLengthFollowedByIterable, _is_EfficientLengthFollowedByIterable_default);
  var _nextIterable$ = dart.privateName(_internal, "_nextIterable");
  var _currentIterator = dart.privateName(_internal, "_currentIterator");
  const _is_FollowedByIterator_default = Symbol('_is_FollowedByIterator_default');
  _internal.FollowedByIterator$ = dart.generic(E => {
    class FollowedByIterator extends core.Object {
      moveNext() {
        if (dart.test(this[_currentIterator].moveNext())) return true;
        if (this[_nextIterable$] != null) {
          this[_currentIterator] = dart.nullCheck(this[_nextIterable$])[$iterator];
          this[_nextIterable$] = null;
          return this[_currentIterator].moveNext();
        }
        return false;
      }
      get current() {
        return this[_currentIterator].current;
      }
    }
    (FollowedByIterator.new = function(first, _nextIterable) {
      if (first == null) dart.nullFailed(I[37], 841, 34, "first");
      this[_nextIterable$] = _nextIterable;
      this[_currentIterator] = first[$iterator];
      ;
    }).prototype = FollowedByIterator.prototype;
    dart.addTypeTests(FollowedByIterator);
    FollowedByIterator.prototype[_is_FollowedByIterator_default] = true;
    dart.addTypeCaches(FollowedByIterator);
    FollowedByIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(FollowedByIterator, () => ({
      __proto__: dart.getMethods(FollowedByIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(FollowedByIterator, () => ({
      __proto__: dart.getGetters(FollowedByIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(FollowedByIterator, I[25]);
    dart.setFieldSignature(FollowedByIterator, () => ({
      __proto__: dart.getFields(FollowedByIterator.__proto__),
      [_currentIterator]: dart.fieldType(core.Iterator$(E)),
      [_nextIterable$]: dart.fieldType(dart.nullable(core.Iterable$(E)))
    }));
    return FollowedByIterator;
  });
  _internal.FollowedByIterator = _internal.FollowedByIterator$();
  dart.addTypeTests(_internal.FollowedByIterator, _is_FollowedByIterator_default);
  const _is_WhereTypeIterable_default = Symbol('_is_WhereTypeIterable_default');
  _internal.WhereTypeIterable$ = dart.generic(T => {
    var WhereTypeIteratorOfT = () => (WhereTypeIteratorOfT = dart.constFn(_internal.WhereTypeIterator$(T)))();
    class WhereTypeIterable extends core.Iterable$(T) {
      get iterator() {
        return new (WhereTypeIteratorOfT()).new(this[_source$][$iterator]);
      }
    }
    (WhereTypeIterable.new = function(_source) {
      if (_source == null) dart.nullFailed(I[37], 859, 26, "_source");
      this[_source$] = _source;
      WhereTypeIterable.__proto__.new.call(this);
      ;
    }).prototype = WhereTypeIterable.prototype;
    dart.addTypeTests(WhereTypeIterable);
    WhereTypeIterable.prototype[_is_WhereTypeIterable_default] = true;
    dart.addTypeCaches(WhereTypeIterable);
    dart.setGetterSignature(WhereTypeIterable, () => ({
      __proto__: dart.getGetters(WhereTypeIterable.__proto__),
      iterator: core.Iterator$(T),
      [$iterator]: core.Iterator$(T)
    }));
    dart.setLibraryUri(WhereTypeIterable, I[25]);
    dart.setFieldSignature(WhereTypeIterable, () => ({
      __proto__: dart.getFields(WhereTypeIterable.__proto__),
      [_source$]: dart.finalFieldType(core.Iterable$(dart.nullable(core.Object)))
    }));
    dart.defineExtensionAccessors(WhereTypeIterable, ['iterator']);
    return WhereTypeIterable;
  });
  _internal.WhereTypeIterable = _internal.WhereTypeIterable$();
  dart.addTypeTests(_internal.WhereTypeIterable, _is_WhereTypeIterable_default);
  const _is_WhereTypeIterator_default = Symbol('_is_WhereTypeIterator_default');
  _internal.WhereTypeIterator$ = dart.generic(T => {
    class WhereTypeIterator extends core.Object {
      moveNext() {
        while (dart.test(this[_source$].moveNext())) {
          if (T.is(this[_source$].current)) return true;
        }
        return false;
      }
      get current() {
        return T.as(this[_source$].current);
      }
    }
    (WhereTypeIterator.new = function(_source) {
      if (_source == null) dart.nullFailed(I[37], 865, 26, "_source");
      this[_source$] = _source;
      ;
    }).prototype = WhereTypeIterator.prototype;
    dart.addTypeTests(WhereTypeIterator);
    WhereTypeIterator.prototype[_is_WhereTypeIterator_default] = true;
    dart.addTypeCaches(WhereTypeIterator);
    WhereTypeIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(WhereTypeIterator, () => ({
      __proto__: dart.getMethods(WhereTypeIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(WhereTypeIterator, () => ({
      __proto__: dart.getGetters(WhereTypeIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(WhereTypeIterator, I[25]);
    dart.setFieldSignature(WhereTypeIterator, () => ({
      __proto__: dart.getFields(WhereTypeIterator.__proto__),
      [_source$]: dart.finalFieldType(core.Iterator$(dart.nullable(core.Object)))
    }));
    return WhereTypeIterator;
  });
  _internal.WhereTypeIterator = _internal.WhereTypeIterator$();
  dart.addTypeTests(_internal.WhereTypeIterator, _is_WhereTypeIterator_default);
  _internal.IterableElementError = class IterableElementError extends core.Object {
    static noElement() {
      return new core.StateError.new("No element");
    }
    static tooMany() {
      return new core.StateError.new("Too many elements");
    }
    static tooFew() {
      return new core.StateError.new("Too few elements");
    }
  };
  (_internal.IterableElementError.new = function() {
    ;
  }).prototype = _internal.IterableElementError.prototype;
  dart.addTypeTests(_internal.IterableElementError);
  dart.addTypeCaches(_internal.IterableElementError);
  dart.setLibraryUri(_internal.IterableElementError, I[25]);
  const _is_FixedLengthListMixin_default = Symbol('_is_FixedLengthListMixin_default');
  _internal.FixedLengthListMixin$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class FixedLengthListMixin extends core.Object {
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[22], 14, 18, "newLength");
        dart.throw(new core.UnsupportedError.new("Cannot change the length of a fixed-length list"));
      }
      add(value) {
        E.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
      }
      insert(index, value) {
        if (index == null) dart.nullFailed(I[22], 25, 19, "index");
        E.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
      }
      insertAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 30, 22, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 30, 38, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 35, 27, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
      }
      remove(element) {
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[22], 45, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[22], 50, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      clear() {
        dart.throw(new core.UnsupportedError.new("Cannot clear a fixed-length list"));
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[22], 60, 18, "index");
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      removeLast() {
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[22], 70, 24, "start");
        if (end == null) dart.nullFailed(I[22], 70, 35, "end");
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[22], 75, 25, "start");
        if (end == null) dart.nullFailed(I[22], 75, 36, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 75, 53, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
      }
    }
    (FixedLengthListMixin.new = function() {
      ;
    }).prototype = FixedLengthListMixin.prototype;
    dart.addTypeTests(FixedLengthListMixin);
    FixedLengthListMixin.prototype[_is_FixedLengthListMixin_default] = true;
    dart.addTypeCaches(FixedLengthListMixin);
    dart.setMethodSignature(FixedLengthListMixin, () => ({
      __proto__: dart.getMethods(FixedLengthListMixin.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      insert: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insert]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      insertAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insertAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      removeAt: dart.fnType(E, [core.int]),
      [$removeAt]: dart.fnType(E, [core.int]),
      removeLast: dart.fnType(E, []),
      [$removeLast]: dart.fnType(E, []),
      removeRange: dart.fnType(dart.void, [core.int, core.int]),
      [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
      replaceRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)])
    }));
    dart.setSetterSignature(FixedLengthListMixin, () => ({
      __proto__: dart.getSetters(FixedLengthListMixin.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(FixedLengthListMixin, I[25]);
    dart.defineExtensionMethods(FixedLengthListMixin, [
      'add',
      'insert',
      'insertAll',
      'addAll',
      'remove',
      'removeWhere',
      'retainWhere',
      'clear',
      'removeAt',
      'removeLast',
      'removeRange',
      'replaceRange'
    ]);
    dart.defineExtensionAccessors(FixedLengthListMixin, ['length']);
    return FixedLengthListMixin;
  });
  _internal.FixedLengthListMixin = _internal.FixedLengthListMixin$();
  dart.addTypeTests(_internal.FixedLengthListMixin, _is_FixedLengthListMixin_default);
  const _is_FixedLengthListBase_default = Symbol('_is_FixedLengthListBase_default');
  _internal.FixedLengthListBase$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    const ListBase_FixedLengthListMixin$36 = class ListBase_FixedLengthListMixin extends collection.ListBase$(E) {};
    (ListBase_FixedLengthListMixin$36.new = function() {
    }).prototype = ListBase_FixedLengthListMixin$36.prototype;
    dart.applyMixin(ListBase_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(E));
    class FixedLengthListBase extends ListBase_FixedLengthListMixin$36 {
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[22], 199, 16, "newLength");
        return super[$length] = newLength;
      }
      add(value) {
        E.as(value);
        return super[$add](value);
      }
      insert(index, value) {
        if (index == null) dart.nullFailed(I[22], 199, 16, "index");
        E.as(value);
        return super[$insert](index, value);
      }
      insertAll(at, iterable) {
        if (at == null) dart.nullFailed(I[22], 199, 16, "at");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 199, 16, "iterable");
        return super[$insertAll](at, iterable);
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 199, 16, "iterable");
        return super[$addAll](iterable);
      }
      remove(element) {
        return super[$remove](element);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[22], 199, 16, "test");
        return super[$removeWhere](test);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[22], 199, 16, "test");
        return super[$retainWhere](test);
      }
      clear() {
        return super[$clear]();
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[22], 199, 16, "index");
        return super[$removeAt](index);
      }
      removeLast() {
        return super[$removeLast]();
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[22], 199, 16, "start");
        if (end == null) dart.nullFailed(I[22], 199, 16, "end");
        return super[$removeRange](start, end);
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[22], 199, 16, "start");
        if (end == null) dart.nullFailed(I[22], 199, 16, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[22], 199, 16, "iterable");
        return super[$replaceRange](start, end, iterable);
      }
    }
    (FixedLengthListBase.new = function() {
      ;
    }).prototype = FixedLengthListBase.prototype;
    dart.addTypeTests(FixedLengthListBase);
    FixedLengthListBase.prototype[_is_FixedLengthListBase_default] = true;
    dart.addTypeCaches(FixedLengthListBase);
    dart.setSetterSignature(FixedLengthListBase, () => ({
      __proto__: dart.getSetters(FixedLengthListBase.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(FixedLengthListBase, I[25]);
    dart.defineExtensionMethods(FixedLengthListBase, [
      'add',
      'insert',
      'insertAll',
      'addAll',
      'remove',
      'removeWhere',
      'retainWhere',
      'clear',
      'removeAt',
      'removeLast',
      'removeRange',
      'replaceRange'
    ]);
    dart.defineExtensionAccessors(FixedLengthListBase, ['length']);
    return FixedLengthListBase;
  });
  _internal.FixedLengthListBase = _internal.FixedLengthListBase$();
  dart.addTypeTests(_internal.FixedLengthListBase, _is_FixedLengthListBase_default);
  var _backedList$ = dart.privateName(_internal, "_backedList");
  _internal._ListIndicesIterable = class _ListIndicesIterable extends _internal.ListIterable$(core.int) {
    get length() {
      return this[_backedList$][$length];
    }
    elementAt(index) {
      if (index == null) dart.nullFailed(I[22], 217, 21, "index");
      core.RangeError.checkValidIndex(index, this);
      return index;
    }
  };
  (_internal._ListIndicesIterable.new = function(_backedList) {
    if (_backedList == null) dart.nullFailed(I[22], 214, 29, "_backedList");
    this[_backedList$] = _backedList;
    _internal._ListIndicesIterable.__proto__.new.call(this);
    ;
  }).prototype = _internal._ListIndicesIterable.prototype;
  dart.addTypeTests(_internal._ListIndicesIterable);
  dart.addTypeCaches(_internal._ListIndicesIterable);
  dart.setLibraryUri(_internal._ListIndicesIterable, I[25]);
  dart.setFieldSignature(_internal._ListIndicesIterable, () => ({
    __proto__: dart.getFields(_internal._ListIndicesIterable.__proto__),
    [_backedList$]: dart.fieldType(core.List)
  }));
  dart.defineExtensionMethods(_internal._ListIndicesIterable, ['elementAt']);
  dart.defineExtensionAccessors(_internal._ListIndicesIterable, ['length']);
  var _values$ = dart.privateName(_internal, "_values");
  const _is__UnmodifiableMapMixin_default = Symbol('_is__UnmodifiableMapMixin_default');
  collection._UnmodifiableMapMixin$ = dart.generic((K, V) => {
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var MapEntryOfK$V = () => (MapEntryOfK$V = dart.constFn(core.MapEntry$(K, V)))();
    var IterableOfMapEntryOfK$V = () => (IterableOfMapEntryOfK$V = dart.constFn(core.Iterable$(MapEntryOfK$V())))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    class _UnmodifiableMapMixin extends core.Object {
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
        return value$;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[35], 273, 25, "other");
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      addEntries(entries) {
        IterableOfMapEntryOfK$V().as(entries);
        if (entries == null) dart.nullFailed(I[35], 278, 44, "entries");
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      clear() {
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      remove(key) {
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[35], 293, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[35], 298, 26, "ifAbsent");
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      update(key, update, opts) {
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[35], 303, 21, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[35], 308, 20, "update");
        dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      }
    }
    (_UnmodifiableMapMixin.new = function() {
      ;
    }).prototype = _UnmodifiableMapMixin.prototype;
    _UnmodifiableMapMixin.prototype[dart.isMap] = true;
    dart.addTypeTests(_UnmodifiableMapMixin);
    _UnmodifiableMapMixin.prototype[_is__UnmodifiableMapMixin_default] = true;
    dart.addTypeCaches(_UnmodifiableMapMixin);
    _UnmodifiableMapMixin[dart.implements] = () => [core.Map$(K, V)];
    dart.setMethodSignature(_UnmodifiableMapMixin, () => ({
      __proto__: dart.getMethods(_UnmodifiableMapMixin.__proto__),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addEntries: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addEntries]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
      putIfAbsent: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$putIfAbsent]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      update: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      [$update]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      updateAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$updateAll]: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_UnmodifiableMapMixin, I[24]);
    dart.defineExtensionMethods(_UnmodifiableMapMixin, [
      '_set',
      'addAll',
      'addEntries',
      'clear',
      'remove',
      'removeWhere',
      'putIfAbsent',
      'update',
      'updateAll'
    ]);
    return _UnmodifiableMapMixin;
  });
  collection._UnmodifiableMapMixin = collection._UnmodifiableMapMixin$();
  dart.addTypeTests(collection._UnmodifiableMapMixin, _is__UnmodifiableMapMixin_default);
  const _is_UnmodifiableMapBase_default = Symbol('_is_UnmodifiableMapBase_default');
  collection.UnmodifiableMapBase$ = dart.generic((K, V) => {
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var MapEntryOfK$V = () => (MapEntryOfK$V = dart.constFn(core.MapEntry$(K, V)))();
    var IterableOfMapEntryOfK$V = () => (IterableOfMapEntryOfK$V = dart.constFn(core.Iterable$(MapEntryOfK$V())))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    const MapBase__UnmodifiableMapMixin$36 = class MapBase__UnmodifiableMapMixin extends collection.MapBase$(K, V) {};
    (MapBase__UnmodifiableMapMixin$36.new = function() {
    }).prototype = MapBase__UnmodifiableMapMixin$36.prototype;
    dart.applyMixin(MapBase__UnmodifiableMapMixin$36, collection._UnmodifiableMapMixin$(K, V));
    class UnmodifiableMapBase extends MapBase__UnmodifiableMapMixin$36 {
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        super._set(key, value);
        return value$;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[35], 217, 16, "other");
        return super.addAll(other);
      }
      addEntries(entries) {
        IterableOfMapEntryOfK$V().as(entries);
        if (entries == null) dart.nullFailed(I[35], 217, 16, "entries");
        return super.addEntries(entries);
      }
      clear() {
        return super.clear();
      }
      remove(key) {
        return super.remove(key);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[35], 217, 16, "test");
        return super.removeWhere(test);
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[35], 217, 16, "ifAbsent");
        return super.putIfAbsent(key, ifAbsent);
      }
      update(key, update, opts) {
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[35], 217, 16, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        return super.update(key, update, {ifAbsent: ifAbsent});
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[35], 217, 16, "update");
        return super.updateAll(update);
      }
    }
    (UnmodifiableMapBase.new = function() {
      ;
    }).prototype = UnmodifiableMapBase.prototype;
    dart.addTypeTests(UnmodifiableMapBase);
    UnmodifiableMapBase.prototype[_is_UnmodifiableMapBase_default] = true;
    dart.addTypeCaches(UnmodifiableMapBase);
    dart.setMethodSignature(UnmodifiableMapBase, () => ({
      __proto__: dart.getMethods(UnmodifiableMapBase.__proto__),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(UnmodifiableMapBase, I[24]);
    dart.defineExtensionMethods(UnmodifiableMapBase, [
      '_set',
      'addAll',
      'addEntries',
      'clear',
      'remove',
      'removeWhere',
      'putIfAbsent',
      'update',
      'updateAll'
    ]);
    return UnmodifiableMapBase;
  });
  collection.UnmodifiableMapBase = collection.UnmodifiableMapBase$();
  dart.addTypeTests(collection.UnmodifiableMapBase, _is_UnmodifiableMapBase_default);
  const _is_ListMapView_default = Symbol('_is_ListMapView_default');
  _internal.ListMapView$ = dart.generic(E => {
    var SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
    class ListMapView extends collection.UnmodifiableMapBase$(core.int, E) {
      _get(key) {
        return dart.test(this.containsKey(key)) ? this[_values$][$_get](core.int.as(key)) : null;
      }
      get length() {
        return this[_values$][$length];
      }
      get values() {
        return new (SubListIterableOfE()).new(this[_values$], 0, null);
      }
      get keys() {
        return new _internal._ListIndicesIterable.new(this[_values$]);
      }
      get isEmpty() {
        return this[_values$][$isEmpty];
      }
      get isNotEmpty() {
        return this[_values$][$isNotEmpty];
      }
      containsValue(value) {
        return this[_values$][$contains](value);
      }
      containsKey(key) {
        return core.int.is(key) && dart.notNull(key) >= 0 && dart.notNull(key) < dart.notNull(this.length);
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[22], 239, 21, "f");
        let length = this[_values$][$length];
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          f(i, this[_values$][$_get](i));
          if (length != this[_values$][$length]) {
            dart.throw(new core.ConcurrentModificationError.new(this[_values$]));
          }
        }
      }
    }
    (ListMapView.new = function(_values) {
      if (_values == null) dart.nullFailed(I[22], 226, 20, "_values");
      this[_values$] = _values;
      ;
    }).prototype = ListMapView.prototype;
    dart.addTypeTests(ListMapView);
    ListMapView.prototype[_is_ListMapView_default] = true;
    dart.addTypeCaches(ListMapView);
    dart.setMethodSignature(ListMapView, () => ({
      __proto__: dart.getMethods(ListMapView.__proto__),
      _get: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(ListMapView, () => ({
      __proto__: dart.getGetters(ListMapView.__proto__),
      keys: core.Iterable$(core.int),
      [$keys]: core.Iterable$(core.int)
    }));
    dart.setLibraryUri(ListMapView, I[25]);
    dart.setFieldSignature(ListMapView, () => ({
      __proto__: dart.getFields(ListMapView.__proto__),
      [_values$]: dart.fieldType(core.List$(E))
    }));
    dart.defineExtensionMethods(ListMapView, ['_get', 'containsValue', 'containsKey', 'forEach']);
    dart.defineExtensionAccessors(ListMapView, [
      'length',
      'values',
      'keys',
      'isEmpty',
      'isNotEmpty'
    ]);
    return ListMapView;
  });
  _internal.ListMapView = _internal.ListMapView$();
  dart.addTypeTests(_internal.ListMapView, _is_ListMapView_default);
  const _is_ReversedListIterable_default = Symbol('_is_ReversedListIterable_default');
  _internal.ReversedListIterable$ = dart.generic(E => {
    class ReversedListIterable extends _internal.ListIterable$(E) {
      get length() {
        return this[_source$][$length];
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[22], 256, 19, "index");
        return this[_source$][$elementAt](dart.notNull(this[_source$][$length]) - 1 - dart.notNull(index));
      }
    }
    (ReversedListIterable.new = function(_source) {
      if (_source == null) dart.nullFailed(I[22], 252, 29, "_source");
      this[_source$] = _source;
      ReversedListIterable.__proto__.new.call(this);
      ;
    }).prototype = ReversedListIterable.prototype;
    dart.addTypeTests(ReversedListIterable);
    ReversedListIterable.prototype[_is_ReversedListIterable_default] = true;
    dart.addTypeCaches(ReversedListIterable);
    dart.setLibraryUri(ReversedListIterable, I[25]);
    dart.setFieldSignature(ReversedListIterable, () => ({
      __proto__: dart.getFields(ReversedListIterable.__proto__),
      [_source$]: dart.fieldType(core.Iterable$(E))
    }));
    dart.defineExtensionMethods(ReversedListIterable, ['elementAt']);
    dart.defineExtensionAccessors(ReversedListIterable, ['length']);
    return ReversedListIterable;
  });
  _internal.ReversedListIterable = _internal.ReversedListIterable$();
  dart.addTypeTests(_internal.ReversedListIterable, _is_ReversedListIterable_default);
  _internal.UnmodifiableListError = class UnmodifiableListError extends core.Object {
    static add() {
      return new core.UnsupportedError.new("Cannot add to unmodifiable List");
    }
    static change() {
      return new core.UnsupportedError.new("Cannot change the content of an unmodifiable List");
    }
    static length() {
      return new core.UnsupportedError.new("Cannot change length of unmodifiable List");
    }
    static remove() {
      return new core.UnsupportedError.new("Cannot remove from unmodifiable List");
    }
  };
  (_internal.UnmodifiableListError.new = function() {
    ;
  }).prototype = _internal.UnmodifiableListError.prototype;
  dart.addTypeTests(_internal.UnmodifiableListError);
  dart.addTypeCaches(_internal.UnmodifiableListError);
  dart.setLibraryUri(_internal.UnmodifiableListError, I[25]);
  _internal.NonGrowableListError = class NonGrowableListError extends core.Object {
    static add() {
      return new core.UnsupportedError.new("Cannot add to non-growable List");
    }
    static length() {
      return new core.UnsupportedError.new("Cannot change length of non-growable List");
    }
    static remove() {
      return new core.UnsupportedError.new("Cannot remove from non-growable List");
    }
  };
  (_internal.NonGrowableListError.new = function() {
    ;
  }).prototype = _internal.NonGrowableListError.prototype;
  dart.addTypeTests(_internal.NonGrowableListError);
  dart.addTypeCaches(_internal.NonGrowableListError);
  dart.setLibraryUri(_internal.NonGrowableListError, I[25]);
  var length = dart.privateName(_internal, "LinkedList.length");
  var _last = dart.privateName(_internal, "_last");
  var _next = dart.privateName(_internal, "_next");
  var _previous = dart.privateName(_internal, "_previous");
  var _list = dart.privateName(_internal, "_list");
  const _is_IterableBase_default = Symbol('_is_IterableBase_default');
  collection.IterableBase$ = dart.generic(E => {
    class IterableBase extends core.Iterable$(E) {
      static iterableToShortString(iterable, leftDelimiter = "(", rightDelimiter = ")") {
        let t82;
        if (iterable == null) dart.nullFailed(I[39], 226, 48, "iterable");
        if (leftDelimiter == null) dart.nullFailed(I[39], 227, 15, "leftDelimiter");
        if (rightDelimiter == null) dart.nullFailed(I[39], 227, 43, "rightDelimiter");
        if (dart.test(collection._isToStringVisiting(iterable))) {
          if (leftDelimiter === "(" && rightDelimiter === ")") {
            return "(...)";
          }
          return dart.str(leftDelimiter) + "..." + dart.str(rightDelimiter);
        }
        let parts = T$.JSArrayOfString().of([]);
        collection._toStringVisiting[$add](iterable);
        try {
          collection._iterablePartsToStrings(iterable, parts);
        } finally {
          if (!core.identical(collection._toStringVisiting[$last], iterable)) dart.assertFailed(null, I[39], 240, 14, "identical(_toStringVisiting.last, iterable)");
          collection._toStringVisiting[$removeLast]();
        }
        return (t82 = new core.StringBuffer.new(leftDelimiter), (() => {
          t82.writeAll(parts, ", ");
          t82.write(rightDelimiter);
          return t82;
        })()).toString();
      }
      static iterableToFullString(iterable, leftDelimiter = "(", rightDelimiter = ")") {
        if (iterable == null) dart.nullFailed(I[39], 259, 47, "iterable");
        if (leftDelimiter == null) dart.nullFailed(I[39], 260, 15, "leftDelimiter");
        if (rightDelimiter == null) dart.nullFailed(I[39], 260, 43, "rightDelimiter");
        if (dart.test(collection._isToStringVisiting(iterable))) {
          return dart.str(leftDelimiter) + "..." + dart.str(rightDelimiter);
        }
        let buffer = new core.StringBuffer.new(leftDelimiter);
        collection._toStringVisiting[$add](iterable);
        try {
          buffer.writeAll(iterable, ", ");
        } finally {
          if (!core.identical(collection._toStringVisiting[$last], iterable)) dart.assertFailed(null, I[39], 269, 14, "identical(_toStringVisiting.last, iterable)");
          collection._toStringVisiting[$removeLast]();
        }
        buffer.write(rightDelimiter);
        return buffer.toString();
      }
    }
    (IterableBase.new = function() {
      IterableBase.__proto__.new.call(this);
      ;
    }).prototype = IterableBase.prototype;
    dart.addTypeTests(IterableBase);
    IterableBase.prototype[_is_IterableBase_default] = true;
    dart.addTypeCaches(IterableBase);
    dart.setLibraryUri(IterableBase, I[24]);
    return IterableBase;
  });
  collection.IterableBase = collection.IterableBase$();
  dart.addTypeTests(collection.IterableBase, _is_IterableBase_default);
  const _is_LinkedList_default = Symbol('_is_LinkedList_default');
  _internal.LinkedList$ = dart.generic(T => {
    var _LinkedListIteratorOfT = () => (_LinkedListIteratorOfT = dart.constFn(_internal._LinkedListIterator$(T)))();
    class LinkedList extends collection.IterableBase$(T) {
      get length() {
        return this[length];
      }
      set length(value) {
        this[length] = value;
      }
      get first() {
        return dart.nullCast(this[_first$], T);
      }
      get last() {
        return dart.nullCast(this[_last], T);
      }
      get isEmpty() {
        return this.length === 0;
      }
      add(newLast) {
        T.as(newLast);
        if (newLast == null) dart.nullFailed(I[38], 22, 14, "newLast");
        if (!(newLast[_next] == null && newLast[_previous] == null)) dart.assertFailed(null, I[38], 23, 12, "newLast._next == null && newLast._previous == null");
        if (this[_last] != null) {
          if (!(dart.nullCheck(this[_last])[_next] == null)) dart.assertFailed(null, I[38], 25, 14, "_last!._next == null");
          dart.nullCheck(this[_last])[_next] = newLast;
        } else {
          this[_first$] = newLast;
        }
        newLast[_previous] = this[_last];
        this[_last] = newLast;
        dart.nullCheck(this[_last])[_list] = this;
        this.length = dart.notNull(this.length) + 1;
      }
      addFirst(newFirst) {
        T.as(newFirst);
        if (newFirst == null) dart.nullFailed(I[38], 39, 19, "newFirst");
        if (this[_first$] != null) {
          if (!(dart.nullCheck(this[_first$])[_previous] == null)) dart.assertFailed(null, I[38], 41, 14, "_first!._previous == null");
          dart.nullCheck(this[_first$])[_previous] = newFirst;
        } else {
          this[_last] = newFirst;
        }
        newFirst[_next] = this[_first$];
        this[_first$] = newFirst;
        dart.nullCheck(this[_first$])[_list] = this;
        this.length = dart.notNull(this.length) + 1;
      }
      remove(node) {
        T.as(node);
        if (node == null) dart.nullFailed(I[38], 59, 17, "node");
        if (!dart.equals(node[_list], this)) return;
        this.length = dart.notNull(this.length) - 1;
        if (node[_previous] == null) {
          if (!(node == this[_first$])) dart.assertFailed(null, I[38], 63, 14, "identical(node, _first)");
          this[_first$] = node[_next];
        } else {
          dart.nullCheck(node[_previous])[_next] = node[_next];
        }
        if (node[_next] == null) {
          if (!(node == this[_last])) dart.assertFailed(null, I[38], 69, 14, "identical(node, _last)");
          this[_last] = node[_previous];
        } else {
          dart.nullCheck(node[_next])[_previous] = node[_previous];
        }
        node[_next] = node[_previous] = null;
        node[_list] = null;
      }
      get iterator() {
        return new (_LinkedListIteratorOfT()).new(this);
      }
    }
    (LinkedList.new = function() {
      this[_first$] = null;
      this[_last] = null;
      this[length] = 0;
      LinkedList.__proto__.new.call(this);
      ;
    }).prototype = LinkedList.prototype;
    dart.addTypeTests(LinkedList);
    LinkedList.prototype[_is_LinkedList_default] = true;
    dart.addTypeCaches(LinkedList);
    dart.setMethodSignature(LinkedList, () => ({
      __proto__: dart.getMethods(LinkedList.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addFirst: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(LinkedList, () => ({
      __proto__: dart.getGetters(LinkedList.__proto__),
      iterator: core.Iterator$(T),
      [$iterator]: core.Iterator$(T)
    }));
    dart.setLibraryUri(LinkedList, I[25]);
    dart.setFieldSignature(LinkedList, () => ({
      __proto__: dart.getFields(LinkedList.__proto__),
      [_first$]: dart.fieldType(dart.nullable(T)),
      [_last]: dart.fieldType(dart.nullable(T)),
      length: dart.fieldType(core.int)
    }));
    dart.defineExtensionAccessors(LinkedList, [
      'length',
      'first',
      'last',
      'isEmpty',
      'iterator'
    ]);
    return LinkedList;
  });
  _internal.LinkedList = _internal.LinkedList$();
  dart.addTypeTests(_internal.LinkedList, _is_LinkedList_default);
  var _next$ = dart.privateName(_internal, "LinkedListEntry._next");
  var _previous$ = dart.privateName(_internal, "LinkedListEntry._previous");
  var _list$ = dart.privateName(_internal, "LinkedListEntry._list");
  const _is_LinkedListEntry_default = Symbol('_is_LinkedListEntry_default');
  _internal.LinkedListEntry$ = dart.generic(T => {
    var TN = () => (TN = dart.constFn(dart.nullable(T)))();
    var LinkedListOfT = () => (LinkedListOfT = dart.constFn(_internal.LinkedList$(T)))();
    var LinkedListNOfT = () => (LinkedListNOfT = dart.constFn(dart.nullable(LinkedListOfT())))();
    class LinkedListEntry extends core.Object {
      get [_next]() {
        return this[_next$];
      }
      set [_next](value) {
        this[_next$] = TN().as(value);
      }
      get [_previous]() {
        return this[_previous$];
      }
      set [_previous](value) {
        this[_previous$] = TN().as(value);
      }
      get [_list]() {
        return this[_list$];
      }
      set [_list](value) {
        this[_list$] = LinkedListNOfT().as(value);
      }
      unlink() {
        let t82;
        t82 = this[_list];
        t82 == null ? null : t82.remove(T.as(this));
      }
    }
    (LinkedListEntry.new = function() {
      this[_next$] = null;
      this[_previous$] = null;
      this[_list$] = null;
      ;
    }).prototype = LinkedListEntry.prototype;
    dart.addTypeTests(LinkedListEntry);
    LinkedListEntry.prototype[_is_LinkedListEntry_default] = true;
    dart.addTypeCaches(LinkedListEntry);
    dart.setMethodSignature(LinkedListEntry, () => ({
      __proto__: dart.getMethods(LinkedListEntry.__proto__),
      unlink: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(LinkedListEntry, I[25]);
    dart.setFieldSignature(LinkedListEntry, () => ({
      __proto__: dart.getFields(LinkedListEntry.__proto__),
      [_next]: dart.fieldType(dart.nullable(T)),
      [_previous]: dart.fieldType(dart.nullable(T)),
      [_list]: dart.fieldType(dart.nullable(_internal.LinkedList$(T)))
    }));
    return LinkedListEntry;
  });
  _internal.LinkedListEntry = _internal.LinkedListEntry$();
  dart.addTypeTests(_internal.LinkedListEntry, _is_LinkedListEntry_default);
  const _is__LinkedListIterator_default = Symbol('_is__LinkedListIterator_default');
  _internal._LinkedListIterator$ = dart.generic(T => {
    class _LinkedListIterator extends core.Object {
      get current() {
        return dart.nullCast(this[_current$], T);
      }
      moveNext() {
        if (this[_current$] == null) {
          let list = this[_list];
          if (list == null) return false;
          if (!(dart.notNull(list.length) > 0)) dart.assertFailed(null, I[38], 123, 14, "list.length > 0");
          this[_current$] = list.first;
          this[_list] = null;
          return true;
        }
        this[_current$] = dart.nullCheck(this[_current$])[_next];
        return this[_current$] != null;
      }
    }
    (_LinkedListIterator.new = function(list) {
      if (list == null) dart.nullFailed(I[38], 113, 37, "list");
      this[_current$] = null;
      this[_list] = list;
      if (list.length === 0) this[_list] = null;
    }).prototype = _LinkedListIterator.prototype;
    dart.addTypeTests(_LinkedListIterator);
    _LinkedListIterator.prototype[_is__LinkedListIterator_default] = true;
    dart.addTypeCaches(_LinkedListIterator);
    _LinkedListIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(_LinkedListIterator, () => ({
      __proto__: dart.getMethods(_LinkedListIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_LinkedListIterator, () => ({
      __proto__: dart.getGetters(_LinkedListIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(_LinkedListIterator, I[25]);
    dart.setFieldSignature(_LinkedListIterator, () => ({
      __proto__: dart.getFields(_LinkedListIterator.__proto__),
      [_current$]: dart.fieldType(dart.nullable(T)),
      [_list]: dart.fieldType(dart.nullable(_internal.LinkedList$(T)))
    }));
    return _LinkedListIterator;
  });
  _internal._LinkedListIterator = _internal._LinkedListIterator$();
  dart.addTypeTests(_internal._LinkedListIterator, _is__LinkedListIterator_default);
  _internal.Sort = class Sort extends core.Object {
    static sort(E, a, compare) {
      if (a == null) dart.nullFailed(I[40], 32, 31, "a");
      if (compare == null) dart.nullFailed(I[40], 32, 38, "compare");
      _internal.Sort._doSort(E, a, 0, dart.notNull(a[$length]) - 1, compare);
    }
    static sortRange(E, a, from, to, compare) {
      if (a == null) dart.nullFailed(I[40], 45, 36, "a");
      if (from == null) dart.nullFailed(I[40], 45, 43, "from");
      if (to == null) dart.nullFailed(I[40], 45, 53, "to");
      if (compare == null) dart.nullFailed(I[40], 45, 61, "compare");
      if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[$length]) || dart.notNull(to) < dart.notNull(from)) {
        dart.throw("OutOfRange");
      }
      _internal.Sort._doSort(E, a, from, dart.notNull(to) - 1, compare);
    }
    static _doSort(E, a, left, right, compare) {
      if (a == null) dart.nullFailed(I[40], 56, 15, "a");
      if (left == null) dart.nullFailed(I[40], 56, 22, "left");
      if (right == null) dart.nullFailed(I[40], 56, 32, "right");
      if (compare == null) dart.nullFailed(I[40], 56, 43, "compare");
      if (dart.notNull(right) - dart.notNull(left) <= 32) {
        _internal.Sort._insertionSort(E, a, left, right, compare);
      } else {
        _internal.Sort._dualPivotQuicksort(E, a, left, right, compare);
      }
    }
    static _insertionSort(E, a, left, right, compare) {
      if (a == null) dart.nullFailed(I[40], 65, 15, "a");
      if (left == null) dart.nullFailed(I[40], 65, 22, "left");
      if (right == null) dart.nullFailed(I[40], 65, 32, "right");
      if (compare == null) dart.nullFailed(I[40], 65, 43, "compare");
      for (let i = dart.notNull(left) + 1; i <= dart.notNull(right); i = i + 1) {
        let el = a[$_get](i);
        let j = i;
        while (j > dart.notNull(left) && dart.notNull(compare(a[$_get](j - 1), el)) > 0) {
          a[$_set](j, a[$_get](j - 1));
          j = j - 1;
        }
        a[$_set](j, el);
      }
    }
    static _dualPivotQuicksort(E, a, left, right, compare) {
      let t82, t82$, t82$0, t82$1, t82$2, t82$3, t82$4, t82$5, t82$6;
      if (a == null) dart.nullFailed(I[40], 78, 15, "a");
      if (left == null) dart.nullFailed(I[40], 78, 22, "left");
      if (right == null) dart.nullFailed(I[40], 78, 32, "right");
      if (compare == null) dart.nullFailed(I[40], 78, 43, "compare");
      if (!(dart.notNull(right) - dart.notNull(left) > 32)) dart.assertFailed(null, I[40], 79, 12, "right - left > _INSERTION_SORT_THRESHOLD");
      let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6)[$truncate]();
      let index1 = dart.notNull(left) + sixth;
      let index5 = dart.notNull(right) - sixth;
      let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2)[$truncate]();
      let index2 = index3 - sixth;
      let index4 = index3 + sixth;
      let el1 = a[$_get](index1);
      let el2 = a[$_get](index2);
      let el3 = a[$_get](index3);
      let el4 = a[$_get](index4);
      let el5 = a[$_get](index5);
      if (dart.notNull(compare(el1, el2)) > 0) {
        let t = el1;
        el1 = el2;
        el2 = t;
      }
      if (dart.notNull(compare(el4, el5)) > 0) {
        let t = el4;
        el4 = el5;
        el5 = t;
      }
      if (dart.notNull(compare(el1, el3)) > 0) {
        let t = el1;
        el1 = el3;
        el3 = t;
      }
      if (dart.notNull(compare(el2, el3)) > 0) {
        let t = el2;
        el2 = el3;
        el3 = t;
      }
      if (dart.notNull(compare(el1, el4)) > 0) {
        let t = el1;
        el1 = el4;
        el4 = t;
      }
      if (dart.notNull(compare(el3, el4)) > 0) {
        let t = el3;
        el3 = el4;
        el4 = t;
      }
      if (dart.notNull(compare(el2, el5)) > 0) {
        let t = el2;
        el2 = el5;
        el5 = t;
      }
      if (dart.notNull(compare(el2, el3)) > 0) {
        let t = el2;
        el2 = el3;
        el3 = t;
      }
      if (dart.notNull(compare(el4, el5)) > 0) {
        let t = el4;
        el4 = el5;
        el5 = t;
      }
      let pivot1 = el2;
      let pivot2 = el4;
      a[$_set](index1, el1);
      a[$_set](index3, el3);
      a[$_set](index5, el5);
      a[$_set](index2, a[$_get](left));
      a[$_set](index4, a[$_get](right));
      let less = dart.notNull(left) + 1;
      let great = dart.notNull(right) - 1;
      let pivots_are_equal = compare(pivot1, pivot2) === 0;
      if (pivots_are_equal) {
        let pivot = pivot1;
        for (let k = less; k <= great; k = k + 1) {
          let ak = a[$_get](k);
          let comp = compare(ak, pivot);
          if (comp === 0) continue;
          if (dart.notNull(comp) < 0) {
            if (k !== less) {
              a[$_set](k, a[$_get](less));
              a[$_set](less, ak);
            }
            less = less + 1;
          } else {
            while (true) {
              comp = compare(a[$_get](great), pivot);
              if (dart.notNull(comp) > 0) {
                great = great - 1;
                continue;
              } else if (dart.notNull(comp) < 0) {
                a[$_set](k, a[$_get](less));
                a[$_set]((t82 = less, less = t82 + 1, t82), a[$_get](great));
                a[$_set]((t82$ = great, great = t82$ - 1, t82$), ak);
                break;
              } else {
                a[$_set](k, a[$_get](great));
                a[$_set]((t82$0 = great, great = t82$0 - 1, t82$0), ak);
                break;
              }
            }
          }
        }
      } else {
        for (let k = less; k <= great; k = k + 1) {
          let ak = a[$_get](k);
          let comp_pivot1 = compare(ak, pivot1);
          if (dart.notNull(comp_pivot1) < 0) {
            if (k !== less) {
              a[$_set](k, a[$_get](less));
              a[$_set](less, ak);
            }
            less = less + 1;
          } else {
            let comp_pivot2 = compare(ak, pivot2);
            if (dart.notNull(comp_pivot2) > 0) {
              while (true) {
                let comp = compare(a[$_get](great), pivot2);
                if (dart.notNull(comp) > 0) {
                  great = great - 1;
                  if (great < k) break;
                  continue;
                } else {
                  comp = compare(a[$_get](great), pivot1);
                  if (dart.notNull(comp) < 0) {
                    a[$_set](k, a[$_get](less));
                    a[$_set]((t82$1 = less, less = t82$1 + 1, t82$1), a[$_get](great));
                    a[$_set]((t82$2 = great, great = t82$2 - 1, t82$2), ak);
                  } else {
                    a[$_set](k, a[$_get](great));
                    a[$_set]((t82$3 = great, great = t82$3 - 1, t82$3), ak);
                  }
                  break;
                }
              }
            }
          }
        }
      }
      a[$_set](left, a[$_get](less - 1));
      a[$_set](less - 1, pivot1);
      a[$_set](right, a[$_get](great + 1));
      a[$_set](great + 1, pivot2);
      _internal.Sort._doSort(E, a, left, less - 2, compare);
      _internal.Sort._doSort(E, a, great + 2, right, compare);
      if (pivots_are_equal) {
        return;
      }
      if (less < index1 && great > index5) {
        while (compare(a[$_get](less), pivot1) === 0) {
          less = less + 1;
        }
        while (compare(a[$_get](great), pivot2) === 0) {
          great = great - 1;
        }
        for (let k = less; k <= great; k = k + 1) {
          let ak = a[$_get](k);
          let comp_pivot1 = compare(ak, pivot1);
          if (comp_pivot1 === 0) {
            if (k !== less) {
              a[$_set](k, a[$_get](less));
              a[$_set](less, ak);
            }
            less = less + 1;
          } else {
            let comp_pivot2 = compare(ak, pivot2);
            if (comp_pivot2 === 0) {
              while (true) {
                let comp = compare(a[$_get](great), pivot2);
                if (comp === 0) {
                  great = great - 1;
                  if (great < k) break;
                  continue;
                } else {
                  comp = compare(a[$_get](great), pivot1);
                  if (dart.notNull(comp) < 0) {
                    a[$_set](k, a[$_get](less));
                    a[$_set]((t82$4 = less, less = t82$4 + 1, t82$4), a[$_get](great));
                    a[$_set]((t82$5 = great, great = t82$5 - 1, t82$5), ak);
                  } else {
                    a[$_set](k, a[$_get](great));
                    a[$_set]((t82$6 = great, great = t82$6 - 1, t82$6), ak);
                  }
                  break;
                }
              }
            }
          }
        }
        _internal.Sort._doSort(E, a, less, great, compare);
      } else {
        _internal.Sort._doSort(E, a, less, great, compare);
      }
    }
  };
  (_internal.Sort.new = function() {
    ;
  }).prototype = _internal.Sort.prototype;
  dart.addTypeTests(_internal.Sort);
  dart.addTypeCaches(_internal.Sort);
  dart.setLibraryUri(_internal.Sort, I[25]);
  dart.defineLazy(_internal.Sort, {
    /*_internal.Sort._INSERTION_SORT_THRESHOLD*/get _INSERTION_SORT_THRESHOLD() {
      return 32;
    }
  }, false);
  var _name$0 = dart.privateName(_internal, "Symbol._name");
  _internal.Symbol = class Symbol extends core.Object {
    get [_name$]() {
      return this[_name$0];
    }
    set [_name$](value) {
      super[_name$] = value;
    }
    _equals(other) {
      if (other == null) return false;
      return _internal.Symbol.is(other) && this[_name$] == other[_name$];
    }
    get hashCode() {
      let hash = this._hashCode;
      if (hash != null) return hash;
      hash = 536870911 & 664597 * dart.hashCode(this[_name$]);
      this._hashCode = hash;
      return hash;
    }
    toString() {
      return "Symbol(\"" + dart.str(this[_name$]) + "\")";
    }
    static getName(symbol) {
      if (symbol == null) dart.nullFailed(I[42], 119, 32, "symbol");
      return symbol[_name$];
    }
    static validatePublicSymbol(name) {
      if (name == null) dart.nullFailed(I[42], 121, 45, "name");
      if (name[$isEmpty] || dart.test(_internal.Symbol.publicSymbolPattern.hasMatch(name))) return name;
      if (name[$startsWith]("_")) {
        dart.throw(new core.ArgumentError.new("\"" + dart.str(name) + "\" is a private identifier"));
      }
      dart.throw(new core.ArgumentError.new("\"" + dart.str(name) + "\" is not a valid (qualified) symbol name"));
    }
    static isValidSymbol(name) {
      if (name == null) dart.nullFailed(I[42], 137, 36, "name");
      return name[$isEmpty] || dart.test(_internal.Symbol.symbolPattern.hasMatch(name));
    }
    static computeUnmangledName(symbol) {
      if (symbol == null) dart.nullFailed(I[41], 36, 45, "symbol");
      return symbol[_name$];
    }
  };
  (_internal.Symbol.new = function(name) {
    if (name == null) dart.nullFailed(I[41], 20, 23, "name");
    this[_name$0] = name;
    ;
  }).prototype = _internal.Symbol.prototype;
  (_internal.Symbol.unvalidated = function(_name) {
    if (_name == null) dart.nullFailed(I[42], 107, 33, "_name");
    this[_name$0] = _name;
    ;
  }).prototype = _internal.Symbol.prototype;
  (_internal.Symbol.validated = function(name) {
    if (name == null) dart.nullFailed(I[42], 110, 27, "name");
    this[_name$0] = _internal.Symbol.validatePublicSymbol(name);
    ;
  }).prototype = _internal.Symbol.prototype;
  dart.addTypeTests(_internal.Symbol);
  dart.addTypeCaches(_internal.Symbol);
  _internal.Symbol[dart.implements] = () => [core.Symbol];
  dart.setMethodSignature(_internal.Symbol, () => ({
    __proto__: dart.getMethods(_internal.Symbol.__proto__),
    toString: dart.fnType(dart.dynamic, []),
    [$toString]: dart.fnType(dart.dynamic, [])
  }));
  dart.setLibraryUri(_internal.Symbol, I[25]);
  dart.setFieldSignature(_internal.Symbol, () => ({
    __proto__: dart.getFields(_internal.Symbol.__proto__),
    [_name$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_internal.Symbol, ['_equals', 'toString']);
  dart.defineExtensionAccessors(_internal.Symbol, ['hashCode']);
  dart.defineLazy(_internal.Symbol, {
    /*_internal.Symbol.reservedWordRE*/get reservedWordRE() {
      return "(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))";
    },
    /*_internal.Symbol.publicIdentifierRE*/get publicIdentifierRE() {
      return "(?!(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))\\b(?!\\$))[a-zA-Z$][\\w$]*";
    },
    /*_internal.Symbol.identifierRE*/get identifierRE() {
      return "(?!(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))\\b(?!\\$))[a-zA-Z$_][\\w$]*";
    },
    /*_internal.Symbol.operatorRE*/get operatorRE() {
      return "(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>(?:|=|>>?)|unary-)";
    },
    /*_internal.Symbol.publicSymbolPattern*/get publicSymbolPattern() {
      return core.RegExp.new("^(?:" + dart.str(_internal.Symbol.operatorRE) + "$|" + dart.str(_internal.Symbol.publicIdentifierRE) + "(?:=?$|[.](?!$)))+?$");
    },
    /*_internal.Symbol.symbolPattern*/get symbolPattern() {
      return core.RegExp.new("^(?:" + dart.str(_internal.Symbol.operatorRE) + "$|" + dart.str(_internal.Symbol.identifierRE) + "(?:=?$|[.](?!$)))+?$");
    }
  }, false);
  _internal.createSentinel = function createSentinel(T) {
    return dart.throw(new core.UnsupportedError.new("createSentinel"));
  };
  _internal.isSentinel = function isSentinel(value) {
    return dart.throw(new core.UnsupportedError.new("isSentinel"));
  };
  _internal.typeAcceptsNull = function typeAcceptsNull(T) {
    return !false || T.is(null);
  };
  _internal.hexDigitValue = function hexDigitValue(char) {
    if (char == null) dart.nullFailed(I[21], 100, 23, "char");
    if (!(dart.notNull(char) >= 0 && dart.notNull(char) <= 65535)) dart.assertFailed(null, I[21], 101, 10, "char >= 0 && char <= 0xFFFF");
    let digit = (dart.notNull(char) ^ 48) >>> 0;
    if (digit <= 9) return digit;
    let letter = (dart.notNull(char) | 32) >>> 0;
    if (97 <= letter && letter <= 102) return letter - (97 - 10);
    return -1;
  };
  _internal.parseHexByte = function parseHexByte(source, index) {
    if (source == null) dart.nullFailed(I[21], 115, 25, "source");
    if (index == null) dart.nullFailed(I[21], 115, 37, "index");
    if (!(dart.notNull(index) + 2 <= source.length)) dart.assertFailed(null, I[21], 116, 10, "index + 2 <= source.length");
    let digit1 = _internal.hexDigitValue(source[$codeUnitAt](index));
    let digit2 = _internal.hexDigitValue(source[$codeUnitAt](dart.notNull(index) + 1));
    return dart.notNull(digit1) * 16 + dart.notNull(digit2) - (dart.notNull(digit2) & 256);
  };
  _internal.extractTypeArguments = function extractTypeArguments$(T, instance, extract) {
    if (extract == null) dart.nullFailed(I[41], 57, 54, "extract");
    return dart.extractTypeArguments(T, instance, extract);
  };
  _internal.checkNotNullable = function checkNotNullable(T, value, name) {
    if (value == null) dart.nullFailed(I[21], 402, 40, "value");
    if (name == null) dart.nullFailed(I[21], 402, 54, "name");
    if (value == null) {
      dart.throw(new (_internal.NotNullableError$(T)).new(name));
    }
    return value;
  };
  _internal.valueOfNonNullableParamWithDefault = function valueOfNonNullableParamWithDefault(T, value, defaultVal) {
    if (value == null) dart.nullFailed(I[21], 427, 58, "value");
    if (defaultVal == null) dart.nullFailed(I[21], 427, 67, "defaultVal");
    if (value == null) {
      return defaultVal;
    } else {
      return value;
    }
  };
  _internal._checkCount = function _checkCount(count) {
    if (count == null) dart.nullFailed(I[37], 624, 21, "count");
    core.ArgumentError.checkNotNull(core.int, count, "count");
    core.RangeError.checkNotNegative(count, "count");
    return count;
  };
  _internal.makeListFixedLength = function makeListFixedLength(T, growableList) {
    if (growableList == null) dart.nullFailed(I[41], 45, 40, "growableList");
    _interceptors.JSArray.markFixedList(growableList);
    return growableList;
  };
  _internal.makeFixedListUnmodifiable = function makeFixedListUnmodifiable(T, fixedLengthList) {
    if (fixedLengthList == null) dart.nullFailed(I[41], 51, 46, "fixedLengthList");
    _interceptors.JSArray.markUnmodifiableList(fixedLengthList);
    return fixedLengthList;
  };
  _internal.printToConsole = function printToConsole(line) {
    if (line == null) dart.nullFailed(I[41], 40, 28, "line");
    _js_primitives.printString(dart.str(line));
  };
  dart.defineLazy(_internal, {
    /*_internal.POWERS_OF_TEN*/get POWERS_OF_TEN() {
      return C[21] || CT.C21;
    },
    /*_internal.nullFuture*/get nullFuture() {
      return async.Zone.root.run(T$.FutureOfNull(), dart.fn(() => T$.FutureOfNull().value(null), T$.VoidToFutureOfNull()));
    },
    /*_internal.printToZone*/get printToZone() {
      return null;
    },
    set printToZone(_) {}
  }, false);
  var _handle = dart.privateName(_isolate_helper, "_handle");
  var _tick = dart.privateName(_isolate_helper, "_tick");
  var _once = dart.privateName(_isolate_helper, "_once");
  _isolate_helper.TimerImpl = class TimerImpl extends core.Object {
    get tick() {
      return this[_tick];
    }
    cancel() {
      if (dart.test(_isolate_helper.hasTimer())) {
        if (this[_handle] == null) return;
        dart.removeAsyncCallback();
        if (dart.test(this[_once])) {
          _isolate_helper.global.clearTimeout(this[_handle]);
        } else {
          _isolate_helper.global.clearInterval(this[_handle]);
        }
        this[_handle] = null;
      } else {
        dart.throw(new core.UnsupportedError.new("Canceling a timer."));
      }
    }
    get isActive() {
      return this[_handle] != null;
    }
  };
  (_isolate_helper.TimerImpl.new = function(milliseconds, callback) {
    if (milliseconds == null) dart.nullFailed(I[43], 40, 17, "milliseconds");
    if (callback == null) dart.nullFailed(I[43], 40, 36, "callback");
    this[_handle] = null;
    this[_tick] = 0;
    this[_once] = true;
    if (dart.test(_isolate_helper.hasTimer())) {
      let currentHotRestartIteration = dart.hotRestartIteration;
      const internalCallback = () => {
        this[_handle] = null;
        dart.removeAsyncCallback();
        this[_tick] = 1;
        if (currentHotRestartIteration == dart.hotRestartIteration) {
          callback();
        }
      };
      dart.fn(internalCallback, T$.VoidTovoid());
      dart.addAsyncCallback();
      this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
    } else {
      dart.throw(new core.UnsupportedError.new("`setTimeout()` not found."));
    }
  }).prototype = _isolate_helper.TimerImpl.prototype;
  (_isolate_helper.TimerImpl.periodic = function(milliseconds, callback) {
    if (milliseconds == null) dart.nullFailed(I[43], 61, 26, "milliseconds");
    if (callback == null) dart.nullFailed(I[43], 61, 45, "callback");
    this[_handle] = null;
    this[_tick] = 0;
    this[_once] = false;
    if (dart.test(_isolate_helper.hasTimer())) {
      dart.addAsyncCallback();
      let start = Date.now();
      let currentHotRestartIteration = dart.hotRestartIteration;
      this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
        if (currentHotRestartIteration != dart.hotRestartIteration) {
          this.cancel();
          return;
        }
        let tick = dart.notNull(this[_tick]) + 1;
        if (dart.notNull(milliseconds) > 0) {
          let duration = Date.now() - start;
          if (duration > (tick + 1) * dart.notNull(milliseconds)) {
            tick = (duration / dart.notNull(milliseconds))[$truncate]();
          }
        }
        this[_tick] = tick;
        callback(this);
      }, T$.VoidToNull()), milliseconds);
    } else {
      dart.throw(new core.UnsupportedError.new("Periodic timer."));
    }
  }).prototype = _isolate_helper.TimerImpl.prototype;
  dart.addTypeTests(_isolate_helper.TimerImpl);
  dart.addTypeCaches(_isolate_helper.TimerImpl);
  _isolate_helper.TimerImpl[dart.implements] = () => [async.Timer];
  dart.setMethodSignature(_isolate_helper.TimerImpl, () => ({
    __proto__: dart.getMethods(_isolate_helper.TimerImpl.__proto__),
    cancel: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_isolate_helper.TimerImpl, () => ({
    __proto__: dart.getGetters(_isolate_helper.TimerImpl.__proto__),
    tick: core.int,
    isActive: core.bool
  }));
  dart.setLibraryUri(_isolate_helper.TimerImpl, I[44]);
  dart.setFieldSignature(_isolate_helper.TimerImpl, () => ({
    __proto__: dart.getFields(_isolate_helper.TimerImpl.__proto__),
    [_once]: dart.finalFieldType(core.bool),
    [_handle]: dart.fieldType(dart.nullable(core.int)),
    [_tick]: dart.fieldType(core.int)
  }));
  _isolate_helper.startRootIsolate = function startRootIsolate(main, args) {
    if (args == null) args = T$.JSArrayOfString().of([]);
    if (core.List.is(args)) {
      if (!T$.ListOfString().is(args)) args = T$.ListOfString().from(args);
      if (typeof main == "function") {
        main(args, null);
      } else {
        dart.dcall(main, [args]);
      }
    } else {
      dart.throw(new core.ArgumentError.new("Arguments to main must be a List: " + dart.str(args)));
    }
  };
  _isolate_helper.hasTimer = function hasTimer() {
    return _isolate_helper.global.setTimeout != null;
  };
  dart.defineLazy(_isolate_helper, {
    /*_isolate_helper.global*/get global() {
      return dart.global;
    }
  }, false);
  _js_helper._Patch = class _Patch extends core.Object {};
  (_js_helper._Patch.new = function() {
    ;
  }).prototype = _js_helper._Patch.prototype;
  dart.addTypeTests(_js_helper._Patch);
  dart.addTypeCaches(_js_helper._Patch);
  dart.setLibraryUri(_js_helper._Patch, I[45]);
  var _current$0 = dart.privateName(_js_helper, "_current");
  var _jsIterator$ = dart.privateName(_js_helper, "_jsIterator");
  const _is_DartIterator_default = Symbol('_is_DartIterator_default');
  _js_helper.DartIterator$ = dart.generic(E => {
    class DartIterator extends core.Object {
      get current() {
        return E.as(this[_current$0]);
      }
      moveNext() {
        let ret = this[_jsIterator$].next();
        this[_current$0] = ret.value;
        return !ret.done;
      }
    }
    (DartIterator.new = function(_jsIterator) {
      this[_current$0] = null;
      this[_jsIterator$] = _jsIterator;
      ;
    }).prototype = DartIterator.prototype;
    dart.addTypeTests(DartIterator);
    DartIterator.prototype[_is_DartIterator_default] = true;
    dart.addTypeCaches(DartIterator);
    DartIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(DartIterator, () => ({
      __proto__: dart.getMethods(DartIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(DartIterator, () => ({
      __proto__: dart.getGetters(DartIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(DartIterator, I[45]);
    dart.setFieldSignature(DartIterator, () => ({
      __proto__: dart.getFields(DartIterator.__proto__),
      [_jsIterator$]: dart.finalFieldType(dart.dynamic),
      [_current$0]: dart.fieldType(dart.nullable(E))
    }));
    return DartIterator;
  });
  _js_helper.DartIterator = _js_helper.DartIterator$();
  dart.addTypeTests(_js_helper.DartIterator, _is_DartIterator_default);
  var _initGenerator$ = dart.privateName(_js_helper, "_initGenerator");
  const _is_SyncIterable_default = Symbol('_is_SyncIterable_default');
  _js_helper.SyncIterable$ = dart.generic(E => {
    var DartIteratorOfE = () => (DartIteratorOfE = dart.constFn(_js_helper.DartIterator$(E)))();
    class SyncIterable extends collection.IterableBase$(E) {
      [Symbol.iterator]() {
        return this[_initGenerator$]();
      }
      get iterator() {
        return new (DartIteratorOfE()).new(this[_initGenerator$]());
      }
    }
    (SyncIterable.new = function(_initGenerator) {
      if (_initGenerator == null) dart.nullFailed(I[46], 62, 21, "_initGenerator");
      this[_initGenerator$] = _initGenerator;
      SyncIterable.__proto__.new.call(this);
      ;
    }).prototype = SyncIterable.prototype;
    dart.addTypeTests(SyncIterable);
    SyncIterable.prototype[_is_SyncIterable_default] = true;
    dart.addTypeCaches(SyncIterable);
    dart.setMethodSignature(SyncIterable, () => ({
      __proto__: dart.getMethods(SyncIterable.__proto__),
      [Symbol.iterator]: dart.fnType(dart.dynamic, [])
    }));
    dart.setGetterSignature(SyncIterable, () => ({
      __proto__: dart.getGetters(SyncIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(SyncIterable, I[45]);
    dart.setFieldSignature(SyncIterable, () => ({
      __proto__: dart.getFields(SyncIterable.__proto__),
      [_initGenerator$]: dart.finalFieldType(dart.fnType(dart.dynamic, []))
    }));
    dart.defineExtensionAccessors(SyncIterable, ['iterator']);
    return SyncIterable;
  });
  _js_helper.SyncIterable = _js_helper.SyncIterable$();
  dart.addTypeTests(_js_helper.SyncIterable, _is_SyncIterable_default);
  _js_helper.Primitives = class Primitives extends core.Object {
    static parseInt(source, _radix) {
      if (source == null) dart.argumentError(source);
      let re = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i;
      let match = re.exec(source);
      let digitsIndex = 1;
      let hexIndex = 2;
      let decimalIndex = 3;
      if (match == null) {
        return null;
      }
      let decimalMatch = match[$_get](decimalIndex);
      if (_radix == null) {
        if (decimalMatch != null) {
          return parseInt(source, 10);
        }
        if (match[$_get](hexIndex) != null) {
          return parseInt(source, 16);
        }
        return null;
      }
      let radix = _radix;
      if (radix < 2 || radix > 36) {
        dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
      }
      if (radix === 10 && decimalMatch != null) {
        return parseInt(source, 10);
      }
      if (radix < 10 || decimalMatch == null) {
        let maxCharCode = null;
        if (radix <= 10) {
          maxCharCode = 48 - 1 + radix;
        } else {
          maxCharCode = 97 - 10 - 1 + radix;
        }
        if (!(typeof match[$_get](digitsIndex) == 'string')) dart.assertFailed(null, I[46], 127, 14, "match[digitsIndex] is String");
        let digitsPart = match[digitsIndex];
        for (let i = 0; i < digitsPart.length; i = i + 1) {
          let characterCode = (digitsPart[$codeUnitAt](i) | 32) >>> 0;
          if (characterCode > dart.notNull(maxCharCode)) {
            return null;
          }
        }
      }
      return parseInt(source, radix);
    }
    static parseDouble(source) {
      if (source == null) dart.argumentError(source);
      if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source)) {
        return null;
      }
      let result = parseFloat(source);
      if (result[$isNaN]) {
        let trimmed = source[$trim]();
        if (trimmed === "NaN" || trimmed === "+NaN" || trimmed === "-NaN") {
          return result;
        }
        return null;
      }
      return result;
    }
    static dateNow() {
      return Date.now();
    }
    static initTicker() {
      if (_js_helper.Primitives.timerFrequency !== 0) return;
      _js_helper.Primitives.timerFrequency = 1000;
      if (typeof window == "undefined") return;
      let jsWindow = window;
      if (jsWindow == null) return;
      let performance = jsWindow.performance;
      if (performance == null) return;
      if (typeof performance.now != "function") return;
      _js_helper.Primitives.timerFrequency = 1000000;
      _js_helper.Primitives.timerTicks = dart.fn(() => (1000 * performance.now())[$floor](), T$.VoidToint());
    }
    static get isD8() {
      return typeof version == "function" && typeof os == "object" && "system" in os;
    }
    static get isJsshell() {
      return typeof version == "function" && typeof system == "function";
    }
    static currentUri() {
      if (!!dart.global.location) {
        return dart.global.location.href;
      }
      return "";
    }
    static _fromCharCodeApply(array) {
      if (array == null) dart.nullFailed(I[46], 214, 46, "array");
      let end = dart.notNull(array[$length]);
      if (end <= 500) {
        return String.fromCharCode.apply(null, array);
      }
      let result = "";
      for (let i = 0; i < end; i = i + 500) {
        let chunkEnd = i + 500 < end ? i + 500 : end;
        result = result + String.fromCharCode.apply(null, array.slice(i, chunkEnd));
      }
      return result;
    }
    static stringFromCodePoints(codePoints) {
      if (codePoints == null) dart.nullFailed(I[46], 236, 51, "codePoints");
      let a = T$.JSArrayOfint().of([]);
      for (let i of codePoints) {
        if (i == null) dart.argumentError(i);
        {
          if (i <= 65535) {
            a[$add](i);
          } else if (i <= 1114111) {
            a[$add](55296 + (i - 65536 >> 10 & 1023));
            a[$add](56320 + (i & 1023));
          } else {
            dart.throw(_js_helper.argumentErrorValue(i));
          }
        }
      }
      return _js_helper.Primitives._fromCharCodeApply(a);
    }
    static stringFromCharCodes(charCodes) {
      if (charCodes == null) dart.nullFailed(I[46], 252, 50, "charCodes");
      for (let i of charCodes) {
        if (i == null) dart.argumentError(i);
        {
          if (i < 0) dart.throw(_js_helper.argumentErrorValue(i));
          if (i > 65535) return _js_helper.Primitives.stringFromCodePoints(charCodes);
        }
      }
      return _js_helper.Primitives._fromCharCodeApply(charCodes);
    }
    static stringFromNativeUint8List(charCodes, start, end) {
      if (charCodes == null) dart.nullFailed(I[46], 263, 23, "charCodes");
      if (start == null) dart.argumentError(start);
      if (end == null) dart.argumentError(end);
      if (end <= 500 && start === 0 && end === charCodes[$length]) {
        return String.fromCharCode.apply(null, charCodes);
      }
      let result = "";
      for (let i = start; i < end; i = i + 500) {
        let chunkEnd = i + 500 < end ? i + 500 : end;
        result = result + String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd));
      }
      return result;
    }
    static stringFromCharCode(charCode) {
      if (charCode == null) dart.argumentError(charCode);
      if (0 <= charCode) {
        if (charCode <= 65535) {
          return String.fromCharCode(charCode);
        }
        if (charCode <= 1114111) {
          let bits = charCode - 65536;
          let low = 56320 | bits & 1023;
          let high = (55296 | bits[$rightShift](10)) >>> 0;
          return String.fromCharCode(high, low);
        }
      }
      dart.throw(new core.RangeError.range(charCode, 0, 1114111));
    }
    static flattenString(str) {
      if (str == null) dart.nullFailed(I[46], 298, 38, "str");
      return str.charCodeAt(0) == 0 ? str : str;
    }
    static getTimeZoneName(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 302, 42, "receiver");
      let d = _js_helper.Primitives.lazyAsJsDate(receiver);
      let match = /\((.*)\)/.exec(d.toString());
      if (match != null) return match[$_get](1);
      match = /^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A-Z]{3,5})\s\d{4}$/.exec(d.toString());
      if (match != null) return match[$_get](1);
      match = /(?:GMT|UTC)[+-]\d{4}/.exec(d.toString());
      if (match != null) return match[$_get](0);
      return "";
    }
    static getTimeZoneOffsetInMinutes(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 342, 50, "receiver");
      return -_js_helper.Primitives.lazyAsJsDate(receiver).getTimezoneOffset();
    }
    static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, milliseconds, isUtc) {
      if (years == null) dart.argumentError(years);
      if (month == null) dart.argumentError(month);
      if (day == null) dart.argumentError(day);
      if (hours == null) dart.argumentError(hours);
      if (minutes == null) dart.argumentError(minutes);
      if (seconds == null) dart.argumentError(seconds);
      if (milliseconds == null) dart.argumentError(milliseconds);
      if (isUtc == null) dart.argumentError(isUtc);
      let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
      let jsMonth = month - 1;
      if (0 <= years && years < 100) {
        years = years + 400;
        jsMonth = jsMonth - 400 * 12;
      }
      let value = null;
      if (isUtc) {
        value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseconds);
      } else {
        value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
      }
      if (value[$isNaN] || dart.notNull(value) < -MAX_MILLISECONDS_SINCE_EPOCH || dart.notNull(value) > MAX_MILLISECONDS_SINCE_EPOCH) {
        return null;
      }
      if (years <= 0 || years < 100) return _js_helper.Primitives.patchUpY2K(value, years, isUtc);
      return value;
    }
    static patchUpY2K(value, years, isUtc) {
      let date = new Date(value);
      if (dart.dtest(isUtc)) {
        date.setUTCFullYear(years);
      } else {
        date.setFullYear(years);
      }
      return date.valueOf();
    }
    static lazyAsJsDate(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 394, 32, "receiver");
      if (receiver.date === void 0) {
        receiver.date = new Date(receiver.millisecondsSinceEpoch);
      }
      return receiver.date;
    }
    static getYear(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 406, 31, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
    }
    static getMonth(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 412, 32, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : _js_helper.Primitives.lazyAsJsDate(receiver).getMonth() + 1;
    }
    static getDay(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 418, 30, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDate() + 0;
    }
    static getHours(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 424, 32, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getHours() + 0;
    }
    static getMinutes(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 430, 34, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
    }
    static getSeconds(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 436, 34, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
    }
    static getMilliseconds(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 442, 39, "receiver");
      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
    }
    static getWeekday(receiver) {
      if (receiver == null) dart.nullFailed(I[46], 448, 34, "receiver");
      let weekday = dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDay() + 0;
      return (weekday + 6)[$modulo](7) + 1;
    }
    static valueFromDateString(str) {
      if (!(typeof str == 'string')) dart.throw(_js_helper.argumentErrorValue(str));
      let value = Date.parse(str);
      if (value[$isNaN]) dart.throw(_js_helper.argumentErrorValue(str));
      return value;
    }
    static getProperty(object, key) {
      if (key == null) dart.nullFailed(I[46], 463, 53, "key");
      if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
        dart.throw(_js_helper.argumentErrorValue(object));
      }
      return object[key];
    }
    static setProperty(object, key, value) {
      if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
        dart.throw(_js_helper.argumentErrorValue(object));
      }
      object[key] = value;
    }
  };
  (_js_helper.Primitives.new = function() {
    ;
  }).prototype = _js_helper.Primitives.prototype;
  dart.addTypeTests(_js_helper.Primitives);
  dart.addTypeCaches(_js_helper.Primitives);
  dart.setLibraryUri(_js_helper.Primitives, I[45]);
  dart.defineLazy(_js_helper.Primitives, {
    /*_js_helper.Primitives.DOLLAR_CHAR_VALUE*/get DOLLAR_CHAR_VALUE() {
      return 36;
    },
    /*_js_helper.Primitives.timerFrequency*/get timerFrequency() {
      return 0;
    },
    set timerFrequency(_) {},
    /*_js_helper.Primitives.timerTicks*/get timerTicks() {
      return C[22] || CT.C22;
    },
    set timerTicks(_) {}
  }, false);
  var _receiver$0 = dart.privateName(_js_helper, "JsNoSuchMethodError._receiver");
  var _message$0 = dart.privateName(_js_helper, "_message");
  var _method = dart.privateName(_js_helper, "_method");
  var _receiver$1 = dart.privateName(_js_helper, "_receiver");
  var _arguments$0 = dart.privateName(_js_helper, "_arguments");
  var _memberName$0 = dart.privateName(_js_helper, "_memberName");
  var _invocation$0 = dart.privateName(_js_helper, "_invocation");
  var _namedArguments$0 = dart.privateName(_js_helper, "_namedArguments");
  _js_helper.JsNoSuchMethodError = class JsNoSuchMethodError extends core.Error {
    get [_receiver$1]() {
      return this[_receiver$0];
    }
    set [_receiver$1](value) {
      super[_receiver$1] = value;
    }
    toString() {
      if (this[_method] == null) return "NoSuchMethodError: " + dart.str(this[_message$0]);
      if (this[_receiver$1] == null) {
        return "NoSuchMethodError: method not found: '" + dart.str(this[_method]) + "' (" + dart.str(this[_message$0]) + ")";
      }
      return "NoSuchMethodError: " + "method not found: '" + dart.str(this[_method]) + "' on '" + dart.str(this[_receiver$1]) + "' (" + dart.str(this[_message$0]) + ")";
    }
    get [_receiver$]() {
      return this[$noSuchMethod](new core._Invocation.getter(C[23] || CT.C23));
    }
    get [_arguments$]() {
      return T$.ListN().as(this[$noSuchMethod](new core._Invocation.getter(C[24] || CT.C24)));
    }
    get [_memberName$]() {
      return core.Symbol.as(this[$noSuchMethod](new core._Invocation.getter(C[25] || CT.C25)));
    }
    get [_invocation$]() {
      return T$.InvocationN().as(this[$noSuchMethod](new core._Invocation.getter(C[26] || CT.C26)));
    }
    get [_namedArguments$]() {
      return T$.MapNOfSymbol$dynamic().as(this[$noSuchMethod](new core._Invocation.getter(C[27] || CT.C27)));
    }
  };
  (_js_helper.JsNoSuchMethodError.new = function(_message, match) {
    this[_message$0] = _message;
    this[_method] = match == null ? null : match.method;
    this[_receiver$0] = match == null ? null : match.receiver;
    _js_helper.JsNoSuchMethodError.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.JsNoSuchMethodError.prototype;
  dart.addTypeTests(_js_helper.JsNoSuchMethodError);
  dart.addTypeCaches(_js_helper.JsNoSuchMethodError);
  _js_helper.JsNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
  dart.setGetterSignature(_js_helper.JsNoSuchMethodError, () => ({
    __proto__: dart.getGetters(_js_helper.JsNoSuchMethodError.__proto__),
    [_receiver$]: dart.nullable(core.Object),
    [_arguments$]: dart.nullable(core.List),
    [_memberName$]: core.Symbol,
    [_invocation$]: dart.nullable(core.Invocation),
    [_namedArguments$]: dart.nullable(core.Map$(core.Symbol, dart.dynamic))
  }));
  dart.setLibraryUri(_js_helper.JsNoSuchMethodError, I[45]);
  dart.setFieldSignature(_js_helper.JsNoSuchMethodError, () => ({
    __proto__: dart.getFields(_js_helper.JsNoSuchMethodError.__proto__),
    [_message$0]: dart.finalFieldType(dart.nullable(core.String)),
    [_method]: dart.finalFieldType(dart.nullable(core.String)),
    [_receiver$1]: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(_js_helper.JsNoSuchMethodError, ['toString']);
  _js_helper.UnknownJsTypeError = class UnknownJsTypeError extends core.Error {
    toString() {
      return this[_message$0][$isEmpty] ? "Error" : "Error: " + dart.str(this[_message$0]);
    }
  };
  (_js_helper.UnknownJsTypeError.new = function(_message) {
    if (_message == null) dart.nullFailed(I[46], 570, 27, "_message");
    this[_message$0] = _message;
    _js_helper.UnknownJsTypeError.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.UnknownJsTypeError.prototype;
  dart.addTypeTests(_js_helper.UnknownJsTypeError);
  dart.addTypeCaches(_js_helper.UnknownJsTypeError);
  dart.setLibraryUri(_js_helper.UnknownJsTypeError, I[45]);
  dart.setFieldSignature(_js_helper.UnknownJsTypeError, () => ({
    __proto__: dart.getFields(_js_helper.UnknownJsTypeError.__proto__),
    [_message$0]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_js_helper.UnknownJsTypeError, ['toString']);
  var types$0 = dart.privateName(_js_helper, "Creates.types");
  _js_helper.Creates = class Creates extends core.Object {
    get types() {
      return this[types$0];
    }
    set types(value) {
      super.types = value;
    }
  };
  (_js_helper.Creates.new = function(types) {
    if (types == null) dart.nullFailed(I[46], 644, 22, "types");
    this[types$0] = types;
    ;
  }).prototype = _js_helper.Creates.prototype;
  dart.addTypeTests(_js_helper.Creates);
  dart.addTypeCaches(_js_helper.Creates);
  dart.setLibraryUri(_js_helper.Creates, I[45]);
  dart.setFieldSignature(_js_helper.Creates, () => ({
    __proto__: dart.getFields(_js_helper.Creates.__proto__),
    types: dart.finalFieldType(core.String)
  }));
  var types$1 = dart.privateName(_js_helper, "Returns.types");
  _js_helper.Returns = class Returns extends core.Object {
    get types() {
      return this[types$1];
    }
    set types(value) {
      super.types = value;
    }
  };
  (_js_helper.Returns.new = function(types) {
    if (types == null) dart.nullFailed(I[46], 670, 22, "types");
    this[types$1] = types;
    ;
  }).prototype = _js_helper.Returns.prototype;
  dart.addTypeTests(_js_helper.Returns);
  dart.addTypeCaches(_js_helper.Returns);
  dart.setLibraryUri(_js_helper.Returns, I[45]);
  dart.setFieldSignature(_js_helper.Returns, () => ({
    __proto__: dart.getFields(_js_helper.Returns.__proto__),
    types: dart.finalFieldType(core.String)
  }));
  var name$6 = dart.privateName(_js_helper, "JSName.name");
  _js_helper.JSName = class JSName extends core.Object {
    get name() {
      return this[name$6];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_js_helper.JSName.new = function(name) {
    if (name == null) dart.nullFailed(I[46], 687, 21, "name");
    this[name$6] = name;
    ;
  }).prototype = _js_helper.JSName.prototype;
  dart.addTypeTests(_js_helper.JSName);
  dart.addTypeCaches(_js_helper.JSName);
  dart.setLibraryUri(_js_helper.JSName, I[45]);
  dart.setFieldSignature(_js_helper.JSName, () => ({
    __proto__: dart.getFields(_js_helper.JSName.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  const _is_JavaScriptIndexingBehavior_default = Symbol('_is_JavaScriptIndexingBehavior_default');
  _js_helper.JavaScriptIndexingBehavior$ = dart.generic(E => {
    class JavaScriptIndexingBehavior extends _interceptors.JSMutableIndexable$(E) {}
    (JavaScriptIndexingBehavior.new = function() {
      ;
    }).prototype = JavaScriptIndexingBehavior.prototype;
    dart.addTypeTests(JavaScriptIndexingBehavior);
    JavaScriptIndexingBehavior.prototype[_is_JavaScriptIndexingBehavior_default] = true;
    dart.addTypeCaches(JavaScriptIndexingBehavior);
    dart.setLibraryUri(JavaScriptIndexingBehavior, I[45]);
    return JavaScriptIndexingBehavior;
  });
  _js_helper.JavaScriptIndexingBehavior = _js_helper.JavaScriptIndexingBehavior$();
  dart.addTypeTests(_js_helper.JavaScriptIndexingBehavior, _is_JavaScriptIndexingBehavior_default);
  _js_helper.TypeErrorImpl = class TypeErrorImpl extends core.Error {
    toString() {
      return this[_message$0];
    }
  };
  (_js_helper.TypeErrorImpl.new = function(_message) {
    if (_message == null) dart.nullFailed(I[46], 701, 22, "_message");
    this[_message$0] = _message;
    _js_helper.TypeErrorImpl.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.TypeErrorImpl.prototype;
  dart.addTypeTests(_js_helper.TypeErrorImpl);
  dart.addTypeCaches(_js_helper.TypeErrorImpl);
  _js_helper.TypeErrorImpl[dart.implements] = () => [core.TypeError, core.CastError];
  dart.setLibraryUri(_js_helper.TypeErrorImpl, I[45]);
  dart.setFieldSignature(_js_helper.TypeErrorImpl, () => ({
    __proto__: dart.getFields(_js_helper.TypeErrorImpl.__proto__),
    [_message$0]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_js_helper.TypeErrorImpl, ['toString']);
  _js_helper.CastErrorImpl = class CastErrorImpl extends core.Error {
    toString() {
      return this[_message$0];
    }
  };
  (_js_helper.CastErrorImpl.new = function(_message) {
    if (_message == null) dart.nullFailed(I[46], 710, 22, "_message");
    this[_message$0] = _message;
    _js_helper.CastErrorImpl.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.CastErrorImpl.prototype;
  dart.addTypeTests(_js_helper.CastErrorImpl);
  dart.addTypeCaches(_js_helper.CastErrorImpl);
  _js_helper.CastErrorImpl[dart.implements] = () => [core.CastError, core.TypeError];
  dart.setLibraryUri(_js_helper.CastErrorImpl, I[45]);
  dart.setFieldSignature(_js_helper.CastErrorImpl, () => ({
    __proto__: dart.getFields(_js_helper.CastErrorImpl.__proto__),
    [_message$0]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_js_helper.CastErrorImpl, ['toString']);
  core.FallThroughError = class FallThroughError extends core.Error {
    toString() {
      return super[$toString]();
    }
  };
  (core.FallThroughError.new = function() {
    core.FallThroughError.__proto__.new.call(this);
    ;
  }).prototype = core.FallThroughError.prototype;
  (core.FallThroughError._create = function(url, line) {
    if (url == null) dart.nullFailed(I[7], 292, 35, "url");
    if (line == null) dart.nullFailed(I[7], 292, 44, "line");
    core.FallThroughError.__proto__.new.call(this);
    ;
  }).prototype = core.FallThroughError.prototype;
  dart.addTypeTests(core.FallThroughError);
  dart.addTypeCaches(core.FallThroughError);
  dart.setLibraryUri(core.FallThroughError, I[8]);
  dart.defineExtensionMethods(core.FallThroughError, ['toString']);
  _js_helper.FallThroughErrorImplementation = class FallThroughErrorImplementation extends core.FallThroughError {
    toString() {
      return "Switch case fall-through.";
    }
  };
  (_js_helper.FallThroughErrorImplementation.new = function() {
    _js_helper.FallThroughErrorImplementation.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.FallThroughErrorImplementation.prototype;
  dart.addTypeTests(_js_helper.FallThroughErrorImplementation);
  dart.addTypeCaches(_js_helper.FallThroughErrorImplementation);
  dart.setLibraryUri(_js_helper.FallThroughErrorImplementation, I[45]);
  dart.defineExtensionMethods(_js_helper.FallThroughErrorImplementation, ['toString']);
  var message$ = dart.privateName(_js_helper, "RuntimeError.message");
  _js_helper.RuntimeError = class RuntimeError extends core.Error {
    get message() {
      return this[message$];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      return "RuntimeError: " + dart.str(this.message);
    }
  };
  (_js_helper.RuntimeError.new = function(message) {
    this[message$] = message;
    _js_helper.RuntimeError.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.RuntimeError.prototype;
  dart.addTypeTests(_js_helper.RuntimeError);
  dart.addTypeCaches(_js_helper.RuntimeError);
  dart.setLibraryUri(_js_helper.RuntimeError, I[45]);
  dart.setFieldSignature(_js_helper.RuntimeError, () => ({
    __proto__: dart.getFields(_js_helper.RuntimeError.__proto__),
    message: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(_js_helper.RuntimeError, ['toString']);
  var enclosingLibrary$ = dart.privateName(_js_helper, "DeferredNotLoadedError.enclosingLibrary");
  var importPrefix$ = dart.privateName(_js_helper, "DeferredNotLoadedError.importPrefix");
  _js_helper.DeferredNotLoadedError = class DeferredNotLoadedError extends core.Error {
    get enclosingLibrary() {
      return this[enclosingLibrary$];
    }
    set enclosingLibrary(value) {
      this[enclosingLibrary$] = value;
    }
    get importPrefix() {
      return this[importPrefix$];
    }
    set importPrefix(value) {
      this[importPrefix$] = value;
    }
    toString() {
      return "Deferred import " + dart.str(this.importPrefix) + " (from " + dart.str(this.enclosingLibrary) + ") was not loaded.";
    }
    get [_receiver$]() {
      return this[$noSuchMethod](new core._Invocation.getter(C[23] || CT.C23));
    }
    get [_arguments$]() {
      return T$.ListN().as(this[$noSuchMethod](new core._Invocation.getter(C[24] || CT.C24)));
    }
    get [_memberName$]() {
      return core.Symbol.as(this[$noSuchMethod](new core._Invocation.getter(C[25] || CT.C25)));
    }
    get [_invocation$]() {
      return T$.InvocationN().as(this[$noSuchMethod](new core._Invocation.getter(C[26] || CT.C26)));
    }
    get [_namedArguments$]() {
      return T$.MapNOfSymbol$dynamic().as(this[$noSuchMethod](new core._Invocation.getter(C[27] || CT.C27)));
    }
  };
  (_js_helper.DeferredNotLoadedError.new = function(enclosingLibrary, importPrefix) {
    if (enclosingLibrary == null) dart.nullFailed(I[46], 732, 31, "enclosingLibrary");
    if (importPrefix == null) dart.nullFailed(I[46], 732, 54, "importPrefix");
    this[enclosingLibrary$] = enclosingLibrary;
    this[importPrefix$] = importPrefix;
    _js_helper.DeferredNotLoadedError.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.DeferredNotLoadedError.prototype;
  dart.addTypeTests(_js_helper.DeferredNotLoadedError);
  dart.addTypeCaches(_js_helper.DeferredNotLoadedError);
  _js_helper.DeferredNotLoadedError[dart.implements] = () => [core.NoSuchMethodError];
  dart.setGetterSignature(_js_helper.DeferredNotLoadedError, () => ({
    __proto__: dart.getGetters(_js_helper.DeferredNotLoadedError.__proto__),
    [_receiver$]: dart.nullable(core.Object),
    [_arguments$]: dart.nullable(core.List),
    [_memberName$]: core.Symbol,
    [_invocation$]: dart.nullable(core.Invocation),
    [_namedArguments$]: dart.nullable(core.Map$(core.Symbol, dart.dynamic))
  }));
  dart.setLibraryUri(_js_helper.DeferredNotLoadedError, I[45]);
  dart.setFieldSignature(_js_helper.DeferredNotLoadedError, () => ({
    __proto__: dart.getFields(_js_helper.DeferredNotLoadedError.__proto__),
    enclosingLibrary: dart.fieldType(core.String),
    importPrefix: dart.fieldType(core.String)
  }));
  dart.defineExtensionMethods(_js_helper.DeferredNotLoadedError, ['toString']);
  var _fileUri$ = dart.privateName(_js_helper, "_fileUri");
  var _line$ = dart.privateName(_js_helper, "_line");
  var _column$ = dart.privateName(_js_helper, "_column");
  var _conditionSource$ = dart.privateName(_js_helper, "_conditionSource");
  var message$0 = dart.privateName(core, "AssertionError.message");
  core.AssertionError = class AssertionError extends core.Error {
    get message() {
      return this[message$0];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      if (this.message != null) {
        return "Assertion failed: " + dart.str(core.Error.safeToString(this.message));
      }
      return "Assertion failed";
    }
  };
  (core.AssertionError.new = function(message = null) {
    this[message$0] = message;
    core.AssertionError.__proto__.new.call(this);
    ;
  }).prototype = core.AssertionError.prototype;
  dart.addTypeTests(core.AssertionError);
  dart.addTypeCaches(core.AssertionError);
  dart.setLibraryUri(core.AssertionError, I[8]);
  dart.setFieldSignature(core.AssertionError, () => ({
    __proto__: dart.getFields(core.AssertionError.__proto__),
    message: dart.finalFieldType(dart.nullable(core.Object))
  }));
  dart.defineExtensionMethods(core.AssertionError, ['toString']);
  _js_helper.AssertionErrorImpl = class AssertionErrorImpl extends core.AssertionError {
    toString() {
      let failureMessage = "";
      if (this[_fileUri$] != null && this[_line$] != null && this[_column$] != null && this[_conditionSource$] != null) {
        failureMessage = failureMessage + (dart.str(this[_fileUri$]) + ":" + dart.str(this[_line$]) + ":" + dart.str(this[_column$]) + "\n" + dart.str(this[_conditionSource$]) + "\n");
      }
      failureMessage = failureMessage + dart.notNull(this.message != null ? core.Error.safeToString(this.message) : "is not true");
      return "Assertion failed: " + failureMessage;
    }
  };
  (_js_helper.AssertionErrorImpl.new = function(message, _fileUri = null, _line = null, _column = null, _conditionSource = null) {
    this[_fileUri$] = _fileUri;
    this[_line$] = _line;
    this[_column$] = _column;
    this[_conditionSource$] = _conditionSource;
    _js_helper.AssertionErrorImpl.__proto__.new.call(this, message);
    ;
  }).prototype = _js_helper.AssertionErrorImpl.prototype;
  dart.addTypeTests(_js_helper.AssertionErrorImpl);
  dart.addTypeCaches(_js_helper.AssertionErrorImpl);
  dart.setLibraryUri(_js_helper.AssertionErrorImpl, I[45]);
  dart.setFieldSignature(_js_helper.AssertionErrorImpl, () => ({
    __proto__: dart.getFields(_js_helper.AssertionErrorImpl.__proto__),
    [_fileUri$]: dart.finalFieldType(dart.nullable(core.String)),
    [_line$]: dart.finalFieldType(dart.nullable(core.int)),
    [_column$]: dart.finalFieldType(dart.nullable(core.int)),
    [_conditionSource$]: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(_js_helper.AssertionErrorImpl, ['toString']);
  _js_helper.BooleanConversionAssertionError = class BooleanConversionAssertionError extends core.AssertionError {
    toString() {
      return "Failed assertion: boolean expression must not be null";
    }
  };
  (_js_helper.BooleanConversionAssertionError.new = function() {
    _js_helper.BooleanConversionAssertionError.__proto__.new.call(this);
    ;
  }).prototype = _js_helper.BooleanConversionAssertionError.prototype;
  dart.addTypeTests(_js_helper.BooleanConversionAssertionError);
  dart.addTypeCaches(_js_helper.BooleanConversionAssertionError);
  dart.setLibraryUri(_js_helper.BooleanConversionAssertionError, I[45]);
  dart.defineExtensionMethods(_js_helper.BooleanConversionAssertionError, ['toString']);
  var _name$1 = dart.privateName(_js_helper, "PrivateSymbol._name");
  var _nativeSymbol$ = dart.privateName(_js_helper, "PrivateSymbol._nativeSymbol");
  var _name = dart.privateName(_js_helper, "_name");
  var _nativeSymbol = dart.privateName(_js_helper, "_nativeSymbol");
  _js_helper.PrivateSymbol = class PrivateSymbol extends core.Object {
    get [_name]() {
      return this[_name$1];
    }
    set [_name](value) {
      super[_name] = value;
    }
    get [_nativeSymbol]() {
      return this[_nativeSymbol$];
    }
    set [_nativeSymbol](value) {
      super[_nativeSymbol] = value;
    }
    static getName(symbol) {
      if (symbol == null) dart.nullFailed(I[46], 815, 32, "symbol");
      return _js_helper.PrivateSymbol.as(symbol)[_name];
    }
    static getNativeSymbol(symbol) {
      if (symbol == null) dart.nullFailed(I[46], 817, 41, "symbol");
      if (_js_helper.PrivateSymbol.is(symbol)) return symbol[_nativeSymbol];
      return null;
    }
    _equals(other) {
      if (other == null) return false;
      return _js_helper.PrivateSymbol.is(other) && this[_name] == other[_name] && core.identical(this[_nativeSymbol], other[_nativeSymbol]);
    }
    get hashCode() {
      return dart.hashCode(this[_name]);
    }
    toString() {
      return "Symbol(\"" + dart.str(this[_name]) + "\")";
    }
  };
  (_js_helper.PrivateSymbol.new = function(_name, _nativeSymbol) {
    if (_name == null) dart.nullFailed(I[46], 813, 28, "_name");
    if (_nativeSymbol == null) dart.nullFailed(I[46], 813, 40, "_nativeSymbol");
    this[_name$1] = _name;
    this[_nativeSymbol$] = _nativeSymbol;
    ;
  }).prototype = _js_helper.PrivateSymbol.prototype;
  dart.addTypeTests(_js_helper.PrivateSymbol);
  dart.addTypeCaches(_js_helper.PrivateSymbol);
  _js_helper.PrivateSymbol[dart.implements] = () => [core.Symbol];
  dart.setLibraryUri(_js_helper.PrivateSymbol, I[45]);
  dart.setFieldSignature(_js_helper.PrivateSymbol, () => ({
    __proto__: dart.getFields(_js_helper.PrivateSymbol.__proto__),
    [_name]: dart.finalFieldType(core.String),
    [_nativeSymbol]: dart.finalFieldType(core.Object)
  }));
  dart.defineExtensionMethods(_js_helper.PrivateSymbol, ['_equals', 'toString']);
  dart.defineExtensionAccessors(_js_helper.PrivateSymbol, ['hashCode']);
  _js_helper.ForceInline = class ForceInline extends core.Object {};
  (_js_helper.ForceInline.new = function() {
    ;
  }).prototype = _js_helper.ForceInline.prototype;
  dart.addTypeTests(_js_helper.ForceInline);
  dart.addTypeCaches(_js_helper.ForceInline);
  dart.setLibraryUri(_js_helper.ForceInline, I[45]);
  _js_helper._NotNull = class _NotNull extends core.Object {};
  (_js_helper._NotNull.new = function() {
    ;
  }).prototype = _js_helper._NotNull.prototype;
  dart.addTypeTests(_js_helper._NotNull);
  dart.addTypeCaches(_js_helper._NotNull);
  dart.setLibraryUri(_js_helper._NotNull, I[45]);
  _js_helper.NoReifyGeneric = class NoReifyGeneric extends core.Object {};
  (_js_helper.NoReifyGeneric.new = function() {
    ;
  }).prototype = _js_helper.NoReifyGeneric.prototype;
  dart.addTypeTests(_js_helper.NoReifyGeneric);
  dart.addTypeCaches(_js_helper.NoReifyGeneric);
  dart.setLibraryUri(_js_helper.NoReifyGeneric, I[45]);
  var value$1 = dart.privateName(_js_helper, "ReifyFunctionTypes.value");
  _js_helper.ReifyFunctionTypes = class ReifyFunctionTypes extends core.Object {
    get value() {
      return this[value$1];
    }
    set value(value) {
      super.value = value;
    }
  };
  (_js_helper.ReifyFunctionTypes.new = function(value) {
    if (value == null) dart.nullFailed(I[47], 39, 33, "value");
    this[value$1] = value;
    ;
  }).prototype = _js_helper.ReifyFunctionTypes.prototype;
  dart.addTypeTests(_js_helper.ReifyFunctionTypes);
  dart.addTypeCaches(_js_helper.ReifyFunctionTypes);
  dart.setLibraryUri(_js_helper.ReifyFunctionTypes, I[45]);
  dart.setFieldSignature(_js_helper.ReifyFunctionTypes, () => ({
    __proto__: dart.getFields(_js_helper.ReifyFunctionTypes.__proto__),
    value: dart.finalFieldType(core.bool)
  }));
  _js_helper._NullCheck = class _NullCheck extends core.Object {};
  (_js_helper._NullCheck.new = function() {
    ;
  }).prototype = _js_helper._NullCheck.prototype;
  dart.addTypeTests(_js_helper._NullCheck);
  dart.addTypeCaches(_js_helper._NullCheck);
  dart.setLibraryUri(_js_helper._NullCheck, I[45]);
  _js_helper._Undefined = class _Undefined extends core.Object {};
  (_js_helper._Undefined.new = function() {
    ;
  }).prototype = _js_helper._Undefined.prototype;
  dart.addTypeTests(_js_helper._Undefined);
  dart.addTypeCaches(_js_helper._Undefined);
  dart.setLibraryUri(_js_helper._Undefined, I[45]);
  _js_helper.NoThrows = class NoThrows extends core.Object {};
  (_js_helper.NoThrows.new = function() {
    ;
  }).prototype = _js_helper.NoThrows.prototype;
  dart.addTypeTests(_js_helper.NoThrows);
  dart.addTypeCaches(_js_helper.NoThrows);
  dart.setLibraryUri(_js_helper.NoThrows, I[45]);
  _js_helper.NoInline = class NoInline extends core.Object {};
  (_js_helper.NoInline.new = function() {
    ;
  }).prototype = _js_helper.NoInline.prototype;
  dart.addTypeTests(_js_helper.NoInline);
  dart.addTypeCaches(_js_helper.NoInline);
  dart.setLibraryUri(_js_helper.NoInline, I[45]);
  var name$7 = dart.privateName(_js_helper, "Native.name");
  _js_helper.Native = class Native extends core.Object {
    get name() {
      return this[name$7];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_js_helper.Native.new = function(name) {
    if (name == null) dart.nullFailed(I[47], 76, 21, "name");
    this[name$7] = name;
    ;
  }).prototype = _js_helper.Native.prototype;
  dart.addTypeTests(_js_helper.Native);
  dart.addTypeCaches(_js_helper.Native);
  dart.setLibraryUri(_js_helper.Native, I[45]);
  dart.setFieldSignature(_js_helper.Native, () => ({
    __proto__: dart.getFields(_js_helper.Native.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  var name$8 = dart.privateName(_js_helper, "JsPeerInterface.name");
  _js_helper.JsPeerInterface = class JsPeerInterface extends core.Object {
    get name() {
      return this[name$8];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_js_helper.JsPeerInterface.new = function(opts) {
    let name = opts && 'name' in opts ? opts.name : null;
    if (name == null) dart.nullFailed(I[47], 84, 40, "name");
    this[name$8] = name;
    ;
  }).prototype = _js_helper.JsPeerInterface.prototype;
  dart.addTypeTests(_js_helper.JsPeerInterface);
  dart.addTypeCaches(_js_helper.JsPeerInterface);
  dart.setLibraryUri(_js_helper.JsPeerInterface, I[45]);
  dart.setFieldSignature(_js_helper.JsPeerInterface, () => ({
    __proto__: dart.getFields(_js_helper.JsPeerInterface.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  _js_helper.SupportJsExtensionMethods = class SupportJsExtensionMethods extends core.Object {};
  (_js_helper.SupportJsExtensionMethods.new = function() {
    ;
  }).prototype = _js_helper.SupportJsExtensionMethods.prototype;
  dart.addTypeTests(_js_helper.SupportJsExtensionMethods);
  dart.addTypeCaches(_js_helper.SupportJsExtensionMethods);
  dart.setLibraryUri(_js_helper.SupportJsExtensionMethods, I[45]);
  var _modifications = dart.privateName(_js_helper, "_modifications");
  var _map$ = dart.privateName(_js_helper, "_map");
  const _is_InternalMap_default = Symbol('_is_InternalMap_default');
  _js_helper.InternalMap$ = dart.generic((K, V) => {
    class InternalMap extends collection.MapBase$(K, V) {
      forEach(action) {
        if (action == null) dart.nullFailed(I[48], 18, 21, "action");
        let modifications = this[_modifications];
        for (let entry of this[_map$].entries()) {
          action(entry[0], entry[1]);
          if (modifications !== this[_modifications]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
      }
    }
    (InternalMap.new = function() {
      ;
    }).prototype = InternalMap.prototype;
    dart.addTypeTests(InternalMap);
    InternalMap.prototype[_is_InternalMap_default] = true;
    dart.addTypeCaches(InternalMap);
    InternalMap[dart.implements] = () => [collection.LinkedHashMap$(K, V), collection.HashMap$(K, V)];
    dart.setLibraryUri(InternalMap, I[45]);
    dart.defineExtensionMethods(InternalMap, ['forEach']);
    return InternalMap;
  });
  _js_helper.InternalMap = _js_helper.InternalMap$();
  dart.addTypeTests(_js_helper.InternalMap, _is_InternalMap_default);
  var _map = dart.privateName(_js_helper, "LinkedMap._map");
  var _modifications$ = dart.privateName(_js_helper, "LinkedMap._modifications");
  var _keyMap = dart.privateName(_js_helper, "_keyMap");
  const _is_LinkedMap_default = Symbol('_is_LinkedMap_default');
  _js_helper.LinkedMap$ = dart.generic((K, V) => {
    var _JSMapIterableOfK = () => (_JSMapIterableOfK = dart.constFn(_js_helper._JSMapIterable$(K)))();
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.fnType(dart.void, [K, V])))();
    var _JSMapIterableOfV = () => (_JSMapIterableOfV = dart.constFn(_js_helper._JSMapIterable$(V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    class LinkedMap extends _js_helper.InternalMap$(K, V) {
      get [_map$]() {
        return this[_map];
      }
      set [_map$](value) {
        super[_map$] = value;
      }
      get [_modifications]() {
        return this[_modifications$];
      }
      set [_modifications](value) {
        this[_modifications$] = value;
      }
      get length() {
        return this[_map$].size;
      }
      get isEmpty() {
        return this[_map$].size == 0;
      }
      get isNotEmpty() {
        return this[_map$].size != 0;
      }
      get keys() {
        return new (_JSMapIterableOfK()).new(this, true);
      }
      get values() {
        return new (_JSMapIterableOfV()).new(this, false);
      }
      containsKey(key) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let buckets = this[_keyMap].get(dart.hashCode(key) & 0x3ffffff);
          if (buckets != null) {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.equals(k, key)) return true;
            }
          }
          return false;
        }
        return this[_map$].has(key);
      }
      containsValue(value) {
        for (let v of this[_map$].values()) {
          if (dart.equals(v, value)) return true;
        }
        return false;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[48], 121, 25, "other");
        let map = this[_map$];
        let length = map.size;
        other[$forEach](dart.fn((key, value) => {
          if (key == null) {
            key = null;
          } else if (key[$_equals] !== dart.identityEquals) {
            key = _js_helper.putLinkedMapKey(key, this[_keyMap]);
          }
          this[_map$].set(key, value);
        }, KAndVTovoid()));
        if (length !== map.size) {
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
      }
      _get(key) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let buckets = this[_keyMap].get(dart.hashCode(key) & 0x3ffffff);
          if (buckets != null) {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.equals(k, key)) return this[_map$].get(k);
            }
          }
          return null;
        }
        let value = this[_map$].get(key);
        return value == null ? null : value;
      }
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          key = _js_helper.putLinkedMapKey(key, this[_keyMap]);
        }
        let map = this[_map$];
        let length = map.size;
        map.set(key, value);
        if (length !== map.size) {
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[48], 171, 26, "ifAbsent");
        let map = this[_map$];
        if (key == null) {
          key = null;
          if (map.has(null)) return map.get(null);
        } else if (key[$_equals] !== dart.identityEquals) {
          let k = key;
          let hash = dart.hashCode(k) & 0x3ffffff;
          let buckets = this[_keyMap].get(hash);
          if (buckets == null) {
            this[_keyMap].set(hash, [key]);
          } else {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              k = buckets[i];
              if (dart.equals(k, key)) return map.get(k);
            }
            buckets.push(key);
          }
        } else if (map.has(key)) {
          return map.get(key);
        }
        let value = ifAbsent();
        if (value == null) {
          value = null;
        }
        map.set(key, value);
        this[_modifications] = this[_modifications] + 1 & 67108863;
        return value;
      }
      remove(key) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let hash = dart.hashCode(key) & 0x3ffffff;
          let buckets = this[_keyMap].get(hash);
          if (buckets == null) return null;
          for (let i = 0, n = buckets.length;;) {
            let k = buckets[i];
            if (dart.equals(k, key)) {
              key = k;
              if (n === 1) {
                this[_keyMap].delete(hash);
              } else {
                buckets.splice(i, 1);
              }
              break;
            }
            if ((i = i + 1) >= n) return null;
          }
        }
        let map = this[_map$];
        let value = map.get(key);
        if (map.delete(key)) {
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
        return value == null ? null : value;
      }
      clear() {
        let map = this[_map$];
        if (map.size > 0) {
          map.clear();
          this[_keyMap].clear();
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
      }
    }
    (LinkedMap.new = function() {
      this[_map] = new Map();
      this[_keyMap] = new Map();
      this[_modifications$] = 0;
      ;
    }).prototype = LinkedMap.prototype;
    (LinkedMap.from = function(entries) {
      if (entries == null) dart.nullFailed(I[48], 68, 26, "entries");
      this[_map] = new Map();
      this[_keyMap] = new Map();
      this[_modifications$] = 0;
      let map = this[_map$];
      let keyMap = this[_keyMap];
      for (let i = 0, n = entries.length; i < n; i = i + 2) {
        let key = entries[i];
        let value = entries[i + 1];
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          key = _js_helper.putLinkedMapKey(key, keyMap);
        }
        map.set(key, value);
      }
    }).prototype = LinkedMap.prototype;
    dart.addTypeTests(LinkedMap);
    LinkedMap.prototype[_is_LinkedMap_default] = true;
    dart.addTypeCaches(LinkedMap);
    dart.setMethodSignature(LinkedMap, () => ({
      __proto__: dart.getMethods(LinkedMap.__proto__),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(LinkedMap, () => ({
      __proto__: dart.getGetters(LinkedMap.__proto__),
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K)
    }));
    dart.setLibraryUri(LinkedMap, I[45]);
    dart.setFieldSignature(LinkedMap, () => ({
      __proto__: dart.getFields(LinkedMap.__proto__),
      [_map$]: dart.finalFieldType(dart.dynamic),
      [_keyMap]: dart.finalFieldType(dart.nullable(core.Object)),
      [_modifications]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(LinkedMap, [
      'containsKey',
      'containsValue',
      'addAll',
      '_get',
      '_set',
      'putIfAbsent',
      'remove',
      'clear'
    ]);
    dart.defineExtensionAccessors(LinkedMap, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'keys',
      'values'
    ]);
    return LinkedMap;
  });
  _js_helper.LinkedMap = _js_helper.LinkedMap$();
  dart.addTypeTests(_js_helper.LinkedMap, _is_LinkedMap_default);
  const _is_ImmutableMap_default = Symbol('_is_ImmutableMap_default');
  _js_helper.ImmutableMap$ = dart.generic((K, V) => {
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    class ImmutableMap extends _js_helper.LinkedMap$(K, V) {
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        dart.throw(_js_helper.ImmutableMap._unsupported());
        return value$;
      }
      addAll(other) {
        core.Object.as(other);
        if (other == null) dart.nullFailed(I[48], 268, 22, "other");
        return dart.throw(_js_helper.ImmutableMap._unsupported());
      }
      clear() {
        return dart.throw(_js_helper.ImmutableMap._unsupported());
      }
      remove(key) {
        return dart.throw(_js_helper.ImmutableMap._unsupported());
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[48], 271, 26, "ifAbsent");
        return dart.throw(_js_helper.ImmutableMap._unsupported());
      }
      static _unsupported() {
        return new core.UnsupportedError.new("Cannot modify unmodifiable map");
      }
    }
    (ImmutableMap.from = function(entries) {
      if (entries == null) dart.nullFailed(I[48], 262, 29, "entries");
      ImmutableMap.__proto__.from.call(this, entries);
      ;
    }).prototype = ImmutableMap.prototype;
    dart.addTypeTests(ImmutableMap);
    ImmutableMap.prototype[_is_ImmutableMap_default] = true;
    dart.addTypeCaches(ImmutableMap);
    dart.setLibraryUri(ImmutableMap, I[45]);
    dart.defineExtensionMethods(ImmutableMap, [
      '_set',
      'addAll',
      'clear',
      'remove',
      'putIfAbsent'
    ]);
    return ImmutableMap;
  });
  _js_helper.ImmutableMap = _js_helper.ImmutableMap$();
  dart.addTypeTests(_js_helper.ImmutableMap, _is_ImmutableMap_default);
  var _map$0 = dart.privateName(_js_helper, "IdentityMap._map");
  var _modifications$0 = dart.privateName(_js_helper, "IdentityMap._modifications");
  const _is_IdentityMap_default = Symbol('_is_IdentityMap_default');
  _js_helper.IdentityMap$ = dart.generic((K, V) => {
    var _JSMapIterableOfK = () => (_JSMapIterableOfK = dart.constFn(_js_helper._JSMapIterable$(K)))();
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.fnType(dart.void, [K, V])))();
    var _JSMapIterableOfV = () => (_JSMapIterableOfV = dart.constFn(_js_helper._JSMapIterable$(V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    class IdentityMap extends _js_helper.InternalMap$(K, V) {
      get [_map$]() {
        return this[_map$0];
      }
      set [_map$](value) {
        super[_map$] = value;
      }
      get [_modifications]() {
        return this[_modifications$0];
      }
      set [_modifications](value) {
        this[_modifications$0] = value;
      }
      get length() {
        return this[_map$].size;
      }
      get isEmpty() {
        return this[_map$].size == 0;
      }
      get isNotEmpty() {
        return this[_map$].size != 0;
      }
      get keys() {
        return new (_JSMapIterableOfK()).new(this, true);
      }
      get values() {
        return new (_JSMapIterableOfV()).new(this, false);
      }
      containsKey(key) {
        return this[_map$].has(key);
      }
      containsValue(value) {
        for (let v of this[_map$].values()) {
          if (dart.equals(v, value)) return true;
        }
        return false;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[49], 47, 25, "other");
        if (dart.test(other[$isNotEmpty])) {
          let map = this[_map$];
          other[$forEach](dart.fn((key, value) => {
            map.set(key, value);
          }, KAndVTovoid()));
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
      }
      _get(key) {
        let value = this[_map$].get(key);
        return value == null ? null : value;
      }
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        let map = this[_map$];
        let length = map.size;
        map.set(key, value);
        if (length !== map.size) {
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[49], 71, 26, "ifAbsent");
        if (this[_map$].has(key)) {
          return this[_map$].get(key);
        }
        let value = ifAbsent();
        if (value == null) value = null;
        this[_map$].set(key, value);
        this[_modifications] = this[_modifications] + 1 & 67108863;
        return value;
      }
      remove(key) {
        let value = this[_map$].get(key);
        if (this[_map$].delete(key)) {
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
        return value == null ? null : value;
      }
      clear() {
        if (this[_map$].size > 0) {
          this[_map$].clear();
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
      }
    }
    (IdentityMap.new = function() {
      this[_map$0] = new Map();
      this[_modifications$0] = 0;
      ;
    }).prototype = IdentityMap.prototype;
    (IdentityMap.from = function(entries) {
      if (entries == null) dart.nullFailed(I[49], 22, 28, "entries");
      this[_map$0] = new Map();
      this[_modifications$0] = 0;
      let map = this[_map$];
      for (let i = 0, n = entries.length; i < n; i = i + 2) {
        map.set(entries[i], entries[i + 1]);
      }
    }).prototype = IdentityMap.prototype;
    dart.addTypeTests(IdentityMap);
    IdentityMap.prototype[_is_IdentityMap_default] = true;
    dart.addTypeCaches(IdentityMap);
    dart.setMethodSignature(IdentityMap, () => ({
      __proto__: dart.getMethods(IdentityMap.__proto__),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(IdentityMap, () => ({
      __proto__: dart.getGetters(IdentityMap.__proto__),
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K)
    }));
    dart.setLibraryUri(IdentityMap, I[45]);
    dart.setFieldSignature(IdentityMap, () => ({
      __proto__: dart.getFields(IdentityMap.__proto__),
      [_map$]: dart.finalFieldType(dart.dynamic),
      [_modifications]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(IdentityMap, [
      'containsKey',
      'containsValue',
      'addAll',
      '_get',
      '_set',
      'putIfAbsent',
      'remove',
      'clear'
    ]);
    dart.defineExtensionAccessors(IdentityMap, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'keys',
      'values'
    ]);
    return IdentityMap;
  });
  _js_helper.IdentityMap = _js_helper.IdentityMap$();
  dart.addTypeTests(_js_helper.IdentityMap, _is_IdentityMap_default);
  var _isKeys$ = dart.privateName(_js_helper, "_isKeys");
  const _is__JSMapIterable_default = Symbol('_is__JSMapIterable_default');
  _js_helper._JSMapIterable$ = dart.generic(E => {
    var DartIteratorOfE = () => (DartIteratorOfE = dart.constFn(_js_helper.DartIterator$(E)))();
    class _JSMapIterable extends _internal.EfficientLengthIterable$(E) {
      get length() {
        return this[_map$][$length];
      }
      get isEmpty() {
        return this[_map$][$isEmpty];
      }
      [Symbol.iterator]() {
        let map = this[_map$];
        let iterator = this[_isKeys$] ? map[_map$].keys() : map[_map$].values();
        let modifications = map[_modifications];
        return {
          next() {
            if (modifications != map[_modifications]) {
              throw new core.ConcurrentModificationError.new(map);
            }
            return iterator.next();
          }
        };
      }
      get iterator() {
        return new (DartIteratorOfE()).new(this[Symbol.iterator]());
      }
      contains(element) {
        return this[_isKeys$] ? this[_map$][$containsKey](element) : this[_map$][$containsValue](element);
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[49], 134, 33, "f");
        for (let entry of this)
          f(entry);
      }
    }
    (_JSMapIterable.new = function(_map, _isKeys) {
      if (_map == null) dart.nullFailed(I[49], 102, 23, "_map");
      if (_isKeys == null) dart.nullFailed(I[49], 102, 34, "_isKeys");
      this[_map$] = _map;
      this[_isKeys$] = _isKeys;
      _JSMapIterable.__proto__.new.call(this);
      ;
    }).prototype = _JSMapIterable.prototype;
    dart.addTypeTests(_JSMapIterable);
    _JSMapIterable.prototype[_is__JSMapIterable_default] = true;
    dart.addTypeCaches(_JSMapIterable);
    dart.setMethodSignature(_JSMapIterable, () => ({
      __proto__: dart.getMethods(_JSMapIterable.__proto__),
      [Symbol.iterator]: dart.fnType(dart.dynamic, [])
    }));
    dart.setGetterSignature(_JSMapIterable, () => ({
      __proto__: dart.getGetters(_JSMapIterable.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(_JSMapIterable, I[45]);
    dart.setFieldSignature(_JSMapIterable, () => ({
      __proto__: dart.getFields(_JSMapIterable.__proto__),
      [_map$]: dart.finalFieldType(_js_helper.InternalMap),
      [_isKeys$]: dart.finalFieldType(core.bool)
    }));
    dart.defineExtensionMethods(_JSMapIterable, ['contains', 'forEach']);
    dart.defineExtensionAccessors(_JSMapIterable, ['length', 'isEmpty', 'iterator']);
    return _JSMapIterable;
  });
  _js_helper._JSMapIterable = _js_helper._JSMapIterable$();
  dart.addTypeTests(_js_helper._JSMapIterable, _is__JSMapIterable_default);
  var _validKey$ = dart.privateName(_js_helper, "_validKey");
  var _map$1 = dart.privateName(_js_helper, "CustomHashMap._map");
  var _modifications$1 = dart.privateName(_js_helper, "CustomHashMap._modifications");
  var _equals$ = dart.privateName(_js_helper, "_equals");
  var _hashCode$ = dart.privateName(_js_helper, "_hashCode");
  const _is_CustomHashMap_default = Symbol('_is_CustomHashMap_default');
  _js_helper.CustomHashMap$ = dart.generic((K, V) => {
    var _JSMapIterableOfK = () => (_JSMapIterableOfK = dart.constFn(_js_helper._JSMapIterable$(K)))();
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.fnType(dart.void, [K, V])))();
    var _JSMapIterableOfV = () => (_JSMapIterableOfV = dart.constFn(_js_helper._JSMapIterable$(V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    class CustomHashMap extends _js_helper.InternalMap$(K, V) {
      get [_map$]() {
        return this[_map$1];
      }
      set [_map$](value) {
        super[_map$] = value;
      }
      get [_modifications]() {
        return this[_modifications$1];
      }
      set [_modifications](value) {
        this[_modifications$1] = value;
      }
      get length() {
        return this[_map$].size;
      }
      get isEmpty() {
        return this[_map$].size == 0;
      }
      get isNotEmpty() {
        return this[_map$].size != 0;
      }
      get keys() {
        return new (_JSMapIterableOfK()).new(this, true);
      }
      get values() {
        return new (_JSMapIterableOfV()).new(this, false);
      }
      containsKey(key) {
        let t82;
        if (K.is(key)) {
          let buckets = this[_keyMap].get((t82 = key, this[_hashCode$](t82)) & 0x3ffffff);
          if (buckets != null) {
            let equals = this[_equals$];
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.test(equals(k, key))) return true;
            }
          }
        }
        return false;
      }
      containsValue(value) {
        for (let v of this[_map$].values()) {
          if (dart.equals(value, v)) return true;
        }
        return false;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[50], 91, 25, "other");
        other[$forEach](dart.fn((key, value) => {
          this._set(key, value);
        }, KAndVTovoid()));
      }
      _get(key) {
        let t82;
        if (K.is(key)) {
          let buckets = this[_keyMap].get((t82 = key, this[_hashCode$](t82)) & 0x3ffffff);
          if (buckets != null) {
            let equals = this[_equals$];
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.test(equals(k, key))) {
                let value = this[_map$].get(k);
                return value == null ? null : value;
              }
            }
          }
        }
        return null;
      }
      _set(key, value$) {
        let value = value$;
        let t82;
        K.as(key);
        V.as(value);
        let keyMap = this[_keyMap];
        let hash = (t82 = key, this[_hashCode$](t82)) & 0x3ffffff;
        let buckets = keyMap.get(hash);
        if (buckets == null) {
          keyMap.set(hash, [key]);
        } else {
          let equals = this[_equals$];
          for (let i = 0, n = buckets.length;;) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) {
              key = k;
              break;
            }
            if ((i = i + 1) >= n) {
              buckets.push(key);
              break;
            }
          }
        }
        this[_map$].set(key, value);
        this[_modifications] = this[_modifications] + 1 & 67108863;
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        let t82;
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[50], 138, 26, "ifAbsent");
        let keyMap = this[_keyMap];
        let hash = (t82 = key, this[_hashCode$](t82)) & 0x3ffffff;
        let buckets = keyMap.get(hash);
        if (buckets == null) {
          keyMap.set(hash, [key]);
        } else {
          let equals = this[_equals$];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) return this[_map$].get(k);
          }
          buckets.push(key);
        }
        let value = ifAbsent();
        if (value == null) value = null;
        this[_map$].set(key, value);
        this[_modifications] = this[_modifications] + 1 & 67108863;
        return value;
      }
      remove(key) {
        let t82;
        if (K.is(key)) {
          let hash = (t82 = key, this[_hashCode$](t82)) & 0x3ffffff;
          let keyMap = this[_keyMap];
          let buckets = keyMap.get(hash);
          if (buckets == null) return null;
          let equals = this[_equals$];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) {
              if (n === 1) {
                keyMap.delete(hash);
              } else {
                buckets.splice(i, 1);
              }
              let map = this[_map$];
              let value = map.get(k);
              map.delete(k);
              this[_modifications] = this[_modifications] + 1 & 67108863;
              return value == null ? null : value;
            }
          }
        }
        return null;
      }
      clear() {
        let map = this[_map$];
        if (map.size > 0) {
          map.clear();
          this[_keyMap].clear();
          this[_modifications] = this[_modifications] + 1 & 67108863;
        }
      }
    }
    (CustomHashMap.new = function(_equals, _hashCode) {
      if (_equals == null) dart.nullFailed(I[50], 55, 22, "_equals");
      if (_hashCode == null) dart.nullFailed(I[50], 55, 36, "_hashCode");
      this[_map$1] = new Map();
      this[_keyMap] = new Map();
      this[_modifications$1] = 0;
      this[_equals$] = _equals;
      this[_hashCode$] = _hashCode;
      ;
    }).prototype = CustomHashMap.prototype;
    dart.addTypeTests(CustomHashMap);
    CustomHashMap.prototype[_is_CustomHashMap_default] = true;
    dart.addTypeCaches(CustomHashMap);
    dart.setMethodSignature(CustomHashMap, () => ({
      __proto__: dart.getMethods(CustomHashMap.__proto__),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(CustomHashMap, () => ({
      __proto__: dart.getGetters(CustomHashMap.__proto__),
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K)
    }));
    dart.setLibraryUri(CustomHashMap, I[45]);
    dart.setFieldSignature(CustomHashMap, () => ({
      __proto__: dart.getFields(CustomHashMap.__proto__),
      [_map$]: dart.finalFieldType(dart.dynamic),
      [_keyMap]: dart.finalFieldType(dart.nullable(core.Object)),
      [_modifications]: dart.fieldType(core.int),
      [_equals$]: dart.finalFieldType(dart.fnType(core.bool, [K, K])),
      [_hashCode$]: dart.finalFieldType(dart.fnType(core.int, [K]))
    }));
    dart.defineExtensionMethods(CustomHashMap, [
      'containsKey',
      'containsValue',
      'addAll',
      '_get',
      '_set',
      'putIfAbsent',
      'remove',
      'clear'
    ]);
    dart.defineExtensionAccessors(CustomHashMap, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'keys',
      'values'
    ]);
    return CustomHashMap;
  });
  _js_helper.CustomHashMap = _js_helper.CustomHashMap$();
  dart.addTypeTests(_js_helper.CustomHashMap, _is_CustomHashMap_default);
  const _is_CustomKeyHashMap_default = Symbol('_is_CustomKeyHashMap_default');
  _js_helper.CustomKeyHashMap$ = dart.generic((K, V) => {
    class CustomKeyHashMap extends _js_helper.CustomHashMap$(K, V) {
      containsKey(key) {
        let t82;
        if (!dart.test((t82 = key, this[_validKey$](t82)))) return false;
        return super.containsKey(key);
      }
      _get(key) {
        let t82;
        if (!dart.test((t82 = key, this[_validKey$](t82)))) return null;
        return super._get(key);
      }
      remove(key) {
        let t82;
        if (!dart.test((t82 = key, this[_validKey$](t82)))) return null;
        return super.remove(key);
      }
    }
    (CustomKeyHashMap.new = function(equals, hashCode, _validKey) {
      if (equals == null) dart.nullFailed(I[50], 9, 33, "equals");
      if (hashCode == null) dart.nullFailed(I[50], 9, 52, "hashCode");
      if (_validKey == null) dart.nullFailed(I[50], 9, 67, "_validKey");
      this[_validKey$] = _validKey;
      CustomKeyHashMap.__proto__.new.call(this, equals, hashCode);
      ;
    }).prototype = CustomKeyHashMap.prototype;
    dart.addTypeTests(CustomKeyHashMap);
    CustomKeyHashMap.prototype[_is_CustomKeyHashMap_default] = true;
    dart.addTypeCaches(CustomKeyHashMap);
    dart.setLibraryUri(CustomKeyHashMap, I[45]);
    dart.setFieldSignature(CustomKeyHashMap, () => ({
      __proto__: dart.getFields(CustomKeyHashMap.__proto__),
      [_validKey$]: dart.finalFieldType(dart.fnType(core.bool, [dart.nullable(core.Object)]))
    }));
    dart.defineExtensionMethods(CustomKeyHashMap, ['containsKey', '_get', 'remove']);
    return CustomKeyHashMap;
  });
  _js_helper.CustomKeyHashMap = _js_helper.CustomKeyHashMap$();
  dart.addTypeTests(_js_helper.CustomKeyHashMap, _is_CustomKeyHashMap_default);
  var pattern = dart.privateName(_js_helper, "JSSyntaxRegExp.pattern");
  var _nativeGlobalRegExp = dart.privateName(_js_helper, "_nativeGlobalRegExp");
  var _nativeAnchoredRegExp = dart.privateName(_js_helper, "_nativeAnchoredRegExp");
  var _nativeRegExp = dart.privateName(_js_helper, "_nativeRegExp");
  var _isMultiLine = dart.privateName(_js_helper, "_isMultiLine");
  var _isCaseSensitive = dart.privateName(_js_helper, "_isCaseSensitive");
  var _isUnicode = dart.privateName(_js_helper, "_isUnicode");
  var _isDotAll = dart.privateName(_js_helper, "_isDotAll");
  var _nativeGlobalVersion = dart.privateName(_js_helper, "_nativeGlobalVersion");
  var _nativeAnchoredVersion = dart.privateName(_js_helper, "_nativeAnchoredVersion");
  var _execGlobal = dart.privateName(_js_helper, "_execGlobal");
  var _execAnchored = dart.privateName(_js_helper, "_execAnchored");
  _js_helper.JSSyntaxRegExp = class JSSyntaxRegExp extends core.Object {
    get pattern() {
      return this[pattern];
    }
    set pattern(value) {
      super.pattern = value;
    }
    toString() {
      return "RegExp/" + dart.str(this.pattern) + "/" + this[_nativeRegExp].flags;
    }
    get [_nativeGlobalVersion]() {
      if (this[_nativeGlobalRegExp] != null) return this[_nativeGlobalRegExp];
      return this[_nativeGlobalRegExp] = _js_helper.JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], this[_isUnicode], this[_isDotAll], true);
    }
    get [_nativeAnchoredVersion]() {
      if (this[_nativeAnchoredRegExp] != null) return this[_nativeAnchoredRegExp];
      return this[_nativeAnchoredRegExp] = _js_helper.JSSyntaxRegExp.makeNative(dart.str(this.pattern) + "|()", this[_isMultiLine], this[_isCaseSensitive], this[_isUnicode], this[_isDotAll], true);
    }
    get [_isMultiLine]() {
      return this[_nativeRegExp].multiline;
    }
    get [_isCaseSensitive]() {
      return !this[_nativeRegExp].ignoreCase;
    }
    get [_isUnicode]() {
      return this[_nativeRegExp].unicode;
    }
    get [_isDotAll]() {
      return this[_nativeRegExp].dotAll == true;
    }
    static makeNative(source, multiLine, caseSensitive, unicode, dotAll, global) {
      if (source == null) dart.argumentError(source);
      if (multiLine == null) dart.nullFailed(I[51], 86, 52, "multiLine");
      if (caseSensitive == null) dart.nullFailed(I[51], 87, 12, "caseSensitive");
      if (unicode == null) dart.nullFailed(I[51], 87, 32, "unicode");
      if (dotAll == null) dart.nullFailed(I[51], 87, 46, "dotAll");
      if (global == null) dart.nullFailed(I[51], 87, 59, "global");
      let m = dart.test(multiLine) ? "m" : "";
      let i = dart.test(caseSensitive) ? "" : "i";
      let u = dart.test(unicode) ? "u" : "";
      let s = dart.test(dotAll) ? "s" : "";
      let g = dart.test(global) ? "g" : "";
      let regexp = (function() {
        try {
          return new RegExp(source, m + i + u + s + g);
        } catch (e) {
          return e;
        }
      })();
      if (regexp instanceof RegExp) return regexp;
      let errorMessage = String(regexp);
      dart.throw(new core.FormatException.new("Illegal RegExp pattern: " + source + ", " + errorMessage));
    }
    firstMatch(string) {
      if (string == null) dart.argumentError(string);
      let m = this[_nativeRegExp].exec(string);
      if (m == null) return null;
      return new _js_helper._MatchImplementation.new(this, m);
    }
    hasMatch(string) {
      if (string == null) dart.argumentError(string);
      return this[_nativeRegExp].test(string);
    }
    stringMatch(string) {
      if (string == null) dart.nullFailed(I[51], 131, 30, "string");
      let match = this.firstMatch(string);
      if (match != null) return match.group(0);
      return null;
    }
    allMatches(string, start = 0) {
      if (string == null) dart.argumentError(string);
      if (start == null) dart.argumentError(start);
      if (start < 0 || start > string.length) {
        dart.throw(new core.RangeError.range(start, 0, string.length));
      }
      return new _js_helper._AllMatchesIterable.new(this, string, start);
    }
    [_execGlobal](string, start) {
      if (string == null) dart.nullFailed(I[51], 145, 35, "string");
      if (start == null) dart.nullFailed(I[51], 145, 47, "start");
      let regexp = core.Object.as(this[_nativeGlobalVersion]);
      regexp.lastIndex = start;
      let match = regexp.exec(string);
      if (match == null) return null;
      return new _js_helper._MatchImplementation.new(this, match);
    }
    [_execAnchored](string, start) {
      let t82;
      if (string == null) dart.nullFailed(I[51], 155, 37, "string");
      if (start == null) dart.nullFailed(I[51], 155, 49, "start");
      let regexp = core.Object.as(this[_nativeAnchoredVersion]);
      regexp.lastIndex = start;
      let match = regexp.exec(string);
      if (match == null) return null;
      if (match[$_get](dart.notNull(match[$length]) - 1) != null) return null;
      t82 = match;
      t82[$length] = dart.notNull(t82[$length]) - 1;
      return new _js_helper._MatchImplementation.new(this, match);
    }
    matchAsPrefix(string, start = 0) {
      if (string == null) dart.nullFailed(I[51], 169, 31, "string");
      if (start == null) dart.nullFailed(I[51], 169, 44, "start");
      if (dart.notNull(start) < 0 || dart.notNull(start) > string.length) {
        dart.throw(new core.RangeError.range(start, 0, string.length));
      }
      return this[_execAnchored](string, start);
    }
    get isMultiLine() {
      return this[_isMultiLine];
    }
    get isCaseSensitive() {
      return this[_isCaseSensitive];
    }
    get isUnicode() {
      return this[_isUnicode];
    }
    get isDotAll() {
      return this[_isDotAll];
    }
  };
  (_js_helper.JSSyntaxRegExp.new = function(source, opts) {
    if (source == null) dart.nullFailed(I[51], 53, 25, "source");
    let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
    if (multiLine == null) dart.nullFailed(I[51], 54, 13, "multiLine");
    let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
    if (caseSensitive == null) dart.nullFailed(I[51], 55, 12, "caseSensitive");
    let unicode = opts && 'unicode' in opts ? opts.unicode : false;
    if (unicode == null) dart.nullFailed(I[51], 56, 12, "unicode");
    let dotAll = opts && 'dotAll' in opts ? opts.dotAll : false;
    if (dotAll == null) dart.nullFailed(I[51], 57, 12, "dotAll");
    this[_nativeGlobalRegExp] = null;
    this[_nativeAnchoredRegExp] = null;
    this[pattern] = source;
    this[_nativeRegExp] = _js_helper.JSSyntaxRegExp.makeNative(source, multiLine, caseSensitive, unicode, dotAll, false);
    ;
  }).prototype = _js_helper.JSSyntaxRegExp.prototype;
  dart.addTypeTests(_js_helper.JSSyntaxRegExp);
  dart.addTypeCaches(_js_helper.JSSyntaxRegExp);
  _js_helper.JSSyntaxRegExp[dart.implements] = () => [core.RegExp];
  dart.setMethodSignature(_js_helper.JSSyntaxRegExp, () => ({
    __proto__: dart.getMethods(_js_helper.JSSyntaxRegExp.__proto__),
    firstMatch: dart.fnType(dart.nullable(core.RegExpMatch), [core.String]),
    hasMatch: dart.fnType(core.bool, [core.String]),
    stringMatch: dart.fnType(dart.nullable(core.String), [core.String]),
    allMatches: dart.fnType(core.Iterable$(core.RegExpMatch), [core.String], [core.int]),
    [$allMatches]: dart.fnType(core.Iterable$(core.RegExpMatch), [core.String], [core.int]),
    [_execGlobal]: dart.fnType(dart.nullable(core.RegExpMatch), [core.String, core.int]),
    [_execAnchored]: dart.fnType(dart.nullable(core.RegExpMatch), [core.String, core.int]),
    matchAsPrefix: dart.fnType(dart.nullable(core.Match), [core.String], [core.int]),
    [$matchAsPrefix]: dart.fnType(dart.nullable(core.Match), [core.String], [core.int])
  }));
  dart.setGetterSignature(_js_helper.JSSyntaxRegExp, () => ({
    __proto__: dart.getGetters(_js_helper.JSSyntaxRegExp.__proto__),
    [_nativeGlobalVersion]: dart.dynamic,
    [_nativeAnchoredVersion]: dart.dynamic,
    [_isMultiLine]: core.bool,
    [_isCaseSensitive]: core.bool,
    [_isUnicode]: core.bool,
    [_isDotAll]: core.bool,
    isMultiLine: core.bool,
    isCaseSensitive: core.bool,
    isUnicode: core.bool,
    isDotAll: core.bool
  }));
  dart.setLibraryUri(_js_helper.JSSyntaxRegExp, I[45]);
  dart.setFieldSignature(_js_helper.JSSyntaxRegExp, () => ({
    __proto__: dart.getFields(_js_helper.JSSyntaxRegExp.__proto__),
    pattern: dart.finalFieldType(core.String),
    [_nativeRegExp]: dart.finalFieldType(dart.dynamic),
    [_nativeGlobalRegExp]: dart.fieldType(dart.dynamic),
    [_nativeAnchoredRegExp]: dart.fieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(_js_helper.JSSyntaxRegExp, ['toString', 'allMatches', 'matchAsPrefix']);
  var _match$ = dart.privateName(_js_helper, "_match");
  _js_helper._MatchImplementation = class _MatchImplementation extends core.Object {
    get input() {
      return this[_match$].input;
    }
    get start() {
      return this[_match$].index;
    }
    get end() {
      return dart.notNull(this.start) + dart.nullCheck(this[_match$][$_get](0)).length;
    }
    group(index) {
      if (index == null) dart.nullFailed(I[51], 200, 21, "index");
      return this[_match$][$_get](index);
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[51], 201, 27, "index");
      return this.group(index);
    }
    get groupCount() {
      return dart.notNull(this[_match$][$length]) - 1;
    }
    groups(groups) {
      if (groups == null) dart.nullFailed(I[51], 204, 34, "groups");
      let out = T$.JSArrayOfStringN().of([]);
      for (let i of groups) {
        out[$add](this.group(i));
      }
      return out;
    }
    namedGroup(name) {
      if (name == null) dart.nullFailed(I[51], 212, 29, "name");
      let groups = this[_match$].groups;
      if (groups != null) {
        let result = groups[name];
        if (result != null || name in groups) {
          return result;
        }
      }
      dart.throw(new core.ArgumentError.value(name, "name", "Not a capture group name"));
    }
    get groupNames() {
      let groups = this[_match$].groups;
      if (groups != null) {
        let keys = T$.JSArrayOfString().of(Object.keys(groups));
        return new (T$.SubListIterableOfString()).new(keys, 0, null);
      }
      return new (T$.EmptyIterableOfString()).new();
    }
  };
  (_js_helper._MatchImplementation.new = function(pattern, _match) {
    if (pattern == null) dart.nullFailed(I[51], 191, 29, "pattern");
    if (_match == null) dart.nullFailed(I[51], 191, 43, "_match");
    this.pattern = pattern;
    this[_match$] = _match;
    if (!(typeof this[_match$].input == 'string')) dart.assertFailed(null, I[51], 192, 12, "JS(\"var\", \"#.input\", _match) is String");
    if (!core.int.is(this[_match$].index)) dart.assertFailed(null, I[51], 193, 12, "JS(\"var\", \"#.index\", _match) is int");
  }).prototype = _js_helper._MatchImplementation.prototype;
  dart.addTypeTests(_js_helper._MatchImplementation);
  dart.addTypeCaches(_js_helper._MatchImplementation);
  _js_helper._MatchImplementation[dart.implements] = () => [core.RegExpMatch];
  dart.setMethodSignature(_js_helper._MatchImplementation, () => ({
    __proto__: dart.getMethods(_js_helper._MatchImplementation.__proto__),
    group: dart.fnType(dart.nullable(core.String), [core.int]),
    _get: dart.fnType(dart.nullable(core.String), [core.int]),
    groups: dart.fnType(core.List$(dart.nullable(core.String)), [core.List$(core.int)]),
    namedGroup: dart.fnType(dart.nullable(core.String), [core.String])
  }));
  dart.setGetterSignature(_js_helper._MatchImplementation, () => ({
    __proto__: dart.getGetters(_js_helper._MatchImplementation.__proto__),
    input: core.String,
    start: core.int,
    end: core.int,
    groupCount: core.int,
    groupNames: core.Iterable$(core.String)
  }));
  dart.setLibraryUri(_js_helper._MatchImplementation, I[45]);
  dart.setFieldSignature(_js_helper._MatchImplementation, () => ({
    __proto__: dart.getFields(_js_helper._MatchImplementation.__proto__),
    pattern: dart.finalFieldType(core.Pattern),
    [_match$]: dart.finalFieldType(core.List$(dart.nullable(core.String)))
  }));
  var _re$ = dart.privateName(_js_helper, "_re");
  var _string$0 = dart.privateName(_js_helper, "_string");
  var _start$0 = dart.privateName(_js_helper, "_start");
  core.RegExpMatch = class RegExpMatch extends core.Object {};
  (core.RegExpMatch.new = function() {
    ;
  }).prototype = core.RegExpMatch.prototype;
  dart.addTypeTests(core.RegExpMatch);
  dart.addTypeCaches(core.RegExpMatch);
  core.RegExpMatch[dart.implements] = () => [core.Match];
  dart.setLibraryUri(core.RegExpMatch, I[8]);
  _js_helper._AllMatchesIterable = class _AllMatchesIterable extends collection.IterableBase$(core.RegExpMatch) {
    get iterator() {
      return new _js_helper._AllMatchesIterator.new(this[_re$], this[_string$0], this[_start$0]);
    }
  };
  (_js_helper._AllMatchesIterable.new = function(_re, _string, _start) {
    if (_re == null) dart.nullFailed(I[51], 238, 28, "_re");
    if (_string == null) dart.nullFailed(I[51], 238, 38, "_string");
    if (_start == null) dart.nullFailed(I[51], 238, 52, "_start");
    this[_re$] = _re;
    this[_string$0] = _string;
    this[_start$0] = _start;
    _js_helper._AllMatchesIterable.__proto__.new.call(this);
    ;
  }).prototype = _js_helper._AllMatchesIterable.prototype;
  dart.addTypeTests(_js_helper._AllMatchesIterable);
  dart.addTypeCaches(_js_helper._AllMatchesIterable);
  dart.setGetterSignature(_js_helper._AllMatchesIterable, () => ({
    __proto__: dart.getGetters(_js_helper._AllMatchesIterable.__proto__),
    iterator: core.Iterator$(core.RegExpMatch),
    [$iterator]: core.Iterator$(core.RegExpMatch)
  }));
  dart.setLibraryUri(_js_helper._AllMatchesIterable, I[45]);
  dart.setFieldSignature(_js_helper._AllMatchesIterable, () => ({
    __proto__: dart.getFields(_js_helper._AllMatchesIterable.__proto__),
    [_re$]: dart.finalFieldType(_js_helper.JSSyntaxRegExp),
    [_string$0]: dart.finalFieldType(core.String),
    [_start$0]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionAccessors(_js_helper._AllMatchesIterable, ['iterator']);
  var _regExp$ = dart.privateName(_js_helper, "_regExp");
  var _nextIndex$ = dart.privateName(_js_helper, "_nextIndex");
  _js_helper._AllMatchesIterator = class _AllMatchesIterator extends core.Object {
    get current() {
      return dart.nullCast(this[_current$0], core.RegExpMatch);
    }
    static _isLeadSurrogate(c) {
      if (c == null) dart.nullFailed(I[51], 254, 36, "c");
      return dart.notNull(c) >= 55296 && dart.notNull(c) <= 56319;
    }
    static _isTrailSurrogate(c) {
      if (c == null) dart.nullFailed(I[51], 258, 37, "c");
      return dart.notNull(c) >= 56320 && dart.notNull(c) <= 57343;
    }
    moveNext() {
      let string = this[_string$0];
      if (string == null) return false;
      if (dart.notNull(this[_nextIndex$]) <= string.length) {
        let match = this[_regExp$][_execGlobal](string, this[_nextIndex$]);
        if (match != null) {
          this[_current$0] = match;
          let nextIndex = match.end;
          if (match.start == nextIndex) {
            if (dart.test(this[_regExp$].isUnicode) && dart.notNull(this[_nextIndex$]) + 1 < string.length && dart.test(_js_helper._AllMatchesIterator._isLeadSurrogate(string[$codeUnitAt](this[_nextIndex$]))) && dart.test(_js_helper._AllMatchesIterator._isTrailSurrogate(string[$codeUnitAt](dart.notNull(this[_nextIndex$]) + 1)))) {
              nextIndex = dart.notNull(nextIndex) + 1;
            }
            nextIndex = dart.notNull(nextIndex) + 1;
          }
          this[_nextIndex$] = nextIndex;
          return true;
        }
      }
      this[_current$0] = null;
      this[_string$0] = null;
      return false;
    }
  };
  (_js_helper._AllMatchesIterator.new = function(_regExp, _string, _nextIndex) {
    if (_regExp == null) dart.nullFailed(I[51], 250, 28, "_regExp");
    if (_nextIndex == null) dart.nullFailed(I[51], 250, 56, "_nextIndex");
    this[_current$0] = null;
    this[_regExp$] = _regExp;
    this[_string$0] = _string;
    this[_nextIndex$] = _nextIndex;
    ;
  }).prototype = _js_helper._AllMatchesIterator.prototype;
  dart.addTypeTests(_js_helper._AllMatchesIterator);
  dart.addTypeCaches(_js_helper._AllMatchesIterator);
  _js_helper._AllMatchesIterator[dart.implements] = () => [core.Iterator$(core.RegExpMatch)];
  dart.setMethodSignature(_js_helper._AllMatchesIterator, () => ({
    __proto__: dart.getMethods(_js_helper._AllMatchesIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_js_helper._AllMatchesIterator, () => ({
    __proto__: dart.getGetters(_js_helper._AllMatchesIterator.__proto__),
    current: core.RegExpMatch
  }));
  dart.setLibraryUri(_js_helper._AllMatchesIterator, I[45]);
  dart.setFieldSignature(_js_helper._AllMatchesIterator, () => ({
    __proto__: dart.getFields(_js_helper._AllMatchesIterator.__proto__),
    [_regExp$]: dart.finalFieldType(_js_helper.JSSyntaxRegExp),
    [_string$0]: dart.fieldType(dart.nullable(core.String)),
    [_nextIndex$]: dart.fieldType(core.int),
    [_current$0]: dart.fieldType(dart.nullable(core.RegExpMatch))
  }));
  var start$0 = dart.privateName(_js_helper, "StringMatch.start");
  var input$ = dart.privateName(_js_helper, "StringMatch.input");
  var pattern$ = dart.privateName(_js_helper, "StringMatch.pattern");
  _js_helper.StringMatch = class StringMatch extends core.Object {
    get start() {
      return this[start$0];
    }
    set start(value) {
      super.start = value;
    }
    get input() {
      return this[input$];
    }
    set input(value) {
      super.input = value;
    }
    get pattern() {
      return this[pattern$];
    }
    set pattern(value) {
      super.pattern = value;
    }
    get end() {
      return dart.notNull(this.start) + this.pattern.length;
    }
    _get(g) {
      if (g == null) dart.nullFailed(I[52], 31, 26, "g");
      return this.group(g);
    }
    get groupCount() {
      return 0;
    }
    group(group_) {
      if (group_ == null) dart.nullFailed(I[52], 34, 20, "group_");
      if (group_ !== 0) {
        dart.throw(new core.RangeError.value(group_));
      }
      return this.pattern;
    }
    groups(groups_) {
      if (groups_ == null) dart.nullFailed(I[52], 41, 33, "groups_");
      let result = T$.JSArrayOfString().of([]);
      for (let g of groups_) {
        result[$add](this.group(g));
      }
      return result;
    }
  };
  (_js_helper.StringMatch.new = function(start, input, pattern) {
    if (start == null) dart.nullFailed(I[52], 28, 30, "start");
    if (input == null) dart.nullFailed(I[52], 28, 49, "input");
    if (pattern == null) dart.nullFailed(I[52], 28, 68, "pattern");
    this[start$0] = start;
    this[input$] = input;
    this[pattern$] = pattern;
    ;
  }).prototype = _js_helper.StringMatch.prototype;
  dart.addTypeTests(_js_helper.StringMatch);
  dart.addTypeCaches(_js_helper.StringMatch);
  _js_helper.StringMatch[dart.implements] = () => [core.Match];
  dart.setMethodSignature(_js_helper.StringMatch, () => ({
    __proto__: dart.getMethods(_js_helper.StringMatch.__proto__),
    _get: dart.fnType(core.String, [core.int]),
    group: dart.fnType(core.String, [core.int]),
    groups: dart.fnType(core.List$(core.String), [core.List$(core.int)])
  }));
  dart.setGetterSignature(_js_helper.StringMatch, () => ({
    __proto__: dart.getGetters(_js_helper.StringMatch.__proto__),
    end: core.int,
    groupCount: core.int
  }));
  dart.setLibraryUri(_js_helper.StringMatch, I[45]);
  dart.setFieldSignature(_js_helper.StringMatch, () => ({
    __proto__: dart.getFields(_js_helper.StringMatch.__proto__),
    start: dart.finalFieldType(core.int),
    input: dart.finalFieldType(core.String),
    pattern: dart.finalFieldType(core.String)
  }));
  var _input$ = dart.privateName(_js_helper, "_input");
  var _pattern$ = dart.privateName(_js_helper, "_pattern");
  var _index$0 = dart.privateName(_js_helper, "_index");
  core.Match = class Match extends core.Object {};
  (core.Match.new = function() {
    ;
  }).prototype = core.Match.prototype;
  dart.addTypeTests(core.Match);
  dart.addTypeCaches(core.Match);
  dart.setLibraryUri(core.Match, I[8]);
  _js_helper._StringAllMatchesIterable = class _StringAllMatchesIterable extends core.Iterable$(core.Match) {
    get iterator() {
      return new _js_helper._StringAllMatchesIterator.new(this[_input$], this[_pattern$], this[_index$0]);
    }
    get first() {
      let index = _js_helper.stringIndexOfStringUnchecked(this[_input$], this[_pattern$], this[_index$0]);
      if (index >= 0) {
        return new _js_helper.StringMatch.new(index, this[_input$], this[_pattern$]);
      }
      dart.throw(_internal.IterableElementError.noElement());
    }
  };
  (_js_helper._StringAllMatchesIterable.new = function(_input, _pattern, _index) {
    if (_input == null) dart.nullFailed(I[52], 64, 34, "_input");
    if (_pattern == null) dart.nullFailed(I[52], 64, 47, "_pattern");
    if (_index == null) dart.nullFailed(I[52], 64, 62, "_index");
    this[_input$] = _input;
    this[_pattern$] = _pattern;
    this[_index$0] = _index;
    _js_helper._StringAllMatchesIterable.__proto__.new.call(this);
    ;
  }).prototype = _js_helper._StringAllMatchesIterable.prototype;
  dart.addTypeTests(_js_helper._StringAllMatchesIterable);
  dart.addTypeCaches(_js_helper._StringAllMatchesIterable);
  dart.setGetterSignature(_js_helper._StringAllMatchesIterable, () => ({
    __proto__: dart.getGetters(_js_helper._StringAllMatchesIterable.__proto__),
    iterator: core.Iterator$(core.Match),
    [$iterator]: core.Iterator$(core.Match)
  }));
  dart.setLibraryUri(_js_helper._StringAllMatchesIterable, I[45]);
  dart.setFieldSignature(_js_helper._StringAllMatchesIterable, () => ({
    __proto__: dart.getFields(_js_helper._StringAllMatchesIterable.__proto__),
    [_input$]: dart.finalFieldType(core.String),
    [_pattern$]: dart.finalFieldType(core.String),
    [_index$0]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionAccessors(_js_helper._StringAllMatchesIterable, ['iterator', 'first']);
  _js_helper._StringAllMatchesIterator = class _StringAllMatchesIterator extends core.Object {
    moveNext() {
      if (dart.notNull(this[_index$0]) + this[_pattern$].length > this[_input$].length) {
        this[_current$0] = null;
        return false;
      }
      let index = _js_helper.stringIndexOfStringUnchecked(this[_input$], this[_pattern$], this[_index$0]);
      if (index < 0) {
        this[_index$0] = this[_input$].length + 1;
        this[_current$0] = null;
        return false;
      }
      let end = index + this[_pattern$].length;
      this[_current$0] = new _js_helper.StringMatch.new(index, this[_input$], this[_pattern$]);
      if (end === this[_index$0]) end = end + 1;
      this[_index$0] = end;
      return true;
    }
    get current() {
      return dart.nullCheck(this[_current$0]);
    }
  };
  (_js_helper._StringAllMatchesIterator.new = function(_input, _pattern, _index) {
    if (_input == null) dart.nullFailed(I[52], 84, 34, "_input");
    if (_pattern == null) dart.nullFailed(I[52], 84, 47, "_pattern");
    if (_index == null) dart.nullFailed(I[52], 84, 62, "_index");
    this[_current$0] = null;
    this[_input$] = _input;
    this[_pattern$] = _pattern;
    this[_index$0] = _index;
    ;
  }).prototype = _js_helper._StringAllMatchesIterator.prototype;
  dart.addTypeTests(_js_helper._StringAllMatchesIterator);
  dart.addTypeCaches(_js_helper._StringAllMatchesIterator);
  _js_helper._StringAllMatchesIterator[dart.implements] = () => [core.Iterator$(core.Match)];
  dart.setMethodSignature(_js_helper._StringAllMatchesIterator, () => ({
    __proto__: dart.getMethods(_js_helper._StringAllMatchesIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_js_helper._StringAllMatchesIterator, () => ({
    __proto__: dart.getGetters(_js_helper._StringAllMatchesIterator.__proto__),
    current: core.Match
  }));
  dart.setLibraryUri(_js_helper._StringAllMatchesIterator, I[45]);
  dart.setFieldSignature(_js_helper._StringAllMatchesIterator, () => ({
    __proto__: dart.getFields(_js_helper._StringAllMatchesIterator.__proto__),
    [_input$]: dart.finalFieldType(core.String),
    [_pattern$]: dart.finalFieldType(core.String),
    [_index$0]: dart.fieldType(core.int),
    [_current$0]: dart.fieldType(dart.nullable(core.Match))
  }));
  _js_helper.diagnoseIndexError = function diagnoseIndexError(indexable, index) {
    if (index == null) dart.nullFailed(I[46], 483, 41, "index");
    let length = core.int.as(dart.dload(indexable, 'length'));
    if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(length)) {
      return new core.IndexError.new(index, indexable, "index", null, length);
    }
    return new core.RangeError.value(index, "index");
  };
  _js_helper.diagnoseRangeError = function diagnoseRangeError(start, end, length) {
    if (length == null) dart.nullFailed(I[46], 499, 52, "length");
    if (start == null) {
      return new core.ArgumentError.value(start, "start");
    }
    if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
      return new core.RangeError.range(start, 0, length, "start");
    }
    if (end != null) {
      if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
        return new core.RangeError.range(end, start, length, "end");
      }
    }
    return new core.ArgumentError.value(end, "end");
  };
  _js_helper.stringLastIndexOfUnchecked = function stringLastIndexOfUnchecked(receiver, element, start) {
    return receiver.lastIndexOf(element, start);
  };
  _js_helper.argumentErrorValue = function argumentErrorValue(object) {
    return new core.ArgumentError.value(object);
  };
  _js_helper.throwArgumentErrorValue = function throwArgumentErrorValue(value) {
    dart.throw(_js_helper.argumentErrorValue(value));
  };
  _js_helper.checkInt = function checkInt(value) {
    if (!core.int.is(value)) dart.throw(_js_helper.argumentErrorValue(value));
    return value;
  };
  _js_helper.throwRuntimeError = function throwRuntimeError(message) {
    dart.throw(new _js_helper.RuntimeError.new(message));
  };
  _js_helper.throwAbstractClassInstantiationError = function throwAbstractClassInstantiationError(className) {
    dart.throw(new core.AbstractClassInstantiationError.new(core.String.as(className)));
  };
  _js_helper.throwConcurrentModificationError = function throwConcurrentModificationError(collection) {
    dart.throw(new core.ConcurrentModificationError.new(collection));
  };
  _js_helper.fillLiteralMap = function fillLiteralMap(keyValuePairs, result) {
    let t82, t82$;
    if (result == null) dart.nullFailed(I[46], 579, 35, "result");
    let index = 0;
    let length = _js_helper.getLength(keyValuePairs);
    while (index < dart.notNull(length)) {
      let key = _js_helper.getIndex(keyValuePairs, (t82 = index, index = t82 + 1, t82));
      let value = _js_helper.getIndex(keyValuePairs, (t82$ = index, index = t82$ + 1, t82$));
      result[$_set](key, value);
    }
    return result;
  };
  _js_helper.jsHasOwnProperty = function jsHasOwnProperty(jsObject, property) {
    if (property == null) dart.nullFailed(I[46], 592, 40, "property");
    return jsObject.hasOwnProperty(property);
  };
  _js_helper.jsPropertyAccess = function jsPropertyAccess(jsObject, property) {
    if (property == null) dart.nullFailed(I[46], 596, 35, "property");
    return jsObject[property];
  };
  _js_helper.getFallThroughError = function getFallThroughError() {
    return new _js_helper.FallThroughErrorImplementation.new();
  };
  _js_helper.random64 = function random64() {
    let int32a = Math.random() * 0x100000000 >>> 0;
    let int32b = Math.random() * 0x100000000 >>> 0;
    return int32a + int32b * 4294967296;
  };
  _js_helper.registerGlobalObject = function registerGlobalObject(object) {
    try {
      if (dart.test(dart.polyfill(object))) {
        dart.applyAllExtensions(object);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      if (core.Object.is(e)) {
      } else
        throw e$;
    }
  };
  _js_helper.applyExtension = function applyExtension$(name, nativeObject) {
    dart.applyExtension(name, nativeObject);
  };
  _js_helper.applyTestExtensions = function applyTestExtensions(names) {
    if (names == null) dart.nullFailed(I[46], 802, 39, "names");
    names[$forEach](C[28] || CT.C28);
  };
  _js_helper.assertInterop = function assertInterop$(value) {
    if (core.Function.is(value)) dart.assertInterop(value);
  };
  _js_helper.assertInteropArgs = function assertInteropArgs(args) {
    if (args == null) dart.nullFailed(I[46], 843, 38, "args");
    return args[$forEach](C[29] || CT.C29);
  };
  _js_helper.getRuntimeType = function getRuntimeType(object) {
    return dart.getReifiedType(object);
  };
  _js_helper.getIndex = function getIndex(array, index) {
    if (index == null) dart.nullFailed(I[53], 13, 21, "index");
    if (!dart.test(_js_helper.isJsArray(array))) dart.assertFailed(null, I[53], 14, 10, "isJsArray(array)");
    return array[index];
  };
  _js_helper.getLength = function getLength(array) {
    if (!dart.test(_js_helper.isJsArray(array))) dart.assertFailed(null, I[53], 20, 10, "isJsArray(array)");
    return array.length;
  };
  _js_helper.isJsArray = function isJsArray(value) {
    return _interceptors.JSArray.is(value);
  };
  _js_helper.putLinkedMapKey = function putLinkedMapKey(key, keyMap) {
    let hash = key[$hashCode] & 0x3ffffff;
    let buckets = keyMap.get(hash);
    if (buckets == null) {
      keyMap.set(hash, [key]);
      return key;
    }
    for (let i = 0, n = buckets.length; i < n; i = i + 1) {
      let k = buckets[i];
      if (k[$_equals](key)) return k;
    }
    buckets.push(key);
    return key;
  };
  _js_helper.convertDartClosureToJS = function convertDartClosureToJS(F, closure, arity) {
    if (arity == null) dart.nullFailed(I[54], 9, 44, "arity");
    return closure;
  };
  _js_helper.setNativeSubclassDispatchRecord = function setNativeSubclassDispatchRecord(proto, interceptor) {
  };
  _js_helper.findDispatchTagForInterceptorClass = function findDispatchTagForInterceptorClass(interceptorClassConstructor) {
  };
  _js_helper.makeLeafDispatchRecord = function makeLeafDispatchRecord(interceptor) {
  };
  _js_helper.regExpGetNative = function regExpGetNative(regexp) {
    if (regexp == null) dart.nullFailed(I[51], 8, 32, "regexp");
    return regexp[_nativeRegExp];
  };
  _js_helper.regExpGetGlobalNative = function regExpGetGlobalNative(regexp) {
    if (regexp == null) dart.nullFailed(I[51], 19, 38, "regexp");
    let nativeRegexp = regexp[_nativeGlobalVersion];
    nativeRegexp.lastIndex = 0;
    return nativeRegexp;
  };
  _js_helper.regExpCaptureCount = function regExpCaptureCount(regexp) {
    if (regexp == null) dart.nullFailed(I[51], 35, 39, "regexp");
    let nativeAnchoredRegExp = regexp[_nativeAnchoredVersion];
    let match = nativeAnchoredRegExp.exec('');
    return match[$length] - 2;
  };
  _js_helper.firstMatchAfter = function firstMatchAfter(regExp, string, start) {
    if (regExp == null) dart.nullFailed(I[51], 293, 45, "regExp");
    if (string == null) dart.nullFailed(I[51], 293, 60, "string");
    if (start == null) dart.nullFailed(I[51], 293, 72, "start");
    return regExp[_execGlobal](string, start);
  };
  _js_helper.stringIndexOfStringUnchecked = function stringIndexOfStringUnchecked(receiver, other, startIndex) {
    return receiver.indexOf(other, startIndex);
  };
  _js_helper.substring1Unchecked = function substring1Unchecked(receiver, startIndex) {
    return receiver.substring(startIndex);
  };
  _js_helper.substring2Unchecked = function substring2Unchecked(receiver, startIndex, endIndex) {
    return receiver.substring(startIndex, endIndex);
  };
  _js_helper.stringContainsStringUnchecked = function stringContainsStringUnchecked(receiver, other, startIndex) {
    return _js_helper.stringIndexOfStringUnchecked(receiver, other, startIndex) >= 0;
  };
  _js_helper.allMatchesInStringUnchecked = function allMatchesInStringUnchecked(pattern, string, startIndex) {
    if (pattern == null) dart.nullFailed(I[52], 55, 12, "pattern");
    if (string == null) dart.nullFailed(I[52], 55, 28, "string");
    if (startIndex == null) dart.nullFailed(I[52], 55, 40, "startIndex");
    return new _js_helper._StringAllMatchesIterable.new(string, pattern, startIndex);
  };
  _js_helper.stringContainsUnchecked = function stringContainsUnchecked(receiver, other, startIndex) {
    if (startIndex == null) dart.nullFailed(I[52], 110, 51, "startIndex");
    if (typeof other == 'string') {
      return _js_helper.stringContainsStringUnchecked(receiver, other, startIndex);
    } else if (_js_helper.JSSyntaxRegExp.is(other)) {
      return other.hasMatch(receiver[$substring](startIndex));
    } else {
      let substr = receiver[$substring](startIndex);
      return core.bool.as(dart.dload(dart.dsend(other, 'allMatches', [substr]), 'isNotEmpty'));
    }
  };
  _js_helper.stringReplaceJS = function stringReplaceJS(receiver, replacer, replacement) {
    if (receiver == null) dart.nullFailed(I[52], 122, 31, "receiver");
    if (replacement == null) dart.nullFailed(I[52], 122, 58, "replacement");
    replacement = replacement.replace(/\$/g, "$$$$");
    return receiver.replace(replacer, replacement);
  };
  _js_helper.stringReplaceFirstRE = function stringReplaceFirstRE(receiver, regexp, replacement, startIndex) {
    if (regexp == null) dart.nullFailed(I[52], 131, 70, "regexp");
    if (replacement == null) dart.nullFailed(I[52], 132, 12, "replacement");
    if (startIndex == null) dart.nullFailed(I[52], 132, 29, "startIndex");
    let match = regexp[_execGlobal](receiver, startIndex);
    if (match == null) return receiver;
    let start = match.start;
    let end = match.end;
    return _js_helper.stringReplaceRangeUnchecked(receiver, start, end, replacement);
  };
  _js_helper.quoteStringForRegExp = function quoteStringForRegExp(string) {
    return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
  };
  _js_helper.stringReplaceAllUnchecked = function stringReplaceAllUnchecked(receiver, pattern, replacement) {
    if (pattern == null) dart.argumentError(pattern);
    if (replacement == null) dart.argumentError(replacement);
    if (typeof pattern == 'string') {
      if (pattern === "") {
        if (receiver === "") {
          return replacement;
        } else {
          let result = new core.StringBuffer.new();
          let length = receiver.length;
          result.write(replacement);
          for (let i = 0; i < length; i = i + 1) {
            result.write(receiver[$_get](i));
            result.write(replacement);
          }
          return result.toString();
        }
      } else {
        return receiver.split(pattern).join(replacement);
      }
    } else if (_js_helper.JSSyntaxRegExp.is(pattern)) {
      let re = _js_helper.regExpGetGlobalNative(pattern);
      return _js_helper.stringReplaceJS(receiver, re, replacement);
    } else {
      dart.throw("String.replaceAll(Pattern) UNIMPLEMENTED");
    }
  };
  _js_helper._matchString = function _matchString(match) {
    if (match == null) dart.nullFailed(I[52], 177, 27, "match");
    return dart.nullCheck(match._get(0));
  };
  _js_helper._stringIdentity = function _stringIdentity(string) {
    if (string == null) dart.nullFailed(I[52], 178, 31, "string");
    return string;
  };
  _js_helper.stringReplaceAllFuncUnchecked = function stringReplaceAllFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
    if (receiver == null) dart.nullFailed(I[52], 182, 12, "receiver");
    if (pattern == null) dart.argumentError(pattern);
    if (onMatch == null) onMatch = C[30] || CT.C30;
    if (onNonMatch == null) onNonMatch = C[31] || CT.C31;
    if (typeof pattern == 'string') {
      return _js_helper.stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
    }
    let buffer = new core.StringBuffer.new();
    let startIndex = 0;
    for (let match of pattern[$allMatches](receiver)) {
      buffer.write(onNonMatch(receiver[$substring](startIndex, match.start)));
      buffer.write(onMatch(match));
      startIndex = match.end;
    }
    buffer.write(onNonMatch(receiver[$substring](startIndex)));
    return buffer.toString();
  };
  _js_helper.stringReplaceAllEmptyFuncUnchecked = function stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch) {
    if (receiver == null) dart.nullFailed(I[52], 204, 50, "receiver");
    if (onMatch == null) dart.nullFailed(I[52], 205, 12, "onMatch");
    if (onNonMatch == null) dart.nullFailed(I[52], 205, 41, "onNonMatch");
    let buffer = new core.StringBuffer.new();
    let length = receiver.length;
    let i = 0;
    buffer.write(onNonMatch(""));
    while (i < length) {
      buffer.write(onMatch(new _js_helper.StringMatch.new(i, receiver, "")));
      let code = receiver[$codeUnitAt](i);
      if ((code & ~1023 >>> 0) === 55296 && length > i + 1) {
        code = receiver[$codeUnitAt](i + 1);
        if ((code & ~1023 >>> 0) === 56320) {
          buffer.write(onNonMatch(receiver[$substring](i, i + 2)));
          i = i + 2;
          continue;
        }
      }
      buffer.write(onNonMatch(receiver[$_get](i)));
      i = i + 1;
    }
    buffer.write(onMatch(new _js_helper.StringMatch.new(i, receiver, "")));
    buffer.write(onNonMatch(""));
    return buffer.toString();
  };
  _js_helper.stringReplaceAllStringFuncUnchecked = function stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
    if (receiver == null) dart.nullFailed(I[52], 234, 51, "receiver");
    if (pattern == null) dart.nullFailed(I[52], 234, 68, "pattern");
    if (onMatch == null) dart.nullFailed(I[52], 235, 12, "onMatch");
    if (onNonMatch == null) dart.nullFailed(I[52], 235, 41, "onNonMatch");
    let patternLength = pattern.length;
    if (patternLength === 0) {
      return _js_helper.stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
    }
    let length = receiver.length;
    let buffer = new core.StringBuffer.new();
    let startIndex = 0;
    while (startIndex < length) {
      let position = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
      if (position === -1) {
        break;
      }
      buffer.write(onNonMatch(receiver[$substring](startIndex, position)));
      buffer.write(onMatch(new _js_helper.StringMatch.new(position, receiver, pattern)));
      startIndex = position + patternLength;
    }
    buffer.write(onNonMatch(receiver[$substring](startIndex)));
    return buffer.toString();
  };
  _js_helper.stringReplaceFirstUnchecked = function stringReplaceFirstUnchecked(receiver, pattern, replacement, startIndex) {
    if (pattern == null) dart.argumentError(pattern);
    if (replacement == null) dart.nullFailed(I[52], 258, 40, "replacement");
    if (startIndex == null) dart.nullFailed(I[52], 258, 57, "startIndex");
    if (typeof pattern == 'string') {
      let index = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
      if (index < 0) return receiver;
      let end = index + pattern.length;
      return _js_helper.stringReplaceRangeUnchecked(receiver, index, end, replacement);
    }
    if (_js_helper.JSSyntaxRegExp.is(pattern)) {
      return startIndex === 0 ? _js_helper.stringReplaceJS(receiver, _js_helper.regExpGetNative(pattern), replacement) : _js_helper.stringReplaceFirstRE(receiver, pattern, replacement, startIndex);
    }
    let matches = pattern[$allMatches](receiver, startIndex)[$iterator];
    if (!dart.test(matches.moveNext())) return receiver;
    let match = matches.current;
    return receiver[$replaceRange](match.start, match.end, replacement);
  };
  _js_helper.stringReplaceFirstMappedUnchecked = function stringReplaceFirstMappedUnchecked(receiver, pattern, replace, startIndex) {
    if (receiver == null) dart.nullFailed(I[52], 277, 49, "receiver");
    if (pattern == null) dart.nullFailed(I[52], 277, 67, "pattern");
    if (replace == null) dart.nullFailed(I[52], 278, 12, "replace");
    if (startIndex == null) dart.nullFailed(I[52], 278, 40, "startIndex");
    let matches = pattern[$allMatches](receiver, startIndex)[$iterator];
    if (!dart.test(matches.moveNext())) return receiver;
    let match = matches.current;
    let replacement = dart.str(replace(match));
    return receiver[$replaceRange](match.start, match.end, replacement);
  };
  _js_helper.stringJoinUnchecked = function stringJoinUnchecked(array, separator) {
    return array.join(separator);
  };
  _js_helper.stringReplaceRangeUnchecked = function stringReplaceRangeUnchecked(receiver, start, end, replacement) {
    if (receiver == null) dart.nullFailed(I[52], 293, 12, "receiver");
    if (start == null) dart.nullFailed(I[52], 293, 26, "start");
    if (end == null) dart.nullFailed(I[52], 293, 37, "end");
    if (replacement == null) dart.nullFailed(I[52], 293, 49, "replacement");
    let prefix = receiver.substring(0, start);
    let suffix = receiver.substring(end);
    return prefix + dart.str(replacement) + suffix;
  };
  dart.defineLazy(_js_helper, {
    /*_js_helper.patch*/get patch() {
      return C[32] || CT.C32;
    },
    /*_js_helper.notNull*/get notNull() {
      return C[33] || CT.C33;
    },
    /*_js_helper.undefined*/get undefined() {
      return C[34] || CT.C34;
    },
    /*_js_helper.nullCheck*/get nullCheck() {
      return C[35] || CT.C35;
    }
  }, false);
  _js_primitives.printString = function printString(string) {
    if (string == null) dart.nullFailed(I[55], 20, 25, "string");
    if (typeof dartPrint == "function") {
      dartPrint(string);
      return;
    }
    if (typeof console == "object" && typeof console.log != "undefined") {
      console.log(string);
      return;
    }
    if (typeof window == "object") {
      return;
    }
    if (typeof print == "function") {
      print(string);
      return;
    }
    throw "Unable to print message: " + String(string);
  };
  var browserName$ = dart.privateName(_metadata, "SupportedBrowser.browserName");
  var minimumVersion$ = dart.privateName(_metadata, "SupportedBrowser.minimumVersion");
  _metadata.SupportedBrowser = class SupportedBrowser extends core.Object {
    get browserName() {
      return this[browserName$];
    }
    set browserName(value) {
      super.browserName = value;
    }
    get minimumVersion() {
      return this[minimumVersion$];
    }
    set minimumVersion(value) {
      super.minimumVersion = value;
    }
  };
  (_metadata.SupportedBrowser.new = function(browserName, minimumVersion = null) {
    if (browserName == null) dart.nullFailed(I[56], 28, 31, "browserName");
    this[browserName$] = browserName;
    this[minimumVersion$] = minimumVersion;
    ;
  }).prototype = _metadata.SupportedBrowser.prototype;
  dart.addTypeTests(_metadata.SupportedBrowser);
  dart.addTypeCaches(_metadata.SupportedBrowser);
  dart.setLibraryUri(_metadata.SupportedBrowser, I[57]);
  dart.setFieldSignature(_metadata.SupportedBrowser, () => ({
    __proto__: dart.getFields(_metadata.SupportedBrowser.__proto__),
    browserName: dart.finalFieldType(core.String),
    minimumVersion: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineLazy(_metadata.SupportedBrowser, {
    /*_metadata.SupportedBrowser.CHROME*/get CHROME() {
      return "Chrome";
    },
    /*_metadata.SupportedBrowser.FIREFOX*/get FIREFOX() {
      return "Firefox";
    },
    /*_metadata.SupportedBrowser.IE*/get IE() {
      return "Internet Explorer";
    },
    /*_metadata.SupportedBrowser.OPERA*/get OPERA() {
      return "Opera";
    },
    /*_metadata.SupportedBrowser.SAFARI*/get SAFARI() {
      return "Safari";
    }
  }, false);
  _metadata.Experimental = class Experimental extends core.Object {};
  (_metadata.Experimental.new = function() {
    ;
  }).prototype = _metadata.Experimental.prototype;
  dart.addTypeTests(_metadata.Experimental);
  dart.addTypeCaches(_metadata.Experimental);
  dart.setLibraryUri(_metadata.Experimental, I[57]);
  var name$9 = dart.privateName(_metadata, "DomName.name");
  _metadata.DomName = class DomName extends core.Object {
    get name() {
      return this[name$9];
    }
    set name(value) {
      super.name = value;
    }
  };
  (_metadata.DomName.new = function(name) {
    if (name == null) dart.nullFailed(I[56], 54, 22, "name");
    this[name$9] = name;
    ;
  }).prototype = _metadata.DomName.prototype;
  dart.addTypeTests(_metadata.DomName);
  dart.addTypeCaches(_metadata.DomName);
  dart.setLibraryUri(_metadata.DomName, I[57]);
  dart.setFieldSignature(_metadata.DomName, () => ({
    __proto__: dart.getFields(_metadata.DomName.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  _metadata.DocsEditable = class DocsEditable extends core.Object {};
  (_metadata.DocsEditable.new = function() {
    ;
  }).prototype = _metadata.DocsEditable.prototype;
  dart.addTypeTests(_metadata.DocsEditable);
  dart.addTypeCaches(_metadata.DocsEditable);
  dart.setLibraryUri(_metadata.DocsEditable, I[57]);
  _metadata.Unstable = class Unstable extends core.Object {};
  (_metadata.Unstable.new = function() {
    ;
  }).prototype = _metadata.Unstable.prototype;
  dart.addTypeTests(_metadata.Unstable);
  dart.addTypeCaches(_metadata.Unstable);
  dart.setLibraryUri(_metadata.Unstable, I[57]);
  _native_typed_data.NativeByteBuffer = class NativeByteBuffer extends core.Object {
    get [$lengthInBytes]() {
      return this.byteLength;
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.ByteBuffer);
    }
    [$asUint8List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 33, 30, "offsetInBytes");
      return _native_typed_data.NativeUint8List.view(this, offsetInBytes, length);
    }
    [$asInt8List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 37, 28, "offsetInBytes");
      return _native_typed_data.NativeInt8List.view(this, offsetInBytes, length);
    }
    [$asUint8ClampedList](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 41, 44, "offsetInBytes");
      return _native_typed_data.NativeUint8ClampedList.view(this, offsetInBytes, length);
    }
    [$asUint16List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 45, 32, "offsetInBytes");
      return _native_typed_data.NativeUint16List.view(this, offsetInBytes, length);
    }
    [$asInt16List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 49, 30, "offsetInBytes");
      return _native_typed_data.NativeInt16List.view(this, offsetInBytes, length);
    }
    [$asUint32List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 53, 32, "offsetInBytes");
      return _native_typed_data.NativeUint32List.view(this, offsetInBytes, length);
    }
    [$asInt32List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 57, 30, "offsetInBytes");
      return _native_typed_data.NativeInt32List.view(this, offsetInBytes, length);
    }
    [$asUint64List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 61, 32, "offsetInBytes");
      dart.throw(new core.UnsupportedError.new("Uint64List not supported by dart2js."));
    }
    [$asInt64List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 65, 30, "offsetInBytes");
      dart.throw(new core.UnsupportedError.new("Int64List not supported by dart2js."));
    }
    [$asInt32x4List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 69, 34, "offsetInBytes");
      length == null ? length = ((dart.notNull(this[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 16)[$truncate]() : null;
      let storage = this[$asInt32List](offsetInBytes, dart.notNull(length) * 4);
      return new _native_typed_data.NativeInt32x4List._externalStorage(storage);
    }
    [$asFloat32List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 75, 34, "offsetInBytes");
      return _native_typed_data.NativeFloat32List.view(this, offsetInBytes, length);
    }
    [$asFloat64List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 79, 34, "offsetInBytes");
      return _native_typed_data.NativeFloat64List.view(this, offsetInBytes, length);
    }
    [$asFloat32x4List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 83, 38, "offsetInBytes");
      length == null ? length = ((dart.notNull(this[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 16)[$truncate]() : null;
      let storage = this[$asFloat32List](offsetInBytes, dart.notNull(length) * 4);
      return new _native_typed_data.NativeFloat32x4List._externalStorage(storage);
    }
    [$asFloat64x2List](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 89, 38, "offsetInBytes");
      length == null ? length = ((dart.notNull(this[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 16)[$truncate]() : null;
      let storage = this[$asFloat64List](offsetInBytes, dart.notNull(length) * 2);
      return new _native_typed_data.NativeFloat64x2List._externalStorage(storage);
    }
    [$asByteData](offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[58], 95, 28, "offsetInBytes");
      return _native_typed_data.NativeByteData.view(this, offsetInBytes, length);
    }
  };
  (_native_typed_data.NativeByteBuffer.new = function() {
    ;
  }).prototype = _native_typed_data.NativeByteBuffer.prototype;
  dart.addTypeTests(_native_typed_data.NativeByteBuffer);
  dart.addTypeCaches(_native_typed_data.NativeByteBuffer);
  _native_typed_data.NativeByteBuffer[dart.implements] = () => [typed_data.ByteBuffer];
  dart.setMethodSignature(_native_typed_data.NativeByteBuffer, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeByteBuffer.__proto__),
    [$asUint8List]: dart.fnType(typed_data.Uint8List, [], [core.int, dart.nullable(core.int)]),
    [$asInt8List]: dart.fnType(typed_data.Int8List, [], [core.int, dart.nullable(core.int)]),
    [$asUint8ClampedList]: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, dart.nullable(core.int)]),
    [$asUint16List]: dart.fnType(typed_data.Uint16List, [], [core.int, dart.nullable(core.int)]),
    [$asInt16List]: dart.fnType(typed_data.Int16List, [], [core.int, dart.nullable(core.int)]),
    [$asUint32List]: dart.fnType(typed_data.Uint32List, [], [core.int, dart.nullable(core.int)]),
    [$asInt32List]: dart.fnType(typed_data.Int32List, [], [core.int, dart.nullable(core.int)]),
    [$asUint64List]: dart.fnType(typed_data.Uint64List, [], [core.int, dart.nullable(core.int)]),
    [$asInt64List]: dart.fnType(typed_data.Int64List, [], [core.int, dart.nullable(core.int)]),
    [$asInt32x4List]: dart.fnType(typed_data.Int32x4List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat32List]: dart.fnType(typed_data.Float32List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat64List]: dart.fnType(typed_data.Float64List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat32x4List]: dart.fnType(typed_data.Float32x4List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat64x2List]: dart.fnType(typed_data.Float64x2List, [], [core.int, dart.nullable(core.int)]),
    [$asByteData]: dart.fnType(typed_data.ByteData, [], [core.int, dart.nullable(core.int)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeByteBuffer, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeByteBuffer.__proto__),
    [$lengthInBytes]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeByteBuffer, I[59]);
  dart.registerExtension("ArrayBuffer", _native_typed_data.NativeByteBuffer);
  var _storage$ = dart.privateName(_native_typed_data, "_storage");
  typed_data.Float32x4 = class Float32x4 extends core.Object {};
  (typed_data.Float32x4[dart.mixinNew] = function() {
  }).prototype = typed_data.Float32x4.prototype;
  dart.addTypeTests(typed_data.Float32x4);
  dart.addTypeCaches(typed_data.Float32x4);
  dart.setLibraryUri(typed_data.Float32x4, I[60]);
  dart.defineLazy(typed_data.Float32x4, {
    /*typed_data.Float32x4.xxxx*/get xxxx() {
      return 0;
    },
    /*typed_data.Float32x4.xxxy*/get xxxy() {
      return 64;
    },
    /*typed_data.Float32x4.xxxz*/get xxxz() {
      return 128;
    },
    /*typed_data.Float32x4.xxxw*/get xxxw() {
      return 192;
    },
    /*typed_data.Float32x4.xxyx*/get xxyx() {
      return 16;
    },
    /*typed_data.Float32x4.xxyy*/get xxyy() {
      return 80;
    },
    /*typed_data.Float32x4.xxyz*/get xxyz() {
      return 144;
    },
    /*typed_data.Float32x4.xxyw*/get xxyw() {
      return 208;
    },
    /*typed_data.Float32x4.xxzx*/get xxzx() {
      return 32;
    },
    /*typed_data.Float32x4.xxzy*/get xxzy() {
      return 96;
    },
    /*typed_data.Float32x4.xxzz*/get xxzz() {
      return 160;
    },
    /*typed_data.Float32x4.xxzw*/get xxzw() {
      return 224;
    },
    /*typed_data.Float32x4.xxwx*/get xxwx() {
      return 48;
    },
    /*typed_data.Float32x4.xxwy*/get xxwy() {
      return 112;
    },
    /*typed_data.Float32x4.xxwz*/get xxwz() {
      return 176;
    },
    /*typed_data.Float32x4.xxww*/get xxww() {
      return 240;
    },
    /*typed_data.Float32x4.xyxx*/get xyxx() {
      return 4;
    },
    /*typed_data.Float32x4.xyxy*/get xyxy() {
      return 68;
    },
    /*typed_data.Float32x4.xyxz*/get xyxz() {
      return 132;
    },
    /*typed_data.Float32x4.xyxw*/get xyxw() {
      return 196;
    },
    /*typed_data.Float32x4.xyyx*/get xyyx() {
      return 20;
    },
    /*typed_data.Float32x4.xyyy*/get xyyy() {
      return 84;
    },
    /*typed_data.Float32x4.xyyz*/get xyyz() {
      return 148;
    },
    /*typed_data.Float32x4.xyyw*/get xyyw() {
      return 212;
    },
    /*typed_data.Float32x4.xyzx*/get xyzx() {
      return 36;
    },
    /*typed_data.Float32x4.xyzy*/get xyzy() {
      return 100;
    },
    /*typed_data.Float32x4.xyzz*/get xyzz() {
      return 164;
    },
    /*typed_data.Float32x4.xyzw*/get xyzw() {
      return 228;
    },
    /*typed_data.Float32x4.xywx*/get xywx() {
      return 52;
    },
    /*typed_data.Float32x4.xywy*/get xywy() {
      return 116;
    },
    /*typed_data.Float32x4.xywz*/get xywz() {
      return 180;
    },
    /*typed_data.Float32x4.xyww*/get xyww() {
      return 244;
    },
    /*typed_data.Float32x4.xzxx*/get xzxx() {
      return 8;
    },
    /*typed_data.Float32x4.xzxy*/get xzxy() {
      return 72;
    },
    /*typed_data.Float32x4.xzxz*/get xzxz() {
      return 136;
    },
    /*typed_data.Float32x4.xzxw*/get xzxw() {
      return 200;
    },
    /*typed_data.Float32x4.xzyx*/get xzyx() {
      return 24;
    },
    /*typed_data.Float32x4.xzyy*/get xzyy() {
      return 88;
    },
    /*typed_data.Float32x4.xzyz*/get xzyz() {
      return 152;
    },
    /*typed_data.Float32x4.xzyw*/get xzyw() {
      return 216;
    },
    /*typed_data.Float32x4.xzzx*/get xzzx() {
      return 40;
    },
    /*typed_data.Float32x4.xzzy*/get xzzy() {
      return 104;
    },
    /*typed_data.Float32x4.xzzz*/get xzzz() {
      return 168;
    },
    /*typed_data.Float32x4.xzzw*/get xzzw() {
      return 232;
    },
    /*typed_data.Float32x4.xzwx*/get xzwx() {
      return 56;
    },
    /*typed_data.Float32x4.xzwy*/get xzwy() {
      return 120;
    },
    /*typed_data.Float32x4.xzwz*/get xzwz() {
      return 184;
    },
    /*typed_data.Float32x4.xzww*/get xzww() {
      return 248;
    },
    /*typed_data.Float32x4.xwxx*/get xwxx() {
      return 12;
    },
    /*typed_data.Float32x4.xwxy*/get xwxy() {
      return 76;
    },
    /*typed_data.Float32x4.xwxz*/get xwxz() {
      return 140;
    },
    /*typed_data.Float32x4.xwxw*/get xwxw() {
      return 204;
    },
    /*typed_data.Float32x4.xwyx*/get xwyx() {
      return 28;
    },
    /*typed_data.Float32x4.xwyy*/get xwyy() {
      return 92;
    },
    /*typed_data.Float32x4.xwyz*/get xwyz() {
      return 156;
    },
    /*typed_data.Float32x4.xwyw*/get xwyw() {
      return 220;
    },
    /*typed_data.Float32x4.xwzx*/get xwzx() {
      return 44;
    },
    /*typed_data.Float32x4.xwzy*/get xwzy() {
      return 108;
    },
    /*typed_data.Float32x4.xwzz*/get xwzz() {
      return 172;
    },
    /*typed_data.Float32x4.xwzw*/get xwzw() {
      return 236;
    },
    /*typed_data.Float32x4.xwwx*/get xwwx() {
      return 60;
    },
    /*typed_data.Float32x4.xwwy*/get xwwy() {
      return 124;
    },
    /*typed_data.Float32x4.xwwz*/get xwwz() {
      return 188;
    },
    /*typed_data.Float32x4.xwww*/get xwww() {
      return 252;
    },
    /*typed_data.Float32x4.yxxx*/get yxxx() {
      return 1;
    },
    /*typed_data.Float32x4.yxxy*/get yxxy() {
      return 65;
    },
    /*typed_data.Float32x4.yxxz*/get yxxz() {
      return 129;
    },
    /*typed_data.Float32x4.yxxw*/get yxxw() {
      return 193;
    },
    /*typed_data.Float32x4.yxyx*/get yxyx() {
      return 17;
    },
    /*typed_data.Float32x4.yxyy*/get yxyy() {
      return 81;
    },
    /*typed_data.Float32x4.yxyz*/get yxyz() {
      return 145;
    },
    /*typed_data.Float32x4.yxyw*/get yxyw() {
      return 209;
    },
    /*typed_data.Float32x4.yxzx*/get yxzx() {
      return 33;
    },
    /*typed_data.Float32x4.yxzy*/get yxzy() {
      return 97;
    },
    /*typed_data.Float32x4.yxzz*/get yxzz() {
      return 161;
    },
    /*typed_data.Float32x4.yxzw*/get yxzw() {
      return 225;
    },
    /*typed_data.Float32x4.yxwx*/get yxwx() {
      return 49;
    },
    /*typed_data.Float32x4.yxwy*/get yxwy() {
      return 113;
    },
    /*typed_data.Float32x4.yxwz*/get yxwz() {
      return 177;
    },
    /*typed_data.Float32x4.yxww*/get yxww() {
      return 241;
    },
    /*typed_data.Float32x4.yyxx*/get yyxx() {
      return 5;
    },
    /*typed_data.Float32x4.yyxy*/get yyxy() {
      return 69;
    },
    /*typed_data.Float32x4.yyxz*/get yyxz() {
      return 133;
    },
    /*typed_data.Float32x4.yyxw*/get yyxw() {
      return 197;
    },
    /*typed_data.Float32x4.yyyx*/get yyyx() {
      return 21;
    },
    /*typed_data.Float32x4.yyyy*/get yyyy() {
      return 85;
    },
    /*typed_data.Float32x4.yyyz*/get yyyz() {
      return 149;
    },
    /*typed_data.Float32x4.yyyw*/get yyyw() {
      return 213;
    },
    /*typed_data.Float32x4.yyzx*/get yyzx() {
      return 37;
    },
    /*typed_data.Float32x4.yyzy*/get yyzy() {
      return 101;
    },
    /*typed_data.Float32x4.yyzz*/get yyzz() {
      return 165;
    },
    /*typed_data.Float32x4.yyzw*/get yyzw() {
      return 229;
    },
    /*typed_data.Float32x4.yywx*/get yywx() {
      return 53;
    },
    /*typed_data.Float32x4.yywy*/get yywy() {
      return 117;
    },
    /*typed_data.Float32x4.yywz*/get yywz() {
      return 181;
    },
    /*typed_data.Float32x4.yyww*/get yyww() {
      return 245;
    },
    /*typed_data.Float32x4.yzxx*/get yzxx() {
      return 9;
    },
    /*typed_data.Float32x4.yzxy*/get yzxy() {
      return 73;
    },
    /*typed_data.Float32x4.yzxz*/get yzxz() {
      return 137;
    },
    /*typed_data.Float32x4.yzxw*/get yzxw() {
      return 201;
    },
    /*typed_data.Float32x4.yzyx*/get yzyx() {
      return 25;
    },
    /*typed_data.Float32x4.yzyy*/get yzyy() {
      return 89;
    },
    /*typed_data.Float32x4.yzyz*/get yzyz() {
      return 153;
    },
    /*typed_data.Float32x4.yzyw*/get yzyw() {
      return 217;
    },
    /*typed_data.Float32x4.yzzx*/get yzzx() {
      return 41;
    },
    /*typed_data.Float32x4.yzzy*/get yzzy() {
      return 105;
    },
    /*typed_data.Float32x4.yzzz*/get yzzz() {
      return 169;
    },
    /*typed_data.Float32x4.yzzw*/get yzzw() {
      return 233;
    },
    /*typed_data.Float32x4.yzwx*/get yzwx() {
      return 57;
    },
    /*typed_data.Float32x4.yzwy*/get yzwy() {
      return 121;
    },
    /*typed_data.Float32x4.yzwz*/get yzwz() {
      return 185;
    },
    /*typed_data.Float32x4.yzww*/get yzww() {
      return 249;
    },
    /*typed_data.Float32x4.ywxx*/get ywxx() {
      return 13;
    },
    /*typed_data.Float32x4.ywxy*/get ywxy() {
      return 77;
    },
    /*typed_data.Float32x4.ywxz*/get ywxz() {
      return 141;
    },
    /*typed_data.Float32x4.ywxw*/get ywxw() {
      return 205;
    },
    /*typed_data.Float32x4.ywyx*/get ywyx() {
      return 29;
    },
    /*typed_data.Float32x4.ywyy*/get ywyy() {
      return 93;
    },
    /*typed_data.Float32x4.ywyz*/get ywyz() {
      return 157;
    },
    /*typed_data.Float32x4.ywyw*/get ywyw() {
      return 221;
    },
    /*typed_data.Float32x4.ywzx*/get ywzx() {
      return 45;
    },
    /*typed_data.Float32x4.ywzy*/get ywzy() {
      return 109;
    },
    /*typed_data.Float32x4.ywzz*/get ywzz() {
      return 173;
    },
    /*typed_data.Float32x4.ywzw*/get ywzw() {
      return 237;
    },
    /*typed_data.Float32x4.ywwx*/get ywwx() {
      return 61;
    },
    /*typed_data.Float32x4.ywwy*/get ywwy() {
      return 125;
    },
    /*typed_data.Float32x4.ywwz*/get ywwz() {
      return 189;
    },
    /*typed_data.Float32x4.ywww*/get ywww() {
      return 253;
    },
    /*typed_data.Float32x4.zxxx*/get zxxx() {
      return 2;
    },
    /*typed_data.Float32x4.zxxy*/get zxxy() {
      return 66;
    },
    /*typed_data.Float32x4.zxxz*/get zxxz() {
      return 130;
    },
    /*typed_data.Float32x4.zxxw*/get zxxw() {
      return 194;
    },
    /*typed_data.Float32x4.zxyx*/get zxyx() {
      return 18;
    },
    /*typed_data.Float32x4.zxyy*/get zxyy() {
      return 82;
    },
    /*typed_data.Float32x4.zxyz*/get zxyz() {
      return 146;
    },
    /*typed_data.Float32x4.zxyw*/get zxyw() {
      return 210;
    },
    /*typed_data.Float32x4.zxzx*/get zxzx() {
      return 34;
    },
    /*typed_data.Float32x4.zxzy*/get zxzy() {
      return 98;
    },
    /*typed_data.Float32x4.zxzz*/get zxzz() {
      return 162;
    },
    /*typed_data.Float32x4.zxzw*/get zxzw() {
      return 226;
    },
    /*typed_data.Float32x4.zxwx*/get zxwx() {
      return 50;
    },
    /*typed_data.Float32x4.zxwy*/get zxwy() {
      return 114;
    },
    /*typed_data.Float32x4.zxwz*/get zxwz() {
      return 178;
    },
    /*typed_data.Float32x4.zxww*/get zxww() {
      return 242;
    },
    /*typed_data.Float32x4.zyxx*/get zyxx() {
      return 6;
    },
    /*typed_data.Float32x4.zyxy*/get zyxy() {
      return 70;
    },
    /*typed_data.Float32x4.zyxz*/get zyxz() {
      return 134;
    },
    /*typed_data.Float32x4.zyxw*/get zyxw() {
      return 198;
    },
    /*typed_data.Float32x4.zyyx*/get zyyx() {
      return 22;
    },
    /*typed_data.Float32x4.zyyy*/get zyyy() {
      return 86;
    },
    /*typed_data.Float32x4.zyyz*/get zyyz() {
      return 150;
    },
    /*typed_data.Float32x4.zyyw*/get zyyw() {
      return 214;
    },
    /*typed_data.Float32x4.zyzx*/get zyzx() {
      return 38;
    },
    /*typed_data.Float32x4.zyzy*/get zyzy() {
      return 102;
    },
    /*typed_data.Float32x4.zyzz*/get zyzz() {
      return 166;
    },
    /*typed_data.Float32x4.zyzw*/get zyzw() {
      return 230;
    },
    /*typed_data.Float32x4.zywx*/get zywx() {
      return 54;
    },
    /*typed_data.Float32x4.zywy*/get zywy() {
      return 118;
    },
    /*typed_data.Float32x4.zywz*/get zywz() {
      return 182;
    },
    /*typed_data.Float32x4.zyww*/get zyww() {
      return 246;
    },
    /*typed_data.Float32x4.zzxx*/get zzxx() {
      return 10;
    },
    /*typed_data.Float32x4.zzxy*/get zzxy() {
      return 74;
    },
    /*typed_data.Float32x4.zzxz*/get zzxz() {
      return 138;
    },
    /*typed_data.Float32x4.zzxw*/get zzxw() {
      return 202;
    },
    /*typed_data.Float32x4.zzyx*/get zzyx() {
      return 26;
    },
    /*typed_data.Float32x4.zzyy*/get zzyy() {
      return 90;
    },
    /*typed_data.Float32x4.zzyz*/get zzyz() {
      return 154;
    },
    /*typed_data.Float32x4.zzyw*/get zzyw() {
      return 218;
    },
    /*typed_data.Float32x4.zzzx*/get zzzx() {
      return 42;
    },
    /*typed_data.Float32x4.zzzy*/get zzzy() {
      return 106;
    },
    /*typed_data.Float32x4.zzzz*/get zzzz() {
      return 170;
    },
    /*typed_data.Float32x4.zzzw*/get zzzw() {
      return 234;
    },
    /*typed_data.Float32x4.zzwx*/get zzwx() {
      return 58;
    },
    /*typed_data.Float32x4.zzwy*/get zzwy() {
      return 122;
    },
    /*typed_data.Float32x4.zzwz*/get zzwz() {
      return 186;
    },
    /*typed_data.Float32x4.zzww*/get zzww() {
      return 250;
    },
    /*typed_data.Float32x4.zwxx*/get zwxx() {
      return 14;
    },
    /*typed_data.Float32x4.zwxy*/get zwxy() {
      return 78;
    },
    /*typed_data.Float32x4.zwxz*/get zwxz() {
      return 142;
    },
    /*typed_data.Float32x4.zwxw*/get zwxw() {
      return 206;
    },
    /*typed_data.Float32x4.zwyx*/get zwyx() {
      return 30;
    },
    /*typed_data.Float32x4.zwyy*/get zwyy() {
      return 94;
    },
    /*typed_data.Float32x4.zwyz*/get zwyz() {
      return 158;
    },
    /*typed_data.Float32x4.zwyw*/get zwyw() {
      return 222;
    },
    /*typed_data.Float32x4.zwzx*/get zwzx() {
      return 46;
    },
    /*typed_data.Float32x4.zwzy*/get zwzy() {
      return 110;
    },
    /*typed_data.Float32x4.zwzz*/get zwzz() {
      return 174;
    },
    /*typed_data.Float32x4.zwzw*/get zwzw() {
      return 238;
    },
    /*typed_data.Float32x4.zwwx*/get zwwx() {
      return 62;
    },
    /*typed_data.Float32x4.zwwy*/get zwwy() {
      return 126;
    },
    /*typed_data.Float32x4.zwwz*/get zwwz() {
      return 190;
    },
    /*typed_data.Float32x4.zwww*/get zwww() {
      return 254;
    },
    /*typed_data.Float32x4.wxxx*/get wxxx() {
      return 3;
    },
    /*typed_data.Float32x4.wxxy*/get wxxy() {
      return 67;
    },
    /*typed_data.Float32x4.wxxz*/get wxxz() {
      return 131;
    },
    /*typed_data.Float32x4.wxxw*/get wxxw() {
      return 195;
    },
    /*typed_data.Float32x4.wxyx*/get wxyx() {
      return 19;
    },
    /*typed_data.Float32x4.wxyy*/get wxyy() {
      return 83;
    },
    /*typed_data.Float32x4.wxyz*/get wxyz() {
      return 147;
    },
    /*typed_data.Float32x4.wxyw*/get wxyw() {
      return 211;
    },
    /*typed_data.Float32x4.wxzx*/get wxzx() {
      return 35;
    },
    /*typed_data.Float32x4.wxzy*/get wxzy() {
      return 99;
    },
    /*typed_data.Float32x4.wxzz*/get wxzz() {
      return 163;
    },
    /*typed_data.Float32x4.wxzw*/get wxzw() {
      return 227;
    },
    /*typed_data.Float32x4.wxwx*/get wxwx() {
      return 51;
    },
    /*typed_data.Float32x4.wxwy*/get wxwy() {
      return 115;
    },
    /*typed_data.Float32x4.wxwz*/get wxwz() {
      return 179;
    },
    /*typed_data.Float32x4.wxww*/get wxww() {
      return 243;
    },
    /*typed_data.Float32x4.wyxx*/get wyxx() {
      return 7;
    },
    /*typed_data.Float32x4.wyxy*/get wyxy() {
      return 71;
    },
    /*typed_data.Float32x4.wyxz*/get wyxz() {
      return 135;
    },
    /*typed_data.Float32x4.wyxw*/get wyxw() {
      return 199;
    },
    /*typed_data.Float32x4.wyyx*/get wyyx() {
      return 23;
    },
    /*typed_data.Float32x4.wyyy*/get wyyy() {
      return 87;
    },
    /*typed_data.Float32x4.wyyz*/get wyyz() {
      return 151;
    },
    /*typed_data.Float32x4.wyyw*/get wyyw() {
      return 215;
    },
    /*typed_data.Float32x4.wyzx*/get wyzx() {
      return 39;
    },
    /*typed_data.Float32x4.wyzy*/get wyzy() {
      return 103;
    },
    /*typed_data.Float32x4.wyzz*/get wyzz() {
      return 167;
    },
    /*typed_data.Float32x4.wyzw*/get wyzw() {
      return 231;
    },
    /*typed_data.Float32x4.wywx*/get wywx() {
      return 55;
    },
    /*typed_data.Float32x4.wywy*/get wywy() {
      return 119;
    },
    /*typed_data.Float32x4.wywz*/get wywz() {
      return 183;
    },
    /*typed_data.Float32x4.wyww*/get wyww() {
      return 247;
    },
    /*typed_data.Float32x4.wzxx*/get wzxx() {
      return 11;
    },
    /*typed_data.Float32x4.wzxy*/get wzxy() {
      return 75;
    },
    /*typed_data.Float32x4.wzxz*/get wzxz() {
      return 139;
    },
    /*typed_data.Float32x4.wzxw*/get wzxw() {
      return 203;
    },
    /*typed_data.Float32x4.wzyx*/get wzyx() {
      return 27;
    },
    /*typed_data.Float32x4.wzyy*/get wzyy() {
      return 91;
    },
    /*typed_data.Float32x4.wzyz*/get wzyz() {
      return 155;
    },
    /*typed_data.Float32x4.wzyw*/get wzyw() {
      return 219;
    },
    /*typed_data.Float32x4.wzzx*/get wzzx() {
      return 43;
    },
    /*typed_data.Float32x4.wzzy*/get wzzy() {
      return 107;
    },
    /*typed_data.Float32x4.wzzz*/get wzzz() {
      return 171;
    },
    /*typed_data.Float32x4.wzzw*/get wzzw() {
      return 235;
    },
    /*typed_data.Float32x4.wzwx*/get wzwx() {
      return 59;
    },
    /*typed_data.Float32x4.wzwy*/get wzwy() {
      return 123;
    },
    /*typed_data.Float32x4.wzwz*/get wzwz() {
      return 187;
    },
    /*typed_data.Float32x4.wzww*/get wzww() {
      return 251;
    },
    /*typed_data.Float32x4.wwxx*/get wwxx() {
      return 15;
    },
    /*typed_data.Float32x4.wwxy*/get wwxy() {
      return 79;
    },
    /*typed_data.Float32x4.wwxz*/get wwxz() {
      return 143;
    },
    /*typed_data.Float32x4.wwxw*/get wwxw() {
      return 207;
    },
    /*typed_data.Float32x4.wwyx*/get wwyx() {
      return 31;
    },
    /*typed_data.Float32x4.wwyy*/get wwyy() {
      return 95;
    },
    /*typed_data.Float32x4.wwyz*/get wwyz() {
      return 159;
    },
    /*typed_data.Float32x4.wwyw*/get wwyw() {
      return 223;
    },
    /*typed_data.Float32x4.wwzx*/get wwzx() {
      return 47;
    },
    /*typed_data.Float32x4.wwzy*/get wwzy() {
      return 111;
    },
    /*typed_data.Float32x4.wwzz*/get wwzz() {
      return 175;
    },
    /*typed_data.Float32x4.wwzw*/get wwzw() {
      return 239;
    },
    /*typed_data.Float32x4.wwwx*/get wwwx() {
      return 63;
    },
    /*typed_data.Float32x4.wwwy*/get wwwy() {
      return 127;
    },
    /*typed_data.Float32x4.wwwz*/get wwwz() {
      return 191;
    },
    /*typed_data.Float32x4.wwww*/get wwww() {
      return 255;
    }
  }, false);
  const Object_ListMixin$36 = class Object_ListMixin extends core.Object {};
  (Object_ListMixin$36.new = function() {
  }).prototype = Object_ListMixin$36.prototype;
  dart.applyMixin(Object_ListMixin$36, collection.ListMixin$(typed_data.Float32x4));
  const Object_FixedLengthListMixin$36 = class Object_FixedLengthListMixin extends Object_ListMixin$36 {};
  (Object_FixedLengthListMixin$36.new = function() {
  }).prototype = Object_FixedLengthListMixin$36.prototype;
  dart.applyMixin(Object_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(typed_data.Float32x4));
  _native_typed_data.NativeFloat32x4List = class NativeFloat32x4List extends Object_FixedLengthListMixin$36 {
    get runtimeType() {
      return dart.wrapType(typed_data.Float32x4List);
    }
    static fromList(list) {
      if (list == null) dart.nullFailed(I[58], 129, 56, "list");
      if (_native_typed_data.NativeFloat32x4List.is(list)) {
        return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List.fromList(list[_storage$]));
      } else {
        return new _native_typed_data.NativeFloat32x4List._slowFromList(list);
      }
    }
    get buffer() {
      return this[_storage$][$buffer];
    }
    get lengthInBytes() {
      return this[_storage$][$lengthInBytes];
    }
    get offsetInBytes() {
      return this[_storage$][$offsetInBytes];
    }
    get elementSizeInBytes() {
      return 16;
    }
    get length() {
      return (dart.notNull(this[_storage$][$length]) / 4)[$truncate]();
    }
    set length(value) {
      super.length = value;
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[58], 148, 29, "index");
      _native_typed_data._checkValidIndex(index, this, this.length);
      let _x = this[_storage$][$_get](dart.notNull(index) * 4 + 0);
      let _y = this[_storage$][$_get](dart.notNull(index) * 4 + 1);
      let _z = this[_storage$][$_get](dart.notNull(index) * 4 + 2);
      let _w = this[_storage$][$_get](dart.notNull(index) * 4 + 3);
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[58], 157, 25, "index");
      typed_data.Float32x4.as(value);
      if (value == null) dart.nullFailed(I[58], 157, 42, "value");
      _native_typed_data._checkValidIndex(index, this, this.length);
      this[_storage$][$_set](dart.notNull(index) * 4 + 0, value.x);
      this[_storage$][$_set](dart.notNull(index) * 4 + 1, value.y);
      this[_storage$][$_set](dart.notNull(index) * 4 + 2, value.z);
      this[_storage$][$_set](dart.notNull(index) * 4 + 3, value.w);
      return value$;
    }
    sublist(start, end = null) {
      if (start == null) dart.nullFailed(I[58], 165, 29, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this.length);
      return new _native_typed_data.NativeFloat32x4List._externalStorage(this[_storage$][$sublist](dart.notNull(start) * 4, dart.notNull(stop) * 4));
    }
  };
  (_native_typed_data.NativeFloat32x4List.new = function(length) {
    if (length == null) dart.nullFailed(I[58], 110, 27, "length");
    this[_storage$] = _native_typed_data.NativeFloat32List.new(dart.notNull(length) * 4);
    ;
  }).prototype = _native_typed_data.NativeFloat32x4List.prototype;
  (_native_typed_data.NativeFloat32x4List._externalStorage = function(_storage) {
    if (_storage == null) dart.nullFailed(I[58], 112, 45, "_storage");
    this[_storage$] = _storage;
    ;
  }).prototype = _native_typed_data.NativeFloat32x4List.prototype;
  (_native_typed_data.NativeFloat32x4List._slowFromList = function(list) {
    if (list == null) dart.nullFailed(I[58], 114, 53, "list");
    this[_storage$] = _native_typed_data.NativeFloat32List.new(dart.notNull(list[$length]) * 4);
    for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
      let e = list[$_get](i);
      this[_storage$][$_set](i * 4 + 0, e.x);
      this[_storage$][$_set](i * 4 + 1, e.y);
      this[_storage$][$_set](i * 4 + 2, e.z);
      this[_storage$][$_set](i * 4 + 3, e.w);
    }
  }).prototype = _native_typed_data.NativeFloat32x4List.prototype;
  dart.addTypeTests(_native_typed_data.NativeFloat32x4List);
  dart.addTypeCaches(_native_typed_data.NativeFloat32x4List);
  _native_typed_data.NativeFloat32x4List[dart.implements] = () => [typed_data.Float32x4List];
  dart.setMethodSignature(_native_typed_data.NativeFloat32x4List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat32x4List.__proto__),
    _get: dart.fnType(typed_data.Float32x4, [core.int]),
    [$_get]: dart.fnType(typed_data.Float32x4, [core.int]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    sublist: dart.fnType(typed_data.Float32x4List, [core.int], [dart.nullable(core.int)]),
    [$sublist]: dart.fnType(typed_data.Float32x4List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeFloat32x4List, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeFloat32x4List.__proto__),
    buffer: typed_data.ByteBuffer,
    [$buffer]: typed_data.ByteBuffer,
    lengthInBytes: core.int,
    [$lengthInBytes]: core.int,
    offsetInBytes: core.int,
    [$offsetInBytes]: core.int,
    elementSizeInBytes: core.int,
    [$elementSizeInBytes]: core.int,
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat32x4List, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeFloat32x4List, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeFloat32x4List.__proto__),
    [_storage$]: dart.finalFieldType(typed_data.Float32List)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeFloat32x4List, ['_get', '_set', 'sublist']);
  dart.defineExtensionAccessors(_native_typed_data.NativeFloat32x4List, [
    'runtimeType',
    'buffer',
    'lengthInBytes',
    'offsetInBytes',
    'elementSizeInBytes',
    'length'
  ]);
  typed_data.Int32x4 = class Int32x4 extends core.Object {};
  (typed_data.Int32x4[dart.mixinNew] = function() {
  }).prototype = typed_data.Int32x4.prototype;
  dart.addTypeTests(typed_data.Int32x4);
  dart.addTypeCaches(typed_data.Int32x4);
  dart.setLibraryUri(typed_data.Int32x4, I[60]);
  dart.defineLazy(typed_data.Int32x4, {
    /*typed_data.Int32x4.xxxx*/get xxxx() {
      return 0;
    },
    /*typed_data.Int32x4.xxxy*/get xxxy() {
      return 64;
    },
    /*typed_data.Int32x4.xxxz*/get xxxz() {
      return 128;
    },
    /*typed_data.Int32x4.xxxw*/get xxxw() {
      return 192;
    },
    /*typed_data.Int32x4.xxyx*/get xxyx() {
      return 16;
    },
    /*typed_data.Int32x4.xxyy*/get xxyy() {
      return 80;
    },
    /*typed_data.Int32x4.xxyz*/get xxyz() {
      return 144;
    },
    /*typed_data.Int32x4.xxyw*/get xxyw() {
      return 208;
    },
    /*typed_data.Int32x4.xxzx*/get xxzx() {
      return 32;
    },
    /*typed_data.Int32x4.xxzy*/get xxzy() {
      return 96;
    },
    /*typed_data.Int32x4.xxzz*/get xxzz() {
      return 160;
    },
    /*typed_data.Int32x4.xxzw*/get xxzw() {
      return 224;
    },
    /*typed_data.Int32x4.xxwx*/get xxwx() {
      return 48;
    },
    /*typed_data.Int32x4.xxwy*/get xxwy() {
      return 112;
    },
    /*typed_data.Int32x4.xxwz*/get xxwz() {
      return 176;
    },
    /*typed_data.Int32x4.xxww*/get xxww() {
      return 240;
    },
    /*typed_data.Int32x4.xyxx*/get xyxx() {
      return 4;
    },
    /*typed_data.Int32x4.xyxy*/get xyxy() {
      return 68;
    },
    /*typed_data.Int32x4.xyxz*/get xyxz() {
      return 132;
    },
    /*typed_data.Int32x4.xyxw*/get xyxw() {
      return 196;
    },
    /*typed_data.Int32x4.xyyx*/get xyyx() {
      return 20;
    },
    /*typed_data.Int32x4.xyyy*/get xyyy() {
      return 84;
    },
    /*typed_data.Int32x4.xyyz*/get xyyz() {
      return 148;
    },
    /*typed_data.Int32x4.xyyw*/get xyyw() {
      return 212;
    },
    /*typed_data.Int32x4.xyzx*/get xyzx() {
      return 36;
    },
    /*typed_data.Int32x4.xyzy*/get xyzy() {
      return 100;
    },
    /*typed_data.Int32x4.xyzz*/get xyzz() {
      return 164;
    },
    /*typed_data.Int32x4.xyzw*/get xyzw() {
      return 228;
    },
    /*typed_data.Int32x4.xywx*/get xywx() {
      return 52;
    },
    /*typed_data.Int32x4.xywy*/get xywy() {
      return 116;
    },
    /*typed_data.Int32x4.xywz*/get xywz() {
      return 180;
    },
    /*typed_data.Int32x4.xyww*/get xyww() {
      return 244;
    },
    /*typed_data.Int32x4.xzxx*/get xzxx() {
      return 8;
    },
    /*typed_data.Int32x4.xzxy*/get xzxy() {
      return 72;
    },
    /*typed_data.Int32x4.xzxz*/get xzxz() {
      return 136;
    },
    /*typed_data.Int32x4.xzxw*/get xzxw() {
      return 200;
    },
    /*typed_data.Int32x4.xzyx*/get xzyx() {
      return 24;
    },
    /*typed_data.Int32x4.xzyy*/get xzyy() {
      return 88;
    },
    /*typed_data.Int32x4.xzyz*/get xzyz() {
      return 152;
    },
    /*typed_data.Int32x4.xzyw*/get xzyw() {
      return 216;
    },
    /*typed_data.Int32x4.xzzx*/get xzzx() {
      return 40;
    },
    /*typed_data.Int32x4.xzzy*/get xzzy() {
      return 104;
    },
    /*typed_data.Int32x4.xzzz*/get xzzz() {
      return 168;
    },
    /*typed_data.Int32x4.xzzw*/get xzzw() {
      return 232;
    },
    /*typed_data.Int32x4.xzwx*/get xzwx() {
      return 56;
    },
    /*typed_data.Int32x4.xzwy*/get xzwy() {
      return 120;
    },
    /*typed_data.Int32x4.xzwz*/get xzwz() {
      return 184;
    },
    /*typed_data.Int32x4.xzww*/get xzww() {
      return 248;
    },
    /*typed_data.Int32x4.xwxx*/get xwxx() {
      return 12;
    },
    /*typed_data.Int32x4.xwxy*/get xwxy() {
      return 76;
    },
    /*typed_data.Int32x4.xwxz*/get xwxz() {
      return 140;
    },
    /*typed_data.Int32x4.xwxw*/get xwxw() {
      return 204;
    },
    /*typed_data.Int32x4.xwyx*/get xwyx() {
      return 28;
    },
    /*typed_data.Int32x4.xwyy*/get xwyy() {
      return 92;
    },
    /*typed_data.Int32x4.xwyz*/get xwyz() {
      return 156;
    },
    /*typed_data.Int32x4.xwyw*/get xwyw() {
      return 220;
    },
    /*typed_data.Int32x4.xwzx*/get xwzx() {
      return 44;
    },
    /*typed_data.Int32x4.xwzy*/get xwzy() {
      return 108;
    },
    /*typed_data.Int32x4.xwzz*/get xwzz() {
      return 172;
    },
    /*typed_data.Int32x4.xwzw*/get xwzw() {
      return 236;
    },
    /*typed_data.Int32x4.xwwx*/get xwwx() {
      return 60;
    },
    /*typed_data.Int32x4.xwwy*/get xwwy() {
      return 124;
    },
    /*typed_data.Int32x4.xwwz*/get xwwz() {
      return 188;
    },
    /*typed_data.Int32x4.xwww*/get xwww() {
      return 252;
    },
    /*typed_data.Int32x4.yxxx*/get yxxx() {
      return 1;
    },
    /*typed_data.Int32x4.yxxy*/get yxxy() {
      return 65;
    },
    /*typed_data.Int32x4.yxxz*/get yxxz() {
      return 129;
    },
    /*typed_data.Int32x4.yxxw*/get yxxw() {
      return 193;
    },
    /*typed_data.Int32x4.yxyx*/get yxyx() {
      return 17;
    },
    /*typed_data.Int32x4.yxyy*/get yxyy() {
      return 81;
    },
    /*typed_data.Int32x4.yxyz*/get yxyz() {
      return 145;
    },
    /*typed_data.Int32x4.yxyw*/get yxyw() {
      return 209;
    },
    /*typed_data.Int32x4.yxzx*/get yxzx() {
      return 33;
    },
    /*typed_data.Int32x4.yxzy*/get yxzy() {
      return 97;
    },
    /*typed_data.Int32x4.yxzz*/get yxzz() {
      return 161;
    },
    /*typed_data.Int32x4.yxzw*/get yxzw() {
      return 225;
    },
    /*typed_data.Int32x4.yxwx*/get yxwx() {
      return 49;
    },
    /*typed_data.Int32x4.yxwy*/get yxwy() {
      return 113;
    },
    /*typed_data.Int32x4.yxwz*/get yxwz() {
      return 177;
    },
    /*typed_data.Int32x4.yxww*/get yxww() {
      return 241;
    },
    /*typed_data.Int32x4.yyxx*/get yyxx() {
      return 5;
    },
    /*typed_data.Int32x4.yyxy*/get yyxy() {
      return 69;
    },
    /*typed_data.Int32x4.yyxz*/get yyxz() {
      return 133;
    },
    /*typed_data.Int32x4.yyxw*/get yyxw() {
      return 197;
    },
    /*typed_data.Int32x4.yyyx*/get yyyx() {
      return 21;
    },
    /*typed_data.Int32x4.yyyy*/get yyyy() {
      return 85;
    },
    /*typed_data.Int32x4.yyyz*/get yyyz() {
      return 149;
    },
    /*typed_data.Int32x4.yyyw*/get yyyw() {
      return 213;
    },
    /*typed_data.Int32x4.yyzx*/get yyzx() {
      return 37;
    },
    /*typed_data.Int32x4.yyzy*/get yyzy() {
      return 101;
    },
    /*typed_data.Int32x4.yyzz*/get yyzz() {
      return 165;
    },
    /*typed_data.Int32x4.yyzw*/get yyzw() {
      return 229;
    },
    /*typed_data.Int32x4.yywx*/get yywx() {
      return 53;
    },
    /*typed_data.Int32x4.yywy*/get yywy() {
      return 117;
    },
    /*typed_data.Int32x4.yywz*/get yywz() {
      return 181;
    },
    /*typed_data.Int32x4.yyww*/get yyww() {
      return 245;
    },
    /*typed_data.Int32x4.yzxx*/get yzxx() {
      return 9;
    },
    /*typed_data.Int32x4.yzxy*/get yzxy() {
      return 73;
    },
    /*typed_data.Int32x4.yzxz*/get yzxz() {
      return 137;
    },
    /*typed_data.Int32x4.yzxw*/get yzxw() {
      return 201;
    },
    /*typed_data.Int32x4.yzyx*/get yzyx() {
      return 25;
    },
    /*typed_data.Int32x4.yzyy*/get yzyy() {
      return 89;
    },
    /*typed_data.Int32x4.yzyz*/get yzyz() {
      return 153;
    },
    /*typed_data.Int32x4.yzyw*/get yzyw() {
      return 217;
    },
    /*typed_data.Int32x4.yzzx*/get yzzx() {
      return 41;
    },
    /*typed_data.Int32x4.yzzy*/get yzzy() {
      return 105;
    },
    /*typed_data.Int32x4.yzzz*/get yzzz() {
      return 169;
    },
    /*typed_data.Int32x4.yzzw*/get yzzw() {
      return 233;
    },
    /*typed_data.Int32x4.yzwx*/get yzwx() {
      return 57;
    },
    /*typed_data.Int32x4.yzwy*/get yzwy() {
      return 121;
    },
    /*typed_data.Int32x4.yzwz*/get yzwz() {
      return 185;
    },
    /*typed_data.Int32x4.yzww*/get yzww() {
      return 249;
    },
    /*typed_data.Int32x4.ywxx*/get ywxx() {
      return 13;
    },
    /*typed_data.Int32x4.ywxy*/get ywxy() {
      return 77;
    },
    /*typed_data.Int32x4.ywxz*/get ywxz() {
      return 141;
    },
    /*typed_data.Int32x4.ywxw*/get ywxw() {
      return 205;
    },
    /*typed_data.Int32x4.ywyx*/get ywyx() {
      return 29;
    },
    /*typed_data.Int32x4.ywyy*/get ywyy() {
      return 93;
    },
    /*typed_data.Int32x4.ywyz*/get ywyz() {
      return 157;
    },
    /*typed_data.Int32x4.ywyw*/get ywyw() {
      return 221;
    },
    /*typed_data.Int32x4.ywzx*/get ywzx() {
      return 45;
    },
    /*typed_data.Int32x4.ywzy*/get ywzy() {
      return 109;
    },
    /*typed_data.Int32x4.ywzz*/get ywzz() {
      return 173;
    },
    /*typed_data.Int32x4.ywzw*/get ywzw() {
      return 237;
    },
    /*typed_data.Int32x4.ywwx*/get ywwx() {
      return 61;
    },
    /*typed_data.Int32x4.ywwy*/get ywwy() {
      return 125;
    },
    /*typed_data.Int32x4.ywwz*/get ywwz() {
      return 189;
    },
    /*typed_data.Int32x4.ywww*/get ywww() {
      return 253;
    },
    /*typed_data.Int32x4.zxxx*/get zxxx() {
      return 2;
    },
    /*typed_data.Int32x4.zxxy*/get zxxy() {
      return 66;
    },
    /*typed_data.Int32x4.zxxz*/get zxxz() {
      return 130;
    },
    /*typed_data.Int32x4.zxxw*/get zxxw() {
      return 194;
    },
    /*typed_data.Int32x4.zxyx*/get zxyx() {
      return 18;
    },
    /*typed_data.Int32x4.zxyy*/get zxyy() {
      return 82;
    },
    /*typed_data.Int32x4.zxyz*/get zxyz() {
      return 146;
    },
    /*typed_data.Int32x4.zxyw*/get zxyw() {
      return 210;
    },
    /*typed_data.Int32x4.zxzx*/get zxzx() {
      return 34;
    },
    /*typed_data.Int32x4.zxzy*/get zxzy() {
      return 98;
    },
    /*typed_data.Int32x4.zxzz*/get zxzz() {
      return 162;
    },
    /*typed_data.Int32x4.zxzw*/get zxzw() {
      return 226;
    },
    /*typed_data.Int32x4.zxwx*/get zxwx() {
      return 50;
    },
    /*typed_data.Int32x4.zxwy*/get zxwy() {
      return 114;
    },
    /*typed_data.Int32x4.zxwz*/get zxwz() {
      return 178;
    },
    /*typed_data.Int32x4.zxww*/get zxww() {
      return 242;
    },
    /*typed_data.Int32x4.zyxx*/get zyxx() {
      return 6;
    },
    /*typed_data.Int32x4.zyxy*/get zyxy() {
      return 70;
    },
    /*typed_data.Int32x4.zyxz*/get zyxz() {
      return 134;
    },
    /*typed_data.Int32x4.zyxw*/get zyxw() {
      return 198;
    },
    /*typed_data.Int32x4.zyyx*/get zyyx() {
      return 22;
    },
    /*typed_data.Int32x4.zyyy*/get zyyy() {
      return 86;
    },
    /*typed_data.Int32x4.zyyz*/get zyyz() {
      return 150;
    },
    /*typed_data.Int32x4.zyyw*/get zyyw() {
      return 214;
    },
    /*typed_data.Int32x4.zyzx*/get zyzx() {
      return 38;
    },
    /*typed_data.Int32x4.zyzy*/get zyzy() {
      return 102;
    },
    /*typed_data.Int32x4.zyzz*/get zyzz() {
      return 166;
    },
    /*typed_data.Int32x4.zyzw*/get zyzw() {
      return 230;
    },
    /*typed_data.Int32x4.zywx*/get zywx() {
      return 54;
    },
    /*typed_data.Int32x4.zywy*/get zywy() {
      return 118;
    },
    /*typed_data.Int32x4.zywz*/get zywz() {
      return 182;
    },
    /*typed_data.Int32x4.zyww*/get zyww() {
      return 246;
    },
    /*typed_data.Int32x4.zzxx*/get zzxx() {
      return 10;
    },
    /*typed_data.Int32x4.zzxy*/get zzxy() {
      return 74;
    },
    /*typed_data.Int32x4.zzxz*/get zzxz() {
      return 138;
    },
    /*typed_data.Int32x4.zzxw*/get zzxw() {
      return 202;
    },
    /*typed_data.Int32x4.zzyx*/get zzyx() {
      return 26;
    },
    /*typed_data.Int32x4.zzyy*/get zzyy() {
      return 90;
    },
    /*typed_data.Int32x4.zzyz*/get zzyz() {
      return 154;
    },
    /*typed_data.Int32x4.zzyw*/get zzyw() {
      return 218;
    },
    /*typed_data.Int32x4.zzzx*/get zzzx() {
      return 42;
    },
    /*typed_data.Int32x4.zzzy*/get zzzy() {
      return 106;
    },
    /*typed_data.Int32x4.zzzz*/get zzzz() {
      return 170;
    },
    /*typed_data.Int32x4.zzzw*/get zzzw() {
      return 234;
    },
    /*typed_data.Int32x4.zzwx*/get zzwx() {
      return 58;
    },
    /*typed_data.Int32x4.zzwy*/get zzwy() {
      return 122;
    },
    /*typed_data.Int32x4.zzwz*/get zzwz() {
      return 186;
    },
    /*typed_data.Int32x4.zzww*/get zzww() {
      return 250;
    },
    /*typed_data.Int32x4.zwxx*/get zwxx() {
      return 14;
    },
    /*typed_data.Int32x4.zwxy*/get zwxy() {
      return 78;
    },
    /*typed_data.Int32x4.zwxz*/get zwxz() {
      return 142;
    },
    /*typed_data.Int32x4.zwxw*/get zwxw() {
      return 206;
    },
    /*typed_data.Int32x4.zwyx*/get zwyx() {
      return 30;
    },
    /*typed_data.Int32x4.zwyy*/get zwyy() {
      return 94;
    },
    /*typed_data.Int32x4.zwyz*/get zwyz() {
      return 158;
    },
    /*typed_data.Int32x4.zwyw*/get zwyw() {
      return 222;
    },
    /*typed_data.Int32x4.zwzx*/get zwzx() {
      return 46;
    },
    /*typed_data.Int32x4.zwzy*/get zwzy() {
      return 110;
    },
    /*typed_data.Int32x4.zwzz*/get zwzz() {
      return 174;
    },
    /*typed_data.Int32x4.zwzw*/get zwzw() {
      return 238;
    },
    /*typed_data.Int32x4.zwwx*/get zwwx() {
      return 62;
    },
    /*typed_data.Int32x4.zwwy*/get zwwy() {
      return 126;
    },
    /*typed_data.Int32x4.zwwz*/get zwwz() {
      return 190;
    },
    /*typed_data.Int32x4.zwww*/get zwww() {
      return 254;
    },
    /*typed_data.Int32x4.wxxx*/get wxxx() {
      return 3;
    },
    /*typed_data.Int32x4.wxxy*/get wxxy() {
      return 67;
    },
    /*typed_data.Int32x4.wxxz*/get wxxz() {
      return 131;
    },
    /*typed_data.Int32x4.wxxw*/get wxxw() {
      return 195;
    },
    /*typed_data.Int32x4.wxyx*/get wxyx() {
      return 19;
    },
    /*typed_data.Int32x4.wxyy*/get wxyy() {
      return 83;
    },
    /*typed_data.Int32x4.wxyz*/get wxyz() {
      return 147;
    },
    /*typed_data.Int32x4.wxyw*/get wxyw() {
      return 211;
    },
    /*typed_data.Int32x4.wxzx*/get wxzx() {
      return 35;
    },
    /*typed_data.Int32x4.wxzy*/get wxzy() {
      return 99;
    },
    /*typed_data.Int32x4.wxzz*/get wxzz() {
      return 163;
    },
    /*typed_data.Int32x4.wxzw*/get wxzw() {
      return 227;
    },
    /*typed_data.Int32x4.wxwx*/get wxwx() {
      return 51;
    },
    /*typed_data.Int32x4.wxwy*/get wxwy() {
      return 115;
    },
    /*typed_data.Int32x4.wxwz*/get wxwz() {
      return 179;
    },
    /*typed_data.Int32x4.wxww*/get wxww() {
      return 243;
    },
    /*typed_data.Int32x4.wyxx*/get wyxx() {
      return 7;
    },
    /*typed_data.Int32x4.wyxy*/get wyxy() {
      return 71;
    },
    /*typed_data.Int32x4.wyxz*/get wyxz() {
      return 135;
    },
    /*typed_data.Int32x4.wyxw*/get wyxw() {
      return 199;
    },
    /*typed_data.Int32x4.wyyx*/get wyyx() {
      return 23;
    },
    /*typed_data.Int32x4.wyyy*/get wyyy() {
      return 87;
    },
    /*typed_data.Int32x4.wyyz*/get wyyz() {
      return 151;
    },
    /*typed_data.Int32x4.wyyw*/get wyyw() {
      return 215;
    },
    /*typed_data.Int32x4.wyzx*/get wyzx() {
      return 39;
    },
    /*typed_data.Int32x4.wyzy*/get wyzy() {
      return 103;
    },
    /*typed_data.Int32x4.wyzz*/get wyzz() {
      return 167;
    },
    /*typed_data.Int32x4.wyzw*/get wyzw() {
      return 231;
    },
    /*typed_data.Int32x4.wywx*/get wywx() {
      return 55;
    },
    /*typed_data.Int32x4.wywy*/get wywy() {
      return 119;
    },
    /*typed_data.Int32x4.wywz*/get wywz() {
      return 183;
    },
    /*typed_data.Int32x4.wyww*/get wyww() {
      return 247;
    },
    /*typed_data.Int32x4.wzxx*/get wzxx() {
      return 11;
    },
    /*typed_data.Int32x4.wzxy*/get wzxy() {
      return 75;
    },
    /*typed_data.Int32x4.wzxz*/get wzxz() {
      return 139;
    },
    /*typed_data.Int32x4.wzxw*/get wzxw() {
      return 203;
    },
    /*typed_data.Int32x4.wzyx*/get wzyx() {
      return 27;
    },
    /*typed_data.Int32x4.wzyy*/get wzyy() {
      return 91;
    },
    /*typed_data.Int32x4.wzyz*/get wzyz() {
      return 155;
    },
    /*typed_data.Int32x4.wzyw*/get wzyw() {
      return 219;
    },
    /*typed_data.Int32x4.wzzx*/get wzzx() {
      return 43;
    },
    /*typed_data.Int32x4.wzzy*/get wzzy() {
      return 107;
    },
    /*typed_data.Int32x4.wzzz*/get wzzz() {
      return 171;
    },
    /*typed_data.Int32x4.wzzw*/get wzzw() {
      return 235;
    },
    /*typed_data.Int32x4.wzwx*/get wzwx() {
      return 59;
    },
    /*typed_data.Int32x4.wzwy*/get wzwy() {
      return 123;
    },
    /*typed_data.Int32x4.wzwz*/get wzwz() {
      return 187;
    },
    /*typed_data.Int32x4.wzww*/get wzww() {
      return 251;
    },
    /*typed_data.Int32x4.wwxx*/get wwxx() {
      return 15;
    },
    /*typed_data.Int32x4.wwxy*/get wwxy() {
      return 79;
    },
    /*typed_data.Int32x4.wwxz*/get wwxz() {
      return 143;
    },
    /*typed_data.Int32x4.wwxw*/get wwxw() {
      return 207;
    },
    /*typed_data.Int32x4.wwyx*/get wwyx() {
      return 31;
    },
    /*typed_data.Int32x4.wwyy*/get wwyy() {
      return 95;
    },
    /*typed_data.Int32x4.wwyz*/get wwyz() {
      return 159;
    },
    /*typed_data.Int32x4.wwyw*/get wwyw() {
      return 223;
    },
    /*typed_data.Int32x4.wwzx*/get wwzx() {
      return 47;
    },
    /*typed_data.Int32x4.wwzy*/get wwzy() {
      return 111;
    },
    /*typed_data.Int32x4.wwzz*/get wwzz() {
      return 175;
    },
    /*typed_data.Int32x4.wwzw*/get wwzw() {
      return 239;
    },
    /*typed_data.Int32x4.wwwx*/get wwwx() {
      return 63;
    },
    /*typed_data.Int32x4.wwwy*/get wwwy() {
      return 127;
    },
    /*typed_data.Int32x4.wwwz*/get wwwz() {
      return 191;
    },
    /*typed_data.Int32x4.wwww*/get wwww() {
      return 255;
    }
  }, false);
  const Object_ListMixin$36$ = class Object_ListMixin extends core.Object {};
  (Object_ListMixin$36$.new = function() {
  }).prototype = Object_ListMixin$36$.prototype;
  dart.applyMixin(Object_ListMixin$36$, collection.ListMixin$(typed_data.Int32x4));
  const Object_FixedLengthListMixin$36$ = class Object_FixedLengthListMixin extends Object_ListMixin$36$ {};
  (Object_FixedLengthListMixin$36$.new = function() {
  }).prototype = Object_FixedLengthListMixin$36$.prototype;
  dart.applyMixin(Object_FixedLengthListMixin$36$, _internal.FixedLengthListMixin$(typed_data.Int32x4));
  _native_typed_data.NativeInt32x4List = class NativeInt32x4List extends Object_FixedLengthListMixin$36$ {
    get runtimeType() {
      return dart.wrapType(typed_data.Int32x4List);
    }
    static fromList(list) {
      if (list == null) dart.nullFailed(I[58], 201, 52, "list");
      if (_native_typed_data.NativeInt32x4List.is(list)) {
        return new _native_typed_data.NativeInt32x4List._externalStorage(_native_typed_data.NativeInt32List.fromList(list[_storage$]));
      } else {
        return new _native_typed_data.NativeInt32x4List._slowFromList(list);
      }
    }
    get buffer() {
      return this[_storage$][$buffer];
    }
    get lengthInBytes() {
      return this[_storage$][$lengthInBytes];
    }
    get offsetInBytes() {
      return this[_storage$][$offsetInBytes];
    }
    get elementSizeInBytes() {
      return 16;
    }
    get length() {
      return (dart.notNull(this[_storage$][$length]) / 4)[$truncate]();
    }
    set length(value) {
      super.length = value;
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[58], 220, 27, "index");
      _native_typed_data._checkValidIndex(index, this, this.length);
      let _x = this[_storage$][$_get](dart.notNull(index) * 4 + 0);
      let _y = this[_storage$][$_get](dart.notNull(index) * 4 + 1);
      let _z = this[_storage$][$_get](dart.notNull(index) * 4 + 2);
      let _w = this[_storage$][$_get](dart.notNull(index) * 4 + 3);
      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[58], 229, 25, "index");
      typed_data.Int32x4.as(value);
      if (value == null) dart.nullFailed(I[58], 229, 40, "value");
      _native_typed_data._checkValidIndex(index, this, this.length);
      this[_storage$][$_set](dart.notNull(index) * 4 + 0, value.x);
      this[_storage$][$_set](dart.notNull(index) * 4 + 1, value.y);
      this[_storage$][$_set](dart.notNull(index) * 4 + 2, value.z);
      this[_storage$][$_set](dart.notNull(index) * 4 + 3, value.w);
      return value$;
    }
    sublist(start, end = null) {
      if (start == null) dart.nullFailed(I[58], 237, 27, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this.length);
      return new _native_typed_data.NativeInt32x4List._externalStorage(this[_storage$][$sublist](dart.notNull(start) * 4, dart.notNull(stop) * 4));
    }
  };
  (_native_typed_data.NativeInt32x4List.new = function(length) {
    if (length == null) dart.nullFailed(I[58], 182, 25, "length");
    this[_storage$] = _native_typed_data.NativeInt32List.new(dart.notNull(length) * 4);
    ;
  }).prototype = _native_typed_data.NativeInt32x4List.prototype;
  (_native_typed_data.NativeInt32x4List._externalStorage = function(storage) {
    if (storage == null) dart.nullFailed(I[58], 184, 48, "storage");
    this[_storage$] = storage;
    ;
  }).prototype = _native_typed_data.NativeInt32x4List.prototype;
  (_native_typed_data.NativeInt32x4List._slowFromList = function(list) {
    if (list == null) dart.nullFailed(I[58], 186, 49, "list");
    this[_storage$] = _native_typed_data.NativeInt32List.new(dart.notNull(list[$length]) * 4);
    for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
      let e = list[$_get](i);
      this[_storage$][$_set](i * 4 + 0, e.x);
      this[_storage$][$_set](i * 4 + 1, e.y);
      this[_storage$][$_set](i * 4 + 2, e.z);
      this[_storage$][$_set](i * 4 + 3, e.w);
    }
  }).prototype = _native_typed_data.NativeInt32x4List.prototype;
  dart.addTypeTests(_native_typed_data.NativeInt32x4List);
  dart.addTypeCaches(_native_typed_data.NativeInt32x4List);
  _native_typed_data.NativeInt32x4List[dart.implements] = () => [typed_data.Int32x4List];
  dart.setMethodSignature(_native_typed_data.NativeInt32x4List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeInt32x4List.__proto__),
    _get: dart.fnType(typed_data.Int32x4, [core.int]),
    [$_get]: dart.fnType(typed_data.Int32x4, [core.int]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    sublist: dart.fnType(typed_data.Int32x4List, [core.int], [dart.nullable(core.int)]),
    [$sublist]: dart.fnType(typed_data.Int32x4List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeInt32x4List, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeInt32x4List.__proto__),
    buffer: typed_data.ByteBuffer,
    [$buffer]: typed_data.ByteBuffer,
    lengthInBytes: core.int,
    [$lengthInBytes]: core.int,
    offsetInBytes: core.int,
    [$offsetInBytes]: core.int,
    elementSizeInBytes: core.int,
    [$elementSizeInBytes]: core.int,
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeInt32x4List, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeInt32x4List, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeInt32x4List.__proto__),
    [_storage$]: dart.finalFieldType(typed_data.Int32List)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeInt32x4List, ['_get', '_set', 'sublist']);
  dart.defineExtensionAccessors(_native_typed_data.NativeInt32x4List, [
    'runtimeType',
    'buffer',
    'lengthInBytes',
    'offsetInBytes',
    'elementSizeInBytes',
    'length'
  ]);
  typed_data.Float64x2 = class Float64x2 extends core.Object {};
  (typed_data.Float64x2[dart.mixinNew] = function() {
  }).prototype = typed_data.Float64x2.prototype;
  dart.addTypeTests(typed_data.Float64x2);
  dart.addTypeCaches(typed_data.Float64x2);
  dart.setLibraryUri(typed_data.Float64x2, I[60]);
  const Object_ListMixin$36$0 = class Object_ListMixin extends core.Object {};
  (Object_ListMixin$36$0.new = function() {
  }).prototype = Object_ListMixin$36$0.prototype;
  dart.applyMixin(Object_ListMixin$36$0, collection.ListMixin$(typed_data.Float64x2));
  const Object_FixedLengthListMixin$36$0 = class Object_FixedLengthListMixin extends Object_ListMixin$36$0 {};
  (Object_FixedLengthListMixin$36$0.new = function() {
  }).prototype = Object_FixedLengthListMixin$36$0.prototype;
  dart.applyMixin(Object_FixedLengthListMixin$36$0, _internal.FixedLengthListMixin$(typed_data.Float64x2));
  _native_typed_data.NativeFloat64x2List = class NativeFloat64x2List extends Object_FixedLengthListMixin$36$0 {
    static fromList(list) {
      if (list == null) dart.nullFailed(I[58], 269, 56, "list");
      if (_native_typed_data.NativeFloat64x2List.is(list)) {
        return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List.fromList(list[_storage$]));
      } else {
        return new _native_typed_data.NativeFloat64x2List._slowFromList(list);
      }
    }
    get runtimeType() {
      return dart.wrapType(typed_data.Float64x2List);
    }
    get buffer() {
      return this[_storage$][$buffer];
    }
    get lengthInBytes() {
      return this[_storage$][$lengthInBytes];
    }
    get offsetInBytes() {
      return this[_storage$][$offsetInBytes];
    }
    get elementSizeInBytes() {
      return 16;
    }
    get length() {
      return (dart.notNull(this[_storage$][$length]) / 2)[$truncate]();
    }
    set length(value) {
      super.length = value;
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[58], 290, 29, "index");
      _native_typed_data._checkValidIndex(index, this, this.length);
      let _x = this[_storage$][$_get](dart.notNull(index) * 2 + 0);
      let _y = this[_storage$][$_get](dart.notNull(index) * 2 + 1);
      return new _native_typed_data.NativeFloat64x2.new(_x, _y);
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[58], 297, 25, "index");
      typed_data.Float64x2.as(value);
      if (value == null) dart.nullFailed(I[58], 297, 42, "value");
      _native_typed_data._checkValidIndex(index, this, this.length);
      this[_storage$][$_set](dart.notNull(index) * 2 + 0, value.x);
      this[_storage$][$_set](dart.notNull(index) * 2 + 1, value.y);
      return value$;
    }
    sublist(start, end = null) {
      if (start == null) dart.nullFailed(I[58], 303, 29, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this.length);
      return new _native_typed_data.NativeFloat64x2List._externalStorage(this[_storage$][$sublist](dart.notNull(start) * 2, dart.notNull(stop) * 2));
    }
  };
  (_native_typed_data.NativeFloat64x2List.new = function(length) {
    if (length == null) dart.nullFailed(I[58], 254, 27, "length");
    this[_storage$] = _native_typed_data.NativeFloat64List.new(dart.notNull(length) * 2);
    ;
  }).prototype = _native_typed_data.NativeFloat64x2List.prototype;
  (_native_typed_data.NativeFloat64x2List._externalStorage = function(_storage) {
    if (_storage == null) dart.nullFailed(I[58], 256, 45, "_storage");
    this[_storage$] = _storage;
    ;
  }).prototype = _native_typed_data.NativeFloat64x2List.prototype;
  (_native_typed_data.NativeFloat64x2List._slowFromList = function(list) {
    if (list == null) dart.nullFailed(I[58], 258, 53, "list");
    this[_storage$] = _native_typed_data.NativeFloat64List.new(dart.notNull(list[$length]) * 2);
    for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
      let e = list[$_get](i);
      this[_storage$][$_set](i * 2 + 0, e.x);
      this[_storage$][$_set](i * 2 + 1, e.y);
    }
  }).prototype = _native_typed_data.NativeFloat64x2List.prototype;
  dart.addTypeTests(_native_typed_data.NativeFloat64x2List);
  dart.addTypeCaches(_native_typed_data.NativeFloat64x2List);
  _native_typed_data.NativeFloat64x2List[dart.implements] = () => [typed_data.Float64x2List];
  dart.setMethodSignature(_native_typed_data.NativeFloat64x2List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat64x2List.__proto__),
    _get: dart.fnType(typed_data.Float64x2, [core.int]),
    [$_get]: dart.fnType(typed_data.Float64x2, [core.int]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    sublist: dart.fnType(typed_data.Float64x2List, [core.int], [dart.nullable(core.int)]),
    [$sublist]: dart.fnType(typed_data.Float64x2List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeFloat64x2List, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeFloat64x2List.__proto__),
    buffer: typed_data.ByteBuffer,
    [$buffer]: typed_data.ByteBuffer,
    lengthInBytes: core.int,
    [$lengthInBytes]: core.int,
    offsetInBytes: core.int,
    [$offsetInBytes]: core.int,
    elementSizeInBytes: core.int,
    [$elementSizeInBytes]: core.int,
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat64x2List, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeFloat64x2List, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeFloat64x2List.__proto__),
    [_storage$]: dart.finalFieldType(typed_data.Float64List)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeFloat64x2List, ['_get', '_set', 'sublist']);
  dart.defineExtensionAccessors(_native_typed_data.NativeFloat64x2List, [
    'runtimeType',
    'buffer',
    'lengthInBytes',
    'offsetInBytes',
    'elementSizeInBytes',
    'length'
  ]);
  var _invalidPosition = dart.privateName(_native_typed_data, "_invalidPosition");
  var _checkPosition = dart.privateName(_native_typed_data, "_checkPosition");
  _native_typed_data.NativeTypedData = class NativeTypedData extends core.Object {
    get [$buffer]() {
      return this.buffer;
    }
    get [$lengthInBytes]() {
      return this.byteLength;
    }
    get [$offsetInBytes]() {
      return this.byteOffset;
    }
    get [$elementSizeInBytes]() {
      return this.BYTES_PER_ELEMENT;
    }
    [_invalidPosition](position, length, name) {
      if (position == null) dart.nullFailed(I[58], 330, 29, "position");
      if (length == null) dart.nullFailed(I[58], 330, 43, "length");
      if (name == null) dart.nullFailed(I[58], 330, 58, "name");
      if (!core.int.is(position)) {
        dart.throw(new core.ArgumentError.value(position, name, "Invalid list position"));
      } else {
        dart.throw(new core.RangeError.range(position, 0, length, name));
      }
    }
    [_checkPosition](position, length, name) {
      if (position == null) dart.nullFailed(I[58], 338, 27, "position");
      if (length == null) dart.nullFailed(I[58], 338, 41, "length");
      if (name == null) dart.nullFailed(I[58], 338, 56, "name");
      if (position >>> 0 !== position || position > dart.notNull(length)) {
        this[_invalidPosition](position, length, name);
      }
    }
  };
  (_native_typed_data.NativeTypedData.new = function() {
    ;
  }).prototype = _native_typed_data.NativeTypedData.prototype;
  dart.addTypeTests(_native_typed_data.NativeTypedData);
  dart.addTypeCaches(_native_typed_data.NativeTypedData);
  _native_typed_data.NativeTypedData[dart.implements] = () => [typed_data.TypedData];
  dart.setMethodSignature(_native_typed_data.NativeTypedData, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeTypedData.__proto__),
    [_invalidPosition]: dart.fnType(dart.void, [core.int, core.int, core.String]),
    [_checkPosition]: dart.fnType(dart.void, [core.int, core.int, core.String])
  }));
  dart.setGetterSignature(_native_typed_data.NativeTypedData, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeTypedData.__proto__),
    [$buffer]: typed_data.ByteBuffer,
    [$lengthInBytes]: core.int,
    [$offsetInBytes]: core.int,
    [$elementSizeInBytes]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeTypedData, I[59]);
  dart.registerExtension("ArrayBufferView", _native_typed_data.NativeTypedData);
  var Endian__littleEndian = dart.privateName(typed_data, "Endian._littleEndian");
  var _getFloat32 = dart.privateName(_native_typed_data, "_getFloat32");
  var _getFloat64 = dart.privateName(_native_typed_data, "_getFloat64");
  var _getInt16 = dart.privateName(_native_typed_data, "_getInt16");
  var _getInt32 = dart.privateName(_native_typed_data, "_getInt32");
  var _getUint16 = dart.privateName(_native_typed_data, "_getUint16");
  var _getUint32 = dart.privateName(_native_typed_data, "_getUint32");
  var _setFloat32 = dart.privateName(_native_typed_data, "_setFloat32");
  var _setFloat64 = dart.privateName(_native_typed_data, "_setFloat64");
  var _setInt16 = dart.privateName(_native_typed_data, "_setInt16");
  var _setInt32 = dart.privateName(_native_typed_data, "_setInt32");
  var _setUint16 = dart.privateName(_native_typed_data, "_setUint16");
  var _setUint32 = dart.privateName(_native_typed_data, "_setUint32");
  _native_typed_data.NativeByteData = class NativeByteData extends _native_typed_data.NativeTypedData {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 386, 30, "length");
      return _native_typed_data.NativeByteData._create1(_native_typed_data._checkLength(length));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 399, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 399, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      return length == null ? _native_typed_data.NativeByteData._create2(buffer, offsetInBytes) : _native_typed_data.NativeByteData._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.ByteData);
    }
    get [$elementSizeInBytes]() {
      return 1;
    }
    [$getFloat32](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 416, 25, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 416, 45, "endian");
      return this[_getFloat32](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getFloat32](...args) {
      return this.getFloat32.apply(this, args);
    }
    [$getFloat64](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 429, 25, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 429, 45, "endian");
      return this[_getFloat64](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getFloat64](...args) {
      return this.getFloat64.apply(this, args);
    }
    [$getInt16](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 444, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 444, 40, "endian");
      return this[_getInt16](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getInt16](...args) {
      return this.getInt16.apply(this, args);
    }
    [$getInt32](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 459, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 459, 40, "endian");
      return this[_getInt32](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getInt32](...args) {
      return this.getInt32.apply(this, args);
    }
    [$getInt64](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 474, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 474, 40, "endian");
      dart.throw(new core.UnsupportedError.new("Int64 accessor not supported by dart2js."));
    }
    [$getInt8](...args) {
      return this.getInt8.apply(this, args);
    }
    [$getUint16](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 493, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 493, 41, "endian");
      return this[_getUint16](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getUint16](...args) {
      return this.getUint16.apply(this, args);
    }
    [$getUint32](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 507, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 507, 41, "endian");
      return this[_getUint32](byteOffset, dart.equals(typed_data.Endian.little, endian));
    }
    [_getUint32](...args) {
      return this.getUint32.apply(this, args);
    }
    [$getUint64](byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 521, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[58], 521, 41, "endian");
      dart.throw(new core.UnsupportedError.new("Uint64 accessor not supported by dart2js."));
    }
    [$getUint8](...args) {
      return this.getUint8.apply(this, args);
    }
    [$setFloat32](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 548, 23, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 548, 39, "value");
      if (endian == null) dart.nullFailed(I[58], 548, 54, "endian");
      return this[_setFloat32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setFloat32](...args) {
      return this.setFloat32.apply(this, args);
    }
    [$setFloat64](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 560, 23, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 560, 39, "value");
      if (endian == null) dart.nullFailed(I[58], 560, 54, "endian");
      return this[_setFloat64](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setFloat64](...args) {
      return this.setFloat64.apply(this, args);
    }
    [$setInt16](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 573, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 573, 37, "value");
      if (endian == null) dart.nullFailed(I[58], 573, 52, "endian");
      return this[_setInt16](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setInt16](...args) {
      return this.setInt16.apply(this, args);
    }
    [$setInt32](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 586, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 586, 37, "value");
      if (endian == null) dart.nullFailed(I[58], 586, 52, "endian");
      return this[_setInt32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setInt32](...args) {
      return this.setInt32.apply(this, args);
    }
    [$setInt64](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 599, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 599, 37, "value");
      if (endian == null) dart.nullFailed(I[58], 599, 52, "endian");
      dart.throw(new core.UnsupportedError.new("Int64 accessor not supported by dart2js."));
    }
    [$setInt8](...args) {
      return this.setInt8.apply(this, args);
    }
    [$setUint16](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 619, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 619, 38, "value");
      if (endian == null) dart.nullFailed(I[58], 619, 53, "endian");
      return this[_setUint16](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setUint16](...args) {
      return this.setUint16.apply(this, args);
    }
    [$setUint32](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 632, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 632, 38, "value");
      if (endian == null) dart.nullFailed(I[58], 632, 53, "endian");
      return this[_setUint32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
    }
    [_setUint32](...args) {
      return this.setUint32.apply(this, args);
    }
    [$setUint64](byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[58], 645, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[58], 645, 38, "value");
      if (endian == null) dart.nullFailed(I[58], 645, 53, "endian");
      dart.throw(new core.UnsupportedError.new("Uint64 accessor not supported by dart2js."));
    }
    [$setUint8](...args) {
      return this.setUint8.apply(this, args);
    }
    static _create1(arg) {
      return new DataView(new ArrayBuffer(arg));
    }
    static _create2(arg1, arg2) {
      return new DataView(arg1, arg2);
    }
    static _create3(arg1, arg2, arg3) {
      return new DataView(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeByteData);
  dart.addTypeCaches(_native_typed_data.NativeByteData);
  _native_typed_data.NativeByteData[dart.implements] = () => [typed_data.ByteData];
  dart.setMethodSignature(_native_typed_data.NativeByteData, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeByteData.__proto__),
    [$getFloat32]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    [_getFloat32]: dart.fnType(core.double, [core.int], [dart.nullable(core.bool)]),
    [$getFloat64]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    [_getFloat64]: dart.fnType(core.double, [core.int], [dart.nullable(core.bool)]),
    [$getInt16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [_getInt16]: dart.fnType(core.int, [core.int], [dart.nullable(core.bool)]),
    [$getInt32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [_getInt32]: dart.fnType(core.int, [core.int], [dart.nullable(core.bool)]),
    [$getInt64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getInt8]: dart.fnType(core.int, [core.int]),
    [$getUint16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [_getUint16]: dart.fnType(core.int, [core.int], [dart.nullable(core.bool)]),
    [$getUint32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [_getUint32]: dart.fnType(core.int, [core.int], [dart.nullable(core.bool)]),
    [$getUint64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getUint8]: dart.fnType(core.int, [core.int]),
    [$setFloat32]: dart.fnType(dart.void, [core.int, core.num], [typed_data.Endian]),
    [_setFloat32]: dart.fnType(dart.void, [core.int, core.num], [dart.nullable(core.bool)]),
    [$setFloat64]: dart.fnType(dart.void, [core.int, core.num], [typed_data.Endian]),
    [_setFloat64]: dart.fnType(dart.void, [core.int, core.num], [dart.nullable(core.bool)]),
    [$setInt16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [_setInt16]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.bool)]),
    [$setInt32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [_setInt32]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.bool)]),
    [$setInt64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setInt8]: dart.fnType(dart.void, [core.int, core.int]),
    [$setUint16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [_setUint16]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.bool)]),
    [$setUint32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [_setUint32]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.bool)]),
    [$setUint64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setUint8]: dart.fnType(dart.void, [core.int, core.int])
  }));
  dart.setLibraryUri(_native_typed_data.NativeByteData, I[59]);
  dart.registerExtension("DataView", _native_typed_data.NativeByteData);
  var _setRangeFast = dart.privateName(_native_typed_data, "_setRangeFast");
  const _is_NativeTypedArray_default = Symbol('_is_NativeTypedArray_default');
  _native_typed_data.NativeTypedArray$ = dart.generic(E => {
    class NativeTypedArray extends _native_typed_data.NativeTypedData {
      [_setRangeFast](start, end, source, skipCount) {
        if (start == null) dart.nullFailed(I[58], 673, 11, "start");
        if (end == null) dart.nullFailed(I[58], 673, 22, "end");
        if (source == null) dart.nullFailed(I[58], 673, 44, "source");
        if (skipCount == null) dart.nullFailed(I[58], 673, 56, "skipCount");
        let targetLength = this[$length];
        this[_checkPosition](start, targetLength, "start");
        this[_checkPosition](end, targetLength, "end");
        if (dart.notNull(start) > dart.notNull(end)) dart.throw(new core.RangeError.range(start, 0, end));
        let count = dart.notNull(end) - dart.notNull(start);
        if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError.new(skipCount));
        let sourceLength = source[$length];
        if (dart.notNull(sourceLength) - dart.notNull(skipCount) < count) {
          dart.throw(new core.StateError.new("Not enough elements"));
        }
        if (skipCount !== 0 || sourceLength !== count) {
          source = source.subarray(skipCount, dart.notNull(skipCount) + count);
        }
        this.set(source, start);
      }
    }
    (NativeTypedArray.new = function() {
      ;
    }).prototype = NativeTypedArray.prototype;
    dart.addTypeTests(NativeTypedArray);
    NativeTypedArray.prototype[_is_NativeTypedArray_default] = true;
    dart.addTypeCaches(NativeTypedArray);
    NativeTypedArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(E)];
    dart.setMethodSignature(NativeTypedArray, () => ({
      __proto__: dart.getMethods(NativeTypedArray.__proto__),
      [_setRangeFast]: dart.fnType(dart.void, [core.int, core.int, _native_typed_data.NativeTypedArray, core.int])
    }));
    dart.setLibraryUri(NativeTypedArray, I[59]);
    return NativeTypedArray;
  });
  _native_typed_data.NativeTypedArray = _native_typed_data.NativeTypedArray$();
  dart.addTypeTests(_native_typed_data.NativeTypedArray, _is_NativeTypedArray_default);
  core.double = class double extends core.num {
    static is(o) {
      return typeof o == "number";
    }
    static as(o) {
      if (typeof o == "number") return o;
      return dart.as(o, core.double);
    }
    static parse(source, onError = null) {
      if (source == null) dart.nullFailed(I[7], 211, 30, "source");
      let value = core.double.tryParse(source);
      if (value != null) return value;
      if (onError != null) return onError(source);
      dart.throw(new core.FormatException.new("Invalid double", source));
    }
    static tryParse(source) {
      if (source == null) dart.nullFailed(I[7], 220, 34, "source");
      return _js_helper.Primitives.parseDouble(source);
    }
  };
  (core.double.new = function() {
    ;
  }).prototype = core.double.prototype;
  dart.addTypeCaches(core.double);
  dart.setLibraryUri(core.double, I[8]);
  dart.defineLazy(core.double, {
    /*core.double.nan*/get nan() {
      return 0 / 0;
    },
    /*core.double.infinity*/get infinity() {
      return 1 / 0;
    },
    /*core.double.negativeInfinity*/get negativeInfinity() {
      return -1 / 0;
    },
    /*core.double.minPositive*/get minPositive() {
      return 5e-324;
    },
    /*core.double.maxFinite*/get maxFinite() {
      return 1.7976931348623157e+308;
    }
  }, false);
  const NativeTypedArray_ListMixin$36 = class NativeTypedArray_ListMixin extends _native_typed_data.NativeTypedArray$(core.double) {};
  (NativeTypedArray_ListMixin$36.new = function() {
  }).prototype = NativeTypedArray_ListMixin$36.prototype;
  dart.applyMixin(NativeTypedArray_ListMixin$36, collection.ListMixin$(core.double));
  const NativeTypedArray_FixedLengthListMixin$36 = class NativeTypedArray_FixedLengthListMixin extends NativeTypedArray_ListMixin$36 {};
  (NativeTypedArray_FixedLengthListMixin$36.new = function() {
  }).prototype = NativeTypedArray_FixedLengthListMixin$36.prototype;
  dart.applyMixin(NativeTypedArray_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(core.double));
  _native_typed_data.NativeTypedArrayOfDouble = class NativeTypedArrayOfDouble extends NativeTypedArray_FixedLengthListMixin$36 {
    get length() {
      return this.length;
    }
    set length(value) {
      super.length = value;
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[58], 699, 26, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[58], 704, 25, "index");
      core.num.as(value);
      if (value == null) dart.nullFailed(I[58], 704, 36, "value");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      this[index] = value;
      return value$;
    }
    setRange(start, end, iterable, skipCount = 0) {
      if (start == null) dart.nullFailed(I[58], 709, 21, "start");
      if (end == null) dart.nullFailed(I[58], 709, 32, "end");
      T$.IterableOfdouble().as(iterable);
      if (iterable == null) dart.nullFailed(I[58], 709, 54, "iterable");
      if (skipCount == null) dart.nullFailed(I[58], 710, 12, "skipCount");
      if (_native_typed_data.NativeTypedArrayOfDouble.is(iterable)) {
        this[_setRangeFast](start, end, iterable, skipCount);
        return;
      }
      super[$setRange](start, end, iterable, skipCount);
    }
  };
  (_native_typed_data.NativeTypedArrayOfDouble.new = function() {
    ;
  }).prototype = _native_typed_data.NativeTypedArrayOfDouble.prototype;
  dart.addTypeTests(_native_typed_data.NativeTypedArrayOfDouble);
  dart.addTypeCaches(_native_typed_data.NativeTypedArrayOfDouble);
  dart.setMethodSignature(_native_typed_data.NativeTypedArrayOfDouble, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeTypedArrayOfDouble.__proto__),
    _get: dart.fnType(core.double, [core.int]),
    [$_get]: dart.fnType(core.double, [core.int]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeTypedArrayOfDouble, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeTypedArrayOfDouble.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeTypedArrayOfDouble, I[59]);
  dart.defineExtensionMethods(_native_typed_data.NativeTypedArrayOfDouble, ['_get', '_set', 'setRange']);
  dart.defineExtensionAccessors(_native_typed_data.NativeTypedArrayOfDouble, ['length']);
  const NativeTypedArray_ListMixin$36$ = class NativeTypedArray_ListMixin extends _native_typed_data.NativeTypedArray$(core.int) {};
  (NativeTypedArray_ListMixin$36$.new = function() {
  }).prototype = NativeTypedArray_ListMixin$36$.prototype;
  dart.applyMixin(NativeTypedArray_ListMixin$36$, collection.ListMixin$(core.int));
  const NativeTypedArray_FixedLengthListMixin$36$ = class NativeTypedArray_FixedLengthListMixin extends NativeTypedArray_ListMixin$36$ {};
  (NativeTypedArray_FixedLengthListMixin$36$.new = function() {
  }).prototype = NativeTypedArray_FixedLengthListMixin$36$.prototype;
  dart.applyMixin(NativeTypedArray_FixedLengthListMixin$36$, _internal.FixedLengthListMixin$(core.int));
  _native_typed_data.NativeTypedArrayOfInt = class NativeTypedArrayOfInt extends NativeTypedArray_FixedLengthListMixin$36$ {
    get length() {
      return this.length;
    }
    set length(value) {
      super.length = value;
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[58], 727, 25, "index");
      core.int.as(value);
      if (value == null) dart.nullFailed(I[58], 727, 36, "value");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      this[index] = value;
      return value$;
    }
    setRange(start, end, iterable, skipCount = 0) {
      if (start == null) dart.nullFailed(I[58], 732, 21, "start");
      if (end == null) dart.nullFailed(I[58], 732, 32, "end");
      T$.IterableOfint().as(iterable);
      if (iterable == null) dart.nullFailed(I[58], 732, 51, "iterable");
      if (skipCount == null) dart.nullFailed(I[58], 733, 12, "skipCount");
      if (_native_typed_data.NativeTypedArrayOfInt.is(iterable)) {
        this[_setRangeFast](start, end, iterable, skipCount);
        return;
      }
      super[$setRange](start, end, iterable, skipCount);
    }
  };
  (_native_typed_data.NativeTypedArrayOfInt.new = function() {
    ;
  }).prototype = _native_typed_data.NativeTypedArrayOfInt.prototype;
  _native_typed_data.NativeTypedArrayOfInt.prototype[dart.isList] = true;
  dart.addTypeTests(_native_typed_data.NativeTypedArrayOfInt);
  dart.addTypeCaches(_native_typed_data.NativeTypedArrayOfInt);
  _native_typed_data.NativeTypedArrayOfInt[dart.implements] = () => [core.List$(core.int)];
  dart.setMethodSignature(_native_typed_data.NativeTypedArrayOfInt, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeTypedArrayOfInt.__proto__),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(_native_typed_data.NativeTypedArrayOfInt, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeTypedArrayOfInt.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeTypedArrayOfInt, I[59]);
  dart.defineExtensionMethods(_native_typed_data.NativeTypedArrayOfInt, ['_set', 'setRange']);
  dart.defineExtensionAccessors(_native_typed_data.NativeTypedArrayOfInt, ['length']);
  _native_typed_data.NativeFloat32List = class NativeFloat32List extends _native_typed_data.NativeTypedArrayOfDouble {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 745, 33, "length");
      return _native_typed_data.NativeFloat32List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 747, 51, "elements");
      return _native_typed_data.NativeFloat32List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 751, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 751, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 4)[$truncate]() : null;
      return _native_typed_data.NativeFloat32List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Float32List);
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 760, 27, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeFloat32List._create1(source);
    }
    static _create1(arg) {
      return new Float32Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Float32Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeFloat32List);
  dart.addTypeCaches(_native_typed_data.NativeFloat32List);
  _native_typed_data.NativeFloat32List[dart.implements] = () => [typed_data.Float32List];
  dart.setMethodSignature(_native_typed_data.NativeFloat32List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat32List.__proto__),
    [$sublist]: dart.fnType(typed_data.Float32List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat32List, I[59]);
  dart.registerExtension("Float32Array", _native_typed_data.NativeFloat32List);
  _native_typed_data.NativeFloat64List = class NativeFloat64List extends _native_typed_data.NativeTypedArrayOfDouble {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 777, 33, "length");
      return _native_typed_data.NativeFloat64List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 779, 51, "elements");
      return _native_typed_data.NativeFloat64List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 783, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 783, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 8)[$truncate]() : null;
      return _native_typed_data.NativeFloat64List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Float64List);
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 792, 27, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeFloat64List._create1(source);
    }
    static _create1(arg) {
      return new Float64Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Float64Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeFloat64List);
  dart.addTypeCaches(_native_typed_data.NativeFloat64List);
  _native_typed_data.NativeFloat64List[dart.implements] = () => [typed_data.Float64List];
  dart.setMethodSignature(_native_typed_data.NativeFloat64List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat64List.__proto__),
    [$sublist]: dart.fnType(typed_data.Float64List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat64List, I[59]);
  dart.registerExtension("Float64Array", _native_typed_data.NativeFloat64List);
  _native_typed_data.NativeInt16List = class NativeInt16List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 807, 31, "length");
      return _native_typed_data.NativeInt16List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 809, 46, "elements");
      return _native_typed_data.NativeInt16List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 813, 24, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 813, 36, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 2)[$truncate]() : null;
      return _native_typed_data.NativeInt16List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Int16List);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 822, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 827, 25, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeInt16List._create1(source);
    }
    static _create1(arg) {
      return new Int16Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Int16Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeInt16List);
  dart.addTypeCaches(_native_typed_data.NativeInt16List);
  _native_typed_data.NativeInt16List[dart.implements] = () => [typed_data.Int16List];
  dart.setMethodSignature(_native_typed_data.NativeInt16List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeInt16List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Int16List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeInt16List, I[59]);
  dart.registerExtension("Int16Array", _native_typed_data.NativeInt16List);
  _native_typed_data.NativeInt32List = class NativeInt32List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 842, 31, "length");
      return _native_typed_data.NativeInt32List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 844, 46, "elements");
      return _native_typed_data.NativeInt32List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 848, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 848, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 4)[$truncate]() : null;
      return _native_typed_data.NativeInt32List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Int32List);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 857, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 862, 25, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeInt32List._create1(source);
    }
    static _create1(arg) {
      return new Int32Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Int32Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeInt32List);
  dart.addTypeCaches(_native_typed_data.NativeInt32List);
  _native_typed_data.NativeInt32List[dart.implements] = () => [typed_data.Int32List];
  dart.setMethodSignature(_native_typed_data.NativeInt32List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeInt32List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Int32List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeInt32List, I[59]);
  dart.registerExtension("Int32Array", _native_typed_data.NativeInt32List);
  _native_typed_data.NativeInt8List = class NativeInt8List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 878, 30, "length");
      return _native_typed_data.NativeInt8List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 880, 45, "elements");
      return _native_typed_data.NativeInt8List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 884, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 884, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      return length == null ? _native_typed_data.NativeInt8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt8List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Int8List);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 893, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 898, 24, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeInt8List._create1(source);
    }
    static _create1(arg) {
      return new Int8Array(arg);
    }
    static _create2(arg1, arg2) {
      return new Int8Array(arg1, arg2);
    }
    static _create3(arg1, arg2, arg3) {
      return new Int8Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeInt8List);
  dart.addTypeCaches(_native_typed_data.NativeInt8List);
  _native_typed_data.NativeInt8List[dart.implements] = () => [typed_data.Int8List];
  dart.setMethodSignature(_native_typed_data.NativeInt8List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeInt8List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Int8List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeInt8List, I[59]);
  dart.registerExtension("Int8Array", _native_typed_data.NativeInt8List);
  _native_typed_data.NativeUint16List = class NativeUint16List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 916, 32, "length");
      return _native_typed_data.NativeUint16List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(list) {
      if (list == null) dart.nullFailed(I[58], 918, 47, "list");
      return _native_typed_data.NativeUint16List._create1(_native_typed_data._ensureNativeList(list));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 922, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 922, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 2)[$truncate]() : null;
      return _native_typed_data.NativeUint16List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Uint16List);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 931, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 936, 26, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeUint16List._create1(source);
    }
    static _create1(arg) {
      return new Uint16Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Uint16Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeUint16List);
  dart.addTypeCaches(_native_typed_data.NativeUint16List);
  _native_typed_data.NativeUint16List[dart.implements] = () => [typed_data.Uint16List];
  dart.setMethodSignature(_native_typed_data.NativeUint16List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeUint16List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Uint16List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeUint16List, I[59]);
  dart.registerExtension("Uint16Array", _native_typed_data.NativeUint16List);
  _native_typed_data.NativeUint32List = class NativeUint32List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 952, 32, "length");
      return _native_typed_data.NativeUint32List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 954, 47, "elements");
      return _native_typed_data.NativeUint32List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 958, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 958, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      length == null ? length = ((dart.notNull(buffer[$lengthInBytes]) - dart.notNull(offsetInBytes)) / 4)[$truncate]() : null;
      return _native_typed_data.NativeUint32List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Uint32List);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 967, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 972, 26, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeUint32List._create1(source);
    }
    static _create1(arg) {
      return new Uint32Array(arg);
    }
    static _create3(arg1, arg2, arg3) {
      return new Uint32Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeUint32List);
  dart.addTypeCaches(_native_typed_data.NativeUint32List);
  _native_typed_data.NativeUint32List[dart.implements] = () => [typed_data.Uint32List];
  dart.setMethodSignature(_native_typed_data.NativeUint32List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeUint32List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Uint32List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeUint32List, I[59]);
  dart.registerExtension("Uint32Array", _native_typed_data.NativeUint32List);
  _native_typed_data.NativeUint8ClampedList = class NativeUint8ClampedList extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 989, 38, "length");
      return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 991, 53, "elements");
      return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 995, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 995, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      return length == null ? _native_typed_data.NativeUint8ClampedList._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8ClampedList._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Uint8ClampedList);
    }
    get [$length]() {
      return this.length;
    }
    set [$length](value) {
      super[$length] = value;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 1006, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 1011, 32, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeUint8ClampedList._create1(source);
    }
    static _create1(arg) {
      return new Uint8ClampedArray(arg);
    }
    static _create2(arg1, arg2) {
      return new Uint8ClampedArray(arg1, arg2);
    }
    static _create3(arg1, arg2, arg3) {
      return new Uint8ClampedArray(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeUint8ClampedList);
  dart.addTypeCaches(_native_typed_data.NativeUint8ClampedList);
  _native_typed_data.NativeUint8ClampedList[dart.implements] = () => [typed_data.Uint8ClampedList];
  dart.setMethodSignature(_native_typed_data.NativeUint8ClampedList, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeUint8ClampedList.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Uint8ClampedList, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeUint8ClampedList, I[59]);
  dart.registerExtension("Uint8ClampedArray", _native_typed_data.NativeUint8ClampedList);
  dart.registerExtension("CanvasPixelArray", _native_typed_data.NativeUint8ClampedList);
  _native_typed_data.NativeUint8List = class NativeUint8List extends _native_typed_data.NativeTypedArrayOfInt {
    static new(length) {
      if (length == null) dart.nullFailed(I[58], 1039, 31, "length");
      return _native_typed_data.NativeUint8List._create1(_native_typed_data._checkLength(length));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[58], 1041, 46, "elements");
      return _native_typed_data.NativeUint8List._create1(_native_typed_data._ensureNativeList(elements));
    }
    static view(buffer, offsetInBytes, length) {
      if (buffer == null) dart.nullFailed(I[58], 1045, 18, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[58], 1045, 30, "offsetInBytes");
      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
      return length == null ? _native_typed_data.NativeUint8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8List._create3(buffer, offsetInBytes, length);
    }
    get [$runtimeType]() {
      return dart.wrapType(typed_data.Uint8List);
    }
    get [$length]() {
      return this.length;
    }
    set [$length](value) {
      super[$length] = value;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[58], 1056, 23, "index");
      _native_typed_data._checkValidIndex(index, this, this[$length]);
      return this[index];
    }
    [$sublist](start, end = null) {
      if (start == null) dart.nullFailed(I[58], 1061, 25, "start");
      let stop = _native_typed_data._checkValidRange(start, end, this[$length]);
      let source = this.subarray(start, stop);
      return _native_typed_data.NativeUint8List._create1(source);
    }
    static _create1(arg) {
      return new Uint8Array(arg);
    }
    static _create2(arg1, arg2) {
      return new Uint8Array(arg1, arg2);
    }
    static _create3(arg1, arg2, arg3) {
      return new Uint8Array(arg1, arg2, arg3);
    }
  };
  dart.addTypeTests(_native_typed_data.NativeUint8List);
  dart.addTypeCaches(_native_typed_data.NativeUint8List);
  _native_typed_data.NativeUint8List[dart.implements] = () => [typed_data.Uint8List];
  dart.setMethodSignature(_native_typed_data.NativeUint8List, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeUint8List.__proto__),
    [$_get]: dart.fnType(core.int, [core.int]),
    [$sublist]: dart.fnType(typed_data.Uint8List, [core.int], [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(_native_typed_data.NativeUint8List, I[59]);
  dart.registerExtension("Uint8Array", _native_typed_data.NativeUint8List);
  var x$ = dart.privateName(_native_typed_data, "NativeFloat32x4.x");
  var y$ = dart.privateName(_native_typed_data, "NativeFloat32x4.y");
  var z$ = dart.privateName(_native_typed_data, "NativeFloat32x4.z");
  var w$ = dart.privateName(_native_typed_data, "NativeFloat32x4.w");
  _native_typed_data.NativeFloat32x4 = class NativeFloat32x4 extends core.Object {
    get x() {
      return this[x$];
    }
    set x(value) {
      super.x = value;
    }
    get y() {
      return this[y$];
    }
    set y(value) {
      super.y = value;
    }
    get z() {
      return this[z$];
    }
    set z(value) {
      super.z = value;
    }
    get w() {
      return this[w$];
    }
    set w(value) {
      super.w = value;
    }
    static _truncate(x) {
      _native_typed_data.NativeFloat32x4._list[$_set](0, core.num.as(x));
      return _native_typed_data.NativeFloat32x4._list[$_get](0);
    }
    static fromInt32x4Bits(i) {
      if (i == null) dart.nullFailed(I[58], 1112, 51, "i");
      _native_typed_data.NativeFloat32x4._uint32view[$_set](0, i.x);
      _native_typed_data.NativeFloat32x4._uint32view[$_set](1, i.y);
      _native_typed_data.NativeFloat32x4._uint32view[$_set](2, i.z);
      _native_typed_data.NativeFloat32x4._uint32view[$_set](3, i.w);
      return new _native_typed_data.NativeFloat32x4._truncated(_native_typed_data.NativeFloat32x4._list[$_get](0), _native_typed_data.NativeFloat32x4._list[$_get](1), _native_typed_data.NativeFloat32x4._list[$_get](2), _native_typed_data.NativeFloat32x4._list[$_get](3));
    }
    toString() {
      return "[" + dart.str(this.x) + ", " + dart.str(this.y) + ", " + dart.str(this.z) + ", " + dart.str(this.w) + "]";
    }
    ['+'](other) {
      if (other == null) dart.nullFailed(I[58], 1144, 34, "other");
      let _x = dart.notNull(this.x) + dart.notNull(other.x);
      let _y = dart.notNull(this.y) + dart.notNull(other.y);
      let _z = dart.notNull(this.z) + dart.notNull(other.z);
      let _w = dart.notNull(this.w) + dart.notNull(other.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    _negate() {
      return new _native_typed_data.NativeFloat32x4._truncated(-dart.notNull(this.x), -dart.notNull(this.y), -dart.notNull(this.z), -dart.notNull(this.w));
    }
    ['-'](other) {
      if (other == null) dart.nullFailed(I[58], 1158, 34, "other");
      let _x = dart.notNull(this.x) - dart.notNull(other.x);
      let _y = dart.notNull(this.y) - dart.notNull(other.y);
      let _z = dart.notNull(this.z) - dart.notNull(other.z);
      let _w = dart.notNull(this.w) - dart.notNull(other.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    ['*'](other) {
      if (other == null) dart.nullFailed(I[58], 1167, 34, "other");
      let _x = dart.notNull(this.x) * dart.notNull(other.x);
      let _y = dart.notNull(this.y) * dart.notNull(other.y);
      let _z = dart.notNull(this.z) * dart.notNull(other.z);
      let _w = dart.notNull(this.w) * dart.notNull(other.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    ['/'](other) {
      if (other == null) dart.nullFailed(I[58], 1176, 34, "other");
      let _x = dart.notNull(this.x) / dart.notNull(other.x);
      let _y = dart.notNull(this.y) / dart.notNull(other.y);
      let _z = dart.notNull(this.z) / dart.notNull(other.z);
      let _w = dart.notNull(this.w) / dart.notNull(other.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    lessThan(other) {
      if (other == null) dart.nullFailed(I[58], 1185, 30, "other");
      let _cx = dart.notNull(this.x) < dart.notNull(other.x);
      let _cy = dart.notNull(this.y) < dart.notNull(other.y);
      let _cz = dart.notNull(this.z) < dart.notNull(other.z);
      let _cw = dart.notNull(this.w) < dart.notNull(other.w);
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    lessThanOrEqual(other) {
      if (other == null) dart.nullFailed(I[58], 1195, 37, "other");
      let _cx = dart.notNull(this.x) <= dart.notNull(other.x);
      let _cy = dart.notNull(this.y) <= dart.notNull(other.y);
      let _cz = dart.notNull(this.z) <= dart.notNull(other.z);
      let _cw = dart.notNull(this.w) <= dart.notNull(other.w);
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    greaterThan(other) {
      if (other == null) dart.nullFailed(I[58], 1205, 33, "other");
      let _cx = dart.notNull(this.x) > dart.notNull(other.x);
      let _cy = dart.notNull(this.y) > dart.notNull(other.y);
      let _cz = dart.notNull(this.z) > dart.notNull(other.z);
      let _cw = dart.notNull(this.w) > dart.notNull(other.w);
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    greaterThanOrEqual(other) {
      if (other == null) dart.nullFailed(I[58], 1215, 40, "other");
      let _cx = dart.notNull(this.x) >= dart.notNull(other.x);
      let _cy = dart.notNull(this.y) >= dart.notNull(other.y);
      let _cz = dart.notNull(this.z) >= dart.notNull(other.z);
      let _cw = dart.notNull(this.w) >= dart.notNull(other.w);
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    equal(other) {
      if (other == null) dart.nullFailed(I[58], 1225, 27, "other");
      let _cx = this.x == other.x;
      let _cy = this.y == other.y;
      let _cz = this.z == other.z;
      let _cw = this.w == other.w;
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    notEqual(other) {
      if (other == null) dart.nullFailed(I[58], 1235, 30, "other");
      let _cx = this.x != other.x;
      let _cy = this.y != other.y;
      let _cz = this.z != other.z;
      let _cw = this.w != other.w;
      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
    }
    scale(s) {
      if (s == null) dart.nullFailed(I[58], 1245, 26, "s");
      let _x = dart.notNull(s) * dart.notNull(this.x);
      let _y = dart.notNull(s) * dart.notNull(this.y);
      let _z = dart.notNull(s) * dart.notNull(this.z);
      let _w = dart.notNull(s) * dart.notNull(this.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    abs() {
      let _x = this.x[$abs]();
      let _y = this.y[$abs]();
      let _z = this.z[$abs]();
      let _w = this.w[$abs]();
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    clamp(lowerLimit, upperLimit) {
      if (lowerLimit == null) dart.nullFailed(I[58], 1263, 29, "lowerLimit");
      if (upperLimit == null) dart.nullFailed(I[58], 1263, 51, "upperLimit");
      let _lx = lowerLimit.x;
      let _ly = lowerLimit.y;
      let _lz = lowerLimit.z;
      let _lw = lowerLimit.w;
      let _ux = upperLimit.x;
      let _uy = upperLimit.y;
      let _uz = upperLimit.z;
      let _uw = upperLimit.w;
      let _x = this.x;
      let _y = this.y;
      let _z = this.z;
      let _w = this.w;
      _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
      _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
      _z = dart.notNull(_z) > dart.notNull(_uz) ? _uz : _z;
      _w = dart.notNull(_w) > dart.notNull(_uw) ? _uw : _w;
      _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
      _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
      _z = dart.notNull(_z) < dart.notNull(_lz) ? _lz : _z;
      _w = dart.notNull(_w) < dart.notNull(_lw) ? _lw : _w;
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    get signMask() {
      let view = _native_typed_data.NativeFloat32x4._uint32view;
      let mx = null;
      let my = null;
      let mz = null;
      let mw = null;
      _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
      _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
      _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
      _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
      mx = (dart.notNull(view[$_get](0)) & 2147483648) >>> 31;
      my = (dart.notNull(view[$_get](1)) & 2147483648) >>> 30;
      mz = (dart.notNull(view[$_get](2)) & 2147483648) >>> 29;
      mw = (dart.notNull(view[$_get](3)) & 2147483648) >>> 28;
      return core.int.as(dart.dsend(dart.dsend(dart.dsend(mx, '|', [my]), '|', [mz]), '|', [mw]));
    }
    shuffle(mask) {
      if (mask == null) dart.nullFailed(I[58], 1305, 25, "mask");
      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
      }
      _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
      _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
      _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
      _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
      let _x = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) & 3);
      let _y = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
      let _z = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
      let _w = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    shuffleMix(other, mask) {
      if (other == null) dart.nullFailed(I[58], 1324, 34, "other");
      if (mask == null) dart.nullFailed(I[58], 1324, 45, "mask");
      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
      }
      _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
      _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
      _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
      _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
      let _x = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) & 3);
      let _y = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
      _native_typed_data.NativeFloat32x4._list[$_set](0, other.x);
      _native_typed_data.NativeFloat32x4._list[$_set](1, other.y);
      _native_typed_data.NativeFloat32x4._list[$_set](2, other.z);
      _native_typed_data.NativeFloat32x4._list[$_set](3, other.w);
      let _z = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
      let _w = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    withX(newX) {
      if (newX == null) dart.nullFailed(I[58], 1345, 26, "newX");
      core.ArgumentError.checkNotNull(core.double, newX);
      return new _native_typed_data.NativeFloat32x4._truncated(core.double.as(_native_typed_data.NativeFloat32x4._truncate(newX)), this.y, this.z, this.w);
    }
    withY(newY) {
      if (newY == null) dart.nullFailed(I[58], 1351, 26, "newY");
      core.ArgumentError.checkNotNull(core.double, newY);
      return new _native_typed_data.NativeFloat32x4._truncated(this.x, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newY)), this.z, this.w);
    }
    withZ(newZ) {
      if (newZ == null) dart.nullFailed(I[58], 1357, 26, "newZ");
      core.ArgumentError.checkNotNull(core.double, newZ);
      return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newZ)), this.w);
    }
    withW(newW) {
      if (newW == null) dart.nullFailed(I[58], 1363, 26, "newW");
      core.ArgumentError.checkNotNull(core.double, newW);
      return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, this.z, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newW)));
    }
    min(other) {
      if (other == null) dart.nullFailed(I[58], 1369, 27, "other");
      let _x = dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x;
      let _y = dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y;
      let _z = dart.notNull(this.z) < dart.notNull(other.z) ? this.z : other.z;
      let _w = dart.notNull(this.w) < dart.notNull(other.w) ? this.w : other.w;
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    max(other) {
      if (other == null) dart.nullFailed(I[58], 1378, 27, "other");
      let _x = dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x;
      let _y = dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y;
      let _z = dart.notNull(this.z) > dart.notNull(other.z) ? this.z : other.z;
      let _w = dart.notNull(this.w) > dart.notNull(other.w) ? this.w : other.w;
      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
    }
    sqrt() {
      let _x = math.sqrt(this.x);
      let _y = math.sqrt(this.y);
      let _z = math.sqrt(this.z);
      let _w = math.sqrt(this.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    reciprocal() {
      let _x = 1.0 / dart.notNull(this.x);
      let _y = 1.0 / dart.notNull(this.y);
      let _z = 1.0 / dart.notNull(this.z);
      let _w = 1.0 / dart.notNull(this.w);
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
    reciprocalSqrt() {
      let _x = math.sqrt(1.0 / dart.notNull(this.x));
      let _y = math.sqrt(1.0 / dart.notNull(this.y));
      let _z = math.sqrt(1.0 / dart.notNull(this.z));
      let _w = math.sqrt(1.0 / dart.notNull(this.w));
      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
    }
  };
  (_native_typed_data.NativeFloat32x4.new = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1095, 26, "x");
    if (y == null) dart.nullFailed(I[58], 1095, 36, "y");
    if (z == null) dart.nullFailed(I[58], 1095, 46, "z");
    if (w == null) dart.nullFailed(I[58], 1095, 56, "w");
    this[x$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(x));
    this[y$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(y));
    this[z$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(z));
    this[w$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(w));
    if (!(typeof x == 'number')) dart.throw(new core.ArgumentError.new(x));
    if (!(typeof y == 'number')) dart.throw(new core.ArgumentError.new(y));
    if (!(typeof z == 'number')) dart.throw(new core.ArgumentError.new(z));
    if (!(typeof w == 'number')) dart.throw(new core.ArgumentError.new(w));
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  (_native_typed_data.NativeFloat32x4.splat = function(v) {
    if (v == null) dart.nullFailed(I[58], 1108, 32, "v");
    _native_typed_data.NativeFloat32x4.new.call(this, v, v, v, v);
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  (_native_typed_data.NativeFloat32x4.zero = function() {
    _native_typed_data.NativeFloat32x4._truncated.call(this, 0.0, 0.0, 0.0, 0.0);
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  (_native_typed_data.NativeFloat32x4.fromFloat64x2 = function(v) {
    if (v == null) dart.nullFailed(I[58], 1120, 43, "v");
    _native_typed_data.NativeFloat32x4._truncated.call(this, core.double.as(_native_typed_data.NativeFloat32x4._truncate(v.x)), core.double.as(_native_typed_data.NativeFloat32x4._truncate(v.y)), 0.0, 0.0);
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  (_native_typed_data.NativeFloat32x4._doubles = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1126, 35, "x");
    if (y == null) dart.nullFailed(I[58], 1126, 45, "y");
    if (z == null) dart.nullFailed(I[58], 1126, 55, "z");
    if (w == null) dart.nullFailed(I[58], 1126, 65, "w");
    this[x$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(x));
    this[y$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(y));
    this[z$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(z));
    this[w$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(w));
    ;
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  (_native_typed_data.NativeFloat32x4._truncated = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1137, 35, "x");
    if (y == null) dart.nullFailed(I[58], 1137, 43, "y");
    if (z == null) dart.nullFailed(I[58], 1137, 51, "z");
    if (w == null) dart.nullFailed(I[58], 1137, 59, "w");
    this[x$] = x;
    this[y$] = y;
    this[z$] = z;
    this[w$] = w;
    ;
  }).prototype = _native_typed_data.NativeFloat32x4.prototype;
  dart.addTypeTests(_native_typed_data.NativeFloat32x4);
  dart.addTypeCaches(_native_typed_data.NativeFloat32x4);
  _native_typed_data.NativeFloat32x4[dart.implements] = () => [typed_data.Float32x4];
  dart.setMethodSignature(_native_typed_data.NativeFloat32x4, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat32x4.__proto__),
    '+': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    _negate: dart.fnType(typed_data.Float32x4, []),
    '-': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    '*': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    '/': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    lessThan: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    lessThanOrEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    greaterThan: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    greaterThanOrEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    equal: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    notEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
    scale: dart.fnType(typed_data.Float32x4, [core.double]),
    abs: dart.fnType(typed_data.Float32x4, []),
    clamp: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4]),
    shuffle: dart.fnType(typed_data.Float32x4, [core.int]),
    shuffleMix: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, core.int]),
    withX: dart.fnType(typed_data.Float32x4, [core.double]),
    withY: dart.fnType(typed_data.Float32x4, [core.double]),
    withZ: dart.fnType(typed_data.Float32x4, [core.double]),
    withW: dart.fnType(typed_data.Float32x4, [core.double]),
    min: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    max: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
    sqrt: dart.fnType(typed_data.Float32x4, []),
    reciprocal: dart.fnType(typed_data.Float32x4, []),
    reciprocalSqrt: dart.fnType(typed_data.Float32x4, [])
  }));
  dart.setGetterSignature(_native_typed_data.NativeFloat32x4, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeFloat32x4.__proto__),
    signMask: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat32x4, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeFloat32x4, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeFloat32x4.__proto__),
    x: dart.finalFieldType(core.double),
    y: dart.finalFieldType(core.double),
    z: dart.finalFieldType(core.double),
    w: dart.finalFieldType(core.double)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeFloat32x4, ['toString']);
  dart.defineLazy(_native_typed_data.NativeFloat32x4, {
    /*_native_typed_data.NativeFloat32x4._list*/get _list() {
      return _native_typed_data.NativeFloat32List.new(4);
    },
    /*_native_typed_data.NativeFloat32x4._uint32view*/get _uint32view() {
      return _native_typed_data.NativeFloat32x4._list.buffer[$asUint32List]();
    }
  }, false);
  var x$0 = dart.privateName(_native_typed_data, "NativeInt32x4.x");
  var y$0 = dart.privateName(_native_typed_data, "NativeInt32x4.y");
  var z$0 = dart.privateName(_native_typed_data, "NativeInt32x4.z");
  var w$0 = dart.privateName(_native_typed_data, "NativeInt32x4.w");
  _native_typed_data.NativeInt32x4 = class NativeInt32x4 extends core.Object {
    get x() {
      return this[x$0];
    }
    set x(value) {
      super.x = value;
    }
    get y() {
      return this[y$0];
    }
    set y(value) {
      super.y = value;
    }
    get z() {
      return this[z$0];
    }
    set z(value) {
      super.z = value;
    }
    get w() {
      return this[w$0];
    }
    set w(value) {
      super.w = value;
    }
    static _truncate(x) {
      _native_typed_data.NativeInt32x4._list[$_set](0, core.int.as(x));
      return _native_typed_data.NativeInt32x4._list[$_get](0);
    }
    static fromFloat32x4Bits(f) {
      if (f == null) dart.nullFailed(I[58], 1448, 53, "f");
      let floatList = _native_typed_data.NativeFloat32x4._list;
      floatList[$_set](0, f.x);
      floatList[$_set](1, f.y);
      floatList[$_set](2, f.z);
      floatList[$_set](3, f.w);
      let view = floatList.buffer[$asInt32List]();
      return new _native_typed_data.NativeInt32x4._truncated(view[$_get](0), view[$_get](1), view[$_get](2), view[$_get](3));
    }
    toString() {
      return "[" + dart.str(this.x) + ", " + dart.str(this.y) + ", " + dart.str(this.z) + ", " + dart.str(this.w) + "]";
    }
    ['|'](other) {
      if (other == null) dart.nullFailed(I[58], 1463, 30, "other");
      return new _native_typed_data.NativeInt32x4._truncated(this.x | other.x, this.y | other.y, this.z | other.z, this.w | other.w);
    }
    ['&'](other) {
      if (other == null) dart.nullFailed(I[58], 1474, 30, "other");
      return new _native_typed_data.NativeInt32x4._truncated(this.x & other.x, this.y & other.y, this.z & other.z, this.w & other.w);
    }
    ['^'](other) {
      if (other == null) dart.nullFailed(I[58], 1485, 30, "other");
      return new _native_typed_data.NativeInt32x4._truncated(this.x ^ other.x, this.y ^ other.y, this.z ^ other.z, this.w ^ other.w);
    }
    ['+'](other) {
      if (other == null) dart.nullFailed(I[58], 1495, 30, "other");
      return new _native_typed_data.NativeInt32x4._truncated(this.x + other.x | 0, this.y + other.y | 0, this.z + other.z | 0, this.w + other.w | 0);
    }
    ['-'](other) {
      if (other == null) dart.nullFailed(I[58], 1504, 30, "other");
      return new _native_typed_data.NativeInt32x4._truncated(this.x - other.x | 0, this.y - other.y | 0, this.z - other.z | 0, this.w - other.w | 0);
    }
    _negate() {
      return new _native_typed_data.NativeInt32x4._truncated(-this.x | 0, -this.y | 0, -this.z | 0, -this.w | 0);
    }
    get signMask() {
      let mx = (dart.notNull(this.x) & 2147483648) >>> 31;
      let my = (dart.notNull(this.y) & 2147483648) >>> 31;
      let mz = (dart.notNull(this.z) & 2147483648) >>> 31;
      let mw = (dart.notNull(this.w) & 2147483648) >>> 31;
      return (mx | my << 1 >>> 0 | mz << 2 >>> 0 | mw << 3 >>> 0) >>> 0;
    }
    shuffle(mask) {
      if (mask == null) dart.nullFailed(I[58], 1532, 23, "mask");
      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
      }
      _native_typed_data.NativeInt32x4._list[$_set](0, this.x);
      _native_typed_data.NativeInt32x4._list[$_set](1, this.y);
      _native_typed_data.NativeInt32x4._list[$_set](2, this.z);
      _native_typed_data.NativeInt32x4._list[$_set](3, this.w);
      let _x = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) & 3);
      let _y = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
      let _z = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
      let _w = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
    }
    shuffleMix(other, mask) {
      if (other == null) dart.nullFailed(I[58], 1550, 30, "other");
      if (mask == null) dart.nullFailed(I[58], 1550, 41, "mask");
      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
      }
      _native_typed_data.NativeInt32x4._list[$_set](0, this.x);
      _native_typed_data.NativeInt32x4._list[$_set](1, this.y);
      _native_typed_data.NativeInt32x4._list[$_set](2, this.z);
      _native_typed_data.NativeInt32x4._list[$_set](3, this.w);
      let _x = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) & 3);
      let _y = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
      _native_typed_data.NativeInt32x4._list[$_set](0, other.x);
      _native_typed_data.NativeInt32x4._list[$_set](1, other.y);
      _native_typed_data.NativeInt32x4._list[$_set](2, other.z);
      _native_typed_data.NativeInt32x4._list[$_set](3, other.w);
      let _z = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
      let _w = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
    }
    withX(x) {
      if (x == null) dart.nullFailed(I[58], 1571, 21, "x");
      core.ArgumentError.checkNotNull(core.int, x);
      let _x = core.int.as(_native_typed_data.NativeInt32x4._truncate(x));
      return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
    }
    withY(y) {
      if (y == null) dart.nullFailed(I[58], 1578, 21, "y");
      core.ArgumentError.checkNotNull(core.int, y);
      let _y = core.int.as(_native_typed_data.NativeInt32x4._truncate(y));
      return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
    }
    withZ(z) {
      if (z == null) dart.nullFailed(I[58], 1585, 21, "z");
      core.ArgumentError.checkNotNull(core.int, z);
      let _z = core.int.as(_native_typed_data.NativeInt32x4._truncate(z));
      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
    }
    withW(w) {
      if (w == null) dart.nullFailed(I[58], 1592, 21, "w");
      core.ArgumentError.checkNotNull(core.int, w);
      let _w = core.int.as(_native_typed_data.NativeInt32x4._truncate(w));
      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
    }
    get flagX() {
      return this.x !== 0;
    }
    get flagY() {
      return this.y !== 0;
    }
    get flagZ() {
      return this.z !== 0;
    }
    get flagW() {
      return this.w !== 0;
    }
    withFlagX(flagX) {
      if (flagX == null) dart.nullFailed(I[58], 1611, 26, "flagX");
      let _x = dart.test(flagX) ? -1 : 0;
      return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
    }
    withFlagY(flagY) {
      if (flagY == null) dart.nullFailed(I[58], 1617, 26, "flagY");
      let _y = dart.test(flagY) ? -1 : 0;
      return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
    }
    withFlagZ(flagZ) {
      if (flagZ == null) dart.nullFailed(I[58], 1623, 26, "flagZ");
      let _z = dart.test(flagZ) ? -1 : 0;
      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
    }
    withFlagW(flagW) {
      if (flagW == null) dart.nullFailed(I[58], 1629, 26, "flagW");
      let _w = dart.test(flagW) ? -1 : 0;
      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
    }
    select(trueValue, falseValue) {
      if (trueValue == null) dart.nullFailed(I[58], 1637, 30, "trueValue");
      if (falseValue == null) dart.nullFailed(I[58], 1637, 51, "falseValue");
      let floatList = _native_typed_data.NativeFloat32x4._list;
      let intView = _native_typed_data.NativeFloat32x4._uint32view;
      floatList[$_set](0, trueValue.x);
      floatList[$_set](1, trueValue.y);
      floatList[$_set](2, trueValue.z);
      floatList[$_set](3, trueValue.w);
      let stx = intView[$_get](0);
      let sty = intView[$_get](1);
      let stz = intView[$_get](2);
      let stw = intView[$_get](3);
      floatList[$_set](0, falseValue.x);
      floatList[$_set](1, falseValue.y);
      floatList[$_set](2, falseValue.z);
      floatList[$_set](3, falseValue.w);
      let sfx = intView[$_get](0);
      let sfy = intView[$_get](1);
      let sfz = intView[$_get](2);
      let sfw = intView[$_get](3);
      let _x = (dart.notNull(this.x) & dart.notNull(stx) | (~dart.notNull(this.x) & dart.notNull(sfx)) >>> 0) >>> 0;
      let _y = (dart.notNull(this.y) & dart.notNull(sty) | (~dart.notNull(this.y) & dart.notNull(sfy)) >>> 0) >>> 0;
      let _z = (dart.notNull(this.z) & dart.notNull(stz) | (~dart.notNull(this.z) & dart.notNull(sfz)) >>> 0) >>> 0;
      let _w = (dart.notNull(this.w) & dart.notNull(stw) | (~dart.notNull(this.w) & dart.notNull(sfw)) >>> 0) >>> 0;
      intView[$_set](0, _x);
      intView[$_set](1, _y);
      intView[$_set](2, _z);
      intView[$_set](3, _w);
      return new _native_typed_data.NativeFloat32x4._truncated(floatList[$_get](0), floatList[$_get](1), floatList[$_get](2), floatList[$_get](3));
    }
  };
  (_native_typed_data.NativeInt32x4.new = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1430, 21, "x");
    if (y == null) dart.nullFailed(I[58], 1430, 28, "y");
    if (z == null) dart.nullFailed(I[58], 1430, 35, "z");
    if (w == null) dart.nullFailed(I[58], 1430, 42, "w");
    this[x$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(x));
    this[y$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(y));
    this[z$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(z));
    this[w$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(w));
    if (x != this.x && !core.int.is(x)) dart.throw(new core.ArgumentError.new(x));
    if (y != this.y && !core.int.is(y)) dart.throw(new core.ArgumentError.new(y));
    if (z != this.z && !core.int.is(z)) dart.throw(new core.ArgumentError.new(z));
    if (w != this.w && !core.int.is(w)) dart.throw(new core.ArgumentError.new(w));
  }).prototype = _native_typed_data.NativeInt32x4.prototype;
  (_native_typed_data.NativeInt32x4.bool = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1441, 27, "x");
    if (y == null) dart.nullFailed(I[58], 1441, 35, "y");
    if (z == null) dart.nullFailed(I[58], 1441, 43, "z");
    if (w == null) dart.nullFailed(I[58], 1441, 51, "w");
    this[x$0] = dart.test(x) ? -1 : 0;
    this[y$0] = dart.test(y) ? -1 : 0;
    this[z$0] = dart.test(z) ? -1 : 0;
    this[w$0] = dart.test(w) ? -1 : 0;
    ;
  }).prototype = _native_typed_data.NativeInt32x4.prototype;
  (_native_typed_data.NativeInt32x4._truncated = function(x, y, z, w) {
    if (x == null) dart.nullFailed(I[58], 1458, 33, "x");
    if (y == null) dart.nullFailed(I[58], 1458, 41, "y");
    if (z == null) dart.nullFailed(I[58], 1458, 49, "z");
    if (w == null) dart.nullFailed(I[58], 1458, 57, "w");
    this[x$0] = x;
    this[y$0] = y;
    this[z$0] = z;
    this[w$0] = w;
    ;
  }).prototype = _native_typed_data.NativeInt32x4.prototype;
  dart.addTypeTests(_native_typed_data.NativeInt32x4);
  dart.addTypeCaches(_native_typed_data.NativeInt32x4);
  _native_typed_data.NativeInt32x4[dart.implements] = () => [typed_data.Int32x4];
  dart.setMethodSignature(_native_typed_data.NativeInt32x4, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeInt32x4.__proto__),
    '|': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
    '&': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
    '^': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
    '+': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
    '-': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
    _negate: dart.fnType(typed_data.Int32x4, []),
    shuffle: dart.fnType(typed_data.Int32x4, [core.int]),
    shuffleMix: dart.fnType(typed_data.Int32x4, [typed_data.Int32x4, core.int]),
    withX: dart.fnType(typed_data.Int32x4, [core.int]),
    withY: dart.fnType(typed_data.Int32x4, [core.int]),
    withZ: dart.fnType(typed_data.Int32x4, [core.int]),
    withW: dart.fnType(typed_data.Int32x4, [core.int]),
    withFlagX: dart.fnType(typed_data.Int32x4, [core.bool]),
    withFlagY: dart.fnType(typed_data.Int32x4, [core.bool]),
    withFlagZ: dart.fnType(typed_data.Int32x4, [core.bool]),
    withFlagW: dart.fnType(typed_data.Int32x4, [core.bool]),
    select: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4])
  }));
  dart.setGetterSignature(_native_typed_data.NativeInt32x4, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeInt32x4.__proto__),
    signMask: core.int,
    flagX: core.bool,
    flagY: core.bool,
    flagZ: core.bool,
    flagW: core.bool
  }));
  dart.setLibraryUri(_native_typed_data.NativeInt32x4, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeInt32x4, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeInt32x4.__proto__),
    x: dart.finalFieldType(core.int),
    y: dart.finalFieldType(core.int),
    z: dart.finalFieldType(core.int),
    w: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeInt32x4, ['toString']);
  dart.defineLazy(_native_typed_data.NativeInt32x4, {
    /*_native_typed_data.NativeInt32x4._list*/get _list() {
      return _native_typed_data.NativeInt32List.new(4);
    }
  }, false);
  var x$1 = dart.privateName(_native_typed_data, "NativeFloat64x2.x");
  var y$1 = dart.privateName(_native_typed_data, "NativeFloat64x2.y");
  _native_typed_data.NativeFloat64x2 = class NativeFloat64x2 extends core.Object {
    get x() {
      return this[x$1];
    }
    set x(value) {
      super.x = value;
    }
    get y() {
      return this[y$1];
    }
    set y(value) {
      super.y = value;
    }
    toString() {
      return "[" + dart.str(this.x) + ", " + dart.str(this.y) + "]";
    }
    ['+'](other) {
      if (other == null) dart.nullFailed(I[58], 1695, 34, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
    }
    _negate() {
      return new _native_typed_data.NativeFloat64x2._doubles(-dart.notNull(this.x), -dart.notNull(this.y));
    }
    ['-'](other) {
      if (other == null) dart.nullFailed(I[58], 1705, 34, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
    }
    ['*'](other) {
      if (other == null) dart.nullFailed(I[58], 1710, 34, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(other.x), dart.notNull(this.y) * dart.notNull(other.y));
    }
    ['/'](other) {
      if (other == null) dart.nullFailed(I[58], 1715, 34, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) / dart.notNull(other.x), dart.notNull(this.y) / dart.notNull(other.y));
    }
    scale(s) {
      if (s == null) dart.nullFailed(I[58], 1720, 26, "s");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(s), dart.notNull(this.y) * dart.notNull(s));
    }
    abs() {
      return new _native_typed_data.NativeFloat64x2._doubles(this.x[$abs](), this.y[$abs]());
    }
    clamp(lowerLimit, upperLimit) {
      if (lowerLimit == null) dart.nullFailed(I[58], 1730, 29, "lowerLimit");
      if (upperLimit == null) dart.nullFailed(I[58], 1730, 51, "upperLimit");
      let _lx = lowerLimit.x;
      let _ly = lowerLimit.y;
      let _ux = upperLimit.x;
      let _uy = upperLimit.y;
      let _x = this.x;
      let _y = this.y;
      _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
      _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
      _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
      _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
      return new _native_typed_data.NativeFloat64x2._doubles(_x, _y);
    }
    get signMask() {
      let view = _native_typed_data.NativeFloat64x2._uint32View;
      _native_typed_data.NativeFloat64x2._list[$_set](0, this.x);
      _native_typed_data.NativeFloat64x2._list[$_set](1, this.y);
      let mx = (dart.notNull(view[$_get](1)) & 2147483648) >>> 31;
      let my = (dart.notNull(view[$_get](3)) & 2147483648) >>> 31;
      return (mx | my << 1 >>> 0) >>> 0;
    }
    withX(x) {
      if (x == null) dart.nullFailed(I[58], 1756, 26, "x");
      if (!(typeof x == 'number')) dart.throw(new core.ArgumentError.new(x));
      return new _native_typed_data.NativeFloat64x2._doubles(x, this.y);
    }
    withY(y) {
      if (y == null) dart.nullFailed(I[58], 1762, 26, "y");
      if (!(typeof y == 'number')) dart.throw(new core.ArgumentError.new(y));
      return new _native_typed_data.NativeFloat64x2._doubles(this.x, y);
    }
    min(other) {
      if (other == null) dart.nullFailed(I[58], 1768, 27, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y);
    }
    max(other) {
      if (other == null) dart.nullFailed(I[58], 1774, 27, "other");
      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y);
    }
    sqrt() {
      return new _native_typed_data.NativeFloat64x2._doubles(math.sqrt(this.x), math.sqrt(this.y));
    }
  };
  (_native_typed_data.NativeFloat64x2.new = function(x, y) {
    if (x == null) dart.nullFailed(I[58], 1678, 24, "x");
    if (y == null) dart.nullFailed(I[58], 1678, 32, "y");
    this[x$1] = x;
    this[y$1] = y;
    if (!(typeof this.x == 'number')) dart.throw(new core.ArgumentError.new(this.x));
    if (!(typeof this.y == 'number')) dart.throw(new core.ArgumentError.new(this.y));
  }).prototype = _native_typed_data.NativeFloat64x2.prototype;
  (_native_typed_data.NativeFloat64x2.splat = function(v) {
    if (v == null) dart.nullFailed(I[58], 1683, 32, "v");
    _native_typed_data.NativeFloat64x2.new.call(this, v, v);
  }).prototype = _native_typed_data.NativeFloat64x2.prototype;
  (_native_typed_data.NativeFloat64x2.zero = function() {
    _native_typed_data.NativeFloat64x2.splat.call(this, 0.0);
  }).prototype = _native_typed_data.NativeFloat64x2.prototype;
  (_native_typed_data.NativeFloat64x2.fromFloat32x4 = function(v) {
    if (v == null) dart.nullFailed(I[58], 1687, 43, "v");
    _native_typed_data.NativeFloat64x2.new.call(this, v.x, v.y);
  }).prototype = _native_typed_data.NativeFloat64x2.prototype;
  (_native_typed_data.NativeFloat64x2._doubles = function(x, y) {
    if (x == null) dart.nullFailed(I[58], 1690, 33, "x");
    if (y == null) dart.nullFailed(I[58], 1690, 41, "y");
    this[x$1] = x;
    this[y$1] = y;
    ;
  }).prototype = _native_typed_data.NativeFloat64x2.prototype;
  dart.addTypeTests(_native_typed_data.NativeFloat64x2);
  dart.addTypeCaches(_native_typed_data.NativeFloat64x2);
  _native_typed_data.NativeFloat64x2[dart.implements] = () => [typed_data.Float64x2];
  dart.setMethodSignature(_native_typed_data.NativeFloat64x2, () => ({
    __proto__: dart.getMethods(_native_typed_data.NativeFloat64x2.__proto__),
    '+': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    _negate: dart.fnType(typed_data.Float64x2, []),
    '-': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    '*': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    '/': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    scale: dart.fnType(typed_data.Float64x2, [core.double]),
    abs: dart.fnType(typed_data.Float64x2, []),
    clamp: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2, typed_data.Float64x2]),
    withX: dart.fnType(typed_data.Float64x2, [core.double]),
    withY: dart.fnType(typed_data.Float64x2, [core.double]),
    min: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    max: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
    sqrt: dart.fnType(typed_data.Float64x2, [])
  }));
  dart.setGetterSignature(_native_typed_data.NativeFloat64x2, () => ({
    __proto__: dart.getGetters(_native_typed_data.NativeFloat64x2.__proto__),
    signMask: core.int
  }));
  dart.setLibraryUri(_native_typed_data.NativeFloat64x2, I[59]);
  dart.setFieldSignature(_native_typed_data.NativeFloat64x2, () => ({
    __proto__: dart.getFields(_native_typed_data.NativeFloat64x2.__proto__),
    x: dart.finalFieldType(core.double),
    y: dart.finalFieldType(core.double)
  }));
  dart.defineExtensionMethods(_native_typed_data.NativeFloat64x2, ['toString']);
  dart.defineLazy(_native_typed_data.NativeFloat64x2, {
    /*_native_typed_data.NativeFloat64x2._list*/get _list() {
      return _native_typed_data.NativeFloat64List.new(2);
    },
    set _list(_) {},
    /*_native_typed_data.NativeFloat64x2._uint32View*/get _uint32View() {
      return _native_typed_data.NativeFloat64x2._list.buffer[$asUint32List]();
    },
    set _uint32View(_) {}
  }, false);
  _native_typed_data._checkLength = function _checkLength(length) {
    if (!core.int.is(length)) dart.throw(new core.ArgumentError.new("Invalid length " + dart.str(length)));
    return length;
  };
  _native_typed_data._checkViewArguments = function _checkViewArguments(buffer, offsetInBytes, length) {
    if (!_native_typed_data.NativeByteBuffer.is(buffer)) {
      dart.throw(new core.ArgumentError.new("Invalid view buffer"));
    }
    if (!core.int.is(offsetInBytes)) {
      dart.throw(new core.ArgumentError.new("Invalid view offsetInBytes " + dart.str(offsetInBytes)));
    }
    if (!T$.intN().is(length)) {
      dart.throw(new core.ArgumentError.new("Invalid view length " + dart.str(length)));
    }
  };
  _native_typed_data._ensureNativeList = function _ensureNativeList(list) {
    if (list == null) dart.nullFailed(I[58], 373, 29, "list");
    if (_interceptors.JSIndexable.is(list)) return list;
    let result = core.List.filled(list[$length], null);
    for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
      result[$_set](i, list[$_get](i));
    }
    return result;
  };
  _native_typed_data._isInvalidArrayIndex = function _isInvalidArrayIndex(index) {
    if (index == null) dart.nullFailed(I[58], 1787, 31, "index");
    return index >>> 0 !== index;
  };
  _native_typed_data._checkValidIndex = function _checkValidIndex(index, list, length) {
    if (index == null) dart.nullFailed(I[58], 1794, 27, "index");
    if (list == null) dart.nullFailed(I[58], 1794, 39, "list");
    if (length == null) dart.nullFailed(I[58], 1794, 49, "length");
    if (dart.test(_native_typed_data._isInvalidArrayIndex(index)) || index >= dart.notNull(length)) {
      dart.throw(_js_helper.diagnoseIndexError(list, index));
    }
  };
  _native_typed_data._checkValidRange = function _checkValidRange(start, end, length) {
    if (start == null) dart.nullFailed(I[58], 1807, 26, "start");
    if (length == null) dart.nullFailed(I[58], 1807, 47, "length");
    if (dart.test(_native_typed_data._isInvalidArrayIndex(start)) || (end == null ? dart.notNull(start) > dart.notNull(length) : dart.test(_native_typed_data._isInvalidArrayIndex(end)) || dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length))) {
      dart.throw(_js_helper.diagnoseRangeError(start, end, length));
    }
    if (end == null) return length;
    return end;
  };
  var ___AsyncStarImpl_controller = dart.privateName(async, "_#_AsyncStarImpl#controller");
  var ___AsyncStarImpl_controller_isSet = dart.privateName(async, "_#_AsyncStarImpl#controller#isSet");
  var ___AsyncStarImpl_jsIterator = dart.privateName(async, "_#_AsyncStarImpl#jsIterator");
  var ___AsyncStarImpl_jsIterator_isSet = dart.privateName(async, "_#_AsyncStarImpl#jsIterator#isSet");
  var _handleErrorCallback = dart.privateName(async, "_handleErrorCallback");
  var _runBodyCallback = dart.privateName(async, "_runBodyCallback");
  var _chainForeignFuture = dart.privateName(async, "_chainForeignFuture");
  var _thenAwait = dart.privateName(async, "_thenAwait");
  var _fatal = dart.privateName(async, "_fatal");
  const _is__AsyncStarImpl_default = Symbol('_is__AsyncStarImpl_default');
  async._AsyncStarImpl$ = dart.generic(T => {
    var StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    class _AsyncStarImpl extends core.Object {
      get controller() {
        let t83;
        return dart.test(this[___AsyncStarImpl_controller_isSet]) ? (t83 = this[___AsyncStarImpl_controller], t83) : dart.throw(new _internal.LateError.fieldNI("controller"));
      }
      set controller(t83) {
        StreamControllerOfT().as(t83);
        if (t83 == null) dart.nullFailed(I[61], 229, 28, "null");
        this[___AsyncStarImpl_controller_isSet] = true;
        this[___AsyncStarImpl_controller] = t83;
      }
      get jsIterator() {
        let t84;
        return dart.test(this[___AsyncStarImpl_jsIterator_isSet]) ? (t84 = this[___AsyncStarImpl_jsIterator], t84) : dart.throw(new _internal.LateError.fieldNI("jsIterator"));
      }
      set jsIterator(t84) {
        if (t84 == null) dart.nullFailed(I[61], 245, 15, "null");
        this[___AsyncStarImpl_jsIterator_isSet] = true;
        this[___AsyncStarImpl_jsIterator] = t84;
      }
      get stream() {
        return this.controller.stream;
      }
      get handleError() {
        if (this[_handleErrorCallback] == null) {
          this[_handleErrorCallback] = dart.fn((error, stackTrace) => {
            if (error == null) dart.nullFailed(I[61], 282, 31, "error");
            if (stackTrace == null) dart.nullFailed(I[61], 282, 49, "stackTrace");
            try {
              this.jsIterator.throw(dart.createErrorWithStack(error, stackTrace));
            } catch (e$) {
              let e = dart.getThrown(e$);
              let newStack = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                this.addError(e, newStack);
              } else
                throw e$;
            }
          }, T$.ObjectAndStackTraceToNull());
          let zone = async.Zone.current;
          if (zone != async.Zone.root) {
            this[_handleErrorCallback] = zone.bindBinaryCallback(core.Null, core.Object, core.StackTrace, dart.nullCheck(this[_handleErrorCallback]));
          }
        }
        return dart.nullCheck(this[_handleErrorCallback]);
      }
      scheduleGenerator() {
        if (this.isScheduled || dart.test(this.controller.isPaused) || this.isSuspendedAtYieldStar) {
          return;
        }
        this.isScheduled = true;
        let zone = async.Zone.current;
        if (this[_runBodyCallback] == null) {
          this[_runBodyCallback] = this.runBody.bind(this);
          if (zone != async.Zone.root) {
            let registered = zone.registerUnaryCallback(dart.void, T$.ObjectN(), dart.nullCheck(this[_runBodyCallback]));
            this[_runBodyCallback] = dart.fn((arg = null) => zone.runUnaryGuarded(T$.ObjectN(), registered, arg), T$.ObjectNTovoid$1());
          }
        }
        zone.scheduleMicrotask(dart.nullCheck(this[_runBodyCallback]));
      }
      runBody(awaitValue) {
        this.isScheduled = false;
        this.isSuspendedAtYield = false;
        this.isSuspendedAtAwait = false;
        let iterResult = null;
        try {
          iterResult = this.jsIterator.next(awaitValue);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            this.addError(e, s);
            return;
          } else
            throw e$;
        }
        if (iterResult.done) {
          this.close();
          return;
        }
        if (this.isSuspendedAtYield || this.isSuspendedAtYieldStar) return;
        this.isSuspendedAtAwait = true;
        let value = iterResult.value;
        let f = null;
        if (async._Future.is(value)) {
          f = value;
        } else if (async.Future.is(value)) {
          f = new (T$._FutureOfObjectN()).new();
          f[_chainForeignFuture](value);
        } else {
          f = new (T$._FutureOfObjectN()).value(value);
        }
        f[_thenAwait](dart.void, dart.nullCheck(this[_runBodyCallback]), this.handleError);
      }
      add(event) {
        T.as(event);
        if (!this.onListenReceived) this[_fatal]("yield before stream is listened to");
        if (this.isSuspendedAtYield) this[_fatal]("unexpected yield");
        if (!dart.test(this.controller.hasListener)) {
          return true;
        }
        this.controller.add(event);
        this.scheduleGenerator();
        this.isSuspendedAtYield = true;
        return false;
      }
      addStream(stream) {
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[61], 402, 28, "stream");
        if (!this.onListenReceived) this[_fatal]("yield* before stream is listened to");
        if (!dart.test(this.controller.hasListener)) return true;
        this.isSuspendedAtYieldStar = true;
        let whenDoneAdding = this.controller.addStream(stream, {cancelOnError: false});
        whenDoneAdding.then(core.Null, dart.fn(_ => {
          this.isSuspendedAtYieldStar = false;
          this.scheduleGenerator();
          if (!this.isScheduled) this.isSuspendedAtYield = true;
        }, T$.dynamicToNull()), {onError: this.handleError});
        return false;
      }
      addError(error, stackTrace) {
        if (error == null) dart.nullFailed(I[61], 416, 24, "error");
        if (stackTrace == null) dart.nullFailed(I[61], 416, 42, "stackTrace");
        core.ArgumentError.checkNotNull(core.Object, error, "error");
        let completer = this.cancellationCompleter;
        if (completer != null && !dart.test(completer.isCompleted)) {
          completer.completeError(error, stackTrace);
        } else if (dart.test(this.controller.hasListener)) {
          this.controller.addError(error, stackTrace);
        }
        this.close();
      }
      close() {
        let completer = this.cancellationCompleter;
        if (completer != null && !dart.test(completer.isCompleted)) {
          completer.complete();
        }
        this.controller.close();
      }
      onListen() {
        if (!!this.onListenReceived) dart.assertFailed(null, I[61], 444, 12, "!onListenReceived");
        this.onListenReceived = true;
        this.scheduleGenerator();
      }
      onResume() {
        if (this.isSuspendedAtYield) {
          this.scheduleGenerator();
        }
      }
      onCancel() {
        if (dart.test(this.controller.isClosed)) {
          return null;
        }
        if (this.cancellationCompleter == null) {
          this.cancellationCompleter = async.Completer.new();
          if (this.isSuspendedAtYield) {
            this.scheduleGenerator();
          }
        }
        return dart.nullCheck(this.cancellationCompleter).future;
      }
      [_fatal](message) {
        if (message == null) dart.nullFailed(I[61], 471, 17, "message");
        return dart.throw(new core.StateError.new(message));
      }
    }
    (_AsyncStarImpl.new = function(initGenerator) {
      if (initGenerator == null) dart.nullFailed(I[61], 250, 23, "initGenerator");
      this[___AsyncStarImpl_controller] = null;
      this[___AsyncStarImpl_controller_isSet] = false;
      this.isSuspendedAtYieldStar = false;
      this.onListenReceived = false;
      this.isScheduled = false;
      this.isSuspendedAtYield = false;
      this.isSuspendedAtAwait = false;
      this.cancellationCompleter = null;
      this[___AsyncStarImpl_jsIterator] = null;
      this[___AsyncStarImpl_jsIterator_isSet] = false;
      this[_handleErrorCallback] = null;
      this[_runBodyCallback] = null;
      this.initGenerator = initGenerator;
      this.controller = StreamControllerOfT().new({onListen: this.onListen.bind(this), onResume: this.onResume.bind(this), onCancel: this.onCancel.bind(this)});
      this.jsIterator = this.initGenerator(this)[Symbol.iterator]();
    }).prototype = _AsyncStarImpl.prototype;
    dart.addTypeTests(_AsyncStarImpl);
    _AsyncStarImpl.prototype[_is__AsyncStarImpl_default] = true;
    dart.addTypeCaches(_AsyncStarImpl);
    dart.setMethodSignature(_AsyncStarImpl, () => ({
      __proto__: dart.getMethods(_AsyncStarImpl.__proto__),
      scheduleGenerator: dart.fnType(dart.void, []),
      runBody: dart.fnType(dart.void, [dart.dynamic]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      addStream: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      close: dart.fnType(dart.void, []),
      onListen: dart.fnType(dart.dynamic, []),
      onResume: dart.fnType(dart.dynamic, []),
      onCancel: dart.fnType(dart.dynamic, []),
      [_fatal]: dart.fnType(dart.dynamic, [core.String])
    }));
    dart.setGetterSignature(_AsyncStarImpl, () => ({
      __proto__: dart.getGetters(_AsyncStarImpl.__proto__),
      controller: async.StreamController$(T),
      jsIterator: core.Object,
      stream: async.Stream$(T),
      handleError: dart.fnType(core.Null, [core.Object, core.StackTrace])
    }));
    dart.setSetterSignature(_AsyncStarImpl, () => ({
      __proto__: dart.getSetters(_AsyncStarImpl.__proto__),
      controller: dart.nullable(core.Object),
      jsIterator: core.Object
    }));
    dart.setLibraryUri(_AsyncStarImpl, I[29]);
    dart.setFieldSignature(_AsyncStarImpl, () => ({
      __proto__: dart.getFields(_AsyncStarImpl.__proto__),
      [___AsyncStarImpl_controller]: dart.fieldType(dart.nullable(async.StreamController$(T))),
      [___AsyncStarImpl_controller_isSet]: dart.fieldType(core.bool),
      initGenerator: dart.fieldType(dart.fnType(core.Object, [async._AsyncStarImpl$(T)])),
      isSuspendedAtYieldStar: dart.fieldType(core.bool),
      onListenReceived: dart.fieldType(core.bool),
      isScheduled: dart.fieldType(core.bool),
      isSuspendedAtYield: dart.fieldType(core.bool),
      isSuspendedAtAwait: dart.fieldType(core.bool),
      cancellationCompleter: dart.fieldType(dart.nullable(async.Completer)),
      [___AsyncStarImpl_jsIterator]: dart.fieldType(dart.nullable(core.Object)),
      [___AsyncStarImpl_jsIterator_isSet]: dart.fieldType(core.bool),
      [_handleErrorCallback]: dart.fieldType(dart.nullable(dart.fnType(core.Null, [core.Object, core.StackTrace]))),
      [_runBodyCallback]: dart.fieldType(dart.nullable(dart.fnType(dart.void, [], [dart.nullable(core.Object)])))
    }));
    return _AsyncStarImpl;
  });
  async._AsyncStarImpl = async._AsyncStarImpl$();
  dart.addTypeTests(async._AsyncStarImpl, _is__AsyncStarImpl_default);
  var error$ = dart.privateName(async, "AsyncError.error");
  var stackTrace$ = dart.privateName(async, "AsyncError.stackTrace");
  async.AsyncError = class AsyncError extends core.Object {
    get error() {
      return this[error$];
    }
    set error(value) {
      super.error = value;
    }
    get stackTrace() {
      return this[stackTrace$];
    }
    set stackTrace(value) {
      super.stackTrace = value;
    }
    static defaultStackTrace(error) {
      if (error == null) dart.nullFailed(I[62], 24, 46, "error");
      if (core.Error.is(error)) {
        let stackTrace = error[$stackTrace];
        if (stackTrace != null) return stackTrace;
      }
      return core.StackTrace.empty;
    }
    toString() {
      return dart.str(this.error);
    }
  };
  (async.AsyncError.new = function(error, stackTrace) {
    let t87;
    if (error == null) dart.nullFailed(I[62], 15, 21, "error");
    this[error$] = _internal.checkNotNullable(core.Object, error, "error");
    this[stackTrace$] = (t87 = stackTrace, t87 == null ? async.AsyncError.defaultStackTrace(error) : t87);
    ;
  }).prototype = async.AsyncError.prototype;
  dart.addTypeTests(async.AsyncError);
  dart.addTypeCaches(async.AsyncError);
  async.AsyncError[dart.implements] = () => [core.Error];
  dart.setLibraryUri(async.AsyncError, I[29]);
  dart.setFieldSignature(async.AsyncError, () => ({
    __proto__: dart.getFields(async.AsyncError.__proto__),
    error: dart.finalFieldType(core.Object),
    stackTrace: dart.finalFieldType(core.StackTrace)
  }));
  dart.defineExtensionMethods(async.AsyncError, ['toString']);
  dart.defineExtensionAccessors(async.AsyncError, ['stackTrace']);
  var _controller$ = dart.privateName(async, "_controller");
  var _subscribe = dart.privateName(async, "_subscribe");
  var _createSubscription = dart.privateName(async, "_createSubscription");
  var _onListen$ = dart.privateName(async, "_onListen");
  const _is__StreamImpl_default = Symbol('_is__StreamImpl_default');
  async._StreamImpl$ = dart.generic(T => {
    var _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
    class _StreamImpl extends async.Stream$(T) {
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        cancelOnError == null ? cancelOnError = false : null;
        let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError);
        this[_onListen$](subscription);
        return subscription;
      }
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[65], 481, 47, "cancelOnError");
        return new (_BufferingStreamSubscriptionOfT()).new(onData, onError, onDone, cancelOnError);
      }
      [_onListen$](subscription) {
        if (subscription == null) dart.nullFailed(I[65], 487, 37, "subscription");
      }
    }
    (_StreamImpl.new = function() {
      _StreamImpl.__proto__.new.call(this);
      ;
    }).prototype = _StreamImpl.prototype;
    dart.addTypeTests(_StreamImpl);
    _StreamImpl.prototype[_is__StreamImpl_default] = true;
    dart.addTypeCaches(_StreamImpl);
    dart.setMethodSignature(_StreamImpl, () => ({
      __proto__: dart.getMethods(_StreamImpl.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      [_createSubscription]: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T])), dart.nullable(core.Function), dart.nullable(dart.fnType(dart.void, [])), core.bool]),
      [_onListen$]: dart.fnType(dart.void, [async.StreamSubscription])
    }));
    dart.setLibraryUri(_StreamImpl, I[29]);
    return _StreamImpl;
  });
  async._StreamImpl = async._StreamImpl$();
  dart.addTypeTests(async._StreamImpl, _is__StreamImpl_default);
  const _is__ControllerStream_default = Symbol('_is__ControllerStream_default');
  async._ControllerStream$ = dart.generic(T => {
    class _ControllerStream extends async._StreamImpl$(T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[64], 785, 51, "cancelOnError");
        return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
      }
      get hashCode() {
        return (dart.notNull(dart.hashCode(this[_controller$])) ^ 892482866) >>> 0;
      }
      _equals(other) {
        if (other == null) return false;
        if (this === other) return true;
        return async._ControllerStream.is(other) && other[_controller$] == this[_controller$];
      }
    }
    (_ControllerStream.new = function(_controller) {
      if (_controller == null) dart.nullFailed(I[64], 782, 26, "_controller");
      this[_controller$] = _controller;
      _ControllerStream.__proto__.new.call(this);
      ;
    }).prototype = _ControllerStream.prototype;
    dart.addTypeTests(_ControllerStream);
    _ControllerStream.prototype[_is__ControllerStream_default] = true;
    dart.addTypeCaches(_ControllerStream);
    dart.setLibraryUri(_ControllerStream, I[29]);
    dart.setFieldSignature(_ControllerStream, () => ({
      __proto__: dart.getFields(_ControllerStream.__proto__),
      [_controller$]: dart.fieldType(async._StreamControllerLifecycle$(T))
    }));
    dart.defineExtensionMethods(_ControllerStream, ['_equals']);
    dart.defineExtensionAccessors(_ControllerStream, ['hashCode']);
    return _ControllerStream;
  });
  async._ControllerStream = async._ControllerStream$();
  dart.addTypeTests(async._ControllerStream, _is__ControllerStream_default);
  const _is__BroadcastStream_default = Symbol('_is__BroadcastStream_default');
  async._BroadcastStream$ = dart.generic(T => {
    class _BroadcastStream extends async._ControllerStream$(T) {
      get isBroadcast() {
        return true;
      }
    }
    (_BroadcastStream.new = function(controller) {
      if (controller == null) dart.nullFailed(I[63], 8, 50, "controller");
      _BroadcastStream.__proto__.new.call(this, controller);
      ;
    }).prototype = _BroadcastStream.prototype;
    dart.addTypeTests(_BroadcastStream);
    _BroadcastStream.prototype[_is__BroadcastStream_default] = true;
    dart.addTypeCaches(_BroadcastStream);
    dart.setLibraryUri(_BroadcastStream, I[29]);
    return _BroadcastStream;
  });
  async._BroadcastStream = async._BroadcastStream$();
  dart.addTypeTests(async._BroadcastStream, _is__BroadcastStream_default);
  var _next$0 = dart.privateName(async, "_BroadcastSubscription._next");
  var _previous$0 = dart.privateName(async, "_BroadcastSubscription._previous");
  var _eventState = dart.privateName(async, "_eventState");
  var _next$1 = dart.privateName(async, "_next");
  var _previous$1 = dart.privateName(async, "_previous");
  var _expectsEvent = dart.privateName(async, "_expectsEvent");
  var _toggleEventId = dart.privateName(async, "_toggleEventId");
  var _isFiring = dart.privateName(async, "_isFiring");
  var _setRemoveAfterFiring = dart.privateName(async, "_setRemoveAfterFiring");
  var _removeAfterFiring = dart.privateName(async, "_removeAfterFiring");
  var _onPause = dart.privateName(async, "_onPause");
  var _onResume = dart.privateName(async, "_onResume");
  var _recordCancel = dart.privateName(async, "_recordCancel");
  var _onCancel = dart.privateName(async, "_onCancel");
  var _recordPause = dart.privateName(async, "_recordPause");
  var _recordResume = dart.privateName(async, "_recordResume");
  var _cancelFuture = dart.privateName(async, "_cancelFuture");
  var _pending$ = dart.privateName(async, "_pending");
  var _zone$ = dart.privateName(async, "_zone");
  var _state = dart.privateName(async, "_state");
  var _onData$ = dart.privateName(async, "_onData");
  var _onError = dart.privateName(async, "_onError");
  var _onDone$ = dart.privateName(async, "_onDone");
  var _setPendingEvents = dart.privateName(async, "_setPendingEvents");
  var _isCanceled = dart.privateName(async, "_isCanceled");
  var _isPaused = dart.privateName(async, "_isPaused");
  var _isInputPaused = dart.privateName(async, "_isInputPaused");
  var _inCallback = dart.privateName(async, "_inCallback");
  var _guardCallback = dart.privateName(async, "_guardCallback");
  var _decrementPauseCount = dart.privateName(async, "_decrementPauseCount");
  var _hasPending = dart.privateName(async, "_hasPending");
  var _mayResumeInput = dart.privateName(async, "_mayResumeInput");
  var _cancel = dart.privateName(async, "_cancel");
  var _isClosed = dart.privateName(async, "_isClosed");
  var _waitsForCancel = dart.privateName(async, "_waitsForCancel");
  var _canFire = dart.privateName(async, "_canFire");
  var _cancelOnError = dart.privateName(async, "_cancelOnError");
  var _sendData = dart.privateName(async, "_sendData");
  var _addPending = dart.privateName(async, "_addPending");
  var _sendError = dart.privateName(async, "_sendError");
  var _sendDone = dart.privateName(async, "_sendDone");
  var _close = dart.privateName(async, "_close");
  var _checkState = dart.privateName(async, "_checkState");
  const _is__BufferingStreamSubscription_default = Symbol('_is__BufferingStreamSubscription_default');
  async._BufferingStreamSubscription$ = dart.generic(T => {
    var _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
    var _PendingEventsNOfT = () => (_PendingEventsNOfT = dart.constFn(dart.nullable(_PendingEventsOfT())))();
    var _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
    var _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
    var _StreamImplEventsNOfT = () => (_StreamImplEventsNOfT = dart.constFn(dart.nullable(_StreamImplEventsOfT())))();
    class _BufferingStreamSubscription extends core.Object {
      [_setPendingEvents](pendingEvents) {
        _PendingEventsNOfT().as(pendingEvents);
        if (!(this[_pending$] == null)) dart.assertFailed(null, I[65], 117, 12, "_pending == null");
        if (pendingEvents == null) return;
        this[_pending$] = pendingEvents;
        if (!dart.test(pendingEvents.isEmpty)) {
          this[_state] = (dart.notNull(this[_state]) | 64) >>> 0;
          pendingEvents.schedule(this);
        }
      }
      onData(handleData) {
        this[_onData$] = async._BufferingStreamSubscription._registerDataHandler(T, this[_zone$], handleData);
      }
      static _registerDataHandler(T, zone, handleData) {
        let t87;
        if (zone == null) dart.nullFailed(I[65], 133, 12, "zone");
        return zone.registerUnaryCallback(dart.void, T, (t87 = handleData, t87 == null ? C[37] || CT.C37 : t87));
      }
      onError(handleError) {
        this[_onError] = async._BufferingStreamSubscription._registerErrorHandler(this[_zone$], handleError);
      }
      static _registerErrorHandler(zone, handleError) {
        if (zone == null) dart.nullFailed(I[65], 141, 46, "zone");
        handleError == null ? handleError = C[38] || CT.C38 : null;
        if (T$.ObjectAndStackTraceTovoid().is(handleError)) {
          return zone.registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, handleError);
        }
        if (T$.ObjectTovoid().is(handleError)) {
          return zone.registerUnaryCallback(dart.dynamic, core.Object, handleError);
        }
        dart.throw(new core.ArgumentError.new("handleError callback must take either an Object " + "(the error), or both an Object (the error) and a StackTrace."));
      }
      onDone(handleDone) {
        this[_onDone$] = async._BufferingStreamSubscription._registerDoneHandler(this[_zone$], handleDone);
      }
      static _registerDoneHandler(zone, handleDone) {
        let t87;
        if (zone == null) dart.nullFailed(I[65], 160, 12, "zone");
        return zone.registerCallback(dart.void, (t87 = handleDone, t87 == null ? C[39] || CT.C39 : t87));
      }
      pause(resumeSignal = null) {
        let t87, t87$;
        if (dart.test(this[_isCanceled])) return;
        let wasPaused = this[_isPaused];
        let wasInputPaused = this[_isInputPaused];
        this[_state] = (dart.notNull(this[_state]) + 128 | 4) >>> 0;
        t87 = resumeSignal;
        t87 == null ? null : t87.whenComplete(dart.bind(this, 'resume'));
        if (!dart.test(wasPaused)) {
          t87$ = this[_pending$];
          t87$ == null ? null : t87$.cancelSchedule();
        }
        if (!dart.test(wasInputPaused) && !dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onPause));
      }
      resume() {
        if (dart.test(this[_isCanceled])) return;
        if (dart.test(this[_isPaused])) {
          this[_decrementPauseCount]();
          if (!dart.test(this[_isPaused])) {
            if (dart.test(this[_hasPending]) && !dart.test(dart.nullCheck(this[_pending$]).isEmpty)) {
              dart.nullCheck(this[_pending$]).schedule(this);
            } else {
              if (!dart.test(this[_mayResumeInput])) dart.assertFailed(null, I[65], 184, 18, "_mayResumeInput");
              this[_state] = (dart.notNull(this[_state]) & ~4 >>> 0) >>> 0;
              if (!dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onResume));
            }
          }
        }
      }
      cancel() {
        let t87;
        this[_state] = (dart.notNull(this[_state]) & ~16 >>> 0) >>> 0;
        if (!dart.test(this[_isCanceled])) {
          this[_cancel]();
        }
        t87 = this[_cancelFuture];
        return t87 == null ? async.Future._nullFuture : t87;
      }
      asFuture(E, futureValue = null) {
        let resultValue = null;
        if (futureValue == null) {
          if (!dart.test(_internal.typeAcceptsNull(E))) {
            dart.throw(new core.ArgumentError.notNull("futureValue"));
          }
          resultValue = E.as(futureValue);
        } else {
          resultValue = futureValue;
        }
        let result = new (async._Future$(E)).new();
        this[_onDone$] = dart.fn(() => {
          result[_complete](resultValue);
        }, T$.VoidTovoid());
        this[_onError] = dart.fn((error, stackTrace) => {
          if (error == null) dart.nullFailed(I[65], 218, 24, "error");
          if (stackTrace == null) dart.nullFailed(I[65], 218, 42, "stackTrace");
          let cancelFuture = this.cancel();
          if (cancelFuture != async.Future._nullFuture) {
            cancelFuture.whenComplete(dart.fn(() => {
              result[_completeError](error, stackTrace);
            }, T$.VoidToNull()));
          } else {
            result[_completeError](error, stackTrace);
          }
        }, T$.ObjectAndStackTraceToNull());
        return result;
      }
      get [_isInputPaused]() {
        return (dart.notNull(this[_state]) & 4) !== 0;
      }
      get [_isClosed]() {
        return (dart.notNull(this[_state]) & 2) !== 0;
      }
      get [_isCanceled]() {
        return (dart.notNull(this[_state]) & 8) !== 0;
      }
      get [_waitsForCancel]() {
        return (dart.notNull(this[_state]) & 16) !== 0;
      }
      get [_inCallback]() {
        return (dart.notNull(this[_state]) & 32) !== 0;
      }
      get [_hasPending]() {
        return (dart.notNull(this[_state]) & 64) !== 0;
      }
      get [_isPaused]() {
        return dart.notNull(this[_state]) >= 128;
      }
      get [_canFire]() {
        return dart.notNull(this[_state]) < 32;
      }
      get [_mayResumeInput]() {
        let t87, t87$;
        return !dart.test(this[_isPaused]) && dart.test((t87$ = (t87 = this[_pending$], t87 == null ? null : t87.isEmpty), t87$ == null ? true : t87$));
      }
      get [_cancelOnError]() {
        return (dart.notNull(this[_state]) & 1) !== 0;
      }
      get isPaused() {
        return this[_isPaused];
      }
      [_cancel]() {
        this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
        if (dart.test(this[_hasPending])) {
          dart.nullCheck(this[_pending$]).cancelSchedule();
        }
        if (!dart.test(this[_inCallback])) this[_pending$] = null;
        this[_cancelFuture] = this[_onCancel]();
      }
      [_decrementPauseCount]() {
        if (!dart.test(this[_isPaused])) dart.assertFailed(null, I[65], 261, 12, "_isPaused");
        this[_state] = dart.notNull(this[_state]) - 128;
      }
      [_add](data) {
        T.as(data);
        if (!!dart.test(this[_isClosed])) dart.assertFailed(null, I[65], 268, 12, "!_isClosed");
        if (dart.test(this[_isCanceled])) return;
        if (dart.test(this[_canFire])) {
          this[_sendData](data);
        } else {
          this[_addPending](new (_DelayedDataOfT()).new(data));
        }
      }
      [_addError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[65], 277, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[65], 277, 43, "stackTrace");
        if (dart.test(this[_isCanceled])) return;
        if (dart.test(this[_canFire])) {
          this[_sendError](error, stackTrace);
        } else {
          this[_addPending](new async._DelayedError.new(error, stackTrace));
        }
      }
      [_close]() {
        if (!!dart.test(this[_isClosed])) dart.assertFailed(null, I[65], 287, 12, "!_isClosed");
        if (dart.test(this[_isCanceled])) return;
        this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
        if (dart.test(this[_canFire])) {
          this[_sendDone]();
        } else {
          this[_addPending](C[40] || CT.C40);
        }
      }
      [_onPause]() {
        if (!dart.test(this[_isInputPaused])) dart.assertFailed(null, I[65], 302, 12, "_isInputPaused");
      }
      [_onResume]() {
        if (!!dart.test(this[_isInputPaused])) dart.assertFailed(null, I[65], 306, 12, "!_isInputPaused");
      }
      [_onCancel]() {
        if (!dart.test(this[_isCanceled])) dart.assertFailed(null, I[65], 310, 12, "_isCanceled");
        return null;
      }
      [_addPending](event) {
        if (event == null) dart.nullFailed(I[65], 320, 34, "event");
        let pending = _StreamImplEventsNOfT().as(this[_pending$]);
        pending == null ? pending = new (_StreamImplEventsOfT()).new() : null;
        this[_pending$] = pending;
        pending.add(event);
        if (!dart.test(this[_hasPending])) {
          this[_state] = (dart.notNull(this[_state]) | 64) >>> 0;
          if (!dart.test(this[_isPaused])) {
            pending.schedule(this);
          }
        }
      }
      [_sendData](data) {
        if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, I[65], 336, 12, "!_isCanceled");
        if (!!dart.test(this[_isPaused])) dart.assertFailed(null, I[65], 337, 12, "!_isPaused");
        if (!!dart.test(this[_inCallback])) dart.assertFailed(null, I[65], 338, 12, "!_inCallback");
        let wasInputPaused = this[_isInputPaused];
        this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
        this[_zone$].runUnaryGuarded(T, this[_onData$], data);
        this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
        this[_checkState](wasInputPaused);
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[65], 346, 26, "error");
        if (stackTrace == null) dart.nullFailed(I[65], 346, 44, "stackTrace");
        if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, I[65], 347, 12, "!_isCanceled");
        if (!!dart.test(this[_isPaused])) dart.assertFailed(null, I[65], 348, 12, "!_isPaused");
        if (!!dart.test(this[_inCallback])) dart.assertFailed(null, I[65], 349, 12, "!_inCallback");
        let wasInputPaused = this[_isInputPaused];
        const sendError = () => {
          if (dart.test(this[_isCanceled]) && !dart.test(this[_waitsForCancel])) return;
          this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
          let onError = this[_onError];
          if (T$.ObjectAndStackTraceTovoid().is(onError)) {
            this[_zone$].runBinaryGuarded(core.Object, core.StackTrace, onError, error, stackTrace);
          } else {
            this[_zone$].runUnaryGuarded(core.Object, T$.ObjectTovoid().as(this[_onError]), error);
          }
          this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
        };
        dart.fn(sendError, T$.VoidTovoid());
        if (dart.test(this[_cancelOnError])) {
          this[_state] = (dart.notNull(this[_state]) | 16) >>> 0;
          this[_cancel]();
          let cancelFuture = this[_cancelFuture];
          if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
            cancelFuture.whenComplete(sendError);
          } else {
            sendError();
          }
        } else {
          sendError();
          this[_checkState](wasInputPaused);
        }
      }
      [_sendDone]() {
        if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, I[65], 385, 12, "!_isCanceled");
        if (!!dart.test(this[_isPaused])) dart.assertFailed(null, I[65], 386, 12, "!_isPaused");
        if (!!dart.test(this[_inCallback])) dart.assertFailed(null, I[65], 387, 12, "!_inCallback");
        const sendDone = () => {
          if (!dart.test(this[_waitsForCancel])) return;
          this[_state] = (dart.notNull(this[_state]) | (8 | 2 | 32) >>> 0) >>> 0;
          this[_zone$].runGuarded(this[_onDone$]);
          this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
        };
        dart.fn(sendDone, T$.VoidTovoid());
        this[_cancel]();
        this[_state] = (dart.notNull(this[_state]) | 16) >>> 0;
        let cancelFuture = this[_cancelFuture];
        if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
          cancelFuture.whenComplete(sendDone);
        } else {
          sendDone();
        }
      }
      [_guardCallback](callback) {
        if (callback == null) dart.nullFailed(I[65], 413, 39, "callback");
        if (!!dart.test(this[_inCallback])) dart.assertFailed(null, I[65], 414, 12, "!_inCallback");
        let wasInputPaused = this[_isInputPaused];
        this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
        callback();
        this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
        this[_checkState](wasInputPaused);
      }
      [_checkState](wasInputPaused) {
        if (wasInputPaused == null) dart.nullFailed(I[65], 430, 25, "wasInputPaused");
        if (!!dart.test(this[_inCallback])) dart.assertFailed(null, I[65], 431, 12, "!_inCallback");
        if (dart.test(this[_hasPending]) && dart.test(dart.nullCheck(this[_pending$]).isEmpty)) {
          this[_state] = (dart.notNull(this[_state]) & ~64 >>> 0) >>> 0;
          if (dart.test(this[_isInputPaused]) && dart.test(this[_mayResumeInput])) {
            this[_state] = (dart.notNull(this[_state]) & ~4 >>> 0) >>> 0;
          }
        }
        while (true) {
          if (dart.test(this[_isCanceled])) {
            this[_pending$] = null;
            return;
          }
          let isInputPaused = this[_isInputPaused];
          if (wasInputPaused == isInputPaused) break;
          this[_state] = (dart.notNull(this[_state]) ^ 32) >>> 0;
          if (dart.test(isInputPaused)) {
            this[_onPause]();
          } else {
            this[_onResume]();
          }
          this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
          wasInputPaused = isInputPaused;
        }
        if (dart.test(this[_hasPending]) && !dart.test(this[_isPaused])) {
          dart.nullCheck(this[_pending$]).schedule(this);
        }
      }
    }
    (_BufferingStreamSubscription.new = function(onData, onError, onDone, cancelOnError) {
      if (cancelOnError == null) dart.nullFailed(I[65], 102, 28, "cancelOnError");
      _BufferingStreamSubscription.zoned.call(this, async.Zone.current, onData, onError, onDone, cancelOnError);
    }).prototype = _BufferingStreamSubscription.prototype;
    (_BufferingStreamSubscription.zoned = function(_zone, onData, onError, onDone, cancelOnError) {
      if (_zone == null) dart.nullFailed(I[65], 105, 43, "_zone");
      if (cancelOnError == null) dart.nullFailed(I[65], 106, 47, "cancelOnError");
      this[_cancelFuture] = null;
      this[_pending$] = null;
      this[_zone$] = _zone;
      this[_state] = dart.test(cancelOnError) ? 1 : 0;
      this[_onData$] = async._BufferingStreamSubscription._registerDataHandler(T, _zone, onData);
      this[_onError] = async._BufferingStreamSubscription._registerErrorHandler(_zone, onError);
      this[_onDone$] = async._BufferingStreamSubscription._registerDoneHandler(_zone, onDone);
      ;
    }).prototype = _BufferingStreamSubscription.prototype;
    _BufferingStreamSubscription.prototype[dart.isStreamSubscription] = true;
    dart.addTypeTests(_BufferingStreamSubscription);
    _BufferingStreamSubscription.prototype[_is__BufferingStreamSubscription_default] = true;
    dart.addTypeCaches(_BufferingStreamSubscription);
    _BufferingStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T), async._EventSink$(T), async._EventDispatch$(T)];
    dart.setMethodSignature(_BufferingStreamSubscription, () => ({
      __proto__: dart.getMethods(_BufferingStreamSubscription.__proto__),
      [_setPendingEvents]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [T]))]),
      onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
      onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
      pause: dart.fnType(dart.void, [], [dart.nullable(async.Future$(dart.void))]),
      resume: dart.fnType(dart.void, []),
      cancel: dart.fnType(async.Future, []),
      asFuture: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)]),
      [_cancel]: dart.fnType(dart.void, []),
      [_decrementPauseCount]: dart.fnType(dart.void, []),
      [_add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_close]: dart.fnType(dart.void, []),
      [_onPause]: dart.fnType(dart.void, []),
      [_onResume]: dart.fnType(dart.void, []),
      [_onCancel]: dart.fnType(dart.nullable(async.Future$(dart.void)), []),
      [_addPending]: dart.fnType(dart.void, [async._DelayedEvent]),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, []),
      [_guardCallback]: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
      [_checkState]: dart.fnType(dart.void, [core.bool])
    }));
    dart.setGetterSignature(_BufferingStreamSubscription, () => ({
      __proto__: dart.getGetters(_BufferingStreamSubscription.__proto__),
      [_isInputPaused]: core.bool,
      [_isClosed]: core.bool,
      [_isCanceled]: core.bool,
      [_waitsForCancel]: core.bool,
      [_inCallback]: core.bool,
      [_hasPending]: core.bool,
      [_isPaused]: core.bool,
      [_canFire]: core.bool,
      [_mayResumeInput]: core.bool,
      [_cancelOnError]: core.bool,
      isPaused: core.bool
    }));
    dart.setLibraryUri(_BufferingStreamSubscription, I[29]);
    dart.setFieldSignature(_BufferingStreamSubscription, () => ({
      __proto__: dart.getFields(_BufferingStreamSubscription.__proto__),
      [_onData$]: dart.fieldType(dart.fnType(dart.void, [T])),
      [_onError]: dart.fieldType(core.Function),
      [_onDone$]: dart.fieldType(dart.fnType(dart.void, [])),
      [_zone$]: dart.finalFieldType(async.Zone),
      [_state]: dart.fieldType(core.int),
      [_cancelFuture]: dart.fieldType(dart.nullable(async.Future)),
      [_pending$]: dart.fieldType(dart.nullable(async._PendingEvents$(T)))
    }));
    return _BufferingStreamSubscription;
  });
  async._BufferingStreamSubscription = async._BufferingStreamSubscription$();
  dart.defineLazy(async._BufferingStreamSubscription, {
    /*async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR*/get _STATE_CANCEL_ON_ERROR() {
      return 1;
    },
    /*async._BufferingStreamSubscription._STATE_CLOSED*/get _STATE_CLOSED() {
      return 2;
    },
    /*async._BufferingStreamSubscription._STATE_INPUT_PAUSED*/get _STATE_INPUT_PAUSED() {
      return 4;
    },
    /*async._BufferingStreamSubscription._STATE_CANCELED*/get _STATE_CANCELED() {
      return 8;
    },
    /*async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL*/get _STATE_WAIT_FOR_CANCEL() {
      return 16;
    },
    /*async._BufferingStreamSubscription._STATE_IN_CALLBACK*/get _STATE_IN_CALLBACK() {
      return 32;
    },
    /*async._BufferingStreamSubscription._STATE_HAS_PENDING*/get _STATE_HAS_PENDING() {
      return 64;
    },
    /*async._BufferingStreamSubscription._STATE_PAUSE_COUNT*/get _STATE_PAUSE_COUNT() {
      return 128;
    }
  }, false);
  dart.addTypeTests(async._BufferingStreamSubscription, _is__BufferingStreamSubscription_default);
  const _is__ControllerSubscription_default = Symbol('_is__ControllerSubscription_default');
  async._ControllerSubscription$ = dart.generic(T => {
    class _ControllerSubscription extends async._BufferingStreamSubscription$(T) {
      [_onCancel]() {
        return this[_controller$][_recordCancel](this);
      }
      [_onPause]() {
        this[_controller$][_recordPause](this);
      }
      [_onResume]() {
        this[_controller$][_recordResume](this);
      }
    }
    (_ControllerSubscription.new = function(_controller, onData, onError, onDone, cancelOnError) {
      if (_controller == null) dart.nullFailed(I[64], 804, 32, "_controller");
      if (cancelOnError == null) dart.nullFailed(I[64], 805, 47, "cancelOnError");
      this[_controller$] = _controller;
      _ControllerSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
      ;
    }).prototype = _ControllerSubscription.prototype;
    dart.addTypeTests(_ControllerSubscription);
    _ControllerSubscription.prototype[_is__ControllerSubscription_default] = true;
    dart.addTypeCaches(_ControllerSubscription);
    dart.setLibraryUri(_ControllerSubscription, I[29]);
    dart.setFieldSignature(_ControllerSubscription, () => ({
      __proto__: dart.getFields(_ControllerSubscription.__proto__),
      [_controller$]: dart.finalFieldType(async._StreamControllerLifecycle$(T))
    }));
    return _ControllerSubscription;
  });
  async._ControllerSubscription = async._ControllerSubscription$();
  dart.addTypeTests(async._ControllerSubscription, _is__ControllerSubscription_default);
  const _is__BroadcastSubscription_default = Symbol('_is__BroadcastSubscription_default');
  async._BroadcastSubscription$ = dart.generic(T => {
    var _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
    var _BroadcastSubscriptionNOfT = () => (_BroadcastSubscriptionNOfT = dart.constFn(dart.nullable(_BroadcastSubscriptionOfT())))();
    class _BroadcastSubscription extends async._ControllerSubscription$(T) {
      get [_next$1]() {
        return this[_next$0];
      }
      set [_next$1](value) {
        this[_next$0] = _BroadcastSubscriptionNOfT().as(value);
      }
      get [_previous$1]() {
        return this[_previous$0];
      }
      set [_previous$1](value) {
        this[_previous$0] = _BroadcastSubscriptionNOfT().as(value);
      }
      [_expectsEvent](eventId) {
        if (eventId == null) dart.nullFailed(I[63], 36, 26, "eventId");
        return (dart.notNull(this[_eventState]) & 1) >>> 0 === eventId;
      }
      [_toggleEventId]() {
        this[_eventState] = (dart.notNull(this[_eventState]) ^ 1) >>> 0;
      }
      get [_isFiring]() {
        return (dart.notNull(this[_eventState]) & 2) !== 0;
      }
      [_setRemoveAfterFiring]() {
        if (!dart.test(this[_isFiring])) dart.assertFailed(null, I[63], 45, 12, "_isFiring");
        this[_eventState] = (dart.notNull(this[_eventState]) | 4) >>> 0;
      }
      get [_removeAfterFiring]() {
        return (dart.notNull(this[_eventState]) & 4) !== 0;
      }
      [_onPause]() {
      }
      [_onResume]() {
      }
    }
    (_BroadcastSubscription.new = function(controller, onData, onError, onDone, cancelOnError) {
      if (controller == null) dart.nullFailed(I[63], 27, 37, "controller");
      if (cancelOnError == null) dart.nullFailed(I[63], 31, 12, "cancelOnError");
      this[_eventState] = 0;
      this[_next$0] = null;
      this[_previous$0] = null;
      _BroadcastSubscription.__proto__.new.call(this, controller, onData, onError, onDone, cancelOnError);
      this[_next$1] = this[_previous$1] = this;
    }).prototype = _BroadcastSubscription.prototype;
    dart.addTypeTests(_BroadcastSubscription);
    _BroadcastSubscription.prototype[_is__BroadcastSubscription_default] = true;
    dart.addTypeCaches(_BroadcastSubscription);
    dart.setMethodSignature(_BroadcastSubscription, () => ({
      __proto__: dart.getMethods(_BroadcastSubscription.__proto__),
      [_expectsEvent]: dart.fnType(core.bool, [core.int]),
      [_toggleEventId]: dart.fnType(dart.void, []),
      [_setRemoveAfterFiring]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_BroadcastSubscription, () => ({
      __proto__: dart.getGetters(_BroadcastSubscription.__proto__),
      [_isFiring]: core.bool,
      [_removeAfterFiring]: core.bool
    }));
    dart.setLibraryUri(_BroadcastSubscription, I[29]);
    dart.setFieldSignature(_BroadcastSubscription, () => ({
      __proto__: dart.getFields(_BroadcastSubscription.__proto__),
      [_eventState]: dart.fieldType(core.int),
      [_next$1]: dart.fieldType(dart.nullable(async._BroadcastSubscription$(T))),
      [_previous$1]: dart.fieldType(dart.nullable(async._BroadcastSubscription$(T)))
    }));
    return _BroadcastSubscription;
  });
  async._BroadcastSubscription = async._BroadcastSubscription$();
  dart.defineLazy(async._BroadcastSubscription, {
    /*async._BroadcastSubscription._STATE_EVENT_ID*/get _STATE_EVENT_ID() {
      return 1;
    },
    /*async._BroadcastSubscription._STATE_FIRING*/get _STATE_FIRING() {
      return 2;
    },
    /*async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING*/get _STATE_REMOVE_AFTER_FIRING() {
      return 4;
    }
  }, false);
  dart.addTypeTests(async._BroadcastSubscription, _is__BroadcastSubscription_default);
  var _firstSubscription = dart.privateName(async, "_firstSubscription");
  var _lastSubscription = dart.privateName(async, "_lastSubscription");
  var _addStreamState = dart.privateName(async, "_addStreamState");
  var _doneFuture = dart.privateName(async, "_doneFuture");
  var _isEmpty = dart.privateName(async, "_isEmpty");
  var _hasOneListener = dart.privateName(async, "_hasOneListener");
  var _isAddingStream = dart.privateName(async, "_isAddingStream");
  var _mayAddEvent = dart.privateName(async, "_mayAddEvent");
  var _ensureDoneFuture = dart.privateName(async, "_ensureDoneFuture");
  var _addListener = dart.privateName(async, "_addListener");
  var _removeListener = dart.privateName(async, "_removeListener");
  var _callOnCancel = dart.privateName(async, "_callOnCancel");
  var _addEventError = dart.privateName(async, "_addEventError");
  var _forEachListener = dart.privateName(async, "_forEachListener");
  var _mayComplete = dart.privateName(async, "_mayComplete");
  var _asyncComplete = dart.privateName(async, "_asyncComplete");
  const _is__BroadcastStreamController_default = Symbol('_is__BroadcastStreamController_default');
  async._BroadcastStreamController$ = dart.generic(T => {
    var _BroadcastStreamOfT = () => (_BroadcastStreamOfT = dart.constFn(async._BroadcastStream$(T)))();
    var _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
    var _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
    var _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var _AddStreamStateOfT = () => (_AddStreamStateOfT = dart.constFn(async._AddStreamState$(T)))();
    class _BroadcastStreamController extends core.Object {
      get onPause() {
        dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
      }
      set onPause(onPauseHandler) {
        dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
      }
      get onResume() {
        dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
      }
      set onResume(onResumeHandler) {
        dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
      }
      get stream() {
        return new (_BroadcastStreamOfT()).new(this);
      }
      get sink() {
        return new (_StreamSinkWrapperOfT()).new(this);
      }
      get isClosed() {
        return (dart.notNull(this[_state]) & 4) !== 0;
      }
      get isPaused() {
        return false;
      }
      get hasListener() {
        return !dart.test(this[_isEmpty]);
      }
      get [_hasOneListener]() {
        if (!!dart.test(this[_isEmpty])) dart.assertFailed(null, I[63], 141, 12, "!_isEmpty");
        return this[_firstSubscription] == this[_lastSubscription];
      }
      get [_isFiring]() {
        return (dart.notNull(this[_state]) & 2) !== 0;
      }
      get [_isAddingStream]() {
        return (dart.notNull(this[_state]) & 8) !== 0;
      }
      get [_mayAddEvent]() {
        return dart.notNull(this[_state]) < 4;
      }
      [_ensureDoneFuture]() {
        let t87;
        t87 = this[_doneFuture];
        return t87 == null ? this[_doneFuture] = new (T$._FutureOfvoid()).new() : t87;
      }
      get [_isEmpty]() {
        return this[_firstSubscription] == null;
      }
      [_addListener](subscription) {
        if (subscription == null) dart.nullFailed(I[63], 159, 47, "subscription");
        if (!(subscription[_next$1] == subscription)) dart.assertFailed(null, I[63], 160, 12, "identical(subscription._next, subscription)");
        subscription[_eventState] = (dart.notNull(this[_state]) & 1) >>> 0;
        let oldLast = this[_lastSubscription];
        this[_lastSubscription] = subscription;
        subscription[_next$1] = null;
        subscription[_previous$1] = oldLast;
        if (oldLast == null) {
          this[_firstSubscription] = subscription;
        } else {
          oldLast[_next$1] = subscription;
        }
      }
      [_removeListener](subscription) {
        if (subscription == null) dart.nullFailed(I[63], 174, 50, "subscription");
        if (!(subscription[_controller$] === this)) dart.assertFailed(null, I[63], 175, 12, "identical(subscription._controller, this)");
        if (!(subscription[_next$1] != subscription)) dart.assertFailed(null, I[63], 176, 12, "!identical(subscription._next, subscription)");
        let previous = subscription[_previous$1];
        let next = subscription[_next$1];
        if (previous == null) {
          this[_firstSubscription] = next;
        } else {
          previous[_next$1] = next;
        }
        if (next == null) {
          this[_lastSubscription] = previous;
        } else {
          next[_previous$1] = previous;
        }
        subscription[_next$1] = subscription[_previous$1] = subscription;
      }
      [_subscribe](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[63], 198, 28, "cancelOnError");
        if (dart.test(this.isClosed)) {
          return new (_DoneStreamSubscriptionOfT()).new(onDone);
        }
        let subscription = new (_BroadcastSubscriptionOfT()).new(this, onData, onError, onDone, cancelOnError);
        this[_addListener](subscription);
        if (this[_firstSubscription] == this[_lastSubscription]) {
          async._runGuarded(this.onListen);
        }
        return subscription;
      }
      [_recordCancel](sub) {
        if (sub == null) dart.nullFailed(I[63], 212, 53, "sub");
        let subscription = _BroadcastSubscriptionOfT().as(sub);
        if (subscription[_next$1] == subscription) return null;
        if (dart.test(subscription[_isFiring])) {
          subscription[_setRemoveAfterFiring]();
        } else {
          this[_removeListener](subscription);
          if (!dart.test(this[_isFiring]) && dart.test(this[_isEmpty])) {
            this[_callOnCancel]();
          }
        }
        return null;
      }
      [_recordPause](subscription) {
        if (subscription == null) dart.nullFailed(I[63], 229, 43, "subscription");
      }
      [_recordResume](subscription) {
        if (subscription == null) dart.nullFailed(I[63], 230, 44, "subscription");
      }
      [_addEventError]() {
        if (dart.test(this.isClosed)) {
          return new core.StateError.new("Cannot add new events after calling close");
        }
        if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, I[63], 238, 12, "_isAddingStream");
        return new core.StateError.new("Cannot add new events while doing an addStream");
      }
      add(data) {
        T.as(data);
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
        this[_sendData](data);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[63], 247, 24, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
        let replacement = async.Zone.current.errorCallback(error, stackTrace);
        if (replacement != null) {
          error = replacement.error;
          stackTrace = replacement.stackTrace;
        } else {
          stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        }
        if (stackTrace == null) dart.throw("unreachable");
        this[_sendError](error, stackTrace);
      }
      close() {
        if (dart.test(this.isClosed)) {
          if (!(this[_doneFuture] != null)) dart.assertFailed(null, I[63], 263, 14, "_doneFuture != null");
          return dart.nullCheck(this[_doneFuture]);
        }
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
        this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
        let doneFuture = this[_ensureDoneFuture]();
        this[_sendDone]();
        return doneFuture;
      }
      get done() {
        return this[_ensureDoneFuture]();
      }
      addStream(stream, opts) {
        let t87;
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[63], 275, 30, "stream");
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
        this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
        let addStreamState = new (_AddStreamStateOfT()).new(this, stream, (t87 = cancelOnError, t87 == null ? false : t87));
        this[_addStreamState] = addStreamState;
        return addStreamState.addStreamFuture;
      }
      [_add](data) {
        this[_sendData](data);
      }
      [_addError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[63], 289, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[63], 289, 43, "stackTrace");
        this[_sendError](error, stackTrace);
      }
      [_close]() {
        if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, I[63], 294, 12, "_isAddingStream");
        let addState = dart.nullCheck(this[_addStreamState]);
        this[_addStreamState] = null;
        this[_state] = (dart.notNull(this[_state]) & ~8 >>> 0) >>> 0;
        addState.complete();
      }
      [_forEachListener](action) {
        let t87, t87$;
        if (action == null) dart.nullFailed(I[63], 303, 12, "action");
        if (dart.test(this[_isFiring])) {
          dart.throw(new core.StateError.new("Cannot fire new event. Controller is already firing an event"));
        }
        if (dart.test(this[_isEmpty])) return;
        let id = (dart.notNull(this[_state]) & 1) >>> 0;
        this[_state] = (dart.notNull(this[_state]) ^ (1 | 2) >>> 0) >>> 0;
        let subscription = this[_firstSubscription];
        while (subscription != null) {
          if (dart.test(subscription[_expectsEvent](id))) {
            t87 = subscription;
            t87[_eventState] = (dart.notNull(t87[_eventState]) | 2) >>> 0;
            action(subscription);
            subscription[_toggleEventId]();
            let next = subscription[_next$1];
            if (dart.test(subscription[_removeAfterFiring])) {
              this[_removeListener](subscription);
            }
            t87$ = subscription;
            t87$[_eventState] = (dart.notNull(t87$[_eventState]) & ~2 >>> 0) >>> 0;
            subscription = next;
          } else {
            subscription = subscription[_next$1];
          }
        }
        this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
        if (dart.test(this[_isEmpty])) {
          this[_callOnCancel]();
        }
      }
      [_callOnCancel]() {
        if (!dart.test(this[_isEmpty])) dart.assertFailed(null, I[63], 343, 12, "_isEmpty");
        if (dart.test(this.isClosed)) {
          let doneFuture = dart.nullCheck(this[_doneFuture]);
          if (dart.test(doneFuture[_mayComplete])) {
            doneFuture[_asyncComplete](null);
          }
        }
        async._runGuarded(this.onCancel);
      }
    }
    (_BroadcastStreamController.new = function(onListen, onCancel) {
      this[_firstSubscription] = null;
      this[_lastSubscription] = null;
      this[_addStreamState] = null;
      this[_doneFuture] = null;
      this.onListen = onListen;
      this.onCancel = onCancel;
      this[_state] = 0;
      ;
    }).prototype = _BroadcastStreamController.prototype;
    dart.addTypeTests(_BroadcastStreamController);
    _BroadcastStreamController.prototype[_is__BroadcastStreamController_default] = true;
    dart.addTypeCaches(_BroadcastStreamController);
    _BroadcastStreamController[dart.implements] = () => [async._StreamControllerBase$(T)];
    dart.setMethodSignature(_BroadcastStreamController, () => ({
      __proto__: dart.getMethods(_BroadcastStreamController.__proto__),
      [_ensureDoneFuture]: dart.fnType(async._Future$(dart.void), []),
      [_addListener]: dart.fnType(dart.void, [async._BroadcastSubscription$(T)]),
      [_removeListener]: dart.fnType(dart.void, [async._BroadcastSubscription$(T)]),
      [_subscribe]: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T])), dart.nullable(core.Function), dart.nullable(dart.fnType(dart.void, [])), core.bool]),
      [_recordCancel]: dart.fnType(dart.nullable(async.Future$(dart.void)), [async.StreamSubscription$(T)]),
      [_recordPause]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
      [_recordResume]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
      [_addEventError]: dart.fnType(core.Error, []),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(async.Future, []),
      addStream: dart.fnType(async.Future, [dart.nullable(core.Object)], {cancelOnError: dart.nullable(core.bool)}, {}),
      [_add]: dart.fnType(dart.void, [T]),
      [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_close]: dart.fnType(dart.void, []),
      [_forEachListener]: dart.fnType(dart.void, [dart.fnType(dart.void, [async._BufferingStreamSubscription$(T)])]),
      [_callOnCancel]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_BroadcastStreamController, () => ({
      __proto__: dart.getGetters(_BroadcastStreamController.__proto__),
      onPause: dart.fnType(dart.void, []),
      onResume: dart.fnType(dart.void, []),
      stream: async.Stream$(T),
      sink: async.StreamSink$(T),
      isClosed: core.bool,
      isPaused: core.bool,
      hasListener: core.bool,
      [_hasOneListener]: core.bool,
      [_isFiring]: core.bool,
      [_isAddingStream]: core.bool,
      [_mayAddEvent]: core.bool,
      [_isEmpty]: core.bool,
      done: async.Future$(dart.void)
    }));
    dart.setSetterSignature(_BroadcastStreamController, () => ({
      __proto__: dart.getSetters(_BroadcastStreamController.__proto__),
      onPause: dart.nullable(dart.fnType(dart.void, [])),
      onResume: dart.nullable(dart.fnType(dart.void, []))
    }));
    dart.setLibraryUri(_BroadcastStreamController, I[29]);
    dart.setFieldSignature(_BroadcastStreamController, () => ({
      __proto__: dart.getFields(_BroadcastStreamController.__proto__),
      onListen: dart.fieldType(dart.nullable(dart.fnType(dart.void, []))),
      onCancel: dart.fieldType(dart.nullable(dart.fnType(dart.void, []))),
      [_state]: dart.fieldType(core.int),
      [_firstSubscription]: dart.fieldType(dart.nullable(async._BroadcastSubscription$(T))),
      [_lastSubscription]: dart.fieldType(dart.nullable(async._BroadcastSubscription$(T))),
      [_addStreamState]: dart.fieldType(dart.nullable(async._AddStreamState$(T))),
      [_doneFuture]: dart.fieldType(dart.nullable(async._Future$(dart.void)))
    }));
    return _BroadcastStreamController;
  });
  async._BroadcastStreamController = async._BroadcastStreamController$();
  dart.defineLazy(async._BroadcastStreamController, {
    /*async._BroadcastStreamController._STATE_INITIAL*/get _STATE_INITIAL() {
      return 0;
    },
    /*async._BroadcastStreamController._STATE_EVENT_ID*/get _STATE_EVENT_ID() {
      return 1;
    },
    /*async._BroadcastStreamController._STATE_FIRING*/get _STATE_FIRING() {
      return 2;
    },
    /*async._BroadcastStreamController._STATE_CLOSED*/get _STATE_CLOSED() {
      return 4;
    },
    /*async._BroadcastStreamController._STATE_ADDSTREAM*/get _STATE_ADDSTREAM() {
      return 8;
    }
  }, false);
  dart.addTypeTests(async._BroadcastStreamController, _is__BroadcastStreamController_default);
  const _is__SyncBroadcastStreamController_default = Symbol('_is__SyncBroadcastStreamController_default');
  async._SyncBroadcastStreamController$ = dart.generic(T => {
    var _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
    var _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
    var _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.fnType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
    class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
      get [_mayAddEvent]() {
        return dart.test(super[_mayAddEvent]) && !dart.test(this[_isFiring]);
      }
      [_addEventError]() {
        if (dart.test(this[_isFiring])) {
          return new core.StateError.new("Cannot fire new event. Controller is already firing an event");
        }
        return super[_addEventError]();
      }
      [_sendData](data) {
        if (dart.test(this[_isEmpty])) return;
        if (dart.test(this[_hasOneListener])) {
          this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
          let firstSubscription = _BroadcastSubscriptionOfT().as(this[_firstSubscription]);
          firstSubscription[_add](data);
          this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
          if (dart.test(this[_isEmpty])) {
            this[_callOnCancel]();
          }
          return;
        }
        this[_forEachListener](dart.fn(subscription => {
          if (subscription == null) dart.nullFailed(I[63], 385, 55, "subscription");
          subscription[_add](data);
        }, _BufferingStreamSubscriptionOfTTovoid()));
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[63], 390, 26, "error");
        if (stackTrace == null) dart.nullFailed(I[63], 390, 44, "stackTrace");
        if (dart.test(this[_isEmpty])) return;
        this[_forEachListener](dart.fn(subscription => {
          if (subscription == null) dart.nullFailed(I[63], 392, 55, "subscription");
          subscription[_addError](error, stackTrace);
        }, _BufferingStreamSubscriptionOfTTovoid()));
      }
      [_sendDone]() {
        if (!dart.test(this[_isEmpty])) {
          this[_forEachListener](dart.fn(subscription => {
            if (subscription == null) dart.nullFailed(I[63], 399, 57, "subscription");
            subscription[_close]();
          }, _BufferingStreamSubscriptionOfTTovoid()));
        } else {
          if (!(this[_doneFuture] != null && dart.test(dart.nullCheck(this[_doneFuture])[_mayComplete]))) dart.assertFailed(null, I[63], 403, 14, "_doneFuture != null && _doneFuture!._mayComplete");
          dart.nullCheck(this[_doneFuture])[_asyncComplete](null);
        }
      }
    }
    (_SyncBroadcastStreamController.new = function(onListen, onCancel) {
      _SyncBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
      ;
    }).prototype = _SyncBroadcastStreamController.prototype;
    dart.addTypeTests(_SyncBroadcastStreamController);
    _SyncBroadcastStreamController.prototype[_is__SyncBroadcastStreamController_default] = true;
    dart.addTypeCaches(_SyncBroadcastStreamController);
    _SyncBroadcastStreamController[dart.implements] = () => [async.SynchronousStreamController$(T)];
    dart.setMethodSignature(_SyncBroadcastStreamController, () => ({
      __proto__: dart.getMethods(_SyncBroadcastStreamController.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_SyncBroadcastStreamController, I[29]);
    return _SyncBroadcastStreamController;
  });
  async._SyncBroadcastStreamController = async._SyncBroadcastStreamController$();
  dart.addTypeTests(async._SyncBroadcastStreamController, _is__SyncBroadcastStreamController_default);
  const _is__AsyncBroadcastStreamController_default = Symbol('_is__AsyncBroadcastStreamController_default');
  async._AsyncBroadcastStreamController$ = dart.generic(T => {
    var _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
    class _AsyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
      [_sendData](data) {
        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$1]) {
          subscription[_addPending](new (_DelayedDataOfT()).new(data));
        }
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[63], 423, 26, "error");
        if (stackTrace == null) dart.nullFailed(I[63], 423, 44, "stackTrace");
        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$1]) {
          subscription[_addPending](new async._DelayedError.new(error, stackTrace));
        }
      }
      [_sendDone]() {
        if (!dart.test(this[_isEmpty])) {
          for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$1]) {
            subscription[_addPending](C[40] || CT.C40);
          }
        } else {
          if (!(this[_doneFuture] != null && dart.test(dart.nullCheck(this[_doneFuture])[_mayComplete]))) dart.assertFailed(null, I[63], 439, 14, "_doneFuture != null && _doneFuture!._mayComplete");
          dart.nullCheck(this[_doneFuture])[_asyncComplete](null);
        }
      }
    }
    (_AsyncBroadcastStreamController.new = function(onListen, onCancel) {
      _AsyncBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
      ;
    }).prototype = _AsyncBroadcastStreamController.prototype;
    dart.addTypeTests(_AsyncBroadcastStreamController);
    _AsyncBroadcastStreamController.prototype[_is__AsyncBroadcastStreamController_default] = true;
    dart.addTypeCaches(_AsyncBroadcastStreamController);
    dart.setMethodSignature(_AsyncBroadcastStreamController, () => ({
      __proto__: dart.getMethods(_AsyncBroadcastStreamController.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_AsyncBroadcastStreamController, I[29]);
    return _AsyncBroadcastStreamController;
  });
  async._AsyncBroadcastStreamController = async._AsyncBroadcastStreamController$();
  dart.addTypeTests(async._AsyncBroadcastStreamController, _is__AsyncBroadcastStreamController_default);
  var _addPendingEvent = dart.privateName(async, "_addPendingEvent");
  var _flushPending = dart.privateName(async, "_flushPending");
  const _is__AsBroadcastStreamController_default = Symbol('_is__AsBroadcastStreamController_default');
  async._AsBroadcastStreamController$ = dart.generic(T => {
    var _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
    var _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
    class _AsBroadcastStreamController extends async._SyncBroadcastStreamController$(T) {
      get [_hasPending]() {
        let pending = this[_pending$];
        return pending != null && !dart.test(pending.isEmpty);
      }
      [_addPendingEvent](event) {
        let t87;
        if (event == null) dart.nullFailed(I[63], 466, 39, "event");
        (t87 = this[_pending$], t87 == null ? this[_pending$] = new (_StreamImplEventsOfT()).new() : t87).add(event);
      }
      add(data) {
        T.as(data);
        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
          this[_addPendingEvent](new (_DelayedDataOfT()).new(data));
          return;
        }
        super.add(data);
        this[_flushPending]();
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[63], 479, 24, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
          this[_addPendingEvent](new async._DelayedError.new(error, stackTrace));
          return;
        }
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
        this[_sendError](error, stackTrace);
        this[_flushPending]();
      }
      [_flushPending]() {
        let pending = this[_pending$];
        while (pending != null && !dart.test(pending.isEmpty)) {
          pending.handleNext(this);
          pending = this[_pending$];
        }
      }
      close() {
        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
          this[_addPendingEvent](C[40] || CT.C40);
          this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
          return super.done;
        }
        let result = super.close();
        if (!!dart.test(this[_hasPending])) dart.assertFailed(null, I[63], 506, 12, "!_hasPending");
        return result;
      }
      [_callOnCancel]() {
        let pending = this[_pending$];
        if (pending != null) {
          pending.clear();
          this[_pending$] = null;
        }
        super[_callOnCancel]();
      }
    }
    (_AsBroadcastStreamController.new = function(onListen, onCancel) {
      this[_pending$] = null;
      _AsBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
      ;
    }).prototype = _AsBroadcastStreamController.prototype;
    dart.addTypeTests(_AsBroadcastStreamController);
    _AsBroadcastStreamController.prototype[_is__AsBroadcastStreamController_default] = true;
    dart.addTypeCaches(_AsBroadcastStreamController);
    _AsBroadcastStreamController[dart.implements] = () => [async._EventDispatch$(T)];
    dart.setMethodSignature(_AsBroadcastStreamController, () => ({
      __proto__: dart.getMethods(_AsBroadcastStreamController.__proto__),
      [_addPendingEvent]: dart.fnType(dart.void, [async._DelayedEvent]),
      [_flushPending]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_AsBroadcastStreamController, () => ({
      __proto__: dart.getGetters(_AsBroadcastStreamController.__proto__),
      [_hasPending]: core.bool
    }));
    dart.setLibraryUri(_AsBroadcastStreamController, I[29]);
    dart.setFieldSignature(_AsBroadcastStreamController, () => ({
      __proto__: dart.getFields(_AsBroadcastStreamController.__proto__),
      [_pending$]: dart.fieldType(dart.nullable(async._StreamImplEvents$(T)))
    }));
    return _AsBroadcastStreamController;
  });
  async._AsBroadcastStreamController = async._AsBroadcastStreamController$();
  dart.addTypeTests(async._AsBroadcastStreamController, _is__AsBroadcastStreamController_default);
  var libraryName$ = dart.privateName(async, "DeferredLibrary.libraryName");
  var uri$ = dart.privateName(async, "DeferredLibrary.uri");
  async.DeferredLibrary = class DeferredLibrary extends core.Object {
    get libraryName() {
      return this[libraryName$];
    }
    set libraryName(value) {
      super.libraryName = value;
    }
    get uri() {
      return this[uri$];
    }
    set uri(value) {
      super.uri = value;
    }
    load() {
      dart.throw("DeferredLibrary not supported. " + "please use the `import \"lib.dart\" deferred as lib` syntax.");
    }
  };
  (async.DeferredLibrary.new = function(libraryName, opts) {
    if (libraryName == null) dart.nullFailed(I[66], 18, 30, "libraryName");
    let uri = opts && 'uri' in opts ? opts.uri : null;
    this[libraryName$] = libraryName;
    this[uri$] = uri;
    ;
  }).prototype = async.DeferredLibrary.prototype;
  dart.addTypeTests(async.DeferredLibrary);
  dart.addTypeCaches(async.DeferredLibrary);
  dart.setMethodSignature(async.DeferredLibrary, () => ({
    __proto__: dart.getMethods(async.DeferredLibrary.__proto__),
    load: dart.fnType(async.Future$(core.Null), [])
  }));
  dart.setLibraryUri(async.DeferredLibrary, I[29]);
  dart.setFieldSignature(async.DeferredLibrary, () => ({
    __proto__: dart.getFields(async.DeferredLibrary.__proto__),
    libraryName: dart.finalFieldType(core.String),
    uri: dart.finalFieldType(dart.nullable(core.String))
  }));
  var _s = dart.privateName(async, "_s");
  async.DeferredLoadException = class DeferredLoadException extends core.Object {
    toString() {
      return "DeferredLoadException: '" + dart.str(this[_s]) + "'";
    }
  };
  (async.DeferredLoadException.new = function(message) {
    if (message == null) dart.nullFailed(I[66], 29, 32, "message");
    this[_s] = message;
    ;
  }).prototype = async.DeferredLoadException.prototype;
  dart.addTypeTests(async.DeferredLoadException);
  dart.addTypeCaches(async.DeferredLoadException);
  async.DeferredLoadException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(async.DeferredLoadException, I[29]);
  dart.setFieldSignature(async.DeferredLoadException, () => ({
    __proto__: dart.getFields(async.DeferredLoadException.__proto__),
    [_s]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(async.DeferredLoadException, ['toString']);
  async.FutureOr$ = dart.normalizeFutureOr(T => {
    class FutureOr extends core.Object {}
    (FutureOr.__ = function() {
      dart.throw(new core.UnsupportedError.new("FutureOr can't be instantiated"));
    }).prototype = FutureOr.prototype;
    dart.addTypeCaches(FutureOr);
    dart.setLibraryUri(FutureOr, I[29]);
    return FutureOr;
  });
  async.FutureOr = async.FutureOr$();
  var _asyncCompleteError = dart.privateName(async, "_asyncCompleteError");
  var _completeWithValue = dart.privateName(async, "_completeWithValue");
  async.Future$ = dart.generic(T => {
    class Future extends core.Object {
      static new(computation) {
        if (computation == null) dart.nullFailed(I[67], 170, 30, "computation");
        let result = new (async._Future$(T)).new();
        async.Timer.run(dart.fn(() => {
          try {
            result[_complete](computation());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._completeWithErrorCallback(result, e, s);
            } else
              throw e$;
          }
        }, T$.VoidTovoid()));
        return result;
      }
      static microtask(computation) {
        if (computation == null) dart.nullFailed(I[67], 194, 40, "computation");
        let result = new (async._Future$(T)).new();
        async.scheduleMicrotask(dart.fn(() => {
          try {
            result[_complete](computation());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._completeWithErrorCallback(result, e, s);
            } else
              throw e$;
          }
        }, T$.VoidTovoid()));
        return result;
      }
      static sync(computation) {
        if (computation == null) dart.nullFailed(I[67], 216, 35, "computation");
        try {
          let result = computation();
          if (async.Future$(T).is(result)) {
            return result;
          } else {
            return new (async._Future$(T)).value(T.as(result));
          }
        } catch (e) {
          let error = dart.getThrown(e);
          let stackTrace = dart.stackTrace(e);
          if (core.Object.is(error)) {
            let future = new (async._Future$(T)).new();
            let replacement = async.Zone.current.errorCallback(error, stackTrace);
            if (replacement != null) {
              future[_asyncCompleteError](replacement.error, replacement.stackTrace);
            } else {
              future[_asyncCompleteError](error, stackTrace);
            }
            return future;
          } else
            throw e;
        }
      }
      static value(value = null) {
        return new (async._Future$(T)).immediate(value == null ? T.as(value) : value);
      }
      static error(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[67], 267, 31, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        if (async.Zone.current != async._rootZone) {
          let replacement = async.Zone.current.errorCallback(error, stackTrace);
          if (replacement != null) {
            error = replacement.error;
            stackTrace = replacement.stackTrace;
          }
        }
        stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        return new (async._Future$(T)).immediateError(error, stackTrace);
      }
      static delayed(duration, computation = null) {
        if (duration == null) dart.nullFailed(I[67], 304, 35, "duration");
        if (computation == null && !dart.test(_internal.typeAcceptsNull(T))) {
          dart.throw(new core.ArgumentError.value(null, "computation", "The type parameter is not nullable"));
        }
        let result = new (async._Future$(T)).new();
        async.Timer.new(duration, dart.fn(() => {
          if (computation == null) {
            result[_complete](T.as(null));
          } else {
            try {
              result[_complete](computation());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                async._completeWithErrorCallback(result, e, s);
              } else
                throw e$;
            }
          }
        }, T$.VoidTovoid()));
        return result;
      }
      static wait(T, futures, opts) {
        let t101;
        if (futures == null) dart.nullFailed(I[67], 352, 54, "futures");
        let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false;
        if (eagerError == null) dart.nullFailed(I[67], 353, 13, "eagerError");
        let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null;
        let _future = new (async._Future$(core.List$(T))).new();
        let values = null;
        let remaining = 0;
        let error = null;
        let error$35isSet = false;
        function error$35get() {
          return error$35isSet ? error : dart.throw(new _internal.LateError.localNI("error"));
        }
        dart.fn(error$35get, T$.VoidToObject());
        function error$35set(t94) {
          if (t94 == null) dart.nullFailed(I[67], 359, 17, "null");
          error$35isSet = true;
          return error = t94;
        }
        dart.fn(error$35set, T$.ObjectTodynamic());
        let stackTrace = null;
        let stackTrace$35isSet = false;
        function stackTrace$35get() {
          return stackTrace$35isSet ? stackTrace : dart.throw(new _internal.LateError.localNI("stackTrace"));
        }
        dart.fn(stackTrace$35get, T$.VoidToStackTrace());
        function stackTrace$35set(t99) {
          if (t99 == null) dart.nullFailed(I[67], 360, 21, "null");
          stackTrace$35isSet = true;
          return stackTrace = t99;
        }
        dart.fn(stackTrace$35set, T$.StackTraceTodynamic());
        function handleError(theError, theStackTrace) {
          if (theError == null) dart.nullFailed(I[67], 363, 29, "theError");
          if (theStackTrace == null) dart.nullFailed(I[67], 363, 50, "theStackTrace");
          remaining = remaining - 1;
          let valueList = values;
          if (valueList != null) {
            if (cleanUp != null) {
              for (let value of valueList) {
                if (value != null) {
                  let cleanUpValue = value;
                  T$.FutureOfNull().sync(dart.fn(() => {
                    cleanUp(cleanUpValue);
                  }, T$.VoidToNull()));
                }
              }
            }
            values = null;
            if (remaining === 0 || dart.test(eagerError)) {
              _future[_completeError](theError, theStackTrace);
            } else {
              error$35set(theError);
              stackTrace$35set(theStackTrace);
            }
          } else if (remaining === 0 && !dart.test(eagerError)) {
            _future[_completeError](error$35get(), stackTrace$35get());
          }
        }
        dart.fn(handleError, T$.ObjectAndStackTraceTovoid());
        try {
          for (let future of futures) {
            let pos = remaining;
            future.then(core.Null, dart.fn(value => {
              remaining = remaining - 1;
              let valueList = values;
              if (valueList != null) {
                valueList[$_set](pos, value);
                if (remaining === 0) {
                  _future[_completeWithValue](core.List$(T).from(valueList));
                }
              } else {
                if (cleanUp != null && value != null) {
                  T$.FutureOfNull().sync(dart.fn(() => {
                    cleanUp(value);
                  }, T$.VoidToNull()));
                }
                if (remaining === 0 && !dart.test(eagerError)) {
                  _future[_completeError](error$35get(), stackTrace$35get());
                }
              }
            }, dart.fnType(core.Null, [T])), {onError: handleError});
            remaining = remaining + 1;
          }
          if (remaining === 0) {
            t101 = _future;
            return (() => {
              t101[_completeWithValue](_interceptors.JSArray$(T).of([]));
              return t101;
            })();
          }
          values = core.List$(dart.nullable(T)).filled(remaining, null);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let st = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            if (remaining === 0 || dart.test(eagerError)) {
              return async.Future$(core.List$(T)).error(e, st);
            } else {
              error$35set(e);
              stackTrace$35set(st);
            }
          } else
            throw e$;
        }
        return _future;
      }
      static any(T, futures) {
        if (futures == null) dart.nullFailed(I[67], 459, 47, "futures");
        let completer = async.Completer$(T).sync();
        function onValue(value) {
          if (!dart.test(completer.isCompleted)) completer.complete(value);
        }
        dart.fn(onValue, dart.fnType(dart.void, [T]));
        function onError(error, stack) {
          if (error == null) dart.nullFailed(I[67], 465, 25, "error");
          if (stack == null) dart.nullFailed(I[67], 465, 43, "stack");
          if (!dart.test(completer.isCompleted)) completer.completeError(error, stack);
        }
        dart.fn(onError, T$.ObjectAndStackTraceTovoid());
        for (let future of futures) {
          future.then(dart.void, onValue, {onError: onError});
        }
        return completer.future;
      }
      static forEach(T, elements, action) {
        if (elements == null) dart.nullFailed(I[67], 491, 40, "elements");
        if (action == null) dart.nullFailed(I[67], 491, 59, "action");
        let iterator = elements[$iterator];
        return async.Future.doWhile(dart.fn(() => {
          if (!dart.test(iterator.moveNext())) return false;
          let result = action(iterator.current);
          if (async.Future.is(result)) return result.then(core.bool, C[41] || CT.C41);
          return true;
        }, T$.VoidToFutureOrOfbool()));
      }
      static _kTrue(_) {
        return true;
      }
      static doWhile(action) {
        if (action == null) dart.nullFailed(I[67], 524, 40, "action");
        let doneSignal = new (T$._FutureOfvoid()).new();
        let nextIteration = null;
        let nextIteration$35isSet = false;
        function nextIteration$35get() {
          return nextIteration$35isSet ? nextIteration : dart.throw(new _internal.LateError.localNI("nextIteration"));
        }
        dart.fn(nextIteration$35get, T$.VoidToFn());
        function nextIteration$35set(t105) {
          if (t105 == null) dart.nullFailed(I[67], 526, 30, "null");
          nextIteration$35isSet = true;
          return nextIteration = t105;
        }
        dart.fn(nextIteration$35set, T$.FnTodynamic());
        nextIteration$35set(async.Zone.current.bindUnaryCallbackGuarded(core.bool, dart.fn(keepGoing => {
          if (keepGoing == null) dart.nullFailed(I[67], 531, 65, "keepGoing");
          while (dart.test(keepGoing)) {
            let result = null;
            try {
              result = action();
            } catch (e) {
              let error = dart.getThrown(e);
              let stackTrace = dart.stackTrace(e);
              if (core.Object.is(error)) {
                async._asyncCompleteWithErrorCallback(doneSignal, error, stackTrace);
                return;
              } else
                throw e;
            }
            if (T$.FutureOfbool().is(result)) {
              result.then(dart.void, nextIteration$35get(), {onError: dart.bind(doneSignal, _completeError)});
              return;
            }
            keepGoing = result;
          }
          doneSignal[_complete](null);
        }, T$.boolTovoid())));
        nextIteration$35get()(true);
        return doneSignal;
      }
    }
    (Future[dart.mixinNew] = function() {
    }).prototype = Future.prototype;
    dart.addTypeTests(Future);
    Future.prototype[dart.isFuture] = true;
    dart.addTypeCaches(Future);
    dart.setLibraryUri(Future, I[29]);
    return Future;
  });
  async.Future = async.Future$();
  dart.defineLazy(async.Future, {
    /*async.Future._nullFuture*/get _nullFuture() {
      return T$._FutureOfNull().as(_internal.nullFuture);
    },
    /*async.Future._falseFuture*/get _falseFuture() {
      return new (T$._FutureOfbool()).zoneValue(false, async._rootZone);
    }
  }, false);
  dart.addTypeTests(async.Future, dart.isFuture);
  var message$1 = dart.privateName(async, "TimeoutException.message");
  var duration$ = dart.privateName(async, "TimeoutException.duration");
  async.TimeoutException = class TimeoutException extends core.Object {
    get message() {
      return this[message$1];
    }
    set message(value) {
      super.message = value;
    }
    get duration() {
      return this[duration$];
    }
    set duration(value) {
      super.duration = value;
    }
    toString() {
      let result = "TimeoutException";
      if (this.duration != null) result = "TimeoutException after " + dart.str(this.duration);
      if (this.message != null) result = result + ": " + dart.str(this.message);
      return result;
    }
  };
  (async.TimeoutException.new = function(message, duration = null) {
    this[message$1] = message;
    this[duration$] = duration;
    ;
  }).prototype = async.TimeoutException.prototype;
  dart.addTypeTests(async.TimeoutException);
  dart.addTypeCaches(async.TimeoutException);
  async.TimeoutException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(async.TimeoutException, I[29]);
  dart.setFieldSignature(async.TimeoutException, () => ({
    __proto__: dart.getFields(async.TimeoutException.__proto__),
    message: dart.finalFieldType(dart.nullable(core.String)),
    duration: dart.finalFieldType(dart.nullable(core.Duration))
  }));
  dart.defineExtensionMethods(async.TimeoutException, ['toString']);
  const _is_Completer_default = Symbol('_is_Completer_default');
  async.Completer$ = dart.generic(T => {
    class Completer extends core.Object {
      static new() {
        return new (async._AsyncCompleter$(T)).new();
      }
      static sync() {
        return new (async._SyncCompleter$(T)).new();
      }
    }
    (Completer[dart.mixinNew] = function() {
    }).prototype = Completer.prototype;
    dart.addTypeTests(Completer);
    Completer.prototype[_is_Completer_default] = true;
    dart.addTypeCaches(Completer);
    dart.setLibraryUri(Completer, I[29]);
    return Completer;
  });
  async.Completer = async.Completer$();
  dart.addTypeTests(async.Completer, _is_Completer_default);
  const _is__Completer_default = Symbol('_is__Completer_default');
  async._Completer$ = dart.generic(T => {
    var _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
    class _Completer extends core.Object {
      completeError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[68], 21, 29, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
        let replacement = async.Zone.current.errorCallback(error, stackTrace);
        if (replacement != null) {
          error = replacement.error;
          stackTrace = replacement.stackTrace;
        } else {
          stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        }
        if (stackTrace == null) dart.throw("unreachable");
        this[_completeError](error, stackTrace);
      }
      get isCompleted() {
        return !dart.test(this.future[_mayComplete]);
      }
    }
    (_Completer.new = function() {
      this.future = new (_FutureOfT()).new();
      ;
    }).prototype = _Completer.prototype;
    dart.addTypeTests(_Completer);
    _Completer.prototype[_is__Completer_default] = true;
    dart.addTypeCaches(_Completer);
    _Completer[dart.implements] = () => [async.Completer$(T)];
    dart.setMethodSignature(_Completer, () => ({
      __proto__: dart.getMethods(_Completer.__proto__),
      completeError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)])
    }));
    dart.setGetterSignature(_Completer, () => ({
      __proto__: dart.getGetters(_Completer.__proto__),
      isCompleted: core.bool
    }));
    dart.setLibraryUri(_Completer, I[29]);
    dart.setFieldSignature(_Completer, () => ({
      __proto__: dart.getFields(_Completer.__proto__),
      future: dart.finalFieldType(async._Future$(T))
    }));
    return _Completer;
  });
  async._Completer = async._Completer$();
  dart.addTypeTests(async._Completer, _is__Completer_default);
  const _is__AsyncCompleter_default = Symbol('_is__AsyncCompleter_default');
  async._AsyncCompleter$ = dart.generic(T => {
    var FutureOrOfT = () => (FutureOrOfT = dart.constFn(async.FutureOr$(T)))();
    var FutureOrNOfT = () => (FutureOrNOfT = dart.constFn(dart.nullable(FutureOrOfT())))();
    class _AsyncCompleter extends async._Completer$(T) {
      complete(value = null) {
        FutureOrNOfT().as(value);
        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
        this.future[_asyncComplete](FutureOrOfT().as(value == null ? value : value));
      }
      [_completeError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[68], 49, 30, "error");
        if (stackTrace == null) dart.nullFailed(I[68], 49, 48, "stackTrace");
        this.future[_asyncCompleteError](error, stackTrace);
      }
    }
    (_AsyncCompleter.new = function() {
      _AsyncCompleter.__proto__.new.call(this);
      ;
    }).prototype = _AsyncCompleter.prototype;
    dart.addTypeTests(_AsyncCompleter);
    _AsyncCompleter.prototype[_is__AsyncCompleter_default] = true;
    dart.addTypeCaches(_AsyncCompleter);
    dart.setMethodSignature(_AsyncCompleter, () => ({
      __proto__: dart.getMethods(_AsyncCompleter.__proto__),
      complete: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
      [_completeError]: dart.fnType(dart.void, [core.Object, core.StackTrace])
    }));
    dart.setLibraryUri(_AsyncCompleter, I[29]);
    return _AsyncCompleter;
  });
  async._AsyncCompleter = async._AsyncCompleter$();
  dart.addTypeTests(async._AsyncCompleter, _is__AsyncCompleter_default);
  const _is__SyncCompleter_default = Symbol('_is__SyncCompleter_default');
  async._SyncCompleter$ = dart.generic(T => {
    var FutureOrOfT = () => (FutureOrOfT = dart.constFn(async.FutureOr$(T)))();
    var FutureOrNOfT = () => (FutureOrNOfT = dart.constFn(dart.nullable(FutureOrOfT())))();
    class _SyncCompleter extends async._Completer$(T) {
      complete(value = null) {
        FutureOrNOfT().as(value);
        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
        this.future[_complete](FutureOrOfT().as(value == null ? value : value));
      }
      [_completeError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[68], 60, 30, "error");
        if (stackTrace == null) dart.nullFailed(I[68], 60, 48, "stackTrace");
        this.future[_completeError](error, stackTrace);
      }
    }
    (_SyncCompleter.new = function() {
      _SyncCompleter.__proto__.new.call(this);
      ;
    }).prototype = _SyncCompleter.prototype;
    dart.addTypeTests(_SyncCompleter);
    _SyncCompleter.prototype[_is__SyncCompleter_default] = true;
    dart.addTypeCaches(_SyncCompleter);
    dart.setMethodSignature(_SyncCompleter, () => ({
      __proto__: dart.getMethods(_SyncCompleter.__proto__),
      complete: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
      [_completeError]: dart.fnType(dart.void, [core.Object, core.StackTrace])
    }));
    dart.setLibraryUri(_SyncCompleter, I[29]);
    return _SyncCompleter;
  });
  async._SyncCompleter = async._SyncCompleter$();
  dart.addTypeTests(async._SyncCompleter, _is__SyncCompleter_default);
  var _nextListener = dart.privateName(async, "_nextListener");
  var _onValue = dart.privateName(async, "_onValue");
  var _errorTest = dart.privateName(async, "_errorTest");
  var _whenCompleteAction = dart.privateName(async, "_whenCompleteAction");
  const _is__FutureListener_default = Symbol('_is__FutureListener_default');
  async._FutureListener$ = dart.generic((S, T) => {
    var SToFutureOrOfT = () => (SToFutureOrOfT = dart.constFn(dart.fnType(FutureOrOfT(), [S])))();
    var FutureOrOfT = () => (FutureOrOfT = dart.constFn(async.FutureOr$(T)))();
    var FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
    class _FutureListener extends core.Object {
      get [_zone$]() {
        return this.result[_zone$];
      }
      get handlesValue() {
        return (dart.notNull(this.state) & 1) !== 0;
      }
      get handlesError() {
        return (dart.notNull(this.state) & 2) !== 0;
      }
      get hasErrorTest() {
        return (dart.notNull(this.state) & 15) >>> 0 === 6;
      }
      get handlesComplete() {
        return (dart.notNull(this.state) & 15) >>> 0 === 8;
      }
      get isAwait() {
        return (dart.notNull(this.state) & 16) !== 0;
      }
      get [_onValue]() {
        if (!dart.test(this.handlesValue)) dart.assertFailed(null, I[68], 128, 12, "handlesValue");
        return SToFutureOrOfT().as(this.callback);
      }
      get [_onError]() {
        return this.errorCallback;
      }
      get [_errorTest]() {
        if (!dart.test(this.hasErrorTest)) dart.assertFailed(null, I[68], 135, 12, "hasErrorTest");
        return T$.ObjectTobool().as(this.callback);
      }
      get [_whenCompleteAction]() {
        if (!dart.test(this.handlesComplete)) dart.assertFailed(null, I[68], 140, 12, "handlesComplete");
        return T$.VoidTodynamic().as(this.callback);
      }
      get hasErrorCallback() {
        if (!dart.test(this.handlesError)) dart.assertFailed(null, I[68], 148, 12, "handlesError");
        return this[_onError] != null;
      }
      handleValue(sourceResult) {
        S.as(sourceResult);
        return this[_zone$].runUnary(FutureOrOfT(), S, this[_onValue], sourceResult);
      }
      matchesErrorTest(asyncError) {
        if (asyncError == null) dart.nullFailed(I[68], 158, 36, "asyncError");
        if (!dart.test(this.hasErrorTest)) return true;
        return this[_zone$].runUnary(core.bool, core.Object, this[_errorTest], asyncError.error);
      }
      handleError(asyncError) {
        if (asyncError == null) dart.nullFailed(I[68], 163, 38, "asyncError");
        if (!(dart.test(this.handlesError) && dart.test(this.hasErrorCallback))) dart.assertFailed(null, I[68], 164, 12, "handlesError && hasErrorCallback");
        let errorCallback = this.errorCallback;
        if (T$.ObjectAndStackTraceTodynamic().is(errorCallback)) {
          return FutureOrOfT().as(this[_zone$].runBinary(dart.dynamic, core.Object, core.StackTrace, errorCallback, asyncError.error, asyncError.stackTrace));
        } else {
          return FutureOrOfT().as(this[_zone$].runUnary(dart.dynamic, core.Object, T$.ObjectTodynamic().as(errorCallback), asyncError.error));
        }
      }
      handleWhenComplete() {
        if (!!dart.test(this.handlesError)) dart.assertFailed(null, I[68], 178, 12, "!handlesError");
        return this[_zone$].run(dart.dynamic, this[_whenCompleteAction]);
      }
      shouldChain(value) {
        if (value == null) dart.nullFailed(I[68], 185, 36, "value");
        return FutureOfT().is(value) || !T.is(value);
      }
    }
    (_FutureListener.then = function(result, onValue, errorCallback) {
      if (result == null) dart.nullFailed(I[68], 100, 12, "result");
      if (onValue == null) dart.nullFailed(I[68], 100, 44, "onValue");
      this[_nextListener] = null;
      this.result = result;
      this.callback = onValue;
      this.errorCallback = errorCallback;
      this.state = errorCallback == null ? 1 : 3;
      ;
    }).prototype = _FutureListener.prototype;
    (_FutureListener.thenAwait = function(result, onValue, errorCallback) {
      if (result == null) dart.nullFailed(I[68], 106, 12, "result");
      if (onValue == null) dart.nullFailed(I[68], 106, 41, "onValue");
      if (errorCallback == null) dart.nullFailed(I[68], 106, 59, "errorCallback");
      this[_nextListener] = null;
      this.result = result;
      this.callback = onValue;
      this.errorCallback = errorCallback;
      this.state = ((errorCallback == null ? 1 : 3) | 16) >>> 0;
      ;
    }).prototype = _FutureListener.prototype;
    (_FutureListener.catchError = function(result, errorCallback, callback) {
      if (result == null) dart.nullFailed(I[68], 112, 35, "result");
      this[_nextListener] = null;
      this.result = result;
      this.errorCallback = errorCallback;
      this.callback = callback;
      this.state = callback == null ? 2 : 6;
      ;
    }).prototype = _FutureListener.prototype;
    (_FutureListener.whenComplete = function(result, callback) {
      if (result == null) dart.nullFailed(I[68], 115, 37, "result");
      this[_nextListener] = null;
      this.result = result;
      this.callback = callback;
      this.errorCallback = null;
      this.state = 8;
      ;
    }).prototype = _FutureListener.prototype;
    dart.addTypeTests(_FutureListener);
    _FutureListener.prototype[_is__FutureListener_default] = true;
    dart.addTypeCaches(_FutureListener);
    dart.setMethodSignature(_FutureListener, () => ({
      __proto__: dart.getMethods(_FutureListener.__proto__),
      handleValue: dart.fnType(async.FutureOr$(T), [dart.nullable(core.Object)]),
      matchesErrorTest: dart.fnType(core.bool, [async.AsyncError]),
      handleError: dart.fnType(async.FutureOr$(T), [async.AsyncError]),
      handleWhenComplete: dart.fnType(dart.dynamic, []),
      shouldChain: dart.fnType(core.bool, [async.Future])
    }));
    dart.setGetterSignature(_FutureListener, () => ({
      __proto__: dart.getGetters(_FutureListener.__proto__),
      [_zone$]: async._Zone,
      handlesValue: core.bool,
      handlesError: core.bool,
      hasErrorTest: core.bool,
      handlesComplete: core.bool,
      isAwait: core.bool,
      [_onValue]: dart.fnType(async.FutureOr$(T), [S]),
      [_onError]: dart.nullable(core.Function),
      [_errorTest]: dart.fnType(core.bool, [core.Object]),
      [_whenCompleteAction]: dart.fnType(dart.dynamic, []),
      hasErrorCallback: core.bool
    }));
    dart.setLibraryUri(_FutureListener, I[29]);
    dart.setFieldSignature(_FutureListener, () => ({
      __proto__: dart.getFields(_FutureListener.__proto__),
      [_nextListener]: dart.fieldType(dart.nullable(async._FutureListener)),
      result: dart.finalFieldType(async._Future$(T)),
      state: dart.finalFieldType(core.int),
      callback: dart.finalFieldType(dart.nullable(core.Function)),
      errorCallback: dart.finalFieldType(dart.nullable(core.Function))
    }));
    return _FutureListener;
  });
  async._FutureListener = async._FutureListener$();
  dart.defineLazy(async._FutureListener, {
    /*async._FutureListener.maskValue*/get maskValue() {
      return 1;
    },
    /*async._FutureListener.maskError*/get maskError() {
      return 2;
    },
    /*async._FutureListener.maskTestError*/get maskTestError() {
      return 4;
    },
    /*async._FutureListener.maskWhenComplete*/get maskWhenComplete() {
      return 8;
    },
    /*async._FutureListener.stateChain*/get stateChain() {
      return 0;
    },
    /*async._FutureListener.stateThen*/get stateThen() {
      return 1;
    },
    /*async._FutureListener.stateThenOnerror*/get stateThenOnerror() {
      return 3;
    },
    /*async._FutureListener.stateCatchError*/get stateCatchError() {
      return 2;
    },
    /*async._FutureListener.stateCatchErrorTest*/get stateCatchErrorTest() {
      return 6;
    },
    /*async._FutureListener.stateWhenComplete*/get stateWhenComplete() {
      return 8;
    },
    /*async._FutureListener.maskType*/get maskType() {
      return 15;
    },
    /*async._FutureListener.stateIsAwait*/get stateIsAwait() {
      return 16;
    }
  }, false);
  dart.addTypeTests(async._FutureListener, _is__FutureListener_default);
  var _resultOrListeners = dart.privateName(async, "_resultOrListeners");
  var _setValue = dart.privateName(async, "_setValue");
  var _isPendingComplete = dart.privateName(async, "_isPendingComplete");
  var _mayAddListener = dart.privateName(async, "_mayAddListener");
  var _isChained = dart.privateName(async, "_isChained");
  var _isComplete = dart.privateName(async, "_isComplete");
  var _hasError = dart.privateName(async, "_hasError");
  var _setChained = dart.privateName(async, "_setChained");
  var _setPendingComplete = dart.privateName(async, "_setPendingComplete");
  var _clearPendingComplete = dart.privateName(async, "_clearPendingComplete");
  var _error = dart.privateName(async, "_error");
  var _chainSource = dart.privateName(async, "_chainSource");
  var _setErrorObject = dart.privateName(async, "_setErrorObject");
  var _setError = dart.privateName(async, "_setError");
  var _cloneResult = dart.privateName(async, "_cloneResult");
  var _prependListeners = dart.privateName(async, "_prependListeners");
  var _reverseListeners = dart.privateName(async, "_reverseListeners");
  var _removeListeners = dart.privateName(async, "_removeListeners");
  var _chainFuture = dart.privateName(async, "_chainFuture");
  var _asyncCompleteWithValue = dart.privateName(async, "_asyncCompleteWithValue");
  const _is__Future_default = Symbol('_is__Future_default');
  async._Future$ = dart.generic(T => {
    var _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
    var _FutureListenerOfT$T = () => (_FutureListenerOfT$T = dart.constFn(async._FutureListener$(T, T)))();
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var FutureOrOfT = () => (FutureOrOfT = dart.constFn(async.FutureOr$(T)))();
    var FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
    var VoidToFutureOrOfT = () => (VoidToFutureOrOfT = dart.constFn(dart.fnType(FutureOrOfT(), [])))();
    var VoidToNFutureOrOfT = () => (VoidToNFutureOrOfT = dart.constFn(dart.nullable(VoidToFutureOrOfT())))();
    var TToNull = () => (TToNull = dart.constFn(dart.fnType(core.Null, [T])))();
    class _Future extends core.Object {
      get [_mayComplete]() {
        return this[_state] === 0;
      }
      get [_isPendingComplete]() {
        return this[_state] === 1;
      }
      get [_mayAddListener]() {
        return dart.notNull(this[_state]) <= 1;
      }
      get [_isChained]() {
        return this[_state] === 2;
      }
      get [_isComplete]() {
        return dart.notNull(this[_state]) >= 4;
      }
      get [_hasError]() {
        return this[_state] === 8;
      }
      static _continuationFunctions(future) {
        let t108;
        if (future == null) dart.nullFailed(I[68], 263, 65, "future");
        let result = null;
        while (true) {
          if (dart.test(future[_mayAddListener])) return result;
          if (!!dart.test(future[_isComplete])) dart.assertFailed(null, I[68], 267, 14, "!future._isComplete");
          if (!!dart.test(future[_isChained])) dart.assertFailed(null, I[68], 268, 14, "!future._isChained");
          let listener = T$._FutureListenerNOfObject$Object().as(future[_resultOrListeners]);
          if (listener != null && listener[_nextListener] == null && dart.test(listener.isAwait)) {
            (t108 = result, t108 == null ? result = T$.JSArrayOfFunction().of([]) : t108)[$add](dart.bind(listener, 'handleValue'));
            future = listener.result;
            if (!!dart.test(future[_isComplete])) dart.assertFailed(null, I[68], 276, 16, "!future._isComplete");
          } else {
            break;
          }
        }
        return result;
      }
      [_setChained](source) {
        if (source == null) dart.nullFailed(I[68], 284, 28, "source");
        if (!dart.test(this[_mayAddListener])) dart.assertFailed(null, I[68], 285, 12, "_mayAddListener");
        this[_state] = 2;
        this[_resultOrListeners] = source;
      }
      then(R, f, opts) {
        if (f == null) dart.nullFailed(I[68], 290, 33, "f");
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let currentZone = async.Zone.current;
        if (currentZone != async._rootZone) {
          f = currentZone.registerUnaryCallback(async.FutureOr$(R), T, f);
          if (onError != null) {
            onError = async._registerErrorHandler(onError, currentZone);
          }
        }
        let result = new (async._Future$(R)).new();
        this[_addListener](new (async._FutureListener$(T, R)).then(result, f, onError));
        return result;
      }
      [_thenAwait](E, f, onError) {
        if (f == null) dart.nullFailed(I[68], 312, 39, "f");
        if (onError == null) dart.nullFailed(I[68], 312, 60, "onError");
        let result = new (async._Future$(E)).new();
        this[_addListener](new (async._FutureListener$(T, E)).thenAwait(result, f, onError));
        return result;
      }
      catchError(onError, opts) {
        if (onError == null) dart.nullFailed(I[68], 318, 33, "onError");
        let test = opts && 'test' in opts ? opts.test : null;
        let result = new (_FutureOfT()).new();
        if (result[_zone$] != async._rootZone) {
          onError = async._registerErrorHandler(onError, result[_zone$]);
          if (test != null) test = result[_zone$].registerUnaryCallback(core.bool, core.Object, test);
        }
        this[_addListener](new (_FutureListenerOfT$T()).catchError(result, onError, test));
        return result;
      }
      whenComplete(action) {
        if (action == null) dart.nullFailed(I[68], 328, 34, "action");
        let result = new (_FutureOfT()).new();
        if (result[_zone$] != async._rootZone) {
          action = result[_zone$].registerCallback(dart.dynamic, action);
        }
        this[_addListener](new (_FutureListenerOfT$T()).whenComplete(result, action));
        return result;
      }
      asStream() {
        return StreamOfT().fromFuture(this);
      }
      [_setPendingComplete]() {
        if (!dart.test(this[_mayComplete])) dart.assertFailed(null, I[68], 340, 12, "_mayComplete");
        this[_state] = 1;
      }
      [_clearPendingComplete]() {
        if (!dart.test(this[_isPendingComplete])) dart.assertFailed(null, I[68], 345, 12, "_isPendingComplete");
        this[_state] = 0;
      }
      get [_error]() {
        if (!dart.test(this[_hasError])) dart.assertFailed(null, I[68], 350, 12, "_hasError");
        return async.AsyncError.as(this[_resultOrListeners]);
      }
      get [_chainSource]() {
        if (!dart.test(this[_isChained])) dart.assertFailed(null, I[68], 355, 12, "_isChained");
        return async._Future.as(this[_resultOrListeners]);
      }
      [_setValue](value) {
        T.as(value);
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 361, 12, "!_isComplete");
        this[_state] = 4;
        this[_resultOrListeners] = value;
      }
      [_setErrorObject](error) {
        if (error == null) dart.nullFailed(I[68], 366, 35, "error");
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 367, 12, "!_isComplete");
        this[_state] = 8;
        this[_resultOrListeners] = error;
      }
      [_setError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[68], 372, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[68], 372, 43, "stackTrace");
        this[_setErrorObject](new async.AsyncError.new(error, stackTrace));
      }
      [_cloneResult](source) {
        if (source == null) dart.nullFailed(I[68], 379, 29, "source");
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 380, 12, "!_isComplete");
        if (!dart.test(source[_isComplete])) dart.assertFailed(null, I[68], 381, 12, "source._isComplete");
        this[_state] = source[_state];
        this[_resultOrListeners] = source[_resultOrListeners];
      }
      [_addListener](listener) {
        if (listener == null) dart.nullFailed(I[68], 386, 37, "listener");
        if (!(listener[_nextListener] == null)) dart.assertFailed(null, I[68], 387, 12, "listener._nextListener == null");
        if (dart.test(this[_mayAddListener])) {
          listener[_nextListener] = T$._FutureListenerN().as(this[_resultOrListeners]);
          this[_resultOrListeners] = listener;
        } else {
          if (dart.test(this[_isChained])) {
            let source = this[_chainSource];
            if (!dart.test(source[_isComplete])) {
              source[_addListener](listener);
              return;
            }
            this[_cloneResult](source);
          }
          if (!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 403, 14, "_isComplete");
          this[_zone$].scheduleMicrotask(dart.fn(() => {
            async._Future._propagateToListeners(this, listener);
          }, T$.VoidTovoid()));
        }
      }
      [_prependListeners](listeners) {
        if (listeners == null) return;
        if (dart.test(this[_mayAddListener])) {
          let existingListeners = T$._FutureListenerN().as(this[_resultOrListeners]);
          this[_resultOrListeners] = listeners;
          if (existingListeners != null) {
            let cursor = listeners;
            let next = cursor[_nextListener];
            while (next != null) {
              cursor = next;
              next = cursor[_nextListener];
            }
            cursor[_nextListener] = existingListeners;
          }
        } else {
          if (dart.test(this[_isChained])) {
            let source = this[_chainSource];
            if (!dart.test(source[_isComplete])) {
              source[_prependListeners](listeners);
              return;
            }
            this[_cloneResult](source);
          }
          if (!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 437, 14, "_isComplete");
          listeners = this[_reverseListeners](listeners);
          this[_zone$].scheduleMicrotask(dart.fn(() => {
            async._Future._propagateToListeners(this, listeners);
          }, T$.VoidTovoid()));
        }
      }
      [_removeListeners]() {
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 448, 12, "!_isComplete");
        let current = T$._FutureListenerN().as(this[_resultOrListeners]);
        this[_resultOrListeners] = null;
        return this[_reverseListeners](current);
      }
      [_reverseListeners](listeners) {
        let prev = null;
        let current = listeners;
        while (current != null) {
          let next = current[_nextListener];
          current[_nextListener] = prev;
          prev = current;
          current = next;
        }
        return prev;
      }
      [_chainForeignFuture](source) {
        if (source == null) dart.nullFailed(I[68], 470, 35, "source");
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 471, 12, "!_isComplete");
        if (!!async._Future.is(source)) dart.assertFailed(null, I[68], 472, 12, "source is! _Future");
        this[_setPendingComplete]();
        try {
          source.then(core.Null, dart.fn(value => {
            if (!dart.test(this[_isPendingComplete])) dart.assertFailed(null, I[68], 478, 16, "_isPendingComplete");
            this[_clearPendingComplete]();
            try {
              this[_completeWithValue](T.as(value));
            } catch (e) {
              let error = dart.getThrown(e);
              let stackTrace = dart.stackTrace(e);
              if (core.Object.is(error)) {
                this[_completeError](error, stackTrace);
              } else
                throw e;
            }
          }, T$.dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
              if (error == null) dart.nullFailed(I[68], 485, 27, "error");
              if (stackTrace == null) dart.nullFailed(I[68], 485, 45, "stackTrace");
              if (!dart.test(this[_isPendingComplete])) dart.assertFailed(null, I[68], 486, 16, "_isPendingComplete");
              this[_completeError](error, stackTrace);
            }, T$.ObjectAndStackTraceToNull())});
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async.scheduleMicrotask(dart.fn(() => {
              this[_completeError](e, s);
            }, T$.VoidTovoid()));
          } else
            throw e$;
        }
      }
      static _chainCoreFuture(source, target) {
        if (source == null) dart.nullFailed(I[68], 502, 40, "source");
        if (target == null) dart.nullFailed(I[68], 502, 56, "target");
        if (!dart.test(target[_mayAddListener])) dart.assertFailed(null, I[68], 503, 12, "target._mayAddListener");
        while (dart.test(source[_isChained])) {
          source = source[_chainSource];
        }
        if (dart.test(source[_isComplete])) {
          let listeners = target[_removeListeners]();
          target[_cloneResult](source);
          async._Future._propagateToListeners(target, listeners);
        } else {
          let listeners = T$._FutureListenerN().as(target[_resultOrListeners]);
          target[_setChained](source);
          source[_prependListeners](listeners);
        }
      }
      [_complete](value) {
        FutureOrOfT().as(value);
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 519, 12, "!_isComplete");
        if (FutureOfT().is(value)) {
          if (_FutureOfT().is(value)) {
            async._Future._chainCoreFuture(value, this);
          } else {
            this[_chainForeignFuture](value);
          }
        } else {
          let listeners = this[_removeListeners]();
          this[_setValue](T.as(value));
          async._Future._propagateToListeners(this, listeners);
        }
      }
      [_completeWithValue](value) {
        T.as(value);
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 538, 12, "!_isComplete");
        let listeners = this[_removeListeners]();
        this[_setValue](value);
        async._Future._propagateToListeners(this, listeners);
      }
      [_completeError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[68], 545, 30, "error");
        if (stackTrace == null) dart.nullFailed(I[68], 545, 48, "stackTrace");
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 546, 12, "!_isComplete");
        let listeners = this[_removeListeners]();
        this[_setError](error, stackTrace);
        async._Future._propagateToListeners(this, listeners);
      }
      [_asyncComplete](value) {
        FutureOrOfT().as(value);
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 554, 12, "!_isComplete");
        if (FutureOfT().is(value)) {
          this[_chainFuture](value);
          return;
        }
        this[_asyncCompleteWithValue](T.as(value));
      }
      [_asyncCompleteWithValue](value) {
        T.as(value);
        this[_setPendingComplete]();
        this[_zone$].scheduleMicrotask(dart.fn(() => {
          this[_completeWithValue](value);
        }, T$.VoidTovoid()));
      }
      [_chainFuture](value) {
        if (value == null) dart.nullFailed(I[68], 584, 31, "value");
        if (_FutureOfT().is(value)) {
          if (dart.test(value[_hasError])) {
            this[_setPendingComplete]();
            this[_zone$].scheduleMicrotask(dart.fn(() => {
              async._Future._chainCoreFuture(value, this);
            }, T$.VoidTovoid()));
          } else {
            async._Future._chainCoreFuture(value, this);
          }
          return;
        }
        this[_chainForeignFuture](value);
      }
      [_asyncCompleteError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[68], 601, 35, "error");
        if (stackTrace == null) dart.nullFailed(I[68], 601, 53, "stackTrace");
        if (!!dart.test(this[_isComplete])) dart.assertFailed(null, I[68], 602, 12, "!_isComplete");
        this[_setPendingComplete]();
        this[_zone$].scheduleMicrotask(dart.fn(() => {
          this[_completeError](error, stackTrace);
        }, T$.VoidTovoid()));
      }
      static _propagateToListeners(source, listeners) {
        if (source == null) dart.nullFailed(I[68], 613, 15, "source");
        while (true) {
          if (!dart.test(source[_isComplete])) dart.assertFailed(null, I[68], 615, 14, "source._isComplete");
          let hasError = source[_hasError];
          if (listeners == null) {
            if (dart.test(hasError)) {
              let asyncError = source[_error];
              source[_zone$].handleUncaughtError(asyncError.error, asyncError.stackTrace);
            }
            return;
          }
          let listener = listeners;
          let nextListener = listener[_nextListener];
          while (nextListener != null) {
            listener[_nextListener] = null;
            async._Future._propagateToListeners(source, listener);
            listener = nextListener;
            nextListener = listener[_nextListener];
          }
          let sourceResult = source[_resultOrListeners];
          let listenerHasError = hasError;
          let listenerValueOrError = sourceResult;
          if (dart.test(hasError) || dart.test(listener.handlesValue) || dart.test(listener.handlesComplete)) {
            let zone = listener[_zone$];
            if (dart.test(hasError) && !dart.test(source[_zone$].inSameErrorZone(zone))) {
              let asyncError = source[_error];
              source[_zone$].handleUncaughtError(asyncError.error, asyncError.stackTrace);
              return;
            }
            let oldZone = null;
            if (async.Zone._current != zone) {
              oldZone = async.Zone._enter(zone);
            }
            function handleWhenCompleteCallback() {
              if (!!dart.test(listener.handlesValue)) dart.assertFailed(null, I[68], 673, 18, "!listener.handlesValue");
              if (!!dart.test(listener.handlesError)) dart.assertFailed(null, I[68], 674, 18, "!listener.handlesError");
              let completeResult = null;
              try {
                completeResult = listener.handleWhenComplete();
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                if (core.Object.is(e)) {
                  if (dart.test(hasError) && core.identical(source[_error].error, e)) {
                    listenerValueOrError = source[_error];
                  } else {
                    listenerValueOrError = new async.AsyncError.new(e, s);
                  }
                  listenerHasError = true;
                  return;
                } else
                  throw e$;
              }
              if (async._Future.is(completeResult) && dart.test(completeResult[_isComplete])) {
                if (dart.test(completeResult[_hasError])) {
                  listenerValueOrError = completeResult[_error];
                  listenerHasError = true;
                }
                return;
              }
              if (async.Future.is(completeResult)) {
                let originalSource = source;
                listenerValueOrError = completeResult.then(dart.dynamic, dart.fn(_ => originalSource, T$.dynamicTo_Future()));
                listenerHasError = false;
              }
            }
            dart.fn(handleWhenCompleteCallback, T$.VoidTovoid());
            function handleValueCallback() {
              try {
                listenerValueOrError = listener.handleValue(sourceResult);
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                if (core.Object.is(e)) {
                  listenerValueOrError = new async.AsyncError.new(e, s);
                  listenerHasError = true;
                } else
                  throw e$;
              }
            }
            dart.fn(handleValueCallback, T$.VoidTovoid());
            function handleError() {
              try {
                let asyncError = source[_error];
                if (dart.test(listener.matchesErrorTest(asyncError)) && dart.test(listener.hasErrorCallback)) {
                  listenerValueOrError = listener.handleError(asyncError);
                  listenerHasError = false;
                }
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                if (core.Object.is(e)) {
                  if (core.identical(source[_error].error, e)) {
                    listenerValueOrError = source[_error];
                  } else {
                    listenerValueOrError = new async.AsyncError.new(e, s);
                  }
                  listenerHasError = true;
                } else
                  throw e$;
              }
            }
            dart.fn(handleError, T$.VoidTovoid());
            if (dart.test(listener.handlesComplete)) {
              handleWhenCompleteCallback();
            } else if (!dart.test(hasError)) {
              if (dart.test(listener.handlesValue)) {
                handleValueCallback();
              }
            } else {
              if (dart.test(listener.handlesError)) {
                handleError();
              }
            }
            if (oldZone != null) async.Zone._leave(oldZone);
            if (async.Future.is(listenerValueOrError) && dart.test(listener.shouldChain(async.Future.as(listenerValueOrError)))) {
              let chainSource = async.Future.as(listenerValueOrError);
              let result = listener.result;
              if (async._Future.is(chainSource)) {
                if (dart.test(chainSource[_isComplete])) {
                  listeners = result[_removeListeners]();
                  result[_cloneResult](chainSource);
                  source = chainSource;
                  continue;
                } else {
                  async._Future._chainCoreFuture(chainSource, result);
                }
              } else {
                result[_chainForeignFuture](chainSource);
              }
              return;
            }
          }
          let result = listener.result;
          listeners = result[_removeListeners]();
          if (!dart.test(listenerHasError)) {
            result[_setValue](listenerValueOrError);
          } else {
            let asyncError = async.AsyncError.as(listenerValueOrError);
            result[_setErrorObject](asyncError);
          }
          source = result;
        }
      }
      timeout(timeLimit, opts) {
        if (timeLimit == null) dart.nullFailed(I[68], 786, 30, "timeLimit");
        let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
        VoidToNFutureOrOfT().as(onTimeout);
        if (dart.test(this[_isComplete])) return new (_FutureOfT()).immediate(this);
        let _future = new (_FutureOfT()).new();
        let timer = null;
        if (onTimeout == null) {
          timer = async.Timer.new(timeLimit, dart.fn(() => {
            _future[_completeError](new async.TimeoutException.new("Future not completed", timeLimit), core.StackTrace.empty);
          }, T$.VoidTovoid()));
        } else {
          let zone = async.Zone.current;
          let onTimeoutHandler = zone.registerCallback(FutureOrOfT(), onTimeout);
          timer = async.Timer.new(timeLimit, dart.fn(() => {
            try {
              _future[_complete](zone.run(FutureOrOfT(), onTimeoutHandler));
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                _future[_completeError](e, s);
              } else
                throw e$;
            }
          }, T$.VoidTovoid()));
        }
        this.then(core.Null, dart.fn(v => {
          if (dart.test(timer.isActive)) {
            timer.cancel();
            _future[_completeWithValue](v);
          }
        }, TToNull()), {onError: dart.fn((e, s) => {
            if (e == null) dart.nullFailed(I[68], 816, 25, "e");
            if (s == null) dart.nullFailed(I[68], 816, 39, "s");
            if (dart.test(timer.isActive)) {
              timer.cancel();
              _future[_completeError](e, s);
            }
          }, T$.ObjectAndStackTraceToNull())});
        return _future;
      }
    }
    (_Future.new = function() {
      this[_state] = 0;
      this[_resultOrListeners] = null;
      this[_zone$] = async.Zone._current;
      ;
    }).prototype = _Future.prototype;
    (_Future.immediate = function(result) {
      this[_state] = 0;
      this[_resultOrListeners] = null;
      this[_zone$] = async.Zone._current;
      this[_asyncComplete](result);
    }).prototype = _Future.prototype;
    (_Future.zoneValue = function(value, _zone) {
      if (_zone == null) dart.nullFailed(I[68], 244, 35, "_zone");
      this[_state] = 0;
      this[_resultOrListeners] = null;
      this[_zone$] = _zone;
      this[_setValue](value);
    }).prototype = _Future.prototype;
    (_Future.immediateError = function(error, stackTrace) {
      if (stackTrace == null) dart.nullFailed(I[68], 248, 48, "stackTrace");
      this[_state] = 0;
      this[_resultOrListeners] = null;
      this[_zone$] = async.Zone._current;
      this[_asyncCompleteError](core.Object.as(error), stackTrace);
    }).prototype = _Future.prototype;
    (_Future.value = function(value) {
      _Future.zoneValue.call(this, value, async.Zone._current);
    }).prototype = _Future.prototype;
    _Future.prototype[dart.isFuture] = true;
    dart.addTypeTests(_Future);
    _Future.prototype[_is__Future_default] = true;
    dart.addTypeCaches(_Future);
    _Future[dart.implements] = () => [async.Future$(T)];
    dart.setMethodSignature(_Future, () => ({
      __proto__: dart.getMethods(_Future.__proto__),
      [_setChained]: dart.fnType(dart.void, [async._Future]),
      then: dart.gFnType(R => [async.Future$(R), [dart.fnType(async.FutureOr$(R), [T])], {onError: dart.nullable(core.Function)}, {}], R => [dart.nullable(core.Object)]),
      [_thenAwait]: dart.gFnType(E => [async.Future$(E), [dart.fnType(async.FutureOr$(E), [T]), core.Function]], E => [dart.nullable(core.Object)]),
      catchError: dart.fnType(async.Future$(T), [core.Function], {test: dart.nullable(dart.fnType(core.bool, [core.Object]))}, {}),
      whenComplete: dart.fnType(async.Future$(T), [dart.fnType(dart.dynamic, [])]),
      asStream: dart.fnType(async.Stream$(T), []),
      [_setPendingComplete]: dart.fnType(dart.void, []),
      [_clearPendingComplete]: dart.fnType(dart.void, []),
      [_setValue]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_setErrorObject]: dart.fnType(dart.void, [async.AsyncError]),
      [_setError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_cloneResult]: dart.fnType(dart.void, [async._Future]),
      [_addListener]: dart.fnType(dart.void, [async._FutureListener]),
      [_prependListeners]: dart.fnType(dart.void, [dart.nullable(async._FutureListener)]),
      [_removeListeners]: dart.fnType(dart.nullable(async._FutureListener), []),
      [_reverseListeners]: dart.fnType(dart.nullable(async._FutureListener), [dart.nullable(async._FutureListener)]),
      [_chainForeignFuture]: dart.fnType(dart.void, [async.Future]),
      [_complete]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_completeWithValue]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_completeError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_asyncComplete]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_asyncCompleteWithValue]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_chainFuture]: dart.fnType(dart.void, [async.Future$(T)]),
      [_asyncCompleteError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      timeout: dart.fnType(async.Future$(T), [core.Duration], {onTimeout: dart.nullable(core.Object)}, {})
    }));
    dart.setGetterSignature(_Future, () => ({
      __proto__: dart.getGetters(_Future.__proto__),
      [_mayComplete]: core.bool,
      [_isPendingComplete]: core.bool,
      [_mayAddListener]: core.bool,
      [_isChained]: core.bool,
      [_isComplete]: core.bool,
      [_hasError]: core.bool,
      [_error]: async.AsyncError,
      [_chainSource]: async._Future
    }));
    dart.setLibraryUri(_Future, I[29]);
    dart.setFieldSignature(_Future, () => ({
      __proto__: dart.getFields(_Future.__proto__),
      [_state]: dart.fieldType(core.int),
      [_zone$]: dart.finalFieldType(async._Zone),
      [_resultOrListeners]: dart.fieldType(dart.dynamic)
    }));
    return _Future;
  });
  async._Future = async._Future$();
  dart.defineLazy(async._Future, {
    /*async._Future._stateIncomplete*/get _stateIncomplete() {
      return 0;
    },
    /*async._Future._statePendingComplete*/get _statePendingComplete() {
      return 1;
    },
    /*async._Future._stateChained*/get _stateChained() {
      return 2;
    },
    /*async._Future._stateValue*/get _stateValue() {
      return 4;
    },
    /*async._Future._stateError*/get _stateError() {
      return 8;
    }
  }, false);
  dart.addTypeTests(async._Future, _is__Future_default);
  async._AsyncCallbackEntry = class _AsyncCallbackEntry extends core.Object {};
  (async._AsyncCallbackEntry.new = function(callback) {
    if (callback == null) dart.nullFailed(I[69], 12, 28, "callback");
    this.next = null;
    this.callback = callback;
    ;
  }).prototype = async._AsyncCallbackEntry.prototype;
  dart.addTypeTests(async._AsyncCallbackEntry);
  dart.addTypeCaches(async._AsyncCallbackEntry);
  dart.setLibraryUri(async._AsyncCallbackEntry, I[29]);
  dart.setFieldSignature(async._AsyncCallbackEntry, () => ({
    __proto__: dart.getFields(async._AsyncCallbackEntry.__proto__),
    callback: dart.finalFieldType(dart.fnType(dart.void, [])),
    next: dart.fieldType(dart.nullable(async._AsyncCallbackEntry))
  }));
  async._AsyncRun = class _AsyncRun extends core.Object {
    static _initializeScheduleImmediate() {
      if (dart.global.scheduleImmediate != null) {
        return C[42] || CT.C42;
      }
      return C[43] || CT.C43;
    }
    static _scheduleImmediateJSOverride(callback) {
      if (callback == null) dart.nullFailed(I[61], 153, 60, "callback");
      dart.addAsyncCallback();
      dart.global.scheduleImmediate(() => {
        dart.removeAsyncCallback();
        callback();
      });
    }
    static _scheduleImmediateWithPromise(callback) {
      if (callback == null) dart.nullFailed(I[61], 162, 61, "callback");
      dart.addAsyncCallback();
      dart.global.Promise.resolve(null).then(() => {
        dart.removeAsyncCallback();
        callback();
      });
    }
    static _scheduleImmediate(callback) {
      if (callback == null) dart.nullFailed(I[61], 135, 50, "callback");
      async._AsyncRun._scheduleImmediateClosure(callback);
    }
  };
  (async._AsyncRun.new = function() {
    ;
  }).prototype = async._AsyncRun.prototype;
  dart.addTypeTests(async._AsyncRun);
  dart.addTypeCaches(async._AsyncRun);
  dart.setLibraryUri(async._AsyncRun, I[29]);
  dart.defineLazy(async._AsyncRun, {
    /*async._AsyncRun._scheduleImmediateClosure*/get _scheduleImmediateClosure() {
      return async._AsyncRun._initializeScheduleImmediate();
    }
  }, false);
  async.StreamSubscription$ = dart.generic(T => {
    class StreamSubscription extends core.Object {}
    (StreamSubscription.new = function() {
      ;
    }).prototype = StreamSubscription.prototype;
    dart.addTypeTests(StreamSubscription);
    StreamSubscription.prototype[dart.isStreamSubscription] = true;
    dart.addTypeCaches(StreamSubscription);
    dart.setLibraryUri(StreamSubscription, I[29]);
    return StreamSubscription;
  });
  async.StreamSubscription = async.StreamSubscription$();
  dart.addTypeTests(async.StreamSubscription, dart.isStreamSubscription);
  const _is_EventSink_default = Symbol('_is_EventSink_default');
  async.EventSink$ = dart.generic(T => {
    class EventSink extends core.Object {}
    (EventSink.new = function() {
      ;
    }).prototype = EventSink.prototype;
    dart.addTypeTests(EventSink);
    EventSink.prototype[_is_EventSink_default] = true;
    dart.addTypeCaches(EventSink);
    EventSink[dart.implements] = () => [core.Sink$(T)];
    dart.setLibraryUri(EventSink, I[29]);
    return EventSink;
  });
  async.EventSink = async.EventSink$();
  dart.addTypeTests(async.EventSink, _is_EventSink_default);
  var _stream = dart.privateName(async, "StreamView._stream");
  var _stream$ = dart.privateName(async, "_stream");
  const _is_StreamView_default = Symbol('_is_StreamView_default');
  async.StreamView$ = dart.generic(T => {
    class StreamView extends async.Stream$(T) {
      get [_stream$]() {
        return this[_stream];
      }
      set [_stream$](value) {
        super[_stream$] = value;
      }
      get isBroadcast() {
        return this[_stream$].isBroadcast;
      }
      asBroadcastStream(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        return this[_stream$].asBroadcastStream({onListen: onListen, onCancel: onCancel});
      }
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
      }
    }
    (StreamView.new = function(stream) {
      if (stream == null) dart.nullFailed(I[28], 1734, 30, "stream");
      this[_stream] = stream;
      StreamView.__proto__._internal.call(this);
      ;
    }).prototype = StreamView.prototype;
    dart.addTypeTests(StreamView);
    StreamView.prototype[_is_StreamView_default] = true;
    dart.addTypeCaches(StreamView);
    dart.setMethodSignature(StreamView, () => ({
      __proto__: dart.getMethods(StreamView.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(StreamView, I[29]);
    dart.setFieldSignature(StreamView, () => ({
      __proto__: dart.getFields(StreamView.__proto__),
      [_stream$]: dart.finalFieldType(async.Stream$(T))
    }));
    return StreamView;
  });
  async.StreamView = async.StreamView$();
  dart.addTypeTests(async.StreamView, _is_StreamView_default);
  const _is_StreamConsumer_default = Symbol('_is_StreamConsumer_default');
  async.StreamConsumer$ = dart.generic(S => {
    class StreamConsumer extends core.Object {}
    (StreamConsumer.new = function() {
      ;
    }).prototype = StreamConsumer.prototype;
    dart.addTypeTests(StreamConsumer);
    StreamConsumer.prototype[_is_StreamConsumer_default] = true;
    dart.addTypeCaches(StreamConsumer);
    dart.setLibraryUri(StreamConsumer, I[29]);
    return StreamConsumer;
  });
  async.StreamConsumer = async.StreamConsumer$();
  dart.addTypeTests(async.StreamConsumer, _is_StreamConsumer_default);
  const _is_StreamSink_default = Symbol('_is_StreamSink_default');
  async.StreamSink$ = dart.generic(S => {
    class StreamSink extends core.Object {}
    (StreamSink.new = function() {
      ;
    }).prototype = StreamSink.prototype;
    dart.addTypeTests(StreamSink);
    StreamSink.prototype[_is_StreamSink_default] = true;
    dart.addTypeCaches(StreamSink);
    StreamSink[dart.implements] = () => [async.EventSink$(S), async.StreamConsumer$(S)];
    dart.setLibraryUri(StreamSink, I[29]);
    return StreamSink;
  });
  async.StreamSink = async.StreamSink$();
  dart.addTypeTests(async.StreamSink, _is_StreamSink_default);
  const _is_StreamTransformer_default = Symbol('_is_StreamTransformer_default');
  async.StreamTransformer$ = dart.generic((S, T) => {
    class StreamTransformer extends core.Object {
      static castFrom(SS, ST, TS, TT, source) {
        if (source == null) dart.nullFailed(I[28], 2009, 33, "source");
        return new (_internal.CastStreamTransformer$(SS, ST, TS, TT)).new(source);
      }
    }
    (StreamTransformer[dart.mixinNew] = function() {
    }).prototype = StreamTransformer.prototype;
    dart.addTypeTests(StreamTransformer);
    StreamTransformer.prototype[_is_StreamTransformer_default] = true;
    dart.addTypeCaches(StreamTransformer);
    dart.setLibraryUri(StreamTransformer, I[29]);
    return StreamTransformer;
  });
  async.StreamTransformer = async.StreamTransformer$();
  dart.addTypeTests(async.StreamTransformer, _is_StreamTransformer_default);
  const _is_StreamIterator_default = Symbol('_is_StreamIterator_default');
  async.StreamIterator$ = dart.generic(T => {
    class StreamIterator extends core.Object {
      static new(stream) {
        if (stream == null) dart.nullFailed(I[28], 2073, 36, "stream");
        return new (async._StreamIterator$(T)).new(stream);
      }
    }
    (StreamIterator[dart.mixinNew] = function() {
    }).prototype = StreamIterator.prototype;
    dart.addTypeTests(StreamIterator);
    StreamIterator.prototype[_is_StreamIterator_default] = true;
    dart.addTypeCaches(StreamIterator);
    dart.setLibraryUri(StreamIterator, I[29]);
    return StreamIterator;
  });
  async.StreamIterator = async.StreamIterator$();
  dart.addTypeTests(async.StreamIterator, _is_StreamIterator_default);
  var _ensureSink = dart.privateName(async, "_ensureSink");
  const _is__ControllerEventSinkWrapper_default = Symbol('_is__ControllerEventSinkWrapper_default');
  async._ControllerEventSinkWrapper$ = dart.generic(T => {
    class _ControllerEventSinkWrapper extends core.Object {
      [_ensureSink]() {
        let sink = this[_sink$];
        if (sink == null) dart.throw(new core.StateError.new("Sink not available"));
        return sink;
      }
      add(data) {
        T.as(data);
        this[_ensureSink]().add(data);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[28], 2140, 17, "error");
        this[_ensureSink]().addError(error, stackTrace);
      }
      close() {
        this[_ensureSink]().close();
      }
    }
    (_ControllerEventSinkWrapper.new = function(_sink) {
      this[_sink$] = _sink;
      ;
    }).prototype = _ControllerEventSinkWrapper.prototype;
    dart.addTypeTests(_ControllerEventSinkWrapper);
    _ControllerEventSinkWrapper.prototype[_is__ControllerEventSinkWrapper_default] = true;
    dart.addTypeCaches(_ControllerEventSinkWrapper);
    _ControllerEventSinkWrapper[dart.implements] = () => [async.EventSink$(T)];
    dart.setMethodSignature(_ControllerEventSinkWrapper, () => ({
      __proto__: dart.getMethods(_ControllerEventSinkWrapper.__proto__),
      [_ensureSink]: dart.fnType(async.EventSink, []),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_ControllerEventSinkWrapper, I[29]);
    dart.setFieldSignature(_ControllerEventSinkWrapper, () => ({
      __proto__: dart.getFields(_ControllerEventSinkWrapper.__proto__),
      [_sink$]: dart.fieldType(dart.nullable(async.EventSink))
    }));
    return _ControllerEventSinkWrapper;
  });
  async._ControllerEventSinkWrapper = async._ControllerEventSinkWrapper$();
  dart.addTypeTests(async._ControllerEventSinkWrapper, _is__ControllerEventSinkWrapper_default);
  const _is_MultiStreamController_default = Symbol('_is_MultiStreamController_default');
  async.MultiStreamController$ = dart.generic(T => {
    class MultiStreamController extends core.Object {}
    (MultiStreamController.new = function() {
      ;
    }).prototype = MultiStreamController.prototype;
    dart.addTypeTests(MultiStreamController);
    MultiStreamController.prototype[_is_MultiStreamController_default] = true;
    dart.addTypeCaches(MultiStreamController);
    MultiStreamController[dart.implements] = () => [async.StreamController$(T)];
    dart.setLibraryUri(MultiStreamController, I[29]);
    return MultiStreamController;
  });
  async.MultiStreamController = async.MultiStreamController$();
  dart.addTypeTests(async.MultiStreamController, _is_MultiStreamController_default);
  const _is_StreamController_default = Symbol('_is_StreamController_default');
  async.StreamController$ = dart.generic(T => {
    class StreamController extends core.Object {
      static new(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onPause = opts && 'onPause' in opts ? opts.onPause : null;
        let onResume = opts && 'onResume' in opts ? opts.onResume : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        let sync = opts && 'sync' in opts ? opts.sync : false;
        if (sync == null) dart.nullFailed(I[64], 73, 12, "sync");
        return dart.test(sync) ? new (async._SyncStreamController$(T)).new(onListen, onPause, onResume, onCancel) : new (async._AsyncStreamController$(T)).new(onListen, onPause, onResume, onCancel);
      }
      static broadcast(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        let sync = opts && 'sync' in opts ? opts.sync : false;
        if (sync == null) dart.nullFailed(I[64], 129, 49, "sync");
        return dart.test(sync) ? new (async._SyncBroadcastStreamController$(T)).new(onListen, onCancel) : new (async._AsyncBroadcastStreamController$(T)).new(onListen, onCancel);
      }
    }
    (StreamController[dart.mixinNew] = function() {
    }).prototype = StreamController.prototype;
    dart.addTypeTests(StreamController);
    StreamController.prototype[_is_StreamController_default] = true;
    dart.addTypeCaches(StreamController);
    StreamController[dart.implements] = () => [async.StreamSink$(T)];
    dart.setLibraryUri(StreamController, I[29]);
    return StreamController;
  });
  async.StreamController = async.StreamController$();
  dart.addTypeTests(async.StreamController, _is_StreamController_default);
  const _is_SynchronousStreamController_default = Symbol('_is_SynchronousStreamController_default');
  async.SynchronousStreamController$ = dart.generic(T => {
    class SynchronousStreamController extends core.Object {}
    (SynchronousStreamController.new = function() {
      ;
    }).prototype = SynchronousStreamController.prototype;
    dart.addTypeTests(SynchronousStreamController);
    SynchronousStreamController.prototype[_is_SynchronousStreamController_default] = true;
    dart.addTypeCaches(SynchronousStreamController);
    SynchronousStreamController[dart.implements] = () => [async.StreamController$(T)];
    dart.setLibraryUri(SynchronousStreamController, I[29]);
    return SynchronousStreamController;
  });
  async.SynchronousStreamController = async.SynchronousStreamController$();
  dart.addTypeTests(async.SynchronousStreamController, _is_SynchronousStreamController_default);
  const _is__StreamControllerLifecycle_default = Symbol('_is__StreamControllerLifecycle_default');
  async._StreamControllerLifecycle$ = dart.generic(T => {
    var StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
    class _StreamControllerLifecycle extends core.Object {
      [_recordPause](subscription) {
        StreamSubscriptionOfT().as(subscription);
        if (subscription == null) dart.nullFailed(I[64], 352, 43, "subscription");
      }
      [_recordResume](subscription) {
        StreamSubscriptionOfT().as(subscription);
        if (subscription == null) dart.nullFailed(I[64], 353, 44, "subscription");
      }
      [_recordCancel](subscription) {
        StreamSubscriptionOfT().as(subscription);
        if (subscription == null) dart.nullFailed(I[64], 354, 53, "subscription");
        return null;
      }
    }
    (_StreamControllerLifecycle.new = function() {
      ;
    }).prototype = _StreamControllerLifecycle.prototype;
    dart.addTypeTests(_StreamControllerLifecycle);
    _StreamControllerLifecycle.prototype[_is__StreamControllerLifecycle_default] = true;
    dart.addTypeCaches(_StreamControllerLifecycle);
    dart.setMethodSignature(_StreamControllerLifecycle, () => ({
      __proto__: dart.getMethods(_StreamControllerLifecycle.__proto__),
      [_recordPause]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_recordResume]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_recordCancel]: dart.fnType(dart.nullable(async.Future$(dart.void)), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_StreamControllerLifecycle, I[29]);
    return _StreamControllerLifecycle;
  });
  async._StreamControllerLifecycle = async._StreamControllerLifecycle$();
  dart.addTypeTests(async._StreamControllerLifecycle, _is__StreamControllerLifecycle_default);
  const _is__StreamControllerBase_default = Symbol('_is__StreamControllerBase_default');
  async._StreamControllerBase$ = dart.generic(T => {
    class _StreamControllerBase extends core.Object {}
    (_StreamControllerBase.new = function() {
      ;
    }).prototype = _StreamControllerBase.prototype;
    dart.addTypeTests(_StreamControllerBase);
    _StreamControllerBase.prototype[_is__StreamControllerBase_default] = true;
    dart.addTypeCaches(_StreamControllerBase);
    _StreamControllerBase[dart.implements] = () => [async.StreamController$(T), async._StreamControllerLifecycle$(T), async._EventSink$(T), async._EventDispatch$(T)];
    dart.setLibraryUri(_StreamControllerBase, I[29]);
    return _StreamControllerBase;
  });
  async._StreamControllerBase = async._StreamControllerBase$();
  dart.addTypeTests(async._StreamControllerBase, _is__StreamControllerBase_default);
  var _varData = dart.privateName(async, "_varData");
  var _isInitialState = dart.privateName(async, "_isInitialState");
  var _subscription = dart.privateName(async, "_subscription");
  var _pendingEvents = dart.privateName(async, "_pendingEvents");
  var _ensurePendingEvents = dart.privateName(async, "_ensurePendingEvents");
  var _badEventState = dart.privateName(async, "_badEventState");
  const _is__StreamController_default = Symbol('_is__StreamController_default');
  async._StreamController$ = dart.generic(T => {
    var _ControllerStreamOfT = () => (_ControllerStreamOfT = dart.constFn(async._ControllerStream$(T)))();
    var _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
    var _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
    var _PendingEventsNOfT = () => (_PendingEventsNOfT = dart.constFn(dart.nullable(_PendingEventsOfT())))();
    var _StreamControllerAddStreamStateOfT = () => (_StreamControllerAddStreamStateOfT = dart.constFn(async._StreamControllerAddStreamState$(T)))();
    var _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
    var _ControllerSubscriptionOfT = () => (_ControllerSubscriptionOfT = dart.constFn(async._ControllerSubscription$(T)))();
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
    class _StreamController extends core.Object {
      get stream() {
        return new (_ControllerStreamOfT()).new(this);
      }
      get sink() {
        return new (_StreamSinkWrapperOfT()).new(this);
      }
      get [_isCanceled]() {
        return (dart.notNull(this[_state]) & 2) !== 0;
      }
      get hasListener() {
        return (dart.notNull(this[_state]) & 1) !== 0;
      }
      get [_isInitialState]() {
        return (dart.notNull(this[_state]) & 3) >>> 0 === 0;
      }
      get isClosed() {
        return (dart.notNull(this[_state]) & 4) !== 0;
      }
      get isPaused() {
        return dart.test(this.hasListener) ? this[_subscription][_isInputPaused] : !dart.test(this[_isCanceled]);
      }
      get [_isAddingStream]() {
        return (dart.notNull(this[_state]) & 8) !== 0;
      }
      get [_mayAddEvent]() {
        return dart.notNull(this[_state]) < 4;
      }
      get [_pendingEvents]() {
        if (!dart.test(this[_isInitialState])) dart.assertFailed(null, I[64], 479, 12, "_isInitialState");
        if (!dart.test(this[_isAddingStream])) {
          return _PendingEventsNOfT().as(this[_varData]);
        }
        let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
        return _PendingEventsNOfT().as(state.varData);
      }
      [_ensurePendingEvents]() {
        if (!dart.test(this[_isInitialState])) dart.assertFailed(null, I[64], 489, 12, "_isInitialState");
        if (!dart.test(this[_isAddingStream])) {
          let events = this[_varData];
          if (events == null) {
            this[_varData] = events = new (_StreamImplEventsOfT()).new();
          }
          return _StreamImplEventsOfT().as(events);
        }
        let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
        let events = state.varData;
        if (events == null) {
          state.varData = events = new (_StreamImplEventsOfT()).new();
        }
        return _StreamImplEventsOfT().as(events);
      }
      get [_subscription]() {
        if (!dart.test(this.hasListener)) dart.assertFailed(null, I[64], 509, 12, "hasListener");
        let varData = this[_varData];
        if (dart.test(this[_isAddingStream])) {
          let streamState = T$._StreamControllerAddStreamStateOfObjectN().as(varData);
          varData = streamState.varData;
        }
        return _ControllerSubscriptionOfT().as(varData);
      }
      [_badEventState]() {
        if (dart.test(this.isClosed)) {
          return new core.StateError.new("Cannot add event after closing");
        }
        if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, I[64], 525, 12, "_isAddingStream");
        return new core.StateError.new("Cannot add event while adding a stream");
      }
      addStream(source, opts) {
        let t114;
        StreamOfT().as(source);
        if (source == null) dart.nullFailed(I[64], 530, 30, "source");
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        if (dart.test(this[_isCanceled])) return new async._Future.immediate(null);
        let addState = new (_StreamControllerAddStreamStateOfT()).new(this, this[_varData], source, (t114 = cancelOnError, t114 == null ? false : t114));
        this[_varData] = addState;
        this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
        return addState.addStreamFuture;
      }
      get done() {
        return this[_ensureDoneFuture]();
      }
      [_ensureDoneFuture]() {
        let t114;
        t114 = this[_doneFuture];
        return t114 == null ? this[_doneFuture] = dart.test(this[_isCanceled]) ? async.Future._nullFuture : new (T$._FutureOfvoid()).new() : t114;
      }
      add(value) {
        T.as(value);
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        this[_add](value);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[64], 558, 24, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        let replacement = async.Zone.current.errorCallback(error, stackTrace);
        if (replacement != null) {
          error = replacement.error;
          stackTrace = replacement.stackTrace;
        } else {
          stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        }
        if (stackTrace == null) dart.throw("unreachable");
        this[_addError](error, stackTrace);
      }
      close() {
        if (dart.test(this.isClosed)) {
          return this[_ensureDoneFuture]();
        }
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        this[_closeUnchecked]();
        return this[_ensureDoneFuture]();
      }
      [_closeUnchecked]() {
        this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
        if (dart.test(this.hasListener)) {
          this[_sendDone]();
        } else if (dart.test(this[_isInitialState])) {
          this[_ensurePendingEvents]().add(C[40] || CT.C40);
        }
      }
      [_add](value) {
        T.as(value);
        if (dart.test(this.hasListener)) {
          this[_sendData](value);
        } else if (dart.test(this[_isInitialState])) {
          this[_ensurePendingEvents]().add(new (_DelayedDataOfT()).new(value));
        }
      }
      [_addError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[64], 613, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[64], 613, 43, "stackTrace");
        if (dart.test(this.hasListener)) {
          this[_sendError](error, stackTrace);
        } else if (dart.test(this[_isInitialState])) {
          this[_ensurePendingEvents]().add(new async._DelayedError.new(error, stackTrace));
        }
      }
      [_close]() {
        if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, I[64], 623, 12, "_isAddingStream");
        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
        this[_varData] = addState.varData;
        this[_state] = (dart.notNull(this[_state]) & ~8 >>> 0) >>> 0;
        addState.complete();
      }
      [_subscribe](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[64], 633, 28, "cancelOnError");
        if (!dart.test(this[_isInitialState])) {
          dart.throw(new core.StateError.new("Stream has already been listened to."));
        }
        let subscription = new (_ControllerSubscriptionOfT()).new(this, onData, onError, onDone, cancelOnError);
        let pendingEvents = this[_pendingEvents];
        this[_state] = (dart.notNull(this[_state]) | 1) >>> 0;
        if (dart.test(this[_isAddingStream])) {
          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
          addState.varData = subscription;
          addState.resume();
        } else {
          this[_varData] = subscription;
        }
        subscription[_setPendingEvents](pendingEvents);
        subscription[_guardCallback](dart.fn(() => {
          async._runGuarded(this.onListen);
        }, T$.VoidTovoid()));
        return subscription;
      }
      [_recordCancel](subscription) {
        let t115;
        if (subscription == null) dart.nullFailed(I[64], 657, 53, "subscription");
        let result = null;
        if (dart.test(this[_isAddingStream])) {
          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
          result = addState.cancel();
        }
        this[_varData] = null;
        this[_state] = (dart.notNull(this[_state]) & ~(1 | 8) >>> 0 | 2) >>> 0;
        let onCancel = this.onCancel;
        if (onCancel != null) {
          if (result == null) {
            try {
              let cancelResult = onCancel();
              if (T$.FutureOfvoid().is(cancelResult)) {
                result = cancelResult;
              }
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.Object.is(e)) {
                result = (t115 = new (T$._FutureOfvoid()).new(), (() => {
                  t115[_asyncCompleteError](e, s);
                  return t115;
                })());
              } else
                throw e$;
            }
          } else {
            result = result.whenComplete(onCancel);
          }
        }
        const complete = () => {
          let doneFuture = this[_doneFuture];
          if (doneFuture != null && dart.test(doneFuture[_mayComplete])) {
            doneFuture[_asyncComplete](null);
          }
        };
        dart.fn(complete, T$.VoidTovoid());
        if (result != null) {
          result = result.whenComplete(complete);
        } else {
          complete();
        }
        return result;
      }
      [_recordPause](subscription) {
        if (subscription == null) dart.nullFailed(I[64], 713, 43, "subscription");
        if (dart.test(this[_isAddingStream])) {
          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
          addState.pause();
        }
        async._runGuarded(this.onPause);
      }
      [_recordResume](subscription) {
        if (subscription == null) dart.nullFailed(I[64], 721, 44, "subscription");
        if (dart.test(this[_isAddingStream])) {
          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
          addState.resume();
        }
        async._runGuarded(this.onResume);
      }
    }
    (_StreamController.new = function(onListen, onPause, onResume, onCancel) {
      this[_varData] = null;
      this[_state] = 0;
      this[_doneFuture] = null;
      this.onListen = onListen;
      this.onPause = onPause;
      this.onResume = onResume;
      this.onCancel = onCancel;
      ;
    }).prototype = _StreamController.prototype;
    dart.addTypeTests(_StreamController);
    _StreamController.prototype[_is__StreamController_default] = true;
    dart.addTypeCaches(_StreamController);
    _StreamController[dart.implements] = () => [async._StreamControllerBase$(T)];
    dart.setMethodSignature(_StreamController, () => ({
      __proto__: dart.getMethods(_StreamController.__proto__),
      [_ensurePendingEvents]: dart.fnType(async._StreamImplEvents$(T), []),
      [_badEventState]: dart.fnType(core.Error, []),
      addStream: dart.fnType(async.Future, [dart.nullable(core.Object)], {cancelOnError: dart.nullable(core.bool)}, {}),
      [_ensureDoneFuture]: dart.fnType(async.Future$(dart.void), []),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(async.Future, []),
      [_closeUnchecked]: dart.fnType(dart.void, []),
      [_add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_close]: dart.fnType(dart.void, []),
      [_subscribe]: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T])), dart.nullable(core.Function), dart.nullable(dart.fnType(dart.void, [])), core.bool]),
      [_recordCancel]: dart.fnType(dart.nullable(async.Future$(dart.void)), [async.StreamSubscription$(T)]),
      [_recordPause]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
      [_recordResume]: dart.fnType(dart.void, [async.StreamSubscription$(T)])
    }));
    dart.setGetterSignature(_StreamController, () => ({
      __proto__: dart.getGetters(_StreamController.__proto__),
      stream: async.Stream$(T),
      sink: async.StreamSink$(T),
      [_isCanceled]: core.bool,
      hasListener: core.bool,
      [_isInitialState]: core.bool,
      isClosed: core.bool,
      isPaused: core.bool,
      [_isAddingStream]: core.bool,
      [_mayAddEvent]: core.bool,
      [_pendingEvents]: dart.nullable(async._PendingEvents$(T)),
      [_subscription]: async._ControllerSubscription$(T),
      done: async.Future$(dart.void)
    }));
    dart.setLibraryUri(_StreamController, I[29]);
    dart.setFieldSignature(_StreamController, () => ({
      __proto__: dart.getFields(_StreamController.__proto__),
      [_varData]: dart.fieldType(dart.nullable(core.Object)),
      [_state]: dart.fieldType(core.int),
      [_doneFuture]: dart.fieldType(dart.nullable(async._Future$(dart.void))),
      onListen: dart.fieldType(dart.nullable(dart.fnType(dart.void, []))),
      onPause: dart.fieldType(dart.nullable(dart.fnType(dart.void, []))),
      onResume: dart.fieldType(dart.nullable(dart.fnType(dart.void, []))),
      onCancel: dart.fieldType(dart.nullable(dart.fnType(dart.void, [])))
    }));
    return _StreamController;
  });
  async._StreamController = async._StreamController$();
  dart.defineLazy(async._StreamController, {
    /*async._StreamController._STATE_INITIAL*/get _STATE_INITIAL() {
      return 0;
    },
    /*async._StreamController._STATE_SUBSCRIBED*/get _STATE_SUBSCRIBED() {
      return 1;
    },
    /*async._StreamController._STATE_CANCELED*/get _STATE_CANCELED() {
      return 2;
    },
    /*async._StreamController._STATE_SUBSCRIPTION_MASK*/get _STATE_SUBSCRIPTION_MASK() {
      return 3;
    },
    /*async._StreamController._STATE_CLOSED*/get _STATE_CLOSED() {
      return 4;
    },
    /*async._StreamController._STATE_ADDSTREAM*/get _STATE_ADDSTREAM() {
      return 8;
    }
  }, false);
  dart.addTypeTests(async._StreamController, _is__StreamController_default);
  const _is__SyncStreamControllerDispatch_default = Symbol('_is__SyncStreamControllerDispatch_default');
  async._SyncStreamControllerDispatch$ = dart.generic(T => {
    class _SyncStreamControllerDispatch extends core.Object {
      [_sendData](data) {
        this[_subscription][_add](data);
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[64], 736, 26, "error");
        if (stackTrace == null) dart.nullFailed(I[64], 736, 44, "stackTrace");
        this[_subscription][_addError](error, stackTrace);
      }
      [_sendDone]() {
        this[_subscription][_close]();
      }
    }
    (_SyncStreamControllerDispatch.new = function() {
      ;
    }).prototype = _SyncStreamControllerDispatch.prototype;
    dart.addTypeTests(_SyncStreamControllerDispatch);
    _SyncStreamControllerDispatch.prototype[_is__SyncStreamControllerDispatch_default] = true;
    dart.addTypeCaches(_SyncStreamControllerDispatch);
    _SyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T), async.SynchronousStreamController$(T)];
    dart.setMethodSignature(_SyncStreamControllerDispatch, () => ({
      __proto__: dart.getMethods(_SyncStreamControllerDispatch.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_SyncStreamControllerDispatch, I[29]);
    return _SyncStreamControllerDispatch;
  });
  async._SyncStreamControllerDispatch = async._SyncStreamControllerDispatch$();
  dart.addTypeTests(async._SyncStreamControllerDispatch, _is__SyncStreamControllerDispatch_default);
  const _is__AsyncStreamControllerDispatch_default = Symbol('_is__AsyncStreamControllerDispatch_default');
  async._AsyncStreamControllerDispatch$ = dart.generic(T => {
    var _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
    class _AsyncStreamControllerDispatch extends core.Object {
      [_sendData](data) {
        this[_subscription][_addPending](new (_DelayedDataOfT()).new(data));
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[64], 751, 26, "error");
        if (stackTrace == null) dart.nullFailed(I[64], 751, 44, "stackTrace");
        this[_subscription][_addPending](new async._DelayedError.new(error, stackTrace));
      }
      [_sendDone]() {
        this[_subscription][_addPending](C[40] || CT.C40);
      }
    }
    (_AsyncStreamControllerDispatch.new = function() {
      ;
    }).prototype = _AsyncStreamControllerDispatch.prototype;
    dart.addTypeTests(_AsyncStreamControllerDispatch);
    _AsyncStreamControllerDispatch.prototype[_is__AsyncStreamControllerDispatch_default] = true;
    dart.addTypeCaches(_AsyncStreamControllerDispatch);
    _AsyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T)];
    dart.setMethodSignature(_AsyncStreamControllerDispatch, () => ({
      __proto__: dart.getMethods(_AsyncStreamControllerDispatch.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_AsyncStreamControllerDispatch, I[29]);
    return _AsyncStreamControllerDispatch;
  });
  async._AsyncStreamControllerDispatch = async._AsyncStreamControllerDispatch$();
  dart.addTypeTests(async._AsyncStreamControllerDispatch, _is__AsyncStreamControllerDispatch_default);
  const _is__AsyncStreamController_default = Symbol('_is__AsyncStreamController_default');
  async._AsyncStreamController$ = dart.generic(T => {
    const _StreamController__AsyncStreamControllerDispatch$36 = class _StreamController__AsyncStreamControllerDispatch extends async._StreamController$(T) {};
    (_StreamController__AsyncStreamControllerDispatch$36.new = function(onListen, onPause, onResume, onCancel) {
      _StreamController__AsyncStreamControllerDispatch$36.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
    }).prototype = _StreamController__AsyncStreamControllerDispatch$36.prototype;
    dart.applyMixin(_StreamController__AsyncStreamControllerDispatch$36, async._AsyncStreamControllerDispatch$(T));
    class _AsyncStreamController extends _StreamController__AsyncStreamControllerDispatch$36 {
      [_sendData](data) {
        return super[_sendData](data);
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[64], 764, 7, "error");
        if (stackTrace == null) dart.nullFailed(I[64], 764, 7, "stackTrace");
        return super[_sendError](error, stackTrace);
      }
      [_sendDone]() {
        return super[_sendDone]();
      }
    }
    (_AsyncStreamController.new = function(onListen, onPause, onResume, onCancel) {
      _AsyncStreamController.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
      ;
    }).prototype = _AsyncStreamController.prototype;
    dart.addTypeTests(_AsyncStreamController);
    _AsyncStreamController.prototype[_is__AsyncStreamController_default] = true;
    dart.addTypeCaches(_AsyncStreamController);
    dart.setMethodSignature(_AsyncStreamController, () => ({
      __proto__: dart.getMethods(_AsyncStreamController.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_AsyncStreamController, I[29]);
    return _AsyncStreamController;
  });
  async._AsyncStreamController = async._AsyncStreamController$();
  dart.addTypeTests(async._AsyncStreamController, _is__AsyncStreamController_default);
  const _is__SyncStreamController_default = Symbol('_is__SyncStreamController_default');
  async._SyncStreamController$ = dart.generic(T => {
    const _StreamController__SyncStreamControllerDispatch$36 = class _StreamController__SyncStreamControllerDispatch extends async._StreamController$(T) {};
    (_StreamController__SyncStreamControllerDispatch$36.new = function(onListen, onPause, onResume, onCancel) {
      _StreamController__SyncStreamControllerDispatch$36.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
    }).prototype = _StreamController__SyncStreamControllerDispatch$36.prototype;
    dart.applyMixin(_StreamController__SyncStreamControllerDispatch$36, async._SyncStreamControllerDispatch$(T));
    class _SyncStreamController extends _StreamController__SyncStreamControllerDispatch$36 {
      [_sendData](data) {
        return super[_sendData](data);
      }
      [_sendError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[64], 767, 7, "error");
        if (stackTrace == null) dart.nullFailed(I[64], 767, 7, "stackTrace");
        return super[_sendError](error, stackTrace);
      }
      [_sendDone]() {
        return super[_sendDone]();
      }
    }
    (_SyncStreamController.new = function(onListen, onPause, onResume, onCancel) {
      _SyncStreamController.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
      ;
    }).prototype = _SyncStreamController.prototype;
    dart.addTypeTests(_SyncStreamController);
    _SyncStreamController.prototype[_is__SyncStreamController_default] = true;
    dart.addTypeCaches(_SyncStreamController);
    dart.setMethodSignature(_SyncStreamController, () => ({
      __proto__: dart.getMethods(_SyncStreamController.__proto__),
      [_sendData]: dart.fnType(dart.void, [T]),
      [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_SyncStreamController, I[29]);
    return _SyncStreamController;
  });
  async._SyncStreamController = async._SyncStreamController$();
  dart.addTypeTests(async._SyncStreamController, _is__SyncStreamController_default);
  var _target$ = dart.privateName(async, "_target");
  const _is__StreamSinkWrapper_default = Symbol('_is__StreamSinkWrapper_default');
  async._StreamSinkWrapper$ = dart.generic(T => {
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    class _StreamSinkWrapper extends core.Object {
      add(data) {
        T.as(data);
        this[_target$].add(data);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[64], 829, 24, "error");
        this[_target$].addError(error, stackTrace);
      }
      close() {
        return this[_target$].close();
      }
      addStream(source) {
        StreamOfT().as(source);
        if (source == null) dart.nullFailed(I[64], 835, 30, "source");
        return this[_target$].addStream(source);
      }
      get done() {
        return this[_target$].done;
      }
    }
    (_StreamSinkWrapper.new = function(_target) {
      if (_target == null) dart.nullFailed(I[64], 824, 27, "_target");
      this[_target$] = _target;
      ;
    }).prototype = _StreamSinkWrapper.prototype;
    dart.addTypeTests(_StreamSinkWrapper);
    _StreamSinkWrapper.prototype[_is__StreamSinkWrapper_default] = true;
    dart.addTypeCaches(_StreamSinkWrapper);
    _StreamSinkWrapper[dart.implements] = () => [async.StreamSink$(T)];
    dart.setMethodSignature(_StreamSinkWrapper, () => ({
      __proto__: dart.getMethods(_StreamSinkWrapper.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(async.Future, []),
      addStream: dart.fnType(async.Future, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_StreamSinkWrapper, () => ({
      __proto__: dart.getGetters(_StreamSinkWrapper.__proto__),
      done: async.Future
    }));
    dart.setLibraryUri(_StreamSinkWrapper, I[29]);
    dart.setFieldSignature(_StreamSinkWrapper, () => ({
      __proto__: dart.getFields(_StreamSinkWrapper.__proto__),
      [_target$]: dart.finalFieldType(async.StreamController)
    }));
    return _StreamSinkWrapper;
  });
  async._StreamSinkWrapper = async._StreamSinkWrapper$();
  dart.addTypeTests(async._StreamSinkWrapper, _is__StreamSinkWrapper_default);
  const _is__AddStreamState_default = Symbol('_is__AddStreamState_default');
  async._AddStreamState$ = dart.generic(T => {
    class _AddStreamState extends core.Object {
      static makeErrorHandler(controller) {
        if (controller == null) dart.nullFailed(I[64], 858, 38, "controller");
        return dart.fn((e, s) => {
          if (e == null) dart.nullFailed(I[64], 858, 61, "e");
          if (s == null) dart.nullFailed(I[64], 858, 75, "s");
          controller[_addError](e, s);
          controller[_close]();
        }, T$.ObjectAndStackTraceToNull());
      }
      pause() {
        this.addSubscription.pause();
      }
      resume() {
        this.addSubscription.resume();
      }
      cancel() {
        let cancel = this.addSubscription.cancel();
        if (cancel == null) {
          this.addStreamFuture[_asyncComplete](null);
          return async.Future._nullFuture;
        }
        return cancel.whenComplete(dart.fn(() => {
          this.addStreamFuture[_asyncComplete](null);
        }, T$.VoidToNull()));
      }
      complete() {
        this.addStreamFuture[_asyncComplete](null);
      }
    }
    (_AddStreamState.new = function(controller, source, cancelOnError) {
      if (controller == null) dart.nullFailed(I[64], 849, 21, "controller");
      if (source == null) dart.nullFailed(I[64], 849, 43, "source");
      if (cancelOnError == null) dart.nullFailed(I[64], 849, 56, "cancelOnError");
      this.addStreamFuture = new async._Future.new();
      this.addSubscription = source.listen(dart.bind(controller, _add), {onError: T$.FunctionN().as(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close), cancelOnError: cancelOnError});
      ;
    }).prototype = _AddStreamState.prototype;
    dart.addTypeTests(_AddStreamState);
    _AddStreamState.prototype[_is__AddStreamState_default] = true;
    dart.addTypeCaches(_AddStreamState);
    dart.setMethodSignature(_AddStreamState, () => ({
      __proto__: dart.getMethods(_AddStreamState.__proto__),
      pause: dart.fnType(dart.void, []),
      resume: dart.fnType(dart.void, []),
      cancel: dart.fnType(async.Future$(dart.void), []),
      complete: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_AddStreamState, I[29]);
    dart.setFieldSignature(_AddStreamState, () => ({
      __proto__: dart.getFields(_AddStreamState.__proto__),
      addStreamFuture: dart.finalFieldType(async._Future),
      addSubscription: dart.finalFieldType(async.StreamSubscription)
    }));
    return _AddStreamState;
  });
  async._AddStreamState = async._AddStreamState$();
  dart.addTypeTests(async._AddStreamState, _is__AddStreamState_default);
  const _is__StreamControllerAddStreamState_default = Symbol('_is__StreamControllerAddStreamState_default');
  async._StreamControllerAddStreamState$ = dart.generic(T => {
    class _StreamControllerAddStreamState extends async._AddStreamState$(T) {}
    (_StreamControllerAddStreamState.new = function(controller, varData, source, cancelOnError) {
      if (controller == null) dart.nullFailed(I[64], 899, 56, "controller");
      if (source == null) dart.nullFailed(I[64], 900, 17, "source");
      if (cancelOnError == null) dart.nullFailed(I[64], 900, 30, "cancelOnError");
      this.varData = varData;
      _StreamControllerAddStreamState.__proto__.new.call(this, controller, source, cancelOnError);
      if (dart.test(controller.isPaused)) {
        this.addSubscription.pause();
      }
    }).prototype = _StreamControllerAddStreamState.prototype;
    dart.addTypeTests(_StreamControllerAddStreamState);
    _StreamControllerAddStreamState.prototype[_is__StreamControllerAddStreamState_default] = true;
    dart.addTypeCaches(_StreamControllerAddStreamState);
    dart.setLibraryUri(_StreamControllerAddStreamState, I[29]);
    dart.setFieldSignature(_StreamControllerAddStreamState, () => ({
      __proto__: dart.getFields(_StreamControllerAddStreamState.__proto__),
      varData: dart.fieldType(dart.dynamic)
    }));
    return _StreamControllerAddStreamState;
  });
  async._StreamControllerAddStreamState = async._StreamControllerAddStreamState$();
  dart.addTypeTests(async._StreamControllerAddStreamState, _is__StreamControllerAddStreamState_default);
  const _is__EventSink_default = Symbol('_is__EventSink_default');
  async._EventSink$ = dart.generic(T => {
    class _EventSink extends core.Object {}
    (_EventSink.new = function() {
      ;
    }).prototype = _EventSink.prototype;
    dart.addTypeTests(_EventSink);
    _EventSink.prototype[_is__EventSink_default] = true;
    dart.addTypeCaches(_EventSink);
    dart.setLibraryUri(_EventSink, I[29]);
    return _EventSink;
  });
  async._EventSink = async._EventSink$();
  dart.addTypeTests(async._EventSink, _is__EventSink_default);
  const _is__EventDispatch_default = Symbol('_is__EventDispatch_default');
  async._EventDispatch$ = dart.generic(T => {
    class _EventDispatch extends core.Object {}
    (_EventDispatch.new = function() {
      ;
    }).prototype = _EventDispatch.prototype;
    dart.addTypeTests(_EventDispatch);
    _EventDispatch.prototype[_is__EventDispatch_default] = true;
    dart.addTypeCaches(_EventDispatch);
    dart.setLibraryUri(_EventDispatch, I[29]);
    return _EventDispatch;
  });
  async._EventDispatch = async._EventDispatch$();
  dart.addTypeTests(async._EventDispatch, _is__EventDispatch_default);
  var _isUsed = dart.privateName(async, "_isUsed");
  const _is__GeneratedStreamImpl_default = Symbol('_is__GeneratedStreamImpl_default');
  async._GeneratedStreamImpl$ = dart.generic(T => {
    var _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
    class _GeneratedStreamImpl extends async._StreamImpl$(T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        let t115;
        if (cancelOnError == null) dart.nullFailed(I[65], 504, 47, "cancelOnError");
        if (dart.test(this[_isUsed])) dart.throw(new core.StateError.new("Stream has already been listened to."));
        this[_isUsed] = true;
        t115 = new (_BufferingStreamSubscriptionOfT()).new(onData, onError, onDone, cancelOnError);
        return (() => {
          t115[_setPendingEvents](this[_pending$]());
          return t115;
        })();
      }
    }
    (_GeneratedStreamImpl.new = function(_pending) {
      if (_pending == null) dart.nullFailed(I[65], 501, 29, "_pending");
      this[_isUsed] = false;
      this[_pending$] = _pending;
      _GeneratedStreamImpl.__proto__.new.call(this);
      ;
    }).prototype = _GeneratedStreamImpl.prototype;
    dart.addTypeTests(_GeneratedStreamImpl);
    _GeneratedStreamImpl.prototype[_is__GeneratedStreamImpl_default] = true;
    dart.addTypeCaches(_GeneratedStreamImpl);
    dart.setLibraryUri(_GeneratedStreamImpl, I[29]);
    dart.setFieldSignature(_GeneratedStreamImpl, () => ({
      __proto__: dart.getFields(_GeneratedStreamImpl.__proto__),
      [_pending$]: dart.finalFieldType(dart.fnType(async._PendingEvents$(T), [])),
      [_isUsed]: dart.fieldType(core.bool)
    }));
    return _GeneratedStreamImpl;
  });
  async._GeneratedStreamImpl = async._GeneratedStreamImpl$();
  dart.addTypeTests(async._GeneratedStreamImpl, _is__GeneratedStreamImpl_default);
  var _iterator = dart.privateName(async, "_iterator");
  var _eventScheduled = dart.privateName(async, "_eventScheduled");
  const _is__PendingEvents_default = Symbol('_is__PendingEvents_default');
  async._PendingEvents$ = dart.generic(T => {
    var _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
    class _PendingEvents extends core.Object {
      get isScheduled() {
        return this[_state] === 1;
      }
      get [_eventScheduled]() {
        return dart.notNull(this[_state]) >= 1;
      }
      schedule(dispatch) {
        _EventDispatchOfT().as(dispatch);
        if (dispatch == null) dart.nullFailed(I[65], 651, 35, "dispatch");
        if (dart.test(this.isScheduled)) return;
        if (!!dart.test(this.isEmpty)) dart.assertFailed(null, I[65], 653, 12, "!isEmpty");
        if (dart.test(this[_eventScheduled])) {
          if (!(this[_state] === 3)) dart.assertFailed(null, I[65], 655, 14, "_state == _STATE_CANCELED");
          this[_state] = 1;
          return;
        }
        async.scheduleMicrotask(dart.fn(() => {
          let oldState = this[_state];
          this[_state] = 0;
          if (oldState === 3) return;
          this.handleNext(dispatch);
        }, T$.VoidTovoid()));
        this[_state] = 1;
      }
      cancelSchedule() {
        if (dart.test(this.isScheduled)) this[_state] = 3;
      }
    }
    (_PendingEvents.new = function() {
      this[_state] = 0;
      ;
    }).prototype = _PendingEvents.prototype;
    dart.addTypeTests(_PendingEvents);
    _PendingEvents.prototype[_is__PendingEvents_default] = true;
    dart.addTypeCaches(_PendingEvents);
    dart.setMethodSignature(_PendingEvents, () => ({
      __proto__: dart.getMethods(_PendingEvents.__proto__),
      schedule: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      cancelSchedule: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_PendingEvents, () => ({
      __proto__: dart.getGetters(_PendingEvents.__proto__),
      isScheduled: core.bool,
      [_eventScheduled]: core.bool
    }));
    dart.setLibraryUri(_PendingEvents, I[29]);
    dart.setFieldSignature(_PendingEvents, () => ({
      __proto__: dart.getFields(_PendingEvents.__proto__),
      [_state]: dart.fieldType(core.int)
    }));
    return _PendingEvents;
  });
  async._PendingEvents = async._PendingEvents$();
  dart.defineLazy(async._PendingEvents, {
    /*async._PendingEvents._STATE_UNSCHEDULED*/get _STATE_UNSCHEDULED() {
      return 0;
    },
    /*async._PendingEvents._STATE_SCHEDULED*/get _STATE_SCHEDULED() {
      return 1;
    },
    /*async._PendingEvents._STATE_CANCELED*/get _STATE_CANCELED() {
      return 3;
    }
  }, false);
  dart.addTypeTests(async._PendingEvents, _is__PendingEvents_default);
  const _is__IterablePendingEvents_default = Symbol('_is__IterablePendingEvents_default');
  async._IterablePendingEvents$ = dart.generic(T => {
    var _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
    class _IterablePendingEvents extends async._PendingEvents$(T) {
      get isEmpty() {
        return this[_iterator] == null;
      }
      handleNext(dispatch) {
        _EventDispatchOfT().as(dispatch);
        if (dispatch == null) dart.nullFailed(I[65], 523, 37, "dispatch");
        let iterator = this[_iterator];
        if (iterator == null) {
          dart.throw(new core.StateError.new("No events pending."));
        }
        let movedNext = false;
        try {
          if (dart.test(iterator.moveNext())) {
            movedNext = true;
            dispatch[_sendData](iterator.current);
          } else {
            this[_iterator] = null;
            dispatch[_sendDone]();
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            if (!movedNext) {
              this[_iterator] = C[20] || CT.C20;
            }
            dispatch[_sendError](e, s);
          } else
            throw e$;
        }
      }
      clear() {
        if (dart.test(this.isScheduled)) this.cancelSchedule();
        this[_iterator] = null;
      }
    }
    (_IterablePendingEvents.new = function(data) {
      if (data == null) dart.nullFailed(I[65], 519, 38, "data");
      this[_iterator] = data[$iterator];
      _IterablePendingEvents.__proto__.new.call(this);
      ;
    }).prototype = _IterablePendingEvents.prototype;
    dart.addTypeTests(_IterablePendingEvents);
    _IterablePendingEvents.prototype[_is__IterablePendingEvents_default] = true;
    dart.addTypeCaches(_IterablePendingEvents);
    dart.setMethodSignature(_IterablePendingEvents, () => ({
      __proto__: dart.getMethods(_IterablePendingEvents.__proto__),
      handleNext: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_IterablePendingEvents, () => ({
      __proto__: dart.getGetters(_IterablePendingEvents.__proto__),
      isEmpty: core.bool
    }));
    dart.setLibraryUri(_IterablePendingEvents, I[29]);
    dart.setFieldSignature(_IterablePendingEvents, () => ({
      __proto__: dart.getFields(_IterablePendingEvents.__proto__),
      [_iterator]: dart.fieldType(dart.nullable(core.Iterator$(T)))
    }));
    return _IterablePendingEvents;
  });
  async._IterablePendingEvents = async._IterablePendingEvents$();
  dart.addTypeTests(async._IterablePendingEvents, _is__IterablePendingEvents_default);
  const _is__DelayedEvent_default = Symbol('_is__DelayedEvent_default');
  async._DelayedEvent$ = dart.generic(T => {
    class _DelayedEvent extends core.Object {}
    (_DelayedEvent.new = function() {
      this.next = null;
      ;
    }).prototype = _DelayedEvent.prototype;
    dart.addTypeTests(_DelayedEvent);
    _DelayedEvent.prototype[_is__DelayedEvent_default] = true;
    dart.addTypeCaches(_DelayedEvent);
    dart.setLibraryUri(_DelayedEvent, I[29]);
    dart.setFieldSignature(_DelayedEvent, () => ({
      __proto__: dart.getFields(_DelayedEvent.__proto__),
      next: dart.fieldType(dart.nullable(async._DelayedEvent))
    }));
    return _DelayedEvent;
  });
  async._DelayedEvent = async._DelayedEvent$();
  dart.addTypeTests(async._DelayedEvent, _is__DelayedEvent_default);
  const _is__DelayedData_default = Symbol('_is__DelayedData_default');
  async._DelayedData$ = dart.generic(T => {
    var _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
    class _DelayedData extends async._DelayedEvent$(T) {
      perform(dispatch) {
        _EventDispatchOfT().as(dispatch);
        if (dispatch == null) dart.nullFailed(I[65], 590, 34, "dispatch");
        dispatch[_sendData](this.value);
      }
    }
    (_DelayedData.new = function(value) {
      this.value = value;
      _DelayedData.__proto__.new.call(this);
      ;
    }).prototype = _DelayedData.prototype;
    dart.addTypeTests(_DelayedData);
    _DelayedData.prototype[_is__DelayedData_default] = true;
    dart.addTypeCaches(_DelayedData);
    dart.setMethodSignature(_DelayedData, () => ({
      __proto__: dart.getMethods(_DelayedData.__proto__),
      perform: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_DelayedData, I[29]);
    dart.setFieldSignature(_DelayedData, () => ({
      __proto__: dart.getFields(_DelayedData.__proto__),
      value: dart.finalFieldType(T)
    }));
    return _DelayedData;
  });
  async._DelayedData = async._DelayedData$();
  dart.addTypeTests(async._DelayedData, _is__DelayedData_default);
  async._DelayedError = class _DelayedError extends async._DelayedEvent {
    perform(dispatch) {
      async._EventDispatch.as(dispatch);
      if (dispatch == null) dart.nullFailed(I[65], 601, 31, "dispatch");
      dispatch[_sendError](this.error, this.stackTrace);
    }
  };
  (async._DelayedError.new = function(error, stackTrace) {
    if (error == null) dart.nullFailed(I[65], 600, 22, "error");
    if (stackTrace == null) dart.nullFailed(I[65], 600, 34, "stackTrace");
    this.error = error;
    this.stackTrace = stackTrace;
    async._DelayedError.__proto__.new.call(this);
    ;
  }).prototype = async._DelayedError.prototype;
  dart.addTypeTests(async._DelayedError);
  dart.addTypeCaches(async._DelayedError);
  dart.setMethodSignature(async._DelayedError, () => ({
    __proto__: dart.getMethods(async._DelayedError.__proto__),
    perform: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(async._DelayedError, I[29]);
  dart.setFieldSignature(async._DelayedError, () => ({
    __proto__: dart.getFields(async._DelayedError.__proto__),
    error: dart.finalFieldType(core.Object),
    stackTrace: dart.finalFieldType(core.StackTrace)
  }));
  async._DelayedDone = class _DelayedDone extends core.Object {
    perform(dispatch) {
      async._EventDispatch.as(dispatch);
      if (dispatch == null) dart.nullFailed(I[65], 609, 31, "dispatch");
      dispatch[_sendDone]();
    }
    get next() {
      return null;
    }
    set next(_) {
      dart.throw(new core.StateError.new("No events after a done."));
    }
  };
  (async._DelayedDone.new = function() {
    ;
  }).prototype = async._DelayedDone.prototype;
  dart.addTypeTests(async._DelayedDone);
  dart.addTypeCaches(async._DelayedDone);
  async._DelayedDone[dart.implements] = () => [async._DelayedEvent];
  dart.setMethodSignature(async._DelayedDone, () => ({
    __proto__: dart.getMethods(async._DelayedDone.__proto__),
    perform: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(async._DelayedDone, () => ({
    __proto__: dart.getGetters(async._DelayedDone.__proto__),
    next: dart.nullable(async._DelayedEvent)
  }));
  dart.setSetterSignature(async._DelayedDone, () => ({
    __proto__: dart.getSetters(async._DelayedDone.__proto__),
    next: dart.nullable(async._DelayedEvent)
  }));
  dart.setLibraryUri(async._DelayedDone, I[29]);
  const _is__StreamImplEvents_default = Symbol('_is__StreamImplEvents_default');
  async._StreamImplEvents$ = dart.generic(T => {
    var _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
    class _StreamImplEvents extends async._PendingEvents$(T) {
      get isEmpty() {
        return this.lastPendingEvent == null;
      }
      add(event) {
        if (event == null) dart.nullFailed(I[65], 688, 26, "event");
        let lastEvent = this.lastPendingEvent;
        if (lastEvent == null) {
          this.firstPendingEvent = this.lastPendingEvent = event;
        } else {
          this.lastPendingEvent = lastEvent.next = event;
        }
      }
      handleNext(dispatch) {
        _EventDispatchOfT().as(dispatch);
        if (dispatch == null) dart.nullFailed(I[65], 697, 37, "dispatch");
        if (!!dart.test(this.isScheduled)) dart.assertFailed(null, I[65], 698, 12, "!isScheduled");
        if (!!dart.test(this.isEmpty)) dart.assertFailed(null, I[65], 699, 12, "!isEmpty");
        let event = dart.nullCheck(this.firstPendingEvent);
        let nextEvent = event.next;
        this.firstPendingEvent = nextEvent;
        if (nextEvent == null) {
          this.lastPendingEvent = null;
        }
        event.perform(dispatch);
      }
      clear() {
        if (dart.test(this.isScheduled)) this.cancelSchedule();
        this.firstPendingEvent = this.lastPendingEvent = null;
      }
    }
    (_StreamImplEvents.new = function() {
      this.firstPendingEvent = null;
      this.lastPendingEvent = null;
      _StreamImplEvents.__proto__.new.call(this);
      ;
    }).prototype = _StreamImplEvents.prototype;
    dart.addTypeTests(_StreamImplEvents);
    _StreamImplEvents.prototype[_is__StreamImplEvents_default] = true;
    dart.addTypeCaches(_StreamImplEvents);
    dart.setMethodSignature(_StreamImplEvents, () => ({
      __proto__: dart.getMethods(_StreamImplEvents.__proto__),
      add: dart.fnType(dart.void, [async._DelayedEvent]),
      handleNext: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_StreamImplEvents, () => ({
      __proto__: dart.getGetters(_StreamImplEvents.__proto__),
      isEmpty: core.bool
    }));
    dart.setLibraryUri(_StreamImplEvents, I[29]);
    dart.setFieldSignature(_StreamImplEvents, () => ({
      __proto__: dart.getFields(_StreamImplEvents.__proto__),
      firstPendingEvent: dart.fieldType(dart.nullable(async._DelayedEvent)),
      lastPendingEvent: dart.fieldType(dart.nullable(async._DelayedEvent))
    }));
    return _StreamImplEvents;
  });
  async._StreamImplEvents = async._StreamImplEvents$();
  dart.addTypeTests(async._StreamImplEvents, _is__StreamImplEvents_default);
  var _schedule = dart.privateName(async, "_schedule");
  var _isSent = dart.privateName(async, "_isSent");
  var _isScheduled = dart.privateName(async, "_isScheduled");
  const _is__DoneStreamSubscription_default = Symbol('_is__DoneStreamSubscription_default');
  async._DoneStreamSubscription$ = dart.generic(T => {
    class _DoneStreamSubscription extends core.Object {
      get [_isSent]() {
        return (dart.notNull(this[_state]) & 1) !== 0;
      }
      get [_isScheduled]() {
        return (dart.notNull(this[_state]) & 2) !== 0;
      }
      get isPaused() {
        return dart.notNull(this[_state]) >= 4;
      }
      [_schedule]() {
        if (dart.test(this[_isScheduled])) return;
        this[_zone$].scheduleMicrotask(dart.bind(this, _sendDone));
        this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
      }
      onData(handleData) {
      }
      onError(handleError) {
      }
      onDone(handleDone) {
        this[_onDone$] = handleDone;
      }
      pause(resumeSignal = null) {
        this[_state] = dart.notNull(this[_state]) + 4;
        if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
      }
      resume() {
        if (dart.test(this.isPaused)) {
          this[_state] = dart.notNull(this[_state]) - 4;
          if (!dart.test(this.isPaused) && !dart.test(this[_isSent])) {
            this[_schedule]();
          }
        }
      }
      cancel() {
        return async.Future._nullFuture;
      }
      asFuture(E, futureValue = null) {
        let resultValue = null;
        if (futureValue == null) {
          if (!dart.test(_internal.typeAcceptsNull(E))) {
            dart.throw(new core.ArgumentError.notNull("futureValue"));
          }
          resultValue = E.as(futureValue);
        } else {
          resultValue = futureValue;
        }
        let result = new (async._Future$(E)).new();
        this[_onDone$] = dart.fn(() => {
          result[_completeWithValue](resultValue);
        }, T$.VoidTovoid());
        return result;
      }
      [_sendDone]() {
        this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
        if (dart.test(this.isPaused)) return;
        this[_state] = (dart.notNull(this[_state]) | 1) >>> 0;
        let doneHandler = this[_onDone$];
        if (doneHandler != null) this[_zone$].runGuarded(doneHandler);
      }
    }
    (_DoneStreamSubscription.new = function(_onDone) {
      this[_state] = 0;
      this[_onDone$] = _onDone;
      this[_zone$] = async.Zone.current;
      this[_schedule]();
    }).prototype = _DoneStreamSubscription.prototype;
    _DoneStreamSubscription.prototype[dart.isStreamSubscription] = true;
    dart.addTypeTests(_DoneStreamSubscription);
    _DoneStreamSubscription.prototype[_is__DoneStreamSubscription_default] = true;
    dart.addTypeCaches(_DoneStreamSubscription);
    _DoneStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T)];
    dart.setMethodSignature(_DoneStreamSubscription, () => ({
      __proto__: dart.getMethods(_DoneStreamSubscription.__proto__),
      [_schedule]: dart.fnType(dart.void, []),
      onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [T]))]),
      onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
      onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
      pause: dart.fnType(dart.void, [], [dart.nullable(async.Future$(dart.void))]),
      resume: dart.fnType(dart.void, []),
      cancel: dart.fnType(async.Future, []),
      asFuture: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)]),
      [_sendDone]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_DoneStreamSubscription, () => ({
      __proto__: dart.getGetters(_DoneStreamSubscription.__proto__),
      [_isSent]: core.bool,
      [_isScheduled]: core.bool,
      isPaused: core.bool
    }));
    dart.setLibraryUri(_DoneStreamSubscription, I[29]);
    dart.setFieldSignature(_DoneStreamSubscription, () => ({
      __proto__: dart.getFields(_DoneStreamSubscription.__proto__),
      [_zone$]: dart.finalFieldType(async.Zone),
      [_state]: dart.fieldType(core.int),
      [_onDone$]: dart.fieldType(dart.nullable(dart.fnType(dart.void, [])))
    }));
    return _DoneStreamSubscription;
  });
  async._DoneStreamSubscription = async._DoneStreamSubscription$();
  dart.defineLazy(async._DoneStreamSubscription, {
    /*async._DoneStreamSubscription._DONE_SENT*/get _DONE_SENT() {
      return 1;
    },
    /*async._DoneStreamSubscription._SCHEDULED*/get _SCHEDULED() {
      return 2;
    },
    /*async._DoneStreamSubscription._PAUSED*/get _PAUSED() {
      return 4;
    }
  }, false);
  dart.addTypeTests(async._DoneStreamSubscription, _is__DoneStreamSubscription_default);
  var _source$4 = dart.privateName(async, "_source");
  var _onListenHandler = dart.privateName(async, "_onListenHandler");
  var _onCancelHandler = dart.privateName(async, "_onCancelHandler");
  var _cancelSubscription = dart.privateName(async, "_cancelSubscription");
  var _pauseSubscription = dart.privateName(async, "_pauseSubscription");
  var _resumeSubscription = dart.privateName(async, "_resumeSubscription");
  var _isSubscriptionPaused = dart.privateName(async, "_isSubscriptionPaused");
  const _is__AsBroadcastStream_default = Symbol('_is__AsBroadcastStream_default');
  async._AsBroadcastStream$ = dart.generic(T => {
    var StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
    var _AsBroadcastStreamControllerOfT = () => (_AsBroadcastStreamControllerOfT = dart.constFn(async._AsBroadcastStreamController$(T)))();
    var _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
    var _BroadcastSubscriptionWrapperOfT = () => (_BroadcastSubscriptionWrapperOfT = dart.constFn(async._BroadcastSubscriptionWrapper$(T)))();
    class _AsBroadcastStream extends async.Stream$(T) {
      get isBroadcast() {
        return true;
      }
      listen(onData, opts) {
        let t116;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        let controller = this[_controller$];
        if (controller == null || dart.test(controller.isClosed)) {
          return new (_DoneStreamSubscriptionOfT()).new(onDone);
        }
        this[_subscription] == null ? this[_subscription] = this[_source$4].listen(dart.bind(controller, 'add'), {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close')}) : null;
        return controller[_subscribe](onData, onError, onDone, (t116 = cancelOnError, t116 == null ? false : t116));
      }
      [_onCancel]() {
        let controller = this[_controller$];
        let shutdown = controller == null || dart.test(controller.isClosed);
        let cancelHandler = this[_onCancelHandler];
        if (cancelHandler != null) {
          this[_zone$].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT(), cancelHandler, new (_BroadcastSubscriptionWrapperOfT()).new(this));
        }
        if (shutdown) {
          let subscription = this[_subscription];
          if (subscription != null) {
            subscription.cancel();
            this[_subscription] = null;
          }
        }
      }
      [_onListen$]() {
        let listenHandler = this[_onListenHandler];
        if (listenHandler != null) {
          this[_zone$].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT(), listenHandler, new (_BroadcastSubscriptionWrapperOfT()).new(this));
        }
      }
      [_cancelSubscription]() {
        let subscription = this[_subscription];
        if (subscription != null) {
          this[_subscription] = null;
          this[_controller$] = null;
          subscription.cancel();
        }
      }
      [_pauseSubscription](resumeSignal) {
        let t116;
        t116 = this[_subscription];
        t116 == null ? null : t116.pause(resumeSignal);
      }
      [_resumeSubscription]() {
        let t116;
        t116 = this[_subscription];
        t116 == null ? null : t116.resume();
      }
      get [_isSubscriptionPaused]() {
        let t116, t116$;
        t116$ = (t116 = this[_subscription], t116 == null ? null : t116.isPaused);
        return t116$ == null ? false : t116$;
      }
    }
    (_AsBroadcastStream.new = function(_source, onListenHandler, onCancelHandler) {
      if (_source == null) dart.nullFailed(I[65], 799, 12, "_source");
      this[_controller$] = null;
      this[_subscription] = null;
      this[_source$4] = _source;
      this[_onListenHandler] = onListenHandler == null ? null : async.Zone.current.registerUnaryCallback(dart.void, StreamSubscriptionOfT(), onListenHandler);
      this[_onCancelHandler] = onCancelHandler == null ? null : async.Zone.current.registerUnaryCallback(dart.void, StreamSubscriptionOfT(), onCancelHandler);
      this[_zone$] = async.Zone.current;
      _AsBroadcastStream.__proto__.new.call(this);
      this[_controller$] = new (_AsBroadcastStreamControllerOfT()).new(dart.bind(this, _onListen$), dart.bind(this, _onCancel));
    }).prototype = _AsBroadcastStream.prototype;
    dart.addTypeTests(_AsBroadcastStream);
    _AsBroadcastStream.prototype[_is__AsBroadcastStream_default] = true;
    dart.addTypeCaches(_AsBroadcastStream);
    dart.setMethodSignature(_AsBroadcastStream, () => ({
      __proto__: dart.getMethods(_AsBroadcastStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      [_onCancel]: dart.fnType(dart.void, []),
      [_onListen$]: dart.fnType(dart.void, []),
      [_cancelSubscription]: dart.fnType(dart.void, []),
      [_pauseSubscription]: dart.fnType(dart.void, [dart.nullable(async.Future$(dart.void))]),
      [_resumeSubscription]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_AsBroadcastStream, () => ({
      __proto__: dart.getGetters(_AsBroadcastStream.__proto__),
      [_isSubscriptionPaused]: core.bool
    }));
    dart.setLibraryUri(_AsBroadcastStream, I[29]);
    dart.setFieldSignature(_AsBroadcastStream, () => ({
      __proto__: dart.getFields(_AsBroadcastStream.__proto__),
      [_source$4]: dart.finalFieldType(async.Stream$(T)),
      [_onListenHandler]: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.StreamSubscription$(T)]))),
      [_onCancelHandler]: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.StreamSubscription$(T)]))),
      [_zone$]: dart.finalFieldType(async.Zone),
      [_controller$]: dart.fieldType(dart.nullable(async._AsBroadcastStreamController$(T))),
      [_subscription]: dart.fieldType(dart.nullable(async.StreamSubscription$(T)))
    }));
    return _AsBroadcastStream;
  });
  async._AsBroadcastStream = async._AsBroadcastStream$();
  dart.addTypeTests(async._AsBroadcastStream, _is__AsBroadcastStream_default);
  const _is__BroadcastSubscriptionWrapper_default = Symbol('_is__BroadcastSubscriptionWrapper_default');
  async._BroadcastSubscriptionWrapper$ = dart.generic(T => {
    class _BroadcastSubscriptionWrapper extends core.Object {
      onData(handleData) {
        dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
      }
      onError(handleError) {
        dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
      }
      onDone(handleDone) {
        dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
      }
      pause(resumeSignal = null) {
        this[_stream$][_pauseSubscription](resumeSignal);
      }
      resume() {
        this[_stream$][_resumeSubscription]();
      }
      cancel() {
        this[_stream$][_cancelSubscription]();
        return async.Future._nullFuture;
      }
      get isPaused() {
        return this[_stream$][_isSubscriptionPaused];
      }
      asFuture(E, futureValue = null) {
        dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
      }
    }
    (_BroadcastSubscriptionWrapper.new = function(_stream) {
      if (_stream == null) dart.nullFailed(I[65], 881, 38, "_stream");
      this[_stream$] = _stream;
      ;
    }).prototype = _BroadcastSubscriptionWrapper.prototype;
    _BroadcastSubscriptionWrapper.prototype[dart.isStreamSubscription] = true;
    dart.addTypeTests(_BroadcastSubscriptionWrapper);
    _BroadcastSubscriptionWrapper.prototype[_is__BroadcastSubscriptionWrapper_default] = true;
    dart.addTypeCaches(_BroadcastSubscriptionWrapper);
    _BroadcastSubscriptionWrapper[dart.implements] = () => [async.StreamSubscription$(T)];
    dart.setMethodSignature(_BroadcastSubscriptionWrapper, () => ({
      __proto__: dart.getMethods(_BroadcastSubscriptionWrapper.__proto__),
      onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [T]))]),
      onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
      onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
      pause: dart.fnType(dart.void, [], [dart.nullable(async.Future$(dart.void))]),
      resume: dart.fnType(dart.void, []),
      cancel: dart.fnType(async.Future, []),
      asFuture: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_BroadcastSubscriptionWrapper, () => ({
      __proto__: dart.getGetters(_BroadcastSubscriptionWrapper.__proto__),
      isPaused: core.bool
    }));
    dart.setLibraryUri(_BroadcastSubscriptionWrapper, I[29]);
    dart.setFieldSignature(_BroadcastSubscriptionWrapper, () => ({
      __proto__: dart.getFields(_BroadcastSubscriptionWrapper.__proto__),
      [_stream$]: dart.finalFieldType(async._AsBroadcastStream)
    }));
    return _BroadcastSubscriptionWrapper;
  });
  async._BroadcastSubscriptionWrapper = async._BroadcastSubscriptionWrapper$();
  dart.addTypeTests(async._BroadcastSubscriptionWrapper, _is__BroadcastSubscriptionWrapper_default);
  var _hasValue$0 = dart.privateName(async, "_hasValue");
  var _stateData = dart.privateName(async, "_stateData");
  var _initializeOrDone = dart.privateName(async, "_initializeOrDone");
  const _is__StreamIterator_default = Symbol('_is__StreamIterator_default');
  async._StreamIterator$ = dart.generic(T => {
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    class _StreamIterator extends core.Object {
      get current() {
        if (dart.test(this[_hasValue$0])) return T.as(this[_stateData]);
        return T.as(null);
      }
      moveNext() {
        let subscription = this[_subscription];
        if (subscription != null) {
          if (dart.test(this[_hasValue$0])) {
            let future = new (T$._FutureOfbool()).new();
            this[_stateData] = future;
            this[_hasValue$0] = false;
            subscription.resume();
            return future;
          }
          dart.throw(new core.StateError.new("Already waiting for next."));
        }
        return this[_initializeOrDone]();
      }
      [_initializeOrDone]() {
        if (!(this[_subscription] == null)) dart.assertFailed(null, I[65], 1012, 12, "_subscription == null");
        let stateData = this[_stateData];
        if (stateData != null) {
          let stream = StreamOfT().as(stateData);
          let future = new (T$._FutureOfbool()).new();
          this[_stateData] = future;
          let subscription = stream.listen(dart.bind(this, _onData$), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone$), cancelOnError: true});
          if (this[_stateData] != null) {
            this[_subscription] = subscription;
          }
          return future;
        }
        return async.Future._falseFuture;
      }
      cancel() {
        let subscription = this[_subscription];
        let stateData = this[_stateData];
        this[_stateData] = null;
        if (subscription != null) {
          this[_subscription] = null;
          if (!dart.test(this[_hasValue$0])) {
            let future = T$._FutureOfbool().as(stateData);
            future[_asyncComplete](false);
          } else {
            this[_hasValue$0] = false;
          }
          return subscription.cancel();
        }
        return async.Future._nullFuture;
      }
      [_onData$](data) {
        let t116;
        T.as(data);
        if (this[_subscription] == null) return;
        let moveNextFuture = T$._FutureOfbool().as(this[_stateData]);
        this[_stateData] = data;
        this[_hasValue$0] = true;
        moveNextFuture[_complete](true);
        if (dart.test(this[_hasValue$0])) {
          t116 = this[_subscription];
          t116 == null ? null : t116.pause();
        }
      }
      [_onError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[65], 1066, 24, "error");
        if (stackTrace == null) dart.nullFailed(I[65], 1066, 42, "stackTrace");
        let subscription = this[_subscription];
        let moveNextFuture = T$._FutureOfbool().as(this[_stateData]);
        this[_subscription] = null;
        this[_stateData] = null;
        if (subscription != null) {
          moveNextFuture[_completeError](error, stackTrace);
        } else {
          moveNextFuture[_asyncCompleteError](error, stackTrace);
        }
      }
      [_onDone$]() {
        let subscription = this[_subscription];
        let moveNextFuture = T$._FutureOfbool().as(this[_stateData]);
        this[_subscription] = null;
        this[_stateData] = null;
        if (subscription != null) {
          moveNextFuture[_completeWithValue](false);
        } else {
          moveNextFuture[_asyncCompleteWithValue](false);
        }
      }
    }
    (_StreamIterator.new = function(stream) {
      if (stream == null) dart.nullFailed(I[65], 983, 35, "stream");
      this[_subscription] = null;
      this[_hasValue$0] = false;
      this[_stateData] = _internal.checkNotNullable(core.Object, stream, "stream");
      ;
    }).prototype = _StreamIterator.prototype;
    dart.addTypeTests(_StreamIterator);
    _StreamIterator.prototype[_is__StreamIterator_default] = true;
    dart.addTypeCaches(_StreamIterator);
    _StreamIterator[dart.implements] = () => [async.StreamIterator$(T)];
    dart.setMethodSignature(_StreamIterator, () => ({
      __proto__: dart.getMethods(_StreamIterator.__proto__),
      moveNext: dart.fnType(async.Future$(core.bool), []),
      [_initializeOrDone]: dart.fnType(async.Future$(core.bool), []),
      cancel: dart.fnType(async.Future, []),
      [_onData$]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_onError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_onDone$]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_StreamIterator, () => ({
      __proto__: dart.getGetters(_StreamIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(_StreamIterator, I[29]);
    dart.setFieldSignature(_StreamIterator, () => ({
      __proto__: dart.getFields(_StreamIterator.__proto__),
      [_subscription]: dart.fieldType(dart.nullable(async.StreamSubscription$(T))),
      [_stateData]: dart.fieldType(dart.nullable(core.Object)),
      [_hasValue$0]: dart.fieldType(core.bool)
    }));
    return _StreamIterator;
  });
  async._StreamIterator = async._StreamIterator$();
  dart.addTypeTests(async._StreamIterator, _is__StreamIterator_default);
  const _is__EmptyStream_default = Symbol('_is__EmptyStream_default');
  async._EmptyStream$ = dart.generic(T => {
    var _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
    class _EmptyStream extends async.Stream$(T) {
      get isBroadcast() {
        return true;
      }
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        return new (_DoneStreamSubscriptionOfT()).new(onDone);
      }
    }
    (_EmptyStream.new = function() {
      _EmptyStream.__proto__._internal.call(this);
      ;
    }).prototype = _EmptyStream.prototype;
    dart.addTypeTests(_EmptyStream);
    _EmptyStream.prototype[_is__EmptyStream_default] = true;
    dart.addTypeCaches(_EmptyStream);
    dart.setMethodSignature(_EmptyStream, () => ({
      __proto__: dart.getMethods(_EmptyStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(_EmptyStream, I[29]);
    return _EmptyStream;
  });
  async._EmptyStream = async._EmptyStream$();
  dart.addTypeTests(async._EmptyStream, _is__EmptyStream_default);
  var isBroadcast$ = dart.privateName(async, "_MultiStream.isBroadcast");
  const _is__MultiStream_default = Symbol('_is__MultiStream_default');
  async._MultiStream$ = dart.generic(T => {
    var _MultiStreamControllerOfT = () => (_MultiStreamControllerOfT = dart.constFn(async._MultiStreamController$(T)))();
    class _MultiStream extends async.Stream$(T) {
      get isBroadcast() {
        return this[isBroadcast$];
      }
      set isBroadcast(value) {
        super.isBroadcast = value;
      }
      listen(onData, opts) {
        let t116;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        let controller = new (_MultiStreamControllerOfT()).new();
        controller.onListen = dart.fn(() => {
          let t116;
          t116 = controller;
          this[_onListen$](t116);
        }, T$.VoidTovoid());
        return controller[_subscribe](onData, onError, onDone, (t116 = cancelOnError, t116 == null ? false : t116));
      }
    }
    (_MultiStream.new = function(_onListen, isBroadcast) {
      if (_onListen == null) dart.nullFailed(I[65], 1110, 21, "_onListen");
      if (isBroadcast == null) dart.nullFailed(I[65], 1110, 37, "isBroadcast");
      this[_onListen$] = _onListen;
      this[isBroadcast$] = isBroadcast;
      _MultiStream.__proto__.new.call(this);
      ;
    }).prototype = _MultiStream.prototype;
    dart.addTypeTests(_MultiStream);
    _MultiStream.prototype[_is__MultiStream_default] = true;
    dart.addTypeCaches(_MultiStream);
    dart.setMethodSignature(_MultiStream, () => ({
      __proto__: dart.getMethods(_MultiStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(_MultiStream, I[29]);
    dart.setFieldSignature(_MultiStream, () => ({
      __proto__: dart.getFields(_MultiStream.__proto__),
      isBroadcast: dart.finalFieldType(core.bool),
      [_onListen$]: dart.finalFieldType(dart.fnType(dart.void, [async.MultiStreamController$(T)]))
    }));
    return _MultiStream;
  });
  async._MultiStream = async._MultiStream$();
  dart.addTypeTests(async._MultiStream, _is__MultiStream_default);
  const _is__MultiStreamController_default = Symbol('_is__MultiStreamController_default');
  async._MultiStreamController$ = dart.generic(T => {
    class _MultiStreamController extends async._AsyncStreamController$(T) {
      addSync(data) {
        T.as(data);
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        if (dart.test(this.hasListener)) this[_subscription][_add](data);
      }
      addErrorSync(error, stackTrace = null) {
        let t116;
        if (error == null) dart.nullFailed(I[65], 1132, 28, "error");
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        if (dart.test(this.hasListener)) {
          this[_subscription][_addError](error, (t116 = stackTrace, t116 == null ? core.StackTrace.empty : t116));
        }
      }
      closeSync() {
        if (dart.test(this.isClosed)) return;
        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
        this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
        if (dart.test(this.hasListener)) this[_subscription][_close]();
      }
      get stream() {
        dart.throw(new core.UnsupportedError.new("Not available"));
      }
    }
    (_MultiStreamController.new = function() {
      _MultiStreamController.__proto__.new.call(this, null, null, null, null);
      ;
    }).prototype = _MultiStreamController.prototype;
    dart.addTypeTests(_MultiStreamController);
    _MultiStreamController.prototype[_is__MultiStreamController_default] = true;
    dart.addTypeCaches(_MultiStreamController);
    _MultiStreamController[dart.implements] = () => [async.MultiStreamController$(T)];
    dart.setMethodSignature(_MultiStreamController, () => ({
      __proto__: dart.getMethods(_MultiStreamController.__proto__),
      addSync: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addErrorSync: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      closeSync: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_MultiStreamController, I[29]);
    return _MultiStreamController;
  });
  async._MultiStreamController = async._MultiStreamController$();
  dart.addTypeTests(async._MultiStreamController, _is__MultiStreamController_default);
  var _handleError$ = dart.privateName(async, "_handleError");
  var _handleDone$ = dart.privateName(async, "_handleDone");
  const _is__ForwardingStream_default = Symbol('_is__ForwardingStream_default');
  async._ForwardingStream$ = dart.generic((S, T) => {
    var _ForwardingStreamSubscriptionOfS$T = () => (_ForwardingStreamSubscriptionOfS$T = dart.constFn(async._ForwardingStreamSubscription$(S, T)))();
    var _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
    class _ForwardingStream extends async.Stream$(T) {
      get isBroadcast() {
        return this[_source$4].isBroadcast;
      }
      listen(onData, opts) {
        let t116;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        return this[_createSubscription](onData, onError, onDone, (t116 = cancelOnError, t116 == null ? false : t116));
      }
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[70], 85, 47, "cancelOnError");
        return new (_ForwardingStreamSubscriptionOfS$T()).new(this, onData, onError, onDone, cancelOnError);
      }
      [_handleError$](error, stackTrace, sink) {
        if (error == null) dart.nullFailed(I[70], 94, 28, "error");
        if (stackTrace == null) dart.nullFailed(I[70], 94, 46, "stackTrace");
        _EventSinkOfT().as(sink);
        if (sink == null) dart.nullFailed(I[70], 94, 72, "sink");
        sink[_addError](error, stackTrace);
      }
      [_handleDone$](sink) {
        _EventSinkOfT().as(sink);
        if (sink == null) dart.nullFailed(I[70], 98, 34, "sink");
        sink[_close]();
      }
    }
    (_ForwardingStream.new = function(_source) {
      if (_source == null) dart.nullFailed(I[70], 75, 26, "_source");
      this[_source$4] = _source;
      _ForwardingStream.__proto__.new.call(this);
      ;
    }).prototype = _ForwardingStream.prototype;
    dart.addTypeTests(_ForwardingStream);
    _ForwardingStream.prototype[_is__ForwardingStream_default] = true;
    dart.addTypeCaches(_ForwardingStream);
    dart.setMethodSignature(_ForwardingStream, () => ({
      __proto__: dart.getMethods(_ForwardingStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      [_createSubscription]: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T])), dart.nullable(core.Function), dart.nullable(dart.fnType(dart.void, [])), core.bool]),
      [_handleError$]: dart.fnType(dart.void, [core.Object, core.StackTrace, dart.nullable(core.Object)]),
      [_handleDone$]: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_ForwardingStream, I[29]);
    dart.setFieldSignature(_ForwardingStream, () => ({
      __proto__: dart.getFields(_ForwardingStream.__proto__),
      [_source$4]: dart.finalFieldType(async.Stream$(S))
    }));
    return _ForwardingStream;
  });
  async._ForwardingStream = async._ForwardingStream$();
  dart.addTypeTests(async._ForwardingStream, _is__ForwardingStream_default);
  var _handleData$ = dart.privateName(async, "_handleData");
  const _is__ForwardingStreamSubscription_default = Symbol('_is__ForwardingStreamSubscription_default');
  async._ForwardingStreamSubscription$ = dart.generic((S, T) => {
    class _ForwardingStreamSubscription extends async._BufferingStreamSubscription$(T) {
      [_add](data) {
        T.as(data);
        if (dart.test(this[_isClosed])) return;
        super[_add](data);
      }
      [_addError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[70], 126, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[70], 126, 43, "stackTrace");
        if (dart.test(this[_isClosed])) return;
        super[_addError](error, stackTrace);
      }
      [_onPause]() {
        let t116;
        t116 = this[_subscription];
        t116 == null ? null : t116.pause();
      }
      [_onResume]() {
        let t116;
        t116 = this[_subscription];
        t116 == null ? null : t116.resume();
      }
      [_onCancel]() {
        let subscription = this[_subscription];
        if (subscription != null) {
          this[_subscription] = null;
          return subscription.cancel();
        }
        return null;
      }
      [_handleData$](data) {
        S.as(data);
        this[_stream$][_handleData$](data, this);
      }
      [_handleError$](error, stackTrace) {
        if (stackTrace == null) dart.nullFailed(I[70], 156, 39, "stackTrace");
        this[_stream$][_handleError$](core.Object.as(error), stackTrace, this);
      }
      [_handleDone$]() {
        this[_stream$][_handleDone$](this);
      }
    }
    (_ForwardingStreamSubscription.new = function(_stream, onData, onError, onDone, cancelOnError) {
      if (_stream == null) dart.nullFailed(I[70], 110, 38, "_stream");
      if (cancelOnError == null) dart.nullFailed(I[70], 111, 47, "cancelOnError");
      this[_subscription] = null;
      this[_stream$] = _stream;
      _ForwardingStreamSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
      this[_subscription] = this[_stream$][_source$4].listen(dart.bind(this, _handleData$), {onError: dart.bind(this, _handleError$), onDone: dart.bind(this, _handleDone$)});
    }).prototype = _ForwardingStreamSubscription.prototype;
    dart.addTypeTests(_ForwardingStreamSubscription);
    _ForwardingStreamSubscription.prototype[_is__ForwardingStreamSubscription_default] = true;
    dart.addTypeCaches(_ForwardingStreamSubscription);
    dart.setMethodSignature(_ForwardingStreamSubscription, () => ({
      __proto__: dart.getMethods(_ForwardingStreamSubscription.__proto__),
      [_handleData$]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_handleError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
      [_handleDone$]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_ForwardingStreamSubscription, I[29]);
    dart.setFieldSignature(_ForwardingStreamSubscription, () => ({
      __proto__: dart.getFields(_ForwardingStreamSubscription.__proto__),
      [_stream$]: dart.finalFieldType(async._ForwardingStream$(S, T)),
      [_subscription]: dart.fieldType(dart.nullable(async.StreamSubscription$(S)))
    }));
    return _ForwardingStreamSubscription;
  });
  async._ForwardingStreamSubscription = async._ForwardingStreamSubscription$();
  dart.addTypeTests(async._ForwardingStreamSubscription, _is__ForwardingStreamSubscription_default);
  var _test = dart.privateName(async, "_test");
  const _is__WhereStream_default = Symbol('_is__WhereStream_default');
  async._WhereStream$ = dart.generic(T => {
    class _WhereStream extends async._ForwardingStream$(T, T) {
      [_handleData$](inputEvent, sink) {
        let t116;
        if (sink == null) dart.nullFailed(I[70], 186, 48, "sink");
        let satisfies = null;
        try {
          satisfies = (t116 = inputEvent, this[_test](t116));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async._addErrorWithReplacement(sink, e, s);
            return;
          } else
            throw e$;
        }
        if (dart.test(satisfies)) {
          sink[_add](inputEvent);
        }
      }
    }
    (_WhereStream.new = function(source, test) {
      if (source == null) dart.nullFailed(I[70], 182, 26, "source");
      if (test == null) dart.nullFailed(I[70], 182, 39, "test");
      this[_test] = test;
      _WhereStream.__proto__.new.call(this, source);
      ;
    }).prototype = _WhereStream.prototype;
    dart.addTypeTests(_WhereStream);
    _WhereStream.prototype[_is__WhereStream_default] = true;
    dart.addTypeCaches(_WhereStream);
    dart.setMethodSignature(_WhereStream, () => ({
      __proto__: dart.getMethods(_WhereStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_WhereStream, I[29]);
    dart.setFieldSignature(_WhereStream, () => ({
      __proto__: dart.getFields(_WhereStream.__proto__),
      [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
    }));
    return _WhereStream;
  });
  async._WhereStream = async._WhereStream$();
  dart.addTypeTests(async._WhereStream, _is__WhereStream_default);
  var _transform = dart.privateName(async, "_transform");
  const _is__MapStream_default = Symbol('_is__MapStream_default');
  async._MapStream$ = dart.generic((S, T) => {
    class _MapStream extends async._ForwardingStream$(S, T) {
      [_handleData$](inputEvent, sink) {
        let t117;
        if (sink == null) dart.nullFailed(I[70], 210, 48, "sink");
        let outputEvent = null;
        try {
          outputEvent = (t117 = inputEvent, this[_transform](t117));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async._addErrorWithReplacement(sink, e, s);
            return;
          } else
            throw e$;
        }
        sink[_add](outputEvent);
      }
    }
    (_MapStream.new = function(source, transform) {
      if (source == null) dart.nullFailed(I[70], 206, 24, "source");
      if (transform == null) dart.nullFailed(I[70], 206, 34, "transform");
      this[_transform] = transform;
      _MapStream.__proto__.new.call(this, source);
      ;
    }).prototype = _MapStream.prototype;
    dart.addTypeTests(_MapStream);
    _MapStream.prototype[_is__MapStream_default] = true;
    dart.addTypeCaches(_MapStream);
    dart.setMethodSignature(_MapStream, () => ({
      __proto__: dart.getMethods(_MapStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [S, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_MapStream, I[29]);
    dart.setFieldSignature(_MapStream, () => ({
      __proto__: dart.getFields(_MapStream.__proto__),
      [_transform]: dart.finalFieldType(dart.fnType(T, [S]))
    }));
    return _MapStream;
  });
  async._MapStream = async._MapStream$();
  dart.addTypeTests(async._MapStream, _is__MapStream_default);
  var _expand = dart.privateName(async, "_expand");
  const _is__ExpandStream_default = Symbol('_is__ExpandStream_default');
  async._ExpandStream$ = dart.generic((S, T) => {
    class _ExpandStream extends async._ForwardingStream$(S, T) {
      [_handleData$](inputEvent, sink) {
        let t118;
        if (sink == null) dart.nullFailed(I[70], 230, 48, "sink");
        try {
          for (let value of (t118 = inputEvent, this[_expand](t118))) {
            sink[_add](value);
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async._addErrorWithReplacement(sink, e, s);
          } else
            throw e$;
        }
      }
    }
    (_ExpandStream.new = function(source, expand) {
      if (source == null) dart.nullFailed(I[70], 226, 27, "source");
      if (expand == null) dart.nullFailed(I[70], 226, 47, "expand");
      this[_expand] = expand;
      _ExpandStream.__proto__.new.call(this, source);
      ;
    }).prototype = _ExpandStream.prototype;
    dart.addTypeTests(_ExpandStream);
    _ExpandStream.prototype[_is__ExpandStream_default] = true;
    dart.addTypeCaches(_ExpandStream);
    dart.setMethodSignature(_ExpandStream, () => ({
      __proto__: dart.getMethods(_ExpandStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [S, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_ExpandStream, I[29]);
    dart.setFieldSignature(_ExpandStream, () => ({
      __proto__: dart.getFields(_ExpandStream.__proto__),
      [_expand]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S]))
    }));
    return _ExpandStream;
  });
  async._ExpandStream = async._ExpandStream$();
  dart.addTypeTests(async._ExpandStream, _is__ExpandStream_default);
  const _is__HandleErrorStream_default = Symbol('_is__HandleErrorStream_default');
  async._HandleErrorStream$ = dart.generic(T => {
    class _HandleErrorStream extends async._ForwardingStream$(T, T) {
      [_handleData$](data, sink) {
        if (sink == null) dart.nullFailed(I[70], 255, 42, "sink");
        sink[_add](data);
      }
      [_handleError$](error, stackTrace, sink) {
        if (error == null) dart.nullFailed(I[70], 259, 28, "error");
        if (stackTrace == null) dart.nullFailed(I[70], 259, 46, "stackTrace");
        if (sink == null) dart.nullFailed(I[70], 259, 72, "sink");
        let matches = true;
        let test = this[_test];
        if (test != null) {
          try {
            matches = test(error);
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._addErrorWithReplacement(sink, e, s);
              return;
            } else
              throw e$;
          }
        }
        if (dart.test(matches)) {
          try {
            async._invokeErrorHandler(this[_transform], error, stackTrace);
          } catch (e$0) {
            let e = dart.getThrown(e$0);
            let s = dart.stackTrace(e$0);
            if (core.Object.is(e)) {
              if (core.identical(e, error)) {
                sink[_addError](error, stackTrace);
              } else {
                async._addErrorWithReplacement(sink, e, s);
              }
              return;
            } else
              throw e$0;
          }
        } else {
          sink[_addError](error, stackTrace);
        }
      }
    }
    (_HandleErrorStream.new = function(source, onError, test) {
      if (source == null) dart.nullFailed(I[70], 250, 17, "source");
      if (onError == null) dart.nullFailed(I[70], 250, 34, "onError");
      this[_transform] = onError;
      this[_test] = test;
      _HandleErrorStream.__proto__.new.call(this, source);
      ;
    }).prototype = _HandleErrorStream.prototype;
    dart.addTypeTests(_HandleErrorStream);
    _HandleErrorStream.prototype[_is__HandleErrorStream_default] = true;
    dart.addTypeCaches(_HandleErrorStream);
    dart.setMethodSignature(_HandleErrorStream, () => ({
      __proto__: dart.getMethods(_HandleErrorStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)]),
      [_handleError$]: dart.fnType(dart.void, [core.Object, core.StackTrace, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_HandleErrorStream, I[29]);
    dart.setFieldSignature(_HandleErrorStream, () => ({
      __proto__: dart.getFields(_HandleErrorStream.__proto__),
      [_transform]: dart.finalFieldType(core.Function),
      [_test]: dart.finalFieldType(dart.nullable(dart.fnType(core.bool, [core.Object])))
    }));
    return _HandleErrorStream;
  });
  async._HandleErrorStream = async._HandleErrorStream$();
  dart.addTypeTests(async._HandleErrorStream, _is__HandleErrorStream_default);
  var _count = dart.privateName(async, "_count");
  var _subState = dart.privateName(async, "_subState");
  const _is__TakeStream_default = Symbol('_is__TakeStream_default');
  async._TakeStream$ = dart.generic(T => {
    var _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
    var _StateStreamSubscriptionOfint$T = () => (_StateStreamSubscriptionOfint$T = dart.constFn(async._StateStreamSubscription$(core.int, T)))();
    class _TakeStream extends async._ForwardingStream$(T, T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[70], 295, 47, "cancelOnError");
        if (this[_count] === 0) {
          this[_source$4].listen(null).cancel();
          return new (_DoneStreamSubscriptionOfT()).new(onDone);
        }
        return new (_StateStreamSubscriptionOfint$T()).new(this, onData, onError, onDone, cancelOnError, this[_count]);
      }
      [_handleData$](inputEvent, sink) {
        if (sink == null) dart.nullFailed(I[70], 304, 48, "sink");
        let subscription = _StateStreamSubscriptionOfint$T().as(sink);
        let count = subscription[_subState];
        if (dart.notNull(count) > 0) {
          sink[_add](inputEvent);
          count = dart.notNull(count) - 1;
          subscription[_subState] = count;
          if (count === 0) {
            sink[_close]();
          }
        }
      }
    }
    (_TakeStream.new = function(source, count) {
      if (source == null) dart.nullFailed(I[70], 290, 25, "source");
      if (count == null) dart.nullFailed(I[70], 290, 37, "count");
      this[_count] = count;
      _TakeStream.__proto__.new.call(this, source);
      ;
    }).prototype = _TakeStream.prototype;
    dart.addTypeTests(_TakeStream);
    _TakeStream.prototype[_is__TakeStream_default] = true;
    dart.addTypeCaches(_TakeStream);
    dart.setMethodSignature(_TakeStream, () => ({
      __proto__: dart.getMethods(_TakeStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_TakeStream, I[29]);
    dart.setFieldSignature(_TakeStream, () => ({
      __proto__: dart.getFields(_TakeStream.__proto__),
      [_count]: dart.finalFieldType(core.int)
    }));
    return _TakeStream;
  });
  async._TakeStream = async._TakeStream$();
  dart.addTypeTests(async._TakeStream, _is__TakeStream_default);
  var _subState$ = dart.privateName(async, "_StateStreamSubscription._subState");
  const _is__StateStreamSubscription_default = Symbol('_is__StateStreamSubscription_default');
  async._StateStreamSubscription$ = dart.generic((S, T) => {
    class _StateStreamSubscription extends async._ForwardingStreamSubscription$(T, T) {
      get [_subState]() {
        return this[_subState$];
      }
      set [_subState](value) {
        this[_subState$] = S.as(value);
      }
    }
    (_StateStreamSubscription.new = function(stream, onData, onError, onDone, cancelOnError, _subState) {
      if (stream == null) dart.nullFailed(I[70], 327, 52, "stream");
      if (cancelOnError == null) dart.nullFailed(I[70], 328, 47, "cancelOnError");
      this[_subState$] = _subState;
      _StateStreamSubscription.__proto__.new.call(this, stream, onData, onError, onDone, cancelOnError);
      ;
    }).prototype = _StateStreamSubscription.prototype;
    dart.addTypeTests(_StateStreamSubscription);
    _StateStreamSubscription.prototype[_is__StateStreamSubscription_default] = true;
    dart.addTypeCaches(_StateStreamSubscription);
    dart.setLibraryUri(_StateStreamSubscription, I[29]);
    dart.setFieldSignature(_StateStreamSubscription, () => ({
      __proto__: dart.getFields(_StateStreamSubscription.__proto__),
      [_subState]: dart.fieldType(S)
    }));
    return _StateStreamSubscription;
  });
  async._StateStreamSubscription = async._StateStreamSubscription$();
  dart.addTypeTests(async._StateStreamSubscription, _is__StateStreamSubscription_default);
  const _is__TakeWhileStream_default = Symbol('_is__TakeWhileStream_default');
  async._TakeWhileStream$ = dart.generic(T => {
    class _TakeWhileStream extends async._ForwardingStream$(T, T) {
      [_handleData$](inputEvent, sink) {
        let t121;
        if (sink == null) dart.nullFailed(I[70], 339, 48, "sink");
        let satisfies = null;
        try {
          satisfies = (t121 = inputEvent, this[_test](t121));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async._addErrorWithReplacement(sink, e, s);
            sink[_close]();
            return;
          } else
            throw e$;
        }
        if (dart.test(satisfies)) {
          sink[_add](inputEvent);
        } else {
          sink[_close]();
        }
      }
    }
    (_TakeWhileStream.new = function(source, test) {
      if (source == null) dart.nullFailed(I[70], 335, 30, "source");
      if (test == null) dart.nullFailed(I[70], 335, 43, "test");
      this[_test] = test;
      _TakeWhileStream.__proto__.new.call(this, source);
      ;
    }).prototype = _TakeWhileStream.prototype;
    dart.addTypeTests(_TakeWhileStream);
    _TakeWhileStream.prototype[_is__TakeWhileStream_default] = true;
    dart.addTypeCaches(_TakeWhileStream);
    dart.setMethodSignature(_TakeWhileStream, () => ({
      __proto__: dart.getMethods(_TakeWhileStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_TakeWhileStream, I[29]);
    dart.setFieldSignature(_TakeWhileStream, () => ({
      __proto__: dart.getFields(_TakeWhileStream.__proto__),
      [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
    }));
    return _TakeWhileStream;
  });
  async._TakeWhileStream = async._TakeWhileStream$();
  dart.addTypeTests(async._TakeWhileStream, _is__TakeWhileStream_default);
  const _is__SkipStream_default = Symbol('_is__SkipStream_default');
  async._SkipStream$ = dart.generic(T => {
    var _StateStreamSubscriptionOfint$T = () => (_StateStreamSubscriptionOfint$T = dart.constFn(async._StateStreamSubscription$(core.int, T)))();
    class _SkipStream extends async._ForwardingStream$(T, T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[70], 369, 47, "cancelOnError");
        return new (_StateStreamSubscriptionOfint$T()).new(this, onData, onError, onDone, cancelOnError, this[_count]);
      }
      [_handleData$](inputEvent, sink) {
        if (sink == null) dart.nullFailed(I[70], 374, 48, "sink");
        let subscription = _StateStreamSubscriptionOfint$T().as(sink);
        let count = subscription[_subState];
        if (dart.notNull(count) > 0) {
          subscription[_subState] = dart.notNull(count) - 1;
          return;
        }
        sink[_add](inputEvent);
      }
    }
    (_SkipStream.new = function(source, count) {
      if (source == null) dart.nullFailed(I[70], 360, 25, "source");
      if (count == null) dart.nullFailed(I[70], 360, 37, "count");
      this[_count] = count;
      _SkipStream.__proto__.new.call(this, source);
      core.RangeError.checkNotNegative(count, "count");
    }).prototype = _SkipStream.prototype;
    dart.addTypeTests(_SkipStream);
    _SkipStream.prototype[_is__SkipStream_default] = true;
    dart.addTypeCaches(_SkipStream);
    dart.setMethodSignature(_SkipStream, () => ({
      __proto__: dart.getMethods(_SkipStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_SkipStream, I[29]);
    dart.setFieldSignature(_SkipStream, () => ({
      __proto__: dart.getFields(_SkipStream.__proto__),
      [_count]: dart.finalFieldType(core.int)
    }));
    return _SkipStream;
  });
  async._SkipStream = async._SkipStream$();
  dart.addTypeTests(async._SkipStream, _is__SkipStream_default);
  const _is__SkipWhileStream_default = Symbol('_is__SkipWhileStream_default');
  async._SkipWhileStream$ = dart.generic(T => {
    var _StateStreamSubscriptionOfbool$T = () => (_StateStreamSubscriptionOfbool$T = dart.constFn(async._StateStreamSubscription$(core.bool, T)))();
    class _SkipWhileStream extends async._ForwardingStream$(T, T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[70], 393, 47, "cancelOnError");
        return new (_StateStreamSubscriptionOfbool$T()).new(this, onData, onError, onDone, cancelOnError, false);
      }
      [_handleData$](inputEvent, sink) {
        let t122;
        if (sink == null) dart.nullFailed(I[70], 398, 48, "sink");
        let subscription = _StateStreamSubscriptionOfbool$T().as(sink);
        let hasFailed = subscription[_subState];
        if (dart.test(hasFailed)) {
          sink[_add](inputEvent);
          return;
        }
        let satisfies = null;
        try {
          satisfies = (t122 = inputEvent, this[_test](t122));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            async._addErrorWithReplacement(sink, e, s);
            subscription[_subState] = true;
            return;
          } else
            throw e$;
        }
        if (!dart.test(satisfies)) {
          subscription[_subState] = true;
          sink[_add](inputEvent);
        }
      }
    }
    (_SkipWhileStream.new = function(source, test) {
      if (source == null) dart.nullFailed(I[70], 388, 30, "source");
      if (test == null) dart.nullFailed(I[70], 388, 43, "test");
      this[_test] = test;
      _SkipWhileStream.__proto__.new.call(this, source);
      ;
    }).prototype = _SkipWhileStream.prototype;
    dart.addTypeTests(_SkipWhileStream);
    _SkipWhileStream.prototype[_is__SkipWhileStream_default] = true;
    dart.addTypeCaches(_SkipWhileStream);
    dart.setMethodSignature(_SkipWhileStream, () => ({
      __proto__: dart.getMethods(_SkipWhileStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_SkipWhileStream, I[29]);
    dart.setFieldSignature(_SkipWhileStream, () => ({
      __proto__: dart.getFields(_SkipWhileStream.__proto__),
      [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
    }));
    return _SkipWhileStream;
  });
  async._SkipWhileStream = async._SkipWhileStream$();
  dart.addTypeTests(async._SkipWhileStream, _is__SkipWhileStream_default);
  var _equals = dart.privateName(async, "_equals");
  const _is__DistinctStream_default = Symbol('_is__DistinctStream_default');
  async._DistinctStream$ = dart.generic(T => {
    var _StateStreamSubscriptionOfObjectN$T = () => (_StateStreamSubscriptionOfObjectN$T = dart.constFn(async._StateStreamSubscription$(T$.ObjectN(), T)))();
    class _DistinctStream extends async._ForwardingStream$(T, T) {
      [_createSubscription](onData, onError, onDone, cancelOnError) {
        if (cancelOnError == null) dart.nullFailed(I[70], 431, 47, "cancelOnError");
        return new (_StateStreamSubscriptionOfObjectN$T()).new(this, onData, onError, onDone, cancelOnError, async._DistinctStream._SENTINEL);
      }
      [_handleData$](inputEvent, sink) {
        if (sink == null) dart.nullFailed(I[70], 436, 48, "sink");
        let subscription = _StateStreamSubscriptionOfObjectN$T().as(sink);
        let previous = subscription[_subState];
        if (core.identical(previous, async._DistinctStream._SENTINEL)) {
          subscription[_subState] = inputEvent;
          sink[_add](inputEvent);
        } else {
          let previousEvent = T.as(previous);
          let equals = this[_equals];
          let isEqual = null;
          try {
            if (equals == null) {
              isEqual = dart.equals(previousEvent, inputEvent);
            } else {
              isEqual = equals(previousEvent, inputEvent);
            }
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              async._addErrorWithReplacement(sink, e, s);
              return;
            } else
              throw e$;
          }
          if (!dart.test(isEqual)) {
            sink[_add](inputEvent);
            subscription[_subState] = inputEvent;
          }
        }
      }
    }
    (_DistinctStream.new = function(source, equals) {
      if (source == null) dart.nullFailed(I[70], 426, 29, "source");
      this[_equals] = equals;
      _DistinctStream.__proto__.new.call(this, source);
      ;
    }).prototype = _DistinctStream.prototype;
    dart.addTypeTests(_DistinctStream);
    _DistinctStream.prototype[_is__DistinctStream_default] = true;
    dart.addTypeCaches(_DistinctStream);
    dart.setMethodSignature(_DistinctStream, () => ({
      __proto__: dart.getMethods(_DistinctStream.__proto__),
      [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
    }));
    dart.setLibraryUri(_DistinctStream, I[29]);
    dart.setFieldSignature(_DistinctStream, () => ({
      __proto__: dart.getFields(_DistinctStream.__proto__),
      [_equals]: dart.finalFieldType(dart.nullable(dart.fnType(core.bool, [T, T])))
    }));
    return _DistinctStream;
  });
  async._DistinctStream = async._DistinctStream$();
  dart.defineLazy(async._DistinctStream, {
    /*async._DistinctStream._SENTINEL*/get _SENTINEL() {
      return new core.Object.new();
    }
  }, false);
  dart.addTypeTests(async._DistinctStream, _is__DistinctStream_default);
  const _is__EventSinkWrapper_default = Symbol('_is__EventSinkWrapper_default');
  async._EventSinkWrapper$ = dart.generic(T => {
    class _EventSinkWrapper extends core.Object {
      add(data) {
        T.as(data);
        this[_sink$][_add](data);
      }
      addError(error, stackTrace = null) {
        let t124;
        if (error == null) dart.nullFailed(I[71], 16, 24, "error");
        this[_sink$][_addError](error, (t124 = stackTrace, t124 == null ? async.AsyncError.defaultStackTrace(error) : t124));
      }
      close() {
        this[_sink$][_close]();
      }
    }
    (_EventSinkWrapper.new = function(_sink) {
      if (_sink == null) dart.nullFailed(I[71], 10, 26, "_sink");
      this[_sink$] = _sink;
      ;
    }).prototype = _EventSinkWrapper.prototype;
    dart.addTypeTests(_EventSinkWrapper);
    _EventSinkWrapper.prototype[_is__EventSinkWrapper_default] = true;
    dart.addTypeCaches(_EventSinkWrapper);
    _EventSinkWrapper[dart.implements] = () => [async.EventSink$(T)];
    dart.setMethodSignature(_EventSinkWrapper, () => ({
      __proto__: dart.getMethods(_EventSinkWrapper.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_EventSinkWrapper, I[29]);
    dart.setFieldSignature(_EventSinkWrapper, () => ({
      __proto__: dart.getFields(_EventSinkWrapper.__proto__),
      [_sink$]: dart.fieldType(async._EventSink$(T))
    }));
    return _EventSinkWrapper;
  });
  async._EventSinkWrapper = async._EventSinkWrapper$();
  dart.addTypeTests(async._EventSinkWrapper, _is__EventSinkWrapper_default);
  var ___SinkTransformerStreamSubscription__transformerSink = dart.privateName(async, "_#_SinkTransformerStreamSubscription#_transformerSink");
  var ___SinkTransformerStreamSubscription__transformerSink_isSet = dart.privateName(async, "_#_SinkTransformerStreamSubscription#_transformerSink#isSet");
  var _transformerSink = dart.privateName(async, "_transformerSink");
  const _is__SinkTransformerStreamSubscription_default = Symbol('_is__SinkTransformerStreamSubscription_default');
  async._SinkTransformerStreamSubscription$ = dart.generic((S, T) => {
    var _EventSinkWrapperOfT = () => (_EventSinkWrapperOfT = dart.constFn(async._EventSinkWrapper$(T)))();
    class _SinkTransformerStreamSubscription extends async._BufferingStreamSubscription$(T) {
      get [_transformerSink]() {
        let t124;
        return dart.test(this[___SinkTransformerStreamSubscription__transformerSink_isSet]) ? (t124 = this[___SinkTransformerStreamSubscription__transformerSink], t124) : dart.throw(new _internal.LateError.fieldNI("_transformerSink"));
      }
      set [_transformerSink](t124) {
        if (t124 == null) dart.nullFailed(I[71], 33, 21, "null");
        this[___SinkTransformerStreamSubscription__transformerSink_isSet] = true;
        this[___SinkTransformerStreamSubscription__transformerSink] = t124;
      }
      [_add](data) {
        if (dart.test(this[_isClosed])) {
          dart.throw(new core.StateError.new("Stream is already closed"));
        }
        super[_add](data);
      }
      [_addError](error, stackTrace) {
        if (error == null) dart.nullFailed(I[71], 71, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[71], 71, 43, "stackTrace");
        if (dart.test(this[_isClosed])) {
          dart.throw(new core.StateError.new("Stream is already closed"));
        }
        super[_addError](error, stackTrace);
      }
      [_close]() {
        if (dart.test(this[_isClosed])) {
          dart.throw(new core.StateError.new("Stream is already closed"));
        }
        super[_close]();
      }
      [_onPause]() {
        let t125;
        t125 = this[_subscription];
        t125 == null ? null : t125.pause();
      }
      [_onResume]() {
        let t125;
        t125 = this[_subscription];
        t125 == null ? null : t125.resume();
      }
      [_onCancel]() {
        let subscription = this[_subscription];
        if (subscription != null) {
          this[_subscription] = null;
          return subscription.cancel();
        }
        return null;
      }
      [_handleData$](data) {
        S.as(data);
        try {
          this[_transformerSink].add(data);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            this[_addError](e, s);
          } else
            throw e$;
        }
      }
      [_handleError$](error, stackTrace) {
        if (error == null) dart.nullFailed(I[71], 117, 28, "error");
        if (stackTrace == null) dart.nullFailed(I[71], 117, 46, "stackTrace");
        try {
          this[_transformerSink].addError(error, stackTrace);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            if (core.identical(e, error)) {
              this[_addError](error, stackTrace);
            } else {
              this[_addError](e, s);
            }
          } else
            throw e$;
        }
      }
      [_handleDone$]() {
        try {
          this[_subscription] = null;
          this[_transformerSink].close();
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            this[_addError](e, s);
          } else
            throw e$;
        }
      }
    }
    (_SinkTransformerStreamSubscription.new = function(source, mapper, onData, onError, onDone, cancelOnError) {
      if (source == null) dart.nullFailed(I[71], 39, 17, "source");
      if (mapper == null) dart.nullFailed(I[71], 40, 25, "mapper");
      if (cancelOnError == null) dart.nullFailed(I[71], 44, 12, "cancelOnError");
      this[___SinkTransformerStreamSubscription__transformerSink] = null;
      this[___SinkTransformerStreamSubscription__transformerSink_isSet] = false;
      this[_subscription] = null;
      _SinkTransformerStreamSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
      this[_transformerSink] = mapper(new (_EventSinkWrapperOfT()).new(this));
      this[_subscription] = source.listen(dart.bind(this, _handleData$), {onError: dart.bind(this, _handleError$), onDone: dart.bind(this, _handleDone$)});
    }).prototype = _SinkTransformerStreamSubscription.prototype;
    dart.addTypeTests(_SinkTransformerStreamSubscription);
    _SinkTransformerStreamSubscription.prototype[_is__SinkTransformerStreamSubscription_default] = true;
    dart.addTypeCaches(_SinkTransformerStreamSubscription);
    dart.setMethodSignature(_SinkTransformerStreamSubscription, () => ({
      __proto__: dart.getMethods(_SinkTransformerStreamSubscription.__proto__),
      [_add]: dart.fnType(dart.void, [T]),
      [_handleData$]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_handleError$]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
      [_handleDone$]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_SinkTransformerStreamSubscription, () => ({
      __proto__: dart.getGetters(_SinkTransformerStreamSubscription.__proto__),
      [_transformerSink]: async.EventSink$(S)
    }));
    dart.setSetterSignature(_SinkTransformerStreamSubscription, () => ({
      __proto__: dart.getSetters(_SinkTransformerStreamSubscription.__proto__),
      [_transformerSink]: async.EventSink$(S)
    }));
    dart.setLibraryUri(_SinkTransformerStreamSubscription, I[29]);
    dart.setFieldSignature(_SinkTransformerStreamSubscription, () => ({
      __proto__: dart.getFields(_SinkTransformerStreamSubscription.__proto__),
      [___SinkTransformerStreamSubscription__transformerSink]: dart.fieldType(dart.nullable(async.EventSink$(S))),
      [___SinkTransformerStreamSubscription__transformerSink_isSet]: dart.fieldType(core.bool),
      [_subscription]: dart.fieldType(dart.nullable(async.StreamSubscription$(S)))
    }));
    return _SinkTransformerStreamSubscription;
  });
  async._SinkTransformerStreamSubscription = async._SinkTransformerStreamSubscription$();
  dart.addTypeTests(async._SinkTransformerStreamSubscription, _is__SinkTransformerStreamSubscription_default);
  var _sinkMapper$ = dart.privateName(async, "_StreamSinkTransformer._sinkMapper");
  var _sinkMapper$0 = dart.privateName(async, "_sinkMapper");
  const _is__StreamSinkTransformer_default = Symbol('_is__StreamSinkTransformer_default');
  async._StreamSinkTransformer$ = dart.generic((S, T) => {
    var StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
    var _BoundSinkStreamOfS$T = () => (_BoundSinkStreamOfS$T = dart.constFn(async._BoundSinkStream$(S, T)))();
    class _StreamSinkTransformer extends async.StreamTransformerBase$(S, T) {
      get [_sinkMapper$0]() {
        return this[_sinkMapper$];
      }
      set [_sinkMapper$0](value) {
        super[_sinkMapper$0] = value;
      }
      bind(stream) {
        StreamOfS().as(stream);
        if (stream == null) dart.nullFailed(I[71], 151, 28, "stream");
        return new (_BoundSinkStreamOfS$T()).new(stream, this[_sinkMapper$0]);
      }
    }
    (_StreamSinkTransformer.new = function(_sinkMapper) {
      if (_sinkMapper == null) dart.nullFailed(I[71], 149, 37, "_sinkMapper");
      this[_sinkMapper$] = _sinkMapper;
      _StreamSinkTransformer.__proto__.new.call(this);
      ;
    }).prototype = _StreamSinkTransformer.prototype;
    dart.addTypeTests(_StreamSinkTransformer);
    _StreamSinkTransformer.prototype[_is__StreamSinkTransformer_default] = true;
    dart.addTypeCaches(_StreamSinkTransformer);
    dart.setMethodSignature(_StreamSinkTransformer, () => ({
      __proto__: dart.getMethods(_StreamSinkTransformer.__proto__),
      bind: dart.fnType(async.Stream$(T), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_StreamSinkTransformer, I[29]);
    dart.setFieldSignature(_StreamSinkTransformer, () => ({
      __proto__: dart.getFields(_StreamSinkTransformer.__proto__),
      [_sinkMapper$0]: dart.finalFieldType(dart.fnType(async.EventSink$(S), [async.EventSink$(T)]))
    }));
    return _StreamSinkTransformer;
  });
  async._StreamSinkTransformer = async._StreamSinkTransformer$();
  dart.addTypeTests(async._StreamSinkTransformer, _is__StreamSinkTransformer_default);
  const _is__BoundSinkStream_default = Symbol('_is__BoundSinkStream_default');
  async._BoundSinkStream$ = dart.generic((S, T) => {
    var _SinkTransformerStreamSubscriptionOfS$T = () => (_SinkTransformerStreamSubscriptionOfS$T = dart.constFn(async._SinkTransformerStreamSubscription$(S, T)))();
    class _BoundSinkStream extends async.Stream$(T) {
      get isBroadcast() {
        return this[_stream$].isBroadcast;
      }
      listen(onData, opts) {
        let t128;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        let subscription = new (_SinkTransformerStreamSubscriptionOfS$T()).new(this[_stream$], this[_sinkMapper$0], onData, onError, onDone, (t128 = cancelOnError, t128 == null ? false : t128));
        return subscription;
      }
    }
    (_BoundSinkStream.new = function(_stream, _sinkMapper) {
      if (_stream == null) dart.nullFailed(I[71], 166, 25, "_stream");
      if (_sinkMapper == null) dart.nullFailed(I[71], 166, 39, "_sinkMapper");
      this[_stream$] = _stream;
      this[_sinkMapper$0] = _sinkMapper;
      _BoundSinkStream.__proto__.new.call(this);
      ;
    }).prototype = _BoundSinkStream.prototype;
    dart.addTypeTests(_BoundSinkStream);
    _BoundSinkStream.prototype[_is__BoundSinkStream_default] = true;
    dart.addTypeCaches(_BoundSinkStream);
    dart.setMethodSignature(_BoundSinkStream, () => ({
      __proto__: dart.getMethods(_BoundSinkStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(_BoundSinkStream, I[29]);
    dart.setFieldSignature(_BoundSinkStream, () => ({
      __proto__: dart.getFields(_BoundSinkStream.__proto__),
      [_sinkMapper$0]: dart.finalFieldType(dart.fnType(async.EventSink$(S), [async.EventSink$(T)])),
      [_stream$]: dart.finalFieldType(async.Stream$(S))
    }));
    return _BoundSinkStream;
  });
  async._BoundSinkStream = async._BoundSinkStream$();
  dart.addTypeTests(async._BoundSinkStream, _is__BoundSinkStream_default);
  const _is__HandlerEventSink_default = Symbol('_is__HandlerEventSink_default');
  async._HandlerEventSink$ = dart.generic((S, T) => {
    class _HandlerEventSink extends core.Object {
      add(data) {
        S.as(data);
        let sink = this[_sink$];
        if (sink == null) {
          dart.throw(new core.StateError.new("Sink is closed"));
        }
        let handleData = this[_handleData$];
        if (handleData != null) {
          handleData(data, sink);
        } else {
          sink.add(T.as(data));
        }
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[71], 215, 24, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        let sink = this[_sink$];
        if (sink == null) {
          dart.throw(new core.StateError.new("Sink is closed"));
        }
        let handleError = this[_handleError$];
        stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        if (handleError != null) {
          handleError(error, stackTrace, sink);
        } else {
          sink.addError(error, stackTrace);
        }
      }
      close() {
        let sink = this[_sink$];
        if (sink == null) return;
        this[_sink$] = null;
        let handleDone = this[_handleDone$];
        if (handleDone != null) {
          handleDone(sink);
        } else {
          sink.close();
        }
      }
    }
    (_HandlerEventSink.new = function(_handleData, _handleError, _handleDone, _sink) {
      if (_sink == null) dart.nullFailed(I[71], 200, 25, "_sink");
      this[_handleData$] = _handleData;
      this[_handleError$] = _handleError;
      this[_handleDone$] = _handleDone;
      this[_sink$] = _sink;
      ;
    }).prototype = _HandlerEventSink.prototype;
    dart.addTypeTests(_HandlerEventSink);
    _HandlerEventSink.prototype[_is__HandlerEventSink_default] = true;
    dart.addTypeCaches(_HandlerEventSink);
    _HandlerEventSink[dart.implements] = () => [async.EventSink$(S)];
    dart.setMethodSignature(_HandlerEventSink, () => ({
      __proto__: dart.getMethods(_HandlerEventSink.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_HandlerEventSink, I[29]);
    dart.setFieldSignature(_HandlerEventSink, () => ({
      __proto__: dart.getFields(_HandlerEventSink.__proto__),
      [_handleData$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [S, async.EventSink$(T)]))),
      [_handleError$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [core.Object, core.StackTrace, async.EventSink$(T)]))),
      [_handleDone$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.EventSink$(T)]))),
      [_sink$]: dart.fieldType(dart.nullable(async.EventSink$(T)))
    }));
    return _HandlerEventSink;
  });
  async._HandlerEventSink = async._HandlerEventSink$();
  dart.addTypeTests(async._HandlerEventSink, _is__HandlerEventSink_default);
  const _is__StreamHandlerTransformer_default = Symbol('_is__StreamHandlerTransformer_default');
  async._StreamHandlerTransformer$ = dart.generic((S, T) => {
    var _HandlerEventSinkOfS$T = () => (_HandlerEventSinkOfS$T = dart.constFn(async._HandlerEventSink$(S, T)))();
    var EventSinkOfTTo_HandlerEventSinkOfS$T = () => (EventSinkOfTTo_HandlerEventSinkOfS$T = dart.constFn(dart.fnType(_HandlerEventSinkOfS$T(), [EventSinkOfT()])))();
    var StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
    var EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
    class _StreamHandlerTransformer extends async._StreamSinkTransformer$(S, T) {
      bind(stream) {
        StreamOfS().as(stream);
        if (stream == null) dart.nullFailed(I[71], 256, 28, "stream");
        return super.bind(stream);
      }
    }
    (_StreamHandlerTransformer.new = function(opts) {
      let handleData = opts && 'handleData' in opts ? opts.handleData : null;
      let handleError = opts && 'handleError' in opts ? opts.handleError : null;
      let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null;
      _StreamHandlerTransformer.__proto__.new.call(this, dart.fn(outputSink => {
        if (outputSink == null) dart.nullFailed(I[71], 251, 29, "outputSink");
        return new (_HandlerEventSinkOfS$T()).new(handleData, handleError, handleDone, outputSink);
      }, EventSinkOfTTo_HandlerEventSinkOfS$T()));
      ;
    }).prototype = _StreamHandlerTransformer.prototype;
    dart.addTypeTests(_StreamHandlerTransformer);
    _StreamHandlerTransformer.prototype[_is__StreamHandlerTransformer_default] = true;
    dart.addTypeCaches(_StreamHandlerTransformer);
    dart.setLibraryUri(_StreamHandlerTransformer, I[29]);
    return _StreamHandlerTransformer;
  });
  async._StreamHandlerTransformer = async._StreamHandlerTransformer$();
  dart.addTypeTests(async._StreamHandlerTransformer, _is__StreamHandlerTransformer_default);
  var _bind$ = dart.privateName(async, "_bind");
  const _is__StreamBindTransformer_default = Symbol('_is__StreamBindTransformer_default');
  async._StreamBindTransformer$ = dart.generic((S, T) => {
    var StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
    class _StreamBindTransformer extends async.StreamTransformerBase$(S, T) {
      bind(stream) {
        let t128;
        StreamOfS().as(stream);
        if (stream == null) dart.nullFailed(I[71], 266, 28, "stream");
        t128 = stream;
        return this[_bind$](t128);
      }
    }
    (_StreamBindTransformer.new = function(_bind) {
      if (_bind == null) dart.nullFailed(I[71], 264, 31, "_bind");
      this[_bind$] = _bind;
      _StreamBindTransformer.__proto__.new.call(this);
      ;
    }).prototype = _StreamBindTransformer.prototype;
    dart.addTypeTests(_StreamBindTransformer);
    _StreamBindTransformer.prototype[_is__StreamBindTransformer_default] = true;
    dart.addTypeCaches(_StreamBindTransformer);
    dart.setMethodSignature(_StreamBindTransformer, () => ({
      __proto__: dart.getMethods(_StreamBindTransformer.__proto__),
      bind: dart.fnType(async.Stream$(T), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_StreamBindTransformer, I[29]);
    dart.setFieldSignature(_StreamBindTransformer, () => ({
      __proto__: dart.getFields(_StreamBindTransformer.__proto__),
      [_bind$]: dart.finalFieldType(dart.fnType(async.Stream$(T), [async.Stream$(S)]))
    }));
    return _StreamBindTransformer;
  });
  async._StreamBindTransformer = async._StreamBindTransformer$();
  dart.addTypeTests(async._StreamBindTransformer, _is__StreamBindTransformer_default);
  var _onListen$0 = dart.privateName(async, "_StreamSubscriptionTransformer._onListen");
  const _is__StreamSubscriptionTransformer_default = Symbol('_is__StreamSubscriptionTransformer_default');
  async._StreamSubscriptionTransformer$ = dart.generic((S, T) => {
    var StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
    var _BoundSubscriptionStreamOfS$T = () => (_BoundSubscriptionStreamOfS$T = dart.constFn(async._BoundSubscriptionStream$(S, T)))();
    class _StreamSubscriptionTransformer extends async.StreamTransformerBase$(S, T) {
      get [_onListen$]() {
        return this[_onListen$0];
      }
      set [_onListen$](value) {
        super[_onListen$] = value;
      }
      bind(stream) {
        StreamOfS().as(stream);
        if (stream == null) dart.nullFailed(I[71], 288, 28, "stream");
        return new (_BoundSubscriptionStreamOfS$T()).new(stream, this[_onListen$]);
      }
    }
    (_StreamSubscriptionTransformer.new = function(_onListen) {
      if (_onListen == null) dart.nullFailed(I[71], 286, 45, "_onListen");
      this[_onListen$0] = _onListen;
      _StreamSubscriptionTransformer.__proto__.new.call(this);
      ;
    }).prototype = _StreamSubscriptionTransformer.prototype;
    dart.addTypeTests(_StreamSubscriptionTransformer);
    _StreamSubscriptionTransformer.prototype[_is__StreamSubscriptionTransformer_default] = true;
    dart.addTypeCaches(_StreamSubscriptionTransformer);
    dart.setMethodSignature(_StreamSubscriptionTransformer, () => ({
      __proto__: dart.getMethods(_StreamSubscriptionTransformer.__proto__),
      bind: dart.fnType(async.Stream$(T), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_StreamSubscriptionTransformer, I[29]);
    dart.setFieldSignature(_StreamSubscriptionTransformer, () => ({
      __proto__: dart.getFields(_StreamSubscriptionTransformer.__proto__),
      [_onListen$]: dart.finalFieldType(dart.fnType(async.StreamSubscription$(T), [async.Stream$(S), core.bool]))
    }));
    return _StreamSubscriptionTransformer;
  });
  async._StreamSubscriptionTransformer = async._StreamSubscriptionTransformer$();
  dart.addTypeTests(async._StreamSubscriptionTransformer, _is__StreamSubscriptionTransformer_default);
  const _is__BoundSubscriptionStream_default = Symbol('_is__BoundSubscriptionStream_default');
  async._BoundSubscriptionStream$ = dart.generic((S, T) => {
    class _BoundSubscriptionStream extends async.Stream$(T) {
      get isBroadcast() {
        return this[_stream$].isBroadcast;
      }
      listen(onData, opts) {
        let t128, t129, t128$;
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        let result = (t128$ = this[_stream$], t129 = (t128 = cancelOnError, t128 == null ? false : t128), this[_onListen$](t128$, t129));
        result.onData(onData);
        result.onError(onError);
        result.onDone(onDone);
        return result;
      }
    }
    (_BoundSubscriptionStream.new = function(_stream, _onListen) {
      if (_stream == null) dart.nullFailed(I[71], 303, 33, "_stream");
      if (_onListen == null) dart.nullFailed(I[71], 303, 47, "_onListen");
      this[_stream$] = _stream;
      this[_onListen$] = _onListen;
      _BoundSubscriptionStream.__proto__.new.call(this);
      ;
    }).prototype = _BoundSubscriptionStream.prototype;
    dart.addTypeTests(_BoundSubscriptionStream);
    _BoundSubscriptionStream.prototype[_is__BoundSubscriptionStream_default] = true;
    dart.addTypeCaches(_BoundSubscriptionStream);
    dart.setMethodSignature(_BoundSubscriptionStream, () => ({
      __proto__: dart.getMethods(_BoundSubscriptionStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(_BoundSubscriptionStream, I[29]);
    dart.setFieldSignature(_BoundSubscriptionStream, () => ({
      __proto__: dart.getFields(_BoundSubscriptionStream.__proto__),
      [_onListen$]: dart.finalFieldType(dart.fnType(async.StreamSubscription$(T), [async.Stream$(S), core.bool])),
      [_stream$]: dart.finalFieldType(async.Stream$(S))
    }));
    return _BoundSubscriptionStream;
  });
  async._BoundSubscriptionStream = async._BoundSubscriptionStream$();
  dart.addTypeTests(async._BoundSubscriptionStream, _is__BoundSubscriptionStream_default);
  async.Timer = class Timer extends core.Object {
    static new(duration, callback) {
      if (duration == null) dart.nullFailed(I[72], 41, 26, "duration");
      if (callback == null) dart.nullFailed(I[72], 41, 52, "callback");
      if (dart.equals(async.Zone.current, async.Zone.root)) {
        return async.Zone.current.createTimer(duration, callback);
      }
      return async.Zone.current.createTimer(duration, async.Zone.current.bindCallbackGuarded(callback));
    }
    static periodic(duration, callback) {
      if (duration == null) dart.nullFailed(I[72], 67, 35, "duration");
      if (callback == null) dart.nullFailed(I[72], 67, 50, "callback");
      if (dart.equals(async.Zone.current, async.Zone.root)) {
        return async.Zone.current.createPeriodicTimer(duration, callback);
      }
      let boundCallback = async.Zone.current.bindUnaryCallbackGuarded(async.Timer, callback);
      return async.Zone.current.createPeriodicTimer(duration, boundCallback);
    }
    static run(callback) {
      if (callback == null) dart.nullFailed(I[72], 80, 35, "callback");
      async.Timer.new(core.Duration.zero, callback);
    }
    static _createTimer(duration, callback) {
      if (duration == null) dart.nullFailed(I[61], 183, 38, "duration");
      if (callback == null) dart.nullFailed(I[61], 183, 64, "callback");
      let milliseconds = duration.inMilliseconds;
      if (dart.notNull(milliseconds) < 0) milliseconds = 0;
      return new _isolate_helper.TimerImpl.new(milliseconds, callback);
    }
    static _createPeriodicTimer(duration, callback) {
      if (duration == null) dart.nullFailed(I[61], 191, 16, "duration");
      if (callback == null) dart.nullFailed(I[61], 191, 31, "callback");
      let milliseconds = duration.inMilliseconds;
      if (dart.notNull(milliseconds) < 0) milliseconds = 0;
      return new _isolate_helper.TimerImpl.periodic(milliseconds, callback);
    }
  };
  (async.Timer[dart.mixinNew] = function() {
  }).prototype = async.Timer.prototype;
  dart.addTypeTests(async.Timer);
  dart.addTypeCaches(async.Timer);
  dart.setLibraryUri(async.Timer, I[29]);
  var zone$ = dart.privateName(async, "_ZoneFunction.zone");
  var $function$0 = dart.privateName(async, "_ZoneFunction.function");
  const _is__ZoneFunction_default = Symbol('_is__ZoneFunction_default');
  async._ZoneFunction$ = dart.generic(T => {
    class _ZoneFunction extends core.Object {
      get zone() {
        return this[zone$];
      }
      set zone(value) {
        super.zone = value;
      }
      get function() {
        return this[$function$0];
      }
      set function(value) {
        super.function = value;
      }
    }
    (_ZoneFunction.new = function(zone, $function) {
      if (zone == null) dart.nullFailed(I[73], 244, 28, "zone");
      if ($function == null) dart.nullFailed(I[73], 244, 39, "function");
      this[zone$] = zone;
      this[$function$0] = $function;
      ;
    }).prototype = _ZoneFunction.prototype;
    dart.addTypeTests(_ZoneFunction);
    _ZoneFunction.prototype[_is__ZoneFunction_default] = true;
    dart.addTypeCaches(_ZoneFunction);
    dart.setLibraryUri(_ZoneFunction, I[29]);
    dart.setFieldSignature(_ZoneFunction, () => ({
      __proto__: dart.getFields(_ZoneFunction.__proto__),
      zone: dart.finalFieldType(async._Zone),
      function: dart.finalFieldType(T)
    }));
    return _ZoneFunction;
  });
  async._ZoneFunction = async._ZoneFunction$();
  dart.addTypeTests(async._ZoneFunction, _is__ZoneFunction_default);
  var zone$0 = dart.privateName(async, "_RunNullaryZoneFunction.zone");
  var $function$1 = dart.privateName(async, "_RunNullaryZoneFunction.function");
  async._RunNullaryZoneFunction = class _RunNullaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$0];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$1];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RunNullaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 250, 38, "zone");
    if ($function == null) dart.nullFailed(I[73], 250, 49, "function");
    this[zone$0] = zone;
    this[$function$1] = $function;
    ;
  }).prototype = async._RunNullaryZoneFunction.prototype;
  dart.addTypeTests(async._RunNullaryZoneFunction);
  dart.addTypeCaches(async._RunNullaryZoneFunction);
  dart.setLibraryUri(async._RunNullaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RunNullaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RunNullaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]))
  }));
  var zone$1 = dart.privateName(async, "_RunUnaryZoneFunction.zone");
  var $function$2 = dart.privateName(async, "_RunUnaryZoneFunction.function");
  async._RunUnaryZoneFunction = class _RunUnaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$1];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$2];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RunUnaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 256, 36, "zone");
    if ($function == null) dart.nullFailed(I[73], 256, 47, "function");
    this[zone$1] = zone;
    this[$function$2] = $function;
    ;
  }).prototype = async._RunUnaryZoneFunction.prototype;
  dart.addTypeTests(async._RunUnaryZoneFunction);
  dart.addTypeCaches(async._RunUnaryZoneFunction);
  dart.setLibraryUri(async._RunUnaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RunUnaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RunUnaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T]), T]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]))
  }));
  var zone$2 = dart.privateName(async, "_RunBinaryZoneFunction.zone");
  var $function$3 = dart.privateName(async, "_RunBinaryZoneFunction.function");
  async._RunBinaryZoneFunction = class _RunBinaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$2];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$3];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RunBinaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 262, 37, "zone");
    if ($function == null) dart.nullFailed(I[73], 262, 48, "function");
    this[zone$2] = zone;
    this[$function$3] = $function;
    ;
  }).prototype = async._RunBinaryZoneFunction.prototype;
  dart.addTypeTests(async._RunBinaryZoneFunction);
  dart.addTypeCaches(async._RunBinaryZoneFunction);
  dart.setLibraryUri(async._RunBinaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RunBinaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RunBinaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]))
  }));
  var zone$3 = dart.privateName(async, "_RegisterNullaryZoneFunction.zone");
  var $function$4 = dart.privateName(async, "_RegisterNullaryZoneFunction.function");
  async._RegisterNullaryZoneFunction = class _RegisterNullaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$3];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$4];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RegisterNullaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 268, 43, "zone");
    if ($function == null) dart.nullFailed(I[73], 268, 54, "function");
    this[zone$3] = zone;
    this[$function$4] = $function;
    ;
  }).prototype = async._RegisterNullaryZoneFunction.prototype;
  dart.addTypeTests(async._RegisterNullaryZoneFunction);
  dart.addTypeCaches(async._RegisterNullaryZoneFunction);
  dart.setLibraryUri(async._RegisterNullaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RegisterNullaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RegisterNullaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType(R => [dart.fnType(R, []), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]))
  }));
  var zone$4 = dart.privateName(async, "_RegisterUnaryZoneFunction.zone");
  var $function$5 = dart.privateName(async, "_RegisterUnaryZoneFunction.function");
  async._RegisterUnaryZoneFunction = class _RegisterUnaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$4];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$5];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RegisterUnaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 274, 41, "zone");
    if ($function == null) dart.nullFailed(I[73], 274, 52, "function");
    this[zone$4] = zone;
    this[$function$5] = $function;
    ;
  }).prototype = async._RegisterUnaryZoneFunction.prototype;
  dart.addTypeTests(async._RegisterUnaryZoneFunction);
  dart.addTypeCaches(async._RegisterUnaryZoneFunction);
  dart.setLibraryUri(async._RegisterUnaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RegisterUnaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RegisterUnaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]))
  }));
  var zone$5 = dart.privateName(async, "_RegisterBinaryZoneFunction.zone");
  var $function$6 = dart.privateName(async, "_RegisterBinaryZoneFunction.function");
  async._RegisterBinaryZoneFunction = class _RegisterBinaryZoneFunction extends core.Object {
    get zone() {
      return this[zone$5];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[$function$6];
    }
    set function(value) {
      super.function = value;
    }
  };
  (async._RegisterBinaryZoneFunction.new = function(zone, $function) {
    if (zone == null) dart.nullFailed(I[73], 280, 42, "zone");
    if ($function == null) dart.nullFailed(I[73], 280, 53, "function");
    this[zone$5] = zone;
    this[$function$6] = $function;
    ;
  }).prototype = async._RegisterBinaryZoneFunction.prototype;
  dart.addTypeTests(async._RegisterBinaryZoneFunction);
  dart.addTypeCaches(async._RegisterBinaryZoneFunction);
  dart.setLibraryUri(async._RegisterBinaryZoneFunction, I[29]);
  dart.setFieldSignature(async._RegisterBinaryZoneFunction, () => ({
    __proto__: dart.getFields(async._RegisterBinaryZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]))
  }));
  async.ZoneSpecification = class ZoneSpecification extends core.Object {
    static from(other, opts) {
      let t128, t128$, t128$0, t128$1, t128$2, t128$3, t128$4, t128$5, t128$6, t128$7, t128$8, t128$9, t128$10;
      if (other == null) dart.nullFailed(I[73], 331, 52, "other");
      let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
      let run = opts && 'run' in opts ? opts.run : null;
      let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
      let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
      let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
      let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
      let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
      let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
      let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
      let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
      let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
      let print = opts && 'print' in opts ? opts.print : null;
      let fork = opts && 'fork' in opts ? opts.fork : null;
      return new async._ZoneSpecification.new({handleUncaughtError: (t128 = handleUncaughtError, t128 == null ? other.handleUncaughtError : t128), run: (t128$ = run, t128$ == null ? other.run : t128$), runUnary: (t128$0 = runUnary, t128$0 == null ? other.runUnary : t128$0), runBinary: (t128$1 = runBinary, t128$1 == null ? other.runBinary : t128$1), registerCallback: (t128$2 = registerCallback, t128$2 == null ? other.registerCallback : t128$2), registerUnaryCallback: (t128$3 = registerUnaryCallback, t128$3 == null ? other.registerUnaryCallback : t128$3), registerBinaryCallback: (t128$4 = registerBinaryCallback, t128$4 == null ? other.registerBinaryCallback : t128$4), errorCallback: (t128$5 = errorCallback, t128$5 == null ? other.errorCallback : t128$5), scheduleMicrotask: (t128$6 = scheduleMicrotask, t128$6 == null ? other.scheduleMicrotask : t128$6), createTimer: (t128$7 = createTimer, t128$7 == null ? other.createTimer : t128$7), createPeriodicTimer: (t128$8 = createPeriodicTimer, t128$8 == null ? other.createPeriodicTimer : t128$8), print: (t128$9 = print, t128$9 == null ? other.print : t128$9), fork: (t128$10 = fork, t128$10 == null ? other.fork : t128$10)});
    }
  };
  (async.ZoneSpecification[dart.mixinNew] = function() {
  }).prototype = async.ZoneSpecification.prototype;
  dart.addTypeTests(async.ZoneSpecification);
  dart.addTypeCaches(async.ZoneSpecification);
  dart.setLibraryUri(async.ZoneSpecification, I[29]);
  var handleUncaughtError$ = dart.privateName(async, "_ZoneSpecification.handleUncaughtError");
  var run$ = dart.privateName(async, "_ZoneSpecification.run");
  var runUnary$ = dart.privateName(async, "_ZoneSpecification.runUnary");
  var runBinary$ = dart.privateName(async, "_ZoneSpecification.runBinary");
  var registerCallback$ = dart.privateName(async, "_ZoneSpecification.registerCallback");
  var registerUnaryCallback$ = dart.privateName(async, "_ZoneSpecification.registerUnaryCallback");
  var registerBinaryCallback$ = dart.privateName(async, "_ZoneSpecification.registerBinaryCallback");
  var errorCallback$ = dart.privateName(async, "_ZoneSpecification.errorCallback");
  var scheduleMicrotask$ = dart.privateName(async, "_ZoneSpecification.scheduleMicrotask");
  var createTimer$ = dart.privateName(async, "_ZoneSpecification.createTimer");
  var createPeriodicTimer$ = dart.privateName(async, "_ZoneSpecification.createPeriodicTimer");
  var print$ = dart.privateName(async, "_ZoneSpecification.print");
  var fork$ = dart.privateName(async, "_ZoneSpecification.fork");
  async._ZoneSpecification = class _ZoneSpecification extends core.Object {
    get handleUncaughtError() {
      return this[handleUncaughtError$];
    }
    set handleUncaughtError(value) {
      super.handleUncaughtError = value;
    }
    get run() {
      return this[run$];
    }
    set run(value) {
      super.run = value;
    }
    get runUnary() {
      return this[runUnary$];
    }
    set runUnary(value) {
      super.runUnary = value;
    }
    get runBinary() {
      return this[runBinary$];
    }
    set runBinary(value) {
      super.runBinary = value;
    }
    get registerCallback() {
      return this[registerCallback$];
    }
    set registerCallback(value) {
      super.registerCallback = value;
    }
    get registerUnaryCallback() {
      return this[registerUnaryCallback$];
    }
    set registerUnaryCallback(value) {
      super.registerUnaryCallback = value;
    }
    get registerBinaryCallback() {
      return this[registerBinaryCallback$];
    }
    set registerBinaryCallback(value) {
      super.registerBinaryCallback = value;
    }
    get errorCallback() {
      return this[errorCallback$];
    }
    set errorCallback(value) {
      super.errorCallback = value;
    }
    get scheduleMicrotask() {
      return this[scheduleMicrotask$];
    }
    set scheduleMicrotask(value) {
      super.scheduleMicrotask = value;
    }
    get createTimer() {
      return this[createTimer$];
    }
    set createTimer(value) {
      super.createTimer = value;
    }
    get createPeriodicTimer() {
      return this[createPeriodicTimer$];
    }
    set createPeriodicTimer(value) {
      super.createPeriodicTimer = value;
    }
    get print() {
      return this[print$];
    }
    set print(value) {
      super.print = value;
    }
    get fork() {
      return this[fork$];
    }
    set fork(value) {
      super.fork = value;
    }
  };
  (async._ZoneSpecification.new = function(opts) {
    let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
    let run = opts && 'run' in opts ? opts.run : null;
    let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
    let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
    let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
    let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
    let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
    let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
    let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
    let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
    let print = opts && 'print' in opts ? opts.print : null;
    let fork = opts && 'fork' in opts ? opts.fork : null;
    this[handleUncaughtError$] = handleUncaughtError;
    this[run$] = run;
    this[runUnary$] = runUnary;
    this[runBinary$] = runBinary;
    this[registerCallback$] = registerCallback;
    this[registerUnaryCallback$] = registerUnaryCallback;
    this[registerBinaryCallback$] = registerBinaryCallback;
    this[errorCallback$] = errorCallback;
    this[scheduleMicrotask$] = scheduleMicrotask;
    this[createTimer$] = createTimer;
    this[createPeriodicTimer$] = createPeriodicTimer;
    this[print$] = print;
    this[fork$] = fork;
    ;
  }).prototype = async._ZoneSpecification.prototype;
  dart.addTypeTests(async._ZoneSpecification);
  dart.addTypeCaches(async._ZoneSpecification);
  async._ZoneSpecification[dart.implements] = () => [async.ZoneSpecification];
  dart.setLibraryUri(async._ZoneSpecification, I[29]);
  dart.setFieldSignature(async._ZoneSpecification, () => ({
    __proto__: dart.getFields(async._ZoneSpecification.__proto__),
    handleUncaughtError: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]))),
    run: dart.finalFieldType(dart.nullable(dart.gFnType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]))),
    runUnary: dart.finalFieldType(dart.nullable(dart.gFnType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T]), T]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]))),
    runBinary: dart.finalFieldType(dart.nullable(dart.gFnType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]))),
    registerCallback: dart.finalFieldType(dart.nullable(dart.gFnType(R => [dart.fnType(R, []), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]))),
    registerUnaryCallback: dart.finalFieldType(dart.nullable(dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]))),
    registerBinaryCallback: dart.finalFieldType(dart.nullable(dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]))),
    errorCallback: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(async.AsyncError), [async.Zone, async.ZoneDelegate, async.Zone, core.Object, dart.nullable(core.StackTrace)]))),
    scheduleMicrotask: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])]))),
    createTimer: dart.finalFieldType(dart.nullable(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])]))),
    createPeriodicTimer: dart.finalFieldType(dart.nullable(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])]))),
    print: dart.finalFieldType(dart.nullable(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]))),
    fork: dart.finalFieldType(dart.nullable(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, dart.nullable(async.ZoneSpecification), dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))])))
  }));
  async.ZoneDelegate = class ZoneDelegate extends core.Object {};
  (async.ZoneDelegate.new = function() {
    ;
  }).prototype = async.ZoneDelegate.prototype;
  dart.addTypeTests(async.ZoneDelegate);
  dart.addTypeCaches(async.ZoneDelegate);
  dart.setLibraryUri(async.ZoneDelegate, I[29]);
  async.Zone = class Zone extends core.Object {
    static get current() {
      return async.Zone._current;
    }
    static _enter(zone) {
      if (zone == null) dart.nullFailed(I[73], 885, 29, "zone");
      if (!(zone != async.Zone._current)) dart.assertFailed(null, I[73], 886, 12, "!identical(zone, _current)");
      let previous = async.Zone._current;
      async.Zone._current = zone;
      return previous;
    }
    static _leave(previous) {
      if (previous == null) dart.nullFailed(I[73], 895, 28, "previous");
      if (!(previous != null)) dart.assertFailed(null, I[73], 896, 12, "previous != null");
      async.Zone._current = previous;
    }
  };
  (async.Zone.__ = function() {
    ;
  }).prototype = async.Zone.prototype;
  dart.addTypeTests(async.Zone);
  dart.addTypeCaches(async.Zone);
  dart.setLibraryUri(async.Zone, I[29]);
  dart.defineLazy(async.Zone, {
    /*async.Zone.root*/get root() {
      return C[44] || CT.C44;
    },
    /*async.Zone._current*/get _current() {
      return async._rootZone;
    },
    set _current(_) {}
  }, false);
  var _delegationTarget$ = dart.privateName(async, "_delegationTarget");
  var _handleUncaughtError = dart.privateName(async, "_handleUncaughtError");
  var _parentDelegate = dart.privateName(async, "_parentDelegate");
  var _run = dart.privateName(async, "_run");
  var _runUnary = dart.privateName(async, "_runUnary");
  var _runBinary = dart.privateName(async, "_runBinary");
  var _registerCallback = dart.privateName(async, "_registerCallback");
  var _registerUnaryCallback = dart.privateName(async, "_registerUnaryCallback");
  var _registerBinaryCallback = dart.privateName(async, "_registerBinaryCallback");
  var _errorCallback = dart.privateName(async, "_errorCallback");
  var _scheduleMicrotask = dart.privateName(async, "_scheduleMicrotask");
  var _createTimer = dart.privateName(async, "_createTimer");
  var _createPeriodicTimer = dart.privateName(async, "_createPeriodicTimer");
  var _print = dart.privateName(async, "_print");
  var _fork = dart.privateName(async, "_fork");
  async._ZoneDelegate = class _ZoneDelegate extends core.Object {
    handleUncaughtError(zone, error, stackTrace) {
      if (zone == null) dart.nullFailed(I[73], 917, 33, "zone");
      if (error == null) dart.nullFailed(I[73], 917, 46, "error");
      if (stackTrace == null) dart.nullFailed(I[73], 917, 64, "stackTrace");
      let implementation = this[_delegationTarget$][_handleUncaughtError];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(implZone, implZone[_parentDelegate], zone, error, stackTrace);
    }
    run(R, zone, f) {
      if (zone == null) dart.nullFailed(I[73], 924, 17, "zone");
      if (f == null) dart.nullFailed(I[73], 924, 25, "f");
      let implementation = this[_delegationTarget$][_run];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, implZone, implZone[_parentDelegate], zone, f);
    }
    runUnary(R, T, zone, f, arg) {
      if (zone == null) dart.nullFailed(I[73], 931, 25, "zone");
      if (f == null) dart.nullFailed(I[73], 931, 33, "f");
      let implementation = this[_delegationTarget$][_runUnary];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, T, implZone, implZone[_parentDelegate], zone, f, arg);
    }
    runBinary(R, T1, T2, zone, f, arg1, arg2) {
      if (zone == null) dart.nullFailed(I[73], 938, 31, "zone");
      if (f == null) dart.nullFailed(I[73], 938, 39, "f");
      let implementation = this[_delegationTarget$][_runBinary];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, T1, T2, implZone, implZone[_parentDelegate], zone, f, arg1, arg2);
    }
    registerCallback(R, zone, f) {
      if (zone == null) dart.nullFailed(I[73], 945, 44, "zone");
      if (f == null) dart.nullFailed(I[73], 945, 52, "f");
      let implementation = this[_delegationTarget$][_registerCallback];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, implZone, implZone[_parentDelegate], zone, f);
    }
    registerUnaryCallback(R, T, zone, f) {
      if (zone == null) dart.nullFailed(I[73], 952, 60, "zone");
      if (f == null) dart.nullFailed(I[73], 952, 68, "f");
      let implementation = this[_delegationTarget$][_registerUnaryCallback];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, T, implZone, implZone[_parentDelegate], zone, f);
    }
    registerBinaryCallback(R, T1, T2, zone, f) {
      if (zone == null) dart.nullFailed(I[73], 960, 12, "zone");
      if (f == null) dart.nullFailed(I[73], 960, 20, "f");
      let implementation = this[_delegationTarget$][_registerBinaryCallback];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(R, T1, T2, implZone, implZone[_parentDelegate], zone, f);
    }
    errorCallback(zone, error, stackTrace) {
      if (zone == null) dart.nullFailed(I[73], 967, 34, "zone");
      if (error == null) dart.nullFailed(I[73], 967, 47, "error");
      _internal.checkNotNullable(core.Object, error, "error");
      let implementation = this[_delegationTarget$][_errorCallback];
      let implZone = implementation.zone;
      if (implZone == async._rootZone) return null;
      let handler = implementation.function;
      return handler(implZone, implZone[_parentDelegate], zone, error, stackTrace);
    }
    scheduleMicrotask(zone, f) {
      if (zone == null) dart.nullFailed(I[73], 976, 31, "zone");
      if (f == null) dart.nullFailed(I[73], 976, 37, "f");
      let implementation = this[_delegationTarget$][_scheduleMicrotask];
      let implZone = implementation.zone;
      let handler = implementation.function;
      handler(implZone, implZone[_parentDelegate], zone, f);
    }
    createTimer(zone, duration, f) {
      if (zone == null) dart.nullFailed(I[73], 983, 26, "zone");
      if (duration == null) dart.nullFailed(I[73], 983, 41, "duration");
      if (f == null) dart.nullFailed(I[73], 983, 56, "f");
      let implementation = this[_delegationTarget$][_createTimer];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(implZone, implZone[_parentDelegate], zone, duration, f);
    }
    createPeriodicTimer(zone, period, f) {
      if (zone == null) dart.nullFailed(I[73], 990, 34, "zone");
      if (period == null) dart.nullFailed(I[73], 990, 49, "period");
      if (f == null) dart.nullFailed(I[73], 990, 62, "f");
      let implementation = this[_delegationTarget$][_createPeriodicTimer];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(implZone, implZone[_parentDelegate], zone, period, f);
    }
    print(zone, line) {
      if (zone == null) dart.nullFailed(I[73], 997, 19, "zone");
      if (line == null) dart.nullFailed(I[73], 997, 32, "line");
      let implementation = this[_delegationTarget$][_print];
      let implZone = implementation.zone;
      let handler = implementation.function;
      handler(implZone, implZone[_parentDelegate], zone, line);
    }
    fork(zone, specification, zoneValues) {
      if (zone == null) dart.nullFailed(I[73], 1004, 18, "zone");
      let implementation = this[_delegationTarget$][_fork];
      let implZone = implementation.zone;
      let handler = implementation.function;
      return handler(implZone, implZone[_parentDelegate], zone, specification, zoneValues);
    }
  };
  (async._ZoneDelegate.new = function(_delegationTarget) {
    if (_delegationTarget == null) dart.nullFailed(I[73], 915, 22, "_delegationTarget");
    this[_delegationTarget$] = _delegationTarget;
    ;
  }).prototype = async._ZoneDelegate.prototype;
  dart.addTypeTests(async._ZoneDelegate);
  dart.addTypeCaches(async._ZoneDelegate);
  async._ZoneDelegate[dart.implements] = () => [async.ZoneDelegate];
  dart.setMethodSignature(async._ZoneDelegate, () => ({
    __proto__: dart.getMethods(async._ZoneDelegate.__proto__),
    handleUncaughtError: dart.fnType(dart.void, [async.Zone, core.Object, core.StackTrace]),
    run: dart.gFnType(R => [R, [async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    runUnary: dart.gFnType((R, T) => [R, [async.Zone, dart.fnType(R, [T]), T]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    runBinary: dart.gFnType((R, T1, T2) => [R, [async.Zone, dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerCallback: dart.gFnType(R => [dart.fnType(R, []), [async.Zone, dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    errorCallback: dart.fnType(dart.nullable(async.AsyncError), [async.Zone, core.Object, dart.nullable(core.StackTrace)]),
    scheduleMicrotask: dart.fnType(dart.void, [async.Zone, dart.fnType(dart.dynamic, [])]),
    createTimer: dart.fnType(async.Timer, [async.Zone, core.Duration, dart.fnType(dart.void, [])]),
    createPeriodicTimer: dart.fnType(async.Timer, [async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])]),
    print: dart.fnType(dart.void, [async.Zone, core.String]),
    fork: dart.fnType(async.Zone, [async.Zone, dart.nullable(async.ZoneSpecification), dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))])
  }));
  dart.setLibraryUri(async._ZoneDelegate, I[29]);
  dart.setFieldSignature(async._ZoneDelegate, () => ({
    __proto__: dart.getFields(async._ZoneDelegate.__proto__),
    [_delegationTarget$]: dart.finalFieldType(async._Zone)
  }));
  async._Zone = class _Zone extends core.Object {
    inSameErrorZone(otherZone) {
      if (otherZone == null) dart.nullFailed(I[73], 1039, 29, "otherZone");
      return this === otherZone || this.errorZone == otherZone.errorZone;
    }
  };
  (async._Zone.new = function() {
    ;
  }).prototype = async._Zone.prototype;
  dart.addTypeTests(async._Zone);
  dart.addTypeCaches(async._Zone);
  async._Zone[dart.implements] = () => [async.Zone];
  dart.setMethodSignature(async._Zone, () => ({
    __proto__: dart.getMethods(async._Zone.__proto__),
    inSameErrorZone: dart.fnType(core.bool, [async.Zone])
  }));
  dart.setLibraryUri(async._Zone, I[29]);
  var _run$ = dart.privateName(async, "_CustomZone._run");
  var _runUnary$ = dart.privateName(async, "_CustomZone._runUnary");
  var _runBinary$ = dart.privateName(async, "_CustomZone._runBinary");
  var _registerCallback$ = dart.privateName(async, "_CustomZone._registerCallback");
  var _registerUnaryCallback$ = dart.privateName(async, "_CustomZone._registerUnaryCallback");
  var _registerBinaryCallback$ = dart.privateName(async, "_CustomZone._registerBinaryCallback");
  var _errorCallback$ = dart.privateName(async, "_CustomZone._errorCallback");
  var _scheduleMicrotask$ = dart.privateName(async, "_CustomZone._scheduleMicrotask");
  var _createTimer$ = dart.privateName(async, "_CustomZone._createTimer");
  var _createPeriodicTimer$ = dart.privateName(async, "_CustomZone._createPeriodicTimer");
  var _print$ = dart.privateName(async, "_CustomZone._print");
  var _fork$ = dart.privateName(async, "_CustomZone._fork");
  var _handleUncaughtError$ = dart.privateName(async, "_CustomZone._handleUncaughtError");
  var parent$ = dart.privateName(async, "_CustomZone.parent");
  var _map$2 = dart.privateName(async, "_CustomZone._map");
  var _delegateCache = dart.privateName(async, "_delegateCache");
  var _map$3 = dart.privateName(async, "_map");
  var _delegate = dart.privateName(async, "_delegate");
  async._CustomZone = class _CustomZone extends async._Zone {
    get [_run]() {
      return this[_run$];
    }
    set [_run](value) {
      this[_run$] = value;
    }
    get [_runUnary]() {
      return this[_runUnary$];
    }
    set [_runUnary](value) {
      this[_runUnary$] = value;
    }
    get [_runBinary]() {
      return this[_runBinary$];
    }
    set [_runBinary](value) {
      this[_runBinary$] = value;
    }
    get [_registerCallback]() {
      return this[_registerCallback$];
    }
    set [_registerCallback](value) {
      this[_registerCallback$] = value;
    }
    get [_registerUnaryCallback]() {
      return this[_registerUnaryCallback$];
    }
    set [_registerUnaryCallback](value) {
      this[_registerUnaryCallback$] = value;
    }
    get [_registerBinaryCallback]() {
      return this[_registerBinaryCallback$];
    }
    set [_registerBinaryCallback](value) {
      this[_registerBinaryCallback$] = value;
    }
    get [_errorCallback]() {
      return this[_errorCallback$];
    }
    set [_errorCallback](value) {
      this[_errorCallback$] = value;
    }
    get [_scheduleMicrotask]() {
      return this[_scheduleMicrotask$];
    }
    set [_scheduleMicrotask](value) {
      this[_scheduleMicrotask$] = value;
    }
    get [_createTimer]() {
      return this[_createTimer$];
    }
    set [_createTimer](value) {
      this[_createTimer$] = value;
    }
    get [_createPeriodicTimer]() {
      return this[_createPeriodicTimer$];
    }
    set [_createPeriodicTimer](value) {
      this[_createPeriodicTimer$] = value;
    }
    get [_print]() {
      return this[_print$];
    }
    set [_print](value) {
      this[_print$] = value;
    }
    get [_fork]() {
      return this[_fork$];
    }
    set [_fork](value) {
      this[_fork$] = value;
    }
    get [_handleUncaughtError]() {
      return this[_handleUncaughtError$];
    }
    set [_handleUncaughtError](value) {
      this[_handleUncaughtError$] = value;
    }
    get parent() {
      return this[parent$];
    }
    set parent(value) {
      super.parent = value;
    }
    get [_map$3]() {
      return this[_map$2];
    }
    set [_map$3](value) {
      super[_map$3] = value;
    }
    get [_delegate]() {
      let t128;
      t128 = this[_delegateCache];
      return t128 == null ? this[_delegateCache] = new async._ZoneDelegate.new(this) : t128;
    }
    get [_parentDelegate]() {
      return this.parent[_delegate];
    }
    get errorZone() {
      return this[_handleUncaughtError].zone;
    }
    runGuarded(f) {
      if (f == null) dart.nullFailed(I[73], 1160, 24, "f");
      try {
        this.run(dart.void, f);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    runUnaryGuarded(T, f, arg) {
      if (f == null) dart.nullFailed(I[73], 1168, 32, "f");
      try {
        this.runUnary(dart.void, T, f, arg);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    runBinaryGuarded(T1, T2, f, arg1, arg2) {
      if (f == null) dart.nullFailed(I[73], 1176, 38, "f");
      try {
        this.runBinary(dart.void, T1, T2, f, arg1, arg2);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    bindCallback(R, f) {
      if (f == null) dart.nullFailed(I[73], 1184, 37, "f");
      let registered = this.registerCallback(R, f);
      return dart.fn(() => this.run(R, registered), dart.fnType(R, []));
    }
    bindUnaryCallback(R, T, f) {
      if (f == null) dart.nullFailed(I[73], 1189, 53, "f");
      let registered = this.registerUnaryCallback(R, T, f);
      return dart.fn(arg => this.runUnary(R, T, registered, arg), dart.fnType(R, [T]));
    }
    bindBinaryCallback(R, T1, T2, f) {
      if (f == null) dart.nullFailed(I[73], 1195, 9, "f");
      let registered = this.registerBinaryCallback(R, T1, T2, f);
      return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2, registered, arg1, arg2), dart.fnType(R, [T1, T2]));
    }
    bindCallbackGuarded(f) {
      if (f == null) dart.nullFailed(I[73], 1200, 44, "f");
      let registered = this.registerCallback(dart.void, f);
      return dart.fn(() => this.runGuarded(registered), T$.VoidTovoid());
    }
    bindUnaryCallbackGuarded(T, f) {
      if (f == null) dart.nullFailed(I[73], 1205, 53, "f");
      let registered = this.registerUnaryCallback(dart.void, T, f);
      return dart.fn(arg => this.runUnaryGuarded(T, registered, arg), dart.fnType(dart.void, [T]));
    }
    bindBinaryCallbackGuarded(T1, T2, f) {
      if (f == null) dart.nullFailed(I[73], 1211, 12, "f");
      let registered = this.registerBinaryCallback(dart.void, T1, T2, f);
      return dart.fn((arg1, arg2) => this.runBinaryGuarded(T1, T2, registered, arg1, arg2), dart.fnType(dart.void, [T1, T2]));
    }
    _get(key) {
      let result = this[_map$3][$_get](key);
      if (result != null || dart.test(this[_map$3][$containsKey](key))) return result;
      if (this.parent != null) {
        let value = this.parent._get(key);
        if (value != null) {
          this[_map$3][$_set](key, value);
        }
        return value;
      }
      if (!this[$_equals](async._rootZone)) dart.assertFailed(null, I[73], 1231, 12, "this == _rootZone");
      return null;
    }
    handleUncaughtError(error, stackTrace) {
      if (error == null) dart.nullFailed(I[73], 1237, 35, "error");
      if (stackTrace == null) dart.nullFailed(I[73], 1237, 53, "stackTrace");
      let implementation = this[_handleUncaughtError];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, error, stackTrace);
    }
    fork(opts) {
      let specification = opts && 'specification' in opts ? opts.specification : null;
      let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
      let implementation = this[_fork];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, specification, zoneValues);
    }
    run(R, f) {
      if (f == null) dart.nullFailed(I[73], 1254, 14, "f");
      let implementation = this[_run];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, implementation.zone, parentDelegate, this, f);
    }
    runUnary(R, T, f, arg) {
      if (f == null) dart.nullFailed(I[73], 1261, 22, "f");
      let implementation = this[_runUnary];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, T, implementation.zone, parentDelegate, this, f, arg);
    }
    runBinary(R, T1, T2, f, arg1, arg2) {
      if (f == null) dart.nullFailed(I[73], 1268, 28, "f");
      let implementation = this[_runBinary];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, T1, T2, implementation.zone, parentDelegate, this, f, arg1, arg2);
    }
    registerCallback(R, callback) {
      if (callback == null) dart.nullFailed(I[73], 1275, 41, "callback");
      let implementation = this[_registerCallback];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, implementation.zone, parentDelegate, this, callback);
    }
    registerUnaryCallback(R, T, callback) {
      if (callback == null) dart.nullFailed(I[73], 1282, 57, "callback");
      let implementation = this[_registerUnaryCallback];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, T, implementation.zone, parentDelegate, this, callback);
    }
    registerBinaryCallback(R, T1, T2, callback) {
      if (callback == null) dart.nullFailed(I[73], 1290, 9, "callback");
      let implementation = this[_registerBinaryCallback];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(R, T1, T2, implementation.zone, parentDelegate, this, callback);
    }
    errorCallback(error, stackTrace) {
      if (error == null) dart.nullFailed(I[73], 1297, 36, "error");
      _internal.checkNotNullable(core.Object, error, "error");
      let implementation = this[_errorCallback];
      let implementationZone = implementation.zone;
      if (implementationZone == async._rootZone) return null;
      let parentDelegate = implementationZone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementationZone, parentDelegate, this, error, stackTrace);
    }
    scheduleMicrotask(f) {
      if (f == null) dart.nullFailed(I[73], 1307, 31, "f");
      let implementation = this[_scheduleMicrotask];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, f);
    }
    createTimer(duration, f) {
      if (duration == null) dart.nullFailed(I[73], 1314, 30, "duration");
      if (f == null) dart.nullFailed(I[73], 1314, 45, "f");
      let implementation = this[_createTimer];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, duration, f);
    }
    createPeriodicTimer(duration, f) {
      if (duration == null) dart.nullFailed(I[73], 1321, 38, "duration");
      if (f == null) dart.nullFailed(I[73], 1321, 53, "f");
      let implementation = this[_createPeriodicTimer];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, duration, f);
    }
    print(line) {
      if (line == null) dart.nullFailed(I[73], 1328, 21, "line");
      let implementation = this[_print];
      let parentDelegate = implementation.zone[_parentDelegate];
      let handler = implementation.function;
      return handler(implementation.zone, parentDelegate, this, line);
    }
  };
  (async._CustomZone.new = function(parent, specification, _map) {
    if (parent == null) dart.nullFailed(I[73], 1078, 20, "parent");
    if (specification == null) dart.nullFailed(I[73], 1078, 46, "specification");
    if (_map == null) dart.nullFailed(I[73], 1078, 66, "_map");
    this[_delegateCache] = null;
    this[parent$] = parent;
    this[_map$2] = _map;
    this[_run$] = parent[_run];
    this[_runUnary$] = parent[_runUnary];
    this[_runBinary$] = parent[_runBinary];
    this[_registerCallback$] = parent[_registerCallback];
    this[_registerUnaryCallback$] = parent[_registerUnaryCallback];
    this[_registerBinaryCallback$] = parent[_registerBinaryCallback];
    this[_errorCallback$] = parent[_errorCallback];
    this[_scheduleMicrotask$] = parent[_scheduleMicrotask];
    this[_createTimer$] = parent[_createTimer];
    this[_createPeriodicTimer$] = parent[_createPeriodicTimer];
    this[_print$] = parent[_print];
    this[_fork$] = parent[_fork];
    this[_handleUncaughtError$] = parent[_handleUncaughtError];
    async._CustomZone.__proto__.new.call(this);
    let run = specification.run;
    if (run != null) {
      this[_run] = new async._RunNullaryZoneFunction.new(this, run);
    }
    let runUnary = specification.runUnary;
    if (runUnary != null) {
      this[_runUnary] = new async._RunUnaryZoneFunction.new(this, runUnary);
    }
    let runBinary = specification.runBinary;
    if (runBinary != null) {
      this[_runBinary] = new async._RunBinaryZoneFunction.new(this, runBinary);
    }
    let registerCallback = specification.registerCallback;
    if (registerCallback != null) {
      this[_registerCallback] = new async._RegisterNullaryZoneFunction.new(this, registerCallback);
    }
    let registerUnaryCallback = specification.registerUnaryCallback;
    if (registerUnaryCallback != null) {
      this[_registerUnaryCallback] = new async._RegisterUnaryZoneFunction.new(this, registerUnaryCallback);
    }
    let registerBinaryCallback = specification.registerBinaryCallback;
    if (registerBinaryCallback != null) {
      this[_registerBinaryCallback] = new async._RegisterBinaryZoneFunction.new(this, registerBinaryCallback);
    }
    let errorCallback = specification.errorCallback;
    if (errorCallback != null) {
      this[_errorCallback] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToAsyncErrorN()).new(this, errorCallback);
    }
    let scheduleMicrotask = specification.scheduleMicrotask;
    if (scheduleMicrotask != null) {
      this[_scheduleMicrotask] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid()).new(this, scheduleMicrotask);
    }
    let createTimer = specification.createTimer;
    if (createTimer != null) {
      this[_createTimer] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer()).new(this, createTimer);
    }
    let createPeriodicTimer = specification.createPeriodicTimer;
    if (createPeriodicTimer != null) {
      this[_createPeriodicTimer] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToTimer$1()).new(this, createPeriodicTimer);
    }
    let print = specification.print;
    if (print != null) {
      this[_print] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$1()).new(this, print);
    }
    let fork = specification.fork;
    if (fork != null) {
      this[_fork] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__ToZone()).new(this, fork);
    }
    let handleUncaughtError = specification.handleUncaughtError;
    if (handleUncaughtError != null) {
      this[_handleUncaughtError] = new (T$._ZoneFunctionOfZoneAndZoneDelegateAndZone__Tovoid$2()).new(this, handleUncaughtError);
    }
  }).prototype = async._CustomZone.prototype;
  dart.addTypeTests(async._CustomZone);
  dart.addTypeCaches(async._CustomZone);
  dart.setMethodSignature(async._CustomZone, () => ({
    __proto__: dart.getMethods(async._CustomZone.__proto__),
    runGuarded: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    runUnaryGuarded: dart.gFnType(T => [dart.void, [dart.fnType(dart.void, [T]), T]], T => [dart.nullable(core.Object)]),
    runBinaryGuarded: dart.gFnType((T1, T2) => [dart.void, [dart.fnType(dart.void, [T1, T2]), T1, T2]], (T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    bindUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindCallbackGuarded: dart.fnType(dart.fnType(dart.void, []), [dart.fnType(dart.void, [])]),
    bindUnaryCallbackGuarded: dart.gFnType(T => [dart.fnType(dart.void, [T]), [dart.fnType(dart.void, [T])]], T => [dart.nullable(core.Object)]),
    bindBinaryCallbackGuarded: dart.gFnType((T1, T2) => [dart.fnType(dart.void, [T1, T2]), [dart.fnType(dart.void, [T1, T2])]], (T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    _get: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    handleUncaughtError: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    fork: dart.fnType(async.Zone, [], {specification: dart.nullable(async.ZoneSpecification), zoneValues: dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))}, {}),
    run: dart.gFnType(R => [R, [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    runUnary: dart.gFnType((R, T) => [R, [dart.fnType(R, [T]), T]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    runBinary: dart.gFnType((R, T1, T2) => [R, [dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    errorCallback: dart.fnType(dart.nullable(async.AsyncError), [core.Object, dart.nullable(core.StackTrace)]),
    scheduleMicrotask: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    createTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [])]),
    createPeriodicTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [async.Timer])]),
    print: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(async._CustomZone, () => ({
    __proto__: dart.getGetters(async._CustomZone.__proto__),
    [_delegate]: async.ZoneDelegate,
    [_parentDelegate]: async.ZoneDelegate,
    errorZone: async.Zone
  }));
  dart.setLibraryUri(async._CustomZone, I[29]);
  dart.setFieldSignature(async._CustomZone, () => ({
    __proto__: dart.getFields(async._CustomZone.__proto__),
    [_run]: dart.fieldType(async._RunNullaryZoneFunction),
    [_runUnary]: dart.fieldType(async._RunUnaryZoneFunction),
    [_runBinary]: dart.fieldType(async._RunBinaryZoneFunction),
    [_registerCallback]: dart.fieldType(async._RegisterNullaryZoneFunction),
    [_registerUnaryCallback]: dart.fieldType(async._RegisterUnaryZoneFunction),
    [_registerBinaryCallback]: dart.fieldType(async._RegisterBinaryZoneFunction),
    [_errorCallback]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.nullable(async.AsyncError), [async.Zone, async.ZoneDelegate, async.Zone, core.Object, dart.nullable(core.StackTrace)]))),
    [_scheduleMicrotask]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])]))),
    [_createTimer]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])]))),
    [_createPeriodicTimer]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])]))),
    [_print]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]))),
    [_fork]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, dart.nullable(async.ZoneSpecification), dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))]))),
    [_handleUncaughtError]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]))),
    [_delegateCache]: dart.fieldType(dart.nullable(async.ZoneDelegate)),
    parent: dart.finalFieldType(async._Zone),
    [_map$3]: dart.finalFieldType(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))
  }));
  async._RootZone = class _RootZone extends async._Zone {
    get [_run]() {
      return C[45] || CT.C45;
    }
    get [_runUnary]() {
      return C[47] || CT.C47;
    }
    get [_runBinary]() {
      return C[49] || CT.C49;
    }
    get [_registerCallback]() {
      return C[51] || CT.C51;
    }
    get [_registerUnaryCallback]() {
      return C[53] || CT.C53;
    }
    get [_registerBinaryCallback]() {
      return C[55] || CT.C55;
    }
    get [_errorCallback]() {
      return C[57] || CT.C57;
    }
    get [_scheduleMicrotask]() {
      return C[59] || CT.C59;
    }
    get [_createTimer]() {
      return C[61] || CT.C61;
    }
    get [_createPeriodicTimer]() {
      return C[63] || CT.C63;
    }
    get [_print]() {
      return C[65] || CT.C65;
    }
    get [_fork]() {
      return C[67] || CT.C67;
    }
    get [_handleUncaughtError]() {
      return C[69] || CT.C69;
    }
    get parent() {
      return null;
    }
    get [_map$3]() {
      return async._RootZone._rootMap;
    }
    get [_delegate]() {
      let t131;
      t131 = async._RootZone._rootDelegate;
      return t131 == null ? async._RootZone._rootDelegate = new async._ZoneDelegate.new(this) : t131;
    }
    get [_parentDelegate]() {
      return this[_delegate];
    }
    get errorZone() {
      return this;
    }
    runGuarded(f) {
      if (f == null) dart.nullFailed(I[73], 1531, 24, "f");
      try {
        if (async._rootZone == async.Zone._current) {
          f();
          return;
        }
        async._rootRun(dart.void, null, null, this, f);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    runUnaryGuarded(T, f, arg) {
      if (f == null) dart.nullFailed(I[73], 1543, 32, "f");
      try {
        if (async._rootZone == async.Zone._current) {
          f(arg);
          return;
        }
        async._rootRunUnary(dart.void, T, null, null, this, f, arg);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    runBinaryGuarded(T1, T2, f, arg1, arg2) {
      if (f == null) dart.nullFailed(I[73], 1555, 38, "f");
      try {
        if (async._rootZone == async.Zone._current) {
          f(arg1, arg2);
          return;
        }
        async._rootRunBinary(dart.void, T1, T2, null, null, this, f, arg1, arg2);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this.handleUncaughtError(e, s);
        } else
          throw e$;
      }
    }
    bindCallback(R, f) {
      if (f == null) dart.nullFailed(I[73], 1567, 37, "f");
      return dart.fn(() => this.run(R, f), dart.fnType(R, []));
    }
    bindUnaryCallback(R, T, f) {
      if (f == null) dart.nullFailed(I[73], 1571, 53, "f");
      return dart.fn(arg => this.runUnary(R, T, f, arg), dart.fnType(R, [T]));
    }
    bindBinaryCallback(R, T1, T2, f) {
      if (f == null) dart.nullFailed(I[73], 1576, 9, "f");
      return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2, f, arg1, arg2), dart.fnType(R, [T1, T2]));
    }
    bindCallbackGuarded(f) {
      if (f == null) dart.nullFailed(I[73], 1580, 44, "f");
      return dart.fn(() => this.runGuarded(f), T$.VoidTovoid());
    }
    bindUnaryCallbackGuarded(T, f) {
      if (f == null) dart.nullFailed(I[73], 1584, 53, "f");
      return dart.fn(arg => this.runUnaryGuarded(T, f, arg), dart.fnType(dart.void, [T]));
    }
    bindBinaryCallbackGuarded(T1, T2, f) {
      if (f == null) dart.nullFailed(I[73], 1589, 12, "f");
      return dart.fn((arg1, arg2) => this.runBinaryGuarded(T1, T2, f, arg1, arg2), dart.fnType(dart.void, [T1, T2]));
    }
    _get(key) {
      return null;
    }
    handleUncaughtError(error, stackTrace) {
      if (error == null) dart.nullFailed(I[73], 1597, 35, "error");
      if (stackTrace == null) dart.nullFailed(I[73], 1597, 53, "stackTrace");
      async._rootHandleUncaughtError(null, null, this, error, stackTrace);
    }
    fork(opts) {
      let specification = opts && 'specification' in opts ? opts.specification : null;
      let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
      return async._rootFork(null, null, this, specification, zoneValues);
    }
    run(R, f) {
      if (f == null) dart.nullFailed(I[73], 1606, 14, "f");
      if (async.Zone._current == async._rootZone) return f();
      return async._rootRun(R, null, null, this, f);
    }
    runUnary(R, T, f, arg) {
      if (f == null) dart.nullFailed(I[73], 1612, 22, "f");
      if (async.Zone._current == async._rootZone) return f(arg);
      return async._rootRunUnary(R, T, null, null, this, f, arg);
    }
    runBinary(R, T1, T2, f, arg1, arg2) {
      if (f == null) dart.nullFailed(I[73], 1617, 28, "f");
      if (async.Zone._current == async._rootZone) return f(arg1, arg2);
      return async._rootRunBinary(R, T1, T2, null, null, this, f, arg1, arg2);
    }
    registerCallback(R, f) {
      if (f == null) dart.nullFailed(I[73], 1622, 41, "f");
      return f;
    }
    registerUnaryCallback(R, T, f) {
      if (f == null) dart.nullFailed(I[73], 1624, 57, "f");
      return f;
    }
    registerBinaryCallback(R, T1, T2, f) {
      if (f == null) dart.nullFailed(I[73], 1627, 13, "f");
      return f;
    }
    errorCallback(error, stackTrace) {
      if (error == null) dart.nullFailed(I[73], 1630, 36, "error");
      return null;
    }
    scheduleMicrotask(f) {
      if (f == null) dart.nullFailed(I[73], 1632, 31, "f");
      async._rootScheduleMicrotask(null, null, this, f);
    }
    createTimer(duration, f) {
      if (duration == null) dart.nullFailed(I[73], 1636, 30, "duration");
      if (f == null) dart.nullFailed(I[73], 1636, 45, "f");
      return async.Timer._createTimer(duration, f);
    }
    createPeriodicTimer(duration, f) {
      if (duration == null) dart.nullFailed(I[73], 1640, 38, "duration");
      if (f == null) dart.nullFailed(I[73], 1640, 53, "f");
      return async.Timer._createPeriodicTimer(duration, f);
    }
    print(line) {
      if (line == null) dart.nullFailed(I[73], 1644, 21, "line");
      _internal.printToConsole(line);
    }
  };
  (async._RootZone.new = function() {
    async._RootZone.__proto__.new.call(this);
    ;
  }).prototype = async._RootZone.prototype;
  dart.addTypeTests(async._RootZone);
  dart.addTypeCaches(async._RootZone);
  dart.setMethodSignature(async._RootZone, () => ({
    __proto__: dart.getMethods(async._RootZone.__proto__),
    runGuarded: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    runUnaryGuarded: dart.gFnType(T => [dart.void, [dart.fnType(dart.void, [T]), T]], T => [dart.nullable(core.Object)]),
    runBinaryGuarded: dart.gFnType((T1, T2) => [dart.void, [dart.fnType(dart.void, [T1, T2]), T1, T2]], (T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    bindUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    bindCallbackGuarded: dart.fnType(dart.fnType(dart.void, []), [dart.fnType(dart.void, [])]),
    bindUnaryCallbackGuarded: dart.gFnType(T => [dart.fnType(dart.void, [T]), [dart.fnType(dart.void, [T])]], T => [dart.nullable(core.Object)]),
    bindBinaryCallbackGuarded: dart.gFnType((T1, T2) => [dart.fnType(dart.void, [T1, T2]), [dart.fnType(dart.void, [T1, T2])]], (T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    _get: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    handleUncaughtError: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    fork: dart.fnType(async.Zone, [], {specification: dart.nullable(async.ZoneSpecification), zoneValues: dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))}, {}),
    run: dart.gFnType(R => [R, [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    runUnary: dart.gFnType((R, T) => [R, [dart.fnType(R, [T]), T]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    runBinary: dart.gFnType((R, T1, T2) => [R, [dart.fnType(R, [T1, T2]), T1, T2]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]], R => [dart.nullable(core.Object)]),
    registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]], (R, T) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]], (R, T1, T2) => [dart.nullable(core.Object), dart.nullable(core.Object), dart.nullable(core.Object)]),
    errorCallback: dart.fnType(dart.nullable(async.AsyncError), [core.Object, dart.nullable(core.StackTrace)]),
    scheduleMicrotask: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    createTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [])]),
    createPeriodicTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [async.Timer])]),
    print: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(async._RootZone, () => ({
    __proto__: dart.getGetters(async._RootZone.__proto__),
    [_run]: async._RunNullaryZoneFunction,
    [_runUnary]: async._RunUnaryZoneFunction,
    [_runBinary]: async._RunBinaryZoneFunction,
    [_registerCallback]: async._RegisterNullaryZoneFunction,
    [_registerUnaryCallback]: async._RegisterUnaryZoneFunction,
    [_registerBinaryCallback]: async._RegisterBinaryZoneFunction,
    [_errorCallback]: async._ZoneFunction$(dart.fnType(dart.nullable(async.AsyncError), [async.Zone, async.ZoneDelegate, async.Zone, core.Object, dart.nullable(core.StackTrace)])),
    [_scheduleMicrotask]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])])),
    [_createTimer]: async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])])),
    [_createPeriodicTimer]: async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])])),
    [_print]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])),
    [_fork]: async._ZoneFunction$(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, dart.nullable(async.ZoneSpecification), dart.nullable(core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)))])),
    [_handleUncaughtError]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])),
    parent: dart.nullable(async._Zone),
    [_map$3]: core.Map$(dart.nullable(core.Object), dart.nullable(core.Object)),
    [_delegate]: async.ZoneDelegate,
    [_parentDelegate]: async.ZoneDelegate,
    errorZone: async.Zone
  }));
  dart.setLibraryUri(async._RootZone, I[29]);
  dart.defineLazy(async._RootZone, {
    /*async._RootZone._rootMap*/get _rootMap() {
      return new _js_helper.LinkedMap.new();
    },
    /*async._RootZone._rootDelegate*/get _rootDelegate() {
      return null;
    },
    set _rootDelegate(_) {}
  }, false);
  async.async = function _async(T, initGenerator) {
    if (initGenerator == null) dart.nullFailed(I[61], 25, 22, "initGenerator");
    let iter = null;
    let onValue = null;
    let onValue$35isSet = false;
    function onValue$35get() {
      return onValue$35isSet ? onValue : dart.throw(new _internal.LateError.localNI("onValue"));
    }
    function onValue$35set(t137) {
      if (t137 == null) dart.nullFailed(I[61], 27, 34, "null");
      onValue$35isSet = true;
      return onValue = t137;
    }
    let onError = null;
    let onError$35isSet = false;
    function onError$35get() {
      return onError$35isSet ? onError : dart.throw(new _internal.LateError.localNI("onError"));
    }
    function onError$35set(t142) {
      if (t142 == null) dart.nullFailed(I[61], 28, 45, "null");
      onError$35isSet = true;
      return onError = t142;
    }
    function onAwait(value) {
      let f = null;
      if (async._Future.is(value)) {
        f = value;
      } else if (async.Future.is(value)) {
        f = new (T$._FutureOfObjectN()).new();
        f[_chainForeignFuture](value);
      } else {
        f = new (T$._FutureOfObjectN()).value(value);
      }
      f = f[_thenAwait](T$.ObjectN(), onValue$35get(), onError$35get());
      return f;
    }
    onValue$35set(value => {
      let iteratorResult = iter.next(value);
      value = iteratorResult.value;
      return iteratorResult.done ? value : onAwait(value);
    });
    onError$35set((value, stackTrace) => {
      if (value == null) dart.nullFailed(I[61], 58, 14, "value");
      let iteratorResult = iter.throw(dart.createErrorWithStack(value, stackTrace));
      value = iteratorResult.value;
      return iteratorResult.done ? value : onAwait(value);
    });
    let zone = async.Zone.current;
    if (zone != async._rootZone) {
      onValue$35set(zone.registerUnaryCallback(T$.ObjectN(), T$.ObjectN(), onValue$35get()));
      onError$35set(zone.registerBinaryCallback(core.Object, core.Object, T$.StackTraceN(), onError$35get()));
    }
    let asyncFuture = new (async._Future$(T)).new();
    let isRunningAsEvent = false;
    function runBody() {
      try {
        iter = initGenerator()[Symbol.iterator]();
        let iteratorValue = iter.next(null);
        let value = iteratorValue.value;
        if (iteratorValue.done) {
          if (async.Future.is(value)) {
            if (async._Future.is(value)) {
              async._Future._chainCoreFuture(value, asyncFuture);
            } else {
              asyncFuture[_chainForeignFuture](value);
            }
          } else if (isRunningAsEvent) {
            asyncFuture[_completeWithValue](value);
          } else {
            asyncFuture[_asyncComplete](value);
          }
        } else {
          async._Future._chainCoreFuture(onAwait(value), asyncFuture);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          if (isRunningAsEvent) {
            async._completeWithErrorCallback(asyncFuture, e, s);
          } else {
            async._asyncCompleteWithErrorCallback(asyncFuture, e, s);
          }
        } else
          throw e$;
      }
    }
    if (dart.test(dart.startAsyncSynchronously)) {
      runBody();
      isRunningAsEvent = true;
    } else {
      isRunningAsEvent = true;
      async.scheduleMicrotask(runBody);
    }
    return asyncFuture;
  };
  async._invokeErrorHandler = function _invokeErrorHandler(errorHandler, error, stackTrace) {
    if (errorHandler == null) dart.nullFailed(I[62], 37, 14, "errorHandler");
    if (error == null) dart.nullFailed(I[62], 37, 35, "error");
    if (stackTrace == null) dart.nullFailed(I[62], 37, 53, "stackTrace");
    let handler = errorHandler;
    if (T$.NeverAndNeverTodynamic().is(handler)) {
      return dart.dcall(errorHandler, [error, stackTrace]);
    } else {
      return dart.dcall(errorHandler, [error]);
    }
  };
  async['FutureExtensions|onError'] = function FutureExtensions$124onError(T, E, $this, handleError, opts) {
    if ($this == null) dart.nullFailed(I[67], 763, 13, "#this");
    if (handleError == null) dart.nullFailed(I[67], 764, 19, "handleError");
    let test = opts && 'test' in opts ? opts.test : null;
    return $this.catchError(dart.fn((error, stackTrace) => {
      if (error == null) dart.nullFailed(I[67], 769, 17, "error");
      if (stackTrace == null) dart.nullFailed(I[67], 769, 35, "stackTrace");
      return handleError(E.as(error), stackTrace);
    }, dart.fnType(async.FutureOr$(T), [core.Object, core.StackTrace])), {test: dart.fn(error => {
        if (error == null) dart.nullFailed(I[67], 771, 23, "error");
        return E.is(error) && (test == null || dart.test(test(error)));
      }, T$.ObjectTobool())});
  };
  async['FutureExtensions|get#onError'] = function FutureExtensions$124get$35onError(T, $this) {
    if ($this == null) dart.nullFailed(I[67], 763, 13, "#this");
    return dart.fn((E, handleError, opts) => {
      if (handleError == null) dart.nullFailed(I[67], 764, 19, "handleError");
      let test = opts && 'test' in opts ? opts.test : null;
      return async['FutureExtensions|onError'](T, E, $this, handleError, {test: test});
    }, dart.gFnType(E => {
      var ETobool = () => (ETobool = dart.constFn(dart.fnType(core.bool, [E])))();
      var EToNbool = () => (EToNbool = dart.constFn(dart.nullable(ETobool())))();
      return [async.Future$(T), [dart.fnType(async.FutureOr$(T), [E, core.StackTrace])], {test: EToNbool()}, {}];
    }, E => {
      var ETobool = () => (ETobool = dart.constFn(dart.fnType(core.bool, [E])))();
      var EToNbool = () => (EToNbool = dart.constFn(dart.nullable(ETobool())))();
      return [core.Object];
    }));
  };
  async._completeWithErrorCallback = function _completeWithErrorCallback(result, error, stackTrace) {
    if (result == null) dart.nullFailed(I[67], 963, 13, "result");
    if (error == null) dart.nullFailed(I[67], 963, 28, "error");
    let replacement = async.Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = replacement.error;
      stackTrace = replacement.stackTrace;
    } else {
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
    }
    if (stackTrace == null) dart.throw("unreachable");
    result[_completeError](error, stackTrace);
  };
  async._asyncCompleteWithErrorCallback = function _asyncCompleteWithErrorCallback(result, error, stackTrace) {
    if (result == null) dart.nullFailed(I[67], 977, 13, "result");
    if (error == null) dart.nullFailed(I[67], 977, 28, "error");
    let replacement = async.Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = replacement.error;
      stackTrace = replacement.stackTrace;
    } else {
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
    }
    if (stackTrace == null) {
      dart.throw("unreachable");
    }
    result[_asyncCompleteError](error, stackTrace);
  };
  async._registerErrorHandler = function _registerErrorHandler(errorHandler, zone) {
    if (errorHandler == null) dart.nullFailed(I[68], 837, 41, "errorHandler");
    if (zone == null) dart.nullFailed(I[68], 837, 60, "zone");
    if (T$.ObjectAndStackTraceTodynamic().is(errorHandler)) {
      return zone.registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, errorHandler);
    }
    if (T$.ObjectTodynamic().is(errorHandler)) {
      return zone.registerUnaryCallback(dart.dynamic, core.Object, errorHandler);
    }
    dart.throw(new core.ArgumentError.value(errorHandler, "onError", "Error handler must accept one Object or one Object and a StackTrace" + " as arguments, and return a valid result"));
  };
  async._microtaskLoop = function _microtaskLoop() {
    for (let entry = async._nextCallback; entry != null; entry = async._nextCallback) {
      async._lastPriorityCallback = null;
      let next = entry.next;
      async._nextCallback = next;
      if (next == null) async._lastCallback = null;
      entry.callback();
    }
  };
  async._startMicrotaskLoop = function _startMicrotaskLoop() {
    async._isInCallbackLoop = true;
    try {
      async._microtaskLoop();
    } finally {
      async._lastPriorityCallback = null;
      async._isInCallbackLoop = false;
      if (async._nextCallback != null) {
        async._AsyncRun._scheduleImmediate(C[71] || CT.C71);
      }
    }
  };
  async._scheduleAsyncCallback = function _scheduleAsyncCallback(callback) {
    if (callback == null) dart.nullFailed(I[69], 63, 44, "callback");
    let newEntry = new async._AsyncCallbackEntry.new(callback);
    let lastCallback = async._lastCallback;
    if (lastCallback == null) {
      async._nextCallback = async._lastCallback = newEntry;
      if (!dart.test(async._isInCallbackLoop)) {
        async._AsyncRun._scheduleImmediate(C[71] || CT.C71);
      }
    } else {
      lastCallback.next = newEntry;
      async._lastCallback = newEntry;
    }
  };
  async._schedulePriorityAsyncCallback = function _schedulePriorityAsyncCallback(callback) {
    if (callback == null) dart.nullFailed(I[69], 83, 52, "callback");
    if (async._nextCallback == null) {
      async._scheduleAsyncCallback(callback);
      async._lastPriorityCallback = async._lastCallback;
      return;
    }
    let entry = new async._AsyncCallbackEntry.new(callback);
    let lastPriorityCallback = async._lastPriorityCallback;
    if (lastPriorityCallback == null) {
      entry.next = async._nextCallback;
      async._nextCallback = async._lastPriorityCallback = entry;
    } else {
      let next = lastPriorityCallback.next;
      entry.next = next;
      lastPriorityCallback.next = entry;
      async._lastPriorityCallback = entry;
      if (next == null) {
        async._lastCallback = entry;
      }
    }
  };
  async.scheduleMicrotask = function scheduleMicrotask(callback) {
    if (callback == null) dart.nullFailed(I[69], 129, 40, "callback");
    let currentZone = async.Zone._current;
    if (async._rootZone == currentZone) {
      async._rootScheduleMicrotask(null, null, async._rootZone, callback);
      return;
    }
    let implementation = currentZone[_scheduleMicrotask];
    if (async._rootZone == implementation.zone && dart.test(async._rootZone.inSameErrorZone(currentZone))) {
      async._rootScheduleMicrotask(null, null, currentZone, currentZone.registerCallback(dart.void, callback));
      return;
    }
    async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallbackGuarded(callback));
  };
  async._runGuarded = function _runGuarded(notificationHandler) {
    if (notificationHandler == null) return;
    try {
      notificationHandler();
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (core.Object.is(e)) {
        async.Zone.current.handleUncaughtError(e, s);
      } else
        throw e$;
    }
  };
  async._nullDataHandler = function _nullDataHandler(value) {
  };
  async._nullErrorHandler = function _nullErrorHandler(error, stackTrace) {
    if (error == null) dart.nullFailed(I[65], 570, 31, "error");
    if (stackTrace == null) dart.nullFailed(I[65], 570, 49, "stackTrace");
    async.Zone.current.handleUncaughtError(error, stackTrace);
  };
  async._nullDoneHandler = function _nullDoneHandler() {
  };
  async._runUserCode = function _runUserCode(T, userCode, onSuccess, onError) {
    if (userCode == null) dart.nullFailed(I[70], 8, 19, "userCode");
    if (onSuccess == null) dart.nullFailed(I[70], 8, 31, "onSuccess");
    if (onError == null) dart.nullFailed(I[70], 9, 5, "onError");
    try {
      onSuccess(userCode());
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (core.Object.is(e)) {
        let replacement = async.Zone.current.errorCallback(e, s);
        if (replacement == null) {
          onError(e, s);
        } else {
          let error = replacement.error;
          let stackTrace = replacement.stackTrace;
          onError(error, stackTrace);
        }
      } else
        throw e$;
    }
  };
  async._cancelAndError = function _cancelAndError(subscription, future, error, stackTrace) {
    if (subscription == null) dart.nullFailed(I[70], 26, 41, "subscription");
    if (future == null) dart.nullFailed(I[70], 26, 63, "future");
    if (error == null) dart.nullFailed(I[70], 27, 12, "error");
    if (stackTrace == null) dart.nullFailed(I[70], 27, 30, "stackTrace");
    let cancelFuture = subscription.cancel();
    if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
      cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), T$.VoidTovoid()));
    } else {
      future[_completeError](error, stackTrace);
    }
  };
  async._cancelAndErrorWithReplacement = function _cancelAndErrorWithReplacement(subscription, future, error, stackTrace) {
    if (subscription == null) dart.nullFailed(I[70], 36, 56, "subscription");
    if (future == null) dart.nullFailed(I[70], 37, 13, "future");
    if (error == null) dart.nullFailed(I[70], 37, 28, "error");
    if (stackTrace == null) dart.nullFailed(I[70], 37, 46, "stackTrace");
    let replacement = async.Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = replacement.error;
      stackTrace = replacement.stackTrace;
    }
    async._cancelAndError(subscription, future, error, stackTrace);
  };
  async._cancelAndErrorClosure = function _cancelAndErrorClosure(subscription, future) {
    if (subscription == null) dart.nullFailed(I[70], 48, 24, "subscription");
    if (future == null) dart.nullFailed(I[70], 48, 46, "future");
    return dart.fn((error, stackTrace) => {
      if (error == null) dart.nullFailed(I[70], 49, 18, "error");
      if (stackTrace == null) dart.nullFailed(I[70], 49, 36, "stackTrace");
      async._cancelAndError(subscription, future, error, stackTrace);
    }, T$.ObjectAndStackTraceTovoid());
  };
  async._cancelAndValue = function _cancelAndValue(subscription, future, value) {
    if (subscription == null) dart.nullFailed(I[70], 56, 41, "subscription");
    if (future == null) dart.nullFailed(I[70], 56, 63, "future");
    let cancelFuture = subscription.cancel();
    if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
      cancelFuture.whenComplete(dart.fn(() => future[_complete](value), T$.VoidTovoid()));
    } else {
      future[_complete](value);
    }
  };
  async._addErrorWithReplacement = function _addErrorWithReplacement(sink, error, stackTrace) {
    if (sink == null) dart.nullFailed(I[70], 170, 16, "sink");
    if (error == null) dart.nullFailed(I[70], 170, 29, "error");
    if (stackTrace == null) dart.nullFailed(I[70], 170, 47, "stackTrace");
    let replacement = async.Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = replacement.error;
      stackTrace = replacement.stackTrace;
    }
    sink[_addError](error, stackTrace);
  };
  async._rootHandleUncaughtError = function _rootHandleUncaughtError(self, parent, zone, error, stackTrace) {
    if (zone == null) dart.nullFailed(I[73], 1336, 70, "zone");
    if (error == null) dart.nullFailed(I[73], 1337, 12, "error");
    if (stackTrace == null) dart.nullFailed(I[73], 1337, 30, "stackTrace");
    async._schedulePriorityAsyncCallback(dart.fn(() => {
      async._rethrow(error, stackTrace);
    }, T$.VoidTovoid()));
  };
  async._rethrow = function _rethrow(error, stackTrace) {
    if (error == null) dart.nullFailed(I[61], 199, 22, "error");
    if (stackTrace == null) dart.nullFailed(I[61], 199, 40, "stackTrace");
    throw dart.createErrorWithStack(error, stackTrace);
  };
  async._rootRun = function _rootRun(R, self, parent, zone, f) {
    if (zone == null) dart.nullFailed(I[73], 1345, 54, "zone");
    if (f == null) dart.nullFailed(I[73], 1345, 62, "f");
    if (async.Zone._current == zone) return f();
    if (!async._Zone.is(zone)) {
      dart.throw(new core.ArgumentError.value(zone, "zone", "Can only run in platform zones"));
    }
    let old = async.Zone._enter(zone);
    try {
      return f();
    } finally {
      async.Zone._leave(old);
    }
  };
  async._rootRunUnary = function _rootRunUnary(R, T, self, parent, zone, f, arg) {
    if (zone == null) dart.nullFailed(I[73], 1361, 44, "zone");
    if (f == null) dart.nullFailed(I[73], 1361, 52, "f");
    if (async.Zone._current == zone) return f(arg);
    if (!async._Zone.is(zone)) {
      dart.throw(new core.ArgumentError.value(zone, "zone", "Can only run in platform zones"));
    }
    let old = async.Zone._enter(zone);
    try {
      return f(arg);
    } finally {
      async.Zone._leave(old);
    }
  };
  async._rootRunBinary = function _rootRunBinary(R, T1, T2, self, parent, zone, f, arg1, arg2) {
    if (zone == null) dart.nullFailed(I[73], 1376, 68, "zone");
    if (f == null) dart.nullFailed(I[73], 1377, 7, "f");
    if (async.Zone._current == zone) return f(arg1, arg2);
    if (!async._Zone.is(zone)) {
      dart.throw(new core.ArgumentError.value(zone, "zone", "Can only run in platform zones"));
    }
    let old = async.Zone._enter(zone);
    try {
      return f(arg1, arg2);
    } finally {
      async.Zone._leave(old);
    }
  };
  async._rootRegisterCallback = function _rootRegisterCallback(R, self, parent, zone, f) {
    if (self == null) dart.nullFailed(I[73], 1393, 10, "self");
    if (parent == null) dart.nullFailed(I[73], 1393, 29, "parent");
    if (zone == null) dart.nullFailed(I[73], 1393, 42, "zone");
    if (f == null) dart.nullFailed(I[73], 1393, 50, "f");
    return f;
  };
  async._rootRegisterUnaryCallback = function _rootRegisterUnaryCallback(R, T, self, parent, zone, f) {
    if (self == null) dart.nullFailed(I[73], 1398, 10, "self");
    if (parent == null) dart.nullFailed(I[73], 1398, 29, "parent");
    if (zone == null) dart.nullFailed(I[73], 1398, 42, "zone");
    if (f == null) dart.nullFailed(I[73], 1398, 50, "f");
    return f;
  };
  async._rootRegisterBinaryCallback = function _rootRegisterBinaryCallback(R, T1, T2, self, parent, zone, f) {
    if (self == null) dart.nullFailed(I[73], 1403, 10, "self");
    if (parent == null) dart.nullFailed(I[73], 1403, 29, "parent");
    if (zone == null) dart.nullFailed(I[73], 1403, 42, "zone");
    if (f == null) dart.nullFailed(I[73], 1403, 50, "f");
    return f;
  };
  async._rootErrorCallback = function _rootErrorCallback(self, parent, zone, error, stackTrace) {
    if (self == null) dart.nullFailed(I[73], 1407, 37, "self");
    if (parent == null) dart.nullFailed(I[73], 1407, 56, "parent");
    if (zone == null) dart.nullFailed(I[73], 1407, 69, "zone");
    if (error == null) dart.nullFailed(I[73], 1408, 16, "error");
    return null;
  };
  async._rootScheduleMicrotask = function _rootScheduleMicrotask(self, parent, zone, f) {
    if (zone == null) dart.nullFailed(I[73], 1412, 44, "zone");
    if (f == null) dart.nullFailed(I[73], 1412, 55, "f");
    if (async._rootZone != zone) {
      let hasErrorHandler = !dart.test(async._rootZone.inSameErrorZone(zone));
      if (hasErrorHandler) {
        f = zone.bindCallbackGuarded(f);
      } else {
        f = zone.bindCallback(dart.void, f);
      }
    }
    async._scheduleAsyncCallback(f);
  };
  async._rootCreateTimer = function _rootCreateTimer(self, parent, zone, duration, callback) {
    if (self == null) dart.nullFailed(I[73], 1424, 29, "self");
    if (parent == null) dart.nullFailed(I[73], 1424, 48, "parent");
    if (zone == null) dart.nullFailed(I[73], 1424, 61, "zone");
    if (duration == null) dart.nullFailed(I[73], 1425, 14, "duration");
    if (callback == null) dart.nullFailed(I[73], 1425, 40, "callback");
    if (async._rootZone != zone) {
      callback = zone.bindCallback(dart.void, callback);
    }
    return async.Timer._createTimer(duration, callback);
  };
  async._rootCreatePeriodicTimer = function _rootCreatePeriodicTimer(self, parent, zone, duration, callback) {
    if (self == null) dart.nullFailed(I[73], 1432, 37, "self");
    if (parent == null) dart.nullFailed(I[73], 1432, 56, "parent");
    if (zone == null) dart.nullFailed(I[73], 1432, 69, "zone");
    if (duration == null) dart.nullFailed(I[73], 1433, 14, "duration");
    if (callback == null) dart.nullFailed(I[73], 1433, 29, "callback");
    if (async._rootZone != zone) {
      callback = zone.bindUnaryCallback(dart.void, async.Timer, callback);
    }
    return async.Timer._createPeriodicTimer(duration, callback);
  };
  async._rootPrint = function _rootPrint(self, parent, zone, line) {
    if (self == null) dart.nullFailed(I[73], 1440, 22, "self");
    if (parent == null) dart.nullFailed(I[73], 1440, 41, "parent");
    if (zone == null) dart.nullFailed(I[73], 1440, 54, "zone");
    if (line == null) dart.nullFailed(I[73], 1440, 67, "line");
    _internal.printToConsole(line);
  };
  async._printToZone = function _printToZone(line) {
    if (line == null) dart.nullFailed(I[73], 1444, 26, "line");
    async.Zone.current.print(line);
  };
  async._rootFork = function _rootFork(self, parent, zone, specification, zoneValues) {
    if (zone == null) dart.nullFailed(I[73], 1448, 55, "zone");
    if (!async._Zone.is(zone)) {
      dart.throw(new core.ArgumentError.value(zone, "zone", "Can only fork a platform zone"));
    }
    _internal.printToZone = C[72] || CT.C72;
    if (specification == null) {
      specification = C[73] || CT.C73;
    } else if (!async._ZoneSpecification.is(specification)) {
      specification = async.ZoneSpecification.from(specification);
    }
    let valueMap = null;
    if (zoneValues == null) {
      valueMap = zone[_map$3];
    } else {
      valueMap = T$.HashMapOfObjectN$ObjectN().from(zoneValues);
    }
    if (specification == null) dart.throw("unreachable");
    return new async._CustomZone.new(zone, specification, valueMap);
  };
  async.runZoned = function runZoned(R, body, opts) {
    if (body == null) dart.nullFailed(I[73], 1692, 17, "body");
    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
    let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
    let onError = opts && 'onError' in opts ? opts.onError : null;
    _internal.checkNotNullable(dart.fnType(R, []), body, "body");
    if (onError != null) {
      if (!T$.ObjectAndStackTraceTovoid().is(onError)) {
        if (T$.ObjectTovoid().is(onError)) {
          let originalOnError = onError;
          onError = dart.fn((error, stack) => {
            if (error == null) dart.nullFailed(I[73], 1702, 27, "error");
            if (stack == null) dart.nullFailed(I[73], 1702, 45, "stack");
            return originalOnError(error);
          }, T$.ObjectAndStackTraceTovoid());
        } else {
          dart.throw(new core.ArgumentError.value(onError, "onError", "Must be Function(Object) or Function(Object, StackTrace)"));
        }
      }
      return R.as(async.runZonedGuarded(R, body, onError, {zoneSpecification: zoneSpecification, zoneValues: zoneValues}));
    }
    return async._runZoned(R, body, zoneValues, zoneSpecification);
  };
  async.runZonedGuarded = function runZonedGuarded(R, body, onError, opts) {
    if (body == null) dart.nullFailed(I[73], 1752, 25, "body");
    if (onError == null) dart.nullFailed(I[73], 1752, 38, "onError");
    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
    let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
    _internal.checkNotNullable(dart.fnType(R, []), body, "body");
    _internal.checkNotNullable(T$.ObjectAndStackTraceTovoid(), onError, "onError");
    let parentZone = async.Zone._current;
    let errorHandler = dart.fn((self, parent, zone, error, stackTrace) => {
      if (self == null) dart.nullFailed(I[73], 1757, 51, "self");
      if (parent == null) dart.nullFailed(I[73], 1757, 70, "parent");
      if (zone == null) dart.nullFailed(I[73], 1758, 12, "zone");
      if (error == null) dart.nullFailed(I[73], 1758, 25, "error");
      if (stackTrace == null) dart.nullFailed(I[73], 1758, 43, "stackTrace");
      try {
        parentZone.runBinary(dart.void, core.Object, core.StackTrace, onError, error, stackTrace);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          if (core.identical(e, error)) {
            parent.handleUncaughtError(zone, error, stackTrace);
          } else {
            parent.handleUncaughtError(zone, e, s);
          }
        } else
          throw e$;
      }
    }, T$.ZoneAndZoneDelegateAndZone__Tovoid$2());
    if (zoneSpecification == null) {
      zoneSpecification = new async._ZoneSpecification.new({handleUncaughtError: errorHandler});
    } else {
      zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler});
    }
    try {
      return async._runZoned(R, body, zoneValues, zoneSpecification);
    } catch (e) {
      let error = dart.getThrown(e);
      let stackTrace = dart.stackTrace(e);
      if (core.Object.is(error)) {
        onError(error, stackTrace);
      } else
        throw e;
    }
    return null;
  };
  async._runZoned = function _runZoned(R, body, zoneValues, specification) {
    if (body == null) dart.nullFailed(I[73], 1785, 18, "body");
    return async.Zone.current.fork({specification: specification, zoneValues: zoneValues}).run(R, body);
  };
  dart.defineLazy(async, {
    /*async._nextCallback*/get _nextCallback() {
      return null;
    },
    set _nextCallback(_) {},
    /*async._lastCallback*/get _lastCallback() {
      return null;
    },
    set _lastCallback(_) {},
    /*async._lastPriorityCallback*/get _lastPriorityCallback() {
      return null;
    },
    set _lastPriorityCallback(_) {},
    /*async._isInCallbackLoop*/get _isInCallbackLoop() {
      return false;
    },
    set _isInCallbackLoop(_) {},
    /*async._rootZone*/get _rootZone() {
      return C[44] || CT.C44;
    }
  }, false);
  var _map$4 = dart.privateName(collection, "_HashSet._map");
  var _modifications$2 = dart.privateName(collection, "_HashSet._modifications");
  var _keyMap$ = dart.privateName(collection, "_keyMap");
  var _map$5 = dart.privateName(collection, "_map");
  var _modifications$3 = dart.privateName(collection, "_modifications");
  var _newSet = dart.privateName(collection, "_newSet");
  var _newSimilarSet = dart.privateName(collection, "_newSimilarSet");
  const _is_SetMixin_default = Symbol('_is_SetMixin_default');
  collection.SetMixin$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var FollowedByIterableOfE = () => (FollowedByIterableOfE = dart.constFn(_internal.FollowedByIterable$(E)))();
    var SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
    var TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
    var SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
    var SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var ETodynamic = () => (ETodynamic = dart.constFn(dart.fnType(dart.dynamic, [E])))();
    class SetMixin extends core.Object {
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
      get isEmpty() {
        return this.length === 0;
      }
      get isNotEmpty() {
        return this.length !== 0;
      }
      cast(R) {
        return core.Set.castFrom(E, R, this);
      }
      followedBy(other) {
        IterableOfE().as(other);
        if (other == null) dart.nullFailed(I[75], 47, 38, "other");
        return FollowedByIterableOfE().firstEfficient(this, other);
      }
      whereType(T) {
        return new (_internal.WhereTypeIterable$(T)).new(this);
      }
      clear() {
        this.removeAll(this.toList());
      }
      addAll(elements) {
        IterableOfE().as(elements);
        if (elements == null) dart.nullFailed(I[75], 56, 27, "elements");
        for (let element of elements)
          this.add(element);
      }
      removeAll(elements) {
        if (elements == null) dart.nullFailed(I[75], 60, 36, "elements");
        for (let element of elements)
          this.remove(element);
      }
      retainAll(elements) {
        if (elements == null) dart.nullFailed(I[75], 64, 36, "elements");
        let toRemove = this.toSet();
        for (let o of elements) {
          toRemove.remove(o);
        }
        this.removeAll(toRemove);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[75], 74, 25, "test");
        let toRemove = T$.JSArrayOfObjectN().of([]);
        for (let element of this) {
          if (dart.test(test(element))) toRemove[$add](element);
        }
        this.removeAll(toRemove);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[75], 82, 25, "test");
        let toRemove = T$.JSArrayOfObjectN().of([]);
        for (let element of this) {
          if (!dart.test(test(element))) toRemove[$add](element);
        }
        this.removeAll(toRemove);
      }
      containsAll(other) {
        if (other == null) dart.nullFailed(I[75], 90, 38, "other");
        for (let o of other) {
          if (!dart.test(this.contains(o))) return false;
        }
        return true;
      }
      union(other) {
        let t151;
        SetOfE().as(other);
        if (other == null) dart.nullFailed(I[75], 97, 23, "other");
        t151 = this.toSet();
        return (() => {
          t151.addAll(other);
          return t151;
        })();
      }
      intersection(other) {
        if (other == null) dart.nullFailed(I[75], 101, 36, "other");
        let result = this.toSet();
        for (let element of this) {
          if (!dart.test(other.contains(element))) result.remove(element);
        }
        return result;
      }
      difference(other) {
        if (other == null) dart.nullFailed(I[75], 109, 34, "other");
        let result = this.toSet();
        for (let element of this) {
          if (dart.test(other.contains(element))) result.remove(element);
        }
        return result;
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[75], 117, 24, "growable");
        return ListOfE().of(this, {growable: growable});
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[75], 120, 24, "f");
        return new (_internal.EfficientLengthMappedIterable$(E, T)).new(this, f);
      }
      get single() {
        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
        let it = this.iterator;
        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
        let result = it.current;
        return result;
      }
      toString() {
        return collection.IterableBase.iterableToFullString(this, "{", "}");
      }
      where(f) {
        if (f == null) dart.nullFailed(I[75], 136, 26, "f");
        return new (WhereIterableOfE()).new(this, f);
      }
      expand(T, f) {
        if (f == null) dart.nullFailed(I[75], 138, 37, "f");
        return new (_internal.ExpandIterable$(E, T)).new(this, f);
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[75], 141, 21, "f");
        for (let element of this)
          f(element);
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[75], 145, 14, "combine");
        let iterator = this.iterator;
        if (!dart.test(iterator.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let value = iterator.current;
        while (dart.test(iterator.moveNext())) {
          value = combine(value, iterator.current);
        }
        return value;
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[75], 157, 31, "combine");
        let value = initialValue;
        for (let element of this)
          value = combine(value, element);
        return value;
      }
      every(f) {
        if (f == null) dart.nullFailed(I[75], 163, 19, "f");
        for (let element of this) {
          if (!dart.test(f(element))) return false;
        }
        return true;
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[75], 170, 23, "separator");
        let iterator = this.iterator;
        if (!dart.test(iterator.moveNext())) return "";
        let buffer = new core.StringBuffer.new();
        if (separator == null || separator === "") {
          do {
            buffer.write(iterator.current);
          } while (dart.test(iterator.moveNext()));
        } else {
          buffer.write(iterator.current);
          while (dart.test(iterator.moveNext())) {
            buffer.write(separator);
            buffer.write(iterator.current);
          }
        }
        return buffer.toString();
      }
      any(test) {
        if (test == null) dart.nullFailed(I[75], 188, 17, "test");
        for (let element of this) {
          if (dart.test(test(element))) return true;
        }
        return false;
      }
      take(n) {
        if (n == null) dart.nullFailed(I[75], 195, 24, "n");
        return TakeIterableOfE().new(this, n);
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[75], 199, 30, "test");
        return new (TakeWhileIterableOfE()).new(this, test);
      }
      skip(n) {
        if (n == null) dart.nullFailed(I[75], 203, 24, "n");
        return SkipIterableOfE().new(this, n);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[75], 207, 30, "test");
        return new (SkipWhileIterableOfE()).new(this, test);
      }
      get first() {
        let it = this.iterator;
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        return it.current;
      }
      get last() {
        let it = this.iterator;
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let result = null;
        do {
          result = it.current;
        } while (dart.test(it.moveNext()));
        return result;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[75], 231, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        for (let element of this) {
          if (dart.test(test(element))) return element;
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[75], 239, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t154) {
          result$35isSet = true;
          return result = t154;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[75], 253, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t159) {
          result$35isSet = true;
          return result = t159;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            if (foundMatching) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[75], 270, 19, "index");
        _internal.checkNotNullable(core.int, index, "index");
        core.RangeError.checkNotNegative(index, "index");
        let elementIndex = 0;
        for (let element of this) {
          if (index === elementIndex) return element;
          elementIndex = elementIndex + 1;
        }
        dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
      }
    }
    (SetMixin.new = function() {
      ;
    }).prototype = SetMixin.prototype;
    dart.addTypeTests(SetMixin);
    SetMixin.prototype[_is_SetMixin_default] = true;
    dart.addTypeCaches(SetMixin);
    SetMixin[dart.implements] = () => [core.Set$(E)];
    dart.setMethodSignature(SetMixin, () => ({
      __proto__: dart.getMethods(SetMixin.__proto__),
      cast: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      followedBy: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      [$followedBy]: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      whereType: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      [$whereType]: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      retainAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      containsAll: dart.fnType(core.bool, [core.Iterable$(dart.nullable(core.Object))]),
      union: dart.fnType(core.Set$(E), [dart.nullable(core.Object)]),
      intersection: dart.fnType(core.Set$(E), [core.Set$(dart.nullable(core.Object))]),
      difference: dart.fnType(core.Set$(E), [core.Set$(dart.nullable(core.Object))]),
      toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      reduce: dart.fnType(E, [dart.nullable(core.Object)]),
      [$reduce]: dart.fnType(E, [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      join: dart.fnType(core.String, [], [core.String]),
      [$join]: dart.fnType(core.String, [], [core.String]),
      any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      take: dart.fnType(core.Iterable$(E), [core.int]),
      [$take]: dart.fnType(core.Iterable$(E), [core.int]),
      takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      skip: dart.fnType(core.Iterable$(E), [core.int]),
      [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
      skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      elementAt: dart.fnType(E, [core.int]),
      [$elementAt]: dart.fnType(E, [core.int])
    }));
    dart.setGetterSignature(SetMixin, () => ({
      __proto__: dart.getGetters(SetMixin.__proto__),
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      single: E,
      [$single]: E,
      first: E,
      [$first]: E,
      last: E,
      [$last]: E
    }));
    dart.setLibraryUri(SetMixin, I[24]);
    dart.defineExtensionMethods(SetMixin, [
      'cast',
      'followedBy',
      'whereType',
      'toList',
      'map',
      'toString',
      'where',
      'expand',
      'forEach',
      'reduce',
      'fold',
      'every',
      'join',
      'any',
      'take',
      'takeWhile',
      'skip',
      'skipWhile',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'elementAt'
    ]);
    dart.defineExtensionAccessors(SetMixin, [
      'isEmpty',
      'isNotEmpty',
      'single',
      'first',
      'last'
    ]);
    return SetMixin;
  });
  collection.SetMixin = collection.SetMixin$();
  dart.addTypeTests(collection.SetMixin, _is_SetMixin_default);
  const _is__SetBase_default = Symbol('_is__SetBase_default');
  collection._SetBase$ = dart.generic(E => {
    const Object_SetMixin$36 = class Object_SetMixin extends core.Object {};
    (Object_SetMixin$36.new = function() {
    }).prototype = Object_SetMixin$36.prototype;
    dart.applyMixin(Object_SetMixin$36, collection.SetMixin$(E));
    class _SetBase extends Object_SetMixin$36 {
      cast(R) {
        return core.Set.castFrom(E, R, this, {newSet: dart.bind(this, _newSimilarSet)});
      }
      difference(other) {
        if (other == null) dart.nullFailed(I[75], 323, 34, "other");
        let result = this[_newSet]();
        for (let element of this) {
          if (!dart.test(other.contains(element))) result.add(element);
        }
        return result;
      }
      intersection(other) {
        if (other == null) dart.nullFailed(I[75], 331, 36, "other");
        let result = this[_newSet]();
        for (let element of this) {
          if (dart.test(other.contains(element))) result.add(element);
        }
        return result;
      }
      toSet() {
        let t151;
        t151 = this[_newSet]();
        return (() => {
          t151.addAll(this);
          return t151;
        })();
      }
    }
    (_SetBase.new = function() {
      ;
    }).prototype = _SetBase.prototype;
    dart.addTypeTests(_SetBase);
    _SetBase.prototype[_is__SetBase_default] = true;
    dart.addTypeCaches(_SetBase);
    dart.setMethodSignature(_SetBase, () => ({
      __proto__: dart.getMethods(_SetBase.__proto__),
      cast: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      toSet: dart.fnType(core.Set$(E), []),
      [$toSet]: dart.fnType(core.Set$(E), [])
    }));
    dart.setLibraryUri(_SetBase, I[24]);
    dart.defineExtensionMethods(_SetBase, ['cast', 'toSet']);
    return _SetBase;
  });
  collection._SetBase = collection._SetBase$();
  dart.addTypeTests(collection._SetBase, _is__SetBase_default);
  const _is__InternalSet_default = Symbol('_is__InternalSet_default');
  collection._InternalSet$ = dart.generic(E => {
    var DartIteratorOfE = () => (DartIteratorOfE = dart.constFn(_js_helper.DartIterator$(E)))();
    class _InternalSet extends collection._SetBase$(E) {
      get length() {
        return this[_map$5].size;
      }
      get isEmpty() {
        return this[_map$5].size == 0;
      }
      get isNotEmpty() {
        return this[_map$5].size != 0;
      }
      get iterator() {
        return new (DartIteratorOfE()).new(this[Symbol.iterator]());
      }
      [Symbol.iterator]() {
        let self = this;
        let iterator = self[_map$5].values();
        let modifications = self[_modifications$3];
        return {
          next() {
            if (modifications != self[_modifications$3]) {
              throw new core.ConcurrentModificationError.new(self);
            }
            return iterator.next();
          }
        };
      }
    }
    (_InternalSet.new = function() {
      _InternalSet.__proto__.new.call(this);
      ;
    }).prototype = _InternalSet.prototype;
    dart.addTypeTests(_InternalSet);
    _InternalSet.prototype[_is__InternalSet_default] = true;
    dart.addTypeCaches(_InternalSet);
    dart.setMethodSignature(_InternalSet, () => ({
      __proto__: dart.getMethods(_InternalSet.__proto__),
      [Symbol.iterator]: dart.fnType(dart.dynamic, [])
    }));
    dart.setGetterSignature(_InternalSet, () => ({
      __proto__: dart.getGetters(_InternalSet.__proto__),
      length: core.int,
      [$length]: core.int,
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(_InternalSet, I[24]);
    dart.defineExtensionAccessors(_InternalSet, ['length', 'isEmpty', 'isNotEmpty', 'iterator']);
    return _InternalSet;
  });
  collection._InternalSet = collection._InternalSet$();
  dart.addTypeTests(collection._InternalSet, _is__InternalSet_default);
  const _is__HashSet_default = Symbol('_is__HashSet_default');
  collection._HashSet$ = dart.generic(E => {
    var _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class _HashSet extends collection._InternalSet$(E) {
      get [_map$5]() {
        return this[_map$4];
      }
      set [_map$5](value) {
        super[_map$5] = value;
      }
      get [_modifications$3]() {
        return this[_modifications$2];
      }
      set [_modifications$3](value) {
        this[_modifications$2] = value;
      }
      [_newSet]() {
        return new (_HashSetOfE()).new();
      }
      [_newSimilarSet](R) {
        return new (collection._HashSet$(R)).new();
      }
      contains(key) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let k = key;
          let buckets = this[_keyMap$].get(dart.hashCode(k) & 0x3ffffff);
          if (buckets != null) {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              k = buckets[i];
              if (dart.equals(k, key)) return true;
            }
          }
          return false;
        }
        return this[_map$5].has(key);
      }
      lookup(key) {
        if (key == null) return null;
        if (key[$_equals] !== dart.identityEquals) {
          let k = key;
          let buckets = this[_keyMap$].get(dart.hashCode(k) & 0x3ffffff);
          if (buckets != null) {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              k = buckets[i];
              if (dart.equals(k, key)) return k;
            }
          }
          return null;
        }
        return this[_map$5].has(key) ? key : null;
      }
      add(key) {
        E.as(key);
        let map = this[_map$5];
        if (key == null) {
          if (dart.test(map.has(null))) return false;
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let keyMap = this[_keyMap$];
          let k = key;
          let hash = dart.hashCode(k) & 0x3ffffff;
          let buckets = keyMap.get(hash);
          if (buckets == null) {
            keyMap.set(hash, [key]);
          } else {
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              k = buckets[i];
              if (dart.equals(k, key)) return false;
            }
            buckets.push(key);
          }
        } else if (dart.test(map.has(key))) {
          return false;
        }
        map.add(key);
        this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        return true;
      }
      addAll(objects) {
        IterableOfE().as(objects);
        if (objects == null) dart.nullFailed(I[74], 247, 27, "objects");
        let map = this[_map$5];
        let length = map.size;
        for (let key of objects) {
          if (key == null) {
            key = null;
          } else if (key[$_equals] !== dart.identityEquals) {
            key = _js_helper.putLinkedMapKey(key, this[_keyMap$]);
          }
          map.add(key);
        }
        if (length !== map.size) {
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        }
      }
      remove(key) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          let k = key;
          let hash = dart.hashCode(k) & 0x3ffffff;
          let buckets = this[_keyMap$].get(hash);
          if (buckets == null) return false;
          for (let i = 0, n = buckets.length;;) {
            k = buckets[i];
            if (dart.equals(k, key)) {
              key = k;
              if (n === 1) {
                this[_keyMap$].delete(hash);
              } else {
                buckets.splice(i, 1);
              }
              break;
            }
            if ((i = i + 1) >= n) return false;
          }
        }
        let map = this[_map$5];
        if (map.delete(key)) {
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
          return true;
        }
        return false;
      }
      clear() {
        let map = this[_map$5];
        if (map.size > 0) {
          map.clear();
          this[_keyMap$].clear();
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        }
      }
    }
    (_HashSet.new = function() {
      this[_map$4] = new Set();
      this[_keyMap$] = new Map();
      this[_modifications$2] = 0;
      _HashSet.__proto__.new.call(this);
      ;
    }).prototype = _HashSet.prototype;
    dart.addTypeTests(_HashSet);
    _HashSet.prototype[_is__HashSet_default] = true;
    dart.addTypeCaches(_HashSet);
    _HashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
    dart.setMethodSignature(_HashSet, () => ({
      __proto__: dart.getMethods(_HashSet.__proto__),
      [_newSet]: dart.fnType(core.Set$(E), []),
      [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_HashSet, I[24]);
    dart.setFieldSignature(_HashSet, () => ({
      __proto__: dart.getFields(_HashSet.__proto__),
      [_map$5]: dart.finalFieldType(dart.dynamic),
      [_keyMap$]: dart.finalFieldType(dart.nullable(core.Object)),
      [_modifications$3]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(_HashSet, ['contains']);
    return _HashSet;
  });
  collection._HashSet = collection._HashSet$();
  dart.addTypeTests(collection._HashSet, _is__HashSet_default);
  const _is__ImmutableSet_default = Symbol('_is__ImmutableSet_default');
  collection._ImmutableSet$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class _ImmutableSet extends collection._HashSet$(E) {
      add(value) {
        E.as(value);
        return dart.throw(collection._ImmutableSet._unsupported());
      }
      addAll(elements) {
        IterableOfE().as(elements);
        if (elements == null) dart.nullFailed(I[74], 325, 27, "elements");
        return dart.throw(collection._ImmutableSet._unsupported());
      }
      clear() {
        return dart.throw(collection._ImmutableSet._unsupported());
      }
      remove(value) {
        return dart.throw(collection._ImmutableSet._unsupported());
      }
      static _unsupported() {
        return new core.UnsupportedError.new("Cannot modify unmodifiable set");
      }
    }
    (_ImmutableSet.from = function(entries) {
      if (entries == null) dart.nullFailed(I[74], 310, 33, "entries");
      _ImmutableSet.__proto__.new.call(this);
      let map = this[_map$5];
      for (let key of entries) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          key = _js_helper.putLinkedMapKey(key, this[_keyMap$]);
        }
        map.add(key);
      }
    }).prototype = _ImmutableSet.prototype;
    dart.addTypeTests(_ImmutableSet);
    _ImmutableSet.prototype[_is__ImmutableSet_default] = true;
    dart.addTypeCaches(_ImmutableSet);
    dart.setLibraryUri(_ImmutableSet, I[24]);
    return _ImmutableSet;
  });
  collection._ImmutableSet = collection._ImmutableSet$();
  dart.addTypeTests(collection._ImmutableSet, _is__ImmutableSet_default);
  var _map$6 = dart.privateName(collection, "_IdentityHashSet._map");
  var _modifications$4 = dart.privateName(collection, "_IdentityHashSet._modifications");
  const _is__IdentityHashSet_default = Symbol('_is__IdentityHashSet_default');
  collection._IdentityHashSet$ = dart.generic(E => {
    var _IdentityHashSetOfE = () => (_IdentityHashSetOfE = dart.constFn(collection._IdentityHashSet$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class _IdentityHashSet extends collection._InternalSet$(E) {
      get [_map$5]() {
        return this[_map$6];
      }
      set [_map$5](value) {
        super[_map$5] = value;
      }
      get [_modifications$3]() {
        return this[_modifications$4];
      }
      set [_modifications$3](value) {
        this[_modifications$4] = value;
      }
      [_newSet]() {
        return new (_IdentityHashSetOfE()).new();
      }
      [_newSimilarSet](R) {
        return new (collection._IdentityHashSet$(R)).new();
      }
      contains(element) {
        return this[_map$5].has(element);
      }
      lookup(element) {
        return E.is(element) && this[_map$5].has(element) ? element : null;
      }
      add(element) {
        E.as(element);
        let map = this[_map$5];
        if (map.has(element)) return false;
        map.add(element);
        this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        return true;
      }
      addAll(objects) {
        IterableOfE().as(objects);
        if (objects == null) dart.nullFailed(I[74], 366, 27, "objects");
        let map = this[_map$5];
        let length = map.size;
        for (let key of objects) {
          map.add(key);
        }
        if (length !== map.size) {
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        }
      }
      remove(element) {
        if (this[_map$5].delete(element)) {
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
          return true;
        }
        return false;
      }
      clear() {
        let map = this[_map$5];
        if (map.size > 0) {
          map.clear();
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        }
      }
    }
    (_IdentityHashSet.new = function() {
      this[_map$6] = new Set();
      this[_modifications$4] = 0;
      _IdentityHashSet.__proto__.new.call(this);
      ;
    }).prototype = _IdentityHashSet.prototype;
    dart.addTypeTests(_IdentityHashSet);
    _IdentityHashSet.prototype[_is__IdentityHashSet_default] = true;
    dart.addTypeCaches(_IdentityHashSet);
    _IdentityHashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
    dart.setMethodSignature(_IdentityHashSet, () => ({
      __proto__: dart.getMethods(_IdentityHashSet.__proto__),
      [_newSet]: dart.fnType(core.Set$(E), []),
      [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_IdentityHashSet, I[24]);
    dart.setFieldSignature(_IdentityHashSet, () => ({
      __proto__: dart.getFields(_IdentityHashSet.__proto__),
      [_map$5]: dart.finalFieldType(dart.dynamic),
      [_modifications$3]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(_IdentityHashSet, ['contains']);
    return _IdentityHashSet;
  });
  collection._IdentityHashSet = collection._IdentityHashSet$();
  dart.addTypeTests(collection._IdentityHashSet, _is__IdentityHashSet_default);
  var _validKey$0 = dart.privateName(collection, "_validKey");
  var _equals$0 = dart.privateName(collection, "_equals");
  var _hashCode$0 = dart.privateName(collection, "_hashCode");
  var _modifications$5 = dart.privateName(collection, "_CustomHashSet._modifications");
  var _map$7 = dart.privateName(collection, "_CustomHashSet._map");
  const _is__CustomHashSet_default = Symbol('_is__CustomHashSet_default');
  collection._CustomHashSet$ = dart.generic(E => {
    var _CustomHashSetOfE = () => (_CustomHashSetOfE = dart.constFn(collection._CustomHashSet$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class _CustomHashSet extends collection._InternalSet$(E) {
      get [_modifications$3]() {
        return this[_modifications$5];
      }
      set [_modifications$3](value) {
        this[_modifications$5] = value;
      }
      get [_map$5]() {
        return this[_map$7];
      }
      set [_map$5](value) {
        super[_map$5] = value;
      }
      [_newSet]() {
        return new (_CustomHashSetOfE()).new(this[_equals$0], this[_hashCode$0]);
      }
      [_newSimilarSet](R) {
        return new (collection._HashSet$(R)).new();
      }
      contains(key) {
        let t161;
        if (E.is(key)) {
          let buckets = this[_keyMap$].get((t161 = key, this[_hashCode$0](t161)) & 0x3ffffff);
          if (buckets != null) {
            let equals = this[_equals$0];
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.test(equals(k, key))) return true;
            }
          }
        }
        return false;
      }
      lookup(key) {
        let t161;
        if (E.is(key)) {
          let buckets = this[_keyMap$].get((t161 = key, this[_hashCode$0](t161)) & 0x3ffffff);
          if (buckets != null) {
            let equals = this[_equals$0];
            for (let i = 0, n = buckets.length; i < n; i = i + 1) {
              let k = buckets[i];
              if (dart.test(equals(k, key))) return k;
            }
          }
        }
        return null;
      }
      add(key) {
        let t161;
        E.as(key);
        let keyMap = this[_keyMap$];
        let hash = (t161 = key, this[_hashCode$0](t161)) & 0x3ffffff;
        let buckets = keyMap.get(hash);
        if (buckets == null) {
          keyMap.set(hash, [key]);
        } else {
          let equals = this[_equals$0];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) return false;
          }
          buckets.push(key);
        }
        this[_map$5].add(key);
        this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        return true;
      }
      addAll(objects) {
        IterableOfE().as(objects);
        if (objects == null) dart.nullFailed(I[74], 500, 27, "objects");
        for (let element of objects)
          this.add(element);
      }
      remove(key) {
        let t161;
        if (E.is(key)) {
          let hash = (t161 = key, this[_hashCode$0](t161)) & 0x3ffffff;
          let keyMap = this[_keyMap$];
          let buckets = keyMap.get(hash);
          if (buckets == null) return false;
          let equals = this[_equals$0];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) {
              if (n === 1) {
                keyMap.delete(hash);
              } else {
                buckets.splice(i, 1);
              }
              this[_map$5].delete(k);
              this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
              return true;
            }
          }
        }
        return false;
      }
      clear() {
        let map = this[_map$5];
        if (map.size > 0) {
          map.clear();
          this[_keyMap$].clear();
          this[_modifications$3] = this[_modifications$3] + 1 & 67108863;
        }
      }
    }
    (_CustomHashSet.new = function(_equals, _hashCode) {
      if (_equals == null) dart.nullFailed(I[74], 448, 23, "_equals");
      if (_hashCode == null) dart.nullFailed(I[74], 448, 37, "_hashCode");
      this[_modifications$5] = 0;
      this[_map$7] = new Set();
      this[_keyMap$] = new Map();
      this[_equals$0] = _equals;
      this[_hashCode$0] = _hashCode;
      _CustomHashSet.__proto__.new.call(this);
      ;
    }).prototype = _CustomHashSet.prototype;
    dart.addTypeTests(_CustomHashSet);
    _CustomHashSet.prototype[_is__CustomHashSet_default] = true;
    dart.addTypeCaches(_CustomHashSet);
    _CustomHashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
    dart.setMethodSignature(_CustomHashSet, () => ({
      __proto__: dart.getMethods(_CustomHashSet.__proto__),
      [_newSet]: dart.fnType(core.Set$(E), []),
      [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_CustomHashSet, I[24]);
    dart.setFieldSignature(_CustomHashSet, () => ({
      __proto__: dart.getFields(_CustomHashSet.__proto__),
      [_equals$0]: dart.fieldType(dart.fnType(core.bool, [E, E])),
      [_hashCode$0]: dart.fieldType(dart.fnType(core.int, [E])),
      [_modifications$3]: dart.fieldType(core.int),
      [_map$5]: dart.finalFieldType(dart.dynamic),
      [_keyMap$]: dart.finalFieldType(dart.nullable(core.Object))
    }));
    dart.defineExtensionMethods(_CustomHashSet, ['contains']);
    return _CustomHashSet;
  });
  collection._CustomHashSet = collection._CustomHashSet$();
  dart.addTypeTests(collection._CustomHashSet, _is__CustomHashSet_default);
  const _is__CustomKeyHashSet_default = Symbol('_is__CustomKeyHashSet_default');
  collection._CustomKeyHashSet$ = dart.generic(E => {
    var _CustomKeyHashSetOfE = () => (_CustomKeyHashSetOfE = dart.constFn(collection._CustomKeyHashSet$(E)))();
    class _CustomKeyHashSet extends collection._CustomHashSet$(E) {
      [_newSet]() {
        return new (_CustomKeyHashSetOfE()).new(this[_equals$0], this[_hashCode$0], this[_validKey$0]);
      }
      [_newSimilarSet](R) {
        return new (collection._HashSet$(R)).new();
      }
      contains(element) {
        let t161;
        if (!dart.test((t161 = element, this[_validKey$0](t161)))) return false;
        return super.contains(element);
      }
      lookup(element) {
        let t161;
        if (!dart.test((t161 = element, this[_validKey$0](t161)))) return null;
        return super.lookup(element);
      }
      remove(element) {
        let t161;
        if (!dart.test((t161 = element, this[_validKey$0](t161)))) return false;
        return super.remove(element);
      }
    }
    (_CustomKeyHashSet.new = function(equals, hashCode, _validKey) {
      if (equals == null) dart.nullFailed(I[74], 396, 34, "equals");
      if (hashCode == null) dart.nullFailed(I[74], 396, 53, "hashCode");
      if (_validKey == null) dart.nullFailed(I[74], 396, 68, "_validKey");
      this[_validKey$0] = _validKey;
      _CustomKeyHashSet.__proto__.new.call(this, equals, hashCode);
      ;
    }).prototype = _CustomKeyHashSet.prototype;
    dart.addTypeTests(_CustomKeyHashSet);
    _CustomKeyHashSet.prototype[_is__CustomKeyHashSet_default] = true;
    dart.addTypeCaches(_CustomKeyHashSet);
    dart.setMethodSignature(_CustomKeyHashSet, () => ({
      __proto__: dart.getMethods(_CustomKeyHashSet.__proto__),
      [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_CustomKeyHashSet, I[24]);
    dart.setFieldSignature(_CustomKeyHashSet, () => ({
      __proto__: dart.getFields(_CustomKeyHashSet.__proto__),
      [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [dart.nullable(core.Object)]))
    }));
    dart.defineExtensionMethods(_CustomKeyHashSet, ['contains']);
    return _CustomKeyHashSet;
  });
  collection._CustomKeyHashSet = collection._CustomKeyHashSet$();
  dart.addTypeTests(collection._CustomKeyHashSet, _is__CustomKeyHashSet_default);
  var _source = dart.privateName(collection, "_source");
  const _is_UnmodifiableListView_default = Symbol('_is_UnmodifiableListView_default');
  collection.UnmodifiableListView$ = dart.generic(E => {
    class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
      cast(R) {
        return new (collection.UnmodifiableListView$(R)).new(this[_source][$cast](R));
      }
      get length() {
        return this[_source][$length];
      }
      set length(value) {
        super.length = value;
      }
      _get(index) {
        if (index == null) dart.nullFailed(I[76], 23, 21, "index");
        return this[_source][$elementAt](index);
      }
    }
    (UnmodifiableListView.new = function(source) {
      if (source == null) dart.nullFailed(I[76], 18, 36, "source");
      this[_source] = source;
      ;
    }).prototype = UnmodifiableListView.prototype;
    dart.addTypeTests(UnmodifiableListView);
    UnmodifiableListView.prototype[_is_UnmodifiableListView_default] = true;
    dart.addTypeCaches(UnmodifiableListView);
    dart.setMethodSignature(UnmodifiableListView, () => ({
      __proto__: dart.getMethods(UnmodifiableListView.__proto__),
      cast: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.List$(R), []], R => [dart.nullable(core.Object)]),
      _get: dart.fnType(E, [core.int]),
      [$_get]: dart.fnType(E, [core.int])
    }));
    dart.setGetterSignature(UnmodifiableListView, () => ({
      __proto__: dart.getGetters(UnmodifiableListView.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(UnmodifiableListView, I[24]);
    dart.setFieldSignature(UnmodifiableListView, () => ({
      __proto__: dart.getFields(UnmodifiableListView.__proto__),
      [_source]: dart.finalFieldType(core.Iterable$(E))
    }));
    dart.defineExtensionMethods(UnmodifiableListView, ['cast', '_get']);
    dart.defineExtensionAccessors(UnmodifiableListView, ['length']);
    return UnmodifiableListView;
  });
  collection.UnmodifiableListView = collection.UnmodifiableListView$();
  dart.addTypeTests(collection.UnmodifiableListView, _is_UnmodifiableListView_default);
  const _is_HashMap_default = Symbol('_is_HashMap_default');
  collection.HashMap$ = dart.generic((K, V) => {
    class HashMap extends core.Object {
      static new(opts) {
        let t161, t161$, t161$0;
        let equals = opts && 'equals' in opts ? opts.equals : null;
        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
        if (isValidKey == null) {
          if (hashCode == null) {
            if (equals == null) {
              if (dart.wrapType(K) === dart.wrapType(core.String) || dart.wrapType(K) === dart.wrapType(core.int)) {
                return new (_js_helper.IdentityMap$(K, V)).new();
              }
              return new (_js_helper.LinkedMap$(K, V)).new();
            }
            hashCode = C[74] || CT.C74;
          } else if ((C[75] || CT.C75) === hashCode && (C[76] || CT.C76) === equals) {
            return new (_js_helper.IdentityMap$(K, V)).new();
          }
          return new (_js_helper.CustomHashMap$(K, V)).new((t161 = equals, t161 == null ? C[77] || CT.C77 : t161), hashCode);
        }
        return new (_js_helper.CustomKeyHashMap$(K, V)).new((t161$ = equals, t161$ == null ? C[77] || CT.C77 : t161$), (t161$0 = hashCode, t161$0 == null ? C[74] || CT.C74 : t161$0), isValidKey);
      }
      static from(other) {
        if (other == null) dart.nullFailed(I[77], 101, 46, "other");
        let result = new (_js_helper.LinkedMap$(K, V)).new();
        other[$forEach](dart.fn((k, v) => {
          result[$_set](K.as(k), V.as(v));
        }, T$.dynamicAnddynamicTovoid()));
        return result;
      }
      static of(other) {
        let t161;
        if (other == null) dart.nullFailed(I[77], 110, 32, "other");
        t161 = new (_js_helper.LinkedMap$(K, V)).new();
        return (() => {
          t161[$addAll](other);
          return t161;
        })();
      }
      static fromIterable(iterable, opts) {
        if (iterable == null) dart.nullFailed(I[77], 123, 41, "iterable");
        let key = opts && 'key' in opts ? opts.key : null;
        let value = opts && 'value' in opts ? opts.value : null;
        let map = new (_js_helper.LinkedMap$(K, V)).new();
        collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
        return map;
      }
      static fromIterables(keys, values) {
        if (keys == null) dart.nullFailed(I[77], 139, 45, "keys");
        if (values == null) dart.nullFailed(I[77], 139, 63, "values");
        let map = new (_js_helper.LinkedMap$(K, V)).new();
        collection.MapBase._fillMapWithIterables(map, keys, values);
        return map;
      }
      static fromEntries(entries) {
        let t161;
        if (entries == null) dart.nullFailed(I[77], 153, 56, "entries");
        t161 = new (_js_helper.LinkedMap$(K, V)).new();
        return (() => {
          t161[$addEntries](entries);
          return t161;
        })();
      }
    }
    (HashMap[dart.mixinNew] = function() {
    }).prototype = HashMap.prototype;
    HashMap.prototype[dart.isMap] = true;
    dart.addTypeTests(HashMap);
    HashMap.prototype[_is_HashMap_default] = true;
    dart.addTypeCaches(HashMap);
    HashMap[dart.implements] = () => [core.Map$(K, V)];
    dart.setLibraryUri(HashMap, I[24]);
    return HashMap;
  });
  collection.HashMap = collection.HashMap$();
  dart.addTypeTests(collection.HashMap, _is_HashMap_default);
  const _is_HashSet_default = Symbol('_is_HashSet_default');
  collection.HashSet$ = dart.generic(E => {
    class HashSet extends core.Object {
      static new(opts) {
        let t161, t161$, t161$0, t161$1;
        let equals = opts && 'equals' in opts ? opts.equals : null;
        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
        if (isValidKey == null) {
          if (hashCode == null) {
            if (equals == null) {
              if (dart.wrapType(E) === dart.wrapType(core.String) || dart.wrapType(E) === dart.wrapType(core.int)) {
                return new (collection._IdentityHashSet$(E)).new();
              }
              return new (collection._HashSet$(E)).new();
            }
          } else if ((C[75] || CT.C75) === hashCode && (C[76] || CT.C76) === equals) {
            return new (collection._IdentityHashSet$(E)).new();
          }
          return new (collection._CustomHashSet$(E)).new((t161 = equals, t161 == null ? C[77] || CT.C77 : t161), (t161$ = hashCode, t161$ == null ? C[74] || CT.C74 : t161$));
        }
        return new (collection._CustomKeyHashSet$(E)).new((t161$0 = equals, t161$0 == null ? C[77] || CT.C77 : t161$0), (t161$1 = hashCode, t161$1 == null ? C[74] || CT.C74 : t161$1), isValidKey);
      }
      static from(elements) {
        if (elements == null) dart.nullFailed(I[78], 93, 42, "elements");
        let result = new (collection._HashSet$(E)).new();
        for (let e of elements) {
          result.add(E.as(e));
        }
        return result;
      }
      static of(elements) {
        let t161;
        if (elements == null) dart.nullFailed(I[78], 107, 34, "elements");
        t161 = new (collection._HashSet$(E)).new();
        return (() => {
          t161.addAll(elements);
          return t161;
        })();
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (HashSet[dart.mixinNew] = function() {
    }).prototype = HashSet.prototype;
    dart.addTypeTests(HashSet);
    HashSet.prototype[_is_HashSet_default] = true;
    dart.addTypeCaches(HashSet);
    HashSet[dart.implements] = () => [core.Set$(E)];
    dart.setLibraryUri(HashSet, I[24]);
    return HashSet;
  });
  collection.HashSet = collection.HashSet$();
  dart.addTypeTests(collection.HashSet, _is_HashSet_default);
  const _is_IterableMixin_default = Symbol('_is_IterableMixin_default');
  collection.IterableMixin$ = dart.generic(E => {
    var WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EfficientLengthIterableOfE = () => (EfficientLengthIterableOfE = dart.constFn(_internal.EfficientLengthIterable$(E)))();
    var FollowedByIterableOfE = () => (FollowedByIterableOfE = dart.constFn(_internal.FollowedByIterable$(E)))();
    var EAndEToE = () => (EAndEToE = dart.constFn(dart.fnType(E, [E, E])))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
    var TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
    var TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
    var SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
    var SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
    var VoidToE = () => (VoidToE = dart.constFn(dart.fnType(E, [])))();
    var VoidToNE = () => (VoidToNE = dart.constFn(dart.nullable(VoidToE())))();
    var ETodynamic = () => (ETodynamic = dart.constFn(dart.fnType(dart.dynamic, [E])))();
    class IterableMixin extends core.Object {
      cast(R) {
        return core.Iterable.castFrom(E, R, this);
      }
      map(T, f) {
        if (f == null) dart.nullFailed(I[39], 17, 24, "f");
        return _internal.MappedIterable$(E, T).new(this, f);
      }
      where(f) {
        if (f == null) dart.nullFailed(I[39], 19, 26, "f");
        return new (WhereIterableOfE()).new(this, f);
      }
      whereType(T) {
        return new (_internal.WhereTypeIterable$(T)).new(this);
      }
      expand(T, f) {
        if (f == null) dart.nullFailed(I[39], 23, 37, "f");
        return new (_internal.ExpandIterable$(E, T)).new(this, f);
      }
      followedBy(other) {
        IterableOfE().as(other);
        if (other == null) dart.nullFailed(I[39], 26, 38, "other");
        let self = this;
        if (EfficientLengthIterableOfE().is(self)) {
          return FollowedByIterableOfE().firstEfficient(self, other);
        }
        return new (FollowedByIterableOfE()).new(this, other);
      }
      contains(element) {
        for (let e of this) {
          if (dart.equals(e, element)) return true;
        }
        return false;
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[39], 43, 21, "f");
        for (let element of this)
          f(element);
      }
      reduce(combine) {
        EAndEToE().as(combine);
        if (combine == null) dart.nullFailed(I[39], 47, 14, "combine");
        let iterator = this[$iterator];
        if (!dart.test(iterator.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let value = iterator.current;
        while (dart.test(iterator.moveNext())) {
          value = combine(value, iterator.current);
        }
        return value;
      }
      fold(T, initialValue, combine) {
        if (combine == null) dart.nullFailed(I[39], 59, 31, "combine");
        let value = initialValue;
        for (let element of this)
          value = combine(value, element);
        return value;
      }
      every(f) {
        if (f == null) dart.nullFailed(I[39], 65, 19, "f");
        for (let element of this) {
          if (!dart.test(f(element))) return false;
        }
        return true;
      }
      join(separator = "") {
        if (separator == null) dart.nullFailed(I[39], 72, 23, "separator");
        let iterator = this[$iterator];
        if (!dart.test(iterator.moveNext())) return "";
        let buffer = new core.StringBuffer.new();
        if (separator == null || separator === "") {
          do {
            buffer.write(dart.str(iterator.current));
          } while (dart.test(iterator.moveNext()));
        } else {
          buffer.write(dart.str(iterator.current));
          while (dart.test(iterator.moveNext())) {
            buffer.write(separator);
            buffer.write(dart.str(iterator.current));
          }
        }
        return buffer.toString();
      }
      any(test) {
        if (test == null) dart.nullFailed(I[39], 90, 17, "test");
        for (let element of this) {
          if (dart.test(test(element))) return true;
        }
        return false;
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[39], 97, 24, "growable");
        return ListOfE().from(this, {growable: growable});
      }
      toSet() {
        return LinkedHashSetOfE().from(this);
      }
      get length() {
        if (!!_internal.EfficientLengthIterable.is(this)) dart.assertFailed(null, I[39], 103, 12, "this is! EfficientLengthIterable");
        let count = 0;
        let it = this[$iterator];
        while (dart.test(it.moveNext())) {
          count = count + 1;
        }
        return count;
      }
      get isEmpty() {
        return !dart.test(this[$iterator].moveNext());
      }
      get isNotEmpty() {
        return !dart.test(this.isEmpty);
      }
      take(count) {
        if (count == null) dart.nullFailed(I[39], 116, 24, "count");
        return TakeIterableOfE().new(this, count);
      }
      takeWhile(test) {
        if (test == null) dart.nullFailed(I[39], 120, 30, "test");
        return new (TakeWhileIterableOfE()).new(this, test);
      }
      skip(count) {
        if (count == null) dart.nullFailed(I[39], 124, 24, "count");
        return SkipIterableOfE().new(this, count);
      }
      skipWhile(test) {
        if (test == null) dart.nullFailed(I[39], 128, 30, "test");
        return new (SkipWhileIterableOfE()).new(this, test);
      }
      get first() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        return it.current;
      }
      get last() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) {
          dart.throw(_internal.IterableElementError.noElement());
        }
        let result = null;
        do {
          result = it.current;
        } while (dart.test(it.moveNext()));
        return result;
      }
      get single() {
        let it = this[$iterator];
        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
        let result = it.current;
        if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
        return result;
      }
      firstWhere(test, opts) {
        if (test == null) dart.nullFailed(I[39], 160, 21, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        for (let element of this) {
          if (dart.test(test(element))) return element;
        }
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      lastWhere(test, opts) {
        if (test == null) dart.nullFailed(I[39], 168, 20, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t164) {
          result$35isSet = true;
          return result = t164;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      singleWhere(test, opts) {
        if (test == null) dart.nullFailed(I[39], 182, 22, "test");
        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
        VoidToNE().as(orElse);
        let result = null;
        let result$35isSet = false;
        function result$35get() {
          return result$35isSet ? result : dart.throw(new _internal.LateError.localNI("result"));
        }
        dart.fn(result$35get, VoidToE());
        function result$35set(t169) {
          result$35isSet = true;
          return result = t169;
        }
        dart.fn(result$35set, ETodynamic());
        let foundMatching = false;
        for (let element of this) {
          if (dart.test(test(element))) {
            if (foundMatching) {
              dart.throw(_internal.IterableElementError.tooMany());
            }
            result$35set(element);
            foundMatching = true;
          }
        }
        if (foundMatching) return result$35get();
        if (orElse != null) return orElse();
        dart.throw(_internal.IterableElementError.noElement());
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[39], 199, 19, "index");
        _internal.checkNotNullable(core.int, index, "index");
        core.RangeError.checkNotNegative(index, "index");
        let elementIndex = 0;
        for (let element of this) {
          if (index === elementIndex) return element;
          elementIndex = elementIndex + 1;
        }
        dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
      }
      toString() {
        return collection.IterableBase.iterableToShortString(this, "(", ")");
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (IterableMixin.new = function() {
      ;
    }).prototype = IterableMixin.prototype;
    IterableMixin.prototype[dart.isIterable] = true;
    dart.addTypeTests(IterableMixin);
    IterableMixin.prototype[_is_IterableMixin_default] = true;
    dart.addTypeCaches(IterableMixin);
    IterableMixin[dart.implements] = () => [core.Iterable$(E)];
    dart.setMethodSignature(IterableMixin, () => ({
      __proto__: dart.getMethods(IterableMixin.__proto__),
      cast: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Iterable$(R), []], R => [dart.nullable(core.Object)]),
      map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]], T => [dart.nullable(core.Object)]),
      where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      whereType: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      [$whereType]: dart.gFnType(T => [core.Iterable$(T), []], T => [dart.nullable(core.Object)]),
      expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]], T => [dart.nullable(core.Object)]),
      followedBy: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      [$followedBy]: dart.fnType(core.Iterable$(E), [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
      reduce: dart.fnType(E, [dart.nullable(core.Object)]),
      [$reduce]: dart.fnType(E, [dart.nullable(core.Object)]),
      fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]], T => [dart.nullable(core.Object)]),
      every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      join: dart.fnType(core.String, [], [core.String]),
      [$join]: dart.fnType(core.String, [], [core.String]),
      any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
      toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
      toSet: dart.fnType(core.Set$(E), []),
      [$toSet]: dart.fnType(core.Set$(E), []),
      take: dart.fnType(core.Iterable$(E), [core.int]),
      [$take]: dart.fnType(core.Iterable$(E), [core.int]),
      takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      skip: dart.fnType(core.Iterable$(E), [core.int]),
      [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
      skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
      firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: dart.nullable(core.Object)}, {}),
      elementAt: dart.fnType(E, [core.int]),
      [$elementAt]: dart.fnType(E, [core.int])
    }));
    dart.setGetterSignature(IterableMixin, () => ({
      __proto__: dart.getGetters(IterableMixin.__proto__),
      length: core.int,
      [$length]: core.int,
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      first: E,
      [$first]: E,
      last: E,
      [$last]: E,
      single: E,
      [$single]: E
    }));
    dart.setLibraryUri(IterableMixin, I[24]);
    dart.defineExtensionMethods(IterableMixin, [
      'cast',
      'map',
      'where',
      'whereType',
      'expand',
      'followedBy',
      'contains',
      'forEach',
      'reduce',
      'fold',
      'every',
      'join',
      'any',
      'toList',
      'toSet',
      'take',
      'takeWhile',
      'skip',
      'skipWhile',
      'firstWhere',
      'lastWhere',
      'singleWhere',
      'elementAt',
      'toString'
    ]);
    dart.defineExtensionAccessors(IterableMixin, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last',
      'single'
    ]);
    return IterableMixin;
  });
  collection.IterableMixin = collection.IterableMixin$();
  dart.addTypeTests(collection.IterableMixin, _is_IterableMixin_default);
  var _state$ = dart.privateName(collection, "_state");
  var _iterator$0 = dart.privateName(collection, "_iterator");
  var _move = dart.privateName(collection, "_move");
  const _is_HasNextIterator_default = Symbol('_is_HasNextIterator_default');
  collection.HasNextIterator$ = dart.generic(E => {
    class HasNextIterator extends core.Object {
      get hasNext() {
        if (this[_state$] === 2) this[_move]();
        return this[_state$] === 0;
      }
      next() {
        if (!dart.test(this.hasNext)) dart.throw(new core.StateError.new("No more elements"));
        if (!(this[_state$] === 0)) dart.assertFailed(null, I[79], 30, 12, "_state == _HAS_NEXT_AND_NEXT_IN_CURRENT");
        let result = this[_iterator$0].current;
        this[_move]();
        return result;
      }
      [_move]() {
        if (dart.test(this[_iterator$0].moveNext())) {
          this[_state$] = 0;
        } else {
          this[_state$] = 1;
        }
      }
    }
    (HasNextIterator.new = function(_iterator) {
      if (_iterator == null) dart.nullFailed(I[79], 19, 24, "_iterator");
      this[_state$] = 2;
      this[_iterator$0] = _iterator;
      ;
    }).prototype = HasNextIterator.prototype;
    dart.addTypeTests(HasNextIterator);
    HasNextIterator.prototype[_is_HasNextIterator_default] = true;
    dart.addTypeCaches(HasNextIterator);
    dart.setMethodSignature(HasNextIterator, () => ({
      __proto__: dart.getMethods(HasNextIterator.__proto__),
      next: dart.fnType(E, []),
      [_move]: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(HasNextIterator, () => ({
      __proto__: dart.getGetters(HasNextIterator.__proto__),
      hasNext: core.bool
    }));
    dart.setLibraryUri(HasNextIterator, I[24]);
    dart.setFieldSignature(HasNextIterator, () => ({
      __proto__: dart.getFields(HasNextIterator.__proto__),
      [_iterator$0]: dart.fieldType(core.Iterator$(E)),
      [_state$]: dart.fieldType(core.int)
    }));
    return HasNextIterator;
  });
  collection.HasNextIterator = collection.HasNextIterator$();
  dart.defineLazy(collection.HasNextIterator, {
    /*collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT*/get _HAS_NEXT_AND_NEXT_IN_CURRENT() {
      return 0;
    },
    /*collection.HasNextIterator._NO_NEXT*/get _NO_NEXT() {
      return 1;
    },
    /*collection.HasNextIterator._NOT_MOVED_YET*/get _NOT_MOVED_YET() {
      return 2;
    }
  }, false);
  dart.addTypeTests(collection.HasNextIterator, _is_HasNextIterator_default);
  const _is_LinkedHashMap_default = Symbol('_is_LinkedHashMap_default');
  collection.LinkedHashMap$ = dart.generic((K, V) => {
    class LinkedHashMap extends core.Object {
      static new(opts) {
        let t171, t171$, t171$0;
        let equals = opts && 'equals' in opts ? opts.equals : null;
        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
        if (isValidKey == null) {
          if (hashCode == null) {
            if (equals == null) {
              if (dart.wrapType(K) === dart.wrapType(core.String) || dart.wrapType(K) === dart.wrapType(core.int)) {
                return new (_js_helper.IdentityMap$(K, V)).new();
              }
              return new (_js_helper.LinkedMap$(K, V)).new();
            }
            hashCode = C[74] || CT.C74;
          } else if ((C[75] || CT.C75) === hashCode && (C[76] || CT.C76) === equals) {
            return new (_js_helper.IdentityMap$(K, V)).new();
          }
          return new (_js_helper.CustomHashMap$(K, V)).new((t171 = equals, t171 == null ? C[77] || CT.C77 : t171), hashCode);
        }
        return new (_js_helper.CustomKeyHashMap$(K, V)).new((t171$ = equals, t171$ == null ? C[77] || CT.C77 : t171$), (t171$0 = hashCode, t171$0 == null ? C[74] || CT.C74 : t171$0), isValidKey);
      }
      static from(other) {
        if (other == null) dart.nullFailed(I[80], 85, 52, "other");
        let result = new (_js_helper.LinkedMap$(K, V)).new();
        other[$forEach](dart.fn((k, v) => {
          result[$_set](K.as(k), V.as(v));
        }, T$.dynamicAnddynamicTovoid()));
        return result;
      }
      static of(other) {
        let t171;
        if (other == null) dart.nullFailed(I[80], 94, 38, "other");
        t171 = new (_js_helper.LinkedMap$(K, V)).new();
        return (() => {
          t171[$addAll](other);
          return t171;
        })();
      }
      static fromIterable(iterable, opts) {
        if (iterable == null) dart.nullFailed(I[80], 108, 47, "iterable");
        let key = opts && 'key' in opts ? opts.key : null;
        let value = opts && 'value' in opts ? opts.value : null;
        let map = new (_js_helper.LinkedMap$(K, V)).new();
        collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
        return map;
      }
      static fromIterables(keys, values) {
        if (keys == null) dart.nullFailed(I[80], 124, 51, "keys");
        if (values == null) dart.nullFailed(I[80], 124, 69, "values");
        let map = new (_js_helper.LinkedMap$(K, V)).new();
        collection.MapBase._fillMapWithIterables(map, keys, values);
        return map;
      }
      static fromEntries(entries) {
        let t171;
        if (entries == null) dart.nullFailed(I[80], 138, 62, "entries");
        t171 = new (_js_helper.LinkedMap$(K, V)).new();
        return (() => {
          t171[$addEntries](entries);
          return t171;
        })();
      }
    }
    (LinkedHashMap[dart.mixinNew] = function() {
    }).prototype = LinkedHashMap.prototype;
    LinkedHashMap.prototype[dart.isMap] = true;
    dart.addTypeTests(LinkedHashMap);
    LinkedHashMap.prototype[_is_LinkedHashMap_default] = true;
    dart.addTypeCaches(LinkedHashMap);
    LinkedHashMap[dart.implements] = () => [core.Map$(K, V)];
    dart.setLibraryUri(LinkedHashMap, I[24]);
    return LinkedHashMap;
  });
  collection.LinkedHashMap = collection.LinkedHashMap$();
  dart.addTypeTests(collection.LinkedHashMap, _is_LinkedHashMap_default);
  const _is_LinkedHashSet_default = Symbol('_is_LinkedHashSet_default');
  collection.LinkedHashSet$ = dart.generic(E => {
    class LinkedHashSet extends core.Object {
      static new(opts) {
        let t171, t171$, t171$0;
        let equals = opts && 'equals' in opts ? opts.equals : null;
        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
        if (isValidKey == null) {
          if (hashCode == null) {
            if (equals == null) {
              if (dart.wrapType(E) === dart.wrapType(core.String) || dart.wrapType(E) === dart.wrapType(core.int)) {
                return new (collection._IdentityHashSet$(E)).new();
              }
              return new (collection._HashSet$(E)).new();
            }
            hashCode = C[74] || CT.C74;
          } else if ((C[75] || CT.C75) === hashCode && (C[76] || CT.C76) === equals) {
            return new (collection._IdentityHashSet$(E)).new();
          }
          return new (collection._CustomHashSet$(E)).new((t171 = equals, t171 == null ? C[77] || CT.C77 : t171), hashCode);
        }
        return new (collection._CustomKeyHashSet$(E)).new((t171$ = equals, t171$ == null ? C[77] || CT.C77 : t171$), (t171$0 = hashCode, t171$0 == null ? C[74] || CT.C74 : t171$0), isValidKey);
      }
      static from(elements) {
        if (elements == null) dart.nullFailed(I[81], 98, 48, "elements");
        let result = new (collection._HashSet$(E)).new();
        for (let element of elements) {
          result.add(E.as(element));
        }
        return result;
      }
      static of(elements) {
        let t171;
        if (elements == null) dart.nullFailed(I[81], 110, 40, "elements");
        t171 = new (collection._HashSet$(E)).new();
        return (() => {
          t171.addAll(elements);
          return t171;
        })();
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (LinkedHashSet[dart.mixinNew] = function() {
    }).prototype = LinkedHashSet.prototype;
    dart.addTypeTests(LinkedHashSet);
    LinkedHashSet.prototype[_is_LinkedHashSet_default] = true;
    dart.addTypeCaches(LinkedHashSet);
    LinkedHashSet[dart.implements] = () => [core.Set$(E)];
    dart.setLibraryUri(LinkedHashSet, I[24]);
    return LinkedHashSet;
  });
  collection.LinkedHashSet = collection.LinkedHashSet$();
  dart.addTypeTests(collection.LinkedHashSet, _is_LinkedHashSet_default);
  var _modificationCount = dart.privateName(collection, "_modificationCount");
  var _length$0 = dart.privateName(collection, "_length");
  var _first = dart.privateName(collection, "_first");
  var _insertBefore = dart.privateName(collection, "_insertBefore");
  var _list$0 = dart.privateName(collection, "_list");
  var _unlink = dart.privateName(collection, "_unlink");
  var _next$2 = dart.privateName(collection, "_next");
  var _previous$2 = dart.privateName(collection, "_previous");
  const _is_LinkedList_default$ = Symbol('_is_LinkedList_default');
  collection.LinkedList$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var _LinkedListIteratorOfE = () => (_LinkedListIteratorOfE = dart.constFn(collection._LinkedListIterator$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    class LinkedList extends core.Iterable$(E) {
      addFirst(entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 40, 19, "entry");
        this[_insertBefore](this[_first], entry, {updateFirst: true});
        this[_first] = entry;
      }
      add(entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 46, 14, "entry");
        this[_insertBefore](this[_first], entry, {updateFirst: false});
      }
      addAll(entries) {
        IterableOfE().as(entries);
        if (entries == null) dart.nullFailed(I[82], 51, 27, "entries");
        entries[$forEach](dart.bind(this, 'add'));
      }
      remove(entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 61, 17, "entry");
        if (!dart.equals(entry[_list$0], this)) return false;
        this[_unlink](entry);
        return true;
      }
      contains(entry) {
        return T$.LinkedListEntryOfLinkedListEntry().is(entry) && this === entry.list;
      }
      get iterator() {
        return new (_LinkedListIteratorOfE()).new(this);
      }
      get length() {
        return this[_length$0];
      }
      clear() {
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        if (dart.test(this.isEmpty)) return;
        let next = dart.nullCheck(this[_first]);
        do {
          let entry = next;
          next = dart.nullCheck(entry[_next$2]);
          entry[_next$2] = entry[_previous$2] = entry[_list$0] = null;
        } while (next !== this[_first]);
        this[_first] = null;
        this[_length$0] = 0;
      }
      get first() {
        if (dart.test(this.isEmpty)) {
          dart.throw(new core.StateError.new("No such element"));
        }
        return dart.nullCheck(this[_first]);
      }
      get last() {
        if (dart.test(this.isEmpty)) {
          dart.throw(new core.StateError.new("No such element"));
        }
        return dart.nullCheck(dart.nullCheck(this[_first])[_previous$2]);
      }
      get single() {
        if (dart.test(this.isEmpty)) {
          dart.throw(new core.StateError.new("No such element"));
        }
        if (dart.notNull(this[_length$0]) > 1) {
          dart.throw(new core.StateError.new("Too many elements"));
        }
        return dart.nullCheck(this[_first]);
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[82], 121, 21, "action");
        let modificationCount = this[_modificationCount];
        if (dart.test(this.isEmpty)) return;
        let current = dart.nullCheck(this[_first]);
        do {
          action(current);
          if (modificationCount != this[_modificationCount]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          current = dart.nullCheck(current[_next$2]);
        } while (current !== this[_first]);
      }
      get isEmpty() {
        return this[_length$0] === 0;
      }
      [_insertBefore](entry, newEntry, opts) {
        EN().as(entry);
        E.as(newEntry);
        if (newEntry == null) dart.nullFailed(I[82], 141, 34, "newEntry");
        let updateFirst = opts && 'updateFirst' in opts ? opts.updateFirst : null;
        if (updateFirst == null) dart.nullFailed(I[82], 141, 59, "updateFirst");
        if (newEntry.list != null) {
          dart.throw(new core.StateError.new("LinkedListEntry is already in a LinkedList"));
        }
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        newEntry[_list$0] = this;
        if (dart.test(this.isEmpty)) {
          if (!(entry == null)) dart.assertFailed(null, I[82], 149, 14, "entry == null");
          newEntry[_previous$2] = newEntry[_next$2] = newEntry;
          this[_first] = newEntry;
          this[_length$0] = dart.notNull(this[_length$0]) + 1;
          return;
        }
        let predecessor = dart.nullCheck(dart.nullCheck(entry)[_previous$2]);
        let successor = entry;
        newEntry[_previous$2] = predecessor;
        newEntry[_next$2] = successor;
        predecessor[_next$2] = newEntry;
        successor[_previous$2] = newEntry;
        if (dart.test(updateFirst) && entry == this[_first]) {
          this[_first] = newEntry;
        }
        this[_length$0] = dart.notNull(this[_length$0]) + 1;
      }
      [_unlink](entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 167, 18, "entry");
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        dart.nullCheck(entry[_next$2])[_previous$2] = entry[_previous$2];
        let next = dart.nullCheck(entry[_previous$2])[_next$2] = entry[_next$2];
        this[_length$0] = dart.notNull(this[_length$0]) - 1;
        entry[_list$0] = entry[_next$2] = entry[_previous$2] = null;
        if (dart.test(this.isEmpty)) {
          this[_first] = null;
        } else if (entry == this[_first]) {
          this[_first] = next;
        }
      }
    }
    (LinkedList.new = function() {
      this[_modificationCount] = 0;
      this[_length$0] = 0;
      this[_first] = null;
      LinkedList.__proto__.new.call(this);
      ;
    }).prototype = LinkedList.prototype;
    dart.addTypeTests(LinkedList);
    LinkedList.prototype[_is_LinkedList_default$] = true;
    dart.addTypeCaches(LinkedList);
    dart.setMethodSignature(LinkedList, () => ({
      __proto__: dart.getMethods(LinkedList.__proto__),
      addFirst: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [_insertBefore]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)], {updateFirst: core.bool}, {}),
      [_unlink]: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(LinkedList, () => ({
      __proto__: dart.getGetters(LinkedList.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(LinkedList, I[24]);
    dart.setFieldSignature(LinkedList, () => ({
      __proto__: dart.getFields(LinkedList.__proto__),
      [_modificationCount]: dart.fieldType(core.int),
      [_length$0]: dart.fieldType(core.int),
      [_first]: dart.fieldType(dart.nullable(E))
    }));
    dart.defineExtensionMethods(LinkedList, ['contains', 'forEach']);
    dart.defineExtensionAccessors(LinkedList, [
      'iterator',
      'length',
      'first',
      'last',
      'single',
      'isEmpty'
    ]);
    return LinkedList;
  });
  collection.LinkedList = collection.LinkedList$();
  dart.addTypeTests(collection.LinkedList, _is_LinkedList_default$);
  var _current$1 = dart.privateName(collection, "_current");
  var _visitedFirst = dart.privateName(collection, "_visitedFirst");
  const _is__LinkedListIterator_default$ = Symbol('_is__LinkedListIterator_default');
  collection._LinkedListIterator$ = dart.generic(E => {
    class _LinkedListIterator extends core.Object {
      get current() {
        return dart.nullCast(this[_current$1], E);
      }
      moveNext() {
        if (this[_modificationCount] != this[_list$0][_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (dart.test(this[_list$0].isEmpty) || dart.test(this[_visitedFirst]) && this[_next$2] == this[_list$0].first) {
          this[_current$1] = null;
          return false;
        }
        this[_visitedFirst] = true;
        this[_current$1] = this[_next$2];
        this[_next$2] = dart.nullCheck(this[_next$2])[_next$2];
        return true;
      }
    }
    (_LinkedListIterator.new = function(list) {
      if (list == null) dart.nullFailed(I[82], 188, 37, "list");
      this[_current$1] = null;
      this[_list$0] = list;
      this[_modificationCount] = list[_modificationCount];
      this[_next$2] = list[_first];
      this[_visitedFirst] = false;
      ;
    }).prototype = _LinkedListIterator.prototype;
    dart.addTypeTests(_LinkedListIterator);
    _LinkedListIterator.prototype[_is__LinkedListIterator_default$] = true;
    dart.addTypeCaches(_LinkedListIterator);
    _LinkedListIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(_LinkedListIterator, () => ({
      __proto__: dart.getMethods(_LinkedListIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_LinkedListIterator, () => ({
      __proto__: dart.getGetters(_LinkedListIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(_LinkedListIterator, I[24]);
    dart.setFieldSignature(_LinkedListIterator, () => ({
      __proto__: dart.getFields(_LinkedListIterator.__proto__),
      [_list$0]: dart.finalFieldType(collection.LinkedList$(E)),
      [_modificationCount]: dart.finalFieldType(core.int),
      [_current$1]: dart.fieldType(dart.nullable(E)),
      [_next$2]: dart.fieldType(dart.nullable(E)),
      [_visitedFirst]: dart.fieldType(core.bool)
    }));
    return _LinkedListIterator;
  });
  collection._LinkedListIterator = collection._LinkedListIterator$();
  dart.addTypeTests(collection._LinkedListIterator, _is__LinkedListIterator_default$);
  var _list$1 = dart.privateName(collection, "LinkedListEntry._list");
  var _next$3 = dart.privateName(collection, "LinkedListEntry._next");
  var _previous$3 = dart.privateName(collection, "LinkedListEntry._previous");
  const _is_LinkedListEntry_default$ = Symbol('_is_LinkedListEntry_default');
  collection.LinkedListEntry$ = dart.generic(E => {
    var LinkedListOfE = () => (LinkedListOfE = dart.constFn(collection.LinkedList$(E)))();
    var LinkedListNOfE = () => (LinkedListNOfE = dart.constFn(dart.nullable(LinkedListOfE())))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    class LinkedListEntry extends core.Object {
      get [_list$0]() {
        return this[_list$1];
      }
      set [_list$0](value) {
        this[_list$1] = LinkedListNOfE().as(value);
      }
      get [_next$2]() {
        return this[_next$3];
      }
      set [_next$2](value) {
        this[_next$3] = EN().as(value);
      }
      get [_previous$2]() {
        return this[_previous$3];
      }
      set [_previous$2](value) {
        this[_previous$3] = EN().as(value);
      }
      get list() {
        return this[_list$0];
      }
      unlink() {
        dart.nullCheck(this[_list$0])[_unlink](E.as(this));
      }
      get next() {
        if (this[_list$0] == null || dart.nullCheck(this[_list$0]).first == this[_next$2]) return null;
        return this[_next$2];
      }
      get previous() {
        if (this[_list$0] == null || this === dart.nullCheck(this[_list$0]).first) return null;
        return this[_previous$2];
      }
      insertAfter(entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 262, 22, "entry");
        dart.nullCheck(this[_list$0])[_insertBefore](this[_next$2], entry, {updateFirst: false});
      }
      insertBefore(entry) {
        E.as(entry);
        if (entry == null) dart.nullFailed(I[82], 270, 23, "entry");
        dart.nullCheck(this[_list$0])[_insertBefore](E.as(this), entry, {updateFirst: true});
      }
    }
    (LinkedListEntry.new = function() {
      this[_list$1] = null;
      this[_next$3] = null;
      this[_previous$3] = null;
      ;
    }).prototype = LinkedListEntry.prototype;
    dart.addTypeTests(LinkedListEntry);
    LinkedListEntry.prototype[_is_LinkedListEntry_default$] = true;
    dart.addTypeCaches(LinkedListEntry);
    dart.setMethodSignature(LinkedListEntry, () => ({
      __proto__: dart.getMethods(LinkedListEntry.__proto__),
      unlink: dart.fnType(dart.void, []),
      insertAfter: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      insertBefore: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(LinkedListEntry, () => ({
      __proto__: dart.getGetters(LinkedListEntry.__proto__),
      list: dart.nullable(collection.LinkedList$(E)),
      next: dart.nullable(E),
      previous: dart.nullable(E)
    }));
    dart.setLibraryUri(LinkedListEntry, I[24]);
    dart.setFieldSignature(LinkedListEntry, () => ({
      __proto__: dart.getFields(LinkedListEntry.__proto__),
      [_list$0]: dart.fieldType(dart.nullable(collection.LinkedList$(E))),
      [_next$2]: dart.fieldType(dart.nullable(E)),
      [_previous$2]: dart.fieldType(dart.nullable(E))
    }));
    return LinkedListEntry;
  });
  collection.LinkedListEntry = collection.LinkedListEntry$();
  dart.addTypeTests(collection.LinkedListEntry, _is_LinkedListEntry_default$);
  const _is__MapBaseValueIterable_default = Symbol('_is__MapBaseValueIterable_default');
  collection._MapBaseValueIterable$ = dart.generic((K, V) => {
    var _MapBaseValueIteratorOfK$V = () => (_MapBaseValueIteratorOfK$V = dart.constFn(collection._MapBaseValueIterator$(K, V)))();
    class _MapBaseValueIterable extends _internal.EfficientLengthIterable$(V) {
      get length() {
        return this[_map$5][$length];
      }
      get isEmpty() {
        return this[_map$5][$isEmpty];
      }
      get isNotEmpty() {
        return this[_map$5][$isNotEmpty];
      }
      get first() {
        return V.as(this[_map$5][$_get](this[_map$5][$keys][$first]));
      }
      get single() {
        return V.as(this[_map$5][$_get](this[_map$5][$keys][$single]));
      }
      get last() {
        return V.as(this[_map$5][$_get](this[_map$5][$keys][$last]));
      }
      get iterator() {
        return new (_MapBaseValueIteratorOfK$V()).new(this[_map$5]);
      }
    }
    (_MapBaseValueIterable.new = function(_map) {
      if (_map == null) dart.nullFailed(I[35], 227, 30, "_map");
      this[_map$5] = _map;
      _MapBaseValueIterable.__proto__.new.call(this);
      ;
    }).prototype = _MapBaseValueIterable.prototype;
    dart.addTypeTests(_MapBaseValueIterable);
    _MapBaseValueIterable.prototype[_is__MapBaseValueIterable_default] = true;
    dart.addTypeCaches(_MapBaseValueIterable);
    dart.setGetterSignature(_MapBaseValueIterable, () => ({
      __proto__: dart.getGetters(_MapBaseValueIterable.__proto__),
      iterator: core.Iterator$(V),
      [$iterator]: core.Iterator$(V)
    }));
    dart.setLibraryUri(_MapBaseValueIterable, I[24]);
    dart.setFieldSignature(_MapBaseValueIterable, () => ({
      __proto__: dart.getFields(_MapBaseValueIterable.__proto__),
      [_map$5]: dart.finalFieldType(core.Map$(K, V))
    }));
    dart.defineExtensionAccessors(_MapBaseValueIterable, [
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'single',
      'last',
      'iterator'
    ]);
    return _MapBaseValueIterable;
  });
  collection._MapBaseValueIterable = collection._MapBaseValueIterable$();
  dart.addTypeTests(collection._MapBaseValueIterable, _is__MapBaseValueIterable_default);
  var _keys = dart.privateName(collection, "_keys");
  const _is__MapBaseValueIterator_default = Symbol('_is__MapBaseValueIterator_default');
  collection._MapBaseValueIterator$ = dart.generic((K, V) => {
    class _MapBaseValueIterator extends core.Object {
      moveNext() {
        if (dart.test(this[_keys].moveNext())) {
          this[_current$1] = this[_map$5][$_get](this[_keys].current);
          return true;
        }
        this[_current$1] = null;
        return false;
      }
      get current() {
        return V.as(this[_current$1]);
      }
    }
    (_MapBaseValueIterator.new = function(map) {
      if (map == null) dart.nullFailed(I[35], 248, 35, "map");
      this[_current$1] = null;
      this[_map$5] = map;
      this[_keys] = map[$keys][$iterator];
      ;
    }).prototype = _MapBaseValueIterator.prototype;
    dart.addTypeTests(_MapBaseValueIterator);
    _MapBaseValueIterator.prototype[_is__MapBaseValueIterator_default] = true;
    dart.addTypeCaches(_MapBaseValueIterator);
    _MapBaseValueIterator[dart.implements] = () => [core.Iterator$(V)];
    dart.setMethodSignature(_MapBaseValueIterator, () => ({
      __proto__: dart.getMethods(_MapBaseValueIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_MapBaseValueIterator, () => ({
      __proto__: dart.getGetters(_MapBaseValueIterator.__proto__),
      current: V
    }));
    dart.setLibraryUri(_MapBaseValueIterator, I[24]);
    dart.setFieldSignature(_MapBaseValueIterator, () => ({
      __proto__: dart.getFields(_MapBaseValueIterator.__proto__),
      [_keys]: dart.finalFieldType(core.Iterator$(K)),
      [_map$5]: dart.finalFieldType(core.Map$(K, V)),
      [_current$1]: dart.fieldType(dart.nullable(V))
    }));
    return _MapBaseValueIterator;
  });
  collection._MapBaseValueIterator = collection._MapBaseValueIterator$();
  dart.addTypeTests(collection._MapBaseValueIterator, _is__MapBaseValueIterator_default);
  var _map$8 = dart.privateName(collection, "MapView._map");
  const _is_MapView_default = Symbol('_is_MapView_default');
  collection.MapView$ = dart.generic((K, V) => {
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var MapEntryOfK$V = () => (MapEntryOfK$V = dart.constFn(core.MapEntry$(K, V)))();
    var IterableOfMapEntryOfK$V = () => (IterableOfMapEntryOfK$V = dart.constFn(core.Iterable$(MapEntryOfK$V())))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    class MapView extends core.Object {
      get [_map$5]() {
        return this[_map$8];
      }
      set [_map$5](value) {
        super[_map$5] = value;
      }
      cast(RK, RV) {
        return this[_map$5][$cast](RK, RV);
      }
      _get(key) {
        return this[_map$5][$_get](key);
      }
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        this[_map$5][$_set](key, value);
        return value$;
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[35], 330, 25, "other");
        this[_map$5][$addAll](other);
      }
      clear() {
        this[_map$5][$clear]();
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[35], 338, 26, "ifAbsent");
        return this[_map$5][$putIfAbsent](key, ifAbsent);
      }
      containsKey(key) {
        return this[_map$5][$containsKey](key);
      }
      containsValue(value) {
        return this[_map$5][$containsValue](value);
      }
      forEach(action) {
        if (action == null) dart.nullFailed(I[35], 341, 21, "action");
        this[_map$5][$forEach](action);
      }
      get isEmpty() {
        return this[_map$5][$isEmpty];
      }
      get isNotEmpty() {
        return this[_map$5][$isNotEmpty];
      }
      get length() {
        return this[_map$5][$length];
      }
      get keys() {
        return this[_map$5][$keys];
      }
      remove(key) {
        return this[_map$5][$remove](key);
      }
      toString() {
        return dart.toString(this[_map$5]);
      }
      get values() {
        return this[_map$5][$values];
      }
      get entries() {
        return this[_map$5][$entries];
      }
      addEntries(entries) {
        IterableOfMapEntryOfK$V().as(entries);
        if (entries == null) dart.nullFailed(I[35], 355, 44, "entries");
        this[_map$5][$addEntries](entries);
      }
      map(K2, V2, transform) {
        if (transform == null) dart.nullFailed(I[35], 359, 44, "transform");
        return this[_map$5][$map](K2, V2, transform);
      }
      update(key, update, opts) {
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[35], 362, 21, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        return this[_map$5][$update](key, update, {ifAbsent: ifAbsent});
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[35], 365, 20, "update");
        this[_map$5][$updateAll](update);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[35], 369, 25, "test");
        this[_map$5][$removeWhere](test);
      }
    }
    (MapView.new = function(map) {
      if (map == null) dart.nullFailed(I[35], 322, 27, "map");
      this[_map$8] = map;
      ;
    }).prototype = MapView.prototype;
    MapView.prototype[dart.isMap] = true;
    dart.addTypeTests(MapView);
    MapView.prototype[_is_MapView_default] = true;
    dart.addTypeCaches(MapView);
    MapView[dart.implements] = () => [core.Map$(K, V)];
    dart.setMethodSignature(MapView, () => ({
      __proto__: dart.getMethods(MapView.__proto__),
      cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      putIfAbsent: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$putIfAbsent]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      containsKey: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$containsKey]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      containsValue: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$containsValue]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
      [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      addEntries: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addEntries]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      update: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      [$update]: dart.fnType(V, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
      updateAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$updateAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])])
    }));
    dart.setGetterSignature(MapView, () => ({
      __proto__: dart.getGetters(MapView.__proto__),
      isEmpty: core.bool,
      [$isEmpty]: core.bool,
      isNotEmpty: core.bool,
      [$isNotEmpty]: core.bool,
      length: core.int,
      [$length]: core.int,
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K),
      values: core.Iterable$(V),
      [$values]: core.Iterable$(V),
      entries: core.Iterable$(core.MapEntry$(K, V)),
      [$entries]: core.Iterable$(core.MapEntry$(K, V))
    }));
    dart.setLibraryUri(MapView, I[24]);
    dart.setFieldSignature(MapView, () => ({
      __proto__: dart.getFields(MapView.__proto__),
      [_map$5]: dart.finalFieldType(core.Map$(K, V))
    }));
    dart.defineExtensionMethods(MapView, [
      'cast',
      '_get',
      '_set',
      'addAll',
      'clear',
      'putIfAbsent',
      'containsKey',
      'containsValue',
      'forEach',
      'remove',
      'toString',
      'addEntries',
      'map',
      'update',
      'updateAll',
      'removeWhere'
    ]);
    dart.defineExtensionAccessors(MapView, [
      'isEmpty',
      'isNotEmpty',
      'length',
      'keys',
      'values',
      'entries'
    ]);
    return MapView;
  });
  collection.MapView = collection.MapView$();
  dart.addTypeTests(collection.MapView, _is_MapView_default);
  const _is_UnmodifiableMapView_default = Symbol('_is_UnmodifiableMapView_default');
  collection.UnmodifiableMapView$ = dart.generic((K, V) => {
    const MapView__UnmodifiableMapMixin$36 = class MapView__UnmodifiableMapMixin extends collection.MapView$(K, V) {};
    (MapView__UnmodifiableMapMixin$36.new = function(map) {
      MapView__UnmodifiableMapMixin$36.__proto__.new.call(this, map);
    }).prototype = MapView__UnmodifiableMapMixin$36.prototype;
    dart.applyMixin(MapView__UnmodifiableMapMixin$36, collection._UnmodifiableMapMixin$(K, V));
    class UnmodifiableMapView extends MapView__UnmodifiableMapMixin$36 {
      cast(RK, RV) {
        return new (collection.UnmodifiableMapView$(RK, RV)).new(this[_map$5][$cast](RK, RV));
      }
    }
    (UnmodifiableMapView.new = function(map) {
      if (map == null) dart.nullFailed(I[35], 381, 33, "map");
      UnmodifiableMapView.__proto__.new.call(this, map);
      ;
    }).prototype = UnmodifiableMapView.prototype;
    dart.addTypeTests(UnmodifiableMapView);
    UnmodifiableMapView.prototype[_is_UnmodifiableMapView_default] = true;
    dart.addTypeCaches(UnmodifiableMapView);
    dart.setMethodSignature(UnmodifiableMapView, () => ({
      __proto__: dart.getMethods(UnmodifiableMapView.__proto__),
      cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []], (RK, RV) => [dart.nullable(core.Object), dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(UnmodifiableMapView, I[24]);
    dart.defineExtensionMethods(UnmodifiableMapView, ['cast']);
    return UnmodifiableMapView;
  });
  collection.UnmodifiableMapView = collection.UnmodifiableMapView$();
  dart.addTypeTests(collection.UnmodifiableMapView, _is_UnmodifiableMapView_default);
  const _is_Queue_default = Symbol('_is_Queue_default');
  collection.Queue$ = dart.generic(E => {
    class Queue extends core.Object {
      static castFrom(S, T, source) {
        if (source == null) dart.nullFailed(I[83], 55, 43, "source");
        return new (_internal.CastQueue$(S, T)).new(source);
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (Queue[dart.mixinNew] = function() {
    }).prototype = Queue.prototype;
    dart.addTypeTests(Queue);
    Queue.prototype[_is_Queue_default] = true;
    dart.addTypeCaches(Queue);
    Queue[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
    dart.setLibraryUri(Queue, I[24]);
    return Queue;
  });
  collection.Queue = collection.Queue$();
  dart.addTypeTests(collection.Queue, _is_Queue_default);
  var _previousLink = dart.privateName(collection, "_DoubleLink._previousLink");
  var _nextLink = dart.privateName(collection, "_DoubleLink._nextLink");
  var _previousLink$ = dart.privateName(collection, "_previousLink");
  var _nextLink$ = dart.privateName(collection, "_nextLink");
  var _link = dart.privateName(collection, "_link");
  const _is__DoubleLink_default = Symbol('_is__DoubleLink_default');
  collection._DoubleLink$ = dart.generic(Link => {
    var LinkN = () => (LinkN = dart.constFn(dart.nullable(Link)))();
    class _DoubleLink extends core.Object {
      get [_previousLink$]() {
        return this[_previousLink];
      }
      set [_previousLink$](value) {
        this[_previousLink] = LinkN().as(value);
      }
      get [_nextLink$]() {
        return this[_nextLink];
      }
      set [_nextLink$](value) {
        this[_nextLink] = LinkN().as(value);
      }
      [_link](previous, next) {
        this[_nextLink$] = next;
        this[_previousLink$] = previous;
        if (previous != null) previous[_nextLink$] = Link.as(this);
        if (next != null) next[_previousLink$] = Link.as(this);
      }
      [_unlink]() {
        if (this[_previousLink$] != null) dart.nullCheck(this[_previousLink$])[_nextLink$] = this[_nextLink$];
        if (this[_nextLink$] != null) dart.nullCheck(this[_nextLink$])[_previousLink$] = this[_previousLink$];
        this[_nextLink$] = null;
        this[_previousLink$] = null;
      }
    }
    (_DoubleLink.new = function() {
      this[_previousLink] = null;
      this[_nextLink] = null;
      ;
    }).prototype = _DoubleLink.prototype;
    dart.addTypeTests(_DoubleLink);
    _DoubleLink.prototype[_is__DoubleLink_default] = true;
    dart.addTypeCaches(_DoubleLink);
    dart.setMethodSignature(_DoubleLink, () => ({
      __proto__: dart.getMethods(_DoubleLink.__proto__),
      [_link]: dart.fnType(dart.void, [dart.nullable(Link), dart.nullable(Link)]),
      [_unlink]: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_DoubleLink, I[24]);
    dart.setFieldSignature(_DoubleLink, () => ({
      __proto__: dart.getFields(_DoubleLink.__proto__),
      [_previousLink$]: dart.fieldType(dart.nullable(Link)),
      [_nextLink$]: dart.fieldType(dart.nullable(Link))
    }));
    return _DoubleLink;
  });
  collection._DoubleLink = collection._DoubleLink$();
  dart.addTypeTests(collection._DoubleLink, _is__DoubleLink_default);
  var _element$ = dart.privateName(collection, "DoubleLinkedQueueEntry._element");
  var _element = dart.privateName(collection, "_element");
  const _is_DoubleLinkedQueueEntry_default = Symbol('_is_DoubleLinkedQueueEntry_default');
  collection.DoubleLinkedQueueEntry$ = dart.generic(E => {
    var DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
    class DoubleLinkedQueueEntry extends collection._DoubleLink {
      get [_element]() {
        return this[_element$];
      }
      set [_element](value) {
        this[_element$] = value;
      }
      get element() {
        return E.as(this[_element]);
      }
      set element(element) {
        E.as(element);
        this[_element] = element;
      }
      append(e) {
        E.as(e);
        new (DoubleLinkedQueueEntryOfE()).new(e)[_link](this, this[_nextLink$]);
      }
      prepend(e) {
        E.as(e);
        new (DoubleLinkedQueueEntryOfE()).new(e)[_link](this[_previousLink$], this);
      }
      remove() {
        this[_unlink]();
        return this.element;
      }
      previousEntry() {
        return this[_previousLink$];
      }
      nextEntry() {
        return this[_nextLink$];
      }
    }
    (DoubleLinkedQueueEntry.new = function(_element) {
      this[_element$] = _element;
      DoubleLinkedQueueEntry.__proto__.new.call(this);
      ;
    }).prototype = DoubleLinkedQueueEntry.prototype;
    dart.addTypeTests(DoubleLinkedQueueEntry);
    DoubleLinkedQueueEntry.prototype[_is_DoubleLinkedQueueEntry_default] = true;
    dart.addTypeCaches(DoubleLinkedQueueEntry);
    dart.setMethodSignature(DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getMethods(DoubleLinkedQueueEntry.__proto__),
      append: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      prepend: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(E, []),
      previousEntry: dart.fnType(dart.nullable(collection.DoubleLinkedQueueEntry$(E)), []),
      nextEntry: dart.fnType(dart.nullable(collection.DoubleLinkedQueueEntry$(E)), [])
    }));
    dart.setGetterSignature(DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getGetters(DoubleLinkedQueueEntry.__proto__),
      element: E
    }));
    dart.setSetterSignature(DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getSetters(DoubleLinkedQueueEntry.__proto__),
      element: dart.nullable(core.Object)
    }));
    dart.setLibraryUri(DoubleLinkedQueueEntry, I[24]);
    dart.setFieldSignature(DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getFields(DoubleLinkedQueueEntry.__proto__),
      [_element]: dart.fieldType(dart.nullable(E))
    }));
    return DoubleLinkedQueueEntry;
  }, E => {
    dart.setBaseClass(collection.DoubleLinkedQueueEntry$(E), collection._DoubleLink$(collection.DoubleLinkedQueueEntry$(E)));
  });
  collection.DoubleLinkedQueueEntry = collection.DoubleLinkedQueueEntry$();
  dart.addTypeTests(collection.DoubleLinkedQueueEntry, _is_DoubleLinkedQueueEntry_default);
  var _queue$ = dart.privateName(collection, "_queue");
  var _append = dart.privateName(collection, "_append");
  var _prepend = dart.privateName(collection, "_prepend");
  var _asNonSentinelEntry = dart.privateName(collection, "_asNonSentinelEntry");
  const _is__DoubleLinkedQueueEntry_default = Symbol('_is__DoubleLinkedQueueEntry_default');
  collection._DoubleLinkedQueueEntry$ = dart.generic(E => {
    var _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
    var _DoubleLinkedQueueEntryOfE = () => (_DoubleLinkedQueueEntryOfE = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
    class _DoubleLinkedQueueEntry extends collection.DoubleLinkedQueueEntry$(E) {
      [_append](e) {
        E.as(e);
        new (_DoubleLinkedQueueElementOfE()).new(e, this[_queue$])[_link](this, this[_nextLink$]);
      }
      [_prepend](e) {
        E.as(e);
        new (_DoubleLinkedQueueElementOfE()).new(e, this[_queue$])[_link](this[_previousLink$], this);
      }
      get [_element]() {
        return E.as(super[_element]);
      }
      set [_element](value) {
        super[_element] = value;
      }
      nextEntry() {
        let entry = _DoubleLinkedQueueEntryOfE().as(this[_nextLink$]);
        return entry[_asNonSentinelEntry]();
      }
      previousEntry() {
        let entry = _DoubleLinkedQueueEntryOfE().as(this[_previousLink$]);
        return entry[_asNonSentinelEntry]();
      }
    }
    (_DoubleLinkedQueueEntry.new = function(element, _queue) {
      this[_queue$] = _queue;
      _DoubleLinkedQueueEntry.__proto__.new.call(this, element);
      ;
    }).prototype = _DoubleLinkedQueueEntry.prototype;
    dart.addTypeTests(_DoubleLinkedQueueEntry);
    _DoubleLinkedQueueEntry.prototype[_is__DoubleLinkedQueueEntry_default] = true;
    dart.addTypeCaches(_DoubleLinkedQueueEntry);
    dart.setMethodSignature(_DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getMethods(_DoubleLinkedQueueEntry.__proto__),
      [_append]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [_prepend]: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getGetters(_DoubleLinkedQueueEntry.__proto__),
      [_element]: E
    }));
    dart.setLibraryUri(_DoubleLinkedQueueEntry, I[24]);
    dart.setFieldSignature(_DoubleLinkedQueueEntry, () => ({
      __proto__: dart.getFields(_DoubleLinkedQueueEntry.__proto__),
      [_queue$]: dart.fieldType(dart.nullable(collection.DoubleLinkedQueue$(E)))
    }));
    return _DoubleLinkedQueueEntry;
  });
  collection._DoubleLinkedQueueEntry = collection._DoubleLinkedQueueEntry$();
  dart.addTypeTests(collection._DoubleLinkedQueueEntry, _is__DoubleLinkedQueueEntry_default);
  var _elementCount = dart.privateName(collection, "_elementCount");
  var _remove = dart.privateName(collection, "_remove");
  const _is__DoubleLinkedQueueElement_default = Symbol('_is__DoubleLinkedQueueElement_default');
  collection._DoubleLinkedQueueElement$ = dart.generic(E => {
    class _DoubleLinkedQueueElement extends collection._DoubleLinkedQueueEntry$(E) {
      append(e) {
        let t171;
        E.as(e);
        this[_append](e);
        if (this[_queue$] != null) {
          t171 = dart.nullCheck(this[_queue$]);
          t171[_elementCount] = dart.notNull(t171[_elementCount]) + 1;
        }
      }
      prepend(e) {
        let t171;
        E.as(e);
        this[_prepend](e);
        if (this[_queue$] != null) {
          t171 = dart.nullCheck(this[_queue$]);
          t171[_elementCount] = dart.notNull(t171[_elementCount]) + 1;
        }
      }
      [_remove]() {
        this[_queue$] = null;
        this[_unlink]();
        return this.element;
      }
      remove() {
        let t171;
        if (this[_queue$] != null) {
          t171 = dart.nullCheck(this[_queue$]);
          t171[_elementCount] = dart.notNull(t171[_elementCount]) - 1;
        }
        return this[_remove]();
      }
      [_asNonSentinelEntry]() {
        return this;
      }
    }
    (_DoubleLinkedQueueElement.new = function(element, queue) {
      _DoubleLinkedQueueElement.__proto__.new.call(this, element, queue);
      ;
    }).prototype = _DoubleLinkedQueueElement.prototype;
    dart.addTypeTests(_DoubleLinkedQueueElement);
    _DoubleLinkedQueueElement.prototype[_is__DoubleLinkedQueueElement_default] = true;
    dart.addTypeCaches(_DoubleLinkedQueueElement);
    dart.setMethodSignature(_DoubleLinkedQueueElement, () => ({
      __proto__: dart.getMethods(_DoubleLinkedQueueElement.__proto__),
      [_remove]: dart.fnType(E, []),
      [_asNonSentinelEntry]: dart.fnType(dart.nullable(collection._DoubleLinkedQueueElement$(E)), [])
    }));
    dart.setLibraryUri(_DoubleLinkedQueueElement, I[24]);
    return _DoubleLinkedQueueElement;
  });
  collection._DoubleLinkedQueueElement = collection._DoubleLinkedQueueElement$();
  dart.addTypeTests(collection._DoubleLinkedQueueElement, _is__DoubleLinkedQueueElement_default);
  const _is__DoubleLinkedQueueSentinel_default = Symbol('_is__DoubleLinkedQueueSentinel_default');
  collection._DoubleLinkedQueueSentinel$ = dart.generic(E => {
    class _DoubleLinkedQueueSentinel extends collection._DoubleLinkedQueueEntry$(E) {
      [_asNonSentinelEntry]() {
        return null;
      }
      [_remove]() {
        dart.throw(_internal.IterableElementError.noElement());
      }
      get [_element]() {
        dart.throw(_internal.IterableElementError.noElement());
      }
      set [_element](value) {
        super[_element] = value;
      }
    }
    (_DoubleLinkedQueueSentinel.new = function(queue) {
      if (queue == null) dart.nullFailed(I[83], 247, 51, "queue");
      _DoubleLinkedQueueSentinel.__proto__.new.call(this, null, queue);
      this[_previousLink$] = this;
      this[_nextLink$] = this;
    }).prototype = _DoubleLinkedQueueSentinel.prototype;
    dart.addTypeTests(_DoubleLinkedQueueSentinel);
    _DoubleLinkedQueueSentinel.prototype[_is__DoubleLinkedQueueSentinel_default] = true;
    dart.addTypeCaches(_DoubleLinkedQueueSentinel);
    dart.setMethodSignature(_DoubleLinkedQueueSentinel, () => ({
      __proto__: dart.getMethods(_DoubleLinkedQueueSentinel.__proto__),
      [_asNonSentinelEntry]: dart.fnType(dart.nullable(collection.DoubleLinkedQueueEntry$(E)), []),
      [_remove]: dart.fnType(E, [])
    }));
    dart.setLibraryUri(_DoubleLinkedQueueSentinel, I[24]);
    return _DoubleLinkedQueueSentinel;
  });
  collection._DoubleLinkedQueueSentinel = collection._DoubleLinkedQueueSentinel$();
  dart.addTypeTests(collection._DoubleLinkedQueueSentinel, _is__DoubleLinkedQueueSentinel_default);
  var __DoubleLinkedQueue__sentinel = dart.privateName(collection, "_#DoubleLinkedQueue#_sentinel");
  var __DoubleLinkedQueue__sentinel_isSet = dart.privateName(collection, "_#DoubleLinkedQueue#_sentinel#isSet");
  var _sentinel = dart.privateName(collection, "_sentinel");
  const _is_DoubleLinkedQueue_default = Symbol('_is_DoubleLinkedQueue_default');
  collection.DoubleLinkedQueue$ = dart.generic(E => {
    var _DoubleLinkedQueueSentinelOfE = () => (_DoubleLinkedQueueSentinelOfE = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var _DoubleLinkedQueueEntryOfE = () => (_DoubleLinkedQueueEntryOfE = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
    var _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
    var _DoubleLinkedQueueIteratorOfE = () => (_DoubleLinkedQueueIteratorOfE = dart.constFn(collection._DoubleLinkedQueueIterator$(E)))();
    class DoubleLinkedQueue extends core.Iterable$(E) {
      get [_sentinel]() {
        let t171;
        if (!dart.test(this[__DoubleLinkedQueue__sentinel_isSet])) {
          this[__DoubleLinkedQueue__sentinel] = new (_DoubleLinkedQueueSentinelOfE()).new(this);
          this[__DoubleLinkedQueue__sentinel_isSet] = true;
        }
        t171 = this[__DoubleLinkedQueue__sentinel];
        return t171;
      }
      set [_sentinel](t171) {
        if (t171 == null) dart.nullFailed(I[83], 271, 38, "null");
        this[__DoubleLinkedQueue__sentinel_isSet] = true;
        this[__DoubleLinkedQueue__sentinel] = t171;
      }
      static from(elements) {
        if (elements == null) dart.nullFailed(I[83], 291, 52, "elements");
        let list = new (collection.DoubleLinkedQueue$(E)).new();
        for (let e of elements) {
          list.addLast(E.as(e));
        }
        return list;
      }
      static of(elements) {
        let t172;
        if (elements == null) dart.nullFailed(I[83], 303, 44, "elements");
        t172 = new (collection.DoubleLinkedQueue$(E)).new();
        return (() => {
          t172.addAll(elements);
          return t172;
        })();
      }
      cast(R) {
        return collection.Queue.castFrom(E, R, this);
      }
      get length() {
        return this[_elementCount];
      }
      addLast(value) {
        E.as(value);
        this[_sentinel][_prepend](value);
        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
      }
      addFirst(value) {
        E.as(value);
        this[_sentinel][_append](value);
        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
      }
      add(value) {
        E.as(value);
        this[_sentinel][_prepend](value);
        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[83], 324, 27, "iterable");
        for (let value of iterable) {
          this[_sentinel][_prepend](value);
          this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
        }
      }
      removeLast() {
        let lastEntry = _DoubleLinkedQueueEntryOfE().as(this[_sentinel][_previousLink$]);
        let result = lastEntry[_remove]();
        this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
        return result;
      }
      removeFirst() {
        let firstEntry = _DoubleLinkedQueueEntryOfE().as(this[_sentinel][_nextLink$]);
        let result = firstEntry[_remove]();
        this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
        return result;
      }
      remove(o) {
        let entry = _DoubleLinkedQueueEntryOfE().as(this[_sentinel][_nextLink$]);
        while (entry != this[_sentinel]) {
          let equals = dart.equals(entry[_element], o);
          if (this !== entry[_queue$]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          if (equals) {
            entry[_remove]();
            this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
            return true;
          }
          entry = _DoubleLinkedQueueEntryOfE().as(entry[_nextLink$]);
        }
        return false;
      }
      [_filter](test, removeMatching) {
        if (test == null) dart.nullFailed(I[83], 366, 21, "test");
        if (removeMatching == null) dart.nullFailed(I[83], 366, 43, "removeMatching");
        let entry = _DoubleLinkedQueueEntryOfE().as(this[_sentinel][_nextLink$]);
        while (entry != this[_sentinel]) {
          let matches = test(entry[_element]);
          if (this !== entry[_queue$]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          let next = dart.nullCheck(entry[_nextLink$]);
          if (removeMatching == matches) {
            entry[_remove]();
            this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
          }
          entry = _DoubleLinkedQueueEntryOfE().as(next);
        }
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[83], 384, 25, "test");
        this[_filter](test, true);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[83], 388, 25, "test");
        this[_filter](test, false);
      }
      get first() {
        let firstEntry = dart.nullCheck(this[_sentinel][_nextLink$]);
        return E.as(firstEntry[_element]);
      }
      get last() {
        let lastEntry = dart.nullCheck(this[_sentinel][_previousLink$]);
        return E.as(lastEntry[_element]);
      }
      get single() {
        if (this[_sentinel][_nextLink$] == this[_sentinel][_previousLink$]) {
          let entry = dart.nullCheck(this[_sentinel][_nextLink$]);
          return E.as(entry[_element]);
        }
        dart.throw(_internal.IterableElementError.tooMany());
      }
      firstEntry() {
        return this[_sentinel].nextEntry();
      }
      lastEntry() {
        return this[_sentinel].previousEntry();
      }
      get isEmpty() {
        return this[_sentinel][_nextLink$] == this[_sentinel];
      }
      clear() {
        this[_sentinel][_nextLink$] = this[_sentinel];
        this[_sentinel][_previousLink$] = this[_sentinel];
        this[_elementCount] = 0;
      }
      forEachEntry(action) {
        if (action == null) dart.nullFailed(I[83], 466, 26, "action");
        let entry = _DoubleLinkedQueueEntryOfE().as(this[_sentinel][_nextLink$]);
        while (entry != this[_sentinel]) {
          let element = _DoubleLinkedQueueElementOfE().as(entry);
          let next = _DoubleLinkedQueueEntryOfE().as(element[_nextLink$]);
          action(element);
          if (this === entry[_queue$]) {
            next = _DoubleLinkedQueueEntryOfE().as(entry[_nextLink$]);
          } else if (this !== next[_queue$]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          entry = next;
        }
      }
      get iterator() {
        return new (_DoubleLinkedQueueIteratorOfE()).new(this[_sentinel]);
      }
      toString() {
        return collection.IterableBase.iterableToFullString(this, "{", "}");
      }
    }
    (DoubleLinkedQueue.new = function() {
      this[__DoubleLinkedQueue__sentinel] = null;
      this[__DoubleLinkedQueue__sentinel_isSet] = false;
      this[_elementCount] = 0;
      DoubleLinkedQueue.__proto__.new.call(this);
      ;
    }).prototype = DoubleLinkedQueue.prototype;
    dart.addTypeTests(DoubleLinkedQueue);
    DoubleLinkedQueue.prototype[_is_DoubleLinkedQueue_default] = true;
    dart.addTypeCaches(DoubleLinkedQueue);
    DoubleLinkedQueue[dart.implements] = () => [collection.Queue$(E)];
    dart.setMethodSignature(DoubleLinkedQueue, () => ({
      __proto__: dart.getMethods(DoubleLinkedQueue.__proto__),
      cast: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      addLast: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addFirst: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeLast: dart.fnType(E, []),
      removeFirst: dart.fnType(E, []),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [_filter]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      firstEntry: dart.fnType(dart.nullable(collection.DoubleLinkedQueueEntry$(E)), []),
      lastEntry: dart.fnType(dart.nullable(collection.DoubleLinkedQueueEntry$(E)), []),
      clear: dart.fnType(dart.void, []),
      forEachEntry: dart.fnType(dart.void, [dart.fnType(dart.void, [collection.DoubleLinkedQueueEntry$(E)])])
    }));
    dart.setGetterSignature(DoubleLinkedQueue, () => ({
      __proto__: dart.getGetters(DoubleLinkedQueue.__proto__),
      [_sentinel]: collection._DoubleLinkedQueueSentinel$(E),
      iterator: collection._DoubleLinkedQueueIterator$(E),
      [$iterator]: collection._DoubleLinkedQueueIterator$(E)
    }));
    dart.setSetterSignature(DoubleLinkedQueue, () => ({
      __proto__: dart.getSetters(DoubleLinkedQueue.__proto__),
      [_sentinel]: collection._DoubleLinkedQueueSentinel$(E)
    }));
    dart.setLibraryUri(DoubleLinkedQueue, I[24]);
    dart.setFieldSignature(DoubleLinkedQueue, () => ({
      __proto__: dart.getFields(DoubleLinkedQueue.__proto__),
      [__DoubleLinkedQueue__sentinel]: dart.fieldType(dart.nullable(collection._DoubleLinkedQueueSentinel$(E))),
      [__DoubleLinkedQueue__sentinel_isSet]: dart.fieldType(core.bool),
      [_elementCount]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(DoubleLinkedQueue, ['cast', 'toString']);
    dart.defineExtensionAccessors(DoubleLinkedQueue, [
      'length',
      'first',
      'last',
      'single',
      'isEmpty',
      'iterator'
    ]);
    return DoubleLinkedQueue;
  });
  collection.DoubleLinkedQueue = collection.DoubleLinkedQueue$();
  dart.addTypeTests(collection.DoubleLinkedQueue, _is_DoubleLinkedQueue_default);
  var _nextEntry = dart.privateName(collection, "_nextEntry");
  const _is__DoubleLinkedQueueIterator_default = Symbol('_is__DoubleLinkedQueueIterator_default');
  collection._DoubleLinkedQueueIterator$ = dart.generic(E => {
    var _DoubleLinkedQueueEntryOfE = () => (_DoubleLinkedQueueEntryOfE = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
    class _DoubleLinkedQueueIterator extends core.Object {
      moveNext() {
        if (this[_nextEntry] == this[_sentinel]) {
          this[_current$1] = null;
          this[_nextEntry] = null;
          this[_sentinel] = null;
          return false;
        }
        let elementEntry = _DoubleLinkedQueueEntryOfE().as(this[_nextEntry]);
        if (dart.nullCheck(this[_sentinel])[_queue$] != elementEntry[_queue$]) {
          dart.throw(new core.ConcurrentModificationError.new(dart.nullCheck(this[_sentinel])[_queue$]));
        }
        this[_current$1] = elementEntry[_element];
        this[_nextEntry] = elementEntry[_nextLink$];
        return true;
      }
      get current() {
        return E.as(this[_current$1]);
      }
    }
    (_DoubleLinkedQueueIterator.new = function(sentinel) {
      if (sentinel == null) dart.nullFailed(I[83], 500, 60, "sentinel");
      this[_current$1] = null;
      this[_sentinel] = sentinel;
      this[_nextEntry] = sentinel[_nextLink$];
      ;
    }).prototype = _DoubleLinkedQueueIterator.prototype;
    dart.addTypeTests(_DoubleLinkedQueueIterator);
    _DoubleLinkedQueueIterator.prototype[_is__DoubleLinkedQueueIterator_default] = true;
    dart.addTypeCaches(_DoubleLinkedQueueIterator);
    _DoubleLinkedQueueIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(_DoubleLinkedQueueIterator, () => ({
      __proto__: dart.getMethods(_DoubleLinkedQueueIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_DoubleLinkedQueueIterator, () => ({
      __proto__: dart.getGetters(_DoubleLinkedQueueIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(_DoubleLinkedQueueIterator, I[24]);
    dart.setFieldSignature(_DoubleLinkedQueueIterator, () => ({
      __proto__: dart.getFields(_DoubleLinkedQueueIterator.__proto__),
      [_sentinel]: dart.fieldType(dart.nullable(collection._DoubleLinkedQueueSentinel$(E))),
      [_nextEntry]: dart.fieldType(dart.nullable(collection.DoubleLinkedQueueEntry$(E))),
      [_current$1]: dart.fieldType(dart.nullable(E))
    }));
    return _DoubleLinkedQueueIterator;
  });
  collection._DoubleLinkedQueueIterator = collection._DoubleLinkedQueueIterator$();
  dart.addTypeTests(collection._DoubleLinkedQueueIterator, _is__DoubleLinkedQueueIterator_default);
  var _head = dart.privateName(collection, "_head");
  var _tail = dart.privateName(collection, "_tail");
  var _table = dart.privateName(collection, "_table");
  var _checkModification = dart.privateName(collection, "_checkModification");
  var _add$ = dart.privateName(collection, "_add");
  var _preGrow = dart.privateName(collection, "_preGrow");
  var _filterWhere = dart.privateName(collection, "_filterWhere");
  var _grow$ = dart.privateName(collection, "_grow");
  var _writeToList = dart.privateName(collection, "_writeToList");
  const _is_ListQueue_default = Symbol('_is_ListQueue_default');
  collection.ListQueue$ = dart.generic(E => {
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    var ListOfEN = () => (ListOfEN = dart.constFn(core.List$(EN())))();
    var _ListQueueIteratorOfE = () => (_ListQueueIteratorOfE = dart.constFn(collection._ListQueueIterator$(E)))();
    var ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class ListQueue extends _internal.ListIterable$(E) {
      static _calculateCapacity(initialCapacity) {
        if (initialCapacity == null || dart.notNull(initialCapacity) < 8) {
          return 8;
        } else if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) {
          return collection.ListQueue._nextPowerOf2(initialCapacity);
        }
        if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) dart.assertFailed(null, I[83], 553, 12, "_isPowerOf2(initialCapacity)");
        return initialCapacity;
      }
      static from(elements) {
        if (elements == null) dart.nullFailed(I[83], 570, 44, "elements");
        if (core.List.is(elements)) {
          let length = elements[$length];
          let queue = new (collection.ListQueue$(E)).new(dart.notNull(length) + 1);
          if (!(dart.notNull(queue[_table][$length]) > dart.notNull(length))) dart.assertFailed(null, I[83], 574, 14, "queue._table.length > length");
          for (let i = 0; i < dart.notNull(length); i = i + 1) {
            queue[_table][$_set](i, E.as(elements[$_get](i)));
          }
          queue[_tail] = length;
          return queue;
        } else {
          let capacity = 8;
          if (_internal.EfficientLengthIterable.is(elements)) {
            capacity = elements[$length];
          }
          let result = new (collection.ListQueue$(E)).new(capacity);
          for (let element of elements) {
            result.addLast(E.as(element));
          }
          return result;
        }
      }
      static of(elements) {
        let t172;
        if (elements == null) dart.nullFailed(I[83], 597, 36, "elements");
        t172 = new (collection.ListQueue$(E)).new();
        return (() => {
          t172.addAll(elements);
          return t172;
        })();
      }
      cast(R) {
        return collection.Queue.castFrom(E, R, this);
      }
      get iterator() {
        return new (_ListQueueIteratorOfE()).new(this);
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[83], 605, 21, "f");
        let modificationCount = this[_modificationCount];
        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
          f(E.as(this[_table][$_get](i)));
          this[_checkModification](modificationCount);
        }
      }
      get isEmpty() {
        return this[_head] == this[_tail];
      }
      get length() {
        return (dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notNull(this[_table][$length]) - 1) >>> 0;
      }
      get first() {
        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
        return E.as(this[_table][$_get](this[_head]));
      }
      get last() {
        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
        return E.as(this[_table][$_get]((dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0));
      }
      get single() {
        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
        return E.as(this[_table][$_get](this[_head]));
      }
      elementAt(index) {
        if (index == null) dart.nullFailed(I[83], 633, 19, "index");
        core.RangeError.checkValidIndex(index, this);
        return E.as(this[_table][$_get]((dart.notNull(this[_head]) + dart.notNull(index) & dart.notNull(this[_table][$length]) - 1) >>> 0));
      }
      toList(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[83], 638, 24, "growable");
        let mask = dart.notNull(this[_table][$length]) - 1;
        let length = (dart.notNull(this[_tail]) - dart.notNull(this[_head]) & mask) >>> 0;
        if (length === 0) return ListOfE().empty({growable: growable});
        let list = ListOfE().filled(length, this.first, {growable: growable});
        for (let i = 0; i < length; i = i + 1) {
          list[$_set](i, E.as(this[_table][$_get]((dart.notNull(this[_head]) + i & mask) >>> 0)));
        }
        return list;
      }
      add(value) {
        E.as(value);
        this[_add$](value);
      }
      addAll(elements) {
        IterableOfE().as(elements);
        if (elements == null) dart.nullFailed(I[83], 656, 27, "elements");
        if (ListOfE().is(elements)) {
          let list = elements;
          let addCount = list[$length];
          let length = this.length;
          if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this[_table][$length])) {
            this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
            this[_table][$setRange](length, dart.notNull(length) + dart.notNull(addCount), list, 0);
            this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
          } else {
            let endSpace = dart.notNull(this[_table][$length]) - dart.notNull(this[_tail]);
            if (dart.notNull(addCount) < endSpace) {
              this[_table][$setRange](this[_tail], dart.notNull(this[_tail]) + dart.notNull(addCount), list, 0);
              this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
            } else {
              let preSpace = dart.notNull(addCount) - endSpace;
              this[_table][$setRange](this[_tail], dart.notNull(this[_tail]) + endSpace, list, 0);
              this[_table][$setRange](0, preSpace, list, endSpace);
              this[_tail] = preSpace;
            }
          }
          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        } else {
          for (let element of elements)
            this[_add$](element);
        }
      }
      remove(value) {
        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
          let element = this[_table][$_get](i);
          if (dart.equals(element, value)) {
            this[_remove](i);
            this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
            return true;
          }
        }
        return false;
      }
      [_filterWhere](test, removeMatching) {
        if (test == null) dart.nullFailed(I[83], 697, 26, "test");
        if (removeMatching == null) dart.nullFailed(I[83], 697, 48, "removeMatching");
        let modificationCount = this[_modificationCount];
        let i = this[_head];
        while (i != this[_tail]) {
          let element = E.as(this[_table][$_get](i));
          let remove = removeMatching == test(element);
          this[_checkModification](modificationCount);
          if (remove) {
            i = this[_remove](i);
            modificationCount = this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
          } else {
            i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
          }
        }
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[83], 717, 25, "test");
        this[_filterWhere](test, true);
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[83], 725, 25, "test");
        this[_filterWhere](test, false);
      }
      clear() {
        if (this[_head] != this[_tail]) {
          for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
            this[_table][$_set](i, null);
          }
          this[_head] = this[_tail] = 0;
          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        }
      }
      toString() {
        return collection.IterableBase.iterableToFullString(this, "{", "}");
      }
      addLast(value) {
        E.as(value);
        this[_add$](value);
      }
      addFirst(value) {
        E.as(value);
        this[_head] = (dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
        this[_table][$_set](this[_head], value);
        if (this[_head] == this[_tail]) this[_grow$]();
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      }
      removeFirst() {
        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        let result = E.as(this[_table][$_get](this[_head]));
        this[_table][$_set](this[_head], null);
        this[_head] = (dart.notNull(this[_head]) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
        return result;
      }
      removeLast() {
        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        this[_tail] = (dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
        let result = E.as(this[_table][$_get](this[_tail]));
        this[_table][$_set](this[_tail], null);
        return result;
      }
      static _isPowerOf2(number) {
        if (number == null) dart.nullFailed(I[83], 777, 31, "number");
        return (dart.notNull(number) & dart.notNull(number) - 1) === 0;
      }
      static _nextPowerOf2(number) {
        if (number == null) dart.nullFailed(I[83], 784, 32, "number");
        if (!(dart.notNull(number) > 0)) dart.assertFailed(null, I[83], 785, 12, "number > 0");
        number = (dart.notNull(number) << 1 >>> 0) - 1;
        for (;;) {
          let nextNumber = (dart.notNull(number) & dart.notNull(number) - 1) >>> 0;
          if (nextNumber === 0) return number;
          number = nextNumber;
        }
      }
      [_checkModification](expectedModificationCount) {
        if (expectedModificationCount == null) dart.nullFailed(I[83], 795, 31, "expectedModificationCount");
        if (expectedModificationCount != this[_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      [_add$](element) {
        this[_table][$_set](this[_tail], element);
        this[_tail] = (dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
        if (this[_head] == this[_tail]) this[_grow$]();
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      }
      [_remove](offset) {
        if (offset == null) dart.nullFailed(I[83], 817, 19, "offset");
        let mask = dart.notNull(this[_table][$length]) - 1;
        let startDistance = (dart.notNull(offset) - dart.notNull(this[_head]) & mask) >>> 0;
        let endDistance = (dart.notNull(this[_tail]) - dart.notNull(offset) & mask) >>> 0;
        if (startDistance < endDistance) {
          let i = offset;
          while (i != this[_head]) {
            let prevOffset = (dart.notNull(i) - 1 & mask) >>> 0;
            this[_table][$_set](i, this[_table][$_get](prevOffset));
            i = prevOffset;
          }
          this[_table][$_set](this[_head], null);
          this[_head] = (dart.notNull(this[_head]) + 1 & mask) >>> 0;
          return (dart.notNull(offset) + 1 & mask) >>> 0;
        } else {
          this[_tail] = (dart.notNull(this[_tail]) - 1 & mask) >>> 0;
          let i = offset;
          while (i != this[_tail]) {
            let nextOffset = (dart.notNull(i) + 1 & mask) >>> 0;
            this[_table][$_set](i, this[_table][$_get](nextOffset));
            i = nextOffset;
          }
          this[_table][$_set](this[_tail], null);
          return offset;
        }
      }
      [_grow$]() {
        let newTable = ListOfEN().filled(dart.notNull(this[_table][$length]) * 2, null);
        let split = dart.notNull(this[_table][$length]) - dart.notNull(this[_head]);
        newTable[$setRange](0, split, this[_table], this[_head]);
        newTable[$setRange](split, split + dart.notNull(this[_head]), this[_table], 0);
        this[_head] = 0;
        this[_tail] = this[_table][$length];
        this[_table] = newTable;
      }
      [_writeToList](target) {
        if (target == null) dart.nullFailed(I[83], 856, 29, "target");
        if (!(dart.notNull(target[$length]) >= dart.notNull(this.length))) dart.assertFailed(null, I[83], 857, 12, "target.length >= length");
        if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
          let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
          target[$setRange](0, length, this[_table], this[_head]);
          return length;
        } else {
          let firstPartSize = dart.notNull(this[_table][$length]) - dart.notNull(this[_head]);
          target[$setRange](0, firstPartSize, this[_table], this[_head]);
          target[$setRange](firstPartSize, firstPartSize + dart.notNull(this[_tail]), this[_table], 0);
          return dart.notNull(this[_tail]) + firstPartSize;
        }
      }
      [_preGrow](newElementCount) {
        if (newElementCount == null) dart.nullFailed(I[83], 871, 21, "newElementCount");
        if (!(dart.notNull(newElementCount) >= dart.notNull(this.length))) dart.assertFailed(null, I[83], 872, 12, "newElementCount >= length");
        newElementCount = dart.notNull(newElementCount) + newElementCount[$rightShift](1);
        let newCapacity = collection.ListQueue._nextPowerOf2(newElementCount);
        let newTable = ListOfEN().filled(newCapacity, null);
        this[_tail] = this[_writeToList](newTable);
        this[_table] = newTable;
        this[_head] = 0;
      }
    }
    (ListQueue.new = function(initialCapacity = null) {
      this[_modificationCount] = 0;
      this[_head] = 0;
      this[_tail] = 0;
      this[_table] = ListOfEN().filled(collection.ListQueue._calculateCapacity(initialCapacity), null);
      ListQueue.__proto__.new.call(this);
      ;
    }).prototype = ListQueue.prototype;
    dart.addTypeTests(ListQueue);
    ListQueue.prototype[_is_ListQueue_default] = true;
    dart.addTypeCaches(ListQueue);
    ListQueue[dart.implements] = () => [collection.Queue$(E)];
    dart.setMethodSignature(ListQueue, () => ({
      __proto__: dart.getMethods(ListQueue.__proto__),
      cast: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [collection.Queue$(R), []], R => [dart.nullable(core.Object)]),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [_filterWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      clear: dart.fnType(dart.void, []),
      addLast: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addFirst: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeFirst: dart.fnType(E, []),
      removeLast: dart.fnType(E, []),
      [_checkModification]: dart.fnType(dart.void, [core.int]),
      [_add$]: dart.fnType(dart.void, [E]),
      [_remove]: dart.fnType(core.int, [core.int]),
      [_grow$]: dart.fnType(dart.void, []),
      [_writeToList]: dart.fnType(core.int, [core.List$(dart.nullable(E))]),
      [_preGrow]: dart.fnType(dart.void, [core.int])
    }));
    dart.setLibraryUri(ListQueue, I[24]);
    dart.setFieldSignature(ListQueue, () => ({
      __proto__: dart.getFields(ListQueue.__proto__),
      [_table]: dart.fieldType(core.List$(dart.nullable(E))),
      [_head]: dart.fieldType(core.int),
      [_tail]: dart.fieldType(core.int),
      [_modificationCount]: dart.fieldType(core.int)
    }));
    dart.defineExtensionMethods(ListQueue, [
      'cast',
      'forEach',
      'elementAt',
      'toList',
      'toString'
    ]);
    dart.defineExtensionAccessors(ListQueue, [
      'iterator',
      'isEmpty',
      'length',
      'first',
      'last',
      'single'
    ]);
    return ListQueue;
  });
  collection.ListQueue = collection.ListQueue$();
  dart.defineLazy(collection.ListQueue, {
    /*collection.ListQueue._INITIAL_CAPACITY*/get _INITIAL_CAPACITY() {
      return 8;
    }
  }, false);
  dart.addTypeTests(collection.ListQueue, _is_ListQueue_default);
  var _end = dart.privateName(collection, "_end");
  var _position = dart.privateName(collection, "_position");
  const _is__ListQueueIterator_default = Symbol('_is__ListQueueIterator_default');
  collection._ListQueueIterator$ = dart.generic(E => {
    class _ListQueueIterator extends core.Object {
      get current() {
        return E.as(this[_current$1]);
      }
      moveNext() {
        this[_queue$][_checkModification](this[_modificationCount]);
        if (this[_position] == this[_end]) {
          this[_current$1] = null;
          return false;
        }
        this[_current$1] = this[_queue$][_table][$_get](this[_position]);
        this[_position] = (dart.notNull(this[_position]) + 1 & dart.notNull(this[_queue$][_table][$length]) - 1) >>> 0;
        return true;
      }
    }
    (_ListQueueIterator.new = function(queue) {
      if (queue == null) dart.nullFailed(I[83], 895, 35, "queue");
      this[_current$1] = null;
      this[_queue$] = queue;
      this[_end] = queue[_tail];
      this[_modificationCount] = queue[_modificationCount];
      this[_position] = queue[_head];
      ;
    }).prototype = _ListQueueIterator.prototype;
    dart.addTypeTests(_ListQueueIterator);
    _ListQueueIterator.prototype[_is__ListQueueIterator_default] = true;
    dart.addTypeCaches(_ListQueueIterator);
    _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(_ListQueueIterator, () => ({
      __proto__: dart.getMethods(_ListQueueIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_ListQueueIterator, () => ({
      __proto__: dart.getGetters(_ListQueueIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(_ListQueueIterator, I[24]);
    dart.setFieldSignature(_ListQueueIterator, () => ({
      __proto__: dart.getFields(_ListQueueIterator.__proto__),
      [_queue$]: dart.finalFieldType(collection.ListQueue$(E)),
      [_end]: dart.finalFieldType(core.int),
      [_modificationCount]: dart.finalFieldType(core.int),
      [_position]: dart.fieldType(core.int),
      [_current$1]: dart.fieldType(dart.nullable(E))
    }));
    return _ListQueueIterator;
  });
  collection._ListQueueIterator = collection._ListQueueIterator$();
  dart.addTypeTests(collection._ListQueueIterator, _is__ListQueueIterator_default);
  const _is_SetBase_default = Symbol('_is_SetBase_default');
  collection.SetBase$ = dart.generic(E => {
    const Object_SetMixin$36 = class Object_SetMixin extends core.Object {};
    (Object_SetMixin$36.new = function() {
    }).prototype = Object_SetMixin$36.prototype;
    dart.applyMixin(Object_SetMixin$36, collection.SetMixin$(E));
    class SetBase extends Object_SetMixin$36 {
      static setToString(set) {
        if (set == null) dart.nullFailed(I[75], 306, 33, "set");
        return collection.IterableBase.iterableToFullString(set, "{", "}");
      }
    }
    (SetBase.new = function() {
      ;
    }).prototype = SetBase.prototype;
    dart.addTypeTests(SetBase);
    SetBase.prototype[_is_SetBase_default] = true;
    dart.addTypeCaches(SetBase);
    dart.setLibraryUri(SetBase, I[24]);
    return SetBase;
  });
  collection.SetBase = collection.SetBase$();
  dart.addTypeTests(collection.SetBase, _is_SetBase_default);
  const _is__UnmodifiableSetMixin_default = Symbol('_is__UnmodifiableSetMixin_default');
  collection._UnmodifiableSetMixin$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    class _UnmodifiableSetMixin extends core.Object {
      static _throwUnmodifiable() {
        dart.throw(new core.UnsupportedError.new("Cannot change an unmodifiable set"));
      }
      add(value) {
        E.as(value);
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      clear() {
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      addAll(elements) {
        IterableOfE().as(elements);
        if (elements == null) dart.nullFailed(I[75], 355, 27, "elements");
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      removeAll(elements) {
        if (elements == null) dart.nullFailed(I[75], 358, 36, "elements");
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      retainAll(elements) {
        if (elements == null) dart.nullFailed(I[75], 361, 36, "elements");
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[75], 364, 25, "test");
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[75], 367, 25, "test");
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      remove(value) {
        collection._UnmodifiableSetMixin._throwUnmodifiable();
        return dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (_UnmodifiableSetMixin.new = function() {
      ;
    }).prototype = _UnmodifiableSetMixin.prototype;
    dart.addTypeTests(_UnmodifiableSetMixin);
    _UnmodifiableSetMixin.prototype[_is__UnmodifiableSetMixin_default] = true;
    dart.addTypeCaches(_UnmodifiableSetMixin);
    _UnmodifiableSetMixin[dart.implements] = () => [core.Set$(E)];
    dart.setMethodSignature(_UnmodifiableSetMixin, () => ({
      __proto__: dart.getMethods(_UnmodifiableSetMixin.__proto__),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      removeAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      retainAll: dart.fnType(dart.void, [core.Iterable$(dart.nullable(core.Object))]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_UnmodifiableSetMixin, I[24]);
    return _UnmodifiableSetMixin;
  });
  collection._UnmodifiableSetMixin = collection._UnmodifiableSetMixin$();
  dart.addTypeTests(collection._UnmodifiableSetMixin, _is__UnmodifiableSetMixin_default);
  var _map$9 = dart.privateName(collection, "_UnmodifiableSet._map");
  const _is__UnmodifiableSet_default = Symbol('_is__UnmodifiableSet_default');
  collection._UnmodifiableSet$ = dart.generic(E => {
    var _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
    const _SetBase__UnmodifiableSetMixin$36 = class _SetBase__UnmodifiableSetMixin extends collection._SetBase$(E) {};
    (_SetBase__UnmodifiableSetMixin$36.new = function() {
      _SetBase__UnmodifiableSetMixin$36.__proto__.new.call(this);
    }).prototype = _SetBase__UnmodifiableSetMixin$36.prototype;
    dart.applyMixin(_SetBase__UnmodifiableSetMixin$36, collection._UnmodifiableSetMixin$(E));
    class _UnmodifiableSet extends _SetBase__UnmodifiableSetMixin$36 {
      get [_map$5]() {
        return this[_map$9];
      }
      set [_map$5](value) {
        super[_map$5] = value;
      }
      [_newSet]() {
        return new (_HashSetOfE()).new();
      }
      [_newSimilarSet](R) {
        return new (collection._HashSet$(R)).new();
      }
      contains(element) {
        return this[_map$5][$containsKey](element);
      }
      get iterator() {
        return this[_map$5][$keys][$iterator];
      }
      get length() {
        return this[_map$5][$length];
      }
      lookup(element) {
        for (let key of this[_map$5][$keys]) {
          if (dart.equals(key, element)) return key;
        }
        return null;
      }
    }
    (_UnmodifiableSet.new = function(_map) {
      if (_map == null) dart.nullFailed(I[75], 377, 31, "_map");
      this[_map$9] = _map;
      _UnmodifiableSet.__proto__.new.call(this);
      ;
    }).prototype = _UnmodifiableSet.prototype;
    dart.addTypeTests(_UnmodifiableSet);
    _UnmodifiableSet.prototype[_is__UnmodifiableSet_default] = true;
    dart.addTypeCaches(_UnmodifiableSet);
    dart.setMethodSignature(_UnmodifiableSet, () => ({
      __proto__: dart.getMethods(_UnmodifiableSet.__proto__),
      [_newSet]: dart.fnType(core.Set$(E), []),
      [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_UnmodifiableSet, () => ({
      __proto__: dart.getGetters(_UnmodifiableSet.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(_UnmodifiableSet, I[24]);
    dart.setFieldSignature(_UnmodifiableSet, () => ({
      __proto__: dart.getFields(_UnmodifiableSet.__proto__),
      [_map$5]: dart.finalFieldType(core.Map$(E, core.Null))
    }));
    dart.defineExtensionMethods(_UnmodifiableSet, ['contains']);
    dart.defineExtensionAccessors(_UnmodifiableSet, ['iterator', 'length']);
    return _UnmodifiableSet;
  });
  collection._UnmodifiableSet = collection._UnmodifiableSet$();
  dart.addTypeTests(collection._UnmodifiableSet, _is__UnmodifiableSet_default);
  const _is_UnmodifiableSetView_default = Symbol('_is_UnmodifiableSetView_default');
  collection.UnmodifiableSetView$ = dart.generic(E => {
    const SetBase__UnmodifiableSetMixin$36 = class SetBase__UnmodifiableSetMixin extends collection.SetBase$(E) {};
    (SetBase__UnmodifiableSetMixin$36.new = function() {
    }).prototype = SetBase__UnmodifiableSetMixin$36.prototype;
    dart.applyMixin(SetBase__UnmodifiableSetMixin$36, collection._UnmodifiableSetMixin$(E));
    class UnmodifiableSetView extends SetBase__UnmodifiableSetMixin$36 {
      contains(element) {
        return this[_source].contains(element);
      }
      lookup(element) {
        return this[_source].lookup(element);
      }
      get length() {
        return this[_source][$length];
      }
      get iterator() {
        return this[_source].iterator;
      }
      toSet() {
        return this[_source].toSet();
      }
    }
    (UnmodifiableSetView.new = function(source) {
      if (source == null) dart.nullFailed(I[75], 408, 30, "source");
      this[_source] = source;
      ;
    }).prototype = UnmodifiableSetView.prototype;
    dart.addTypeTests(UnmodifiableSetView);
    UnmodifiableSetView.prototype[_is_UnmodifiableSetView_default] = true;
    dart.addTypeCaches(UnmodifiableSetView);
    dart.setMethodSignature(UnmodifiableSetView, () => ({
      __proto__: dart.getMethods(UnmodifiableSetView.__proto__),
      contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      toSet: dart.fnType(core.Set$(E), []),
      [$toSet]: dart.fnType(core.Set$(E), [])
    }));
    dart.setGetterSignature(UnmodifiableSetView, () => ({
      __proto__: dart.getGetters(UnmodifiableSetView.__proto__),
      length: core.int,
      [$length]: core.int,
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(UnmodifiableSetView, I[24]);
    dart.setFieldSignature(UnmodifiableSetView, () => ({
      __proto__: dart.getFields(UnmodifiableSetView.__proto__),
      [_source]: dart.finalFieldType(core.Set$(E))
    }));
    dart.defineExtensionMethods(UnmodifiableSetView, ['contains', 'toSet']);
    dart.defineExtensionAccessors(UnmodifiableSetView, ['length', 'iterator']);
    return UnmodifiableSetView;
  });
  collection.UnmodifiableSetView = collection.UnmodifiableSetView$();
  dart.addTypeTests(collection.UnmodifiableSetView, _is_UnmodifiableSetView_default);
  var _left = dart.privateName(collection, "_SplayTreeNode._left");
  var _right = dart.privateName(collection, "_SplayTreeNode._right");
  var _left$ = dart.privateName(collection, "_left");
  var _right$ = dart.privateName(collection, "_right");
  const _is__SplayTreeNode_default = Symbol('_is__SplayTreeNode_default');
  collection._SplayTreeNode$ = dart.generic((K, Node) => {
    var NodeN = () => (NodeN = dart.constFn(dart.nullable(Node)))();
    class _SplayTreeNode extends core.Object {
      get [_left$]() {
        return this[_left];
      }
      set [_left$](value) {
        this[_left] = NodeN().as(value);
      }
      get [_right$]() {
        return this[_right];
      }
      set [_right$](value) {
        this[_right] = NodeN().as(value);
      }
    }
    (_SplayTreeNode.new = function(key) {
      this[_left] = null;
      this[_right] = null;
      this.key = key;
      ;
    }).prototype = _SplayTreeNode.prototype;
    dart.addTypeTests(_SplayTreeNode);
    _SplayTreeNode.prototype[_is__SplayTreeNode_default] = true;
    dart.addTypeCaches(_SplayTreeNode);
    dart.setLibraryUri(_SplayTreeNode, I[24]);
    dart.setFieldSignature(_SplayTreeNode, () => ({
      __proto__: dart.getFields(_SplayTreeNode.__proto__),
      key: dart.finalFieldType(K),
      [_left$]: dart.fieldType(dart.nullable(Node)),
      [_right$]: dart.fieldType(dart.nullable(Node))
    }));
    return _SplayTreeNode;
  });
  collection._SplayTreeNode = collection._SplayTreeNode$();
  dart.addTypeTests(collection._SplayTreeNode, _is__SplayTreeNode_default);
  const _is__SplayTreeSetNode_default = Symbol('_is__SplayTreeSetNode_default');
  collection._SplayTreeSetNode$ = dart.generic(K => {
    class _SplayTreeSetNode extends collection._SplayTreeNode {}
    (_SplayTreeSetNode.new = function(key) {
      _SplayTreeSetNode.__proto__.new.call(this, key);
      ;
    }).prototype = _SplayTreeSetNode.prototype;
    dart.addTypeTests(_SplayTreeSetNode);
    _SplayTreeSetNode.prototype[_is__SplayTreeSetNode_default] = true;
    dart.addTypeCaches(_SplayTreeSetNode);
    dart.setLibraryUri(_SplayTreeSetNode, I[24]);
    return _SplayTreeSetNode;
  }, K => {
    dart.setBaseClass(collection._SplayTreeSetNode$(K), collection._SplayTreeNode$(K, collection._SplayTreeSetNode$(K)));
  });
  collection._SplayTreeSetNode = collection._SplayTreeSetNode$();
  dart.addTypeTests(collection._SplayTreeSetNode, _is__SplayTreeSetNode_default);
  var _replaceValue = dart.privateName(collection, "_replaceValue");
  const _is__SplayTreeMapNode_default = Symbol('_is__SplayTreeMapNode_default');
  collection._SplayTreeMapNode$ = dart.generic((K, V) => {
    var _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
    class _SplayTreeMapNode extends collection._SplayTreeNode {
      [_replaceValue](value) {
        let t172;
        V.as(value);
        t172 = new (_SplayTreeMapNodeOfK$V()).new(this.key, value);
        return (() => {
          t172[_left$] = this[_left$];
          t172[_right$] = this[_right$];
          return t172;
        })();
      }
      toString() {
        return "MapEntry(" + dart.str(this.key) + ": " + dart.str(this.value) + ")";
      }
    }
    (_SplayTreeMapNode.new = function(key, value) {
      this.value = value;
      _SplayTreeMapNode.__proto__.new.call(this, key);
      ;
    }).prototype = _SplayTreeMapNode.prototype;
    dart.addTypeTests(_SplayTreeMapNode);
    _SplayTreeMapNode.prototype[_is__SplayTreeMapNode_default] = true;
    dart.addTypeCaches(_SplayTreeMapNode);
    _SplayTreeMapNode[dart.implements] = () => [core.MapEntry$(K, V)];
    dart.setMethodSignature(_SplayTreeMapNode, () => ({
      __proto__: dart.getMethods(_SplayTreeMapNode.__proto__),
      [_replaceValue]: dart.fnType(collection._SplayTreeMapNode$(K, V), [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_SplayTreeMapNode, I[24]);
    dart.setFieldSignature(_SplayTreeMapNode, () => ({
      __proto__: dart.getFields(_SplayTreeMapNode.__proto__),
      value: dart.finalFieldType(V)
    }));
    dart.defineExtensionMethods(_SplayTreeMapNode, ['toString']);
    return _SplayTreeMapNode;
  }, (K, V) => {
    dart.setBaseClass(collection._SplayTreeMapNode$(K, V), collection._SplayTreeNode$(K, collection._SplayTreeMapNode$(K, V)));
  });
  collection._SplayTreeMapNode = collection._SplayTreeMapNode$();
  dart.addTypeTests(collection._SplayTreeMapNode, _is__SplayTreeMapNode_default);
  var _count$ = dart.privateName(collection, "_count");
  var _splayCount = dart.privateName(collection, "_splayCount");
  var _root = dart.privateName(collection, "_root");
  var _compare = dart.privateName(collection, "_compare");
  var _splay = dart.privateName(collection, "_splay");
  var _splayMin = dart.privateName(collection, "_splayMin");
  var _splayMax = dart.privateName(collection, "_splayMax");
  var _addNewRoot = dart.privateName(collection, "_addNewRoot");
  var _last$ = dart.privateName(collection, "_last");
  var _clear$ = dart.privateName(collection, "_clear");
  var _containsKey = dart.privateName(collection, "_containsKey");
  const _is__SplayTree_default = Symbol('_is__SplayTree_default');
  collection._SplayTree$ = dart.generic((K, Node) => {
    class _SplayTree extends core.Object {
      [_splay](key) {
        let t173, t172;
        K.as(key);
        let root = this[_root];
        if (root == null) {
          t172 = key;
          t173 = key;
          this[_compare](t172, t173);
          return -1;
        }
        let right = null;
        let newTreeRight = null;
        let left = null;
        let newTreeLeft = null;
        let current = root;
        let compare = this[_compare];
        let comp = null;
        while (true) {
          comp = compare(current.key, key);
          if (dart.notNull(comp) > 0) {
            let currentLeft = current[_left$];
            if (currentLeft == null) break;
            comp = compare(currentLeft.key, key);
            if (dart.notNull(comp) > 0) {
              current[_left$] = currentLeft[_right$];
              currentLeft[_right$] = current;
              current = currentLeft;
              currentLeft = current[_left$];
              if (currentLeft == null) break;
            }
            if (right == null) {
              newTreeRight = current;
            } else {
              right[_left$] = current;
            }
            right = current;
            current = currentLeft;
          } else if (dart.notNull(comp) < 0) {
            let currentRight = current[_right$];
            if (currentRight == null) break;
            comp = compare(currentRight.key, key);
            if (dart.notNull(comp) < 0) {
              current[_right$] = currentRight[_left$];
              currentRight[_left$] = current;
              current = currentRight;
              currentRight = current[_right$];
              if (currentRight == null) break;
            }
            if (left == null) {
              newTreeLeft = current;
            } else {
              left[_right$] = current;
            }
            left = current;
            current = currentRight;
          } else {
            break;
          }
        }
        if (left != null) {
          left[_right$] = current[_left$];
          current[_left$] = newTreeLeft;
        }
        if (right != null) {
          right[_left$] = current[_right$];
          current[_right$] = newTreeRight;
        }
        if (this[_root] != current) {
          this[_root] = current;
          this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
        }
        return comp;
      }
      [_splayMin](node) {
        if (node == null) dart.nullFailed(I[84], 173, 23, "node");
        let current = node;
        let nextLeft = current[_left$];
        while (nextLeft != null) {
          let left = nextLeft;
          current[_left$] = left[_right$];
          left[_right$] = current;
          current = left;
          nextLeft = current[_left$];
        }
        return current;
      }
      [_splayMax](node) {
        if (node == null) dart.nullFailed(I[84], 191, 23, "node");
        let current = node;
        let nextRight = current[_right$];
        while (nextRight != null) {
          let right = nextRight;
          current[_right$] = right[_left$];
          right[_left$] = current;
          current = right;
          nextRight = current[_right$];
        }
        return current;
      }
      [_remove](key) {
        if (this[_root] == null) return null;
        let comp = this[_splay](key);
        if (comp !== 0) return null;
        let root = dart.nullCheck(this[_root]);
        let result = root;
        let left = root[_left$];
        this[_count$] = dart.notNull(this[_count$]) - 1;
        if (left == null) {
          this[_root] = root[_right$];
        } else {
          let right = root[_right$];
          root = this[_splayMax](left);
          root[_right$] = right;
          this[_root] = root;
        }
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        return result;
      }
      [_addNewRoot](node, comp) {
        if (node == null) dart.nullFailed(I[84], 233, 25, "node");
        if (comp == null) dart.nullFailed(I[84], 233, 35, "comp");
        this[_count$] = dart.notNull(this[_count$]) + 1;
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        let root = this[_root];
        if (root == null) {
          this[_root] = node;
          return;
        }
        if (dart.notNull(comp) < 0) {
          node[_left$] = root;
          node[_right$] = root[_right$];
          root[_right$] = null;
        } else {
          node[_right$] = root;
          node[_left$] = root[_left$];
          root[_left$] = null;
        }
        this[_root] = node;
      }
      get [_first]() {
        let root = this[_root];
        if (root == null) return null;
        this[_root] = this[_splayMin](root);
        return this[_root];
      }
      get [_last$]() {
        let root = this[_root];
        if (root == null) return null;
        this[_root] = this[_splayMax](root);
        return this[_root];
      }
      [_clear$]() {
        this[_root] = null;
        this[_count$] = 0;
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      }
      [_containsKey](key) {
        let t172;
        return dart.test((t172 = key, this[_validKey$0](t172))) && this[_splay](K.as(key)) === 0;
      }
    }
    (_SplayTree.new = function() {
      this[_count$] = 0;
      this[_modificationCount] = 0;
      this[_splayCount] = 0;
      ;
    }).prototype = _SplayTree.prototype;
    dart.addTypeTests(_SplayTree);
    _SplayTree.prototype[_is__SplayTree_default] = true;
    dart.addTypeCaches(_SplayTree);
    dart.setMethodSignature(_SplayTree, () => ({
      __proto__: dart.getMethods(_SplayTree.__proto__),
      [_splay]: dart.fnType(core.int, [dart.nullable(core.Object)]),
      [_splayMin]: dart.fnType(Node, [Node]),
      [_splayMax]: dart.fnType(Node, [Node]),
      [_remove]: dart.fnType(dart.nullable(Node), [K]),
      [_addNewRoot]: dart.fnType(dart.void, [Node, core.int]),
      [_clear$]: dart.fnType(dart.void, []),
      [_containsKey]: dart.fnType(core.bool, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_SplayTree, () => ({
      __proto__: dart.getGetters(_SplayTree.__proto__),
      [_first]: dart.nullable(Node),
      [_last$]: dart.nullable(Node)
    }));
    dart.setLibraryUri(_SplayTree, I[24]);
    dart.setFieldSignature(_SplayTree, () => ({
      __proto__: dart.getFields(_SplayTree.__proto__),
      [_count$]: dart.fieldType(core.int),
      [_modificationCount]: dart.fieldType(core.int),
      [_splayCount]: dart.fieldType(core.int)
    }));
    return _SplayTree;
  });
  collection._SplayTree = collection._SplayTree$();
  dart.addTypeTests(collection._SplayTree, _is__SplayTree_default);
  var _root$ = dart.privateName(collection, "SplayTreeMap._root");
  var _compare$ = dart.privateName(collection, "SplayTreeMap._compare");
  var _validKey = dart.privateName(collection, "SplayTreeMap._validKey");
  const _is_SplayTreeMap_default = Symbol('_is_SplayTreeMap_default');
  collection.SplayTreeMap$ = dart.generic((K, V) => {
    var _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
    var KAndVToV = () => (KAndVToV = dart.constFn(dart.fnType(V, [K, V])))();
    var _SplayTreeMapEntryIteratorOfK$V = () => (_SplayTreeMapEntryIteratorOfK$V = dart.constFn(collection._SplayTreeMapEntryIterator$(K, V)))();
    var MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
    var KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.fnType(dart.void, [K, V])))();
    var _SplayTreeMapNodeNOfK$V = () => (_SplayTreeMapNodeNOfK$V = dart.constFn(dart.nullable(_SplayTreeMapNodeOfK$V())))();
    var _SplayTreeMapNodeNOfK$VTobool = () => (_SplayTreeMapNodeNOfK$VTobool = dart.constFn(dart.fnType(core.bool, [_SplayTreeMapNodeNOfK$V()])))();
    var _SplayTreeKeyIterableOfK$_SplayTreeMapNodeOfK$V = () => (_SplayTreeKeyIterableOfK$_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeKeyIterable$(K, _SplayTreeMapNodeOfK$V())))();
    var _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
    var _SplayTreeMapEntryIterableOfK$V = () => (_SplayTreeMapEntryIterableOfK$V = dart.constFn(collection._SplayTreeMapEntryIterable$(K, V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    const _SplayTree_MapMixin$36 = class _SplayTree_MapMixin extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {};
    (_SplayTree_MapMixin$36.new = function() {
      _SplayTree_MapMixin$36.__proto__.new.call(this);
    }).prototype = _SplayTree_MapMixin$36.prototype;
    dart.applyMixin(_SplayTree_MapMixin$36, collection.MapMixin$(K, V));
    class SplayTreeMap extends _SplayTree_MapMixin$36 {
      get [_root]() {
        return this[_root$];
      }
      set [_root](value) {
        this[_root$] = value;
      }
      get [_compare]() {
        return this[_compare$];
      }
      set [_compare](value) {
        this[_compare$] = value;
      }
      get [_validKey$0]() {
        return this[_validKey];
      }
      set [_validKey$0](value) {
        this[_validKey] = value;
      }
      static from(other, compare = null, isValidKey = null) {
        if (other == null) dart.nullFailed(I[84], 330, 51, "other");
        if (core.Map$(K, V).is(other)) {
          return collection.SplayTreeMap$(K, V).of(other, compare, isValidKey);
        }
        let result = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
        other[$forEach](dart.fn((k, v) => {
          result._set(K.as(k), V.as(v));
        }, T$.dynamicAnddynamicTovoid()));
        return result;
      }
      static of(other, compare = null, isValidKey = null) {
        let t172;
        if (other == null) dart.nullFailed(I[84], 344, 37, "other");
        t172 = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
        return (() => {
          t172.addAll(other);
          return t172;
        })();
      }
      static fromIterable(iterable, opts) {
        if (iterable == null) dart.nullFailed(I[84], 360, 46, "iterable");
        let key = opts && 'key' in opts ? opts.key : null;
        let value = opts && 'value' in opts ? opts.value : null;
        let compare = opts && 'compare' in opts ? opts.compare : null;
        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
        let map = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
        collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
        return map;
      }
      static fromIterables(keys, values, compare = null, isValidKey = null) {
        if (keys == null) dart.nullFailed(I[84], 379, 50, "keys");
        if (values == null) dart.nullFailed(I[84], 379, 68, "values");
        let map = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
        collection.MapBase._fillMapWithIterables(map, keys, values);
        return map;
      }
      _get(key) {
        let t172;
        if (!dart.test((t172 = key, this[_validKey$0](t172)))) return null;
        if (this[_root] != null) {
          let comp = this[_splay](K.as(key));
          if (comp === 0) {
            return dart.nullCheck(this[_root]).value;
          }
        }
        return null;
      }
      remove(key) {
        let t172;
        if (!dart.test((t172 = key, this[_validKey$0](t172)))) return null;
        let mapRoot = this[_remove](K.as(key));
        if (mapRoot != null) return mapRoot.value;
        return null;
      }
      _set(key, value$) {
        let value = value$;
        K.as(key);
        V.as(value);
        let comp = this[_splay](key);
        if (comp === 0) {
          this[_root] = dart.nullCheck(this[_root])[_replaceValue](value);
          this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
          return value$;
        }
        this[_addNewRoot](new (_SplayTreeMapNodeOfK$V()).new(key, value), comp);
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        K.as(key);
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[84], 418, 26, "ifAbsent");
        let comp = this[_splay](key);
        if (comp === 0) {
          return dart.nullCheck(this[_root]).value;
        }
        let modificationCount = this[_modificationCount];
        let splayCount = this[_splayCount];
        let value = ifAbsent();
        if (modificationCount != this[_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (splayCount != this[_splayCount]) {
          comp = this[_splay](key);
          if (!(comp !== 0)) dart.assertFailed(null, I[84], 432, 14, "comp != 0");
        }
        this[_addNewRoot](new (_SplayTreeMapNodeOfK$V()).new(key, value), comp);
        return value;
      }
      update(key, update, opts) {
        K.as(key);
        VToV().as(update);
        if (update == null) dart.nullFailed(I[84], 438, 21, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        let comp = this[_splay](key);
        if (comp === 0) {
          let modificationCount = this[_modificationCount];
          let splayCount = this[_splayCount];
          let newValue = update(dart.nullCheck(this[_root]).value);
          if (modificationCount != this[_modificationCount]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          if (splayCount != this[_splayCount]) {
            this[_splay](key);
          }
          this[_root] = dart.nullCheck(this[_root])[_replaceValue](newValue);
          this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
          return newValue;
        }
        if (ifAbsent != null) {
          let modificationCount = this[_modificationCount];
          let splayCount = this[_splayCount];
          let newValue = ifAbsent();
          if (modificationCount != this[_modificationCount]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          if (splayCount != this[_splayCount]) {
            comp = this[_splay](key);
          }
          this[_addNewRoot](new (_SplayTreeMapNodeOfK$V()).new(key, newValue), comp);
          return newValue;
        }
        dart.throw(new core.ArgumentError.value(key, "key", "Key not in map."));
      }
      updateAll(update) {
        KAndVToV().as(update);
        if (update == null) dart.nullFailed(I[84], 470, 20, "update");
        let root = this[_root];
        if (root == null) return;
        let iterator = new (_SplayTreeMapEntryIteratorOfK$V()).new(this);
        while (dart.test(iterator.moveNext())) {
          let node = iterator.current;
          let newValue = update(node.key, node.value);
          iterator[_replaceValue](newValue);
        }
      }
      addAll(other) {
        MapOfK$V().as(other);
        if (other == null) dart.nullFailed(I[84], 481, 25, "other");
        other[$forEach](dart.fn((key, value) => {
          this._set(key, value);
        }, KAndVTovoid()));
      }
      get isEmpty() {
        return this[_root] == null;
      }
      get isNotEmpty() {
        return !dart.test(this.isEmpty);
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[84], 493, 21, "f");
        let nodes = new (_SplayTreeMapEntryIteratorOfK$V()).new(this);
        while (dart.test(nodes.moveNext())) {
          let node = nodes.current;
          f(node.key, node.value);
        }
      }
      get length() {
        return this[_count$];
      }
      clear() {
        this[_clear$]();
      }
      containsKey(key) {
        return this[_containsKey](key);
      }
      containsValue(value) {
        let initialSplayCount = this[_splayCount];
        const visit = node => {
          while (node != null) {
            if (dart.equals(node.value, value)) return true;
            if (initialSplayCount != this[_splayCount]) {
              dart.throw(new core.ConcurrentModificationError.new(this));
            }
            if (node[_right$] != null && dart.test(visit(node[_right$]))) {
              return true;
            }
            node = node[_left$];
          }
          return false;
        };
        dart.fn(visit, _SplayTreeMapNodeNOfK$VTobool());
        return visit(this[_root]);
      }
      get keys() {
        return new (_SplayTreeKeyIterableOfK$_SplayTreeMapNodeOfK$V()).new(this);
      }
      get values() {
        return new (_SplayTreeValueIterableOfK$V()).new(this);
      }
      get entries() {
        return new (_SplayTreeMapEntryIterableOfK$V()).new(this);
      }
      firstKey() {
        if (this[_root] == null) return null;
        return dart.nullCheck(this[_first]).key;
      }
      lastKey() {
        if (this[_root] == null) return null;
        return dart.nullCheck(this[_last$]).key;
      }
      lastKeyBefore(key) {
        K.as(key);
        if (key == null) dart.throw(new core.ArgumentError.new(key));
        if (this[_root] == null) return null;
        let comp = this[_splay](key);
        if (dart.notNull(comp) < 0) return dart.nullCheck(this[_root]).key;
        let node = dart.nullCheck(this[_root])[_left$];
        if (node == null) return null;
        let nodeRight = node[_right$];
        while (nodeRight != null) {
          node = nodeRight;
          nodeRight = node[_right$];
        }
        return dart.nullCheck(node).key;
      }
      firstKeyAfter(key) {
        K.as(key);
        if (key == null) dart.throw(new core.ArgumentError.new(key));
        if (this[_root] == null) return null;
        let comp = this[_splay](key);
        if (dart.notNull(comp) > 0) return dart.nullCheck(this[_root]).key;
        let node = dart.nullCheck(this[_root])[_right$];
        if (node == null) return null;
        let nodeLeft = node[_left$];
        while (nodeLeft != null) {
          node = nodeLeft;
          nodeLeft = node[_left$];
        }
        return dart.nullCheck(node).key;
      }
    }
    (SplayTreeMap.new = function(compare = null, isValidKey = null) {
      let t172, t172$;
      this[_root$] = null;
      this[_compare$] = (t172 = compare, t172 == null ? collection._defaultCompare(K) : t172);
      this[_validKey] = (t172$ = isValidKey, t172$ == null ? dart.fn(a => K.is(a), T$0.dynamicTobool()) : t172$);
      SplayTreeMap.__proto__.new.call(this);
      ;
    }).prototype = SplayTreeMap.prototype;
    dart.addTypeTests(SplayTreeMap);
    SplayTreeMap.prototype[_is_SplayTreeMap_default] = true;
    dart.addTypeCaches(SplayTreeMap);
    dart.setMethodSignature(SplayTreeMap, () => ({
      __proto__: dart.getMethods(SplayTreeMap.__proto__),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      firstKey: dart.fnType(dart.nullable(K), []),
      lastKey: dart.fnType(dart.nullable(K), []),
      lastKeyBefore: dart.fnType(dart.nullable(K), [dart.nullable(core.Object)]),
      firstKeyAfter: dart.fnType(dart.nullable(K), [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(SplayTreeMap, () => ({
      __proto__: dart.getGetters(SplayTreeMap.__proto__),
      keys: core.Iterable$(K),
      [$keys]: core.Iterable$(K)
    }));
    dart.setLibraryUri(SplayTreeMap, I[24]);
    dart.setFieldSignature(SplayTreeMap, () => ({
      __proto__: dart.getFields(SplayTreeMap.__proto__),
      [_root]: dart.fieldType(dart.nullable(collection._SplayTreeMapNode$(K, V))),
      [_compare]: dart.fieldType(dart.fnType(core.int, [K, K])),
      [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [dart.dynamic]))
    }));
    dart.defineExtensionMethods(SplayTreeMap, [
      '_get',
      'remove',
      '_set',
      'putIfAbsent',
      'update',
      'updateAll',
      'addAll',
      'forEach',
      'clear',
      'containsKey',
      'containsValue'
    ]);
    dart.defineExtensionAccessors(SplayTreeMap, [
      'isEmpty',
      'isNotEmpty',
      'length',
      'keys',
      'values',
      'entries'
    ]);
    return SplayTreeMap;
  });
  collection.SplayTreeMap = collection.SplayTreeMap$();
  dart.addTypeTests(collection.SplayTreeMap, _is_SplayTreeMap_default);
  var _path = dart.privateName(collection, "_path");
  var _tree$ = dart.privateName(collection, "_tree");
  var _getValue = dart.privateName(collection, "_getValue");
  var _rebuildPath = dart.privateName(collection, "_rebuildPath");
  var _findLeftMostDescendent = dart.privateName(collection, "_findLeftMostDescendent");
  const _is__SplayTreeIterator_default = Symbol('_is__SplayTreeIterator_default');
  collection._SplayTreeIterator$ = dart.generic((K, Node, T) => {
    var JSArrayOfNode = () => (JSArrayOfNode = dart.constFn(_interceptors.JSArray$(Node)))();
    class _SplayTreeIterator extends core.Object {
      get current() {
        if (dart.test(this[_path][$isEmpty])) return T.as(null);
        let node = this[_path][$last];
        return this[_getValue](node);
      }
      [_rebuildPath](key) {
        this[_path][$clear]();
        this[_tree$][_splay](key);
        this[_path][$add](dart.nullCheck(this[_tree$][_root]));
        this[_splayCount] = this[_tree$][_splayCount];
      }
      [_findLeftMostDescendent](node) {
        while (node != null) {
          this[_path][$add](node);
          node = node[_left$];
        }
      }
      moveNext() {
        if (this[_modificationCount] != this[_tree$][_modificationCount]) {
          if (this[_modificationCount] == null) {
            this[_modificationCount] = this[_tree$][_modificationCount];
            let node = this[_tree$][_root];
            while (node != null) {
              this[_path][$add](node);
              node = node[_left$];
            }
            return this[_path][$isNotEmpty];
          }
          dart.throw(new core.ConcurrentModificationError.new(this[_tree$]));
        }
        if (dart.test(this[_path][$isEmpty])) return false;
        if (this[_splayCount] != this[_tree$][_splayCount]) {
          this[_rebuildPath](this[_path][$last].key);
        }
        let node = this[_path][$last];
        let next = node[_right$];
        if (next != null) {
          while (next != null) {
            this[_path][$add](next);
            next = next[_left$];
          }
          return true;
        }
        this[_path][$removeLast]();
        while (dart.test(this[_path][$isNotEmpty]) && this[_path][$last][_right$] == node) {
          node = this[_path][$removeLast]();
        }
        return this[_path][$isNotEmpty];
      }
    }
    (_SplayTreeIterator.new = function(tree) {
      if (tree == null) dart.nullFailed(I[84], 615, 42, "tree");
      this[_path] = JSArrayOfNode().of([]);
      this[_modificationCount] = null;
      this[_tree$] = tree;
      this[_splayCount] = tree[_splayCount];
      ;
    }).prototype = _SplayTreeIterator.prototype;
    dart.addTypeTests(_SplayTreeIterator);
    _SplayTreeIterator.prototype[_is__SplayTreeIterator_default] = true;
    dart.addTypeCaches(_SplayTreeIterator);
    _SplayTreeIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(_SplayTreeIterator, () => ({
      __proto__: dart.getMethods(_SplayTreeIterator.__proto__),
      [_rebuildPath]: dart.fnType(dart.void, [K]),
      [_findLeftMostDescendent]: dart.fnType(dart.void, [dart.nullable(Node)]),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_SplayTreeIterator, () => ({
      __proto__: dart.getGetters(_SplayTreeIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(_SplayTreeIterator, I[24]);
    dart.setFieldSignature(_SplayTreeIterator, () => ({
      __proto__: dart.getFields(_SplayTreeIterator.__proto__),
      [_tree$]: dart.finalFieldType(collection._SplayTree$(K, Node)),
      [_path]: dart.finalFieldType(core.List$(Node)),
      [_modificationCount]: dart.fieldType(dart.nullable(core.int)),
      [_splayCount]: dart.fieldType(core.int)
    }));
    return _SplayTreeIterator;
  });
  collection._SplayTreeIterator = collection._SplayTreeIterator$();
  dart.addTypeTests(collection._SplayTreeIterator, _is__SplayTreeIterator_default);
  var _copyNode = dart.privateName(collection, "_copyNode");
  const _is__SplayTreeKeyIterable_default = Symbol('_is__SplayTreeKeyIterable_default');
  collection._SplayTreeKeyIterable$ = dart.generic((K, Node) => {
    var _SplayTreeKeyIteratorOfK$Node = () => (_SplayTreeKeyIteratorOfK$Node = dart.constFn(collection._SplayTreeKeyIterator$(K, Node)))();
    var SplayTreeSetOfK = () => (SplayTreeSetOfK = dart.constFn(collection.SplayTreeSet$(K)))();
    var KAndKToint = () => (KAndKToint = dart.constFn(dart.fnType(core.int, [K, K])))();
    class _SplayTreeKeyIterable extends _internal.EfficientLengthIterable$(K) {
      get length() {
        return this[_tree$][_count$];
      }
      get isEmpty() {
        return this[_tree$][_count$] === 0;
      }
      get iterator() {
        return new (_SplayTreeKeyIteratorOfK$Node()).new(this[_tree$]);
      }
      contains(o) {
        return this[_tree$][_containsKey](o);
      }
      toSet() {
        let set = new (SplayTreeSetOfK()).new(KAndKToint().as(this[_tree$][_compare]), this[_tree$][_validKey$0]);
        set[_count$] = this[_tree$][_count$];
        set[_root] = set[_copyNode](Node, this[_tree$][_root]);
        return set;
      }
    }
    (_SplayTreeKeyIterable.new = function(_tree) {
      if (_tree == null) dart.nullFailed(I[84], 684, 30, "_tree");
      this[_tree$] = _tree;
      _SplayTreeKeyIterable.__proto__.new.call(this);
      ;
    }).prototype = _SplayTreeKeyIterable.prototype;
    dart.addTypeTests(_SplayTreeKeyIterable);
    _SplayTreeKeyIterable.prototype[_is__SplayTreeKeyIterable_default] = true;
    dart.addTypeCaches(_SplayTreeKeyIterable);
    dart.setGetterSignature(_SplayTreeKeyIterable, () => ({
      __proto__: dart.getGetters(_SplayTreeKeyIterable.__proto__),
      iterator: core.Iterator$(K),
      [$iterator]: core.Iterator$(K)
    }));
    dart.setLibraryUri(_SplayTreeKeyIterable, I[24]);
    dart.setFieldSignature(_SplayTreeKeyIterable, () => ({
      __proto__: dart.getFields(_SplayTreeKeyIterable.__proto__),
      [_tree$]: dart.fieldType(collection._SplayTree$(K, Node))
    }));
    dart.defineExtensionMethods(_SplayTreeKeyIterable, ['contains', 'toSet']);
    dart.defineExtensionAccessors(_SplayTreeKeyIterable, ['length', 'isEmpty', 'iterator']);
    return _SplayTreeKeyIterable;
  });
  collection._SplayTreeKeyIterable = collection._SplayTreeKeyIterable$();
  dart.addTypeTests(collection._SplayTreeKeyIterable, _is__SplayTreeKeyIterable_default);
  const _is__SplayTreeValueIterable_default = Symbol('_is__SplayTreeValueIterable_default');
  collection._SplayTreeValueIterable$ = dart.generic((K, V) => {
    var _SplayTreeValueIteratorOfK$V = () => (_SplayTreeValueIteratorOfK$V = dart.constFn(collection._SplayTreeValueIterator$(K, V)))();
    class _SplayTreeValueIterable extends _internal.EfficientLengthIterable$(V) {
      get length() {
        return this[_map$5][_count$];
      }
      get isEmpty() {
        return this[_map$5][_count$] === 0;
      }
      get iterator() {
        return new (_SplayTreeValueIteratorOfK$V()).new(this[_map$5]);
      }
    }
    (_SplayTreeValueIterable.new = function(_map) {
      if (_map == null) dart.nullFailed(I[84], 701, 32, "_map");
      this[_map$5] = _map;
      _SplayTreeValueIterable.__proto__.new.call(this);
      ;
    }).prototype = _SplayTreeValueIterable.prototype;
    dart.addTypeTests(_SplayTreeValueIterable);
    _SplayTreeValueIterable.prototype[_is__SplayTreeValueIterable_default] = true;
    dart.addTypeCaches(_SplayTreeValueIterable);
    dart.setGetterSignature(_SplayTreeValueIterable, () => ({
      __proto__: dart.getGetters(_SplayTreeValueIterable.__proto__),
      iterator: core.Iterator$(V),
      [$iterator]: core.Iterator$(V)
    }));
    dart.setLibraryUri(_SplayTreeValueIterable, I[24]);
    dart.setFieldSignature(_SplayTreeValueIterable, () => ({
      __proto__: dart.getFields(_SplayTreeValueIterable.__proto__),
      [_map$5]: dart.fieldType(collection.SplayTreeMap$(K, V))
    }));
    dart.defineExtensionAccessors(_SplayTreeValueIterable, ['length', 'isEmpty', 'iterator']);
    return _SplayTreeValueIterable;
  });
  collection._SplayTreeValueIterable = collection._SplayTreeValueIterable$();
  dart.addTypeTests(collection._SplayTreeValueIterable, _is__SplayTreeValueIterable_default);
  var key$0 = dart.privateName(core, "MapEntry.key");
  var value$2 = dart.privateName(core, "MapEntry.value");
  const _is_MapEntry_default = Symbol('_is_MapEntry_default');
  core.MapEntry$ = dart.generic((K, V) => {
    class MapEntry extends core.Object {
      get key() {
        return this[key$0];
      }
      set key(value) {
        super.key = value;
      }
      get value() {
        return this[value$2];
      }
      set value(value) {
        super.value = value;
      }
      toString() {
        return "MapEntry(" + dart.str(this.key) + ": " + dart.str(this.value) + ")";
      }
    }
    (MapEntry.__ = function(key, value) {
      this[key$0] = key;
      this[value$2] = value;
      ;
    }).prototype = MapEntry.prototype;
    dart.addTypeTests(MapEntry);
    MapEntry.prototype[_is_MapEntry_default] = true;
    dart.addTypeCaches(MapEntry);
    dart.setLibraryUri(MapEntry, I[8]);
    dart.setFieldSignature(MapEntry, () => ({
      __proto__: dart.getFields(MapEntry.__proto__),
      key: dart.finalFieldType(K),
      value: dart.finalFieldType(V)
    }));
    dart.defineExtensionMethods(MapEntry, ['toString']);
    return MapEntry;
  });
  core.MapEntry = core.MapEntry$();
  dart.addTypeTests(core.MapEntry, _is_MapEntry_default);
  const _is__SplayTreeMapEntryIterable_default = Symbol('_is__SplayTreeMapEntryIterable_default');
  collection._SplayTreeMapEntryIterable$ = dart.generic((K, V) => {
    var _SplayTreeMapEntryIteratorOfK$V = () => (_SplayTreeMapEntryIteratorOfK$V = dart.constFn(collection._SplayTreeMapEntryIterator$(K, V)))();
    class _SplayTreeMapEntryIterable extends _internal.EfficientLengthIterable$(core.MapEntry$(K, V)) {
      get length() {
        return this[_map$5][_count$];
      }
      get isEmpty() {
        return this[_map$5][_count$] === 0;
      }
      get iterator() {
        return new (_SplayTreeMapEntryIteratorOfK$V()).new(this[_map$5]);
      }
    }
    (_SplayTreeMapEntryIterable.new = function(_map) {
      if (_map == null) dart.nullFailed(I[84], 710, 35, "_map");
      this[_map$5] = _map;
      _SplayTreeMapEntryIterable.__proto__.new.call(this);
      ;
    }).prototype = _SplayTreeMapEntryIterable.prototype;
    dart.addTypeTests(_SplayTreeMapEntryIterable);
    _SplayTreeMapEntryIterable.prototype[_is__SplayTreeMapEntryIterable_default] = true;
    dart.addTypeCaches(_SplayTreeMapEntryIterable);
    dart.setGetterSignature(_SplayTreeMapEntryIterable, () => ({
      __proto__: dart.getGetters(_SplayTreeMapEntryIterable.__proto__),
      iterator: core.Iterator$(core.MapEntry$(K, V)),
      [$iterator]: core.Iterator$(core.MapEntry$(K, V))
    }));
    dart.setLibraryUri(_SplayTreeMapEntryIterable, I[24]);
    dart.setFieldSignature(_SplayTreeMapEntryIterable, () => ({
      __proto__: dart.getFields(_SplayTreeMapEntryIterable.__proto__),
      [_map$5]: dart.fieldType(collection.SplayTreeMap$(K, V))
    }));
    dart.defineExtensionAccessors(_SplayTreeMapEntryIterable, ['length', 'isEmpty', 'iterator']);
    return _SplayTreeMapEntryIterable;
  });
  collection._SplayTreeMapEntryIterable = collection._SplayTreeMapEntryIterable$();
  dart.addTypeTests(collection._SplayTreeMapEntryIterable, _is__SplayTreeMapEntryIterable_default);
  const _is__SplayTreeKeyIterator_default = Symbol('_is__SplayTreeKeyIterator_default');
  collection._SplayTreeKeyIterator$ = dart.generic((K, Node) => {
    class _SplayTreeKeyIterator extends collection._SplayTreeIterator$(K, Node, K) {
      [_getValue](node) {
        if (node == null) dart.nullFailed(I[84], 720, 20, "node");
        return node.key;
      }
    }
    (_SplayTreeKeyIterator.new = function(map) {
      if (map == null) dart.nullFailed(I[84], 719, 45, "map");
      _SplayTreeKeyIterator.__proto__.new.call(this, map);
      ;
    }).prototype = _SplayTreeKeyIterator.prototype;
    dart.addTypeTests(_SplayTreeKeyIterator);
    _SplayTreeKeyIterator.prototype[_is__SplayTreeKeyIterator_default] = true;
    dart.addTypeCaches(_SplayTreeKeyIterator);
    dart.setMethodSignature(_SplayTreeKeyIterator, () => ({
      __proto__: dart.getMethods(_SplayTreeKeyIterator.__proto__),
      [_getValue]: dart.fnType(K, [Node])
    }));
    dart.setLibraryUri(_SplayTreeKeyIterator, I[24]);
    return _SplayTreeKeyIterator;
  });
  collection._SplayTreeKeyIterator = collection._SplayTreeKeyIterator$();
  dart.addTypeTests(collection._SplayTreeKeyIterator, _is__SplayTreeKeyIterator_default);
  const _is__SplayTreeValueIterator_default = Symbol('_is__SplayTreeValueIterator_default');
  collection._SplayTreeValueIterator$ = dart.generic((K, V) => {
    class _SplayTreeValueIterator extends collection._SplayTreeIterator$(K, collection._SplayTreeMapNode$(K, V), V) {
      [_getValue](node) {
        if (node == null) dart.nullFailed(I[84], 726, 39, "node");
        return node.value;
      }
    }
    (_SplayTreeValueIterator.new = function(map) {
      if (map == null) dart.nullFailed(I[84], 725, 46, "map");
      _SplayTreeValueIterator.__proto__.new.call(this, map);
      ;
    }).prototype = _SplayTreeValueIterator.prototype;
    dart.addTypeTests(_SplayTreeValueIterator);
    _SplayTreeValueIterator.prototype[_is__SplayTreeValueIterator_default] = true;
    dart.addTypeCaches(_SplayTreeValueIterator);
    dart.setMethodSignature(_SplayTreeValueIterator, () => ({
      __proto__: dart.getMethods(_SplayTreeValueIterator.__proto__),
      [_getValue]: dart.fnType(V, [collection._SplayTreeMapNode$(K, V)])
    }));
    dart.setLibraryUri(_SplayTreeValueIterator, I[24]);
    return _SplayTreeValueIterator;
  });
  collection._SplayTreeValueIterator = collection._SplayTreeValueIterator$();
  dart.addTypeTests(collection._SplayTreeValueIterator, _is__SplayTreeValueIterator_default);
  const _is__SplayTreeMapEntryIterator_default = Symbol('_is__SplayTreeMapEntryIterator_default');
  collection._SplayTreeMapEntryIterator$ = dart.generic((K, V) => {
    class _SplayTreeMapEntryIterator extends collection._SplayTreeIterator$(K, collection._SplayTreeMapNode$(K, V), core.MapEntry$(K, V)) {
      [_getValue](node) {
        if (node == null) dart.nullFailed(I[84], 732, 52, "node");
        return node;
      }
      [_replaceValue](value) {
        let t172;
        V.as(value);
        if (!dart.test(this[_path][$isNotEmpty])) dart.assertFailed(null, I[84], 736, 12, "_path.isNotEmpty");
        if (this[_modificationCount] != this[_tree$][_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this[_tree$]));
        }
        if (this[_splayCount] != this[_tree$][_splayCount]) {
          this[_rebuildPath](this[_path][$last].key);
        }
        let last = this[_path][$removeLast]();
        let newLast = last[_replaceValue](value);
        if (dart.test(this[_path][$isEmpty])) {
          this[_tree$][_root] = newLast;
        } else {
          let parent = this[_path][$last];
          if (last == parent[_left$]) {
            parent[_left$] = newLast;
          } else {
            if (!(last == parent[_right$])) dart.assertFailed(null, I[84], 752, 16, "identical(last, parent._right)");
            parent[_right$] = newLast;
          }
        }
        this[_path][$add](newLast);
        this[_splayCount] = (t172 = this[_tree$], t172[_splayCount] = dart.notNull(t172[_splayCount]) + 1);
      }
    }
    (_SplayTreeMapEntryIterator.new = function(tree) {
      if (tree == null) dart.nullFailed(I[84], 731, 49, "tree");
      _SplayTreeMapEntryIterator.__proto__.new.call(this, tree);
      ;
    }).prototype = _SplayTreeMapEntryIterator.prototype;
    dart.addTypeTests(_SplayTreeMapEntryIterator);
    _SplayTreeMapEntryIterator.prototype[_is__SplayTreeMapEntryIterator_default] = true;
    dart.addTypeCaches(_SplayTreeMapEntryIterator);
    dart.setMethodSignature(_SplayTreeMapEntryIterator, () => ({
      __proto__: dart.getMethods(_SplayTreeMapEntryIterator.__proto__),
      [_getValue]: dart.fnType(core.MapEntry$(K, V), [collection._SplayTreeMapNode$(K, V)]),
      [_replaceValue]: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_SplayTreeMapEntryIterator, I[24]);
    return _SplayTreeMapEntryIterator;
  });
  collection._SplayTreeMapEntryIterator = collection._SplayTreeMapEntryIterator$();
  dart.addTypeTests(collection._SplayTreeMapEntryIterator, _is__SplayTreeMapEntryIterator_default);
  var _root$0 = dart.privateName(collection, "SplayTreeSet._root");
  var _compare$0 = dart.privateName(collection, "SplayTreeSet._compare");
  var _validKey$1 = dart.privateName(collection, "SplayTreeSet._validKey");
  var _clone$ = dart.privateName(collection, "_clone");
  const _is_SplayTreeSet_default = Symbol('_is_SplayTreeSet_default');
  collection.SplayTreeSet$ = dart.generic(E => {
    var _SplayTreeSetNodeOfE = () => (_SplayTreeSetNodeOfE = dart.constFn(collection._SplayTreeSetNode$(E)))();
    var _SplayTreeSetNodeNOfE = () => (_SplayTreeSetNodeNOfE = dart.constFn(dart.nullable(_SplayTreeSetNodeOfE())))();
    var _SplayTreeKeyIteratorOfE$_SplayTreeSetNodeOfE = () => (_SplayTreeKeyIteratorOfE$_SplayTreeSetNodeOfE = dart.constFn(collection._SplayTreeKeyIterator$(E, _SplayTreeSetNodeOfE())))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var SplayTreeSetOfE = () => (SplayTreeSetOfE = dart.constFn(collection.SplayTreeSet$(E)))();
    var SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
    const _SplayTree_IterableMixin$36 = class _SplayTree_IterableMixin extends collection._SplayTree$(E, collection._SplayTreeSetNode$(E)) {};
    (_SplayTree_IterableMixin$36.new = function() {
      _SplayTree_IterableMixin$36.__proto__.new.call(this);
    }).prototype = _SplayTree_IterableMixin$36.prototype;
    dart.applyMixin(_SplayTree_IterableMixin$36, collection.IterableMixin$(E));
    const _SplayTree_SetMixin$36 = class _SplayTree_SetMixin extends _SplayTree_IterableMixin$36 {};
    (_SplayTree_SetMixin$36.new = function() {
      _SplayTree_SetMixin$36.__proto__.new.call(this);
    }).prototype = _SplayTree_SetMixin$36.prototype;
    dart.applyMixin(_SplayTree_SetMixin$36, collection.SetMixin$(E));
    class SplayTreeSet extends _SplayTree_SetMixin$36 {
      get [_root]() {
        return this[_root$0];
      }
      set [_root](value) {
        this[_root$0] = _SplayTreeSetNodeNOfE().as(value);
      }
      get [_compare]() {
        return this[_compare$0];
      }
      set [_compare](value) {
        this[_compare$0] = value;
      }
      get [_validKey$0]() {
        return this[_validKey$1];
      }
      set [_validKey$0](value) {
        this[_validKey$1] = value;
      }
      static from(elements, compare = null, isValidKey = null) {
        if (elements == null) dart.nullFailed(I[84], 823, 38, "elements");
        if (core.Iterable$(E).is(elements)) {
          return collection.SplayTreeSet$(E).of(elements, compare, isValidKey);
        }
        let result = new (collection.SplayTreeSet$(E)).new(compare, isValidKey);
        for (let element of elements) {
          result.add(E.as(element));
        }
        return result;
      }
      static of(elements, compare = null, isValidKey = null) {
        let t172;
        if (elements == null) dart.nullFailed(I[84], 841, 39, "elements");
        t172 = new (collection.SplayTreeSet$(E)).new(compare, isValidKey);
        return (() => {
          t172.addAll(elements);
          return t172;
        })();
      }
      [_newSet](T) {
        return new (collection.SplayTreeSet$(T)).new(dart.fn((a, b) => {
          let t173, t172;
          t172 = E.as(a);
          t173 = E.as(b);
          return this[_compare](t172, t173);
        }, dart.fnType(core.int, [T, T])), this[_validKey$0]);
      }
      cast(R) {
        return core.Set.castFrom(E, R, this, {newSet: dart.bind(this, _newSet)});
      }
      get iterator() {
        return new (_SplayTreeKeyIteratorOfE$_SplayTreeSetNodeOfE()).new(this);
      }
      get length() {
        return this[_count$];
      }
      get isEmpty() {
        return this[_root] == null;
      }
      get isNotEmpty() {
        return this[_root] != null;
      }
      get first() {
        if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
        return dart.nullCheck(this[_first]).key;
      }
      get last() {
        if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
        return dart.nullCheck(this[_last$]).key;
      }
      get single() {
        if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
        if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany());
        return dart.nullCheck(this[_root]).key;
      }
      contains(element) {
        let t172;
        return dart.test((t172 = element, this[_validKey$0](t172))) && this[_splay](E.as(element)) === 0;
      }
      add(element) {
        E.as(element);
        return this[_add$](element);
      }
      [_add$](element) {
        let compare = this[_splay](element);
        if (compare === 0) return false;
        this[_addNewRoot](new (_SplayTreeSetNodeOfE()).new(element), compare);
        return true;
      }
      remove(object) {
        let t172;
        if (!dart.test((t172 = object, this[_validKey$0](t172)))) return false;
        return this[_remove](E.as(object)) != null;
      }
      addAll(elements) {
        IterableOfE().as(elements);
        if (elements == null) dart.nullFailed(I[84], 895, 27, "elements");
        for (let element of elements) {
          this[_add$](element);
        }
      }
      removeAll(elements) {
        let t172;
        if (elements == null) dart.nullFailed(I[84], 901, 36, "elements");
        for (let element of elements) {
          if (dart.test((t172 = element, this[_validKey$0](t172)))) this[_remove](E.as(element));
        }
      }
      retainAll(elements) {
        let t172;
        if (elements == null) dart.nullFailed(I[84], 907, 36, "elements");
        let retainSet = new (SplayTreeSetOfE()).new(this[_compare], this[_validKey$0]);
        let modificationCount = this[_modificationCount];
        for (let object of elements) {
          if (modificationCount != this[_modificationCount]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          if (dart.test((t172 = object, this[_validKey$0](t172))) && this[_splay](E.as(object)) === 0) {
            retainSet.add(dart.nullCheck(this[_root]).key);
          }
        }
        if (retainSet[_count$] != this[_count$]) {
          this[_root] = retainSet[_root];
          this[_count$] = retainSet[_count$];
          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        }
      }
      lookup(object) {
        let t172;
        if (!dart.test((t172 = object, this[_validKey$0](t172)))) return null;
        let comp = this[_splay](E.as(object));
        if (comp !== 0) return null;
        return dart.nullCheck(this[_root]).key;
      }
      intersection(other) {
        if (other == null) dart.nullFailed(I[84], 936, 36, "other");
        let result = new (SplayTreeSetOfE()).new(this[_compare], this[_validKey$0]);
        for (let element of this) {
          if (dart.test(other.contains(element))) result.add(element);
        }
        return result;
      }
      difference(other) {
        if (other == null) dart.nullFailed(I[84], 944, 34, "other");
        let result = new (SplayTreeSetOfE()).new(this[_compare], this[_validKey$0]);
        for (let element of this) {
          if (!dart.test(other.contains(element))) result.add(element);
        }
        return result;
      }
      union(other) {
        let t172;
        SetOfE().as(other);
        if (other == null) dart.nullFailed(I[84], 952, 23, "other");
        t172 = this[_clone$]();
        return (() => {
          t172.addAll(other);
          return t172;
        })();
      }
      [_clone$]() {
        let set = new (SplayTreeSetOfE()).new(this[_compare], this[_validKey$0]);
        set[_count$] = this[_count$];
        set[_root] = this[_copyNode](_SplayTreeSetNodeOfE(), this[_root]);
        return set;
      }
      [_copyNode](Node, node) {
        dart.checkTypeBound(Node, collection._SplayTreeNode$(E, Node), 'Node');
        if (node == null) return null;
        function copyChildren(node, dest) {
          if (node == null) dart.nullFailed(I[84], 972, 28, "node");
          if (dest == null) dart.nullFailed(I[84], 972, 55, "dest");
          let left = null;
          let right = null;
          do {
            left = node[_left$];
            right = node[_right$];
            if (left != null) {
              let newLeft = new (_SplayTreeSetNodeOfE()).new(left.key);
              dest[_left$] = newLeft;
              copyChildren(left, newLeft);
            }
            if (right != null) {
              let newRight = new (_SplayTreeSetNodeOfE()).new(right.key);
              dest[_right$] = newRight;
              node = right;
              dest = newRight;
            }
          } while (right != null);
        }
        dart.fn(copyChildren, dart.fnType(dart.void, [Node, _SplayTreeSetNodeOfE()]));
        let result = new (_SplayTreeSetNodeOfE()).new(node.key);
        copyChildren(node, result);
        return result;
      }
      clear() {
        this[_clear$]();
      }
      toSet() {
        return this[_clone$]();
      }
      toString() {
        return collection.IterableBase.iterableToFullString(this, "{", "}");
      }
    }
    (SplayTreeSet.new = function(compare = null, isValidKey = null) {
      let t172, t172$;
      this[_root$0] = null;
      this[_compare$0] = (t172 = compare, t172 == null ? collection._defaultCompare(E) : t172);
      this[_validKey$1] = (t172$ = isValidKey, t172$ == null ? dart.fn(v => E.is(v), T$0.dynamicTobool()) : t172$);
      SplayTreeSet.__proto__.new.call(this);
      ;
    }).prototype = SplayTreeSet.prototype;
    dart.addTypeTests(SplayTreeSet);
    SplayTreeSet.prototype[_is_SplayTreeSet_default] = true;
    dart.addTypeCaches(SplayTreeSet);
    dart.setMethodSignature(SplayTreeSet, () => ({
      __proto__: dart.getMethods(SplayTreeSet.__proto__),
      [_newSet]: dart.gFnType(T => [core.Set$(T), []], T => [dart.nullable(core.Object)]),
      cast: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      [$cast]: dart.gFnType(R => [core.Set$(R), []], R => [dart.nullable(core.Object)]),
      add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [_add$]: dart.fnType(core.bool, [E]),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      lookup: dart.fnType(dart.nullable(E), [dart.nullable(core.Object)]),
      [_clone$]: dart.fnType(collection.SplayTreeSet$(E), []),
      [_copyNode]: dart.gFnType(Node => [dart.nullable(collection._SplayTreeSetNode$(E)), [dart.nullable(Node)]], Node => [collection._SplayTreeNode$(E, Node)])
    }));
    dart.setGetterSignature(SplayTreeSet, () => ({
      __proto__: dart.getGetters(SplayTreeSet.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(SplayTreeSet, I[24]);
    dart.setFieldSignature(SplayTreeSet, () => ({
      __proto__: dart.getFields(SplayTreeSet.__proto__),
      [_root]: dart.fieldType(dart.nullable(collection._SplayTreeSetNode$(E))),
      [_compare]: dart.fieldType(dart.fnType(core.int, [E, E])),
      [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [dart.dynamic]))
    }));
    dart.defineExtensionMethods(SplayTreeSet, ['cast', 'contains', 'toSet', 'toString']);
    dart.defineExtensionAccessors(SplayTreeSet, [
      'iterator',
      'length',
      'isEmpty',
      'isNotEmpty',
      'first',
      'last',
      'single'
    ]);
    return SplayTreeSet;
  });
  collection.SplayTreeSet = collection.SplayTreeSet$();
  dart.addTypeTests(collection.SplayTreeSet, _is_SplayTreeSet_default);
  collection._defaultEquals = function _defaultEquals(a, b) {
    return dart.equals(a, b);
  };
  collection._defaultHashCode = function _defaultHashCode(a) {
    return dart.hashCode(a);
  };
  collection._isToStringVisiting = function _isToStringVisiting(o) {
    if (o == null) dart.nullFailed(I[39], 281, 33, "o");
    for (let i = 0; i < dart.notNull(collection._toStringVisiting[$length]); i = i + 1) {
      if (core.identical(o, collection._toStringVisiting[$_get](i))) return true;
    }
    return false;
  };
  collection._iterablePartsToStrings = function _iterablePartsToStrings(iterable, parts) {
    if (iterable == null) dart.nullFailed(I[39], 289, 48, "iterable");
    if (parts == null) dart.nullFailed(I[39], 289, 71, "parts");
    let length = 0;
    let count = 0;
    let it = iterable[$iterator];
    while (length < 80 || count < 3) {
      if (!dart.test(it.moveNext())) return;
      let next = dart.str(it.current);
      parts[$add](next);
      length = length + (next.length + 2);
      count = count + 1;
    }
    let penultimateString = null;
    let ultimateString = null;
    if (!dart.test(it.moveNext())) {
      if (count <= 3 + 2) return;
      ultimateString = parts[$removeLast]();
      penultimateString = parts[$removeLast]();
    } else {
      let penultimate = it.current;
      count = count + 1;
      if (!dart.test(it.moveNext())) {
        if (count <= 3 + 1) {
          parts[$add](dart.str(penultimate));
          return;
        }
        ultimateString = dart.str(penultimate);
        penultimateString = parts[$removeLast]();
        length = length + (ultimateString.length + 2);
      } else {
        let ultimate = it.current;
        count = count + 1;
        if (!(count < 100)) dart.assertFailed(null, I[39], 349, 14, "count < maxCount");
        while (dart.test(it.moveNext())) {
          penultimate = ultimate;
          ultimate = it.current;
          count = count + 1;
          if (count > 100) {
            while (length > 80 - 3 - 2 && count > 3) {
              length = length - (parts[$removeLast]().length + 2);
              count = count - 1;
            }
            parts[$add]("...");
            return;
          }
        }
        penultimateString = dart.str(penultimate);
        ultimateString = dart.str(ultimate);
        length = length + (ultimateString.length + penultimateString.length + 2 * 2);
      }
    }
    let elision = null;
    if (count > dart.notNull(parts[$length]) + 2) {
      elision = "...";
      length = length + (3 + 2);
    }
    while (length > 80 && dart.notNull(parts[$length]) > 3) {
      length = length - (parts[$removeLast]().length + 2);
      if (elision == null) {
        elision = "...";
        length = length + (3 + 2);
      }
    }
    if (elision != null) {
      parts[$add](elision);
    }
    parts[$add](penultimateString);
    parts[$add](ultimateString);
  };
  collection._dynamicCompare = function _dynamicCompare(a, b) {
    return core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b));
  };
  collection._defaultCompare = function _defaultCompare(K) {
    let compare = C[78] || CT.C78;
    if (dart.fnType(core.int, [K, K]).is(compare)) {
      return compare;
    }
    return C[79] || CT.C79;
  };
  dart.defineLazy(collection, {
    /*collection._toStringVisiting*/get _toStringVisiting() {
      return T$.JSArrayOfObject().of([]);
    }
  }, false);
  var _processed = dart.privateName(convert, "_processed");
  var _data = dart.privateName(convert, "_data");
  var _original$ = dart.privateName(convert, "_original");
  var _isUpgraded = dart.privateName(convert, "_isUpgraded");
  var _upgradedMap = dart.privateName(convert, "_upgradedMap");
  var _process = dart.privateName(convert, "_process");
  var _computeKeys = dart.privateName(convert, "_computeKeys");
  var _upgrade = dart.privateName(convert, "_upgrade");
  core.String = class String extends core.Object {
    static _stringFromJSArray(list, start, endOrNull) {
      if (start == null) dart.nullFailed(I[7], 598, 11, "start");
      let len = core.int.as(dart.dload(list, 'length'));
      let end = core.RangeError.checkValidRange(start, endOrNull, len);
      if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) {
        list = dart.dsend(list, 'sublist', [start, end]);
      }
      return _js_helper.Primitives.stringFromCharCodes(T$.JSArrayOfint().as(list));
    }
    static _stringFromUint8List(charCodes, start, endOrNull) {
      if (charCodes == null) dart.nullFailed(I[7], 609, 23, "charCodes");
      if (start == null) dart.nullFailed(I[7], 609, 38, "start");
      let len = charCodes[$length];
      let end = core.RangeError.checkValidRange(start, endOrNull, len);
      return _js_helper.Primitives.stringFromNativeUint8List(charCodes, start, end);
    }
    static _stringFromIterable(charCodes, start, end) {
      if (charCodes == null) dart.nullFailed(I[7], 616, 21, "charCodes");
      if (start == null) dart.nullFailed(I[7], 616, 36, "start");
      if (dart.notNull(start) < 0) dart.throw(new core.RangeError.range(start, 0, charCodes[$length]));
      if (end != null && dart.notNull(end) < dart.notNull(start)) {
        dart.throw(new core.RangeError.range(end, start, charCodes[$length]));
      }
      let it = charCodes[$iterator];
      for (let i = 0; i < dart.notNull(start); i = i + 1) {
        if (!dart.test(it.moveNext())) {
          dart.throw(new core.RangeError.range(start, 0, i));
        }
      }
      let list = T$.JSArrayOfint().of(new Array());
      if (end == null) {
        while (dart.test(it.moveNext()))
          list[$add](it.current);
      } else {
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          if (!dart.test(it.moveNext())) {
            dart.throw(new core.RangeError.range(end, start, i));
          }
          list[$add](it.current);
        }
      }
      return _js_helper.Primitives.stringFromCharCodes(list);
    }
    static is(o) {
      return typeof o == "string";
    }
    static as(o) {
      if (typeof o == "string") return o;
      return dart.as(o, core.String);
    }
    static fromCharCodes(charCodes, start = 0, end = null) {
      if (charCodes == null) dart.nullFailed(I[7], 573, 46, "charCodes");
      if (start == null) dart.nullFailed(I[7], 574, 12, "start");
      if (_interceptors.JSArray.is(charCodes)) {
        return core.String._stringFromJSArray(charCodes, start, end);
      }
      if (_native_typed_data.NativeUint8List.is(charCodes)) {
        return core.String._stringFromUint8List(charCodes, start, end);
      }
      return core.String._stringFromIterable(charCodes, start, end);
    }
    static fromCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[7], 585, 35, "charCode");
      return _js_helper.Primitives.stringFromCharCode(charCode);
    }
    static fromEnvironment(name, opts) {
      if (name == null) dart.nullFailed(I[7], 590, 41, "name");
      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : "";
      if (defaultValue == null) dart.nullFailed(I[7], 590, 55, "defaultValue");
      dart.throw(new core.UnsupportedError.new("String.fromEnvironment can only be used as a const constructor"));
    }
  };
  (core.String[dart.mixinNew] = function() {
  }).prototype = core.String.prototype;
  dart.addTypeCaches(core.String);
  core.String[dart.implements] = () => [core.Comparable$(core.String), core.Pattern];
  dart.setLibraryUri(core.String, I[8]);
  convert._JsonMap = class _JsonMap extends collection.MapBase$(core.String, dart.dynamic) {
    _get(key) {
      if (dart.test(this[_isUpgraded])) {
        return this[_upgradedMap][$_get](key);
      } else if (!(typeof key == 'string')) {
        return null;
      } else {
        let result = convert._JsonMap._getProperty(this[_processed], key);
        if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process](key);
        return result;
      }
    }
    get length() {
      return dart.test(this[_isUpgraded]) ? this[_upgradedMap][$length] : this[_computeKeys]()[$length];
    }
    get isEmpty() {
      return this.length === 0;
    }
    get isNotEmpty() {
      return dart.notNull(this.length) > 0;
    }
    get keys() {
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$keys];
      return new convert._JsonMapKeyIterable.new(this);
    }
    get values() {
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$values];
      return T$0.MappedIterableOfString$dynamic().new(this[_computeKeys](), dart.fn(each => this._get(each), T$0.ObjectNTodynamic()));
    }
    _set(key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[85], 170, 16, "key");
      if (dart.test(this[_isUpgraded])) {
        this[_upgradedMap][$_set](key, value);
      } else if (dart.test(this.containsKey(key))) {
        let processed = this[_processed];
        convert._JsonMap._setProperty(processed, key, value);
        let original = this[_original$];
        if (!core.identical(original, processed)) {
          convert._JsonMap._setProperty(original, key, null);
        }
      } else {
        this[_upgrade]()[$_set](key, value);
      }
      return value$;
    }
    addAll(other) {
      T$0.MapOfString$dynamic().as(other);
      if (other == null) dart.nullFailed(I[85], 185, 36, "other");
      other[$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[85], 186, 20, "key");
        this._set(key, value);
      }, T$0.StringAnddynamicTovoid()));
    }
    containsValue(value) {
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$containsValue](value);
      let keys = this[_computeKeys]();
      for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
        let key = keys[$_get](i);
        if (dart.equals(this._get(key), value)) return true;
      }
      return false;
    }
    containsKey(key) {
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$containsKey](key);
      if (!(typeof key == 'string')) return false;
      return convert._JsonMap._hasProperty(this[_original$], key);
    }
    putIfAbsent(key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[85], 207, 15, "key");
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[85], 207, 20, "ifAbsent");
      if (dart.test(this.containsKey(key))) return this._get(key);
      let value = ifAbsent();
      this._set(key, value);
      return value;
    }
    remove(key) {
      if (!dart.test(this[_isUpgraded]) && !dart.test(this.containsKey(key))) return null;
      return this[_upgrade]()[$remove](key);
    }
    clear() {
      if (dart.test(this[_isUpgraded])) {
        this[_upgradedMap][$clear]();
      } else {
        if (this[_data] != null) {
          dart.dsend(this[_data], 'clear', []);
        }
        this[_original$] = this[_processed] = null;
        this[_data] = new _js_helper.LinkedMap.new();
      }
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[85], 234, 21, "f");
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$forEach](f);
      let keys = this[_computeKeys]();
      for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
        let key = keys[$_get](i);
        let value = convert._JsonMap._getProperty(this[_processed], key);
        if (dart.test(convert._JsonMap._isUnprocessed(value))) {
          value = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original$], key));
          convert._JsonMap._setProperty(this[_processed], key, value);
        }
        f(key, value);
        if (!core.identical(keys, this[_data])) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
    }
    get [_isUpgraded]() {
      return this[_processed] == null;
    }
    get [_upgradedMap]() {
      if (!dart.test(this[_isUpgraded])) dart.assertFailed(null, I[85], 266, 12, "_isUpgraded");
      return this[_data];
    }
    [_computeKeys]() {
      if (!!dart.test(this[_isUpgraded])) dart.assertFailed(null, I[85], 274, 12, "!_isUpgraded");
      let keys = T$.ListN().as(this[_data]);
      if (keys == null) {
        keys = this[_data] = convert._JsonMap._getPropertyNames(this[_original$]);
      }
      return keys;
    }
    [_upgrade]() {
      if (dart.test(this[_isUpgraded])) return this[_upgradedMap];
      let result = new (T$0.IdentityMapOfString$dynamic()).new();
      let keys = this[_computeKeys]();
      for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
        let key = keys[$_get](i);
        result[$_set](key, this._get(key));
      }
      if (dart.test(keys[$isEmpty])) {
        keys[$add]("");
      } else {
        keys[$clear]();
      }
      this[_original$] = this[_processed] = null;
      this[_data] = result;
      if (!dart.test(this[_isUpgraded])) dart.assertFailed(null, I[85], 307, 12, "_isUpgraded");
      return result;
    }
    [_process](key) {
      if (key == null) dart.nullFailed(I[85], 311, 19, "key");
      if (!dart.test(convert._JsonMap._hasProperty(this[_original$], key))) return null;
      let result = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original$], key));
      return convert._JsonMap._setProperty(this[_processed], key, result);
    }
    static _hasProperty(object, key) {
      if (key == null) dart.nullFailed(I[85], 321, 43, "key");
      return Object.prototype.hasOwnProperty.call(object, key);
    }
    static _getProperty(object, key) {
      if (key == null) dart.nullFailed(I[85], 323, 38, "key");
      return object[key];
    }
    static _setProperty(object, key, value) {
      if (key == null) dart.nullFailed(I[85], 324, 38, "key");
      return object[key] = value;
    }
    static _getPropertyNames(object) {
      return Object.keys(object);
    }
    static _isUnprocessed(object) {
      return typeof object == "undefined";
    }
    static _newJavaScriptObject() {
      return Object.create(null);
    }
  };
  (convert._JsonMap.new = function(_original) {
    this[_processed] = convert._JsonMap._newJavaScriptObject();
    this[_data] = null;
    this[_original$] = _original;
    ;
  }).prototype = convert._JsonMap.prototype;
  dart.addTypeTests(convert._JsonMap);
  dart.addTypeCaches(convert._JsonMap);
  dart.setMethodSignature(convert._JsonMap, () => ({
    __proto__: dart.getMethods(convert._JsonMap.__proto__),
    _get: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    remove: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    [_computeKeys]: dart.fnType(core.List$(core.String), []),
    [_upgrade]: dart.fnType(core.Map$(core.String, dart.dynamic), []),
    [_process]: dart.fnType(dart.dynamic, [core.String])
  }));
  dart.setGetterSignature(convert._JsonMap, () => ({
    __proto__: dart.getGetters(convert._JsonMap.__proto__),
    keys: core.Iterable$(core.String),
    [$keys]: core.Iterable$(core.String),
    [_isUpgraded]: core.bool,
    [_upgradedMap]: core.Map$(core.String, dart.dynamic)
  }));
  dart.setLibraryUri(convert._JsonMap, I[31]);
  dart.setFieldSignature(convert._JsonMap, () => ({
    __proto__: dart.getFields(convert._JsonMap.__proto__),
    [_original$]: dart.fieldType(dart.dynamic),
    [_processed]: dart.fieldType(dart.dynamic),
    [_data]: dart.fieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(convert._JsonMap, [
    '_get',
    '_set',
    'addAll',
    'containsValue',
    'containsKey',
    'putIfAbsent',
    'remove',
    'clear',
    'forEach'
  ]);
  dart.defineExtensionAccessors(convert._JsonMap, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'keys',
    'values'
  ]);
  var _parent$ = dart.privateName(convert, "_parent");
  convert._JsonMapKeyIterable = class _JsonMapKeyIterable extends _internal.ListIterable$(core.String) {
    get length() {
      return this[_parent$].length;
    }
    elementAt(index) {
      if (index == null) dart.nullFailed(I[85], 340, 24, "index");
      return dart.test(this[_parent$][_isUpgraded]) ? this[_parent$].keys[$elementAt](index) : this[_parent$][_computeKeys]()[$_get](index);
    }
    get iterator() {
      return dart.test(this[_parent$][_isUpgraded]) ? this[_parent$].keys[$iterator] : this[_parent$][_computeKeys]()[$iterator];
    }
    contains(key) {
      return this[_parent$].containsKey(key);
    }
  };
  (convert._JsonMapKeyIterable.new = function(_parent) {
    if (_parent == null) dart.nullFailed(I[85], 336, 28, "_parent");
    this[_parent$] = _parent;
    convert._JsonMapKeyIterable.__proto__.new.call(this);
    ;
  }).prototype = convert._JsonMapKeyIterable.prototype;
  dart.addTypeTests(convert._JsonMapKeyIterable);
  dart.addTypeCaches(convert._JsonMapKeyIterable);
  dart.setLibraryUri(convert._JsonMapKeyIterable, I[31]);
  dart.setFieldSignature(convert._JsonMapKeyIterable, () => ({
    __proto__: dart.getFields(convert._JsonMapKeyIterable.__proto__),
    [_parent$]: dart.finalFieldType(convert._JsonMap)
  }));
  dart.defineExtensionMethods(convert._JsonMapKeyIterable, ['elementAt', 'contains']);
  dart.defineExtensionAccessors(convert._JsonMapKeyIterable, ['length', 'iterator']);
  var _reviver$ = dart.privateName(convert, "_reviver");
  var _sink$0 = dart.privateName(convert, "_sink");
  var _stringSink$ = dart.privateName(convert, "_stringSink");
  convert.StringConversionSinkMixin = class StringConversionSinkMixin extends core.Object {
    add(str) {
      core.String.as(str);
      if (str == null) dart.nullFailed(I[86], 162, 19, "str");
      this.addSlice(str, 0, str.length, false);
    }
    asUtf8Sink(allowMalformed) {
      if (allowMalformed == null) dart.nullFailed(I[86], 166, 38, "allowMalformed");
      return new convert._Utf8ConversionSink.new(this, allowMalformed);
    }
    asStringSink() {
      return new convert._StringConversionSinkAsStringSinkAdapter.new(this);
    }
  };
  (convert.StringConversionSinkMixin.new = function() {
    ;
  }).prototype = convert.StringConversionSinkMixin.prototype;
  dart.addTypeTests(convert.StringConversionSinkMixin);
  dart.addTypeCaches(convert.StringConversionSinkMixin);
  convert.StringConversionSinkMixin[dart.implements] = () => [convert.StringConversionSink];
  dart.setMethodSignature(convert.StringConversionSinkMixin, () => ({
    __proto__: dart.getMethods(convert.StringConversionSinkMixin.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    asUtf8Sink: dart.fnType(convert.ByteConversionSink, [core.bool]),
    asStringSink: dart.fnType(convert.ClosableStringSink, [])
  }));
  dart.setLibraryUri(convert.StringConversionSinkMixin, I[31]);
  convert.StringConversionSinkBase = class StringConversionSinkBase extends convert.StringConversionSinkMixin {};
  (convert.StringConversionSinkBase.new = function() {
    ;
  }).prototype = convert.StringConversionSinkBase.prototype;
  dart.addTypeTests(convert.StringConversionSinkBase);
  dart.addTypeCaches(convert.StringConversionSinkBase);
  dart.setLibraryUri(convert.StringConversionSinkBase, I[31]);
  const _is__StringSinkConversionSink_default = Symbol('_is__StringSinkConversionSink_default');
  convert._StringSinkConversionSink$ = dart.generic(TStringSink => {
    class _StringSinkConversionSink extends convert.StringConversionSinkBase {
      close() {
      }
      addSlice(str, start, end, isLast) {
        if (str == null) dart.nullFailed(I[86], 183, 24, "str");
        if (start == null) dart.nullFailed(I[86], 183, 33, "start");
        if (end == null) dart.nullFailed(I[86], 183, 44, "end");
        if (isLast == null) dart.nullFailed(I[86], 183, 54, "isLast");
        if (start !== 0 || end !== str.length) {
          for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
            this[_stringSink$].writeCharCode(str[$codeUnitAt](i));
          }
        } else {
          this[_stringSink$].write(str);
        }
        if (dart.test(isLast)) this.close();
      }
      add(str) {
        core.String.as(str);
        if (str == null) dart.nullFailed(I[86], 194, 19, "str");
        this[_stringSink$].write(str);
      }
      asUtf8Sink(allowMalformed) {
        if (allowMalformed == null) dart.nullFailed(I[86], 198, 38, "allowMalformed");
        return new convert._Utf8StringSinkAdapter.new(this, this[_stringSink$], allowMalformed);
      }
      asStringSink() {
        return new convert._ClosableStringSink.new(this[_stringSink$], dart.bind(this, 'close'));
      }
    }
    (_StringSinkConversionSink.new = function(_stringSink) {
      if (_stringSink == null) dart.nullFailed(I[86], 179, 34, "_stringSink");
      this[_stringSink$] = _stringSink;
      ;
    }).prototype = _StringSinkConversionSink.prototype;
    dart.addTypeTests(_StringSinkConversionSink);
    _StringSinkConversionSink.prototype[_is__StringSinkConversionSink_default] = true;
    dart.addTypeCaches(_StringSinkConversionSink);
    dart.setMethodSignature(_StringSinkConversionSink, () => ({
      __proto__: dart.getMethods(_StringSinkConversionSink.__proto__),
      close: dart.fnType(dart.void, []),
      addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
    }));
    dart.setLibraryUri(_StringSinkConversionSink, I[31]);
    dart.setFieldSignature(_StringSinkConversionSink, () => ({
      __proto__: dart.getFields(_StringSinkConversionSink.__proto__),
      [_stringSink$]: dart.finalFieldType(TStringSink)
    }));
    return _StringSinkConversionSink;
  });
  convert._StringSinkConversionSink = convert._StringSinkConversionSink$();
  dart.addTypeTests(convert._StringSinkConversionSink, _is__StringSinkConversionSink_default);
  var _contents = dart.privateName(core, "_contents");
  var _writeString = dart.privateName(core, "_writeString");
  core.StringBuffer = class StringBuffer extends core.Object {
    [_writeString](str) {
      this[_contents] = this[_contents] + str;
    }
    static _writeAll(string, objects, separator) {
      if (string == null) dart.nullFailed(I[7], 751, 34, "string");
      if (objects == null) dart.nullFailed(I[7], 751, 51, "objects");
      if (separator == null) dart.nullFailed(I[7], 751, 67, "separator");
      let iterator = objects[$iterator];
      if (!dart.test(iterator.moveNext())) return string;
      if (separator[$isEmpty]) {
        do {
          string = core.StringBuffer._writeOne(string, iterator.current);
        } while (dart.test(iterator.moveNext()));
      } else {
        string = core.StringBuffer._writeOne(string, iterator.current);
        while (dart.test(iterator.moveNext())) {
          string = core.StringBuffer._writeOne(string, separator);
          string = core.StringBuffer._writeOne(string, iterator.current);
        }
      }
      return string;
    }
    static _writeOne(string, obj) {
      return string + dart.str(obj);
    }
    get length() {
      return this[_contents].length;
    }
    get isEmpty() {
      return this.length === 0;
    }
    get isNotEmpty() {
      return !dart.test(this.isEmpty);
    }
    write(obj) {
      this[_writeString](dart.str(obj));
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[7], 725, 26, "charCode");
      this[_writeString](core.String.fromCharCode(charCode));
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[7], 730, 35, "objects");
      if (separator == null) dart.nullFailed(I[7], 730, 52, "separator");
      this[_contents] = core.StringBuffer._writeAll(this[_contents], objects, separator);
    }
    writeln(obj = "") {
      this[_writeString](dart.str(obj) + "\n");
    }
    clear() {
      this[_contents] = "";
    }
    toString() {
      return _js_helper.Primitives.flattenString(this[_contents]);
    }
  };
  (core.StringBuffer.new = function(content = "") {
    if (content == null) dart.nullFailed(I[7], 714, 24, "content");
    this[_contents] = dart.str(content);
    ;
  }).prototype = core.StringBuffer.prototype;
  dart.addTypeTests(core.StringBuffer);
  dart.addTypeCaches(core.StringBuffer);
  core.StringBuffer[dart.implements] = () => [core.StringSink];
  dart.setMethodSignature(core.StringBuffer, () => ({
    __proto__: dart.getMethods(core.StringBuffer.__proto__),
    [_writeString]: dart.fnType(dart.void, [core.String]),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(core.StringBuffer, () => ({
    __proto__: dart.getGetters(core.StringBuffer.__proto__),
    length: core.int,
    isEmpty: core.bool,
    isNotEmpty: core.bool
  }));
  dart.setLibraryUri(core.StringBuffer, I[8]);
  dart.setFieldSignature(core.StringBuffer, () => ({
    __proto__: dart.getFields(core.StringBuffer.__proto__),
    [_contents]: dart.fieldType(core.String)
  }));
  dart.defineExtensionMethods(core.StringBuffer, ['toString']);
  convert._JsonDecoderSink = class _JsonDecoderSink extends convert._StringSinkConversionSink$(core.StringBuffer) {
    close() {
      super.close();
      let accumulated = dart.toString(this[_stringSink$]);
      this[_stringSink$].clear();
      let decoded = convert._parseJson(accumulated, this[_reviver$]);
      this[_sink$0].add(decoded);
      this[_sink$0].close();
    }
  };
  (convert._JsonDecoderSink.new = function(_reviver, _sink) {
    if (_sink == null) dart.nullFailed(I[85], 379, 40, "_sink");
    this[_reviver$] = _reviver;
    this[_sink$0] = _sink;
    convert._JsonDecoderSink.__proto__.new.call(this, new core.StringBuffer.new(""));
    ;
  }).prototype = convert._JsonDecoderSink.prototype;
  dart.addTypeTests(convert._JsonDecoderSink);
  dart.addTypeCaches(convert._JsonDecoderSink);
  dart.setLibraryUri(convert._JsonDecoderSink, I[31]);
  dart.setFieldSignature(convert._JsonDecoderSink, () => ({
    __proto__: dart.getFields(convert._JsonDecoderSink.__proto__),
    [_reviver$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object), dart.nullable(core.Object)]))),
    [_sink$0]: dart.finalFieldType(core.Sink$(dart.nullable(core.Object)))
  }));
  var _allowInvalid = dart.privateName(convert, "AsciiCodec._allowInvalid");
  var _allowInvalid$ = dart.privateName(convert, "_allowInvalid");
  var _UnicodeSubsetDecoder__subsetMask = dart.privateName(convert, "_UnicodeSubsetDecoder._subsetMask");
  var _UnicodeSubsetDecoder__allowInvalid = dart.privateName(convert, "_UnicodeSubsetDecoder._allowInvalid");
  var _UnicodeSubsetEncoder__subsetMask = dart.privateName(convert, "_UnicodeSubsetEncoder._subsetMask");
  const _is_Codec_default = Symbol('_is_Codec_default');
  convert.Codec$ = dart.generic((S, T) => {
    var _InvertedCodecOfT$S = () => (_InvertedCodecOfT$S = dart.constFn(convert._InvertedCodec$(T, S)))();
    class Codec extends core.Object {
      encode(input) {
        S.as(input);
        return this.encoder.convert(input);
      }
      decode(encoded) {
        T.as(encoded);
        return this.decoder.convert(encoded);
      }
      fuse(R, other) {
        convert.Codec$(T, R).as(other);
        if (other == null) dart.nullFailed(I[89], 64, 35, "other");
        return new (convert._FusedCodec$(S, T, R)).new(this, other);
      }
      get inverted() {
        return new (_InvertedCodecOfT$S()).new(this);
      }
    }
    (Codec.new = function() {
      ;
    }).prototype = Codec.prototype;
    dart.addTypeTests(Codec);
    Codec.prototype[_is_Codec_default] = true;
    dart.addTypeCaches(Codec);
    dart.setMethodSignature(Codec, () => ({
      __proto__: dart.getMethods(Codec.__proto__),
      encode: dart.fnType(T, [dart.nullable(core.Object)]),
      decode: dart.fnType(S, [dart.nullable(core.Object)]),
      fuse: dart.gFnType(R => [convert.Codec$(S, R), [dart.nullable(core.Object)]], R => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(Codec, () => ({
      __proto__: dart.getGetters(Codec.__proto__),
      inverted: convert.Codec$(T, S)
    }));
    dart.setLibraryUri(Codec, I[31]);
    return Codec;
  });
  convert.Codec = convert.Codec$();
  dart.addTypeTests(convert.Codec, _is_Codec_default);
  core.List$ = dart.generic(E => {
    class List extends core.Object {
      static new(length = null) {
        let list = null;
        if (length === void 0) {
          list = [];
        } else {
          let _length = length;
          if (length == null || _length < 0) {
            dart.throw(new core.ArgumentError.new("Length must be a non-negative integer: " + dart.str(_length)));
          }
          list = new Array(_length);
          list.fill(null);
          _interceptors.JSArray.markFixedList(list);
        }
        return _interceptors.JSArray$(E).of(list);
      }
      static filled(length, fill, opts) {
        if (length == null) dart.argumentError(length);
        let growable = opts && 'growable' in opts ? opts.growable : false;
        if (growable == null) dart.nullFailed(I[7], 497, 60, "growable");
        let list = _interceptors.JSArray$(E).of(new Array(length));
        list.fill(fill);
        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
        return list;
      }
      static empty(opts) {
        let growable = opts && 'growable' in opts ? opts.growable : false;
        if (growable == null) dart.nullFailed(I[7], 490, 28, "growable");
        let list = _interceptors.JSArray$(E).of(new Array());
        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
        return list;
      }
      static from(elements, opts) {
        if (elements == null) dart.nullFailed(I[7], 505, 30, "elements");
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[7], 505, 46, "growable");
        let list = _interceptors.JSArray$(E).of([]);
        if (core.Iterable$(E).is(elements)) {
          for (let e of elements) {
            list.push(e);
          }
        } else {
          for (let e of elements) {
            list.push(E.as(e));
          }
        }
        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
        return list;
      }
      static of(elements, opts) {
        if (elements == null) dart.nullFailed(I[7], 527, 31, "elements");
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[7], 527, 47, "growable");
        let list = _interceptors.JSArray$(E).of([]);
        for (let e of elements) {
          list.push(e);
        }
        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
        return list;
      }
      static generate(length, generator, opts) {
        if (length == null) dart.nullFailed(I[7], 539, 29, "length");
        if (generator == null) dart.nullFailed(I[7], 539, 39, "generator");
        let growable = opts && 'growable' in opts ? opts.growable : true;
        if (growable == null) dart.nullFailed(I[7], 540, 13, "growable");
        let result = _interceptors.JSArray$(E).of(new Array(length));
        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(result);
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          result[i] = generator(i);
        }
        return result;
      }
      static unmodifiable(elements) {
        if (elements == null) dart.nullFailed(I[7], 552, 38, "elements");
        let list = core.List$(E).from(elements);
        _interceptors.JSArray.markUnmodifiableList(list);
        return list;
      }
      static castFrom(S, T, source) {
        if (source == null) dart.nullFailed(I[90], 190, 41, "source");
        return new (_internal.CastList$(S, T)).new(source);
      }
      static copyRange(T, target, at, source, start = null, end = null) {
        if (target == null) dart.nullFailed(I[90], 206, 36, "target");
        if (at == null) dart.nullFailed(I[90], 206, 48, "at");
        if (source == null) dart.nullFailed(I[90], 206, 60, "source");
        start == null ? start = 0 : null;
        end = core.RangeError.checkValidRange(start, end, source[$length]);
        if (end == null) {
          dart.throw("unreachable");
        }
        let length = dart.notNull(end) - dart.notNull(start);
        if (dart.notNull(target[$length]) < dart.notNull(at) + length) {
          dart.throw(new core.ArgumentError.value(target, "target", "Not big enough to hold " + dart.str(length) + " elements at position " + dart.str(at)));
        }
        if (source != target || dart.notNull(start) >= dart.notNull(at)) {
          for (let i = 0; i < length; i = i + 1) {
            target[$_set](dart.notNull(at) + i, source[$_get](dart.notNull(start) + i));
          }
        } else {
          for (let i = length; (i = i - 1) >= 0;) {
            target[$_set](dart.notNull(at) + i, source[$_get](dart.notNull(start) + i));
          }
        }
      }
      static writeIterable(T, target, at, source) {
        if (target == null) dart.nullFailed(I[90], 241, 40, "target");
        if (at == null) dart.nullFailed(I[90], 241, 52, "at");
        if (source == null) dart.nullFailed(I[90], 241, 68, "source");
        core.RangeError.checkValueInInterval(at, 0, target[$length], "at");
        let index = at;
        let targetLength = target[$length];
        for (let element of source) {
          if (index == targetLength) {
            dart.throw(new core.IndexError.new(targetLength, target));
          }
          target[$_set](index, element);
          index = dart.notNull(index) + 1;
        }
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
    }
    (List[dart.mixinNew] = function() {
    }).prototype = List.prototype;
    dart.addTypeTests(List);
    List.prototype[dart.isList] = true;
    dart.addTypeCaches(List);
    List[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
    dart.setLibraryUri(List, I[8]);
    return List;
  });
  core.List = core.List$();
  dart.addTypeTests(core.List, dart.isList);
  convert.Encoding = class Encoding extends convert.Codec$(core.String, core.List$(core.int)) {
    decodeStream(byteStream) {
      if (byteStream == null) dart.nullFailed(I[88], 21, 49, "byteStream");
      return this.decoder.bind(byteStream).fold(core.StringBuffer, new core.StringBuffer.new(), dart.fn((buffer, string) => {
        let t172;
        if (buffer == null) dart.nullFailed(I[88], 25, 27, "buffer");
        if (string == null) dart.nullFailed(I[88], 25, 42, "string");
        t172 = buffer;
        return (() => {
          t172.write(string);
          return t172;
        })();
      }, T$0.StringBufferAndStringToStringBuffer())).then(core.String, dart.fn(buffer => {
        if (buffer == null) dart.nullFailed(I[88], 26, 29, "buffer");
        return dart.toString(buffer);
      }, T$0.StringBufferToString()));
    }
    static getByName(name) {
      if (name == null) return null;
      return convert.Encoding._nameToEncoding[$_get](name[$toLowerCase]());
    }
  };
  (convert.Encoding.new = function() {
    convert.Encoding.__proto__.new.call(this);
    ;
  }).prototype = convert.Encoding.prototype;
  dart.addTypeTests(convert.Encoding);
  dart.addTypeCaches(convert.Encoding);
  dart.setMethodSignature(convert.Encoding, () => ({
    __proto__: dart.getMethods(convert.Encoding.__proto__),
    decodeStream: dart.fnType(async.Future$(core.String), [async.Stream$(core.List$(core.int))])
  }));
  dart.setLibraryUri(convert.Encoding, I[31]);
  dart.defineLazy(convert.Encoding, {
    /*convert.Encoding._nameToEncoding*/get _nameToEncoding() {
      return new (T$0.IdentityMapOfString$Encoding()).from(["iso_8859-1:1987", convert.latin1, "iso-ir-100", convert.latin1, "iso_8859-1", convert.latin1, "iso-8859-1", convert.latin1, "latin1", convert.latin1, "l1", convert.latin1, "ibm819", convert.latin1, "cp819", convert.latin1, "csisolatin1", convert.latin1, "iso-ir-6", convert.ascii, "ansi_x3.4-1968", convert.ascii, "ansi_x3.4-1986", convert.ascii, "iso_646.irv:1991", convert.ascii, "iso646-us", convert.ascii, "us-ascii", convert.ascii, "us", convert.ascii, "ibm367", convert.ascii, "cp367", convert.ascii, "csascii", convert.ascii, "ascii", convert.ascii, "csutf8", convert.utf8, "utf-8", convert.utf8]);
    }
  }, false);
  convert.AsciiCodec = class AsciiCodec extends convert.Encoding {
    get [_allowInvalid$]() {
      return this[_allowInvalid];
    }
    set [_allowInvalid$](value) {
      super[_allowInvalid$] = value;
    }
    get name() {
      return "us-ascii";
    }
    encode(source) {
      core.String.as(source);
      if (source == null) dart.nullFailed(I[87], 41, 27, "source");
      return this.encoder.convert(source);
    }
    decode(bytes, opts) {
      let t172;
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[87], 51, 27, "bytes");
      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
      if (dart.test((t172 = allowInvalid, t172 == null ? this[_allowInvalid$] : t172))) {
        return (C[80] || CT.C80).convert(bytes);
      } else {
        return (C[81] || CT.C81).convert(bytes);
      }
    }
    get encoder() {
      return C[82] || CT.C82;
    }
    get decoder() {
      return dart.test(this[_allowInvalid$]) ? C[80] || CT.C80 : C[81] || CT.C81;
    }
  };
  (convert.AsciiCodec.new = function(opts) {
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
    if (allowInvalid == null) dart.nullFailed(I[87], 36, 26, "allowInvalid");
    this[_allowInvalid] = allowInvalid;
    convert.AsciiCodec.__proto__.new.call(this);
    ;
  }).prototype = convert.AsciiCodec.prototype;
  dart.addTypeTests(convert.AsciiCodec);
  dart.addTypeCaches(convert.AsciiCodec);
  dart.setMethodSignature(convert.AsciiCodec, () => ({
    __proto__: dart.getMethods(convert.AsciiCodec.__proto__),
    encode: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)]),
    decode: dart.fnType(core.String, [dart.nullable(core.Object)], {allowInvalid: dart.nullable(core.bool)}, {})
  }));
  dart.setGetterSignature(convert.AsciiCodec, () => ({
    __proto__: dart.getGetters(convert.AsciiCodec.__proto__),
    name: core.String,
    encoder: convert.AsciiEncoder,
    decoder: convert.AsciiDecoder
  }));
  dart.setLibraryUri(convert.AsciiCodec, I[31]);
  dart.setFieldSignature(convert.AsciiCodec, () => ({
    __proto__: dart.getFields(convert.AsciiCodec.__proto__),
    [_allowInvalid$]: dart.finalFieldType(core.bool)
  }));
  var _subsetMask$ = dart.privateName(convert, "_subsetMask");
  const _subsetMask$0 = _UnicodeSubsetEncoder__subsetMask;
  convert._UnicodeSubsetEncoder = class _UnicodeSubsetEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
    get [_subsetMask$]() {
      return this[_subsetMask$0];
    }
    set [_subsetMask$](value) {
      super[_subsetMask$] = value;
    }
    convert(string, start = 0, end = null) {
      core.String.as(string);
      if (string == null) dart.nullFailed(I[87], 77, 28, "string");
      if (start == null) dart.nullFailed(I[87], 77, 41, "start");
      let stringLength = string.length;
      end = core.RangeError.checkValidRange(start, end, stringLength);
      if (end == null) {
        dart.throw(new core.RangeError.new("Invalid range"));
      }
      let length = dart.notNull(end) - dart.notNull(start);
      let result = _native_typed_data.NativeUint8List.new(length);
      for (let i = 0; i < length; i = i + 1) {
        let codeUnit = string[$codeUnitAt](dart.notNull(start) + i);
        if ((codeUnit & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
          dart.throw(new core.ArgumentError.value(string, "string", "Contains invalid characters."));
        }
        result[$_set](i, codeUnit);
      }
      return result;
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[87], 101, 63, "sink");
      return new convert._UnicodeSubsetEncoderSink.new(this[_subsetMask$], convert.ByteConversionSink.is(sink) ? sink : new convert._ByteAdapterSink.new(sink));
    }
    bind(stream) {
      T$0.StreamOfString().as(stream);
      if (stream == null) dart.nullFailed(I[87], 107, 41, "stream");
      return super.bind(stream);
    }
  };
  (convert._UnicodeSubsetEncoder.new = function(_subsetMask) {
    if (_subsetMask == null) dart.nullFailed(I[87], 71, 36, "_subsetMask");
    this[_subsetMask$0] = _subsetMask;
    convert._UnicodeSubsetEncoder.__proto__.new.call(this);
    ;
  }).prototype = convert._UnicodeSubsetEncoder.prototype;
  dart.addTypeTests(convert._UnicodeSubsetEncoder);
  dart.addTypeCaches(convert._UnicodeSubsetEncoder);
  dart.setMethodSignature(convert._UnicodeSubsetEncoder, () => ({
    __proto__: dart.getMethods(convert._UnicodeSubsetEncoder.__proto__),
    convert: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)], [core.int, dart.nullable(core.int)]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert._UnicodeSubsetEncoder, I[31]);
  dart.setFieldSignature(convert._UnicodeSubsetEncoder, () => ({
    __proto__: dart.getFields(convert._UnicodeSubsetEncoder.__proto__),
    [_subsetMask$]: dart.finalFieldType(core.int)
  }));
  convert.AsciiEncoder = class AsciiEncoder extends convert._UnicodeSubsetEncoder {};
  (convert.AsciiEncoder.new = function() {
    convert.AsciiEncoder.__proto__.new.call(this, 127);
    ;
  }).prototype = convert.AsciiEncoder.prototype;
  dart.addTypeTests(convert.AsciiEncoder);
  dart.addTypeCaches(convert.AsciiEncoder);
  dart.setLibraryUri(convert.AsciiEncoder, I[31]);
  convert._UnicodeSubsetEncoderSink = class _UnicodeSubsetEncoderSink extends convert.StringConversionSinkBase {
    close() {
      this[_sink$0].close();
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[87], 127, 24, "source");
      if (start == null) dart.nullFailed(I[87], 127, 36, "start");
      if (end == null) dart.nullFailed(I[87], 127, 47, "end");
      if (isLast == null) dart.nullFailed(I[87], 127, 57, "isLast");
      core.RangeError.checkValidRange(start, end, source.length);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let codeUnit = source[$codeUnitAt](i);
        if ((codeUnit & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
          dart.throw(new core.ArgumentError.new("Source contains invalid character with code point: " + dart.str(codeUnit) + "."));
        }
      }
      this[_sink$0].add(source[$codeUnits][$sublist](start, end));
      if (dart.test(isLast)) {
        this.close();
      }
    }
  };
  (convert._UnicodeSubsetEncoderSink.new = function(_subsetMask, _sink) {
    if (_subsetMask == null) dart.nullFailed(I[87], 121, 34, "_subsetMask");
    if (_sink == null) dart.nullFailed(I[87], 121, 52, "_sink");
    this[_subsetMask$] = _subsetMask;
    this[_sink$0] = _sink;
    ;
  }).prototype = convert._UnicodeSubsetEncoderSink.prototype;
  dart.addTypeTests(convert._UnicodeSubsetEncoderSink);
  dart.addTypeCaches(convert._UnicodeSubsetEncoderSink);
  dart.setMethodSignature(convert._UnicodeSubsetEncoderSink, () => ({
    __proto__: dart.getMethods(convert._UnicodeSubsetEncoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._UnicodeSubsetEncoderSink, I[31]);
  dart.setFieldSignature(convert._UnicodeSubsetEncoderSink, () => ({
    __proto__: dart.getFields(convert._UnicodeSubsetEncoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
    [_subsetMask$]: dart.finalFieldType(core.int)
  }));
  var _convertInvalid = dart.privateName(convert, "_convertInvalid");
  const _allowInvalid$0 = _UnicodeSubsetDecoder__allowInvalid;
  const _subsetMask$1 = _UnicodeSubsetDecoder__subsetMask;
  convert._UnicodeSubsetDecoder = class _UnicodeSubsetDecoder extends convert.Converter$(core.List$(core.int), core.String) {
    get [_allowInvalid$]() {
      return this[_allowInvalid$0];
    }
    set [_allowInvalid$](value) {
      super[_allowInvalid$] = value;
    }
    get [_subsetMask$]() {
      return this[_subsetMask$1];
    }
    set [_subsetMask$](value) {
      super[_subsetMask$] = value;
    }
    convert(bytes, start = 0, end = null) {
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[87], 168, 28, "bytes");
      if (start == null) dart.nullFailed(I[87], 168, 40, "start");
      end = core.RangeError.checkValidRange(start, end, bytes[$length]);
      if (end == null) {
        dart.throw(new core.RangeError.new("Invalid range"));
      }
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let byte = bytes[$_get](i);
        if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
          if (!dart.test(this[_allowInvalid$])) {
            dart.throw(new core.FormatException.new("Invalid value in input: " + dart.str(byte)));
          }
          return this[_convertInvalid](bytes, start, end);
        }
      }
      return core.String.fromCharCodes(bytes, start, end);
    }
    [_convertInvalid](bytes, start, end) {
      if (bytes == null) dart.nullFailed(I[87], 186, 36, "bytes");
      if (start == null) dart.nullFailed(I[87], 186, 47, "start");
      if (end == null) dart.nullFailed(I[87], 186, 58, "end");
      let buffer = new core.StringBuffer.new();
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let value = bytes[$_get](i);
        if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) value = 65533;
        buffer.writeCharCode(value);
      }
      return buffer.toString();
    }
    bind(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[87], 203, 41, "stream");
      return super.bind(stream);
    }
  };
  (convert._UnicodeSubsetDecoder.new = function(_allowInvalid, _subsetMask) {
    if (_allowInvalid == null) dart.nullFailed(I[87], 161, 36, "_allowInvalid");
    if (_subsetMask == null) dart.nullFailed(I[87], 161, 56, "_subsetMask");
    this[_allowInvalid$0] = _allowInvalid;
    this[_subsetMask$1] = _subsetMask;
    convert._UnicodeSubsetDecoder.__proto__.new.call(this);
    ;
  }).prototype = convert._UnicodeSubsetDecoder.prototype;
  dart.addTypeTests(convert._UnicodeSubsetDecoder);
  dart.addTypeCaches(convert._UnicodeSubsetDecoder);
  dart.setMethodSignature(convert._UnicodeSubsetDecoder, () => ({
    __proto__: dart.getMethods(convert._UnicodeSubsetDecoder.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)], [core.int, dart.nullable(core.int)]),
    [_convertInvalid]: dart.fnType(core.String, [core.List$(core.int), core.int, core.int])
  }));
  dart.setLibraryUri(convert._UnicodeSubsetDecoder, I[31]);
  dart.setFieldSignature(convert._UnicodeSubsetDecoder, () => ({
    __proto__: dart.getFields(convert._UnicodeSubsetDecoder.__proto__),
    [_allowInvalid$]: dart.finalFieldType(core.bool),
    [_subsetMask$]: dart.finalFieldType(core.int)
  }));
  convert.AsciiDecoder = class AsciiDecoder extends convert._UnicodeSubsetDecoder {
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[87], 214, 58, "sink");
      let stringSink = null;
      if (convert.StringConversionSink.is(sink)) {
        stringSink = sink;
      } else {
        stringSink = new convert._StringAdapterSink.new(sink);
      }
      if (dart.test(this[_allowInvalid$])) {
        return new convert._ErrorHandlingAsciiDecoderSink.new(stringSink.asUtf8Sink(false));
      } else {
        return new convert._SimpleAsciiDecoderSink.new(stringSink);
      }
    }
  };
  (convert.AsciiDecoder.new = function(opts) {
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
    if (allowInvalid == null) dart.nullFailed(I[87], 207, 28, "allowInvalid");
    convert.AsciiDecoder.__proto__.new.call(this, allowInvalid, 127);
    ;
  }).prototype = convert.AsciiDecoder.prototype;
  dart.addTypeTests(convert.AsciiDecoder);
  dart.addTypeCaches(convert.AsciiDecoder);
  dart.setMethodSignature(convert.AsciiDecoder, () => ({
    __proto__: dart.getMethods(convert.AsciiDecoder.__proto__),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.AsciiDecoder, I[31]);
  var _utf8Sink$ = dart.privateName(convert, "_utf8Sink");
  const _is_ChunkedConversionSink_default = Symbol('_is_ChunkedConversionSink_default');
  convert.ChunkedConversionSink$ = dart.generic(T => {
    class ChunkedConversionSink extends core.Object {}
    (ChunkedConversionSink.new = function() {
      ;
    }).prototype = ChunkedConversionSink.prototype;
    dart.addTypeTests(ChunkedConversionSink);
    ChunkedConversionSink.prototype[_is_ChunkedConversionSink_default] = true;
    dart.addTypeCaches(ChunkedConversionSink);
    ChunkedConversionSink[dart.implements] = () => [core.Sink$(T)];
    dart.setLibraryUri(ChunkedConversionSink, I[31]);
    return ChunkedConversionSink;
  });
  convert.ChunkedConversionSink = convert.ChunkedConversionSink$();
  dart.addTypeTests(convert.ChunkedConversionSink, _is_ChunkedConversionSink_default);
  convert.ByteConversionSink = class ByteConversionSink extends convert.ChunkedConversionSink$(core.List$(core.int)) {};
  (convert.ByteConversionSink.new = function() {
    convert.ByteConversionSink.__proto__.new.call(this);
    ;
  }).prototype = convert.ByteConversionSink.prototype;
  dart.addTypeTests(convert.ByteConversionSink);
  dart.addTypeCaches(convert.ByteConversionSink);
  dart.setLibraryUri(convert.ByteConversionSink, I[31]);
  convert.ByteConversionSinkBase = class ByteConversionSinkBase extends convert.ByteConversionSink {
    addSlice(chunk, start, end, isLast) {
      if (chunk == null) dart.nullFailed(I[91], 42, 27, "chunk");
      if (start == null) dart.nullFailed(I[91], 42, 38, "start");
      if (end == null) dart.nullFailed(I[91], 42, 49, "end");
      if (isLast == null) dart.nullFailed(I[91], 42, 59, "isLast");
      this.add(chunk[$sublist](start, end));
      if (dart.test(isLast)) this.close();
    }
  };
  (convert.ByteConversionSinkBase.new = function() {
    convert.ByteConversionSinkBase.__proto__.new.call(this);
    ;
  }).prototype = convert.ByteConversionSinkBase.prototype;
  dart.addTypeTests(convert.ByteConversionSinkBase);
  dart.addTypeCaches(convert.ByteConversionSinkBase);
  dart.setMethodSignature(convert.ByteConversionSinkBase, () => ({
    __proto__: dart.getMethods(convert.ByteConversionSinkBase.__proto__),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert.ByteConversionSinkBase, I[31]);
  convert._ErrorHandlingAsciiDecoderSink = class _ErrorHandlingAsciiDecoderSink extends convert.ByteConversionSinkBase {
    close() {
      this[_utf8Sink$].close();
    }
    add(source) {
      T$0.ListOfint().as(source);
      if (source == null) dart.nullFailed(I[87], 241, 22, "source");
      this.addSlice(source, 0, source[$length], false);
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[87], 245, 27, "source");
      if (start == null) dart.nullFailed(I[87], 245, 39, "start");
      if (end == null) dart.nullFailed(I[87], 245, 50, "end");
      if (isLast == null) dart.nullFailed(I[87], 245, 60, "isLast");
      core.RangeError.checkValidRange(start, end, source[$length]);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        if ((dart.notNull(source[$_get](i)) & ~127 >>> 0) !== 0) {
          if (dart.notNull(i) > dart.notNull(start)) this[_utf8Sink$].addSlice(source, start, i, false);
          this[_utf8Sink$].add(C[83] || CT.C83);
          start = dart.notNull(i) + 1;
        }
      }
      if (dart.notNull(start) < dart.notNull(end)) {
        this[_utf8Sink$].addSlice(source, start, end, isLast);
      } else if (dart.test(isLast)) {
        this.close();
      }
    }
  };
  (convert._ErrorHandlingAsciiDecoderSink.new = function(_utf8Sink) {
    if (_utf8Sink == null) dart.nullFailed(I[87], 235, 39, "_utf8Sink");
    this[_utf8Sink$] = _utf8Sink;
    convert._ErrorHandlingAsciiDecoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._ErrorHandlingAsciiDecoderSink.prototype;
  dart.addTypeTests(convert._ErrorHandlingAsciiDecoderSink);
  dart.addTypeCaches(convert._ErrorHandlingAsciiDecoderSink);
  dart.setMethodSignature(convert._ErrorHandlingAsciiDecoderSink, () => ({
    __proto__: dart.getMethods(convert._ErrorHandlingAsciiDecoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert._ErrorHandlingAsciiDecoderSink, I[31]);
  dart.setFieldSignature(convert._ErrorHandlingAsciiDecoderSink, () => ({
    __proto__: dart.getFields(convert._ErrorHandlingAsciiDecoderSink.__proto__),
    [_utf8Sink$]: dart.fieldType(convert.ByteConversionSink)
  }));
  convert._SimpleAsciiDecoderSink = class _SimpleAsciiDecoderSink extends convert.ByteConversionSinkBase {
    close() {
      this[_sink$0].close();
    }
    add(source) {
      T$0.ListOfint().as(source);
      if (source == null) dart.nullFailed(I[87], 271, 22, "source");
      for (let i = 0; i < dart.notNull(source[$length]); i = i + 1) {
        if ((dart.notNull(source[$_get](i)) & ~127 >>> 0) !== 0) {
          dart.throw(new core.FormatException.new("Source contains non-ASCII bytes."));
        }
      }
      this[_sink$0].add(core.String.fromCharCodes(source));
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[87], 280, 27, "source");
      if (start == null) dart.nullFailed(I[87], 280, 39, "start");
      if (end == null) dart.nullFailed(I[87], 280, 50, "end");
      if (isLast == null) dart.nullFailed(I[87], 280, 60, "isLast");
      let length = source[$length];
      core.RangeError.checkValidRange(start, end, length);
      if (dart.notNull(start) < dart.notNull(end)) {
        if (start !== 0 || end != length) {
          source = source[$sublist](start, end);
        }
        this.add(source);
      }
      if (dart.test(isLast)) this.close();
    }
  };
  (convert._SimpleAsciiDecoderSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[87], 265, 32, "_sink");
    this[_sink$0] = _sink;
    convert._SimpleAsciiDecoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._SimpleAsciiDecoderSink.prototype;
  dart.addTypeTests(convert._SimpleAsciiDecoderSink);
  dart.addTypeCaches(convert._SimpleAsciiDecoderSink);
  dart.setMethodSignature(convert._SimpleAsciiDecoderSink, () => ({
    __proto__: dart.getMethods(convert._SimpleAsciiDecoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert._SimpleAsciiDecoderSink, I[31]);
  dart.setFieldSignature(convert._SimpleAsciiDecoderSink, () => ({
    __proto__: dart.getFields(convert._SimpleAsciiDecoderSink.__proto__),
    [_sink$0]: dart.fieldType(core.Sink)
  }));
  var _encoder = dart.privateName(convert, "Base64Codec._encoder");
  var Base64Encoder__urlSafe = dart.privateName(convert, "Base64Encoder._urlSafe");
  var _encoder$ = dart.privateName(convert, "_encoder");
  convert.Base64Codec = class Base64Codec extends convert.Codec$(core.List$(core.int), core.String) {
    get [_encoder$]() {
      return this[_encoder];
    }
    set [_encoder$](value) {
      super[_encoder$] = value;
    }
    get encoder() {
      return this[_encoder$];
    }
    get decoder() {
      return C[86] || CT.C86;
    }
    decode(encoded) {
      core.String.as(encoded);
      if (encoded == null) dart.nullFailed(I[92], 83, 27, "encoded");
      return this.decoder.convert(encoded);
    }
    normalize(source, start = 0, end = null) {
      let t172, t172$, t172$0, t172$1, t172$2;
      if (source == null) dart.nullFailed(I[92], 97, 27, "source");
      if (start == null) dart.nullFailed(I[92], 97, 40, "start");
      end = core.RangeError.checkValidRange(start, end, source.length);
      if (end == null) {
        dart.throw(new core.RangeError.new("Invalid range"));
      }
      let buffer = null;
      let sliceStart = start;
      let alphabet = convert._Base64Encoder._base64Alphabet;
      let inverseAlphabet = convert._Base64Decoder._inverseAlphabet;
      let firstPadding = -1;
      let firstPaddingSourceIndex = -1;
      let paddingCount = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(end);) {
        let sliceEnd = i;
        let char = source[$codeUnitAt]((t172 = i, i = dart.notNull(t172) + 1, t172));
        let originalChar = char;
        if (char === 37) {
          if (dart.notNull(i) + 2 <= dart.notNull(end)) {
            char = _internal.parseHexByte(source, i);
            i = dart.notNull(i) + 2;
            if (char === 37) char = -1;
          } else {
            char = -1;
          }
        }
        if (0 <= dart.notNull(char) && dart.notNull(char) <= 127) {
          let value = inverseAlphabet[$_get](char);
          if (dart.notNull(value) >= 0) {
            char = alphabet[$codeUnitAt](value);
            if (char == originalChar) continue;
          } else if (value === -1) {
            if (firstPadding < 0) {
              firstPadding = dart.notNull((t172$0 = (t172$ = buffer, t172$ == null ? null : t172$.length), t172$0 == null ? 0 : t172$0)) + (dart.notNull(sliceEnd) - dart.notNull(sliceStart));
              firstPaddingSourceIndex = sliceEnd;
            }
            paddingCount = paddingCount + 1;
            if (originalChar === 61) continue;
          }
          if (value !== -2) {
            t172$2 = (t172$1 = buffer, t172$1 == null ? buffer = new core.StringBuffer.new() : t172$1);
            (() => {
              t172$2.write(source[$substring](sliceStart, sliceEnd));
              t172$2.writeCharCode(char);
              return t172$2;
            })();
            sliceStart = i;
            continue;
          }
        }
        dart.throw(new core.FormatException.new("Invalid base64 data", source, sliceEnd));
      }
      if (buffer != null) {
        buffer.write(source[$substring](sliceStart, end));
        if (firstPadding >= 0) {
          convert.Base64Codec._checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, buffer.length);
        } else {
          let endLength = (dart.notNull(buffer.length) - 1)[$modulo](4) + 1;
          if (endLength === 1) {
            dart.throw(new core.FormatException.new("Invalid base64 encoding length ", source, end));
          }
          while (endLength < 4) {
            buffer.write("=");
            endLength = endLength + 1;
          }
        }
        return source[$replaceRange](start, end, dart.toString(buffer));
      }
      let length = dart.notNull(end) - dart.notNull(start);
      if (firstPadding >= 0) {
        convert.Base64Codec._checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, length);
      } else {
        let endLength = length[$modulo](4);
        if (endLength === 1) {
          dart.throw(new core.FormatException.new("Invalid base64 encoding length ", source, end));
        }
        if (endLength > 1) {
          source = source[$replaceRange](end, end, endLength === 2 ? "==" : "=");
        }
      }
      return source;
    }
    static _checkPadding(source, sourceIndex, sourceEnd, firstPadding, paddingCount, length) {
      if (source == null) dart.nullFailed(I[92], 199, 36, "source");
      if (sourceIndex == null) dart.nullFailed(I[92], 199, 48, "sourceIndex");
      if (sourceEnd == null) dart.nullFailed(I[92], 199, 65, "sourceEnd");
      if (firstPadding == null) dart.nullFailed(I[92], 200, 11, "firstPadding");
      if (paddingCount == null) dart.nullFailed(I[92], 200, 29, "paddingCount");
      if (length == null) dart.nullFailed(I[92], 200, 47, "length");
      if (length[$modulo](4) !== 0) {
        dart.throw(new core.FormatException.new("Invalid base64 padding, padded length must be multiple of four, " + "is " + dart.str(length), source, sourceEnd));
      }
      if (dart.notNull(firstPadding) + dart.notNull(paddingCount) !== length) {
        dart.throw(new core.FormatException.new("Invalid base64 padding, '=' not at the end", source, sourceIndex));
      }
      if (dart.notNull(paddingCount) > 2) {
        dart.throw(new core.FormatException.new("Invalid base64 padding, more than two '=' characters", source, sourceIndex));
      }
    }
  };
  (convert.Base64Codec.new = function() {
    this[_encoder] = C[84] || CT.C84;
    convert.Base64Codec.__proto__.new.call(this);
    ;
  }).prototype = convert.Base64Codec.prototype;
  (convert.Base64Codec.urlSafe = function() {
    this[_encoder] = C[85] || CT.C85;
    convert.Base64Codec.__proto__.new.call(this);
    ;
  }).prototype = convert.Base64Codec.prototype;
  dart.addTypeTests(convert.Base64Codec);
  dart.addTypeCaches(convert.Base64Codec);
  dart.setMethodSignature(convert.Base64Codec, () => ({
    __proto__: dart.getMethods(convert.Base64Codec.__proto__),
    decode: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)]),
    normalize: dart.fnType(core.String, [core.String], [core.int, dart.nullable(core.int)])
  }));
  dart.setGetterSignature(convert.Base64Codec, () => ({
    __proto__: dart.getGetters(convert.Base64Codec.__proto__),
    encoder: convert.Base64Encoder,
    decoder: convert.Base64Decoder
  }));
  dart.setLibraryUri(convert.Base64Codec, I[31]);
  dart.setFieldSignature(convert.Base64Codec, () => ({
    __proto__: dart.getFields(convert.Base64Codec.__proto__),
    [_encoder$]: dart.finalFieldType(convert.Base64Encoder)
  }));
  var _urlSafe = dart.privateName(convert, "_urlSafe");
  const _urlSafe$ = Base64Encoder__urlSafe;
  convert.Base64Encoder = class Base64Encoder extends convert.Converter$(core.List$(core.int), core.String) {
    get [_urlSafe]() {
      return this[_urlSafe$];
    }
    set [_urlSafe](value) {
      super[_urlSafe] = value;
    }
    convert(input) {
      T$0.ListOfint().as(input);
      if (input == null) dart.nullFailed(I[92], 236, 28, "input");
      if (dart.test(input[$isEmpty])) return "";
      let encoder = new convert._Base64Encoder.new(this[_urlSafe]);
      let buffer = dart.nullCheck(encoder.encode(input, 0, input[$length], true));
      return core.String.fromCharCodes(buffer);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[92], 243, 58, "sink");
      if (convert.StringConversionSink.is(sink)) {
        return new convert._Utf8Base64EncoderSink.new(sink.asUtf8Sink(false), this[_urlSafe]);
      }
      return new convert._AsciiBase64EncoderSink.new(sink, this[_urlSafe]);
    }
  };
  (convert.Base64Encoder.new = function() {
    this[_urlSafe$] = false;
    convert.Base64Encoder.__proto__.new.call(this);
    ;
  }).prototype = convert.Base64Encoder.prototype;
  (convert.Base64Encoder.urlSafe = function() {
    this[_urlSafe$] = true;
    convert.Base64Encoder.__proto__.new.call(this);
    ;
  }).prototype = convert.Base64Encoder.prototype;
  dart.addTypeTests(convert.Base64Encoder);
  dart.addTypeCaches(convert.Base64Encoder);
  dart.setMethodSignature(convert.Base64Encoder, () => ({
    __proto__: dart.getMethods(convert.Base64Encoder.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.Base64Encoder, I[31]);
  dart.setFieldSignature(convert.Base64Encoder, () => ({
    __proto__: dart.getFields(convert.Base64Encoder.__proto__),
    [_urlSafe]: dart.finalFieldType(core.bool)
  }));
  var _state$0 = dart.privateName(convert, "_state");
  var _alphabet = dart.privateName(convert, "_alphabet");
  convert._Base64Encoder = class _Base64Encoder extends core.Object {
    static _encodeState(count, bits) {
      if (count == null) dart.nullFailed(I[92], 283, 31, "count");
      if (bits == null) dart.nullFailed(I[92], 283, 42, "bits");
      if (!(dart.notNull(count) <= 3)) dart.assertFailed(null, I[92], 284, 12, "count <= _countMask");
      return (bits[$leftShift](2) | dart.notNull(count)) >>> 0;
    }
    static _stateBits(state) {
      if (state == null) dart.nullFailed(I[92], 289, 29, "state");
      return state[$rightShift](2);
    }
    static _stateCount(state) {
      if (state == null) dart.nullFailed(I[92], 292, 30, "state");
      return (dart.notNull(state) & 3) >>> 0;
    }
    createBuffer(bufferLength) {
      if (bufferLength == null) dart.nullFailed(I[92], 295, 30, "bufferLength");
      return _native_typed_data.NativeUint8List.new(bufferLength);
    }
    encode(bytes, start, end, isLast) {
      if (bytes == null) dart.nullFailed(I[92], 308, 31, "bytes");
      if (start == null) dart.nullFailed(I[92], 308, 42, "start");
      if (end == null) dart.nullFailed(I[92], 308, 53, "end");
      if (isLast == null) dart.nullFailed(I[92], 308, 63, "isLast");
      if (!(0 <= dart.notNull(start))) dart.assertFailed(null, I[92], 309, 12, "0 <= start");
      if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, I[92], 310, 12, "start <= end");
      if (!(dart.notNull(end) <= dart.notNull(bytes[$length]))) dart.assertFailed(null, I[92], 311, 12, "end <= bytes.length");
      let length = dart.notNull(end) - dart.notNull(start);
      let count = convert._Base64Encoder._stateCount(this[_state$0]);
      let byteCount = dart.notNull(count) + length;
      let fullChunks = (byteCount / 3)[$truncate]();
      let partialChunkLength = byteCount - fullChunks * 3;
      let bufferLength = fullChunks * 4;
      if (dart.test(isLast) && partialChunkLength > 0) {
        bufferLength = bufferLength + 4;
      }
      let output = this.createBuffer(bufferLength);
      this[_state$0] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state$0]);
      if (bufferLength > 0) return output;
      return null;
    }
    static encodeChunk(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
      let t172, t172$, t172$0, t172$1;
      if (alphabet == null) dart.nullFailed(I[92], 331, 33, "alphabet");
      if (bytes == null) dart.nullFailed(I[92], 331, 53, "bytes");
      if (start == null) dart.nullFailed(I[92], 331, 64, "start");
      if (end == null) dart.nullFailed(I[92], 331, 75, "end");
      if (isLast == null) dart.nullFailed(I[92], 332, 12, "isLast");
      if (output == null) dart.nullFailed(I[92], 332, 30, "output");
      if (outputIndex == null) dart.nullFailed(I[92], 332, 42, "outputIndex");
      if (state == null) dart.nullFailed(I[92], 332, 59, "state");
      let bits = convert._Base64Encoder._stateBits(state);
      let expectedChars = 3 - dart.notNull(convert._Base64Encoder._stateCount(state));
      let byteOr = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let byte = bytes[$_get](i);
        byteOr = (byteOr | dart.notNull(byte)) >>> 0;
        bits = (dart.notNull(bits) << 8 | dart.notNull(byte)) & 16777215;
        expectedChars = expectedChars - 1;
        if (expectedChars === 0) {
          output[$_set]((t172 = outputIndex, outputIndex = dart.notNull(t172) + 1, t172), alphabet[$codeUnitAt]((bits[$rightShift](18) & 63) >>> 0));
          output[$_set]((t172$ = outputIndex, outputIndex = dart.notNull(t172$) + 1, t172$), alphabet[$codeUnitAt]((bits[$rightShift](12) & 63) >>> 0));
          output[$_set]((t172$0 = outputIndex, outputIndex = dart.notNull(t172$0) + 1, t172$0), alphabet[$codeUnitAt]((bits[$rightShift](6) & 63) >>> 0));
          output[$_set]((t172$1 = outputIndex, outputIndex = dart.notNull(t172$1) + 1, t172$1), alphabet[$codeUnitAt]((dart.notNull(bits) & 63) >>> 0));
          expectedChars = 3;
          bits = 0;
        }
      }
      if (byteOr >= 0 && byteOr <= 255) {
        if (dart.test(isLast) && expectedChars < 3) {
          convert._Base64Encoder.writeFinalChunk(alphabet, output, outputIndex, 3 - expectedChars, bits);
          return 0;
        }
        return convert._Base64Encoder._encodeState(3 - expectedChars, bits);
      }
      let i = start;
      while (dart.notNull(i) < dart.notNull(end)) {
        let byte = bytes[$_get](i);
        if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) break;
        i = dart.notNull(i) + 1;
      }
      dart.throw(new core.ArgumentError.value(bytes, "Not a byte value at index " + dart.str(i) + ": 0x" + bytes[$_get](i)[$toRadixString](16)));
    }
    static writeFinalChunk(alphabet, output, outputIndex, count, bits) {
      let t172, t172$, t172$0, t172$1, t172$2, t172$3, t172$4, t172$5;
      if (alphabet == null) dart.nullFailed(I[92], 379, 14, "alphabet");
      if (output == null) dart.nullFailed(I[92], 379, 34, "output");
      if (outputIndex == null) dart.nullFailed(I[92], 379, 46, "outputIndex");
      if (count == null) dart.nullFailed(I[92], 379, 63, "count");
      if (bits == null) dart.nullFailed(I[92], 379, 74, "bits");
      if (!(dart.notNull(count) > 0)) dart.assertFailed(null, I[92], 380, 12, "count > 0");
      if (count === 1) {
        output[$_set]((t172 = outputIndex, outputIndex = dart.notNull(t172) + 1, t172), alphabet[$codeUnitAt]((bits[$rightShift](2) & 63) >>> 0));
        output[$_set]((t172$ = outputIndex, outputIndex = dart.notNull(t172$) + 1, t172$), alphabet[$codeUnitAt]((dart.notNull(bits) << 4 & 63) >>> 0));
        output[$_set]((t172$0 = outputIndex, outputIndex = dart.notNull(t172$0) + 1, t172$0), 61);
        output[$_set]((t172$1 = outputIndex, outputIndex = dart.notNull(t172$1) + 1, t172$1), 61);
      } else {
        if (!(count === 2)) dart.assertFailed(null, I[92], 387, 14, "count == 2");
        output[$_set]((t172$2 = outputIndex, outputIndex = dart.notNull(t172$2) + 1, t172$2), alphabet[$codeUnitAt]((bits[$rightShift](10) & 63) >>> 0));
        output[$_set]((t172$3 = outputIndex, outputIndex = dart.notNull(t172$3) + 1, t172$3), alphabet[$codeUnitAt]((bits[$rightShift](4) & 63) >>> 0));
        output[$_set]((t172$4 = outputIndex, outputIndex = dart.notNull(t172$4) + 1, t172$4), alphabet[$codeUnitAt]((dart.notNull(bits) << 2 & 63) >>> 0));
        output[$_set]((t172$5 = outputIndex, outputIndex = dart.notNull(t172$5) + 1, t172$5), 61);
      }
    }
  };
  (convert._Base64Encoder.new = function(urlSafe) {
    if (urlSafe == null) dart.nullFailed(I[92], 279, 23, "urlSafe");
    this[_state$0] = 0;
    this[_alphabet] = dart.test(urlSafe) ? convert._Base64Encoder._base64UrlAlphabet : convert._Base64Encoder._base64Alphabet;
    ;
  }).prototype = convert._Base64Encoder.prototype;
  dart.addTypeTests(convert._Base64Encoder);
  dart.addTypeCaches(convert._Base64Encoder);
  dart.setMethodSignature(convert._Base64Encoder, () => ({
    __proto__: dart.getMethods(convert._Base64Encoder.__proto__),
    createBuffer: dart.fnType(typed_data.Uint8List, [core.int]),
    encode: dart.fnType(dart.nullable(typed_data.Uint8List), [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Base64Encoder, I[31]);
  dart.setFieldSignature(convert._Base64Encoder, () => ({
    __proto__: dart.getFields(convert._Base64Encoder.__proto__),
    [_state$0]: dart.fieldType(core.int),
    [_alphabet]: dart.finalFieldType(core.String)
  }));
  dart.defineLazy(convert._Base64Encoder, {
    /*convert._Base64Encoder._base64Alphabet*/get _base64Alphabet() {
      return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    },
    /*convert._Base64Encoder._base64UrlAlphabet*/get _base64UrlAlphabet() {
      return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
    },
    /*convert._Base64Encoder._valueShift*/get _valueShift() {
      return 2;
    },
    /*convert._Base64Encoder._countMask*/get _countMask() {
      return 3;
    },
    /*convert._Base64Encoder._sixBitMask*/get _sixBitMask() {
      return 63;
    }
  }, false);
  convert._BufferCachingBase64Encoder = class _BufferCachingBase64Encoder extends convert._Base64Encoder {
    createBuffer(bufferLength) {
      if (bufferLength == null) dart.nullFailed(I[92], 405, 30, "bufferLength");
      let buffer = this.bufferCache;
      if (buffer == null || dart.notNull(buffer[$length]) < dart.notNull(bufferLength)) {
        this.bufferCache = buffer = _native_typed_data.NativeUint8List.new(bufferLength);
      }
      if (buffer == null) {
        dart.throw("unreachable");
      }
      return typed_data.Uint8List.view(buffer[$buffer], buffer[$offsetInBytes], bufferLength);
    }
  };
  (convert._BufferCachingBase64Encoder.new = function(urlSafe) {
    if (urlSafe == null) dart.nullFailed(I[92], 403, 36, "urlSafe");
    this.bufferCache = null;
    convert._BufferCachingBase64Encoder.__proto__.new.call(this, urlSafe);
    ;
  }).prototype = convert._BufferCachingBase64Encoder.prototype;
  dart.addTypeTests(convert._BufferCachingBase64Encoder);
  dart.addTypeCaches(convert._BufferCachingBase64Encoder);
  dart.setLibraryUri(convert._BufferCachingBase64Encoder, I[31]);
  dart.setFieldSignature(convert._BufferCachingBase64Encoder, () => ({
    __proto__: dart.getFields(convert._BufferCachingBase64Encoder.__proto__),
    bufferCache: dart.fieldType(dart.nullable(typed_data.Uint8List))
  }));
  var _add$0 = dart.privateName(convert, "_add");
  convert._Base64EncoderSink = class _Base64EncoderSink extends convert.ByteConversionSinkBase {
    add(source) {
      T$0.ListOfint().as(source);
      if (source == null) dart.nullFailed(I[92], 420, 22, "source");
      this[_add$0](source, 0, source[$length], false);
    }
    close() {
      this[_add$0](C[87] || CT.C87, 0, 0, true);
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[92], 428, 27, "source");
      if (start == null) dart.nullFailed(I[92], 428, 39, "start");
      if (end == null) dart.nullFailed(I[92], 428, 50, "end");
      if (isLast == null) dart.nullFailed(I[92], 428, 60, "isLast");
      if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
      core.RangeError.checkValidRange(start, end, source[$length]);
      this[_add$0](source, start, end, isLast);
    }
  };
  (convert._Base64EncoderSink.new = function() {
    convert._Base64EncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._Base64EncoderSink.prototype;
  dart.addTypeTests(convert._Base64EncoderSink);
  dart.addTypeCaches(convert._Base64EncoderSink);
  dart.setMethodSignature(convert._Base64EncoderSink, () => ({
    __proto__: dart.getMethods(convert._Base64EncoderSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._Base64EncoderSink, I[31]);
  convert._AsciiBase64EncoderSink = class _AsciiBase64EncoderSink extends convert._Base64EncoderSink {
    [_add$0](source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[92], 444, 23, "source");
      if (start == null) dart.nullFailed(I[92], 444, 35, "start");
      if (end == null) dart.nullFailed(I[92], 444, 46, "end");
      if (isLast == null) dart.nullFailed(I[92], 444, 56, "isLast");
      let buffer = this[_encoder$].encode(source, start, end, isLast);
      if (buffer != null) {
        let string = core.String.fromCharCodes(buffer);
        this[_sink$0].add(string);
      }
      if (dart.test(isLast)) {
        this[_sink$0].close();
      }
    }
  };
  (convert._AsciiBase64EncoderSink.new = function(_sink, urlSafe) {
    if (_sink == null) dart.nullFailed(I[92], 441, 32, "_sink");
    if (urlSafe == null) dart.nullFailed(I[92], 441, 44, "urlSafe");
    this[_sink$0] = _sink;
    this[_encoder$] = new convert._BufferCachingBase64Encoder.new(urlSafe);
    convert._AsciiBase64EncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._AsciiBase64EncoderSink.prototype;
  dart.addTypeTests(convert._AsciiBase64EncoderSink);
  dart.addTypeCaches(convert._AsciiBase64EncoderSink);
  dart.setMethodSignature(convert._AsciiBase64EncoderSink, () => ({
    __proto__: dart.getMethods(convert._AsciiBase64EncoderSink.__proto__),
    [_add$0]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._AsciiBase64EncoderSink, I[31]);
  dart.setFieldSignature(convert._AsciiBase64EncoderSink, () => ({
    __proto__: dart.getFields(convert._AsciiBase64EncoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(core.Sink$(core.String)),
    [_encoder$]: dart.finalFieldType(convert._Base64Encoder)
  }));
  convert._Utf8Base64EncoderSink = class _Utf8Base64EncoderSink extends convert._Base64EncoderSink {
    [_add$0](source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[92], 463, 23, "source");
      if (start == null) dart.nullFailed(I[92], 463, 35, "start");
      if (end == null) dart.nullFailed(I[92], 463, 46, "end");
      if (isLast == null) dart.nullFailed(I[92], 463, 56, "isLast");
      let buffer = this[_encoder$].encode(source, start, end, isLast);
      if (buffer != null) {
        this[_sink$0].addSlice(buffer, 0, buffer[$length], isLast);
      }
    }
  };
  (convert._Utf8Base64EncoderSink.new = function(_sink, urlSafe) {
    if (_sink == null) dart.nullFailed(I[92], 460, 31, "_sink");
    if (urlSafe == null) dart.nullFailed(I[92], 460, 43, "urlSafe");
    this[_sink$0] = _sink;
    this[_encoder$] = new convert._Base64Encoder.new(urlSafe);
    convert._Utf8Base64EncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._Utf8Base64EncoderSink.prototype;
  dart.addTypeTests(convert._Utf8Base64EncoderSink);
  dart.addTypeCaches(convert._Utf8Base64EncoderSink);
  dart.setMethodSignature(convert._Utf8Base64EncoderSink, () => ({
    __proto__: dart.getMethods(convert._Utf8Base64EncoderSink.__proto__),
    [_add$0]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Utf8Base64EncoderSink, I[31]);
  dart.setFieldSignature(convert._Utf8Base64EncoderSink, () => ({
    __proto__: dart.getFields(convert._Utf8Base64EncoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
    [_encoder$]: dart.finalFieldType(convert._Base64Encoder)
  }));
  convert.Base64Decoder = class Base64Decoder extends convert.Converter$(core.String, core.List$(core.int)) {
    convert(input, start = 0, end = null) {
      core.String.as(input);
      if (input == null) dart.nullFailed(I[92], 491, 28, "input");
      if (start == null) dart.nullFailed(I[92], 491, 40, "start");
      end = core.RangeError.checkValidRange(start, end, input.length);
      if (end == null) {
        dart.throw(new core.RangeError.new("Invalid range"));
      }
      if (start == end) return _native_typed_data.NativeUint8List.new(0);
      let decoder = new convert._Base64Decoder.new();
      let buffer = dart.nullCheck(decoder.decode(input, start, end));
      decoder.close(input, end);
      return buffer;
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[92], 504, 63, "sink");
      return new convert._Base64DecoderSink.new(sink);
    }
  };
  (convert.Base64Decoder.new = function() {
    convert.Base64Decoder.__proto__.new.call(this);
    ;
  }).prototype = convert.Base64Decoder.prototype;
  dart.addTypeTests(convert.Base64Decoder);
  dart.addTypeCaches(convert.Base64Decoder);
  dart.setMethodSignature(convert.Base64Decoder, () => ({
    __proto__: dart.getMethods(convert.Base64Decoder.__proto__),
    convert: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)], [core.int, dart.nullable(core.int)]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.Base64Decoder, I[31]);
  convert._Base64Decoder = class _Base64Decoder extends core.Object {
    static _encodeCharacterState(count, bits) {
      if (count == null) dart.nullFailed(I[92], 572, 40, "count");
      if (bits == null) dart.nullFailed(I[92], 572, 51, "bits");
      if (!(count === (dart.notNull(count) & 3) >>> 0)) dart.assertFailed(null, I[92], 573, 12, "count == (count & _countMask)");
      return (bits[$leftShift](2) | dart.notNull(count)) >>> 0;
    }
    static _stateCount(state) {
      if (state == null) dart.nullFailed(I[92], 578, 30, "state");
      if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, I[92], 579, 12, "state >= 0");
      return (dart.notNull(state) & 3) >>> 0;
    }
    static _stateBits(state) {
      if (state == null) dart.nullFailed(I[92], 584, 29, "state");
      if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, I[92], 585, 12, "state >= 0");
      return state[$rightShift](2);
    }
    static _encodePaddingState(expectedPadding) {
      if (expectedPadding == null) dart.nullFailed(I[92], 590, 38, "expectedPadding");
      if (!(dart.notNull(expectedPadding) >= 0)) dart.assertFailed(null, I[92], 591, 12, "expectedPadding >= 0");
      if (!(dart.notNull(expectedPadding) <= 5)) dart.assertFailed(null, I[92], 592, 12, "expectedPadding <= 5");
      return -dart.notNull(expectedPadding) - 1;
    }
    static _statePadding(state) {
      if (state == null) dart.nullFailed(I[92], 597, 32, "state");
      if (!(dart.notNull(state) < 0)) dart.assertFailed(null, I[92], 598, 12, "state < 0");
      return -dart.notNull(state) - 1;
    }
    static _hasSeenPadding(state) {
      if (state == null) dart.nullFailed(I[92], 602, 35, "state");
      return dart.notNull(state) < 0;
    }
    decode(input, start, end) {
      if (input == null) dart.nullFailed(I[92], 609, 28, "input");
      if (start == null) dart.nullFailed(I[92], 609, 39, "start");
      if (end == null) dart.nullFailed(I[92], 609, 50, "end");
      if (!(0 <= dart.notNull(start))) dart.assertFailed(null, I[92], 610, 12, "0 <= start");
      if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, I[92], 611, 12, "start <= end");
      if (!(dart.notNull(end) <= input.length)) dart.assertFailed(null, I[92], 612, 12, "end <= input.length");
      if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state$0]))) {
        this[_state$0] = convert._Base64Decoder._checkPadding(input, start, end, this[_state$0]);
        return null;
      }
      if (start == end) return _native_typed_data.NativeUint8List.new(0);
      let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state$0]);
      this[_state$0] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state$0]);
      return buffer;
    }
    close(input, end) {
      if (dart.notNull(this[_state$0]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
        dart.throw(new core.FormatException.new("Missing padding character", input, end));
      }
      if (dart.notNull(this[_state$0]) > 0) {
        dart.throw(new core.FormatException.new("Invalid length, must be multiple of four", input, end));
      }
      this[_state$0] = convert._Base64Decoder._encodePaddingState(0);
    }
    static decodeChunk(input, start, end, output, outIndex, state) {
      let t172, t172$, t172$0, t172$1, t172$2, t172$3;
      if (input == null) dart.nullFailed(I[92], 640, 33, "input");
      if (start == null) dart.nullFailed(I[92], 640, 44, "start");
      if (end == null) dart.nullFailed(I[92], 640, 55, "end");
      if (output == null) dart.nullFailed(I[92], 640, 70, "output");
      if (outIndex == null) dart.nullFailed(I[92], 641, 11, "outIndex");
      if (state == null) dart.nullFailed(I[92], 641, 25, "state");
      if (!!dart.test(convert._Base64Decoder._hasSeenPadding(state))) dart.assertFailed(null, I[92], 642, 12, "!_hasSeenPadding(state)");
      let bits = convert._Base64Decoder._stateBits(state);
      let count = convert._Base64Decoder._stateCount(state);
      let charOr = 0;
      let inverseAlphabet = convert._Base64Decoder._inverseAlphabet;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = input[$codeUnitAt](i);
        charOr = (charOr | char) >>> 0;
        let code = inverseAlphabet[$_get]((char & 127) >>> 0);
        if (dart.notNull(code) >= 0) {
          bits = (bits[$leftShift](6) | dart.notNull(code)) & 16777215;
          count = dart.notNull(count) + 1 & 3;
          if (count === 0) {
            if (!(dart.notNull(outIndex) + 3 <= dart.notNull(output[$length]))) dart.assertFailed(null, I[92], 664, 18, "outIndex + 3 <= output.length");
            output[$_set]((t172 = outIndex, outIndex = dart.notNull(t172) + 1, t172), (bits[$rightShift](16) & 255) >>> 0);
            output[$_set]((t172$ = outIndex, outIndex = dart.notNull(t172$) + 1, t172$), (bits[$rightShift](8) & 255) >>> 0);
            output[$_set]((t172$0 = outIndex, outIndex = dart.notNull(t172$0) + 1, t172$0), (dart.notNull(bits) & 255) >>> 0);
            bits = 0;
          }
          continue;
        } else if (code === -1 && dart.notNull(count) > 1) {
          if (charOr < 0 || charOr > 127) break;
          if (count === 3) {
            if ((dart.notNull(bits) & 3) !== 0) {
              dart.throw(new core.FormatException.new("Invalid encoding before padding", input, i));
            }
            output[$_set]((t172$1 = outIndex, outIndex = dart.notNull(t172$1) + 1, t172$1), bits[$rightShift](10));
            output[$_set]((t172$2 = outIndex, outIndex = dart.notNull(t172$2) + 1, t172$2), bits[$rightShift](2));
          } else {
            if ((dart.notNull(bits) & 15) !== 0) {
              dart.throw(new core.FormatException.new("Invalid encoding before padding", input, i));
            }
            output[$_set]((t172$3 = outIndex, outIndex = dart.notNull(t172$3) + 1, t172$3), bits[$rightShift](4));
          }
          let expectedPadding = (3 - dart.notNull(count)) * 3;
          if (char === 37) expectedPadding = expectedPadding + 2;
          state = convert._Base64Decoder._encodePaddingState(expectedPadding);
          return convert._Base64Decoder._checkPadding(input, dart.notNull(i) + 1, end, state);
        }
        dart.throw(new core.FormatException.new("Invalid character", input, i));
      }
      if (charOr >= 0 && charOr <= 127) {
        return convert._Base64Decoder._encodeCharacterState(count, bits);
      }
      let i = null;
      for (let t172$4 = i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = input[$codeUnitAt](i);
        if (char < 0 || char > 127) break;
      }
      dart.throw(new core.FormatException.new("Invalid character", input, i));
    }
    static _allocateBuffer(input, start, end, state) {
      if (input == null) dart.nullFailed(I[92], 715, 14, "input");
      if (start == null) dart.nullFailed(I[92], 715, 25, "start");
      if (end == null) dart.nullFailed(I[92], 715, 36, "end");
      if (state == null) dart.nullFailed(I[92], 715, 45, "state");
      if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, I[92], 716, 12, "state >= 0");
      let paddingStart = convert._Base64Decoder._trimPaddingChars(input, start, end);
      let length = dart.notNull(convert._Base64Decoder._stateCount(state)) + (dart.notNull(paddingStart) - dart.notNull(start));
      let bufferLength = length[$rightShift](2) * 3;
      let remainderLength = length & 3;
      if (remainderLength !== 0 && dart.notNull(paddingStart) < dart.notNull(end)) {
        bufferLength = bufferLength + (remainderLength - 1);
      }
      if (bufferLength > 0) return _native_typed_data.NativeUint8List.new(bufferLength);
      return convert._Base64Decoder._emptyBuffer;
    }
    static _trimPaddingChars(input, start, end) {
      if (input == null) dart.nullFailed(I[92], 744, 39, "input");
      if (start == null) dart.nullFailed(I[92], 744, 50, "start");
      if (end == null) dart.nullFailed(I[92], 744, 61, "end");
      let padding = 0;
      let index = end;
      let newEnd = end;
      while (dart.notNull(index) > dart.notNull(start) && padding < 2) {
        index = dart.notNull(index) - 1;
        let char = input[$codeUnitAt](index);
        if (char === 61) {
          padding = padding + 1;
          newEnd = index;
          continue;
        }
        if ((char | 32) >>> 0 === 100) {
          if (index == start) break;
          index = dart.notNull(index) - 1;
          char = input[$codeUnitAt](index);
        }
        if (char === 51) {
          if (index == start) break;
          index = dart.notNull(index) - 1;
          char = input[$codeUnitAt](index);
        }
        if (char === 37) {
          padding = padding + 1;
          newEnd = index;
          continue;
        }
        break;
      }
      return newEnd;
    }
    static _checkPadding(input, start, end, state) {
      if (input == null) dart.nullFailed(I[92], 796, 35, "input");
      if (start == null) dart.nullFailed(I[92], 796, 46, "start");
      if (end == null) dart.nullFailed(I[92], 796, 57, "end");
      if (state == null) dart.nullFailed(I[92], 796, 66, "state");
      if (!dart.test(convert._Base64Decoder._hasSeenPadding(state))) dart.assertFailed(null, I[92], 797, 12, "_hasSeenPadding(state)");
      if (start == end) return state;
      let expectedPadding = convert._Base64Decoder._statePadding(state);
      if (!(dart.notNull(expectedPadding) >= 0)) dart.assertFailed(null, I[92], 800, 12, "expectedPadding >= 0");
      if (!(dart.notNull(expectedPadding) < 6)) dart.assertFailed(null, I[92], 801, 12, "expectedPadding < 6");
      while (dart.notNull(expectedPadding) > 0) {
        let char = input[$codeUnitAt](start);
        if (expectedPadding === 3) {
          if (char === 61) {
            expectedPadding = dart.notNull(expectedPadding) - 3;
            start = dart.notNull(start) + 1;
            break;
          }
          if (char === 37) {
            expectedPadding = dart.notNull(expectedPadding) - 1;
            start = dart.notNull(start) + 1;
            if (start == end) break;
            char = input[$codeUnitAt](start);
          } else {
            break;
          }
        }
        let expectedPartialPadding = expectedPadding;
        if (dart.notNull(expectedPartialPadding) > 3) expectedPartialPadding = dart.notNull(expectedPartialPadding) - 3;
        if (expectedPartialPadding === 2) {
          if (char !== 51) break;
          start = dart.notNull(start) + 1;
          expectedPadding = dart.notNull(expectedPadding) - 1;
          if (start == end) break;
          char = input[$codeUnitAt](start);
        }
        if ((char | 32) >>> 0 !== 100) break;
        start = dart.notNull(start) + 1;
        expectedPadding = dart.notNull(expectedPadding) - 1;
        if (start == end) break;
      }
      if (start != end) {
        dart.throw(new core.FormatException.new("Invalid padding character", input, start));
      }
      return convert._Base64Decoder._encodePaddingState(expectedPadding);
    }
  };
  (convert._Base64Decoder.new = function() {
    this[_state$0] = 0;
    ;
  }).prototype = convert._Base64Decoder.prototype;
  dart.addTypeTests(convert._Base64Decoder);
  dart.addTypeCaches(convert._Base64Decoder);
  dart.setMethodSignature(convert._Base64Decoder, () => ({
    __proto__: dart.getMethods(convert._Base64Decoder.__proto__),
    decode: dart.fnType(dart.nullable(typed_data.Uint8List), [core.String, core.int, core.int]),
    close: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.int)])
  }));
  dart.setLibraryUri(convert._Base64Decoder, I[31]);
  dart.setFieldSignature(convert._Base64Decoder, () => ({
    __proto__: dart.getFields(convert._Base64Decoder.__proto__),
    [_state$0]: dart.fieldType(core.int)
  }));
  dart.defineLazy(convert._Base64Decoder, {
    /*convert._Base64Decoder._valueShift*/get _valueShift() {
      return 2;
    },
    /*convert._Base64Decoder._countMask*/get _countMask() {
      return 3;
    },
    /*convert._Base64Decoder._invalid*/get _invalid() {
      return -2;
    },
    /*convert._Base64Decoder._padding*/get _padding() {
      return -1;
    },
    /*convert._Base64Decoder.___*/get ___() {
      return -2;
    },
    /*convert._Base64Decoder._p*/get _p() {
      return -1;
    },
    /*convert._Base64Decoder._inverseAlphabet*/get _inverseAlphabet() {
      return _native_typed_data.NativeInt8List.fromList(T$.JSArrayOfint().of([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -1, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2]));
    },
    /*convert._Base64Decoder._char_percent*/get _char_percent() {
      return 37;
    },
    /*convert._Base64Decoder._char_3*/get _char_3() {
      return 51;
    },
    /*convert._Base64Decoder._char_d*/get _char_d() {
      return 100;
    },
    /*convert._Base64Decoder._emptyBuffer*/get _emptyBuffer() {
      return _native_typed_data.NativeUint8List.new(0);
    },
    set _emptyBuffer(_) {}
  }, false);
  var _decoder = dart.privateName(convert, "_decoder");
  convert._Base64DecoderSink = class _Base64DecoderSink extends convert.StringConversionSinkBase {
    add(string) {
      core.String.as(string);
      if (string == null) dart.nullFailed(I[92], 850, 19, "string");
      if (string[$isEmpty]) return;
      let buffer = this[_decoder].decode(string, 0, string.length);
      if (buffer != null) this[_sink$0].add(buffer);
    }
    close() {
      this[_decoder].close(null, null);
      this[_sink$0].close();
    }
    addSlice(string, start, end, isLast) {
      if (string == null) dart.nullFailed(I[92], 861, 24, "string");
      if (start == null) dart.nullFailed(I[92], 861, 36, "start");
      if (end == null) dart.nullFailed(I[92], 861, 47, "end");
      if (isLast == null) dart.nullFailed(I[92], 861, 57, "isLast");
      core.RangeError.checkValidRange(start, end, string.length);
      if (start == end) return;
      let buffer = this[_decoder].decode(string, start, end);
      if (buffer != null) this[_sink$0].add(buffer);
      if (dart.test(isLast)) {
        this[_decoder].close(string, end);
        this[_sink$0].close();
      }
    }
  };
  (convert._Base64DecoderSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[92], 848, 27, "_sink");
    this[_decoder] = new convert._Base64Decoder.new();
    this[_sink$0] = _sink;
    ;
  }).prototype = convert._Base64DecoderSink.prototype;
  dart.addTypeTests(convert._Base64DecoderSink);
  dart.addTypeCaches(convert._Base64DecoderSink);
  dart.setMethodSignature(convert._Base64DecoderSink, () => ({
    __proto__: dart.getMethods(convert._Base64DecoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Base64DecoderSink, I[31]);
  dart.setFieldSignature(convert._Base64DecoderSink, () => ({
    __proto__: dart.getFields(convert._Base64DecoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(core.Sink$(core.List$(core.int))),
    [_decoder]: dart.finalFieldType(convert._Base64Decoder)
  }));
  convert._ByteAdapterSink = class _ByteAdapterSink extends convert.ByteConversionSinkBase {
    add(chunk) {
      T$0.ListOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[91], 57, 22, "chunk");
      this[_sink$0].add(chunk);
    }
    close() {
      this[_sink$0].close();
    }
  };
  (convert._ByteAdapterSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[91], 55, 25, "_sink");
    this[_sink$0] = _sink;
    convert._ByteAdapterSink.__proto__.new.call(this);
    ;
  }).prototype = convert._ByteAdapterSink.prototype;
  dart.addTypeTests(convert._ByteAdapterSink);
  dart.addTypeCaches(convert._ByteAdapterSink);
  dart.setMethodSignature(convert._ByteAdapterSink, () => ({
    __proto__: dart.getMethods(convert._ByteAdapterSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._ByteAdapterSink, I[31]);
  dart.setFieldSignature(convert._ByteAdapterSink, () => ({
    __proto__: dart.getFields(convert._ByteAdapterSink.__proto__),
    [_sink$0]: dart.finalFieldType(core.Sink$(core.List$(core.int)))
  }));
  var _buffer$ = dart.privateName(convert, "_buffer");
  var _bufferIndex = dart.privateName(convert, "_bufferIndex");
  var _callback$ = dart.privateName(convert, "_callback");
  convert._ByteCallbackSink = class _ByteCallbackSink extends convert.ByteConversionSinkBase {
    add(chunk) {
      T$.IterableOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[91], 80, 26, "chunk");
      let freeCount = dart.notNull(this[_buffer$][$length]) - dart.notNull(this[_bufferIndex]);
      if (dart.notNull(chunk[$length]) > freeCount) {
        let oldLength = this[_buffer$][$length];
        let newLength = dart.notNull(convert._ByteCallbackSink._roundToPowerOf2(dart.notNull(chunk[$length]) + dart.notNull(oldLength))) * 2;
        let grown = _native_typed_data.NativeUint8List.new(newLength);
        grown[$setRange](0, this[_buffer$][$length], this[_buffer$]);
        this[_buffer$] = grown;
      }
      this[_buffer$][$setRange](this[_bufferIndex], dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[$length]), chunk);
      this[_bufferIndex] = dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[$length]);
    }
    static _roundToPowerOf2(v) {
      if (v == null) dart.nullFailed(I[91], 94, 35, "v");
      if (!(dart.notNull(v) > 0)) dart.assertFailed(null, I[91], 95, 12, "v > 0");
      v = dart.notNull(v) - 1;
      v = (dart.notNull(v) | v[$rightShift](1)) >>> 0;
      v = (dart.notNull(v) | v[$rightShift](2)) >>> 0;
      v = (dart.notNull(v) | v[$rightShift](4)) >>> 0;
      v = (dart.notNull(v) | v[$rightShift](8)) >>> 0;
      v = (dart.notNull(v) | v[$rightShift](16)) >>> 0;
      v = dart.notNull(v) + 1;
      return v;
    }
    close() {
      let t173;
      t173 = this[_buffer$][$sublist](0, this[_bufferIndex]);
      this[_callback$](t173);
    }
  };
  (convert._ByteCallbackSink.new = function(callback) {
    if (callback == null) dart.nullFailed(I[91], 77, 26, "callback");
    this[_buffer$] = _native_typed_data.NativeUint8List.new(1024);
    this[_bufferIndex] = 0;
    this[_callback$] = callback;
    convert._ByteCallbackSink.__proto__.new.call(this);
    ;
  }).prototype = convert._ByteCallbackSink.prototype;
  dart.addTypeTests(convert._ByteCallbackSink);
  dart.addTypeCaches(convert._ByteCallbackSink);
  dart.setMethodSignature(convert._ByteCallbackSink, () => ({
    __proto__: dart.getMethods(convert._ByteCallbackSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._ByteCallbackSink, I[31]);
  dart.setFieldSignature(convert._ByteCallbackSink, () => ({
    __proto__: dart.getFields(convert._ByteCallbackSink.__proto__),
    [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(core.int)])),
    [_buffer$]: dart.fieldType(core.List$(core.int)),
    [_bufferIndex]: dart.fieldType(core.int)
  }));
  dart.defineLazy(convert._ByteCallbackSink, {
    /*convert._ByteCallbackSink._INITIAL_BUFFER_SIZE*/get _INITIAL_BUFFER_SIZE() {
      return 1024;
    }
  }, false);
  var _accumulated = dart.privateName(convert, "_accumulated");
  const _is__SimpleCallbackSink_default = Symbol('_is__SimpleCallbackSink_default');
  convert._SimpleCallbackSink$ = dart.generic(T => {
    var JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
    class _SimpleCallbackSink extends convert.ChunkedConversionSink$(T) {
      add(chunk) {
        T.as(chunk);
        this[_accumulated][$add](chunk);
      }
      close() {
        let t173;
        t173 = this[_accumulated];
        this[_callback$](t173);
      }
    }
    (_SimpleCallbackSink.new = function(_callback) {
      if (_callback == null) dart.nullFailed(I[93], 41, 28, "_callback");
      this[_accumulated] = JSArrayOfT().of([]);
      this[_callback$] = _callback;
      _SimpleCallbackSink.__proto__.new.call(this);
      ;
    }).prototype = _SimpleCallbackSink.prototype;
    dart.addTypeTests(_SimpleCallbackSink);
    _SimpleCallbackSink.prototype[_is__SimpleCallbackSink_default] = true;
    dart.addTypeCaches(_SimpleCallbackSink);
    dart.setMethodSignature(_SimpleCallbackSink, () => ({
      __proto__: dart.getMethods(_SimpleCallbackSink.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_SimpleCallbackSink, I[31]);
    dart.setFieldSignature(_SimpleCallbackSink, () => ({
      __proto__: dart.getFields(_SimpleCallbackSink.__proto__),
      [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(T)])),
      [_accumulated]: dart.finalFieldType(core.List$(T))
    }));
    return _SimpleCallbackSink;
  });
  convert._SimpleCallbackSink = convert._SimpleCallbackSink$();
  dart.addTypeTests(convert._SimpleCallbackSink, _is__SimpleCallbackSink_default);
  var _eventSink = dart.privateName(convert, "_eventSink");
  var _chunkedSink$ = dart.privateName(convert, "_chunkedSink");
  const _is__ConverterStreamEventSink_default = Symbol('_is__ConverterStreamEventSink_default');
  convert._ConverterStreamEventSink$ = dart.generic((S, T) => {
    class _ConverterStreamEventSink extends core.Object {
      add(o) {
        S.as(o);
        this[_chunkedSink$].add(o);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[93], 75, 24, "error");
        _internal.checkNotNullable(core.Object, error, "error");
        this[_eventSink].addError(error, stackTrace);
      }
      close() {
        this[_chunkedSink$].close();
      }
    }
    (_ConverterStreamEventSink.new = function(converter, sink) {
      if (converter == null) dart.nullFailed(I[93], 67, 45, "converter");
      if (sink == null) dart.nullFailed(I[93], 67, 69, "sink");
      this[_eventSink] = sink;
      this[_chunkedSink$] = converter.startChunkedConversion(sink);
      ;
    }).prototype = _ConverterStreamEventSink.prototype;
    dart.addTypeTests(_ConverterStreamEventSink);
    _ConverterStreamEventSink.prototype[_is__ConverterStreamEventSink_default] = true;
    dart.addTypeCaches(_ConverterStreamEventSink);
    _ConverterStreamEventSink[dart.implements] = () => [async.EventSink$(S)];
    dart.setMethodSignature(_ConverterStreamEventSink, () => ({
      __proto__: dart.getMethods(_ConverterStreamEventSink.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(_ConverterStreamEventSink, I[31]);
    dart.setFieldSignature(_ConverterStreamEventSink, () => ({
      __proto__: dart.getFields(_ConverterStreamEventSink.__proto__),
      [_eventSink]: dart.finalFieldType(async.EventSink$(T)),
      [_chunkedSink$]: dart.finalFieldType(core.Sink$(S))
    }));
    return _ConverterStreamEventSink;
  });
  convert._ConverterStreamEventSink = convert._ConverterStreamEventSink$();
  dart.addTypeTests(convert._ConverterStreamEventSink, _is__ConverterStreamEventSink_default);
  var _first$0 = dart.privateName(convert, "_first");
  var _second$0 = dart.privateName(convert, "_second");
  const _is__FusedCodec_default = Symbol('_is__FusedCodec_default');
  convert._FusedCodec$ = dart.generic((S, M, T) => {
    class _FusedCodec extends convert.Codec$(S, T) {
      get encoder() {
        return this[_first$0].encoder.fuse(T, this[_second$0].encoder);
      }
      get decoder() {
        return this[_second$0].decoder.fuse(S, this[_first$0].decoder);
      }
    }
    (_FusedCodec.new = function(_first, _second) {
      if (_first == null) dart.nullFailed(I[89], 85, 20, "_first");
      if (_second == null) dart.nullFailed(I[89], 85, 33, "_second");
      this[_first$0] = _first;
      this[_second$0] = _second;
      _FusedCodec.__proto__.new.call(this);
      ;
    }).prototype = _FusedCodec.prototype;
    dart.addTypeTests(_FusedCodec);
    _FusedCodec.prototype[_is__FusedCodec_default] = true;
    dart.addTypeCaches(_FusedCodec);
    dart.setGetterSignature(_FusedCodec, () => ({
      __proto__: dart.getGetters(_FusedCodec.__proto__),
      encoder: convert.Converter$(S, T),
      decoder: convert.Converter$(T, S)
    }));
    dart.setLibraryUri(_FusedCodec, I[31]);
    dart.setFieldSignature(_FusedCodec, () => ({
      __proto__: dart.getFields(_FusedCodec.__proto__),
      [_first$0]: dart.finalFieldType(convert.Codec$(S, M)),
      [_second$0]: dart.finalFieldType(convert.Codec$(M, T))
    }));
    return _FusedCodec;
  });
  convert._FusedCodec = convert._FusedCodec$();
  dart.addTypeTests(convert._FusedCodec, _is__FusedCodec_default);
  var _codec = dart.privateName(convert, "_codec");
  const _is__InvertedCodec_default = Symbol('_is__InvertedCodec_default');
  convert._InvertedCodec$ = dart.generic((T, S) => {
    class _InvertedCodec extends convert.Codec$(T, S) {
      get encoder() {
        return this[_codec].decoder;
      }
      get decoder() {
        return this[_codec].encoder;
      }
      get inverted() {
        return this[_codec];
      }
    }
    (_InvertedCodec.new = function(codec) {
      if (codec == null) dart.nullFailed(I[89], 91, 30, "codec");
      this[_codec] = codec;
      _InvertedCodec.__proto__.new.call(this);
      ;
    }).prototype = _InvertedCodec.prototype;
    dart.addTypeTests(_InvertedCodec);
    _InvertedCodec.prototype[_is__InvertedCodec_default] = true;
    dart.addTypeCaches(_InvertedCodec);
    dart.setGetterSignature(_InvertedCodec, () => ({
      __proto__: dart.getGetters(_InvertedCodec.__proto__),
      encoder: convert.Converter$(T, S),
      decoder: convert.Converter$(S, T)
    }));
    dart.setLibraryUri(_InvertedCodec, I[31]);
    dart.setFieldSignature(_InvertedCodec, () => ({
      __proto__: dart.getFields(_InvertedCodec.__proto__),
      [_codec]: dart.finalFieldType(convert.Codec$(S, T))
    }));
    return _InvertedCodec;
  });
  convert._InvertedCodec = convert._InvertedCodec$();
  dart.addTypeTests(convert._InvertedCodec, _is__InvertedCodec_default);
  const _is__FusedConverter_default = Symbol('_is__FusedConverter_default');
  convert._FusedConverter$ = dart.generic((S, M, T) => {
    var SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
    class _FusedConverter extends convert.Converter$(S, T) {
      convert(input) {
        S.as(input);
        return this[_second$0].convert(this[_first$0].convert(input));
      }
      startChunkedConversion(sink) {
        SinkOfT().as(sink);
        if (sink == null) dart.nullFailed(I[30], 69, 42, "sink");
        return this[_first$0].startChunkedConversion(this[_second$0].startChunkedConversion(sink));
      }
    }
    (_FusedConverter.new = function(_first, _second) {
      if (_first == null) dart.nullFailed(I[30], 65, 24, "_first");
      if (_second == null) dart.nullFailed(I[30], 65, 37, "_second");
      this[_first$0] = _first;
      this[_second$0] = _second;
      _FusedConverter.__proto__.new.call(this);
      ;
    }).prototype = _FusedConverter.prototype;
    dart.addTypeTests(_FusedConverter);
    _FusedConverter.prototype[_is__FusedConverter_default] = true;
    dart.addTypeCaches(_FusedConverter);
    dart.setMethodSignature(_FusedConverter, () => ({
      __proto__: dart.getMethods(_FusedConverter.__proto__),
      convert: dart.fnType(T, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_FusedConverter, I[31]);
    dart.setFieldSignature(_FusedConverter, () => ({
      __proto__: dart.getFields(_FusedConverter.__proto__),
      [_first$0]: dart.finalFieldType(convert.Converter$(S, M)),
      [_second$0]: dart.finalFieldType(convert.Converter$(M, T))
    }));
    return _FusedConverter;
  });
  convert._FusedConverter = convert._FusedConverter$();
  dart.addTypeTests(convert._FusedConverter, _is__FusedConverter_default);
  var _name$2 = dart.privateName(convert, "HtmlEscapeMode._name");
  var escapeLtGt$ = dart.privateName(convert, "HtmlEscapeMode.escapeLtGt");
  var escapeQuot$ = dart.privateName(convert, "HtmlEscapeMode.escapeQuot");
  var escapeApos$ = dart.privateName(convert, "HtmlEscapeMode.escapeApos");
  var escapeSlash$ = dart.privateName(convert, "HtmlEscapeMode.escapeSlash");
  var _name$3 = dart.privateName(convert, "_name");
  convert.HtmlEscapeMode = class HtmlEscapeMode extends core.Object {
    get [_name$3]() {
      return this[_name$2];
    }
    set [_name$3](value) {
      super[_name$3] = value;
    }
    get escapeLtGt() {
      return this[escapeLtGt$];
    }
    set escapeLtGt(value) {
      super.escapeLtGt = value;
    }
    get escapeQuot() {
      return this[escapeQuot$];
    }
    set escapeQuot(value) {
      super.escapeQuot = value;
    }
    get escapeApos() {
      return this[escapeApos$];
    }
    set escapeApos(value) {
      super.escapeApos = value;
    }
    get escapeSlash() {
      return this[escapeSlash$];
    }
    set escapeSlash(value) {
      super.escapeSlash = value;
    }
    toString() {
      return this[_name$3];
    }
  };
  (convert.HtmlEscapeMode.__ = function(_name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
    if (_name == null) dart.nullFailed(I[94], 102, 31, "_name");
    if (escapeLtGt == null) dart.nullFailed(I[94], 102, 43, "escapeLtGt");
    if (escapeQuot == null) dart.nullFailed(I[94], 102, 60, "escapeQuot");
    if (escapeApos == null) dart.nullFailed(I[94], 103, 12, "escapeApos");
    if (escapeSlash == null) dart.nullFailed(I[94], 103, 29, "escapeSlash");
    this[_name$2] = _name;
    this[escapeLtGt$] = escapeLtGt;
    this[escapeQuot$] = escapeQuot;
    this[escapeApos$] = escapeApos;
    this[escapeSlash$] = escapeSlash;
    ;
  }).prototype = convert.HtmlEscapeMode.prototype;
  (convert.HtmlEscapeMode.new = function(opts) {
    let name = opts && 'name' in opts ? opts.name : "custom";
    if (name == null) dart.nullFailed(I[94], 111, 15, "name");
    let escapeLtGt = opts && 'escapeLtGt' in opts ? opts.escapeLtGt : false;
    if (escapeLtGt == null) dart.nullFailed(I[94], 112, 12, "escapeLtGt");
    let escapeQuot = opts && 'escapeQuot' in opts ? opts.escapeQuot : false;
    if (escapeQuot == null) dart.nullFailed(I[94], 113, 12, "escapeQuot");
    let escapeApos = opts && 'escapeApos' in opts ? opts.escapeApos : false;
    if (escapeApos == null) dart.nullFailed(I[94], 114, 12, "escapeApos");
    let escapeSlash = opts && 'escapeSlash' in opts ? opts.escapeSlash : false;
    if (escapeSlash == null) dart.nullFailed(I[94], 115, 12, "escapeSlash");
    this[escapeLtGt$] = escapeLtGt;
    this[escapeQuot$] = escapeQuot;
    this[escapeApos$] = escapeApos;
    this[escapeSlash$] = escapeSlash;
    this[_name$2] = name;
    ;
  }).prototype = convert.HtmlEscapeMode.prototype;
  dart.addTypeTests(convert.HtmlEscapeMode);
  dart.addTypeCaches(convert.HtmlEscapeMode);
  dart.setLibraryUri(convert.HtmlEscapeMode, I[31]);
  dart.setFieldSignature(convert.HtmlEscapeMode, () => ({
    __proto__: dart.getFields(convert.HtmlEscapeMode.__proto__),
    [_name$3]: dart.finalFieldType(core.String),
    escapeLtGt: dart.finalFieldType(core.bool),
    escapeQuot: dart.finalFieldType(core.bool),
    escapeApos: dart.finalFieldType(core.bool),
    escapeSlash: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(convert.HtmlEscapeMode, ['toString']);
  dart.defineLazy(convert.HtmlEscapeMode, {
    /*convert.HtmlEscapeMode.unknown*/get unknown() {
      return C[88] || CT.C88;
    },
    /*convert.HtmlEscapeMode.attribute*/get attribute() {
      return C[89] || CT.C89;
    },
    /*convert.HtmlEscapeMode.sqAttribute*/get sqAttribute() {
      return C[90] || CT.C90;
    },
    /*convert.HtmlEscapeMode.element*/get element() {
      return C[91] || CT.C91;
    }
  }, false);
  var mode$ = dart.privateName(convert, "HtmlEscape.mode");
  var _convert = dart.privateName(convert, "_convert");
  convert.HtmlEscape = class HtmlEscape extends convert.Converter$(core.String, core.String) {
    get mode() {
      return this[mode$];
    }
    set mode(value) {
      super.mode = value;
    }
    convert(text) {
      core.String.as(text);
      if (text == null) dart.nullFailed(I[94], 152, 25, "text");
      let val = this[_convert](text, 0, text.length);
      return val == null ? text : val;
    }
    [_convert](text, start, end) {
      if (text == null) dart.nullFailed(I[94], 161, 27, "text");
      if (start == null) dart.nullFailed(I[94], 161, 37, "start");
      if (end == null) dart.nullFailed(I[94], 161, 48, "end");
      let result = null;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let ch = text[$_get](i);
        let replacement = null;
        switch (ch) {
          case "&":
          {
            replacement = "&amp;";
            break;
          }
          case "\"":
          {
            if (dart.test(this.mode.escapeQuot)) replacement = "&quot;";
            break;
          }
          case "'":
          {
            if (dart.test(this.mode.escapeApos)) replacement = "&#39;";
            break;
          }
          case "<":
          {
            if (dart.test(this.mode.escapeLtGt)) replacement = "&lt;";
            break;
          }
          case ">":
          {
            if (dart.test(this.mode.escapeLtGt)) replacement = "&gt;";
            break;
          }
          case "/":
          {
            if (dart.test(this.mode.escapeSlash)) replacement = "&#47;";
            break;
          }
        }
        if (replacement != null) {
          result == null ? result = new core.StringBuffer.new() : null;
          if (result == null) {
            dart.throw("unreachable");
          }
          if (dart.notNull(i) > dart.notNull(start)) result.write(text[$substring](start, i));
          result.write(replacement);
          start = dart.notNull(i) + 1;
        }
      }
      if (result == null) return null;
      if (dart.notNull(end) > dart.notNull(start)) result.write(text[$substring](start, end));
      return dart.toString(result);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[94], 203, 60, "sink");
      return new convert._HtmlEscapeSink.new(this, convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink));
    }
  };
  (convert.HtmlEscape.new = function(mode = C[88] || CT.C88) {
    if (mode == null) dart.nullFailed(I[94], 150, 26, "mode");
    this[mode$] = mode;
    convert.HtmlEscape.__proto__.new.call(this);
    ;
  }).prototype = convert.HtmlEscape.prototype;
  dart.addTypeTests(convert.HtmlEscape);
  dart.addTypeCaches(convert.HtmlEscape);
  dart.setMethodSignature(convert.HtmlEscape, () => ({
    __proto__: dart.getMethods(convert.HtmlEscape.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)]),
    [_convert]: dart.fnType(dart.nullable(core.String), [core.String, core.int, core.int]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.HtmlEscape, I[31]);
  dart.setFieldSignature(convert.HtmlEscape, () => ({
    __proto__: dart.getFields(convert.HtmlEscape.__proto__),
    mode: dart.finalFieldType(convert.HtmlEscapeMode)
  }));
  var _escape$ = dart.privateName(convert, "_escape");
  convert._HtmlEscapeSink = class _HtmlEscapeSink extends convert.StringConversionSinkBase {
    addSlice(chunk, start, end, isLast) {
      if (chunk == null) dart.nullFailed(I[94], 215, 24, "chunk");
      if (start == null) dart.nullFailed(I[94], 215, 35, "start");
      if (end == null) dart.nullFailed(I[94], 215, 46, "end");
      if (isLast == null) dart.nullFailed(I[94], 215, 56, "isLast");
      let val = this[_escape$][_convert](chunk, start, end);
      if (val == null) {
        this[_sink$0].addSlice(chunk, start, end, isLast);
      } else {
        this[_sink$0].add(val);
        if (dart.test(isLast)) this[_sink$0].close();
      }
    }
    close() {
      this[_sink$0].close();
    }
  };
  (convert._HtmlEscapeSink.new = function(_escape, _sink) {
    if (_escape == null) dart.nullFailed(I[94], 213, 24, "_escape");
    if (_sink == null) dart.nullFailed(I[94], 213, 38, "_sink");
    this[_escape$] = _escape;
    this[_sink$0] = _sink;
    ;
  }).prototype = convert._HtmlEscapeSink.prototype;
  dart.addTypeTests(convert._HtmlEscapeSink);
  dart.addTypeCaches(convert._HtmlEscapeSink);
  dart.setMethodSignature(convert._HtmlEscapeSink, () => ({
    __proto__: dart.getMethods(convert._HtmlEscapeSink.__proto__),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._HtmlEscapeSink, I[31]);
  dart.setFieldSignature(convert._HtmlEscapeSink, () => ({
    __proto__: dart.getFields(convert._HtmlEscapeSink.__proto__),
    [_escape$]: dart.finalFieldType(convert.HtmlEscape),
    [_sink$0]: dart.finalFieldType(convert.StringConversionSink)
  }));
  var unsupportedObject$ = dart.privateName(convert, "JsonUnsupportedObjectError.unsupportedObject");
  var cause$ = dart.privateName(convert, "JsonUnsupportedObjectError.cause");
  var partialResult$ = dart.privateName(convert, "JsonUnsupportedObjectError.partialResult");
  convert.JsonUnsupportedObjectError = class JsonUnsupportedObjectError extends core.Error {
    get unsupportedObject() {
      return this[unsupportedObject$];
    }
    set unsupportedObject(value) {
      super.unsupportedObject = value;
    }
    get cause() {
      return this[cause$];
    }
    set cause(value) {
      super.cause = value;
    }
    get partialResult() {
      return this[partialResult$];
    }
    set partialResult(value) {
      super.partialResult = value;
    }
    toString() {
      let safeString = core.Error.safeToString(this.unsupportedObject);
      let prefix = null;
      if (this.cause != null) {
        prefix = "Converting object to an encodable object failed:";
      } else {
        prefix = "Converting object did not return an encodable object:";
      }
      return dart.str(prefix) + " " + dart.str(safeString);
    }
  };
  (convert.JsonUnsupportedObjectError.new = function(unsupportedObject, opts) {
    let cause = opts && 'cause' in opts ? opts.cause : null;
    let partialResult = opts && 'partialResult' in opts ? opts.partialResult : null;
    this[unsupportedObject$] = unsupportedObject;
    this[cause$] = cause;
    this[partialResult$] = partialResult;
    convert.JsonUnsupportedObjectError.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonUnsupportedObjectError.prototype;
  dart.addTypeTests(convert.JsonUnsupportedObjectError);
  dart.addTypeCaches(convert.JsonUnsupportedObjectError);
  dart.setLibraryUri(convert.JsonUnsupportedObjectError, I[31]);
  dart.setFieldSignature(convert.JsonUnsupportedObjectError, () => ({
    __proto__: dart.getFields(convert.JsonUnsupportedObjectError.__proto__),
    unsupportedObject: dart.finalFieldType(dart.nullable(core.Object)),
    cause: dart.finalFieldType(dart.nullable(core.Object)),
    partialResult: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(convert.JsonUnsupportedObjectError, ['toString']);
  convert.JsonCyclicError = class JsonCyclicError extends convert.JsonUnsupportedObjectError {
    toString() {
      return "Cyclic error in JSON stringify";
    }
  };
  (convert.JsonCyclicError.new = function(object) {
    convert.JsonCyclicError.__proto__.new.call(this, object);
    ;
  }).prototype = convert.JsonCyclicError.prototype;
  dart.addTypeTests(convert.JsonCyclicError);
  dart.addTypeCaches(convert.JsonCyclicError);
  dart.setLibraryUri(convert.JsonCyclicError, I[31]);
  dart.defineExtensionMethods(convert.JsonCyclicError, ['toString']);
  var _reviver = dart.privateName(convert, "JsonCodec._reviver");
  var _toEncodable = dart.privateName(convert, "JsonCodec._toEncodable");
  var _toEncodable$ = dart.privateName(convert, "_toEncodable");
  var JsonEncoder__toEncodable = dart.privateName(convert, "JsonEncoder._toEncodable");
  var JsonEncoder_indent = dart.privateName(convert, "JsonEncoder.indent");
  var JsonDecoder__reviver = dart.privateName(convert, "JsonDecoder._reviver");
  convert.JsonCodec = class JsonCodec extends convert.Codec$(dart.nullable(core.Object), core.String) {
    get [_reviver$]() {
      return this[_reviver];
    }
    set [_reviver$](value) {
      super[_reviver$] = value;
    }
    get [_toEncodable$]() {
      return this[_toEncodable];
    }
    set [_toEncodable$](value) {
      super[_toEncodable$] = value;
    }
    decode(source, opts) {
      core.String.as(source);
      if (source == null) dart.nullFailed(I[95], 154, 25, "source");
      let reviver = opts && 'reviver' in opts ? opts.reviver : null;
      reviver == null ? reviver = this[_reviver$] : null;
      if (reviver == null) return this.decoder.convert(source);
      return new convert.JsonDecoder.new(reviver).convert(source);
    }
    encode(value, opts) {
      let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
      toEncodable == null ? toEncodable = this[_toEncodable$] : null;
      if (toEncodable == null) return this.encoder.convert(value);
      return new convert.JsonEncoder.new(toEncodable).convert(value);
    }
    get encoder() {
      if (this[_toEncodable$] == null) return C[92] || CT.C92;
      return new convert.JsonEncoder.new(this[_toEncodable$]);
    }
    get decoder() {
      if (this[_reviver$] == null) return C[93] || CT.C93;
      return new convert.JsonDecoder.new(this[_reviver$]);
    }
  };
  (convert.JsonCodec.new = function(opts) {
    let reviver = opts && 'reviver' in opts ? opts.reviver : null;
    let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
    this[_reviver] = reviver;
    this[_toEncodable] = toEncodable;
    convert.JsonCodec.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonCodec.prototype;
  (convert.JsonCodec.withReviver = function(reviver) {
    if (reviver == null) dart.nullFailed(I[95], 143, 33, "reviver");
    convert.JsonCodec.new.call(this, {reviver: reviver});
  }).prototype = convert.JsonCodec.prototype;
  dart.addTypeTests(convert.JsonCodec);
  dart.addTypeCaches(convert.JsonCodec);
  dart.setMethodSignature(convert.JsonCodec, () => ({
    __proto__: dart.getMethods(convert.JsonCodec.__proto__),
    decode: dart.fnType(dart.dynamic, [dart.nullable(core.Object)], {reviver: dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object), dart.nullable(core.Object)]))}, {}),
    encode: dart.fnType(core.String, [dart.nullable(core.Object)], {toEncodable: dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic]))}, {})
  }));
  dart.setGetterSignature(convert.JsonCodec, () => ({
    __proto__: dart.getGetters(convert.JsonCodec.__proto__),
    encoder: convert.JsonEncoder,
    decoder: convert.JsonDecoder
  }));
  dart.setLibraryUri(convert.JsonCodec, I[31]);
  dart.setFieldSignature(convert.JsonCodec, () => ({
    __proto__: dart.getFields(convert.JsonCodec.__proto__),
    [_reviver$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object), dart.nullable(core.Object)]))),
    [_toEncodable$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic])))
  }));
  const indent$ = JsonEncoder_indent;
  const _toEncodable$0 = JsonEncoder__toEncodable;
  convert.JsonEncoder = class JsonEncoder extends convert.Converter$(dart.nullable(core.Object), core.String) {
    get indent() {
      return this[indent$];
    }
    set indent(value) {
      super.indent = value;
    }
    get [_toEncodable$]() {
      return this[_toEncodable$0];
    }
    set [_toEncodable$](value) {
      super[_toEncodable$] = value;
    }
    convert(object) {
      return convert._JsonStringStringifier.stringify(object, this[_toEncodable$], this.indent);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[95], 271, 70, "sink");
      if (convert._Utf8EncoderSink.is(sink)) {
        return new convert._JsonUtf8EncoderSink.new(sink[_sink$0], this[_toEncodable$], convert.JsonUtf8Encoder._utf8Encode(this.indent), 256);
      }
      return new convert._JsonEncoderSink.new(convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink), this[_toEncodable$], this.indent);
    }
    bind(stream) {
      T$0.StreamOfObjectN().as(stream);
      if (stream == null) dart.nullFailed(I[95], 286, 39, "stream");
      return super.bind(stream);
    }
    fuse(T, other) {
      convert.Converter$(core.String, T).as(other);
      if (other == null) dart.nullFailed(I[95], 288, 54, "other");
      if (convert.Utf8Encoder.is(other)) {
        return convert.Converter$(T$.ObjectN(), T).as(new convert.JsonUtf8Encoder.new(this.indent, this[_toEncodable$]));
      }
      return super.fuse(T, other);
    }
  };
  (convert.JsonEncoder.new = function(toEncodable = null) {
    this[indent$] = null;
    this[_toEncodable$0] = toEncodable;
    convert.JsonEncoder.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonEncoder.prototype;
  (convert.JsonEncoder.withIndent = function(indent, toEncodable = null) {
    this[indent$] = indent;
    this[_toEncodable$0] = toEncodable;
    convert.JsonEncoder.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonEncoder.prototype;
  dart.addTypeTests(convert.JsonEncoder);
  dart.addTypeCaches(convert.JsonEncoder);
  dart.setMethodSignature(convert.JsonEncoder, () => ({
    __proto__: dart.getMethods(convert.JsonEncoder.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ChunkedConversionSink$(dart.nullable(core.Object)), [dart.nullable(core.Object)]),
    fuse: dart.gFnType(T => [convert.Converter$(dart.nullable(core.Object), T), [dart.nullable(core.Object)]], T => [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.JsonEncoder, I[31]);
  dart.setFieldSignature(convert.JsonEncoder, () => ({
    __proto__: dart.getFields(convert.JsonEncoder.__proto__),
    indent: dart.finalFieldType(dart.nullable(core.String)),
    [_toEncodable$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic])))
  }));
  var _indent$ = dart.privateName(convert, "_indent");
  var _bufferSize$ = dart.privateName(convert, "_bufferSize");
  convert.JsonUtf8Encoder = class JsonUtf8Encoder extends convert.Converter$(dart.nullable(core.Object), core.List$(core.int)) {
    static _utf8Encode(string) {
      if (string == null) return null;
      if (string[$isEmpty]) return _native_typed_data.NativeUint8List.new(0);
      L0: {
        for (let i = 0; i < string.length; i = i + 1) {
          if (string[$codeUnitAt](i) >= 128) break L0;
        }
        return string[$codeUnits];
      }
      return convert.utf8.encode(string);
    }
    convert(object) {
      let bytes = T$0.JSArrayOfListOfint().of([]);
      function addChunk(chunk, start, end) {
        if (chunk == null) dart.nullFailed(I[95], 365, 29, "chunk");
        if (start == null) dart.nullFailed(I[95], 365, 40, "start");
        if (end == null) dart.nullFailed(I[95], 365, 51, "end");
        if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[$length])) {
          let length = dart.notNull(end) - dart.notNull(start);
          chunk = typed_data.Uint8List.view(chunk[$buffer], dart.notNull(chunk[$offsetInBytes]) + dart.notNull(start), length);
        }
        bytes[$add](chunk);
      }
      dart.fn(addChunk, T$0.Uint8ListAndintAndintTovoid());
      convert._JsonUtf8Stringifier.stringify(object, this[_indent$], this[_toEncodable$], this[_bufferSize$], addChunk);
      if (bytes[$length] === 1) return bytes[$_get](0);
      let length = 0;
      for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
        length = length + dart.notNull(bytes[$_get](i)[$length]);
      }
      let result = _native_typed_data.NativeUint8List.new(length);
      for (let i = 0, offset = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
        let byteList = bytes[$_get](i);
        let end = offset + dart.notNull(byteList[$length]);
        result[$setRange](offset, end, byteList);
        offset = end;
      }
      return result;
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[95], 397, 73, "sink");
      let byteSink = null;
      if (convert.ByteConversionSink.is(sink)) {
        byteSink = sink;
      } else {
        byteSink = new convert._ByteAdapterSink.new(sink);
      }
      return new convert._JsonUtf8EncoderSink.new(byteSink, this[_toEncodable$], this[_indent$], this[_bufferSize$]);
    }
    bind(stream) {
      T$0.StreamOfObjectN().as(stream);
      if (stream == null) dart.nullFailed(I[95], 408, 42, "stream");
      return super.bind(stream);
    }
  };
  (convert.JsonUtf8Encoder.new = function(indent = null, toEncodable = null, bufferSize = null) {
    let t173;
    this[_indent$] = convert.JsonUtf8Encoder._utf8Encode(indent);
    this[_toEncodable$] = toEncodable;
    this[_bufferSize$] = (t173 = bufferSize, t173 == null ? 256 : t173);
    convert.JsonUtf8Encoder.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonUtf8Encoder.prototype;
  dart.addTypeTests(convert.JsonUtf8Encoder);
  dart.addTypeCaches(convert.JsonUtf8Encoder);
  dart.setMethodSignature(convert.JsonUtf8Encoder, () => ({
    __proto__: dart.getMethods(convert.JsonUtf8Encoder.__proto__),
    convert: dart.fnType(core.List$(core.int), [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ChunkedConversionSink$(dart.nullable(core.Object)), [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.JsonUtf8Encoder, I[31]);
  dart.setFieldSignature(convert.JsonUtf8Encoder, () => ({
    __proto__: dart.getFields(convert.JsonUtf8Encoder.__proto__),
    [_indent$]: dart.finalFieldType(dart.nullable(core.List$(core.int))),
    [_toEncodable$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic]))),
    [_bufferSize$]: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(convert.JsonUtf8Encoder, {
    /*convert.JsonUtf8Encoder._defaultBufferSize*/get _defaultBufferSize() {
      return 256;
    },
    /*convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE*/get DEFAULT_BUFFER_SIZE() {
      return 256;
    }
  }, false);
  var _isDone = dart.privateName(convert, "_isDone");
  convert._JsonEncoderSink = class _JsonEncoderSink extends convert.ChunkedConversionSink$(dart.nullable(core.Object)) {
    add(o) {
      if (dart.test(this[_isDone])) {
        dart.throw(new core.StateError.new("Only one call to add allowed"));
      }
      this[_isDone] = true;
      let stringSink = this[_sink$0].asStringSink();
      convert._JsonStringStringifier.printOn(o, stringSink, this[_toEncodable$], this[_indent$]);
      stringSink.close();
    }
    close() {
    }
  };
  (convert._JsonEncoderSink.new = function(_sink, _toEncodable, _indent) {
    if (_sink == null) dart.nullFailed(I[95], 422, 25, "_sink");
    this[_isDone] = false;
    this[_sink$0] = _sink;
    this[_toEncodable$] = _toEncodable;
    this[_indent$] = _indent;
    convert._JsonEncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._JsonEncoderSink.prototype;
  dart.addTypeTests(convert._JsonEncoderSink);
  dart.addTypeCaches(convert._JsonEncoderSink);
  dart.setMethodSignature(convert._JsonEncoderSink, () => ({
    __proto__: dart.getMethods(convert._JsonEncoderSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._JsonEncoderSink, I[31]);
  dart.setFieldSignature(convert._JsonEncoderSink, () => ({
    __proto__: dart.getFields(convert._JsonEncoderSink.__proto__),
    [_indent$]: dart.finalFieldType(dart.nullable(core.String)),
    [_toEncodable$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic]))),
    [_sink$0]: dart.finalFieldType(convert.StringConversionSink),
    [_isDone]: dart.fieldType(core.bool)
  }));
  var _addChunk = dart.privateName(convert, "_addChunk");
  convert._JsonUtf8EncoderSink = class _JsonUtf8EncoderSink extends convert.ChunkedConversionSink$(dart.nullable(core.Object)) {
    [_addChunk](chunk, start, end) {
      if (chunk == null) dart.nullFailed(I[95], 454, 28, "chunk");
      if (start == null) dart.nullFailed(I[95], 454, 39, "start");
      if (end == null) dart.nullFailed(I[95], 454, 50, "end");
      this[_sink$0].addSlice(chunk, start, end, false);
    }
    add(object) {
      if (dart.test(this[_isDone])) {
        dart.throw(new core.StateError.new("Only one call to add allowed"));
      }
      this[_isDone] = true;
      convert._JsonUtf8Stringifier.stringify(object, this[_indent$], this[_toEncodable$], this[_bufferSize$], dart.bind(this, _addChunk));
      this[_sink$0].close();
    }
    close() {
      if (!dart.test(this[_isDone])) {
        this[_isDone] = true;
        this[_sink$0].close();
      }
    }
  };
  (convert._JsonUtf8EncoderSink.new = function(_sink, _toEncodable, _indent, _bufferSize) {
    if (_sink == null) dart.nullFailed(I[95], 451, 12, "_sink");
    if (_bufferSize == null) dart.nullFailed(I[95], 451, 57, "_bufferSize");
    this[_isDone] = false;
    this[_sink$0] = _sink;
    this[_toEncodable$] = _toEncodable;
    this[_indent$] = _indent;
    this[_bufferSize$] = _bufferSize;
    convert._JsonUtf8EncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._JsonUtf8EncoderSink.prototype;
  dart.addTypeTests(convert._JsonUtf8EncoderSink);
  dart.addTypeCaches(convert._JsonUtf8EncoderSink);
  dart.setMethodSignature(convert._JsonUtf8EncoderSink, () => ({
    __proto__: dart.getMethods(convert._JsonUtf8EncoderSink.__proto__),
    [_addChunk]: dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int]),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._JsonUtf8EncoderSink, I[31]);
  dart.setFieldSignature(convert._JsonUtf8EncoderSink, () => ({
    __proto__: dart.getFields(convert._JsonUtf8EncoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
    [_indent$]: dart.finalFieldType(dart.nullable(core.List$(core.int))),
    [_toEncodable$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.dynamic]))),
    [_bufferSize$]: dart.finalFieldType(core.int),
    [_isDone]: dart.fieldType(core.bool)
  }));
  const _reviver$0 = JsonDecoder__reviver;
  convert.JsonDecoder = class JsonDecoder extends convert.Converter$(core.String, dart.nullable(core.Object)) {
    get [_reviver$]() {
      return this[_reviver$0];
    }
    set [_reviver$](value) {
      super[_reviver$] = value;
    }
    convert(input) {
      core.String.as(input);
      if (input == null) dart.nullFailed(I[95], 506, 26, "input");
      return convert._parseJson(input, this[_reviver$]);
    }
    startChunkedConversion(sink) {
      if (sink == null) dart.nullFailed(I[85], 363, 61, "sink");
      return new convert._JsonDecoderSink.new(this[_reviver$], sink);
    }
    bind(stream) {
      T$0.StreamOfString().as(stream);
      if (stream == null) dart.nullFailed(I[95], 514, 39, "stream");
      return super.bind(stream);
    }
  };
  (convert.JsonDecoder.new = function(reviver = null) {
    this[_reviver$0] = reviver;
    convert.JsonDecoder.__proto__.new.call(this);
    ;
  }).prototype = convert.JsonDecoder.prototype;
  dart.addTypeTests(convert.JsonDecoder);
  dart.addTypeCaches(convert.JsonDecoder);
  dart.setMethodSignature(convert.JsonDecoder, () => ({
    __proto__: dart.getMethods(convert.JsonDecoder.__proto__),
    convert: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Sink$(dart.nullable(core.Object))])
  }));
  dart.setLibraryUri(convert.JsonDecoder, I[31]);
  dart.setFieldSignature(convert.JsonDecoder, () => ({
    __proto__: dart.getFields(convert.JsonDecoder.__proto__),
    [_reviver$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.nullable(core.Object), [dart.nullable(core.Object), dart.nullable(core.Object)])))
  }));
  var _seen = dart.privateName(convert, "_seen");
  var _checkCycle = dart.privateName(convert, "_checkCycle");
  var _removeSeen = dart.privateName(convert, "_removeSeen");
  var _partialResult = dart.privateName(convert, "_partialResult");
  convert._JsonStringifier = class _JsonStringifier extends core.Object {
    static hexDigit(x) {
      if (x == null) dart.nullFailed(I[95], 574, 27, "x");
      return dart.notNull(x) < 10 ? 48 + dart.notNull(x) : 87 + dart.notNull(x);
    }
    writeStringContent(s) {
      if (s == null) dart.nullFailed(I[95], 577, 34, "s");
      let offset = 0;
      let length = s.length;
      for (let i = 0; i < length; i = i + 1) {
        let charCode = s[$codeUnitAt](i);
        if (charCode > 92) {
          if (charCode >= 55296) {
            if ((charCode & 64512) >>> 0 === 55296 && !(i + 1 < length && (s[$codeUnitAt](i + 1) & 64512) >>> 0 === 56320) || (charCode & 64512) >>> 0 === 56320 && !(i - 1 >= 0 && (s[$codeUnitAt](i - 1) & 64512) >>> 0 === 55296)) {
              if (i > offset) this.writeStringSlice(s, offset, i);
              offset = i + 1;
              this.writeCharCode(92);
              this.writeCharCode(117);
              this.writeCharCode(100);
              this.writeCharCode(convert._JsonStringifier.hexDigit(charCode >> 8 & 15));
              this.writeCharCode(convert._JsonStringifier.hexDigit(charCode >> 4 & 15));
              this.writeCharCode(convert._JsonStringifier.hexDigit(charCode & 15));
            }
          }
          continue;
        }
        if (charCode < 32) {
          if (i > offset) this.writeStringSlice(s, offset, i);
          offset = i + 1;
          this.writeCharCode(92);
          switch (charCode) {
            case 8:
            {
              this.writeCharCode(98);
              break;
            }
            case 9:
            {
              this.writeCharCode(116);
              break;
            }
            case 10:
            {
              this.writeCharCode(110);
              break;
            }
            case 12:
            {
              this.writeCharCode(102);
              break;
            }
            case 13:
            {
              this.writeCharCode(114);
              break;
            }
            default:
            {
              this.writeCharCode(117);
              this.writeCharCode(48);
              this.writeCharCode(48);
              this.writeCharCode(convert._JsonStringifier.hexDigit(charCode >> 4 & 15));
              this.writeCharCode(convert._JsonStringifier.hexDigit(charCode & 15));
              break;
            }
          }
        } else if (charCode === 34 || charCode === 92) {
          if (i > offset) this.writeStringSlice(s, offset, i);
          offset = i + 1;
          this.writeCharCode(92);
          this.writeCharCode(charCode);
        }
      }
      if (offset === 0) {
        this.writeString(s);
      } else if (offset < length) {
        this.writeStringSlice(s, offset, length);
      }
    }
    [_checkCycle](object) {
      for (let i = 0; i < dart.notNull(this[_seen][$length]); i = i + 1) {
        if (core.identical(object, this[_seen][$_get](i))) {
          dart.throw(new convert.JsonCyclicError.new(object));
        }
      }
      this[_seen][$add](object);
    }
    [_removeSeen](object) {
      if (!dart.test(this[_seen][$isNotEmpty])) dart.assertFailed(null, I[95], 666, 12, "_seen.isNotEmpty");
      if (!core.identical(this[_seen][$last], object)) dart.assertFailed(null, I[95], 667, 12, "identical(_seen.last, object)");
      this[_seen][$removeLast]();
    }
    writeObject(object) {
      let t173;
      if (dart.test(this.writeJsonValue(object))) return;
      this[_checkCycle](object);
      try {
        let customJson = (t173 = object, this[_toEncodable$](t173));
        if (!dart.test(this.writeJsonValue(customJson))) {
          dart.throw(new convert.JsonUnsupportedObjectError.new(object, {partialResult: this[_partialResult]}));
        }
        this[_removeSeen](object);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          dart.throw(new convert.JsonUnsupportedObjectError.new(object, {cause: e, partialResult: this[_partialResult]}));
        } else
          throw e$;
      }
    }
    writeJsonValue(object) {
      if (typeof object == 'number') {
        if (!object[$isFinite]) return false;
        this.writeNumber(object);
        return true;
      } else if (object === true) {
        this.writeString("true");
        return true;
      } else if (object === false) {
        this.writeString("false");
        return true;
      } else if (object == null) {
        this.writeString("null");
        return true;
      } else if (typeof object == 'string') {
        this.writeString("\"");
        this.writeStringContent(object);
        this.writeString("\"");
        return true;
      } else if (core.List.is(object)) {
        this[_checkCycle](object);
        this.writeList(object);
        this[_removeSeen](object);
        return true;
      } else if (core.Map.is(object)) {
        this[_checkCycle](object);
        let success = this.writeMap(object);
        this[_removeSeen](object);
        return success;
      } else {
        return false;
      }
    }
    writeList(list) {
      if (list == null) dart.nullFailed(I[95], 733, 32, "list");
      this.writeString("[");
      if (dart.test(list[$isNotEmpty])) {
        this.writeObject(list[$_get](0));
        for (let i = 1; i < dart.notNull(list[$length]); i = i + 1) {
          this.writeString(",");
          this.writeObject(list[$_get](i));
        }
      }
      this.writeString("]");
    }
    writeMap(map) {
      if (map == null) dart.nullFailed(I[95], 746, 39, "map");
      if (dart.test(map[$isEmpty])) {
        this.writeString("{}");
        return true;
      }
      let keyValueList = T$.ListOfObjectN().filled(dart.notNull(map[$length]) * 2, null);
      let i = 0;
      let allStringKeys = true;
      map[$forEach](dart.fn((key, value) => {
        let t174, t174$;
        if (!(typeof key == 'string')) {
          allStringKeys = false;
        }
        keyValueList[$_set]((t174 = i, i = t174 + 1, t174), key);
        keyValueList[$_set]((t174$ = i, i = t174$ + 1, t174$), value);
      }, T$.ObjectNAndObjectNTovoid()));
      if (!allStringKeys) return false;
      this.writeString("{");
      let separator = "\"";
      for (let i = 0; i < dart.notNull(keyValueList[$length]); i = i + 2) {
        this.writeString(separator);
        separator = ",\"";
        this.writeStringContent(core.String.as(keyValueList[$_get](i)));
        this.writeString("\":");
        this.writeObject(keyValueList[$_get](i + 1));
      }
      this.writeString("}");
      return true;
    }
  };
  (convert._JsonStringifier.new = function(toEncodable) {
    let t173;
    this[_seen] = [];
    this[_toEncodable$] = (t173 = toEncodable, t173 == null ? C[94] || CT.C94 : t173);
    ;
  }).prototype = convert._JsonStringifier.prototype;
  dart.addTypeTests(convert._JsonStringifier);
  dart.addTypeCaches(convert._JsonStringifier);
  dart.setMethodSignature(convert._JsonStringifier, () => ({
    __proto__: dart.getMethods(convert._JsonStringifier.__proto__),
    writeStringContent: dart.fnType(dart.void, [core.String]),
    [_checkCycle]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [_removeSeen]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeObject: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeJsonValue: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    writeList: dart.fnType(dart.void, [core.List$(dart.nullable(core.Object))]),
    writeMap: dart.fnType(core.bool, [core.Map$(dart.nullable(core.Object), dart.nullable(core.Object))])
  }));
  dart.setLibraryUri(convert._JsonStringifier, I[31]);
  dart.setFieldSignature(convert._JsonStringifier, () => ({
    __proto__: dart.getFields(convert._JsonStringifier.__proto__),
    [_seen]: dart.finalFieldType(core.List),
    [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic]))
  }));
  dart.defineLazy(convert._JsonStringifier, {
    /*convert._JsonStringifier.backspace*/get backspace() {
      return 8;
    },
    /*convert._JsonStringifier.tab*/get tab() {
      return 9;
    },
    /*convert._JsonStringifier.newline*/get newline() {
      return 10;
    },
    /*convert._JsonStringifier.carriageReturn*/get carriageReturn() {
      return 13;
    },
    /*convert._JsonStringifier.formFeed*/get formFeed() {
      return 12;
    },
    /*convert._JsonStringifier.quote*/get quote() {
      return 34;
    },
    /*convert._JsonStringifier.char_0*/get char_0() {
      return 48;
    },
    /*convert._JsonStringifier.backslash*/get backslash() {
      return 92;
    },
    /*convert._JsonStringifier.char_b*/get char_b() {
      return 98;
    },
    /*convert._JsonStringifier.char_d*/get char_d() {
      return 100;
    },
    /*convert._JsonStringifier.char_f*/get char_f() {
      return 102;
    },
    /*convert._JsonStringifier.char_n*/get char_n() {
      return 110;
    },
    /*convert._JsonStringifier.char_r*/get char_r() {
      return 114;
    },
    /*convert._JsonStringifier.char_t*/get char_t() {
      return 116;
    },
    /*convert._JsonStringifier.char_u*/get char_u() {
      return 117;
    },
    /*convert._JsonStringifier.surrogateMin*/get surrogateMin() {
      return 55296;
    },
    /*convert._JsonStringifier.surrogateMask*/get surrogateMask() {
      return 64512;
    },
    /*convert._JsonStringifier.surrogateLead*/get surrogateLead() {
      return 55296;
    },
    /*convert._JsonStringifier.surrogateTrail*/get surrogateTrail() {
      return 56320;
    }
  }, false);
  var _indentLevel = dart.privateName(convert, "_JsonPrettyPrintMixin._indentLevel");
  var _indentLevel$ = dart.privateName(convert, "_indentLevel");
  convert._JsonPrettyPrintMixin = class _JsonPrettyPrintMixin extends core.Object {
    get [_indentLevel$]() {
      return this[_indentLevel];
    }
    set [_indentLevel$](value) {
      this[_indentLevel] = value;
    }
    writeList(list) {
      if (list == null) dart.nullFailed(I[95], 786, 32, "list");
      if (dart.test(list[$isEmpty])) {
        this.writeString("[]");
      } else {
        this.writeString("[\n");
        this[_indentLevel$] = dart.notNull(this[_indentLevel$]) + 1;
        this.writeIndentation(this[_indentLevel$]);
        this.writeObject(list[$_get](0));
        for (let i = 1; i < dart.notNull(list[$length]); i = i + 1) {
          this.writeString(",\n");
          this.writeIndentation(this[_indentLevel$]);
          this.writeObject(list[$_get](i));
        }
        this.writeString("\n");
        this[_indentLevel$] = dart.notNull(this[_indentLevel$]) - 1;
        this.writeIndentation(this[_indentLevel$]);
        this.writeString("]");
      }
    }
    writeMap(map) {
      if (map == null) dart.nullFailed(I[95], 806, 39, "map");
      if (dart.test(map[$isEmpty])) {
        this.writeString("{}");
        return true;
      }
      let keyValueList = T$.ListOfObjectN().filled(dart.notNull(map[$length]) * 2, null);
      let i = 0;
      let allStringKeys = true;
      map[$forEach](dart.fn((key, value) => {
        let t174, t174$;
        if (!(typeof key == 'string')) {
          allStringKeys = false;
        }
        keyValueList[$_set]((t174 = i, i = t174 + 1, t174), key);
        keyValueList[$_set]((t174$ = i, i = t174$ + 1, t174$), value);
      }, T$.ObjectNAndObjectNTovoid()));
      if (!allStringKeys) return false;
      this.writeString("{\n");
      this[_indentLevel$] = dart.notNull(this[_indentLevel$]) + 1;
      let separator = "";
      for (let i = 0; i < dart.notNull(keyValueList[$length]); i = i + 2) {
        this.writeString(separator);
        separator = ",\n";
        this.writeIndentation(this[_indentLevel$]);
        this.writeString("\"");
        this.writeStringContent(core.String.as(keyValueList[$_get](i)));
        this.writeString("\": ");
        this.writeObject(keyValueList[$_get](i + 1));
      }
      this.writeString("\n");
      this[_indentLevel$] = dart.notNull(this[_indentLevel$]) - 1;
      this.writeIndentation(this[_indentLevel$]);
      this.writeString("}");
      return true;
    }
  };
  (convert._JsonPrettyPrintMixin.new = function() {
    this[_indentLevel] = 0;
    ;
  }).prototype = convert._JsonPrettyPrintMixin.prototype;
  dart.addTypeTests(convert._JsonPrettyPrintMixin);
  dart.addTypeCaches(convert._JsonPrettyPrintMixin);
  convert._JsonPrettyPrintMixin[dart.implements] = () => [convert._JsonStringifier];
  dart.setMethodSignature(convert._JsonPrettyPrintMixin, () => ({
    __proto__: dart.getMethods(convert._JsonPrettyPrintMixin.__proto__),
    writeList: dart.fnType(dart.void, [core.List$(dart.nullable(core.Object))]),
    writeMap: dart.fnType(core.bool, [core.Map$(dart.nullable(core.Object), dart.nullable(core.Object))])
  }));
  dart.setLibraryUri(convert._JsonPrettyPrintMixin, I[31]);
  dart.setFieldSignature(convert._JsonPrettyPrintMixin, () => ({
    __proto__: dart.getFields(convert._JsonPrettyPrintMixin.__proto__),
    [_indentLevel$]: dart.fieldType(core.int)
  }));
  convert._JsonStringStringifier = class _JsonStringStringifier extends convert._JsonStringifier {
    static stringify(object, toEncodable, indent) {
      let output = new core.StringBuffer.new();
      convert._JsonStringStringifier.printOn(object, output, toEncodable, indent);
      return output.toString();
    }
    static printOn(object, output, toEncodable, indent) {
      if (output == null) dart.nullFailed(I[95], 869, 50, "output");
      let stringifier = null;
      if (indent == null) {
        stringifier = new convert._JsonStringStringifier.new(output, toEncodable);
      } else {
        stringifier = new convert._JsonStringStringifierPretty.new(output, toEncodable, indent);
      }
      stringifier.writeObject(object);
    }
    get [_partialResult]() {
      return core.StringBuffer.is(this[_sink$0]) ? dart.toString(this[_sink$0]) : null;
    }
    writeNumber(number) {
      if (number == null) dart.nullFailed(I[95], 882, 24, "number");
      this[_sink$0].write(dart.toString(number));
    }
    writeString(string) {
      if (string == null) dart.nullFailed(I[95], 886, 27, "string");
      this[_sink$0].write(string);
    }
    writeStringSlice(string, start, end) {
      if (string == null) dart.nullFailed(I[95], 890, 32, "string");
      if (start == null) dart.nullFailed(I[95], 890, 44, "start");
      if (end == null) dart.nullFailed(I[95], 890, 55, "end");
      this[_sink$0].write(string[$substring](start, end));
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[95], 894, 26, "charCode");
      this[_sink$0].writeCharCode(charCode);
    }
  };
  (convert._JsonStringStringifier.new = function(_sink, _toEncodable) {
    if (_sink == null) dart.nullFailed(I[95], 847, 12, "_sink");
    this[_sink$0] = _sink;
    convert._JsonStringStringifier.__proto__.new.call(this, _toEncodable);
    ;
  }).prototype = convert._JsonStringStringifier.prototype;
  dart.addTypeTests(convert._JsonStringStringifier);
  dart.addTypeCaches(convert._JsonStringStringifier);
  dart.setMethodSignature(convert._JsonStringStringifier, () => ({
    __proto__: dart.getMethods(convert._JsonStringStringifier.__proto__),
    writeNumber: dart.fnType(dart.void, [core.num]),
    writeString: dart.fnType(dart.void, [core.String]),
    writeStringSlice: dart.fnType(dart.void, [core.String, core.int, core.int]),
    writeCharCode: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(convert._JsonStringStringifier, () => ({
    __proto__: dart.getGetters(convert._JsonStringStringifier.__proto__),
    [_partialResult]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(convert._JsonStringStringifier, I[31]);
  dart.setFieldSignature(convert._JsonStringStringifier, () => ({
    __proto__: dart.getFields(convert._JsonStringStringifier.__proto__),
    [_sink$0]: dart.finalFieldType(core.StringSink)
  }));
  const _JsonStringStringifier__JsonPrettyPrintMixin$36 = class _JsonStringStringifier__JsonPrettyPrintMixin extends convert._JsonStringStringifier {};
  (_JsonStringStringifier__JsonPrettyPrintMixin$36.new = function(_sink, _toEncodable) {
    convert._JsonPrettyPrintMixin.new.call(this);
    _JsonStringStringifier__JsonPrettyPrintMixin$36.__proto__.new.call(this, _sink, _toEncodable);
  }).prototype = _JsonStringStringifier__JsonPrettyPrintMixin$36.prototype;
  dart.applyMixin(_JsonStringStringifier__JsonPrettyPrintMixin$36, convert._JsonPrettyPrintMixin);
  convert._JsonStringStringifierPretty = class _JsonStringStringifierPretty extends _JsonStringStringifier__JsonPrettyPrintMixin$36 {
    writeIndentation(count) {
      if (count == null) dart.nullFailed(I[95], 907, 29, "count");
      for (let i = 0; i < dart.notNull(count); i = i + 1)
        this.writeString(this[_indent$]);
    }
  };
  (convert._JsonStringStringifierPretty.new = function(sink, toEncodable, _indent) {
    if (sink == null) dart.nullFailed(I[95], 904, 18, "sink");
    if (_indent == null) dart.nullFailed(I[95], 904, 62, "_indent");
    this[_indent$] = _indent;
    convert._JsonStringStringifierPretty.__proto__.new.call(this, sink, toEncodable);
    ;
  }).prototype = convert._JsonStringStringifierPretty.prototype;
  dart.addTypeTests(convert._JsonStringStringifierPretty);
  dart.addTypeCaches(convert._JsonStringStringifierPretty);
  dart.setMethodSignature(convert._JsonStringStringifierPretty, () => ({
    __proto__: dart.getMethods(convert._JsonStringStringifierPretty.__proto__),
    writeIndentation: dart.fnType(dart.void, [core.int])
  }));
  dart.setLibraryUri(convert._JsonStringStringifierPretty, I[31]);
  dart.setFieldSignature(convert._JsonStringStringifierPretty, () => ({
    __proto__: dart.getFields(convert._JsonStringStringifierPretty.__proto__),
    [_indent$]: dart.finalFieldType(core.String)
  }));
  convert._JsonUtf8Stringifier = class _JsonUtf8Stringifier extends convert._JsonStringifier {
    static stringify(object, indent, toEncodable, bufferSize, addChunk) {
      if (bufferSize == null) dart.nullFailed(I[95], 940, 11, "bufferSize");
      if (addChunk == null) dart.nullFailed(I[95], 941, 12, "addChunk");
      let stringifier = null;
      if (indent != null) {
        stringifier = new convert._JsonUtf8StringifierPretty.new(toEncodable, indent, bufferSize, addChunk);
      } else {
        stringifier = new convert._JsonUtf8Stringifier.new(toEncodable, bufferSize, addChunk);
      }
      stringifier.writeObject(object);
      stringifier.flush();
    }
    flush() {
      let t176, t175, t174;
      if (dart.notNull(this.index) > 0) {
        t174 = this.buffer;
        t175 = 0;
        t176 = this.index;
        this.addChunk(t174, t175, t176);
      }
      this.buffer = _native_typed_data.NativeUint8List.new(0);
      this.index = 0;
    }
    get [_partialResult]() {
      return null;
    }
    writeNumber(number) {
      if (number == null) dart.nullFailed(I[95], 965, 24, "number");
      this.writeAsciiString(dart.toString(number));
    }
    writeAsciiString(string) {
      if (string == null) dart.nullFailed(I[95], 970, 32, "string");
      for (let i = 0; i < string.length; i = i + 1) {
        let char = string[$codeUnitAt](i);
        if (!(char <= 127)) dart.assertFailed(null, I[95], 975, 14, "char <= 0x7f");
        this.writeByte(char);
      }
    }
    writeString(string) {
      if (string == null) dart.nullFailed(I[95], 980, 27, "string");
      this.writeStringSlice(string, 0, string.length);
    }
    writeStringSlice(string, start, end) {
      if (string == null) dart.nullFailed(I[95], 984, 32, "string");
      if (start == null) dart.nullFailed(I[95], 984, 44, "start");
      if (end == null) dart.nullFailed(I[95], 984, 55, "end");
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = string[$codeUnitAt](i);
        if (char <= 127) {
          this.writeByte(char);
        } else {
          if ((char & 63488) === 55296) {
            if (char < 56320 && dart.notNull(i) + 1 < dart.notNull(end)) {
              let nextChar = string[$codeUnitAt](dart.notNull(i) + 1);
              if ((nextChar & 64512) === 56320) {
                char = 65536 + ((char & 1023) << 10) + (nextChar & 1023);
                this.writeFourByteCharCode(char);
                i = dart.notNull(i) + 1;
                continue;
              }
            }
            this.writeMultiByteCharCode(65533);
            continue;
          }
          this.writeMultiByteCharCode(char);
        }
      }
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[95], 1015, 26, "charCode");
      if (dart.notNull(charCode) <= 127) {
        this.writeByte(charCode);
        return;
      }
      this.writeMultiByteCharCode(charCode);
    }
    writeMultiByteCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[95], 1023, 35, "charCode");
      if (dart.notNull(charCode) <= 2047) {
        this.writeByte((192 | charCode[$rightShift](6)) >>> 0);
        this.writeByte(128 | dart.notNull(charCode) & 63);
        return;
      }
      if (dart.notNull(charCode) <= 65535) {
        this.writeByte((224 | charCode[$rightShift](12)) >>> 0);
        this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
        this.writeByte(128 | dart.notNull(charCode) & 63);
        return;
      }
      this.writeFourByteCharCode(charCode);
    }
    writeFourByteCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[95], 1038, 34, "charCode");
      if (!(dart.notNull(charCode) <= 1114111)) dart.assertFailed(null, I[95], 1039, 12, "charCode <= 0x10ffff");
      this.writeByte((240 | charCode[$rightShift](18)) >>> 0);
      this.writeByte(128 | dart.notNull(charCode) >> 12 & 63);
      this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
      this.writeByte(128 | dart.notNull(charCode) & 63);
    }
    writeByte(byte) {
      let t176, t175, t174, t174$;
      if (byte == null) dart.nullFailed(I[95], 1046, 22, "byte");
      if (!(dart.notNull(byte) <= 255)) dart.assertFailed(null, I[95], 1047, 12, "byte <= 0xff");
      if (this.index == this.buffer[$length]) {
        t174 = this.buffer;
        t175 = 0;
        t176 = this.index;
        this.addChunk(t174, t175, t176);
        this.buffer = _native_typed_data.NativeUint8List.new(this.bufferSize);
        this.index = 0;
      }
      this.buffer[$_set]((t174$ = this.index, this.index = dart.notNull(t174$) + 1, t174$), byte);
    }
  };
  (convert._JsonUtf8Stringifier.new = function(toEncodable, bufferSize, addChunk) {
    if (bufferSize == null) dart.nullFailed(I[95], 923, 45, "bufferSize");
    if (addChunk == null) dart.nullFailed(I[95], 923, 62, "addChunk");
    this.index = 0;
    this.bufferSize = bufferSize;
    this.addChunk = addChunk;
    this.buffer = _native_typed_data.NativeUint8List.new(bufferSize);
    convert._JsonUtf8Stringifier.__proto__.new.call(this, toEncodable);
    ;
  }).prototype = convert._JsonUtf8Stringifier.prototype;
  dart.addTypeTests(convert._JsonUtf8Stringifier);
  dart.addTypeCaches(convert._JsonUtf8Stringifier);
  dart.setMethodSignature(convert._JsonUtf8Stringifier, () => ({
    __proto__: dart.getMethods(convert._JsonUtf8Stringifier.__proto__),
    flush: dart.fnType(dart.void, []),
    writeNumber: dart.fnType(dart.void, [core.num]),
    writeAsciiString: dart.fnType(dart.void, [core.String]),
    writeString: dart.fnType(dart.void, [core.String]),
    writeStringSlice: dart.fnType(dart.void, [core.String, core.int, core.int]),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    writeMultiByteCharCode: dart.fnType(dart.void, [core.int]),
    writeFourByteCharCode: dart.fnType(dart.void, [core.int]),
    writeByte: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(convert._JsonUtf8Stringifier, () => ({
    __proto__: dart.getGetters(convert._JsonUtf8Stringifier.__proto__),
    [_partialResult]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(convert._JsonUtf8Stringifier, I[31]);
  dart.setFieldSignature(convert._JsonUtf8Stringifier, () => ({
    __proto__: dart.getFields(convert._JsonUtf8Stringifier.__proto__),
    bufferSize: dart.finalFieldType(core.int),
    addChunk: dart.finalFieldType(dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int])),
    buffer: dart.fieldType(typed_data.Uint8List),
    index: dart.fieldType(core.int)
  }));
  const _JsonUtf8Stringifier__JsonPrettyPrintMixin$36 = class _JsonUtf8Stringifier__JsonPrettyPrintMixin extends convert._JsonUtf8Stringifier {};
  (_JsonUtf8Stringifier__JsonPrettyPrintMixin$36.new = function(toEncodable, bufferSize, addChunk) {
    convert._JsonPrettyPrintMixin.new.call(this);
    _JsonUtf8Stringifier__JsonPrettyPrintMixin$36.__proto__.new.call(this, toEncodable, bufferSize, addChunk);
  }).prototype = _JsonUtf8Stringifier__JsonPrettyPrintMixin$36.prototype;
  dart.applyMixin(_JsonUtf8Stringifier__JsonPrettyPrintMixin$36, convert._JsonPrettyPrintMixin);
  convert._JsonUtf8StringifierPretty = class _JsonUtf8StringifierPretty extends _JsonUtf8Stringifier__JsonPrettyPrintMixin$36 {
    writeIndentation(count) {
      if (count == null) dart.nullFailed(I[95], 1065, 29, "count");
      let indent = this.indent;
      let indentLength = indent[$length];
      if (indentLength === 1) {
        let char = indent[$_get](0);
        while (dart.notNull(count) > 0) {
          this.writeByte(char);
          count = dart.notNull(count) - 1;
        }
        return;
      }
      while (dart.notNull(count) > 0) {
        count = dart.notNull(count) - 1;
        let end = dart.notNull(this.index) + dart.notNull(indentLength);
        if (end <= dart.notNull(this.buffer[$length])) {
          this.buffer[$setRange](this.index, end, indent);
          this.index = end;
        } else {
          for (let i = 0; i < dart.notNull(indentLength); i = i + 1) {
            this.writeByte(indent[$_get](i));
          }
        }
      }
    }
  };
  (convert._JsonUtf8StringifierPretty.new = function(toEncodable, indent, bufferSize, addChunk) {
    if (indent == null) dart.nullFailed(I[95], 1061, 68, "indent");
    if (bufferSize == null) dart.nullFailed(I[95], 1062, 11, "bufferSize");
    if (addChunk == null) dart.nullFailed(I[95], 1062, 28, "addChunk");
    this.indent = indent;
    convert._JsonUtf8StringifierPretty.__proto__.new.call(this, toEncodable, bufferSize, addChunk);
    ;
  }).prototype = convert._JsonUtf8StringifierPretty.prototype;
  dart.addTypeTests(convert._JsonUtf8StringifierPretty);
  dart.addTypeCaches(convert._JsonUtf8StringifierPretty);
  dart.setMethodSignature(convert._JsonUtf8StringifierPretty, () => ({
    __proto__: dart.getMethods(convert._JsonUtf8StringifierPretty.__proto__),
    writeIndentation: dart.fnType(dart.void, [core.int])
  }));
  dart.setLibraryUri(convert._JsonUtf8StringifierPretty, I[31]);
  dart.setFieldSignature(convert._JsonUtf8StringifierPretty, () => ({
    __proto__: dart.getFields(convert._JsonUtf8StringifierPretty.__proto__),
    indent: dart.finalFieldType(core.List$(core.int))
  }));
  var _allowInvalid$1 = dart.privateName(convert, "Latin1Codec._allowInvalid");
  convert.Latin1Codec = class Latin1Codec extends convert.Encoding {
    get [_allowInvalid$]() {
      return this[_allowInvalid$1];
    }
    set [_allowInvalid$](value) {
      super[_allowInvalid$] = value;
    }
    get name() {
      return "iso-8859-1";
    }
    encode(source) {
      core.String.as(source);
      if (source == null) dart.nullFailed(I[96], 40, 27, "source");
      return this.encoder.convert(source);
    }
    decode(bytes, opts) {
      let t174;
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[96], 50, 27, "bytes");
      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
      if (dart.test((t174 = allowInvalid, t174 == null ? this[_allowInvalid$] : t174))) {
        return (C[95] || CT.C95).convert(bytes);
      } else {
        return (C[96] || CT.C96).convert(bytes);
      }
    }
    get encoder() {
      return C[97] || CT.C97;
    }
    get decoder() {
      return dart.test(this[_allowInvalid$]) ? C[95] || CT.C95 : C[96] || CT.C96;
    }
  };
  (convert.Latin1Codec.new = function(opts) {
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
    if (allowInvalid == null) dart.nullFailed(I[96], 35, 27, "allowInvalid");
    this[_allowInvalid$1] = allowInvalid;
    convert.Latin1Codec.__proto__.new.call(this);
    ;
  }).prototype = convert.Latin1Codec.prototype;
  dart.addTypeTests(convert.Latin1Codec);
  dart.addTypeCaches(convert.Latin1Codec);
  dart.setMethodSignature(convert.Latin1Codec, () => ({
    __proto__: dart.getMethods(convert.Latin1Codec.__proto__),
    encode: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)]),
    decode: dart.fnType(core.String, [dart.nullable(core.Object)], {allowInvalid: dart.nullable(core.bool)}, {})
  }));
  dart.setGetterSignature(convert.Latin1Codec, () => ({
    __proto__: dart.getGetters(convert.Latin1Codec.__proto__),
    name: core.String,
    encoder: convert.Latin1Encoder,
    decoder: convert.Latin1Decoder
  }));
  dart.setLibraryUri(convert.Latin1Codec, I[31]);
  dart.setFieldSignature(convert.Latin1Codec, () => ({
    __proto__: dart.getFields(convert.Latin1Codec.__proto__),
    [_allowInvalid$]: dart.finalFieldType(core.bool)
  }));
  convert.Latin1Encoder = class Latin1Encoder extends convert._UnicodeSubsetEncoder {};
  (convert.Latin1Encoder.new = function() {
    convert.Latin1Encoder.__proto__.new.call(this, 255);
    ;
  }).prototype = convert.Latin1Encoder.prototype;
  dart.addTypeTests(convert.Latin1Encoder);
  dart.addTypeCaches(convert.Latin1Encoder);
  dart.setLibraryUri(convert.Latin1Encoder, I[31]);
  convert.Latin1Decoder = class Latin1Decoder extends convert._UnicodeSubsetDecoder {
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[96], 88, 58, "sink");
      let stringSink = null;
      if (convert.StringConversionSink.is(sink)) {
        stringSink = sink;
      } else {
        stringSink = new convert._StringAdapterSink.new(sink);
      }
      if (!dart.test(this[_allowInvalid$])) return new convert._Latin1DecoderSink.new(stringSink);
      return new convert._Latin1AllowInvalidDecoderSink.new(stringSink);
    }
  };
  (convert.Latin1Decoder.new = function(opts) {
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
    if (allowInvalid == null) dart.nullFailed(I[96], 81, 29, "allowInvalid");
    convert.Latin1Decoder.__proto__.new.call(this, allowInvalid, 255);
    ;
  }).prototype = convert.Latin1Decoder.prototype;
  dart.addTypeTests(convert.Latin1Decoder);
  dart.addTypeCaches(convert.Latin1Decoder);
  dart.setMethodSignature(convert.Latin1Decoder, () => ({
    __proto__: dart.getMethods(convert.Latin1Decoder.__proto__),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.Latin1Decoder, I[31]);
  var _addSliceToSink = dart.privateName(convert, "_addSliceToSink");
  convert._Latin1DecoderSink = class _Latin1DecoderSink extends convert.ByteConversionSinkBase {
    close() {
      dart.nullCheck(this[_sink$0]).close();
      this[_sink$0] = null;
    }
    add(source) {
      T$0.ListOfint().as(source);
      if (source == null) dart.nullFailed(I[96], 110, 22, "source");
      this.addSlice(source, 0, source[$length], false);
    }
    [_addSliceToSink](source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[96], 114, 34, "source");
      if (start == null) dart.nullFailed(I[96], 114, 46, "start");
      if (end == null) dart.nullFailed(I[96], 114, 57, "end");
      if (isLast == null) dart.nullFailed(I[96], 114, 67, "isLast");
      dart.nullCheck(this[_sink$0]).add(core.String.fromCharCodes(source, start, end));
      if (dart.test(isLast)) this.close();
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[96], 123, 27, "source");
      if (start == null) dart.nullFailed(I[96], 123, 39, "start");
      if (end == null) dart.nullFailed(I[96], 123, 50, "end");
      if (isLast == null) dart.nullFailed(I[96], 123, 60, "isLast");
      core.RangeError.checkValidRange(start, end, source[$length]);
      if (start == end) return;
      if (!typed_data.Uint8List.is(source)) {
        convert._Latin1DecoderSink._checkValidLatin1(source, start, end);
      }
      this[_addSliceToSink](source, start, end, isLast);
    }
    static _checkValidLatin1(source, start, end) {
      if (source == null) dart.nullFailed(I[96], 135, 43, "source");
      if (start == null) dart.nullFailed(I[96], 135, 55, "start");
      if (end == null) dart.nullFailed(I[96], 135, 66, "end");
      let mask = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        mask = (mask | dart.notNull(source[$_get](i))) >>> 0;
      }
      if (mask >= 0 && mask <= 255) {
        return;
      }
      convert._Latin1DecoderSink._reportInvalidLatin1(source, start, end);
    }
    static _reportInvalidLatin1(source, start, end) {
      if (source == null) dart.nullFailed(I[96], 146, 46, "source");
      if (start == null) dart.nullFailed(I[96], 146, 58, "start");
      if (end == null) dart.nullFailed(I[96], 146, 69, "end");
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = source[$_get](i);
        if (dart.notNull(char) < 0 || dart.notNull(char) > 255) {
          dart.throw(new core.FormatException.new("Source contains non-Latin-1 characters.", source, i));
        }
      }
      if (!false) dart.assertFailed(null, I[96], 156, 12, "false");
    }
  };
  (convert._Latin1DecoderSink.new = function(_sink) {
    this[_sink$0] = _sink;
    convert._Latin1DecoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._Latin1DecoderSink.prototype;
  dart.addTypeTests(convert._Latin1DecoderSink);
  dart.addTypeCaches(convert._Latin1DecoderSink);
  dart.setMethodSignature(convert._Latin1DecoderSink, () => ({
    __proto__: dart.getMethods(convert._Latin1DecoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [_addSliceToSink]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Latin1DecoderSink, I[31]);
  dart.setFieldSignature(convert._Latin1DecoderSink, () => ({
    __proto__: dart.getFields(convert._Latin1DecoderSink.__proto__),
    [_sink$0]: dart.fieldType(dart.nullable(convert.StringConversionSink))
  }));
  convert._Latin1AllowInvalidDecoderSink = class _Latin1AllowInvalidDecoderSink extends convert._Latin1DecoderSink {
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[96], 163, 27, "source");
      if (start == null) dart.nullFailed(I[96], 163, 39, "start");
      if (end == null) dart.nullFailed(I[96], 163, 50, "end");
      if (isLast == null) dart.nullFailed(I[96], 163, 60, "isLast");
      core.RangeError.checkValidRange(start, end, source[$length]);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = source[$_get](i);
        if (dart.notNull(char) > 255 || dart.notNull(char) < 0) {
          if (dart.notNull(i) > dart.notNull(start)) this[_addSliceToSink](source, start, i, false);
          this[_addSliceToSink](C[98] || CT.C98, 0, 1, false);
          start = dart.notNull(i) + 1;
        }
      }
      if (dart.notNull(start) < dart.notNull(end)) {
        this[_addSliceToSink](source, start, end, isLast);
      }
      if (dart.test(isLast)) {
        this.close();
      }
    }
  };
  (convert._Latin1AllowInvalidDecoderSink.new = function(sink) {
    if (sink == null) dart.nullFailed(I[96], 161, 55, "sink");
    convert._Latin1AllowInvalidDecoderSink.__proto__.new.call(this, sink);
    ;
  }).prototype = convert._Latin1AllowInvalidDecoderSink.prototype;
  dart.addTypeTests(convert._Latin1AllowInvalidDecoderSink);
  dart.addTypeCaches(convert._Latin1AllowInvalidDecoderSink);
  dart.setLibraryUri(convert._Latin1AllowInvalidDecoderSink, I[31]);
  convert.LineSplitter = class LineSplitter extends async.StreamTransformerBase$(core.String, core.String) {
    static split(lines, start = 0, end = null) {
      if (lines == null) dart.nullFailed(I[97], 28, 40, "lines");
      if (start == null) dart.nullFailed(I[97], 28, 52, "start");
      return new (T$0.SyncIterableOfString()).new(() => (function* split(end) {
        end = core.RangeError.checkValidRange(start, end, lines.length);
        if (end == null) {
          dart.throw(new core.RangeError.new("Invalid range"));
        }
        let sliceStart = start;
        let char = 0;
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          let previousChar = char;
          char = lines[$codeUnitAt](i);
          if (char !== 13) {
            if (char !== 10) continue;
            if (previousChar === 13) {
              sliceStart = dart.notNull(i) + 1;
              continue;
            }
          }
          yield lines[$substring](sliceStart, i);
          sliceStart = dart.notNull(i) + 1;
        }
        if (dart.notNull(sliceStart) < dart.notNull(end)) {
          yield lines[$substring](sliceStart, end);
        }
      })(end));
    }
    convert(data) {
      if (data == null) dart.nullFailed(I[97], 54, 31, "data");
      let lines = T$.JSArrayOfString().of([]);
      let end = data.length;
      let sliceStart = 0;
      let char = 0;
      for (let i = 0; i < end; i = i + 1) {
        let previousChar = char;
        char = data[$codeUnitAt](i);
        if (char !== 13) {
          if (char !== 10) continue;
          if (previousChar === 13) {
            sliceStart = i + 1;
            continue;
          }
        }
        lines[$add](data[$substring](sliceStart, i));
        sliceStart = i + 1;
      }
      if (sliceStart < end) {
        lines[$add](data[$substring](sliceStart, end));
      }
      return lines;
    }
    startChunkedConversion(sink) {
      if (sink == null) dart.nullFailed(I[97], 78, 60, "sink");
      return new convert._LineSplitterSink.new(convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink));
    }
    bind(stream) {
      T$0.StreamOfString().as(stream);
      if (stream == null) dart.nullFailed(I[97], 83, 38, "stream");
      return T$0.StreamOfString().eventTransformed(stream, dart.fn(sink => {
        if (sink == null) dart.nullFailed(I[97], 85, 36, "sink");
        return new convert._LineSplitterEventSink.new(sink);
      }, T$0.EventSinkOfStringTo_LineSplitterEventSink()));
    }
  };
  (convert.LineSplitter.new = function() {
    convert.LineSplitter.__proto__.new.call(this);
    ;
  }).prototype = convert.LineSplitter.prototype;
  dart.addTypeTests(convert.LineSplitter);
  dart.addTypeCaches(convert.LineSplitter);
  dart.setMethodSignature(convert.LineSplitter, () => ({
    __proto__: dart.getMethods(convert.LineSplitter.__proto__),
    convert: dart.fnType(core.List$(core.String), [core.String]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Sink$(core.String)]),
    bind: dart.fnType(async.Stream$(core.String), [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.LineSplitter, I[31]);
  var _carry = dart.privateName(convert, "_carry");
  var _skipLeadingLF = dart.privateName(convert, "_skipLeadingLF");
  var _addLines = dart.privateName(convert, "_addLines");
  convert._LineSplitterSink = class _LineSplitterSink extends convert.StringConversionSinkBase {
    addSlice(chunk, start, end, isLast) {
      if (chunk == null) dart.nullFailed(I[97], 109, 24, "chunk");
      if (start == null) dart.nullFailed(I[97], 109, 35, "start");
      if (end == null) dart.nullFailed(I[97], 109, 46, "end");
      if (isLast == null) dart.nullFailed(I[97], 109, 56, "isLast");
      end = core.RangeError.checkValidRange(start, end, chunk.length);
      if (dart.notNull(start) >= dart.notNull(end)) {
        if (dart.test(isLast)) this.close();
        return;
      }
      let carry = this[_carry];
      if (carry != null) {
        if (!!dart.test(this[_skipLeadingLF])) dart.assertFailed(null, I[97], 119, 14, "!_skipLeadingLF");
        chunk = dart.notNull(carry) + chunk[$substring](start, end);
        start = 0;
        end = chunk.length;
        this[_carry] = null;
      } else if (dart.test(this[_skipLeadingLF])) {
        if (chunk[$codeUnitAt](start) === 10) {
          start = dart.notNull(start) + 1;
        }
        this[_skipLeadingLF] = false;
      }
      this[_addLines](chunk, start, end);
      if (dart.test(isLast)) this.close();
    }
    close() {
      if (this[_carry] != null) {
        this[_sink$0].add(dart.nullCheck(this[_carry]));
        this[_carry] = null;
      }
      this[_sink$0].close();
    }
    [_addLines](lines, start, end) {
      if (lines == null) dart.nullFailed(I[97], 142, 25, "lines");
      if (start == null) dart.nullFailed(I[97], 142, 36, "start");
      if (end == null) dart.nullFailed(I[97], 142, 47, "end");
      let sliceStart = start;
      let char = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let previousChar = char;
        char = lines[$codeUnitAt](i);
        if (char !== 13) {
          if (char !== 10) continue;
          if (previousChar === 13) {
            sliceStart = dart.notNull(i) + 1;
            continue;
          }
        }
        this[_sink$0].add(lines[$substring](sliceStart, i));
        sliceStart = dart.notNull(i) + 1;
      }
      if (dart.notNull(sliceStart) < dart.notNull(end)) {
        this[_carry] = lines[$substring](sliceStart, end);
      } else {
        this[_skipLeadingLF] = char === 13;
      }
    }
  };
  (convert._LineSplitterSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[97], 107, 26, "_sink");
    this[_carry] = null;
    this[_skipLeadingLF] = false;
    this[_sink$0] = _sink;
    ;
  }).prototype = convert._LineSplitterSink.prototype;
  dart.addTypeTests(convert._LineSplitterSink);
  dart.addTypeCaches(convert._LineSplitterSink);
  dart.setMethodSignature(convert._LineSplitterSink, () => ({
    __proto__: dart.getMethods(convert._LineSplitterSink.__proto__),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, []),
    [_addLines]: dart.fnType(dart.void, [core.String, core.int, core.int])
  }));
  dart.setLibraryUri(convert._LineSplitterSink, I[31]);
  dart.setFieldSignature(convert._LineSplitterSink, () => ({
    __proto__: dart.getFields(convert._LineSplitterSink.__proto__),
    [_sink$0]: dart.finalFieldType(convert.StringConversionSink),
    [_carry]: dart.fieldType(dart.nullable(core.String)),
    [_skipLeadingLF]: dart.fieldType(core.bool)
  }));
  convert._LineSplitterEventSink = class _LineSplitterEventSink extends convert._LineSplitterSink {
    addError(o, stackTrace = null) {
      if (o == null) dart.nullFailed(I[97], 174, 24, "o");
      this[_eventSink].addError(o, stackTrace);
    }
  };
  (convert._LineSplitterEventSink.new = function(eventSink) {
    if (eventSink == null) dart.nullFailed(I[97], 170, 44, "eventSink");
    this[_eventSink] = eventSink;
    convert._LineSplitterEventSink.__proto__.new.call(this, new convert._StringAdapterSink.new(eventSink));
    ;
  }).prototype = convert._LineSplitterEventSink.prototype;
  dart.addTypeTests(convert._LineSplitterEventSink);
  dart.addTypeCaches(convert._LineSplitterEventSink);
  convert._LineSplitterEventSink[dart.implements] = () => [async.EventSink$(core.String)];
  dart.setMethodSignature(convert._LineSplitterEventSink, () => ({
    __proto__: dart.getMethods(convert._LineSplitterEventSink.__proto__),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)])
  }));
  dart.setLibraryUri(convert._LineSplitterEventSink, I[31]);
  dart.setFieldSignature(convert._LineSplitterEventSink, () => ({
    __proto__: dart.getFields(convert._LineSplitterEventSink.__proto__),
    [_eventSink]: dart.finalFieldType(async.EventSink$(core.String))
  }));
  convert.StringConversionSink = class StringConversionSink extends convert.ChunkedConversionSink$(core.String) {};
  (convert.StringConversionSink.new = function() {
    convert.StringConversionSink.__proto__.new.call(this);
    ;
  }).prototype = convert.StringConversionSink.prototype;
  dart.addTypeTests(convert.StringConversionSink);
  dart.addTypeCaches(convert.StringConversionSink);
  dart.setLibraryUri(convert.StringConversionSink, I[31]);
  core.StringSink = class StringSink extends core.Object {};
  (core.StringSink.new = function() {
    ;
  }).prototype = core.StringSink.prototype;
  dart.addTypeTests(core.StringSink);
  dart.addTypeCaches(core.StringSink);
  dart.setLibraryUri(core.StringSink, I[8]);
  convert.ClosableStringSink = class ClosableStringSink extends core.StringSink {};
  dart.addTypeTests(convert.ClosableStringSink);
  dart.addTypeCaches(convert.ClosableStringSink);
  dart.setLibraryUri(convert.ClosableStringSink, I[31]);
  convert._ClosableStringSink = class _ClosableStringSink extends core.Object {
    close() {
      this[_callback$]();
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[86], 78, 26, "charCode");
      this[_sink$0].writeCharCode(charCode);
    }
    write(o) {
      this[_sink$0].write(o);
    }
    writeln(o = "") {
      this[_sink$0].writeln(o);
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[86], 90, 26, "objects");
      if (separator == null) dart.nullFailed(I[86], 90, 43, "separator");
      this[_sink$0].writeAll(objects, separator);
    }
  };
  (convert._ClosableStringSink.new = function(_sink, _callback) {
    if (_sink == null) dart.nullFailed(I[86], 72, 28, "_sink");
    if (_callback == null) dart.nullFailed(I[86], 72, 40, "_callback");
    this[_sink$0] = _sink;
    this[_callback$] = _callback;
    ;
  }).prototype = convert._ClosableStringSink.prototype;
  dart.addTypeTests(convert._ClosableStringSink);
  dart.addTypeCaches(convert._ClosableStringSink);
  convert._ClosableStringSink[dart.implements] = () => [convert.ClosableStringSink];
  dart.setMethodSignature(convert._ClosableStringSink, () => ({
    __proto__: dart.getMethods(convert._ClosableStringSink.__proto__),
    close: dart.fnType(dart.void, []),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String])
  }));
  dart.setLibraryUri(convert._ClosableStringSink, I[31]);
  dart.setFieldSignature(convert._ClosableStringSink, () => ({
    __proto__: dart.getFields(convert._ClosableStringSink.__proto__),
    [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [])),
    [_sink$0]: dart.finalFieldType(core.StringSink)
  }));
  var _flush = dart.privateName(convert, "_flush");
  convert._StringConversionSinkAsStringSinkAdapter = class _StringConversionSinkAsStringSinkAdapter extends core.Object {
    close() {
      if (dart.test(this[_buffer$].isNotEmpty)) this[_flush]();
      this[_chunkedSink$].close();
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[86], 113, 26, "charCode");
      this[_buffer$].writeCharCode(charCode);
      if (dart.notNull(this[_buffer$].length) > 16) this[_flush]();
    }
    write(o) {
      if (dart.test(this[_buffer$].isNotEmpty)) this[_flush]();
      this[_chunkedSink$].add(dart.toString(o));
    }
    writeln(o = "") {
      this[_buffer$].writeln(o);
      if (dart.notNull(this[_buffer$].length) > 16) this[_flush]();
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[86], 128, 26, "objects");
      if (separator == null) dart.nullFailed(I[86], 128, 43, "separator");
      if (dart.test(this[_buffer$].isNotEmpty)) this[_flush]();
      let iterator = objects[$iterator];
      if (!dart.test(iterator.moveNext())) return;
      if (separator[$isEmpty]) {
        do {
          this[_chunkedSink$].add(dart.toString(iterator.current));
        } while (dart.test(iterator.moveNext()));
      } else {
        this[_chunkedSink$].add(dart.toString(iterator.current));
        while (dart.test(iterator.moveNext())) {
          this.write(separator);
          this[_chunkedSink$].add(dart.toString(iterator.current));
        }
      }
    }
    [_flush]() {
      let accumulated = dart.toString(this[_buffer$]);
      this[_buffer$].clear();
      this[_chunkedSink$].add(accumulated);
    }
  };
  (convert._StringConversionSinkAsStringSinkAdapter.new = function(_chunkedSink) {
    if (_chunkedSink == null) dart.nullFailed(I[86], 105, 49, "_chunkedSink");
    this[_chunkedSink$] = _chunkedSink;
    this[_buffer$] = new core.StringBuffer.new();
    ;
  }).prototype = convert._StringConversionSinkAsStringSinkAdapter.prototype;
  dart.addTypeTests(convert._StringConversionSinkAsStringSinkAdapter);
  dart.addTypeCaches(convert._StringConversionSinkAsStringSinkAdapter);
  convert._StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [convert.ClosableStringSink];
  dart.setMethodSignature(convert._StringConversionSinkAsStringSinkAdapter, () => ({
    __proto__: dart.getMethods(convert._StringConversionSinkAsStringSinkAdapter.__proto__),
    close: dart.fnType(dart.void, []),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    [_flush]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._StringConversionSinkAsStringSinkAdapter, I[31]);
  dart.setFieldSignature(convert._StringConversionSinkAsStringSinkAdapter, () => ({
    __proto__: dart.getFields(convert._StringConversionSinkAsStringSinkAdapter.__proto__),
    [_buffer$]: dart.finalFieldType(core.StringBuffer),
    [_chunkedSink$]: dart.finalFieldType(convert.StringConversionSink)
  }));
  dart.defineLazy(convert._StringConversionSinkAsStringSinkAdapter, {
    /*convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE*/get _MIN_STRING_SIZE() {
      return 16;
    }
  }, false);
  convert._StringCallbackSink = class _StringCallbackSink extends convert._StringSinkConversionSink$(core.StringBuffer) {
    close() {
      let t174;
      let accumulated = dart.toString(this[_stringSink$]);
      this[_stringSink$].clear();
      t174 = accumulated;
      this[_callback$](t174);
    }
    asUtf8Sink(allowMalformed) {
      if (allowMalformed == null) dart.nullFailed(I[86], 222, 38, "allowMalformed");
      return new convert._Utf8StringSinkAdapter.new(this, this[_stringSink$], allowMalformed);
    }
  };
  (convert._StringCallbackSink.new = function(_callback) {
    if (_callback == null) dart.nullFailed(I[86], 214, 28, "_callback");
    this[_callback$] = _callback;
    convert._StringCallbackSink.__proto__.new.call(this, new core.StringBuffer.new());
    ;
  }).prototype = convert._StringCallbackSink.prototype;
  dart.addTypeTests(convert._StringCallbackSink);
  dart.addTypeCaches(convert._StringCallbackSink);
  dart.setLibraryUri(convert._StringCallbackSink, I[31]);
  dart.setFieldSignature(convert._StringCallbackSink, () => ({
    __proto__: dart.getFields(convert._StringCallbackSink.__proto__),
    [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.String]))
  }));
  convert._StringAdapterSink = class _StringAdapterSink extends convert.StringConversionSinkBase {
    add(str) {
      core.String.as(str);
      if (str == null) dart.nullFailed(I[86], 237, 19, "str");
      this[_sink$0].add(str);
    }
    addSlice(str, start, end, isLast) {
      if (str == null) dart.nullFailed(I[86], 241, 24, "str");
      if (start == null) dart.nullFailed(I[86], 241, 33, "start");
      if (end == null) dart.nullFailed(I[86], 241, 44, "end");
      if (isLast == null) dart.nullFailed(I[86], 241, 54, "isLast");
      if (start === 0 && end === str.length) {
        this.add(str);
      } else {
        this.add(str[$substring](start, end));
      }
      if (dart.test(isLast)) this.close();
    }
    close() {
      this[_sink$0].close();
    }
  };
  (convert._StringAdapterSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[86], 235, 27, "_sink");
    this[_sink$0] = _sink;
    ;
  }).prototype = convert._StringAdapterSink.prototype;
  dart.addTypeTests(convert._StringAdapterSink);
  dart.addTypeCaches(convert._StringAdapterSink);
  dart.setMethodSignature(convert._StringAdapterSink, () => ({
    __proto__: dart.getMethods(convert._StringAdapterSink.__proto__),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(convert._StringAdapterSink, I[31]);
  dart.setFieldSignature(convert._StringAdapterSink, () => ({
    __proto__: dart.getFields(convert._StringAdapterSink.__proto__),
    [_sink$0]: dart.finalFieldType(core.Sink$(core.String))
  }));
  convert._Utf8StringSinkAdapter = class _Utf8StringSinkAdapter extends convert.ByteConversionSink {
    close() {
      this[_decoder].flush(this[_stringSink$]);
      this[_sink$0].close();
    }
    add(chunk) {
      T$0.ListOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[86], 271, 22, "chunk");
      this.addSlice(chunk, 0, chunk[$length], false);
    }
    addSlice(codeUnits, startIndex, endIndex, isLast) {
      if (codeUnits == null) dart.nullFailed(I[86], 276, 17, "codeUnits");
      if (startIndex == null) dart.nullFailed(I[86], 276, 32, "startIndex");
      if (endIndex == null) dart.nullFailed(I[86], 276, 48, "endIndex");
      if (isLast == null) dart.nullFailed(I[86], 276, 63, "isLast");
      this[_stringSink$].write(this[_decoder].convertChunked(codeUnits, startIndex, endIndex));
      if (dart.test(isLast)) this.close();
    }
  };
  (convert._Utf8StringSinkAdapter.new = function(_sink, _stringSink, allowMalformed) {
    if (_sink == null) dart.nullFailed(I[86], 263, 31, "_sink");
    if (_stringSink == null) dart.nullFailed(I[86], 263, 43, "_stringSink");
    if (allowMalformed == null) dart.nullFailed(I[86], 263, 61, "allowMalformed");
    this[_sink$0] = _sink;
    this[_stringSink$] = _stringSink;
    this[_decoder] = new convert._Utf8Decoder.new(allowMalformed);
    convert._Utf8StringSinkAdapter.__proto__.new.call(this);
    ;
  }).prototype = convert._Utf8StringSinkAdapter.prototype;
  dart.addTypeTests(convert._Utf8StringSinkAdapter);
  dart.addTypeCaches(convert._Utf8StringSinkAdapter);
  dart.setMethodSignature(convert._Utf8StringSinkAdapter, () => ({
    __proto__: dart.getMethods(convert._Utf8StringSinkAdapter.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Utf8StringSinkAdapter, I[31]);
  dart.setFieldSignature(convert._Utf8StringSinkAdapter, () => ({
    __proto__: dart.getFields(convert._Utf8StringSinkAdapter.__proto__),
    [_decoder]: dart.finalFieldType(convert._Utf8Decoder),
    [_sink$0]: dart.finalFieldType(core.Sink$(dart.nullable(core.Object))),
    [_stringSink$]: dart.finalFieldType(core.StringSink)
  }));
  convert._Utf8ConversionSink = class _Utf8ConversionSink extends convert.ByteConversionSink {
    close() {
      this[_decoder].flush(this[_buffer$]);
      if (dart.test(this[_buffer$].isNotEmpty)) {
        let accumulated = dart.toString(this[_buffer$]);
        this[_buffer$].clear();
        this[_chunkedSink$].addSlice(accumulated, 0, accumulated.length, true);
      } else {
        this[_chunkedSink$].close();
      }
    }
    add(chunk) {
      T$0.ListOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[86], 309, 22, "chunk");
      this.addSlice(chunk, 0, chunk[$length], false);
    }
    addSlice(chunk, startIndex, endIndex, isLast) {
      if (chunk == null) dart.nullFailed(I[86], 313, 27, "chunk");
      if (startIndex == null) dart.nullFailed(I[86], 313, 38, "startIndex");
      if (endIndex == null) dart.nullFailed(I[86], 313, 54, "endIndex");
      if (isLast == null) dart.nullFailed(I[86], 313, 69, "isLast");
      this[_buffer$].write(this[_decoder].convertChunked(chunk, startIndex, endIndex));
      if (dart.test(this[_buffer$].isNotEmpty)) {
        let accumulated = dart.toString(this[_buffer$]);
        this[_chunkedSink$].addSlice(accumulated, 0, accumulated.length, isLast);
        this[_buffer$].clear();
        return;
      }
      if (dart.test(isLast)) this.close();
    }
  };
  (convert._Utf8ConversionSink.new = function(sink, allowMalformed) {
    if (sink == null) dart.nullFailed(I[86], 290, 44, "sink");
    if (allowMalformed == null) dart.nullFailed(I[86], 290, 55, "allowMalformed");
    convert._Utf8ConversionSink.__.call(this, sink, new core.StringBuffer.new(), allowMalformed);
  }).prototype = convert._Utf8ConversionSink.prototype;
  (convert._Utf8ConversionSink.__ = function(_chunkedSink, stringBuffer, allowMalformed) {
    if (_chunkedSink == null) dart.nullFailed(I[86], 294, 12, "_chunkedSink");
    if (stringBuffer == null) dart.nullFailed(I[86], 294, 39, "stringBuffer");
    if (allowMalformed == null) dart.nullFailed(I[86], 294, 58, "allowMalformed");
    this[_chunkedSink$] = _chunkedSink;
    this[_decoder] = new convert._Utf8Decoder.new(allowMalformed);
    this[_buffer$] = stringBuffer;
    convert._Utf8ConversionSink.__proto__.new.call(this);
    ;
  }).prototype = convert._Utf8ConversionSink.prototype;
  dart.addTypeTests(convert._Utf8ConversionSink);
  dart.addTypeCaches(convert._Utf8ConversionSink);
  dart.setMethodSignature(convert._Utf8ConversionSink, () => ({
    __proto__: dart.getMethods(convert._Utf8ConversionSink.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Utf8ConversionSink, I[31]);
  dart.setFieldSignature(convert._Utf8ConversionSink, () => ({
    __proto__: dart.getFields(convert._Utf8ConversionSink.__proto__),
    [_decoder]: dart.finalFieldType(convert._Utf8Decoder),
    [_chunkedSink$]: dart.finalFieldType(convert.StringConversionSink),
    [_buffer$]: dart.finalFieldType(core.StringBuffer)
  }));
  var _allowMalformed = dart.privateName(convert, "Utf8Codec._allowMalformed");
  var _allowMalformed$ = dart.privateName(convert, "_allowMalformed");
  var Utf8Decoder__allowMalformed = dart.privateName(convert, "Utf8Decoder._allowMalformed");
  convert.Utf8Codec = class Utf8Codec extends convert.Encoding {
    get [_allowMalformed$]() {
      return this[_allowMalformed];
    }
    set [_allowMalformed$](value) {
      super[_allowMalformed$] = value;
    }
    get name() {
      return "utf-8";
    }
    decode(codeUnits, opts) {
      let t174;
      T$0.ListOfint().as(codeUnits);
      if (codeUnits == null) dart.nullFailed(I[98], 58, 27, "codeUnits");
      let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : null;
      let decoder = dart.test((t174 = allowMalformed, t174 == null ? this[_allowMalformed$] : t174)) ? C[99] || CT.C99 : C[100] || CT.C100;
      return decoder.convert(codeUnits);
    }
    get encoder() {
      return C[101] || CT.C101;
    }
    get decoder() {
      return dart.test(this[_allowMalformed$]) ? C[99] || CT.C99 : C[100] || CT.C100;
    }
  };
  (convert.Utf8Codec.new = function(opts) {
    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
    if (allowMalformed == null) dart.nullFailed(I[98], 40, 25, "allowMalformed");
    this[_allowMalformed] = allowMalformed;
    convert.Utf8Codec.__proto__.new.call(this);
    ;
  }).prototype = convert.Utf8Codec.prototype;
  dart.addTypeTests(convert.Utf8Codec);
  dart.addTypeCaches(convert.Utf8Codec);
  dart.setMethodSignature(convert.Utf8Codec, () => ({
    __proto__: dart.getMethods(convert.Utf8Codec.__proto__),
    decode: dart.fnType(core.String, [dart.nullable(core.Object)], {allowMalformed: dart.nullable(core.bool)}, {})
  }));
  dart.setGetterSignature(convert.Utf8Codec, () => ({
    __proto__: dart.getGetters(convert.Utf8Codec.__proto__),
    name: core.String,
    encoder: convert.Utf8Encoder,
    decoder: convert.Utf8Decoder
  }));
  dart.setLibraryUri(convert.Utf8Codec, I[31]);
  dart.setFieldSignature(convert.Utf8Codec, () => ({
    __proto__: dart.getFields(convert.Utf8Codec.__proto__),
    [_allowMalformed$]: dart.finalFieldType(core.bool)
  }));
  var _fillBuffer = dart.privateName(convert, "_fillBuffer");
  var _writeReplacementCharacter = dart.privateName(convert, "_writeReplacementCharacter");
  convert.Utf8Encoder = class Utf8Encoder extends convert.Converter$(core.String, core.List$(core.int)) {
    convert(string, start = 0, end = null) {
      core.String.as(string);
      if (string == null) dart.nullFailed(I[98], 88, 28, "string");
      if (start == null) dart.nullFailed(I[98], 88, 41, "start");
      let stringLength = string.length;
      end = core.RangeError.checkValidRange(start, end, stringLength);
      if (end == null) {
        dart.throw(new core.RangeError.new("Invalid range"));
      }
      let length = dart.notNull(end) - dart.notNull(start);
      if (length === 0) return _native_typed_data.NativeUint8List.new(0);
      let encoder = new convert._Utf8Encoder.withBufferSize(length * 3);
      let endPosition = encoder[_fillBuffer](string, start, end);
      if (!(dart.notNull(endPosition) >= dart.notNull(end) - 1)) dart.assertFailed(null, I[98], 101, 12, "endPosition >= end - 1");
      if (endPosition != end) {
        let lastCodeUnit = string[$codeUnitAt](dart.notNull(end) - 1);
        if (!dart.test(convert._isLeadSurrogate(lastCodeUnit))) dart.assertFailed(null, I[98], 107, 14, "_isLeadSurrogate(lastCodeUnit)");
        encoder[_writeReplacementCharacter]();
      }
      return encoder[_buffer$][$sublist](0, encoder[_bufferIndex]);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[98], 118, 63, "sink");
      return new convert._Utf8EncoderSink.new(convert.ByteConversionSink.is(sink) ? sink : new convert._ByteAdapterSink.new(sink));
    }
    bind(stream) {
      T$0.StreamOfString().as(stream);
      if (stream == null) dart.nullFailed(I[98], 124, 41, "stream");
      return super.bind(stream);
    }
  };
  (convert.Utf8Encoder.new = function() {
    convert.Utf8Encoder.__proto__.new.call(this);
    ;
  }).prototype = convert.Utf8Encoder.prototype;
  dart.addTypeTests(convert.Utf8Encoder);
  dart.addTypeCaches(convert.Utf8Encoder);
  dart.setMethodSignature(convert.Utf8Encoder, () => ({
    __proto__: dart.getMethods(convert.Utf8Encoder.__proto__),
    convert: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)], [core.int, dart.nullable(core.int)]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.Utf8Encoder, I[31]);
  var _writeSurrogate = dart.privateName(convert, "_writeSurrogate");
  convert._Utf8Encoder = class _Utf8Encoder extends core.Object {
    static _createBuffer(size) {
      if (size == null) dart.nullFailed(I[98], 142, 38, "size");
      return _native_typed_data.NativeUint8List.new(size);
    }
    [_writeReplacementCharacter]() {
      let t174, t174$, t174$0;
      this[_buffer$][$_set]((t174 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174) + 1, t174), 239);
      this[_buffer$][$_set]((t174$ = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174$) + 1, t174$), 191);
      this[_buffer$][$_set]((t174$0 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174$0) + 1, t174$0), 189);
    }
    [_writeSurrogate](leadingSurrogate, nextCodeUnit) {
      let t174, t174$, t174$0, t174$1;
      if (leadingSurrogate == null) dart.nullFailed(I[98], 160, 28, "leadingSurrogate");
      if (nextCodeUnit == null) dart.nullFailed(I[98], 160, 50, "nextCodeUnit");
      if (dart.test(convert._isTailSurrogate(nextCodeUnit))) {
        let rune = convert._combineSurrogatePair(leadingSurrogate, nextCodeUnit);
        if (!(dart.notNull(rune) > 65535)) dart.assertFailed(null, I[98], 165, 14, "rune > _THREE_BYTE_LIMIT");
        if (!(dart.notNull(rune) <= 1114111)) dart.assertFailed(null, I[98], 166, 14, "rune <= _FOUR_BYTE_LIMIT");
        this[_buffer$][$_set]((t174 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174) + 1, t174), (240 | rune[$rightShift](18)) >>> 0);
        this[_buffer$][$_set]((t174$ = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174$) + 1, t174$), 128 | dart.notNull(rune) >> 12 & 63);
        this[_buffer$][$_set]((t174$0 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174$0) + 1, t174$0), 128 | dart.notNull(rune) >> 6 & 63);
        this[_buffer$][$_set]((t174$1 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t174$1) + 1, t174$1), 128 | dart.notNull(rune) & 63);
        return true;
      } else {
        this[_writeReplacementCharacter]();
        return false;
      }
    }
    [_fillBuffer](str, start, end) {
      let t175, t175$, t175$0, t175$1, t175$2, t175$3;
      if (str == null) dart.nullFailed(I[98], 186, 26, "str");
      if (start == null) dart.nullFailed(I[98], 186, 35, "start");
      if (end == null) dart.nullFailed(I[98], 186, 46, "end");
      if (start != end && dart.test(convert._isLeadSurrogate(str[$codeUnitAt](dart.notNull(end) - 1)))) {
        end = dart.notNull(end) - 1;
      }
      let stringIndex = null;
      for (let t174 = stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); stringIndex = dart.notNull(stringIndex) + 1) {
        let codeUnit = str[$codeUnitAt](stringIndex);
        if (codeUnit <= 127) {
          if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer$][$length])) break;
          this[_buffer$][$_set]((t175 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175) + 1, t175), codeUnit);
        } else if (dart.test(convert._isLeadSurrogate(codeUnit))) {
          if (dart.notNull(this[_bufferIndex]) + 4 > dart.notNull(this[_buffer$][$length])) break;
          let nextCodeUnit = str[$codeUnitAt](dart.notNull(stringIndex) + 1);
          let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit);
          if (dart.test(wasCombined)) stringIndex = dart.notNull(stringIndex) + 1;
        } else if (dart.test(convert._isTailSurrogate(codeUnit))) {
          if (dart.notNull(this[_bufferIndex]) + 3 > dart.notNull(this[_buffer$][$length])) break;
          this[_writeReplacementCharacter]();
        } else {
          let rune = codeUnit;
          if (rune <= 2047) {
            if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffer$][$length])) break;
            this[_buffer$][$_set]((t175$ = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175$) + 1, t175$), (192 | rune[$rightShift](6)) >>> 0);
            this[_buffer$][$_set]((t175$0 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175$0) + 1, t175$0), 128 | rune & 63);
          } else {
            if (!(rune <= 65535)) dart.assertFailed(null, I[98], 217, 18, "rune <= _THREE_BYTE_LIMIT");
            if (dart.notNull(this[_bufferIndex]) + 2 >= dart.notNull(this[_buffer$][$length])) break;
            this[_buffer$][$_set]((t175$1 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175$1) + 1, t175$1), (224 | rune[$rightShift](12)) >>> 0);
            this[_buffer$][$_set]((t175$2 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175$2) + 1, t175$2), 128 | rune >> 6 & 63);
            this[_buffer$][$_set]((t175$3 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t175$3) + 1, t175$3), 128 | rune & 63);
          }
        }
      }
      return stringIndex;
    }
  };
  (convert._Utf8Encoder.new = function() {
    convert._Utf8Encoder.withBufferSize.call(this, 1024);
  }).prototype = convert._Utf8Encoder.prototype;
  (convert._Utf8Encoder.withBufferSize = function(bufferSize) {
    if (bufferSize == null) dart.nullFailed(I[98], 138, 35, "bufferSize");
    this[_carry] = 0;
    this[_bufferIndex] = 0;
    this[_buffer$] = convert._Utf8Encoder._createBuffer(bufferSize);
    ;
  }).prototype = convert._Utf8Encoder.prototype;
  dart.addTypeTests(convert._Utf8Encoder);
  dart.addTypeCaches(convert._Utf8Encoder);
  dart.setMethodSignature(convert._Utf8Encoder, () => ({
    __proto__: dart.getMethods(convert._Utf8Encoder.__proto__),
    [_writeReplacementCharacter]: dart.fnType(dart.void, []),
    [_writeSurrogate]: dart.fnType(core.bool, [core.int, core.int]),
    [_fillBuffer]: dart.fnType(core.int, [core.String, core.int, core.int])
  }));
  dart.setLibraryUri(convert._Utf8Encoder, I[31]);
  dart.setFieldSignature(convert._Utf8Encoder, () => ({
    __proto__: dart.getFields(convert._Utf8Encoder.__proto__),
    [_carry]: dart.fieldType(core.int),
    [_bufferIndex]: dart.fieldType(core.int),
    [_buffer$]: dart.finalFieldType(typed_data.Uint8List)
  }));
  dart.defineLazy(convert._Utf8Encoder, {
    /*convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE*/get _DEFAULT_BYTE_BUFFER_SIZE() {
      return 1024;
    }
  }, false);
  const _Utf8Encoder_StringConversionSinkMixin$36 = class _Utf8Encoder_StringConversionSinkMixin extends convert._Utf8Encoder {};
  (_Utf8Encoder_StringConversionSinkMixin$36.new = function() {
    _Utf8Encoder_StringConversionSinkMixin$36.__proto__.new.call(this);
  }).prototype = _Utf8Encoder_StringConversionSinkMixin$36.prototype;
  (_Utf8Encoder_StringConversionSinkMixin$36.withBufferSize = function(bufferSize) {
    _Utf8Encoder_StringConversionSinkMixin$36.__proto__.withBufferSize.call(this, bufferSize);
  }).prototype = _Utf8Encoder_StringConversionSinkMixin$36.prototype;
  dart.applyMixin(_Utf8Encoder_StringConversionSinkMixin$36, convert.StringConversionSinkMixin);
  convert._Utf8EncoderSink = class _Utf8EncoderSink extends _Utf8Encoder_StringConversionSinkMixin$36 {
    close() {
      if (this[_carry] !== 0) {
        this.addSlice("", 0, 0, true);
        return;
      }
      this[_sink$0].close();
    }
    addSlice(str, start, end, isLast) {
      if (str == null) dart.nullFailed(I[98], 245, 24, "str");
      if (start == null) dart.nullFailed(I[98], 245, 33, "start");
      if (end == null) dart.nullFailed(I[98], 245, 44, "end");
      if (isLast == null) dart.nullFailed(I[98], 245, 54, "isLast");
      this[_bufferIndex] = 0;
      if (start == end && !dart.test(isLast)) {
        return;
      }
      if (this[_carry] !== 0) {
        let nextCodeUnit = 0;
        if (start != end) {
          nextCodeUnit = str[$codeUnitAt](start);
        } else {
          if (!dart.test(isLast)) dart.assertFailed(null, I[98], 257, 16, "isLast");
        }
        let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit);
        if (!(!dart.test(wasCombined) || start != end)) dart.assertFailed(null, I[98], 261, 14, "!wasCombined || start != end");
        if (dart.test(wasCombined)) start = dart.notNull(start) + 1;
        this[_carry] = 0;
      }
      do {
        start = this[_fillBuffer](str, start, end);
        let isLastSlice = dart.test(isLast) && start == end;
        if (start === dart.notNull(end) - 1 && dart.test(convert._isLeadSurrogate(str[$codeUnitAt](start)))) {
          if (dart.test(isLast) && dart.notNull(this[_bufferIndex]) < dart.notNull(this[_buffer$][$length]) - 3) {
            this[_writeReplacementCharacter]();
          } else {
            this[_carry] = str[$codeUnitAt](start);
          }
          start = dart.notNull(start) + 1;
        }
        this[_sink$0].addSlice(this[_buffer$], 0, this[_bufferIndex], isLastSlice);
        this[_bufferIndex] = 0;
      } while (dart.notNull(start) < dart.notNull(end));
      if (dart.test(isLast)) this.close();
    }
  };
  (convert._Utf8EncoderSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[98], 234, 25, "_sink");
    this[_sink$0] = _sink;
    convert._Utf8EncoderSink.__proto__.new.call(this);
    ;
  }).prototype = convert._Utf8EncoderSink.prototype;
  dart.addTypeTests(convert._Utf8EncoderSink);
  dart.addTypeCaches(convert._Utf8EncoderSink);
  dart.setMethodSignature(convert._Utf8EncoderSink, () => ({
    __proto__: dart.getMethods(convert._Utf8EncoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Utf8EncoderSink, I[31]);
  dart.setFieldSignature(convert._Utf8EncoderSink, () => ({
    __proto__: dart.getFields(convert._Utf8EncoderSink.__proto__),
    [_sink$0]: dart.finalFieldType(convert.ByteConversionSink)
  }));
  const _allowMalformed$0 = Utf8Decoder__allowMalformed;
  convert.Utf8Decoder = class Utf8Decoder extends convert.Converter$(core.List$(core.int), core.String) {
    get [_allowMalformed$]() {
      return this[_allowMalformed$0];
    }
    set [_allowMalformed$](value) {
      super[_allowMalformed$] = value;
    }
    static _convertInterceptedUint8List(allowMalformed, codeUnits, start, end) {
      if (allowMalformed == null) dart.nullFailed(I[85], 433, 12, "allowMalformed");
      if (codeUnits == null) dart.nullFailed(I[85], 433, 44, "codeUnits");
      if (start == null) dart.nullFailed(I[85], 433, 59, "start");
      if (end == null) dart.nullFailed(I[85], 433, 70, "end");
      let decoder = dart.test(allowMalformed) ? convert.Utf8Decoder._decoderNonfatal : convert.Utf8Decoder._decoder;
      if (decoder == null) return null;
      if (0 === start && end == codeUnits[$length]) {
        return convert.Utf8Decoder._useTextDecoder(decoder, codeUnits);
      }
      let length = codeUnits[$length];
      end = core.RangeError.checkValidRange(start, end, length);
      return convert.Utf8Decoder._useTextDecoder(decoder, codeUnits.subarray(start, end));
    }
    static _useTextDecoder(decoder, codeUnits) {
      if (codeUnits == null) dart.nullFailed(I[85], 447, 59, "codeUnits");
      try {
        return decoder.decode(codeUnits);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return null;
    }
    convert(codeUnits, start = 0, end = null) {
      T$0.ListOfint().as(codeUnits);
      if (codeUnits == null) dart.nullFailed(I[98], 314, 28, "codeUnits");
      if (start == null) dart.nullFailed(I[98], 314, 44, "start");
      let result = convert.Utf8Decoder._convertIntercepted(this[_allowMalformed$], codeUnits, start, end);
      if (result != null) {
        return result;
      }
      return new convert._Utf8Decoder.new(this[_allowMalformed$]).convertSingle(codeUnits, start, end);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[98], 329, 58, "sink");
      let stringSink = null;
      if (convert.StringConversionSink.is(sink)) {
        stringSink = sink;
      } else {
        stringSink = new convert._StringAdapterSink.new(sink);
      }
      return stringSink.asUtf8Sink(this[_allowMalformed$]);
    }
    bind(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[98], 340, 41, "stream");
      return super.bind(stream);
    }
    fuse(T, next) {
      if (next == null) dart.nullFailed(I[85], 398, 56, "next");
      return super.fuse(T, next);
    }
    static _convertIntercepted(allowMalformed, codeUnits, start, end) {
      if (allowMalformed == null) dart.nullFailed(I[85], 405, 12, "allowMalformed");
      if (codeUnits == null) dart.nullFailed(I[85], 405, 38, "codeUnits");
      if (start == null) dart.nullFailed(I[85], 405, 53, "start");
      if (codeUnits instanceof Uint8Array) {
        let casted = codeUnits;
        end == null ? end = casted[$length] : null;
        if (dart.notNull(end) - dart.notNull(start) < 15) {
          return null;
        }
        let result = convert.Utf8Decoder._convertInterceptedUint8List(allowMalformed, casted, start, end);
        if (result != null && dart.test(allowMalformed)) {
          if (result.indexOf("�") >= 0) {
            return null;
          }
        }
        return result;
      }
      return null;
    }
  };
  (convert.Utf8Decoder.new = function(opts) {
    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
    if (allowMalformed == null) dart.nullFailed(I[98], 303, 27, "allowMalformed");
    this[_allowMalformed$0] = allowMalformed;
    convert.Utf8Decoder.__proto__.new.call(this);
    ;
  }).prototype = convert.Utf8Decoder.prototype;
  dart.addTypeTests(convert.Utf8Decoder);
  dart.addTypeCaches(convert.Utf8Decoder);
  dart.setMethodSignature(convert.Utf8Decoder, () => ({
    __proto__: dart.getMethods(convert.Utf8Decoder.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)], [core.int, dart.nullable(core.int)]),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)]),
    fuse: dart.gFnType(T => [convert.Converter$(core.List$(core.int), T), [convert.Converter$(core.String, T)]], T => [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(convert.Utf8Decoder, I[31]);
  dart.setFieldSignature(convert.Utf8Decoder, () => ({
    __proto__: dart.getFields(convert.Utf8Decoder.__proto__),
    [_allowMalformed$]: dart.finalFieldType(core.bool)
  }));
  dart.defineLazy(convert.Utf8Decoder, {
    /*convert.Utf8Decoder._shortInputThreshold*/get _shortInputThreshold() {
      return 15;
    },
    /*convert.Utf8Decoder._decoder*/get _decoder() {
      return dart.fn(() => {
        try {
          return new TextDecoder("utf-8", {fatal: true});
        } catch (e$) {
          let e = dart.getThrown(e$);
          if (core.Object.is(e)) {
          } else
            throw e$;
        }
        return null;
      }, T$0.VoidToObjectN())();
    },
    /*convert.Utf8Decoder._decoderNonfatal*/get _decoderNonfatal() {
      return dart.fn(() => {
        try {
          return new TextDecoder("utf-8", {fatal: false});
        } catch (e$) {
          let e = dart.getThrown(e$);
          if (core.Object.is(e)) {
          } else
            throw e$;
        }
        return null;
      }, T$0.VoidToObjectN())();
    }
  }, false);
  var _charOrIndex = dart.privateName(convert, "_charOrIndex");
  var _convertRecursive = dart.privateName(convert, "_convertRecursive");
  convert._Utf8Decoder = class _Utf8Decoder extends core.Object {
    static isErrorState(state) {
      if (state == null) dart.nullFailed(I[98], 499, 32, "state");
      return (dart.notNull(state) & 1) !== 0;
    }
    static errorDescription(state) {
      if (state == null) dart.nullFailed(I[98], 501, 38, "state");
      switch (state) {
        case 65:
        {
          return "Missing extension byte";
        }
        case 67:
        {
          return "Unexpected extension byte";
        }
        case 69:
        {
          return "Invalid UTF-8 byte";
        }
        case 71:
        {
          return "Overlong encoding";
        }
        case 73:
        {
          return "Out of unicode range";
        }
        case 75:
        {
          return "Encoded surrogate";
        }
        case 77:
        {
          return "Unfinished UTF-8 octet sequence";
        }
        default:
        {
          return "";
        }
      }
    }
    convertSingle(codeUnits, start, maybeEnd) {
      if (codeUnits == null) dart.nullFailed(I[85], 479, 34, "codeUnits");
      if (start == null) dart.nullFailed(I[85], 479, 49, "start");
      return this.convertGeneral(codeUnits, start, maybeEnd, true);
    }
    convertChunked(codeUnits, start, maybeEnd) {
      if (codeUnits == null) dart.nullFailed(I[85], 484, 35, "codeUnits");
      if (start == null) dart.nullFailed(I[85], 484, 50, "start");
      return this.convertGeneral(codeUnits, start, maybeEnd, false);
    }
    convertGeneral(codeUnits, start, maybeEnd, single) {
      if (codeUnits == null) dart.nullFailed(I[98], 529, 17, "codeUnits");
      if (start == null) dart.nullFailed(I[98], 529, 32, "start");
      if (single == null) dart.nullFailed(I[98], 529, 59, "single");
      let end = core.RangeError.checkValidRange(start, maybeEnd, codeUnits[$length]);
      if (start == end) return "";
      let bytes = null;
      let errorOffset = null;
      if (typed_data.Uint8List.is(codeUnits)) {
        bytes = codeUnits;
        errorOffset = 0;
      } else {
        bytes = convert._Utf8Decoder._makeUint8List(codeUnits, start, end);
        errorOffset = start;
        end = dart.notNull(end) - dart.notNull(start);
        start = 0;
      }
      let result = this[_convertRecursive](bytes, start, end, single);
      if (dart.test(convert._Utf8Decoder.isErrorState(this[_state$0]))) {
        let message = convert._Utf8Decoder.errorDescription(this[_state$0]);
        this[_state$0] = 0;
        dart.throw(new core.FormatException.new(message, codeUnits, dart.notNull(errorOffset) + dart.notNull(this[_charOrIndex])));
      }
      return result;
    }
    [_convertRecursive](bytes, start, end, single) {
      if (bytes == null) dart.nullFailed(I[98], 556, 38, "bytes");
      if (start == null) dart.nullFailed(I[98], 556, 49, "start");
      if (end == null) dart.nullFailed(I[98], 556, 60, "end");
      if (single == null) dart.nullFailed(I[98], 556, 70, "single");
      if (dart.notNull(end) - dart.notNull(start) > 1000) {
        let mid = ((dart.notNull(start) + dart.notNull(end)) / 2)[$truncate]();
        let s1 = this[_convertRecursive](bytes, start, mid, false);
        if (dart.test(convert._Utf8Decoder.isErrorState(this[_state$0]))) return s1;
        let s2 = this[_convertRecursive](bytes, mid, end, single);
        return dart.notNull(s1) + dart.notNull(s2);
      }
      return this.decodeGeneral(bytes, start, end, single);
    }
    flush(sink) {
      if (sink == null) dart.nullFailed(I[98], 573, 25, "sink");
      let state = this[_state$0];
      this[_state$0] = 0;
      if (dart.notNull(state) <= 32) {
        return;
      }
      if (dart.test(this.allowMalformed)) {
        sink.writeCharCode(65533);
      } else {
        dart.throw(new core.FormatException.new(convert._Utf8Decoder.errorDescription(77), null, null));
      }
    }
    decodeGeneral(bytes, start, end, single) {
      let t178, t178$, t178$0, t178$1;
      if (bytes == null) dart.nullFailed(I[98], 587, 34, "bytes");
      if (start == null) dart.nullFailed(I[98], 587, 45, "start");
      if (end == null) dart.nullFailed(I[98], 587, 56, "end");
      if (single == null) dart.nullFailed(I[98], 587, 66, "single");
      let typeTable = convert._Utf8Decoder.typeTable;
      let transitionTable = convert._Utf8Decoder.transitionTable;
      let state = this[_state$0];
      let char = this[_charOrIndex];
      let buffer = new core.StringBuffer.new();
      let i = start;
      let byte = bytes[$_get]((t178 = i, i = dart.notNull(t178) + 1, t178));
      L1:
        while (true) {
          while (true) {
            let type = (typeTable[$codeUnitAt](byte) & 31) >>> 0;
            char = dart.notNull(state) <= 32 ? (dart.notNull(byte) & (61694)[$rightShift](type)) >>> 0 : (dart.notNull(byte) & 63 | dart.notNull(char) << 6 >>> 0) >>> 0;
            state = transitionTable[$codeUnitAt](dart.notNull(state) + type);
            if (state === 0) {
              buffer.writeCharCode(char);
              if (i == end) break L1;
              break;
            } else if (dart.test(convert._Utf8Decoder.isErrorState(state))) {
              if (dart.test(this.allowMalformed)) {
                switch (state) {
                  case 69:
                  case 67:
                  {
                    buffer.writeCharCode(65533);
                    break;
                  }
                  case 65:
                  {
                    buffer.writeCharCode(65533);
                    i = dart.notNull(i) - 1;
                    break;
                  }
                  default:
                  {
                    buffer.writeCharCode(65533);
                    buffer.writeCharCode(65533);
                    break;
                  }
                }
                state = 0;
              } else {
                this[_state$0] = state;
                this[_charOrIndex] = dart.notNull(i) - 1;
                return "";
              }
            }
            if (i == end) break L1;
            byte = bytes[$_get]((t178$ = i, i = dart.notNull(t178$) + 1, t178$));
          }
          let markStart = i;
          byte = bytes[$_get]((t178$0 = i, i = dart.notNull(t178$0) + 1, t178$0));
          if (dart.notNull(byte) < 128) {
            let markEnd = end;
            while (dart.notNull(i) < dart.notNull(end)) {
              byte = bytes[$_get]((t178$1 = i, i = dart.notNull(t178$1) + 1, t178$1));
              if (dart.notNull(byte) >= 128) {
                markEnd = dart.notNull(i) - 1;
                break;
              }
            }
            if (!(dart.notNull(markStart) < dart.notNull(markEnd))) dart.assertFailed(null, I[98], 652, 16, "markStart < markEnd");
            if (dart.notNull(markEnd) - dart.notNull(markStart) < 20) {
              for (let m = markStart; dart.notNull(m) < dart.notNull(markEnd); m = dart.notNull(m) + 1) {
                buffer.writeCharCode(bytes[$_get](m));
              }
            } else {
              buffer.write(core.String.fromCharCodes(bytes, markStart, markEnd));
            }
            if (markEnd == end) break;
          }
        }
      if (dart.test(single) && dart.notNull(state) > 32) {
        if (dart.test(this.allowMalformed)) {
          buffer.writeCharCode(65533);
        } else {
          this[_state$0] = 77;
          this[_charOrIndex] = end;
          return "";
        }
      }
      this[_state$0] = state;
      this[_charOrIndex] = char;
      return buffer.toString();
    }
    static _makeUint8List(codeUnits, start, end) {
      if (codeUnits == null) dart.nullFailed(I[98], 679, 45, "codeUnits");
      if (start == null) dart.nullFailed(I[98], 679, 60, "start");
      if (end == null) dart.nullFailed(I[98], 679, 71, "end");
      let length = dart.notNull(end) - dart.notNull(start);
      let bytes = _native_typed_data.NativeUint8List.new(length);
      for (let i = 0; i < length; i = i + 1) {
        let b = codeUnits[$_get](dart.notNull(start) + i);
        if ((dart.notNull(b) & ~255 >>> 0) !== 0) {
          b = 255;
        }
        bytes[$_set](i, b);
      }
      return bytes;
    }
  };
  (convert._Utf8Decoder.new = function(allowMalformed) {
    if (allowMalformed == null) dart.nullFailed(I[85], 476, 21, "allowMalformed");
    this[_charOrIndex] = 0;
    this.allowMalformed = allowMalformed;
    this[_state$0] = 16;
    ;
  }).prototype = convert._Utf8Decoder.prototype;
  dart.addTypeTests(convert._Utf8Decoder);
  dart.addTypeCaches(convert._Utf8Decoder);
  dart.setMethodSignature(convert._Utf8Decoder, () => ({
    __proto__: dart.getMethods(convert._Utf8Decoder.__proto__),
    convertSingle: dart.fnType(core.String, [core.List$(core.int), core.int, dart.nullable(core.int)]),
    convertChunked: dart.fnType(core.String, [core.List$(core.int), core.int, dart.nullable(core.int)]),
    convertGeneral: dart.fnType(core.String, [core.List$(core.int), core.int, dart.nullable(core.int), core.bool]),
    [_convertRecursive]: dart.fnType(core.String, [typed_data.Uint8List, core.int, core.int, core.bool]),
    flush: dart.fnType(dart.void, [core.StringSink]),
    decodeGeneral: dart.fnType(core.String, [typed_data.Uint8List, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(convert._Utf8Decoder, I[31]);
  dart.setFieldSignature(convert._Utf8Decoder, () => ({
    __proto__: dart.getFields(convert._Utf8Decoder.__proto__),
    allowMalformed: dart.finalFieldType(core.bool),
    [_state$0]: dart.fieldType(core.int),
    [_charOrIndex]: dart.fieldType(core.int)
  }));
  dart.defineLazy(convert._Utf8Decoder, {
    /*convert._Utf8Decoder.typeMask*/get typeMask() {
      return 31;
    },
    /*convert._Utf8Decoder.shiftedByteMask*/get shiftedByteMask() {
      return 61694;
    },
    /*convert._Utf8Decoder.typeTable*/get typeTable() {
      return "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE";
    },
    /*convert._Utf8Decoder.IA*/get IA() {
      return 0;
    },
    /*convert._Utf8Decoder.BB*/get BB() {
      return 16;
    },
    /*convert._Utf8Decoder.AB*/get AB() {
      return 32;
    },
    /*convert._Utf8Decoder.X1*/get X1() {
      return 48;
    },
    /*convert._Utf8Decoder.X2*/get X2() {
      return 58;
    },
    /*convert._Utf8Decoder.X3*/get X3() {
      return 68;
    },
    /*convert._Utf8Decoder.TO*/get TO() {
      return 78;
    },
    /*convert._Utf8Decoder.TS*/get TS() {
      return 88;
    },
    /*convert._Utf8Decoder.QO*/get QO() {
      return 98;
    },
    /*convert._Utf8Decoder.QR*/get QR() {
      return 108;
    },
    /*convert._Utf8Decoder.B1*/get B1() {
      return 118;
    },
    /*convert._Utf8Decoder.B2*/get B2() {
      return 128;
    },
    /*convert._Utf8Decoder.E1*/get E1() {
      return 65;
    },
    /*convert._Utf8Decoder.E2*/get E2() {
      return 67;
    },
    /*convert._Utf8Decoder.E3*/get E3() {
      return 69;
    },
    /*convert._Utf8Decoder.E4*/get E4() {
      return 71;
    },
    /*convert._Utf8Decoder.E5*/get E5() {
      return 73;
    },
    /*convert._Utf8Decoder.E6*/get E6() {
      return 75;
    },
    /*convert._Utf8Decoder.E7*/get E7() {
      return 77;
    },
    /*convert._Utf8Decoder._IA*/get _IA() {
      return "";
    },
    /*convert._Utf8Decoder._BB*/get _BB() {
      return "";
    },
    /*convert._Utf8Decoder._AB*/get _AB() {
      return " ";
    },
    /*convert._Utf8Decoder._X1*/get _X1() {
      return "0";
    },
    /*convert._Utf8Decoder._X2*/get _X2() {
      return ":";
    },
    /*convert._Utf8Decoder._X3*/get _X3() {
      return "D";
    },
    /*convert._Utf8Decoder._TO*/get _TO() {
      return "N";
    },
    /*convert._Utf8Decoder._TS*/get _TS() {
      return "X";
    },
    /*convert._Utf8Decoder._QO*/get _QO() {
      return "b";
    },
    /*convert._Utf8Decoder._QR*/get _QR() {
      return "l";
    },
    /*convert._Utf8Decoder._B1*/get _B1() {
      return "v";
    },
    /*convert._Utf8Decoder._B2*/get _B2() {
      return "";
    },
    /*convert._Utf8Decoder._E1*/get _E1() {
      return "A";
    },
    /*convert._Utf8Decoder._E2*/get _E2() {
      return "C";
    },
    /*convert._Utf8Decoder._E3*/get _E3() {
      return "E";
    },
    /*convert._Utf8Decoder._E4*/get _E4() {
      return "G";
    },
    /*convert._Utf8Decoder._E5*/get _E5() {
      return "I";
    },
    /*convert._Utf8Decoder._E6*/get _E6() {
      return "K";
    },
    /*convert._Utf8Decoder._E7*/get _E7() {
      return "M";
    },
    /*convert._Utf8Decoder.transitionTable*/get transitionTable() {
      return " 0:XECCCCCN:lDb 0:XECCCCCNvlDb 0:XECCCCCN:lDb AAAAAAAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA0000AAAAA AAAAA";
    },
    /*convert._Utf8Decoder.initial*/get initial() {
      return 0;
    },
    /*convert._Utf8Decoder.accept*/get accept() {
      return 0;
    },
    /*convert._Utf8Decoder.beforeBom*/get beforeBom() {
      return 16;
    },
    /*convert._Utf8Decoder.afterBom*/get afterBom() {
      return 32;
    },
    /*convert._Utf8Decoder.errorMissingExtension*/get errorMissingExtension() {
      return 65;
    },
    /*convert._Utf8Decoder.errorUnexpectedExtension*/get errorUnexpectedExtension() {
      return 67;
    },
    /*convert._Utf8Decoder.errorInvalid*/get errorInvalid() {
      return 69;
    },
    /*convert._Utf8Decoder.errorOverlong*/get errorOverlong() {
      return 71;
    },
    /*convert._Utf8Decoder.errorOutOfRange*/get errorOutOfRange() {
      return 73;
    },
    /*convert._Utf8Decoder.errorSurrogate*/get errorSurrogate() {
      return 75;
    },
    /*convert._Utf8Decoder.errorUnfinished*/get errorUnfinished() {
      return 77;
    }
  }, false);
  convert._convertJsonToDart = function _convertJsonToDart(json, reviver) {
    if (reviver == null) dart.nullFailed(I[85], 54, 26, "reviver");
    function walk(e) {
      if (e == null || typeof e != "object") {
        return e;
      }
      if (Object.getPrototypeOf(e) === Array.prototype) {
        for (let i = 0; i < e.length; i = i + 1) {
          let item = e[i];
          e[i] = reviver(i, walk(item));
        }
        return e;
      }
      let map = new convert._JsonMap.new(e);
      let processed = map[_processed];
      let keys = map[_computeKeys]();
      for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
        let key = keys[$_get](i);
        let revived = reviver(key, walk(e[key]));
        processed[key] = revived;
      }
      map[_original$] = processed;
      return map;
    }
    dart.fn(walk, T$.dynamicTodynamic());
    return reviver(null, walk(json));
  };
  convert._convertJsonToDartLazy = function _convertJsonToDartLazy(object) {
    if (object == null) return null;
    if (typeof object != "object") {
      return object;
    }
    if (Object.getPrototypeOf(object) !== Array.prototype) {
      return new convert._JsonMap.new(object);
    }
    for (let i = 0; i < object.length; i = i + 1) {
      let item = object[i];
      object[i] = convert._convertJsonToDartLazy(item);
    }
    return object;
  };
  convert.base64Encode = function base64Encode(bytes) {
    if (bytes == null) dart.nullFailed(I[92], 41, 31, "bytes");
    return convert.base64.encode(bytes);
  };
  convert.base64UrlEncode = function base64UrlEncode(bytes) {
    if (bytes == null) dart.nullFailed(I[92], 46, 34, "bytes");
    return convert.base64Url.encode(bytes);
  };
  convert.base64Decode = function base64Decode(source) {
    if (source == null) dart.nullFailed(I[92], 52, 31, "source");
    return convert.base64.decode(source);
  };
  convert.jsonEncode = function jsonEncode(object, opts) {
    let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
    return convert.json.encode(object, {toEncodable: toEncodable});
  };
  convert.jsonDecode = function jsonDecode(source, opts) {
    if (source == null) dart.nullFailed(I[95], 94, 27, "source");
    let reviver = opts && 'reviver' in opts ? opts.reviver : null;
    return convert.json.decode(source, {reviver: reviver});
  };
  convert._parseJson = function _parseJson(source, reviver) {
    if (source == null) dart.nullFailed(I[85], 31, 19, "source");
    if (!(typeof source == 'string')) dart.throw(_js_helper.argumentErrorValue(source));
    let parsed = null;
    try {
      parsed = JSON.parse(source);
    } catch (e$) {
      let e = dart.getThrown(e$);
      if (core.Object.is(e)) {
        dart.throw(new core.FormatException.new(String(e)));
      } else
        throw e$;
    }
    if (reviver == null) {
      return convert._convertJsonToDartLazy(parsed);
    } else {
      return convert._convertJsonToDart(parsed, reviver);
    }
  };
  convert._defaultToEncodable = function _defaultToEncodable(object) {
    return dart.dsend(object, 'toJson', []);
  };
  convert._isLeadSurrogate = function _isLeadSurrogate(codeUnit) {
    if (codeUnit == null) dart.nullFailed(I[98], 360, 27, "codeUnit");
    return (dart.notNull(codeUnit) & 64512) >>> 0 === 55296;
  };
  convert._isTailSurrogate = function _isTailSurrogate(codeUnit) {
    if (codeUnit == null) dart.nullFailed(I[98], 362, 27, "codeUnit");
    return (dart.notNull(codeUnit) & 64512) >>> 0 === 56320;
  };
  convert._combineSurrogatePair = function _combineSurrogatePair(lead, tail) {
    if (lead == null) dart.nullFailed(I[98], 364, 31, "lead");
    if (tail == null) dart.nullFailed(I[98], 364, 41, "tail");
    return (65536 + ((dart.notNull(lead) & 1023) >>> 0 << 10 >>> 0) | (dart.notNull(tail) & 1023) >>> 0) >>> 0;
  };
  dart.defineLazy(convert, {
    /*convert.ascii*/get ascii() {
      return C[102] || CT.C102;
    },
    /*convert._asciiMask*/get _asciiMask() {
      return 127;
    },
    /*convert.base64*/get base64() {
      return C[103] || CT.C103;
    },
    /*convert.base64Url*/get base64Url() {
      return C[104] || CT.C104;
    },
    /*convert._paddingChar*/get _paddingChar() {
      return 61;
    },
    /*convert.htmlEscape*/get htmlEscape() {
      return C[105] || CT.C105;
    },
    /*convert.json*/get json() {
      return C[106] || CT.C106;
    },
    /*convert.latin1*/get latin1() {
      return C[107] || CT.C107;
    },
    /*convert._latin1Mask*/get _latin1Mask() {
      return 255;
    },
    /*convert._LF*/get _LF() {
      return 10;
    },
    /*convert._CR*/get _CR() {
      return 13;
    },
    /*convert.unicodeReplacementCharacterRune*/get unicodeReplacementCharacterRune() {
      return 65533;
    },
    /*convert.unicodeBomCharacterRune*/get unicodeBomCharacterRune() {
      return 65279;
    },
    /*convert.utf8*/get utf8() {
      return C[108] || CT.C108;
    },
    /*convert._ONE_BYTE_LIMIT*/get _ONE_BYTE_LIMIT() {
      return 127;
    },
    /*convert._TWO_BYTE_LIMIT*/get _TWO_BYTE_LIMIT() {
      return 2047;
    },
    /*convert._THREE_BYTE_LIMIT*/get _THREE_BYTE_LIMIT() {
      return 65535;
    },
    /*convert._FOUR_BYTE_LIMIT*/get _FOUR_BYTE_LIMIT() {
      return 1114111;
    },
    /*convert._SURROGATE_TAG_MASK*/get _SURROGATE_TAG_MASK() {
      return 64512;
    },
    /*convert._SURROGATE_VALUE_MASK*/get _SURROGATE_VALUE_MASK() {
      return 1023;
    },
    /*convert._LEAD_SURROGATE_MIN*/get _LEAD_SURROGATE_MIN() {
      return 55296;
    },
    /*convert._TAIL_SURROGATE_MIN*/get _TAIL_SURROGATE_MIN() {
      return 56320;
    }
  }, false);
  developer._FakeUserTag = class _FakeUserTag extends core.Object {
    static new(label) {
      let t181, t180, t179;
      if (label == null) dart.nullFailed(I[99], 173, 31, "label");
      let existingTag = developer._FakeUserTag._instances[$_get](label);
      if (existingTag != null) {
        return existingTag;
      }
      if (developer._FakeUserTag._instances[$length] === 64) {
        dart.throw(new core.UnsupportedError.new("UserTag instance limit (" + dart.str(64) + ") reached."));
      }
      t179 = developer._FakeUserTag._instances;
      t180 = label;
      t181 = new developer._FakeUserTag.real(label);
      t179[$_set](t180, t181);
      return t181;
    }
    makeCurrent() {
      let old = developer._currentTag;
      developer._currentTag = this;
      return old;
    }
  };
  (developer._FakeUserTag.real = function(label) {
    if (label == null) dart.nullFailed(I[99], 171, 26, "label");
    this.label = label;
    ;
  }).prototype = developer._FakeUserTag.prototype;
  dart.addTypeTests(developer._FakeUserTag);
  dart.addTypeCaches(developer._FakeUserTag);
  developer._FakeUserTag[dart.implements] = () => [developer.UserTag];
  dart.setMethodSignature(developer._FakeUserTag, () => ({
    __proto__: dart.getMethods(developer._FakeUserTag.__proto__),
    makeCurrent: dart.fnType(developer.UserTag, [])
  }));
  dart.setLibraryUri(developer._FakeUserTag, I[100]);
  dart.setFieldSignature(developer._FakeUserTag, () => ({
    __proto__: dart.getFields(developer._FakeUserTag.__proto__),
    label: dart.finalFieldType(core.String)
  }));
  dart.defineLazy(developer._FakeUserTag, {
    /*developer._FakeUserTag._instances*/get _instances() {
      return new (T$0.IdentityMapOfString$_FakeUserTag()).new();
    },
    /*developer._FakeUserTag._defaultTag*/get _defaultTag() {
      return developer._FakeUserTag.new("Default");
    }
  }, false);
  var result$ = dart.privateName(developer, "ServiceExtensionResponse.result");
  var errorCode$ = dart.privateName(developer, "ServiceExtensionResponse.errorCode");
  var errorDetail$ = dart.privateName(developer, "ServiceExtensionResponse.errorDetail");
  var _toString$ = dart.privateName(developer, "_toString");
  developer.ServiceExtensionResponse = class ServiceExtensionResponse extends core.Object {
    get result() {
      return this[result$];
    }
    set result(value) {
      super.result = value;
    }
    get errorCode() {
      return this[errorCode$];
    }
    set errorCode(value) {
      super.errorCode = value;
    }
    get errorDetail() {
      return this[errorDetail$];
    }
    set errorDetail(value) {
      super.errorDetail = value;
    }
    static _errorCodeMessage(errorCode) {
      if (errorCode == null) dart.nullFailed(I[101], 76, 39, "errorCode");
      developer.ServiceExtensionResponse._validateErrorCode(errorCode);
      if (errorCode === -32602) {
        return "Invalid params";
      }
      return "Server error";
    }
    static _validateErrorCode(errorCode) {
      if (errorCode == null) dart.nullFailed(I[101], 84, 33, "errorCode");
      core.ArgumentError.checkNotNull(core.int, errorCode, "errorCode");
      if (errorCode === -32602) return;
      if (dart.notNull(errorCode) >= -32016 && dart.notNull(errorCode) <= -32000) {
        return;
      }
      dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Out of range"));
    }
    isError() {
      return this.errorCode != null && this.errorDetail != null;
    }
    [_toString$]() {
      let t179;
      t179 = this.result;
      return t179 == null ? convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["code", dart.nullCheck(this.errorCode), "message", developer.ServiceExtensionResponse._errorCodeMessage(dart.nullCheck(this.errorCode)), "data", new (T$.IdentityMapOfString$String()).from(["details", dart.nullCheck(this.errorDetail)])])) : t179;
    }
  };
  (developer.ServiceExtensionResponse.result = function(result) {
    if (result == null) dart.nullFailed(I[101], 25, 42, "result");
    this[result$] = result;
    this[errorCode$] = null;
    this[errorDetail$] = null;
    core.ArgumentError.checkNotNull(core.String, result, "result");
  }).prototype = developer.ServiceExtensionResponse.prototype;
  (developer.ServiceExtensionResponse.error = function(errorCode, errorDetail) {
    if (errorCode == null) dart.nullFailed(I[101], 39, 38, "errorCode");
    if (errorDetail == null) dart.nullFailed(I[101], 39, 56, "errorDetail");
    this[result$] = null;
    this[errorCode$] = errorCode;
    this[errorDetail$] = errorDetail;
    developer.ServiceExtensionResponse._validateErrorCode(errorCode);
    core.ArgumentError.checkNotNull(core.String, errorDetail, "errorDetail");
  }).prototype = developer.ServiceExtensionResponse.prototype;
  dart.addTypeTests(developer.ServiceExtensionResponse);
  dart.addTypeCaches(developer.ServiceExtensionResponse);
  dart.setMethodSignature(developer.ServiceExtensionResponse, () => ({
    __proto__: dart.getMethods(developer.ServiceExtensionResponse.__proto__),
    isError: dart.fnType(core.bool, []),
    [_toString$]: dart.fnType(core.String, [])
  }));
  dart.setLibraryUri(developer.ServiceExtensionResponse, I[100]);
  dart.setFieldSignature(developer.ServiceExtensionResponse, () => ({
    __proto__: dart.getFields(developer.ServiceExtensionResponse.__proto__),
    result: dart.finalFieldType(dart.nullable(core.String)),
    errorCode: dart.finalFieldType(dart.nullable(core.int)),
    errorDetail: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineLazy(developer.ServiceExtensionResponse, {
    /*developer.ServiceExtensionResponse.kInvalidParams*/get kInvalidParams() {
      return -32602;
    },
    /*developer.ServiceExtensionResponse.kExtensionError*/get kExtensionError() {
      return -32000;
    },
    /*developer.ServiceExtensionResponse.kExtensionErrorMax*/get kExtensionErrorMax() {
      return -32000;
    },
    /*developer.ServiceExtensionResponse.kExtensionErrorMin*/get kExtensionErrorMin() {
      return -32016;
    },
    /*developer.ServiceExtensionResponse.invalidParams*/get invalidParams() {
      return -32602;
    },
    /*developer.ServiceExtensionResponse.extensionError*/get extensionError() {
      return -32000;
    },
    /*developer.ServiceExtensionResponse.extensionErrorMax*/get extensionErrorMax() {
      return -32000;
    },
    /*developer.ServiceExtensionResponse.extensionErrorMin*/get extensionErrorMin() {
      return -32016;
    }
  }, false);
  developer.UserTag = class UserTag extends core.Object {
    static get defaultTag() {
      return developer._FakeUserTag._defaultTag;
    }
  };
  (developer.UserTag[dart.mixinNew] = function() {
  }).prototype = developer.UserTag.prototype;
  dart.addTypeTests(developer.UserTag);
  dart.addTypeCaches(developer.UserTag);
  dart.setLibraryUri(developer.UserTag, I[100]);
  dart.defineLazy(developer.UserTag, {
    /*developer.UserTag.MAX_USER_TAGS*/get MAX_USER_TAGS() {
      return 64;
    }
  }, false);
  var name$10 = dart.privateName(developer, "Metric.name");
  var description$ = dart.privateName(developer, "Metric.description");
  developer.Metric = class Metric extends core.Object {
    get name() {
      return this[name$10];
    }
    set name(value) {
      super.name = value;
    }
    get description() {
      return this[description$];
    }
    set description(value) {
      super.description = value;
    }
  };
  (developer.Metric.new = function(name, description) {
    if (name == null) dart.nullFailed(I[102], 39, 15, "name");
    if (description == null) dart.nullFailed(I[102], 39, 26, "description");
    this[name$10] = name;
    this[description$] = description;
    if (this.name === "vm" || this.name[$contains]("/")) {
      dart.throw(new core.ArgumentError.new("Invalid Metric name."));
    }
  }).prototype = developer.Metric.prototype;
  dart.addTypeTests(developer.Metric);
  dart.addTypeCaches(developer.Metric);
  dart.setLibraryUri(developer.Metric, I[100]);
  dart.setFieldSignature(developer.Metric, () => ({
    __proto__: dart.getFields(developer.Metric.__proto__),
    name: dart.finalFieldType(core.String),
    description: dart.finalFieldType(core.String)
  }));
  var min$ = dart.privateName(developer, "Gauge.min");
  var max$ = dart.privateName(developer, "Gauge.max");
  var _value = dart.privateName(developer, "_value");
  var _toJSON = dart.privateName(developer, "_toJSON");
  developer.Gauge = class Gauge extends developer.Metric {
    get min() {
      return this[min$];
    }
    set min(value) {
      super.min = value;
    }
    get max() {
      return this[max$];
    }
    set max(value) {
      super.max = value;
    }
    get value() {
      return this[_value];
    }
    set value(v) {
      if (v == null) dart.nullFailed(I[102], 56, 20, "v");
      if (dart.notNull(v) < dart.notNull(this.min)) {
        v = this.min;
      } else if (dart.notNull(v) > dart.notNull(this.max)) {
        v = this.max;
      }
      this[_value] = v;
    }
    [_toJSON]() {
      let map = new (T$.IdentityMapOfString$Object()).from(["type", "Gauge", "id", "metrics/" + dart.str(this.name), "name", this.name, "description", this.description, "value", this.value, "min", this.min, "max", this.max]);
      return map;
    }
  };
  (developer.Gauge.new = function(name, description, min, max) {
    if (name == null) dart.nullFailed(I[102], 65, 16, "name");
    if (description == null) dart.nullFailed(I[102], 65, 29, "description");
    if (min == null) dart.nullFailed(I[102], 65, 47, "min");
    if (max == null) dart.nullFailed(I[102], 65, 57, "max");
    this[min$] = min;
    this[max$] = max;
    this[_value] = min;
    developer.Gauge.__proto__.new.call(this, name, description);
    core.ArgumentError.checkNotNull(core.double, this.min, "min");
    core.ArgumentError.checkNotNull(core.double, this.max, "max");
    if (!(dart.notNull(this.min) < dart.notNull(this.max))) dart.throw(new core.ArgumentError.new("min must be less than max"));
  }).prototype = developer.Gauge.prototype;
  dart.addTypeTests(developer.Gauge);
  dart.addTypeCaches(developer.Gauge);
  dart.setMethodSignature(developer.Gauge, () => ({
    __proto__: dart.getMethods(developer.Gauge.__proto__),
    [_toJSON]: dart.fnType(core.Map, [])
  }));
  dart.setGetterSignature(developer.Gauge, () => ({
    __proto__: dart.getGetters(developer.Gauge.__proto__),
    value: core.double
  }));
  dart.setSetterSignature(developer.Gauge, () => ({
    __proto__: dart.getSetters(developer.Gauge.__proto__),
    value: core.double
  }));
  dart.setLibraryUri(developer.Gauge, I[100]);
  dart.setFieldSignature(developer.Gauge, () => ({
    __proto__: dart.getFields(developer.Gauge.__proto__),
    min: dart.finalFieldType(core.double),
    max: dart.finalFieldType(core.double),
    [_value]: dart.fieldType(core.double)
  }));
  developer.Counter = class Counter extends developer.Metric {
    get value() {
      return this[_value];
    }
    set value(v) {
      if (v == null) dart.nullFailed(I[102], 94, 20, "v");
      this[_value] = v;
    }
    [_toJSON]() {
      let map = new (T$.IdentityMapOfString$Object()).from(["type", "Counter", "id", "metrics/" + dart.str(this.name), "name", this.name, "description", this.description, "value", this.value]);
      return map;
    }
  };
  (developer.Counter.new = function(name, description) {
    if (name == null) dart.nullFailed(I[102], 90, 18, "name");
    if (description == null) dart.nullFailed(I[102], 90, 31, "description");
    this[_value] = 0.0;
    developer.Counter.__proto__.new.call(this, name, description);
    ;
  }).prototype = developer.Counter.prototype;
  dart.addTypeTests(developer.Counter);
  dart.addTypeCaches(developer.Counter);
  dart.setMethodSignature(developer.Counter, () => ({
    __proto__: dart.getMethods(developer.Counter.__proto__),
    [_toJSON]: dart.fnType(core.Map, [])
  }));
  dart.setGetterSignature(developer.Counter, () => ({
    __proto__: dart.getGetters(developer.Counter.__proto__),
    value: core.double
  }));
  dart.setSetterSignature(developer.Counter, () => ({
    __proto__: dart.getSetters(developer.Counter.__proto__),
    value: core.double
  }));
  dart.setLibraryUri(developer.Counter, I[100]);
  dart.setFieldSignature(developer.Counter, () => ({
    __proto__: dart.getFields(developer.Counter.__proto__),
    [_value]: dart.fieldType(core.double)
  }));
  developer.Metrics = class Metrics extends core.Object {
    static register(metric) {
      if (metric == null) dart.nullFailed(I[102], 114, 31, "metric");
      core.ArgumentError.checkNotNull(developer.Metric, metric, "metric");
      if (developer.Metrics._metrics[$_get](metric.name) != null) {
        dart.throw(new core.ArgumentError.new("Registered metrics have unique names"));
      }
      developer.Metrics._metrics[$_set](metric.name, metric);
    }
    static deregister(metric) {
      if (metric == null) dart.nullFailed(I[102], 124, 33, "metric");
      core.ArgumentError.checkNotNull(developer.Metric, metric, "metric");
      developer.Metrics._metrics[$remove](metric.name);
    }
    static _printMetric(id) {
      if (id == null) dart.nullFailed(I[102], 132, 38, "id");
      let metric = developer.Metrics._metrics[$_get](id);
      if (metric == null) {
        return null;
      }
      return convert.json.encode(metric[_toJSON]());
    }
    static _printMetrics() {
      let metrics = [];
      for (let metric of developer.Metrics._metrics[$values]) {
        metrics[$add](metric[_toJSON]());
      }
      let map = new (T$.IdentityMapOfString$Object()).from(["type", "MetricList", "metrics", metrics]);
      return convert.json.encode(map);
    }
  };
  (developer.Metrics.new = function() {
    ;
  }).prototype = developer.Metrics.prototype;
  dart.addTypeTests(developer.Metrics);
  dart.addTypeCaches(developer.Metrics);
  dart.setLibraryUri(developer.Metrics, I[100]);
  dart.defineLazy(developer.Metrics, {
    /*developer.Metrics._metrics*/get _metrics() {
      return new (T$0.LinkedMapOfString$Metric()).new();
    }
  }, false);
  var majorVersion = dart.privateName(developer, "ServiceProtocolInfo.majorVersion");
  var minorVersion = dart.privateName(developer, "ServiceProtocolInfo.minorVersion");
  var serverUri$ = dart.privateName(developer, "ServiceProtocolInfo.serverUri");
  developer.ServiceProtocolInfo = class ServiceProtocolInfo extends core.Object {
    get majorVersion() {
      return this[majorVersion];
    }
    set majorVersion(value) {
      super.majorVersion = value;
    }
    get minorVersion() {
      return this[minorVersion];
    }
    set minorVersion(value) {
      super.minorVersion = value;
    }
    get serverUri() {
      return this[serverUri$];
    }
    set serverUri(value) {
      super.serverUri = value;
    }
    toString() {
      if (this.serverUri != null) {
        return "Dart VM Service Protocol v" + dart.str(this.majorVersion) + "." + dart.str(this.minorVersion) + " " + "listening on " + dart.str(this.serverUri);
      } else {
        return "Dart VM Service Protocol v" + dart.str(this.majorVersion) + "." + dart.str(this.minorVersion);
      }
    }
  };
  (developer.ServiceProtocolInfo.new = function(serverUri) {
    this[majorVersion] = developer._getServiceMajorVersion();
    this[minorVersion] = developer._getServiceMinorVersion();
    this[serverUri$] = serverUri;
    ;
  }).prototype = developer.ServiceProtocolInfo.prototype;
  dart.addTypeTests(developer.ServiceProtocolInfo);
  dart.addTypeCaches(developer.ServiceProtocolInfo);
  dart.setLibraryUri(developer.ServiceProtocolInfo, I[100]);
  dart.setFieldSignature(developer.ServiceProtocolInfo, () => ({
    __proto__: dart.getFields(developer.ServiceProtocolInfo.__proto__),
    majorVersion: dart.finalFieldType(core.int),
    minorVersion: dart.finalFieldType(core.int),
    serverUri: dart.finalFieldType(dart.nullable(core.Uri))
  }));
  dart.defineExtensionMethods(developer.ServiceProtocolInfo, ['toString']);
  developer.Service = class Service extends core.Object {
    static getInfo() {
      return async.async(developer.ServiceProtocolInfo, function* getInfo() {
        let receivePort = isolate$.RawReceivePort.new(null, "Service.getInfo");
        let uriCompleter = T$0.CompleterOfUriN().new();
        receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), T$0.UriNTovoid());
        developer._getServerInfo(receivePort.sendPort);
        let uri = (yield uriCompleter.future);
        receivePort.close();
        return new developer.ServiceProtocolInfo.new(uri);
      });
    }
    static controlWebServer(opts) {
      let enable = opts && 'enable' in opts ? opts.enable : false;
      if (enable == null) dart.nullFailed(I[103], 62, 13, "enable");
      let silenceOutput = opts && 'silenceOutput' in opts ? opts.silenceOutput : null;
      return async.async(developer.ServiceProtocolInfo, function* controlWebServer() {
        core.ArgumentError.checkNotNull(core.bool, enable, "enable");
        let receivePort = isolate$.RawReceivePort.new(null, "Service.controlWebServer");
        let uriCompleter = T$0.CompleterOfUri().new();
        receivePort.handler = dart.fn(uri => {
          if (uri == null) dart.nullFailed(I[103], 69, 32, "uri");
          return uriCompleter.complete(uri);
        }, T$0.UriTovoid());
        developer._webServerControl(receivePort.sendPort, enable, silenceOutput);
        let uri = (yield uriCompleter.future);
        receivePort.close();
        return new developer.ServiceProtocolInfo.new(uri);
      });
    }
    static getIsolateID(isolate) {
      if (isolate == null) dart.nullFailed(I[103], 83, 39, "isolate");
      core.ArgumentError.checkNotNull(isolate$.Isolate, isolate, "isolate");
      return developer._getIsolateIDFromSendPort(isolate.controlPort);
    }
  };
  (developer.Service.new = function() {
    ;
  }).prototype = developer.Service.prototype;
  dart.addTypeTests(developer.Service);
  dart.addTypeCaches(developer.Service);
  dart.setLibraryUri(developer.Service, I[100]);
  var id$ = dart.privateName(developer, "Flow.id");
  var _type$0 = dart.privateName(developer, "_type");
  developer.Flow = class Flow extends core.Object {
    get id() {
      return this[id$];
    }
    set id(value) {
      super.id = value;
    }
    static begin(opts) {
      let t179;
      let id = opts && 'id' in opts ? opts.id : null;
      return new developer.Flow.__(9, (t179 = id, t179 == null ? developer._getNextAsyncId() : t179));
    }
    static step(id) {
      if (id == null) dart.nullFailed(I[104], 68, 24, "id");
      return new developer.Flow.__(10, id);
    }
    static end(id) {
      if (id == null) dart.nullFailed(I[104], 75, 23, "id");
      return new developer.Flow.__(11, id);
    }
  };
  (developer.Flow.__ = function(_type, id) {
    if (_type == null) dart.nullFailed(I[104], 52, 15, "_type");
    if (id == null) dart.nullFailed(I[104], 52, 27, "id");
    this[_type$0] = _type;
    this[id$] = id;
    ;
  }).prototype = developer.Flow.prototype;
  dart.addTypeTests(developer.Flow);
  dart.addTypeCaches(developer.Flow);
  dart.setLibraryUri(developer.Flow, I[100]);
  dart.setFieldSignature(developer.Flow, () => ({
    __proto__: dart.getFields(developer.Flow.__proto__),
    [_type$0]: dart.finalFieldType(core.int),
    id: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(developer.Flow, {
    /*developer.Flow._begin*/get _begin() {
      return 9;
    },
    /*developer.Flow._step*/get _step() {
      return 10;
    },
    /*developer.Flow._end*/get _end() {
      return 11;
    }
  }, false);
  var _arguments$1 = dart.privateName(developer, "_arguments");
  var _startSync = dart.privateName(developer, "_startSync");
  developer.Timeline = class Timeline extends core.Object {
    static startSync(name, opts) {
      if (name == null) dart.nullFailed(I[104], 103, 32, "name");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      let flow = opts && 'flow' in opts ? opts.flow : null;
      if (!true) return;
      core.ArgumentError.checkNotNull(core.String, name, "name");
      if (!dart.test(developer._isDartStreamEnabled())) {
        developer.Timeline._stack[$add](null);
        return;
      }
      let block = new developer._SyncBlock.__(name);
      if ($arguments != null) {
        block[_arguments$1] = $arguments;
      }
      if (flow != null) {
        block.flow = flow;
      }
      developer.Timeline._stack[$add](block);
      block[_startSync]();
    }
    static finishSync() {
      if (!true) {
        return;
      }
      if (developer.Timeline._stack[$length] === 0) {
        dart.throw(new core.StateError.new("Uneven calls to startSync and finishSync"));
      }
      let block = developer.Timeline._stack[$removeLast]();
      if (block == null) {
        return;
      }
      block.finish();
    }
    static instantSync(name, opts) {
      if (name == null) dart.nullFailed(I[104], 142, 34, "name");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      if (!true) return;
      core.ArgumentError.checkNotNull(core.String, name, "name");
      if (!dart.test(developer._isDartStreamEnabled())) {
        return;
      }
      let instantArguments = null;
      if ($arguments != null) {
        instantArguments = collection.LinkedHashMap.from($arguments);
      }
      developer._reportInstantEvent("Dart", name, developer._argumentsAsJson(instantArguments));
    }
    static timeSync(T, name, $function, opts) {
      if (name == null) dart.nullFailed(I[104], 159, 31, "name");
      if ($function == null) dart.nullFailed(I[104], 159, 61, "function");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      let flow = opts && 'flow' in opts ? opts.flow : null;
      developer.Timeline.startSync(name, {arguments: $arguments, flow: flow});
      try {
        return $function();
      } finally {
        developer.Timeline.finishSync();
      }
    }
    static get now() {
      return developer._getTraceClock();
    }
  };
  (developer.Timeline.new = function() {
    ;
  }).prototype = developer.Timeline.prototype;
  dart.addTypeTests(developer.Timeline);
  dart.addTypeCaches(developer.Timeline);
  dart.setLibraryUri(developer.Timeline, I[100]);
  dart.defineLazy(developer.Timeline, {
    /*developer.Timeline._stack*/get _stack() {
      return T$0.JSArrayOf_SyncBlockN().of([]);
    }
  }, false);
  var _stack = dart.privateName(developer, "_stack");
  var _parent = dart.privateName(developer, "_parent");
  var _filterKey = dart.privateName(developer, "_filterKey");
  var _taskId$ = dart.privateName(developer, "_taskId");
  var _start = dart.privateName(developer, "_start");
  var _finish = dart.privateName(developer, "_finish");
  developer.TimelineTask = class TimelineTask extends core.Object {
    start(name, opts) {
      if (name == null) dart.nullFailed(I[104], 218, 21, "name");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      if (!true) return;
      core.ArgumentError.checkNotNull(core.String, name, "name");
      let block = new developer._AsyncBlock.__(name, this[_taskId$]);
      this[_stack][$add](block);
      let map = new (T$0.LinkedMapOfObjectN$ObjectN()).new();
      if ($arguments != null) {
        for (let key of $arguments[$keys]) {
          map[$_set](key, $arguments[$_get](key));
        }
      }
      if (this[_parent] != null) map[$_set]("parentId", dart.nullCheck(this[_parent])[_taskId$][$toRadixString](16));
      if (this[_filterKey] != null) map[$_set]("filterKey", this[_filterKey]);
      block[_start](map);
    }
    instant(name, opts) {
      if (name == null) dart.nullFailed(I[104], 241, 23, "name");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      if (!true) return;
      core.ArgumentError.checkNotNull(core.String, name, "name");
      let instantArguments = null;
      if ($arguments != null) {
        instantArguments = collection.LinkedHashMap.from($arguments);
      }
      if (this[_filterKey] != null) {
        instantArguments == null ? instantArguments = new _js_helper.LinkedMap.new() : null;
        instantArguments[$_set]("filterKey", this[_filterKey]);
      }
      developer._reportTaskEvent(this[_taskId$], "n", "Dart", name, developer._argumentsAsJson(instantArguments));
    }
    finish(opts) {
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      if (!true) {
        return;
      }
      if (this[_stack][$length] === 0) {
        dart.throw(new core.StateError.new("Uneven calls to start and finish"));
      }
      if (this[_filterKey] != null) {
        $arguments == null ? $arguments = new _js_helper.LinkedMap.new() : null;
        $arguments[$_set]("filterKey", this[_filterKey]);
      }
      let block = this[_stack][$removeLast]();
      block[_finish]($arguments);
    }
    pass() {
      if (dart.notNull(this[_stack][$length]) > 0) {
        dart.throw(new core.StateError.new("You cannot pass a TimelineTask without finishing all started " + "operations"));
      }
      let r = this[_taskId$];
      return r;
    }
  };
  (developer.TimelineTask.new = function(opts) {
    let parent = opts && 'parent' in opts ? opts.parent : null;
    let filterKey = opts && 'filterKey' in opts ? opts.filterKey : null;
    this[_stack] = T$0.JSArrayOf_AsyncBlock().of([]);
    this[_parent] = parent;
    this[_filterKey] = filterKey;
    this[_taskId$] = developer._getNextAsyncId();
  }).prototype = developer.TimelineTask.prototype;
  (developer.TimelineTask.withTaskId = function(taskId, opts) {
    if (taskId == null) dart.nullFailed(I[104], 208, 31, "taskId");
    let filterKey = opts && 'filterKey' in opts ? opts.filterKey : null;
    this[_stack] = T$0.JSArrayOf_AsyncBlock().of([]);
    this[_parent] = null;
    this[_filterKey] = filterKey;
    this[_taskId$] = taskId;
    core.ArgumentError.checkNotNull(core.int, taskId, "taskId");
  }).prototype = developer.TimelineTask.prototype;
  dart.addTypeTests(developer.TimelineTask);
  dart.addTypeCaches(developer.TimelineTask);
  dart.setMethodSignature(developer.TimelineTask, () => ({
    __proto__: dart.getMethods(developer.TimelineTask.__proto__),
    start: dart.fnType(dart.void, [core.String], {arguments: dart.nullable(core.Map)}, {}),
    instant: dart.fnType(dart.void, [core.String], {arguments: dart.nullable(core.Map)}, {}),
    finish: dart.fnType(dart.void, [], {arguments: dart.nullable(core.Map)}, {}),
    pass: dart.fnType(core.int, [])
  }));
  dart.setLibraryUri(developer.TimelineTask, I[100]);
  dart.setFieldSignature(developer.TimelineTask, () => ({
    __proto__: dart.getFields(developer.TimelineTask.__proto__),
    [_parent]: dart.finalFieldType(dart.nullable(developer.TimelineTask)),
    [_filterKey]: dart.finalFieldType(dart.nullable(core.String)),
    [_taskId$]: dart.finalFieldType(core.int),
    [_stack]: dart.finalFieldType(core.List$(developer._AsyncBlock))
  }));
  dart.defineLazy(developer.TimelineTask, {
    /*developer.TimelineTask._kFilterKey*/get _kFilterKey() {
      return "filterKey";
    }
  }, false);
  developer._AsyncBlock = class _AsyncBlock extends core.Object {
    [_start]($arguments) {
      if ($arguments == null) dart.nullFailed(I[104], 309, 19, "arguments");
      developer._reportTaskEvent(this[_taskId$], "b", this.category, this.name, developer._argumentsAsJson($arguments));
    }
    [_finish]($arguments) {
      developer._reportTaskEvent(this[_taskId$], "e", this.category, this.name, developer._argumentsAsJson($arguments));
    }
  };
  (developer._AsyncBlock.__ = function(name, _taskId) {
    if (name == null) dart.nullFailed(I[104], 306, 22, "name");
    if (_taskId == null) dart.nullFailed(I[104], 306, 33, "_taskId");
    this.category = "Dart";
    this.name = name;
    this[_taskId$] = _taskId;
    ;
  }).prototype = developer._AsyncBlock.prototype;
  dart.addTypeTests(developer._AsyncBlock);
  dart.addTypeCaches(developer._AsyncBlock);
  dart.setMethodSignature(developer._AsyncBlock, () => ({
    __proto__: dart.getMethods(developer._AsyncBlock.__proto__),
    [_start]: dart.fnType(dart.void, [core.Map]),
    [_finish]: dart.fnType(dart.void, [dart.nullable(core.Map)])
  }));
  dart.setLibraryUri(developer._AsyncBlock, I[100]);
  dart.setFieldSignature(developer._AsyncBlock, () => ({
    __proto__: dart.getFields(developer._AsyncBlock.__proto__),
    category: dart.finalFieldType(core.String),
    name: dart.finalFieldType(core.String),
    [_taskId$]: dart.finalFieldType(core.int)
  }));
  var _flow = dart.privateName(developer, "_flow");
  developer._SyncBlock = class _SyncBlock extends core.Object {
    [_startSync]() {
      developer._reportTaskEvent(0, "B", this.category, this.name, developer._argumentsAsJson(this[_arguments$1]));
    }
    finish() {
      developer._reportTaskEvent(0, "E", this.category, this.name, developer._argumentsAsJson(this[_arguments$1]));
      if (this[_flow] != null) {
        developer._reportFlowEvent(this.category, dart.str(dart.nullCheck(this[_flow]).id), dart.nullCheck(this[_flow])[_type$0], dart.nullCheck(this[_flow]).id, developer._argumentsAsJson(null));
      }
    }
    set flow(f) {
      if (f == null) dart.nullFailed(I[104], 353, 22, "f");
      this[_flow] = f;
    }
  };
  (developer._SyncBlock.__ = function(name) {
    if (name == null) dart.nullFailed(I[104], 335, 21, "name");
    this.category = "Dart";
    this[_arguments$1] = null;
    this[_flow] = null;
    this.name = name;
    ;
  }).prototype = developer._SyncBlock.prototype;
  dart.addTypeTests(developer._SyncBlock);
  dart.addTypeCaches(developer._SyncBlock);
  dart.setMethodSignature(developer._SyncBlock, () => ({
    __proto__: dart.getMethods(developer._SyncBlock.__proto__),
    [_startSync]: dart.fnType(dart.void, []),
    finish: dart.fnType(dart.void, [])
  }));
  dart.setSetterSignature(developer._SyncBlock, () => ({
    __proto__: dart.getSetters(developer._SyncBlock.__proto__),
    flow: developer.Flow
  }));
  dart.setLibraryUri(developer._SyncBlock, I[100]);
  dart.setFieldSignature(developer._SyncBlock, () => ({
    __proto__: dart.getFields(developer._SyncBlock.__proto__),
    category: dart.finalFieldType(core.String),
    name: dart.finalFieldType(core.String),
    [_arguments$1]: dart.fieldType(dart.nullable(core.Map)),
    [_flow]: dart.fieldType(dart.nullable(developer.Flow))
  }));
  developer.invokeExtension = function _invokeExtension(methodName, encodedJson) {
    if (methodName == null) dart.nullFailed(I[99], 77, 25, "methodName");
    if (encodedJson == null) dart.nullFailed(I[99], 77, 44, "encodedJson");
    return new dart.global.Promise((resolve, reject) => {
      if (resolve == null) dart.nullFailed(I[99], 80, 25, "resolve");
      if (reject == null) dart.nullFailed(I[99], 80, 51, "reject");
      return async.async(core.Null, function*() {
        try {
          let method = dart.nullCheck(developer._lookupExtension(methodName));
          let parameters = core.Map.as(convert.json.decode(encodedJson))[$cast](core.String, core.String);
          let result = (yield method(methodName, parameters));
          resolve(result[_toString$]());
        } catch (e$) {
          let e = dart.getThrown(e$);
          if (core.Object.is(e)) {
            reject(dart.str(e));
          } else
            throw e$;
        }
      });
    });
  };
  developer.debugger = function $debugger(opts) {
    let when = opts && 'when' in opts ? opts.when : true;
    if (when == null) dart.nullFailed(I[99], 16, 21, "when");
    let message = opts && 'message' in opts ? opts.message : null;
    if (dart.test(when)) {
      debugger;
    }
    return when;
  };
  developer.inspect = function inspect(object) {
    console.debug("dart.developer.inspect", object);
    return object;
  };
  developer.log = function log(message, opts) {
    if (message == null) dart.nullFailed(I[99], 32, 17, "message");
    let time = opts && 'time' in opts ? opts.time : null;
    let sequenceNumber = opts && 'sequenceNumber' in opts ? opts.sequenceNumber : null;
    let level = opts && 'level' in opts ? opts.level : 0;
    if (level == null) dart.nullFailed(I[99], 35, 9, "level");
    let name = opts && 'name' in opts ? opts.name : "";
    if (name == null) dart.nullFailed(I[99], 36, 12, "name");
    let zone = opts && 'zone' in opts ? opts.zone : null;
    let error = opts && 'error' in opts ? opts.error : null;
    let stackTrace = opts && 'stackTrace' in opts ? opts.stackTrace : null;
    let items = {message: message, name: name, level: level};
    if (time != null) items.time = time;
    if (sequenceNumber != null) {
      items.sequenceNumber = sequenceNumber;
    }
    if (zone != null) items.zone = zone;
    if (error != null) items.error = error;
    if (stackTrace != null) items.stackTrace = stackTrace;
    console.debug("dart.developer.log", items);
  };
  developer.registerExtension = function registerExtension$(method, handler) {
    if (method == null) dart.nullFailed(I[101], 130, 31, "method");
    if (handler == null) dart.nullFailed(I[101], 130, 63, "handler");
    core.ArgumentError.checkNotNull(core.String, method, "method");
    if (!method[$startsWith]("ext.")) {
      dart.throw(new core.ArgumentError.value(method, "method", "Must begin with ext."));
    }
    if (developer._lookupExtension(method) != null) {
      dart.throw(new core.ArgumentError.new("Extension already registered: " + dart.str(method)));
    }
    core.ArgumentError.checkNotNull(T$0.StringAndMapOfString$StringToFutureOfServiceExtensionResponse(), handler, "handler");
    developer._registerExtension(method, handler);
  };
  developer.postEvent = function postEvent(eventKind, eventData) {
    if (eventKind == null) dart.nullFailed(I[101], 146, 23, "eventKind");
    if (eventData == null) dart.nullFailed(I[101], 146, 38, "eventData");
    core.ArgumentError.checkNotNull(core.String, eventKind, "eventKind");
    core.ArgumentError.checkNotNull(core.Map, eventData, "eventData");
    let eventDataAsString = convert.json.encode(eventData);
    developer._postEvent(eventKind, eventDataAsString);
  };
  developer._postEvent = function _postEvent(eventKind, eventData) {
    if (eventKind == null) dart.nullFailed(I[99], 94, 24, "eventKind");
    if (eventData == null) dart.nullFailed(I[99], 94, 42, "eventData");
    console.debug("dart.developer.postEvent", eventKind, eventData);
  };
  developer._lookupExtension = function _lookupExtension(method) {
    if (method == null) dart.nullFailed(I[99], 56, 50, "method");
    return developer._extensions[$_get](method);
  };
  developer._registerExtension = function _registerExtension(method, handler) {
    if (method == null) dart.nullFailed(I[99], 61, 27, "method");
    if (handler == null) dart.nullFailed(I[99], 61, 59, "handler");
    developer._extensions[$_set](method, handler);
    console.debug("dart.developer.registerExtension", method);
  };
  developer.getCurrentTag = function getCurrentTag() {
    return developer._currentTag;
  };
  developer._getServerInfo = function _getServerInfo(sendPort) {
    if (sendPort == null) dart.nullFailed(I[99], 145, 30, "sendPort");
    sendPort.send(null);
  };
  developer._webServerControl = function _webServerControl(sendPort, enable, silenceOutput) {
    if (sendPort == null) dart.nullFailed(I[99], 150, 33, "sendPort");
    if (enable == null) dart.nullFailed(I[99], 150, 48, "enable");
    sendPort.send(null);
  };
  developer._getServiceMajorVersion = function _getServiceMajorVersion() {
    return 0;
  };
  developer._getServiceMinorVersion = function _getServiceMinorVersion() {
    return 0;
  };
  developer._getIsolateIDFromSendPort = function _getIsolateIDFromSendPort(sendPort) {
    if (sendPort == null) dart.nullFailed(I[99], 155, 44, "sendPort");
    return null;
  };
  developer._argumentsAsJson = function _argumentsAsJson($arguments) {
    if ($arguments == null || $arguments[$length] === 0) {
      return "{}";
    }
    return convert.json.encode($arguments);
  };
  developer._isDartStreamEnabled = function _isDartStreamEnabled() {
    return false;
  };
  developer._getNextAsyncId = function _getNextAsyncId() {
    return 0;
  };
  developer._getTraceClock = function _getTraceClock() {
    let t180;
    t180 = developer._clockValue;
    developer._clockValue = dart.notNull(t180) + 1;
    return t180;
  };
  developer._reportTaskEvent = function _reportTaskEvent(taskId, phase, category, name, argumentsAsJson) {
    if (taskId == null) dart.nullFailed(I[99], 129, 27, "taskId");
    if (phase == null) dart.nullFailed(I[99], 129, 42, "phase");
    if (category == null) dart.nullFailed(I[99], 129, 56, "category");
    if (name == null) dart.nullFailed(I[99], 129, 73, "name");
    if (argumentsAsJson == null) dart.nullFailed(I[99], 130, 12, "argumentsAsJson");
  };
  developer._reportFlowEvent = function _reportFlowEvent(category, name, type, id, argumentsAsJson) {
    if (category == null) dart.nullFailed(I[99], 114, 12, "category");
    if (name == null) dart.nullFailed(I[99], 114, 29, "name");
    if (type == null) dart.nullFailed(I[99], 114, 39, "type");
    if (id == null) dart.nullFailed(I[99], 114, 49, "id");
    if (argumentsAsJson == null) dart.nullFailed(I[99], 114, 60, "argumentsAsJson");
  };
  developer._reportInstantEvent = function _reportInstantEvent(category, name, argumentsAsJson) {
    if (category == null) dart.nullFailed(I[99], 119, 33, "category");
    if (name == null) dart.nullFailed(I[99], 119, 50, "name");
    if (argumentsAsJson == null) dart.nullFailed(I[99], 119, 63, "argumentsAsJson");
  };
  dart.defineLazy(developer, {
    /*developer._extensions*/get _extensions() {
      return new (T$0.IdentityMapOfString$StringAndMapOfString$StringToFutureOfServiceExtensionResponse()).new();
    },
    /*developer._clockValue*/get _clockValue() {
      return 0;
    },
    set _clockValue(_) {},
    /*developer._currentTag*/get _currentTag() {
      return developer._FakeUserTag._defaultTag;
    },
    set _currentTag(_) {},
    /*developer._hasTimeline*/get _hasTimeline() {
      return true;
    }
  }, false);
  io.IOException = class IOException extends core.Object {
    toString() {
      return "IOException";
    }
  };
  (io.IOException.new = function() {
    ;
  }).prototype = io.IOException.prototype;
  dart.addTypeTests(io.IOException);
  dart.addTypeCaches(io.IOException);
  io.IOException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(io.IOException, I[105]);
  dart.defineExtensionMethods(io.IOException, ['toString']);
  var message$2 = dart.privateName(io, "OSError.message");
  var errorCode$0 = dart.privateName(io, "OSError.errorCode");
  io.OSError = class OSError extends core.Object {
    get message() {
      return this[message$2];
    }
    set message(value) {
      super.message = value;
    }
    get errorCode() {
      return this[errorCode$0];
    }
    set errorCode(value) {
      super.errorCode = value;
    }
    toString() {
      let t180, t180$, t180$0;
      let sb = new core.StringBuffer.new();
      sb.write("OS Error");
      if (this.message[$isNotEmpty]) {
        t180 = sb;
        (() => {
          t180.write(": ");
          t180.write(this.message);
          return t180;
        })();
        if (this.errorCode !== -1) {
          t180$ = sb;
          (() => {
            t180$.write(", errno = ");
            t180$.write(dart.toString(this.errorCode));
            return t180$;
          })();
        }
      } else if (this.errorCode !== -1) {
        t180$0 = sb;
        (() => {
          t180$0.write(": errno = ");
          t180$0.write(dart.toString(this.errorCode));
          return t180$0;
        })();
      }
      return sb.toString();
    }
  };
  (io.OSError.new = function(message = "", errorCode = -1) {
    if (message == null) dart.nullFailed(I[106], 63, 23, "message");
    if (errorCode == null) dart.nullFailed(I[106], 63, 42, "errorCode");
    this[message$2] = message;
    this[errorCode$0] = errorCode;
    ;
  }).prototype = io.OSError.prototype;
  dart.addTypeTests(io.OSError);
  dart.addTypeCaches(io.OSError);
  io.OSError[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(io.OSError, I[105]);
  dart.setFieldSignature(io.OSError, () => ({
    __proto__: dart.getFields(io.OSError.__proto__),
    message: dart.finalFieldType(core.String),
    errorCode: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.OSError, ['toString']);
  dart.defineLazy(io.OSError, {
    /*io.OSError.noErrorCode*/get noErrorCode() {
      return -1;
    }
  }, false);
  io._BufferAndStart = class _BufferAndStart extends core.Object {};
  (io._BufferAndStart.new = function(buffer, start) {
    if (buffer == null) dart.nullFailed(I[106], 85, 24, "buffer");
    if (start == null) dart.nullFailed(I[106], 85, 37, "start");
    this.buffer = buffer;
    this.start = start;
    ;
  }).prototype = io._BufferAndStart.prototype;
  dart.addTypeTests(io._BufferAndStart);
  dart.addTypeCaches(io._BufferAndStart);
  dart.setLibraryUri(io._BufferAndStart, I[105]);
  dart.setFieldSignature(io._BufferAndStart, () => ({
    __proto__: dart.getFields(io._BufferAndStart.__proto__),
    buffer: dart.fieldType(core.List$(core.int)),
    start: dart.fieldType(core.int)
  }));
  io._IOCrypto = class _IOCrypto extends core.Object {
    static getRandomBytes(count) {
      if (count == null) dart.nullFailed(I[107], 225, 39, "count");
      dart.throw(new core.UnsupportedError.new("_IOCrypto.getRandomBytes"));
    }
  };
  (io._IOCrypto.new = function() {
    ;
  }).prototype = io._IOCrypto.prototype;
  dart.addTypeTests(io._IOCrypto);
  dart.addTypeCaches(io._IOCrypto);
  dart.setLibraryUri(io._IOCrypto, I[105]);
  io.ZLibOption = class ZLibOption extends core.Object {};
  (io.ZLibOption.new = function() {
    ;
  }).prototype = io.ZLibOption.prototype;
  dart.addTypeTests(io.ZLibOption);
  dart.addTypeCaches(io.ZLibOption);
  dart.setLibraryUri(io.ZLibOption, I[105]);
  dart.defineLazy(io.ZLibOption, {
    /*io.ZLibOption.minWindowBits*/get minWindowBits() {
      return 8;
    },
    /*io.ZLibOption.MIN_WINDOW_BITS*/get MIN_WINDOW_BITS() {
      return 8;
    },
    /*io.ZLibOption.maxWindowBits*/get maxWindowBits() {
      return 15;
    },
    /*io.ZLibOption.MAX_WINDOW_BITS*/get MAX_WINDOW_BITS() {
      return 15;
    },
    /*io.ZLibOption.defaultWindowBits*/get defaultWindowBits() {
      return 15;
    },
    /*io.ZLibOption.DEFAULT_WINDOW_BITS*/get DEFAULT_WINDOW_BITS() {
      return 15;
    },
    /*io.ZLibOption.minLevel*/get minLevel() {
      return -1;
    },
    /*io.ZLibOption.MIN_LEVEL*/get MIN_LEVEL() {
      return -1;
    },
    /*io.ZLibOption.maxLevel*/get maxLevel() {
      return 9;
    },
    /*io.ZLibOption.MAX_LEVEL*/get MAX_LEVEL() {
      return 9;
    },
    /*io.ZLibOption.defaultLevel*/get defaultLevel() {
      return 6;
    },
    /*io.ZLibOption.DEFAULT_LEVEL*/get DEFAULT_LEVEL() {
      return 6;
    },
    /*io.ZLibOption.minMemLevel*/get minMemLevel() {
      return 1;
    },
    /*io.ZLibOption.MIN_MEM_LEVEL*/get MIN_MEM_LEVEL() {
      return 1;
    },
    /*io.ZLibOption.maxMemLevel*/get maxMemLevel() {
      return 9;
    },
    /*io.ZLibOption.MAX_MEM_LEVEL*/get MAX_MEM_LEVEL() {
      return 9;
    },
    /*io.ZLibOption.defaultMemLevel*/get defaultMemLevel() {
      return 8;
    },
    /*io.ZLibOption.DEFAULT_MEM_LEVEL*/get DEFAULT_MEM_LEVEL() {
      return 8;
    },
    /*io.ZLibOption.strategyFiltered*/get strategyFiltered() {
      return 1;
    },
    /*io.ZLibOption.STRATEGY_FILTERED*/get STRATEGY_FILTERED() {
      return 1;
    },
    /*io.ZLibOption.strategyHuffmanOnly*/get strategyHuffmanOnly() {
      return 2;
    },
    /*io.ZLibOption.STRATEGY_HUFFMAN_ONLY*/get STRATEGY_HUFFMAN_ONLY() {
      return 2;
    },
    /*io.ZLibOption.strategyRle*/get strategyRle() {
      return 3;
    },
    /*io.ZLibOption.STRATEGY_RLE*/get STRATEGY_RLE() {
      return 3;
    },
    /*io.ZLibOption.strategyFixed*/get strategyFixed() {
      return 4;
    },
    /*io.ZLibOption.STRATEGY_FIXED*/get STRATEGY_FIXED() {
      return 4;
    },
    /*io.ZLibOption.strategyDefault*/get strategyDefault() {
      return 0;
    },
    /*io.ZLibOption.STRATEGY_DEFAULT*/get STRATEGY_DEFAULT() {
      return 0;
    }
  }, false);
  var gzip$ = dart.privateName(io, "ZLibCodec.gzip");
  var level$ = dart.privateName(io, "ZLibCodec.level");
  var memLevel$ = dart.privateName(io, "ZLibCodec.memLevel");
  var strategy$ = dart.privateName(io, "ZLibCodec.strategy");
  var windowBits$ = dart.privateName(io, "ZLibCodec.windowBits");
  var raw$ = dart.privateName(io, "ZLibCodec.raw");
  var dictionary$ = dart.privateName(io, "ZLibCodec.dictionary");
  io.ZLibCodec = class ZLibCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
    get gzip() {
      return this[gzip$];
    }
    set gzip(value) {
      super.gzip = value;
    }
    get level() {
      return this[level$];
    }
    set level(value) {
      super.level = value;
    }
    get memLevel() {
      return this[memLevel$];
    }
    set memLevel(value) {
      super.memLevel = value;
    }
    get strategy() {
      return this[strategy$];
    }
    set strategy(value) {
      super.strategy = value;
    }
    get windowBits() {
      return this[windowBits$];
    }
    set windowBits(value) {
      super.windowBits = value;
    }
    get raw() {
      return this[raw$];
    }
    set raw(value) {
      super.raw = value;
    }
    get dictionary() {
      return this[dictionary$];
    }
    set dictionary(value) {
      super.dictionary = value;
    }
    get encoder() {
      return new io.ZLibEncoder.new({gzip: false, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
    }
    get decoder() {
      return new io.ZLibDecoder.new({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
    }
  };
  (io.ZLibCodec.new = function(opts) {
    let level = opts && 'level' in opts ? opts.level : 6;
    if (level == null) dart.nullFailed(I[108], 140, 13, "level");
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    if (windowBits == null) dart.nullFailed(I[108], 141, 12, "windowBits");
    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
    if (memLevel == null) dart.nullFailed(I[108], 142, 12, "memLevel");
    let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
    if (strategy == null) dart.nullFailed(I[108], 143, 12, "strategy");
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    if (raw == null) dart.nullFailed(I[108], 145, 12, "raw");
    let gzip = opts && 'gzip' in opts ? opts.gzip : false;
    if (gzip == null) dart.nullFailed(I[108], 146, 12, "gzip");
    this[level$] = level;
    this[windowBits$] = windowBits;
    this[memLevel$] = memLevel;
    this[strategy$] = strategy;
    this[dictionary$] = dictionary;
    this[raw$] = raw;
    this[gzip$] = gzip;
    io.ZLibCodec.__proto__.new.call(this);
    io._validateZLibeLevel(this.level);
    io._validateZLibMemLevel(this.memLevel);
    io._validateZLibStrategy(this.strategy);
    io._validateZLibWindowBits(this.windowBits);
  }).prototype = io.ZLibCodec.prototype;
  (io.ZLibCodec._default = function() {
    this[level$] = 6;
    this[windowBits$] = 15;
    this[memLevel$] = 8;
    this[strategy$] = 0;
    this[raw$] = false;
    this[gzip$] = false;
    this[dictionary$] = null;
    io.ZLibCodec.__proto__.new.call(this);
    ;
  }).prototype = io.ZLibCodec.prototype;
  dart.addTypeTests(io.ZLibCodec);
  dart.addTypeCaches(io.ZLibCodec);
  dart.setGetterSignature(io.ZLibCodec, () => ({
    __proto__: dart.getGetters(io.ZLibCodec.__proto__),
    encoder: io.ZLibEncoder,
    decoder: io.ZLibDecoder
  }));
  dart.setLibraryUri(io.ZLibCodec, I[105]);
  dart.setFieldSignature(io.ZLibCodec, () => ({
    __proto__: dart.getFields(io.ZLibCodec.__proto__),
    gzip: dart.finalFieldType(core.bool),
    level: dart.finalFieldType(core.int),
    memLevel: dart.finalFieldType(core.int),
    strategy: dart.finalFieldType(core.int),
    windowBits: dart.finalFieldType(core.int),
    raw: dart.finalFieldType(core.bool),
    dictionary: dart.finalFieldType(dart.nullable(core.List$(core.int)))
  }));
  var gzip$0 = dart.privateName(io, "GZipCodec.gzip");
  var level$0 = dart.privateName(io, "GZipCodec.level");
  var memLevel$0 = dart.privateName(io, "GZipCodec.memLevel");
  var strategy$0 = dart.privateName(io, "GZipCodec.strategy");
  var windowBits$0 = dart.privateName(io, "GZipCodec.windowBits");
  var dictionary$0 = dart.privateName(io, "GZipCodec.dictionary");
  var raw$0 = dart.privateName(io, "GZipCodec.raw");
  io.GZipCodec = class GZipCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
    get gzip() {
      return this[gzip$0];
    }
    set gzip(value) {
      super.gzip = value;
    }
    get level() {
      return this[level$0];
    }
    set level(value) {
      super.level = value;
    }
    get memLevel() {
      return this[memLevel$0];
    }
    set memLevel(value) {
      super.memLevel = value;
    }
    get strategy() {
      return this[strategy$0];
    }
    set strategy(value) {
      super.strategy = value;
    }
    get windowBits() {
      return this[windowBits$0];
    }
    set windowBits(value) {
      super.windowBits = value;
    }
    get dictionary() {
      return this[dictionary$0];
    }
    set dictionary(value) {
      super.dictionary = value;
    }
    get raw() {
      return this[raw$0];
    }
    set raw(value) {
      super.raw = value;
    }
    get encoder() {
      return new io.ZLibEncoder.new({gzip: true, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
    }
    get decoder() {
      return new io.ZLibDecoder.new({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
    }
  };
  (io.GZipCodec.new = function(opts) {
    let level = opts && 'level' in opts ? opts.level : 6;
    if (level == null) dart.nullFailed(I[108], 236, 13, "level");
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    if (windowBits == null) dart.nullFailed(I[108], 237, 12, "windowBits");
    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
    if (memLevel == null) dart.nullFailed(I[108], 238, 12, "memLevel");
    let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
    if (strategy == null) dart.nullFailed(I[108], 239, 12, "strategy");
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    if (raw == null) dart.nullFailed(I[108], 241, 12, "raw");
    let gzip = opts && 'gzip' in opts ? opts.gzip : true;
    if (gzip == null) dart.nullFailed(I[108], 242, 12, "gzip");
    this[level$0] = level;
    this[windowBits$0] = windowBits;
    this[memLevel$0] = memLevel;
    this[strategy$0] = strategy;
    this[dictionary$0] = dictionary;
    this[raw$0] = raw;
    this[gzip$0] = gzip;
    io.GZipCodec.__proto__.new.call(this);
    io._validateZLibeLevel(this.level);
    io._validateZLibMemLevel(this.memLevel);
    io._validateZLibStrategy(this.strategy);
    io._validateZLibWindowBits(this.windowBits);
  }).prototype = io.GZipCodec.prototype;
  (io.GZipCodec._default = function() {
    this[level$0] = 6;
    this[windowBits$0] = 15;
    this[memLevel$0] = 8;
    this[strategy$0] = 0;
    this[raw$0] = false;
    this[gzip$0] = true;
    this[dictionary$0] = null;
    io.GZipCodec.__proto__.new.call(this);
    ;
  }).prototype = io.GZipCodec.prototype;
  dart.addTypeTests(io.GZipCodec);
  dart.addTypeCaches(io.GZipCodec);
  dart.setGetterSignature(io.GZipCodec, () => ({
    __proto__: dart.getGetters(io.GZipCodec.__proto__),
    encoder: io.ZLibEncoder,
    decoder: io.ZLibDecoder
  }));
  dart.setLibraryUri(io.GZipCodec, I[105]);
  dart.setFieldSignature(io.GZipCodec, () => ({
    __proto__: dart.getFields(io.GZipCodec.__proto__),
    gzip: dart.finalFieldType(core.bool),
    level: dart.finalFieldType(core.int),
    memLevel: dart.finalFieldType(core.int),
    strategy: dart.finalFieldType(core.int),
    windowBits: dart.finalFieldType(core.int),
    dictionary: dart.finalFieldType(dart.nullable(core.List$(core.int))),
    raw: dart.finalFieldType(core.bool)
  }));
  var gzip$1 = dart.privateName(io, "ZLibEncoder.gzip");
  var level$1 = dart.privateName(io, "ZLibEncoder.level");
  var memLevel$1 = dart.privateName(io, "ZLibEncoder.memLevel");
  var strategy$1 = dart.privateName(io, "ZLibEncoder.strategy");
  var windowBits$1 = dart.privateName(io, "ZLibEncoder.windowBits");
  var dictionary$1 = dart.privateName(io, "ZLibEncoder.dictionary");
  var raw$1 = dart.privateName(io, "ZLibEncoder.raw");
  io.ZLibEncoder = class ZLibEncoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
    get gzip() {
      return this[gzip$1];
    }
    set gzip(value) {
      super.gzip = value;
    }
    get level() {
      return this[level$1];
    }
    set level(value) {
      super.level = value;
    }
    get memLevel() {
      return this[memLevel$1];
    }
    set memLevel(value) {
      super.memLevel = value;
    }
    get strategy() {
      return this[strategy$1];
    }
    set strategy(value) {
      super.strategy = value;
    }
    get windowBits() {
      return this[windowBits$1];
    }
    set windowBits(value) {
      super.windowBits = value;
    }
    get dictionary() {
      return this[dictionary$1];
    }
    set dictionary(value) {
      super.dictionary = value;
    }
    get raw() {
      return this[raw$1];
    }
    set raw(value) {
      super.raw = value;
    }
    convert(bytes) {
      let t180;
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[108], 339, 31, "bytes");
      let sink = new io._BufferSink.new();
      t180 = this.startChunkedConversion(sink);
      (() => {
        t180.add(bytes);
        t180.close();
        return t180;
      })();
      return sink.builder.takeBytes();
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[108], 353, 61, "sink");
      if (!convert.ByteConversionSink.is(sink)) {
        sink = new convert._ByteAdapterSink.new(sink);
      }
      return new io._ZLibEncoderSink.__(sink, this.gzip, this.level, this.windowBits, this.memLevel, this.strategy, this.dictionary, this.raw);
    }
  };
  (io.ZLibEncoder.new = function(opts) {
    let gzip = opts && 'gzip' in opts ? opts.gzip : false;
    if (gzip == null) dart.nullFailed(I[108], 324, 13, "gzip");
    let level = opts && 'level' in opts ? opts.level : 6;
    if (level == null) dart.nullFailed(I[108], 325, 12, "level");
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    if (windowBits == null) dart.nullFailed(I[108], 326, 12, "windowBits");
    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
    if (memLevel == null) dart.nullFailed(I[108], 327, 12, "memLevel");
    let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
    if (strategy == null) dart.nullFailed(I[108], 328, 12, "strategy");
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    if (raw == null) dart.nullFailed(I[108], 330, 12, "raw");
    this[gzip$1] = gzip;
    this[level$1] = level;
    this[windowBits$1] = windowBits;
    this[memLevel$1] = memLevel;
    this[strategy$1] = strategy;
    this[dictionary$1] = dictionary;
    this[raw$1] = raw;
    io.ZLibEncoder.__proto__.new.call(this);
    io._validateZLibeLevel(this.level);
    io._validateZLibMemLevel(this.memLevel);
    io._validateZLibStrategy(this.strategy);
    io._validateZLibWindowBits(this.windowBits);
  }).prototype = io.ZLibEncoder.prototype;
  dart.addTypeTests(io.ZLibEncoder);
  dart.addTypeCaches(io.ZLibEncoder);
  dart.setMethodSignature(io.ZLibEncoder, () => ({
    __proto__: dart.getMethods(io.ZLibEncoder.__proto__),
    convert: dart.fnType(core.List$(core.int), [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io.ZLibEncoder, I[105]);
  dart.setFieldSignature(io.ZLibEncoder, () => ({
    __proto__: dart.getFields(io.ZLibEncoder.__proto__),
    gzip: dart.finalFieldType(core.bool),
    level: dart.finalFieldType(core.int),
    memLevel: dart.finalFieldType(core.int),
    strategy: dart.finalFieldType(core.int),
    windowBits: dart.finalFieldType(core.int),
    dictionary: dart.finalFieldType(dart.nullable(core.List$(core.int))),
    raw: dart.finalFieldType(core.bool)
  }));
  var windowBits$2 = dart.privateName(io, "ZLibDecoder.windowBits");
  var dictionary$2 = dart.privateName(io, "ZLibDecoder.dictionary");
  var raw$2 = dart.privateName(io, "ZLibDecoder.raw");
  io.ZLibDecoder = class ZLibDecoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
    get windowBits() {
      return this[windowBits$2];
    }
    set windowBits(value) {
      super.windowBits = value;
    }
    get dictionary() {
      return this[dictionary$2];
    }
    set dictionary(value) {
      super.dictionary = value;
    }
    get raw() {
      return this[raw$2];
    }
    set raw(value) {
      super.raw = value;
    }
    convert(bytes) {
      let t180;
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[108], 392, 31, "bytes");
      let sink = new io._BufferSink.new();
      t180 = this.startChunkedConversion(sink);
      (() => {
        t180.add(bytes);
        t180.close();
        return t180;
      })();
      return sink.builder.takeBytes();
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[108], 405, 61, "sink");
      if (!convert.ByteConversionSink.is(sink)) {
        sink = new convert._ByteAdapterSink.new(sink);
      }
      return new io._ZLibDecoderSink.__(sink, this.windowBits, this.dictionary, this.raw);
    }
  };
  (io.ZLibDecoder.new = function(opts) {
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    if (windowBits == null) dart.nullFailed(I[108], 384, 13, "windowBits");
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    if (raw == null) dart.nullFailed(I[108], 386, 12, "raw");
    this[windowBits$2] = windowBits;
    this[dictionary$2] = dictionary;
    this[raw$2] = raw;
    io.ZLibDecoder.__proto__.new.call(this);
    io._validateZLibWindowBits(this.windowBits);
  }).prototype = io.ZLibDecoder.prototype;
  dart.addTypeTests(io.ZLibDecoder);
  dart.addTypeCaches(io.ZLibDecoder);
  dart.setMethodSignature(io.ZLibDecoder, () => ({
    __proto__: dart.getMethods(io.ZLibDecoder.__proto__),
    convert: dart.fnType(core.List$(core.int), [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io.ZLibDecoder, I[105]);
  dart.setFieldSignature(io.ZLibDecoder, () => ({
    __proto__: dart.getFields(io.ZLibDecoder.__proto__),
    windowBits: dart.finalFieldType(core.int),
    dictionary: dart.finalFieldType(dart.nullable(core.List$(core.int))),
    raw: dart.finalFieldType(core.bool)
  }));
  io.RawZLibFilter = class RawZLibFilter extends core.Object {
    static deflateFilter(opts) {
      let gzip = opts && 'gzip' in opts ? opts.gzip : false;
      if (gzip == null) dart.nullFailed(I[108], 418, 10, "gzip");
      let level = opts && 'level' in opts ? opts.level : 6;
      if (level == null) dart.nullFailed(I[108], 419, 9, "level");
      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
      if (windowBits == null) dart.nullFailed(I[108], 420, 9, "windowBits");
      let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
      if (memLevel == null) dart.nullFailed(I[108], 421, 9, "memLevel");
      let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
      if (strategy == null) dart.nullFailed(I[108], 422, 9, "strategy");
      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
      let raw = opts && 'raw' in opts ? opts.raw : false;
      if (raw == null) dart.nullFailed(I[108], 424, 10, "raw");
      return io.RawZLibFilter._makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw);
    }
    static inflateFilter(opts) {
      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
      if (windowBits == null) dart.nullFailed(I[108], 433, 9, "windowBits");
      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
      let raw = opts && 'raw' in opts ? opts.raw : false;
      if (raw == null) dart.nullFailed(I[108], 435, 10, "raw");
      return io.RawZLibFilter._makeZLibInflateFilter(windowBits, dictionary, raw);
    }
    static _makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
      if (gzip == null) dart.nullFailed(I[107], 614, 12, "gzip");
      if (level == null) dart.nullFailed(I[107], 615, 11, "level");
      if (windowBits == null) dart.nullFailed(I[107], 616, 11, "windowBits");
      if (memLevel == null) dart.nullFailed(I[107], 617, 11, "memLevel");
      if (strategy == null) dart.nullFailed(I[107], 618, 11, "strategy");
      if (raw == null) dart.nullFailed(I[107], 620, 12, "raw");
      dart.throw(new core.UnsupportedError.new("_newZLibDeflateFilter"));
    }
    static _makeZLibInflateFilter(windowBits, dictionary, raw) {
      if (windowBits == null) dart.nullFailed(I[107], 626, 11, "windowBits");
      if (raw == null) dart.nullFailed(I[107], 626, 51, "raw");
      dart.throw(new core.UnsupportedError.new("_newZLibInflateFilter"));
    }
  };
  (io.RawZLibFilter[dart.mixinNew] = function() {
  }).prototype = io.RawZLibFilter.prototype;
  dart.addTypeTests(io.RawZLibFilter);
  dart.addTypeCaches(io.RawZLibFilter);
  dart.setLibraryUri(io.RawZLibFilter, I[105]);
  io._BufferSink = class _BufferSink extends convert.ByteConversionSink {
    add(chunk) {
      T$0.ListOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[108], 472, 22, "chunk");
      this.builder.add(chunk);
    }
    addSlice(chunk, start, end, isLast) {
      if (chunk == null) dart.nullFailed(I[108], 476, 27, "chunk");
      if (start == null) dart.nullFailed(I[108], 476, 38, "start");
      if (end == null) dart.nullFailed(I[108], 476, 49, "end");
      if (isLast == null) dart.nullFailed(I[108], 476, 59, "isLast");
      if (typed_data.Uint8List.is(chunk)) {
        let list = chunk;
        this.builder.add(typed_data.Uint8List.view(list[$buffer], dart.notNull(list[$offsetInBytes]) + dart.notNull(start), dart.notNull(end) - dart.notNull(start)));
      } else {
        this.builder.add(chunk[$sublist](start, end));
      }
    }
    close() {
    }
  };
  (io._BufferSink.new = function() {
    this.builder = _internal.BytesBuilder.new({copy: false});
    io._BufferSink.__proto__.new.call(this);
    ;
  }).prototype = io._BufferSink.prototype;
  dart.addTypeTests(io._BufferSink);
  dart.addTypeCaches(io._BufferSink);
  dart.setMethodSignature(io._BufferSink, () => ({
    __proto__: dart.getMethods(io._BufferSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(io._BufferSink, I[105]);
  dart.setFieldSignature(io._BufferSink, () => ({
    __proto__: dart.getFields(io._BufferSink.__proto__),
    builder: dart.finalFieldType(_internal.BytesBuilder)
  }));
  var _closed = dart.privateName(io, "_closed");
  var _empty = dart.privateName(io, "_empty");
  var _sink$1 = dart.privateName(io, "_sink");
  var _filter$ = dart.privateName(io, "_filter");
  io._FilterSink = class _FilterSink extends convert.ByteConversionSink {
    add(data) {
      T$0.ListOfint().as(data);
      if (data == null) dart.nullFailed(I[108], 520, 22, "data");
      this.addSlice(data, 0, data[$length], false);
    }
    addSlice(data, start, end, isLast) {
      if (data == null) dart.nullFailed(I[108], 524, 27, "data");
      if (start == null) dart.nullFailed(I[108], 524, 37, "start");
      if (end == null) dart.nullFailed(I[108], 524, 48, "end");
      if (isLast == null) dart.nullFailed(I[108], 524, 58, "isLast");
      core.ArgumentError.checkNotNull(core.int, end, "end");
      if (dart.test(this[_closed])) return;
      core.RangeError.checkValidRange(start, end, data[$length]);
      try {
        this[_empty] = false;
        let bufferAndStart = io._ensureFastAndSerializableByteData(data, start, end);
        this[_filter$].process(bufferAndStart.buffer, bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
        let out = null;
        while (true) {
          let out = this[_filter$].processed({flush: false});
          if (out == null) break;
          this[_sink$1].add(out);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          this[_closed] = true;
          dart.rethrow(e$);
        } else
          throw e$;
      }
      if (dart.test(isLast)) this.close();
    }
    close() {
      if (dart.test(this[_closed])) return;
      if (dart.test(this[_empty])) this[_filter$].process(C[87] || CT.C87, 0, 0);
      try {
        while (true) {
          let out = this[_filter$].processed({end: true});
          if (out == null) break;
          this[_sink$1].add(out);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          this[_closed] = true;
          dart.throw(e);
        } else
          throw e$;
      }
      this[_closed] = true;
      this[_sink$1].close();
    }
  };
  (io._FilterSink.new = function(_sink, _filter) {
    if (_sink == null) dart.nullFailed(I[108], 518, 20, "_sink");
    if (_filter == null) dart.nullFailed(I[108], 518, 32, "_filter");
    this[_closed] = false;
    this[_empty] = true;
    this[_sink$1] = _sink;
    this[_filter$] = _filter;
    io._FilterSink.__proto__.new.call(this);
    ;
  }).prototype = io._FilterSink.prototype;
  dart.addTypeTests(io._FilterSink);
  dart.addTypeCaches(io._FilterSink);
  dart.setMethodSignature(io._FilterSink, () => ({
    __proto__: dart.getMethods(io._FilterSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(io._FilterSink, I[105]);
  dart.setFieldSignature(io._FilterSink, () => ({
    __proto__: dart.getFields(io._FilterSink.__proto__),
    [_filter$]: dart.finalFieldType(io.RawZLibFilter),
    [_sink$1]: dart.finalFieldType(convert.ByteConversionSink),
    [_closed]: dart.fieldType(core.bool),
    [_empty]: dart.fieldType(core.bool)
  }));
  io._ZLibEncoderSink = class _ZLibEncoderSink extends io._FilterSink {};
  (io._ZLibEncoderSink.__ = function(sink, gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
    if (sink == null) dart.nullFailed(I[108], 491, 26, "sink");
    if (gzip == null) dart.nullFailed(I[108], 492, 12, "gzip");
    if (level == null) dart.nullFailed(I[108], 493, 11, "level");
    if (windowBits == null) dart.nullFailed(I[108], 494, 11, "windowBits");
    if (memLevel == null) dart.nullFailed(I[108], 495, 11, "memLevel");
    if (strategy == null) dart.nullFailed(I[108], 496, 11, "strategy");
    if (raw == null) dart.nullFailed(I[108], 498, 12, "raw");
    io._ZLibEncoderSink.__proto__.new.call(this, sink, io.RawZLibFilter._makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw));
    ;
  }).prototype = io._ZLibEncoderSink.prototype;
  dart.addTypeTests(io._ZLibEncoderSink);
  dart.addTypeCaches(io._ZLibEncoderSink);
  dart.setLibraryUri(io._ZLibEncoderSink, I[105]);
  io._ZLibDecoderSink = class _ZLibDecoderSink extends io._FilterSink {};
  (io._ZLibDecoderSink.__ = function(sink, windowBits, dictionary, raw) {
    if (sink == null) dart.nullFailed(I[108], 507, 26, "sink");
    if (windowBits == null) dart.nullFailed(I[108], 507, 36, "windowBits");
    if (raw == null) dart.nullFailed(I[108], 507, 76, "raw");
    io._ZLibDecoderSink.__proto__.new.call(this, sink, io.RawZLibFilter._makeZLibInflateFilter(windowBits, dictionary, raw));
    ;
  }).prototype = io._ZLibDecoderSink.prototype;
  dart.addTypeTests(io._ZLibDecoderSink);
  dart.addTypeCaches(io._ZLibDecoderSink);
  dart.setLibraryUri(io._ZLibDecoderSink, I[105]);
  io.Directory = class Directory extends core.Object {
    static new(path) {
      if (path == null) dart.nullFailed(I[109], 112, 28, "path");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return new io._Directory.new(path);
      }
      return overrides.createDirectory(path);
    }
    static fromRawPath(path) {
      if (path == null) dart.nullFailed(I[109], 121, 43, "path");
      return new io._Directory.fromRawPath(path);
    }
    static fromUri(uri) {
      if (uri == null) dart.nullFailed(I[109], 129, 33, "uri");
      return io.Directory.new(uri.toFilePath());
    }
    static get current() {
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io._Directory.current;
      }
      return overrides.getCurrentDirectory();
    }
    static set current(path) {
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        io._Directory.current = path;
        return;
      }
      overrides.setCurrentDirectory(core.String.as(path));
    }
    static get systemTemp() {
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io._Directory.systemTemp;
      }
      return overrides.getSystemTempDirectory();
    }
  };
  (io.Directory[dart.mixinNew] = function() {
  }).prototype = io.Directory.prototype;
  dart.addTypeTests(io.Directory);
  dart.addTypeCaches(io.Directory);
  io.Directory[dart.implements] = () => [io.FileSystemEntity];
  dart.setLibraryUri(io.Directory, I[105]);
  var _path$ = dart.privateName(io, "_Directory._path");
  var _rawPath = dart.privateName(io, "_Directory._rawPath");
  var _path$0 = dart.privateName(io, "_path");
  var _rawPath$ = dart.privateName(io, "_rawPath");
  var _isErrorResponse = dart.privateName(io, "_isErrorResponse");
  var _exceptionOrErrorFromResponse = dart.privateName(io, "_exceptionOrErrorFromResponse");
  var _absolutePath = dart.privateName(io, "_absolutePath");
  var _delete = dart.privateName(io, "_delete");
  var _deleteSync = dart.privateName(io, "_deleteSync");
  io.FileSystemEntity = class FileSystemEntity extends core.Object {
    get uri() {
      return core._Uri.file(this.path);
    }
    resolveSymbolicLinks() {
      return io._File._dispatchWithNamespace(6, [null, this[_rawPath$]]).then(core.String, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot resolve symbolic links", this.path));
        }
        return T$0.FutureOrOfString().as(response);
      }, T$0.dynamicToFutureOrOfString()));
    }
    resolveSymbolicLinksSync() {
      let result = io.FileSystemEntity._resolveSymbolicLinks(io._Namespace._namespace, this[_rawPath$]);
      io.FileSystemEntity._throwIfError(core.Object.as(result), "Cannot resolve symbolic links", this.path);
      return core.String.as(result);
    }
    stat() {
      return io.FileStat.stat(this.path);
    }
    statSync() {
      return io.FileStat.statSync(this.path);
    }
    delete(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[111], 390, 41, "recursive");
      return this[_delete]({recursive: recursive});
    }
    deleteSync(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[111], 407, 25, "recursive");
      return this[_deleteSync]({recursive: recursive});
    }
    watch(opts) {
      let events = opts && 'events' in opts ? opts.events : 15;
      if (events == null) dart.nullFailed(I[111], 442, 12, "events");
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[111], 442, 47, "recursive");
      let trimmedPath = io.FileSystemEntity._trimTrailingPathSeparators(this.path);
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io._FileSystemWatcher._watch(trimmedPath, events, recursive);
      }
      return overrides.fsWatch(trimmedPath, events, recursive);
    }
    static _identical(path1, path2) {
      if (path1 == null) dart.nullFailed(I[111], 455, 41, "path1");
      if (path2 == null) dart.nullFailed(I[111], 455, 55, "path2");
      return io._File._dispatchWithNamespace(28, [null, path1, path2]).then(core.bool, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Error in FileSystemEntity.identical(" + dart.str(path1) + ", " + dart.str(path2) + ")", ""));
        }
        return T$.FutureOrOfbool().as(response);
      }, T$0.dynamicToFutureOrOfbool()));
    }
    static identical(path1, path2) {
      if (path1 == null) dart.nullFailed(I[111], 478, 40, "path1");
      if (path2 == null) dart.nullFailed(I[111], 478, 54, "path2");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileSystemEntity._identical(path1, path2);
      }
      return overrides.fseIdentical(path1, path2);
    }
    get isAbsolute() {
      return io.FileSystemEntity._isAbsolute(this.path);
    }
    static _isAbsolute(path) {
      if (path == null) dart.nullFailed(I[111], 509, 34, "path");
      if (dart.test(io.Platform.isWindows)) {
        return path[$startsWith](io.FileSystemEntity._absoluteWindowsPathPattern);
      } else {
        return path[$startsWith]("/");
      }
    }
    get [_absolutePath]() {
      if (dart.test(this.isAbsolute)) return this.path;
      if (dart.test(io.Platform.isWindows)) return io.FileSystemEntity._absoluteWindowsPath(this.path);
      let current = io.Directory.current.path;
      if (current[$endsWith]("/")) {
        return dart.str(current) + dart.str(this.path);
      } else {
        return dart.str(current) + dart.str(io.Platform.pathSeparator) + dart.str(this.path);
      }
    }
    static _windowsDriveLetter(path) {
      if (path == null) dart.nullFailed(I[111], 544, 41, "path");
      if (path[$isEmpty] || !path[$startsWith](":", 1)) return -1;
      let first = (path[$codeUnitAt](0) & ~32 >>> 0) >>> 0;
      if (first >= 65 && first <= 91) return first;
      return -1;
    }
    static _absoluteWindowsPath(path) {
      if (path == null) dart.nullFailed(I[111], 552, 45, "path");
      if (!dart.test(io.Platform.isWindows)) dart.assertFailed(null, I[111], 553, 12, "Platform.isWindows");
      if (!!dart.test(io.FileSystemEntity._isAbsolute(path))) dart.assertFailed(null, I[111], 554, 12, "!_isAbsolute(path)");
      let current = io.Directory.current.path;
      if (path[$startsWith]("\\")) {
        if (!!path[$startsWith]("\\", 1)) dart.assertFailed(null, I[111], 559, 14, "!path.startsWith(r'\\', 1)");
        let currentDrive = io.FileSystemEntity._windowsDriveLetter(current);
        if (dart.notNull(currentDrive) >= 0) {
          return current[$_get](0) + ":" + dart.str(path);
        }
        if (current[$startsWith]("\\\\")) {
          let serverEnd = current[$indexOf]("\\", 2);
          if (serverEnd >= 0) {
            let shareEnd = current[$indexOf]("\\", serverEnd + 1);
            if (shareEnd < 0) shareEnd = current.length;
            return current[$substring](0, shareEnd) + dart.str(path);
          }
        }
        return path;
      }
      let entityDrive = io.FileSystemEntity._windowsDriveLetter(path);
      if (dart.notNull(entityDrive) >= 0) {
        if (entityDrive != io.FileSystemEntity._windowsDriveLetter(current)) {
          return path[$_get](0) + ":\\" + dart.str(path);
        }
        path = path[$substring](2);
        if (!!path[$startsWith]("\\\\")) dart.assertFailed(null, I[111], 596, 14, "!path.startsWith(r'\\\\')");
      }
      if (current[$endsWith]("\\") || current[$endsWith]("/")) {
        return dart.str(current) + dart.str(path);
      }
      return dart.str(current) + "\\" + dart.str(path);
    }
    static _identicalSync(path1, path2) {
      if (path1 == null) dart.nullFailed(I[111], 604, 37, "path1");
      if (path2 == null) dart.nullFailed(I[111], 604, 51, "path2");
      let result = io.FileSystemEntity._identicalNative(io._Namespace._namespace, path1, path2);
      io.FileSystemEntity._throwIfError(core.Object.as(result), "Error in FileSystemEntity.identicalSync");
      return core.bool.as(result);
    }
    static identicalSync(path1, path2) {
      if (path1 == null) dart.nullFailed(I[111], 620, 36, "path1");
      if (path2 == null) dart.nullFailed(I[111], 620, 50, "path2");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileSystemEntity._identicalSync(path1, path2);
      }
      return overrides.fseIdenticalSync(path1, path2);
    }
    static get isWatchSupported() {
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io._FileSystemWatcher.isSupported;
      }
      return overrides.fsWatchIsSupported();
    }
    static _toUtf8Array(s) {
      if (s == null) dart.nullFailed(I[111], 641, 40, "s");
      return io.FileSystemEntity._toNullTerminatedUtf8Array(convert.utf8.encoder.convert(s));
    }
    static _toNullTerminatedUtf8Array(l) {
      if (l == null) dart.nullFailed(I[111], 644, 57, "l");
      if (dart.test(l[$isNotEmpty]) && l[$last] !== 0) {
        let tmp = _native_typed_data.NativeUint8List.new(dart.notNull(l[$length]) + 1);
        tmp[$setRange](0, l[$length], l);
        return tmp;
      } else {
        return l;
      }
    }
    static _toStringFromUtf8Array(l) {
      if (l == null) dart.nullFailed(I[111], 654, 50, "l");
      let nonNullTerminated = l;
      if (l[$last] === 0) {
        nonNullTerminated = typed_data.Uint8List.view(l[$buffer], l[$offsetInBytes], dart.notNull(l[$length]) - 1);
      }
      return convert.utf8.decode(nonNullTerminated, {allowMalformed: true});
    }
    static type(path, opts) {
      if (path == null) dart.nullFailed(I[111], 667, 51, "path");
      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
      if (followLinks == null) dart.nullFailed(I[111], 668, 13, "followLinks");
      return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), followLinks);
    }
    static typeSync(path, opts) {
      if (path == null) dart.nullFailed(I[111], 679, 47, "path");
      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
      if (followLinks == null) dart.nullFailed(I[111], 679, 59, "followLinks");
      return io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), followLinks);
    }
    static isLink(path) {
      if (path == null) dart.nullFailed(I[111], 687, 37, "path");
      return io.FileSystemEntity._isLinkRaw(io.FileSystemEntity._toUtf8Array(path));
    }
    static _isLinkRaw(rawPath) {
      if (rawPath == null) dart.nullFailed(I[111], 689, 44, "rawPath");
      return io.FileSystemEntity._getType(rawPath, false).then(core.bool, dart.fn(type => {
        if (type == null) dart.nullFailed(I[111], 690, 14, "type");
        return dart.equals(type, io.FileSystemEntityType.link);
      }, T$0.FileSystemEntityTypeTobool()));
    }
    static isFile(path) {
      if (path == null) dart.nullFailed(I[111], 695, 37, "path");
      return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), true).then(core.bool, dart.fn(type => {
        if (type == null) dart.nullFailed(I[111], 696, 14, "type");
        return dart.equals(type, io.FileSystemEntityType.file);
      }, T$0.FileSystemEntityTypeTobool()));
    }
    static isDirectory(path) {
      if (path == null) dart.nullFailed(I[111], 701, 42, "path");
      return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), true).then(core.bool, dart.fn(type => {
        if (type == null) dart.nullFailed(I[111], 703, 18, "type");
        return dart.equals(type, io.FileSystemEntityType.directory);
      }, T$0.FileSystemEntityTypeTobool()));
    }
    static isLinkSync(path) {
      if (path == null) dart.nullFailed(I[111], 709, 33, "path");
      return io.FileSystemEntity._isLinkRawSync(io.FileSystemEntity._toUtf8Array(path));
    }
    static _isLinkRawSync(rawPath) {
      return dart.equals(io.FileSystemEntity._getTypeSync(typed_data.Uint8List.as(rawPath), false), io.FileSystemEntityType.link);
    }
    static isFileSync(path) {
      if (path == null) dart.nullFailed(I[111], 718, 33, "path");
      return dart.equals(io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), true), io.FileSystemEntityType.file);
    }
    static isDirectorySync(path) {
      if (path == null) dart.nullFailed(I[111], 725, 38, "path");
      return dart.equals(io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), true), io.FileSystemEntityType.directory);
    }
    static _getTypeNative(namespace, rawPath, followLinks) {
      if (namespace == null) dart.nullFailed(I[107], 93, 18, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 93, 39, "rawPath");
      if (followLinks == null) dart.nullFailed(I[107], 93, 53, "followLinks");
      dart.throw(new core.UnsupportedError.new("FileSystemEntity._getType"));
    }
    static _identicalNative(namespace, path1, path2) {
      if (namespace == null) dart.nullFailed(I[107], 98, 38, "namespace");
      if (path1 == null) dart.nullFailed(I[107], 98, 56, "path1");
      if (path2 == null) dart.nullFailed(I[107], 98, 70, "path2");
      dart.throw(new core.UnsupportedError.new("FileSystemEntity._identical"));
    }
    static _resolveSymbolicLinks(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 103, 43, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 103, 64, "rawPath");
      dart.throw(new core.UnsupportedError.new("FileSystemEntity._resolveSymbolicLinks"));
    }
    static parentOf(path) {
      if (path == null) dart.nullFailed(I[111], 749, 33, "path");
      let rootEnd = -1;
      if (dart.test(io.Platform.isWindows)) {
        if (path[$startsWith](io.FileSystemEntity._absoluteWindowsPathPattern)) {
          rootEnd = path[$indexOf](core.RegExp.new("[/\\\\]"), 2);
          if (rootEnd === -1) return path;
        } else if (path[$startsWith]("\\") || path[$startsWith]("/")) {
          rootEnd = 0;
        }
      } else if (path[$startsWith]("/")) {
        rootEnd = 0;
      }
      let pos = path[$lastIndexOf](io.FileSystemEntity._parentRegExp);
      if (pos > rootEnd) {
        return path[$substring](0, pos + 1);
      } else if (rootEnd > -1) {
        return path[$substring](0, rootEnd + 1);
      } else {
        return ".";
      }
    }
    get parent() {
      return io.Directory.new(io.FileSystemEntity.parentOf(this.path));
    }
    static _getTypeSyncHelper(rawPath, followLinks) {
      if (rawPath == null) dart.nullFailed(I[111], 778, 17, "rawPath");
      if (followLinks == null) dart.nullFailed(I[111], 778, 31, "followLinks");
      let result = io.FileSystemEntity._getTypeNative(io._Namespace._namespace, rawPath, followLinks);
      io.FileSystemEntity._throwIfError(core.Object.as(result), "Error getting type of FileSystemEntity");
      return io.FileSystemEntityType._lookup(core.int.as(result));
    }
    static _getTypeSync(rawPath, followLinks) {
      if (rawPath == null) dart.nullFailed(I[111], 785, 17, "rawPath");
      if (followLinks == null) dart.nullFailed(I[111], 785, 31, "followLinks");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileSystemEntity._getTypeSyncHelper(rawPath, followLinks);
      }
      return overrides.fseGetTypeSync(convert.utf8.decode(rawPath, {allowMalformed: true}), followLinks);
    }
    static _getTypeRequest(rawPath, followLinks) {
      if (rawPath == null) dart.nullFailed(I[111], 795, 17, "rawPath");
      if (followLinks == null) dart.nullFailed(I[111], 795, 31, "followLinks");
      return io._File._dispatchWithNamespace(27, [null, rawPath, followLinks]).then(io.FileSystemEntityType, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Error getting type", convert.utf8.decode(rawPath, {allowMalformed: true})));
        }
        return io.FileSystemEntityType._lookup(core.int.as(response));
      }, T$0.dynamicToFileSystemEntityType()));
    }
    static _getType(rawPath, followLinks) {
      if (rawPath == null) dart.nullFailed(I[111], 807, 17, "rawPath");
      if (followLinks == null) dart.nullFailed(I[111], 807, 31, "followLinks");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileSystemEntity._getTypeRequest(rawPath, followLinks);
      }
      return overrides.fseGetType(convert.utf8.decode(rawPath, {allowMalformed: true}), followLinks);
    }
    static _throwIfError(result, msg, path = null) {
      if (result == null) dart.nullFailed(I[111], 816, 31, "result");
      if (msg == null) dart.nullFailed(I[111], 816, 46, "msg");
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new(msg, path, result));
      } else if (core.ArgumentError.is(result)) {
        dart.throw(result);
      }
    }
    static _trimTrailingPathSeparators(path) {
      if (path == null) dart.nullFailed(I[111], 825, 52, "path");
      core.ArgumentError.checkNotNull(core.String, path, "path");
      if (dart.test(io.Platform.isWindows)) {
        while (path.length > 1 && (path[$endsWith](io.Platform.pathSeparator) || path[$endsWith]("/"))) {
          path = path[$substring](0, path.length - 1);
        }
      } else {
        while (path.length > 1 && path[$endsWith](io.Platform.pathSeparator)) {
          path = path[$substring](0, path.length - 1);
        }
      }
      return path;
    }
    static _ensureTrailingPathSeparators(path) {
      if (path == null) dart.nullFailed(I[111], 842, 54, "path");
      if (path[$isEmpty]) path = ".";
      if (dart.test(io.Platform.isWindows)) {
        while (!path[$endsWith](io.Platform.pathSeparator) && !path[$endsWith]("/")) {
          path = dart.str(path) + dart.str(io.Platform.pathSeparator);
        }
      } else {
        while (!path[$endsWith](io.Platform.pathSeparator)) {
          path = dart.str(path) + dart.str(io.Platform.pathSeparator);
        }
      }
      return path;
    }
  };
  (io.FileSystemEntity.new = function() {
    ;
  }).prototype = io.FileSystemEntity.prototype;
  dart.addTypeTests(io.FileSystemEntity);
  dart.addTypeCaches(io.FileSystemEntity);
  dart.setMethodSignature(io.FileSystemEntity, () => ({
    __proto__: dart.getMethods(io.FileSystemEntity.__proto__),
    resolveSymbolicLinks: dart.fnType(async.Future$(core.String), []),
    resolveSymbolicLinksSync: dart.fnType(core.String, []),
    stat: dart.fnType(async.Future$(io.FileStat), []),
    statSync: dart.fnType(io.FileStat, []),
    delete: dart.fnType(async.Future$(io.FileSystemEntity), [], {recursive: core.bool}, {}),
    deleteSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    watch: dart.fnType(async.Stream$(io.FileSystemEvent), [], {events: core.int, recursive: core.bool}, {})
  }));
  dart.setGetterSignature(io.FileSystemEntity, () => ({
    __proto__: dart.getGetters(io.FileSystemEntity.__proto__),
    uri: core.Uri,
    isAbsolute: core.bool,
    [_absolutePath]: core.String,
    parent: io.Directory
  }));
  dart.setLibraryUri(io.FileSystemEntity, I[105]);
  dart.defineLazy(io.FileSystemEntity, {
    /*io.FileSystemEntity._backslashChar*/get _backslashChar() {
      return 92;
    },
    /*io.FileSystemEntity._slashChar*/get _slashChar() {
      return 47;
    },
    /*io.FileSystemEntity._colonChar*/get _colonChar() {
      return 58;
    },
    /*io.FileSystemEntity._absoluteWindowsPathPattern*/get _absoluteWindowsPathPattern() {
      return core.RegExp.new("^(?:\\\\\\\\|[a-zA-Z]:[/\\\\])");
    },
    /*io.FileSystemEntity._parentRegExp*/get _parentRegExp() {
      return dart.test(io.Platform.isWindows) ? core.RegExp.new("[^/\\\\][/\\\\]+[^/\\\\]") : core.RegExp.new("[^/]/+[^/]");
    }
  }, false);
  io._Directory = class _Directory extends io.FileSystemEntity {
    get [_path$0]() {
      return this[_path$];
    }
    set [_path$0](value) {
      super[_path$0] = value;
    }
    get [_rawPath$]() {
      return this[_rawPath];
    }
    set [_rawPath$](value) {
      super[_rawPath$] = value;
    }
    get path() {
      return this[_path$0];
    }
    static _current(namespace) {
      if (namespace == null) dart.nullFailed(I[107], 14, 30, "namespace");
      dart.throw(new core.UnsupportedError.new("Directory._current"));
    }
    static _setCurrent(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 19, 33, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 19, 54, "rawPath");
      dart.throw(new core.UnsupportedError.new("Directory_SetCurrent"));
    }
    static _createTemp(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 24, 33, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 24, 54, "rawPath");
      dart.throw(new core.UnsupportedError.new("Directory._createTemp"));
    }
    static _systemTemp(namespace) {
      if (namespace == null) dart.nullFailed(I[107], 29, 40, "namespace");
      dart.throw(new core.UnsupportedError.new("Directory._systemTemp"));
    }
    static _exists(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 34, 29, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 34, 50, "rawPath");
      dart.throw(new core.UnsupportedError.new("Directory._exists"));
    }
    static _create(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 39, 29, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 39, 50, "rawPath");
      dart.throw(new core.UnsupportedError.new("Directory._create"));
    }
    static _deleteNative(namespace, rawPath, recursive) {
      if (namespace == null) dart.nullFailed(I[107], 45, 18, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 45, 39, "rawPath");
      if (recursive == null) dart.nullFailed(I[107], 45, 53, "recursive");
      dart.throw(new core.UnsupportedError.new("Directory._deleteNative"));
    }
    static _rename(namespace, rawPath, newPath) {
      if (namespace == null) dart.nullFailed(I[107], 50, 29, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 50, 50, "rawPath");
      if (newPath == null) dart.nullFailed(I[107], 50, 66, "newPath");
      dart.throw(new core.UnsupportedError.new("Directory._rename"));
    }
    static _fillWithDirectoryListing(namespace, list, rawPath, recursive, followLinks) {
      if (namespace == null) dart.nullFailed(I[107], 56, 18, "namespace");
      if (list == null) dart.nullFailed(I[107], 57, 30, "list");
      if (rawPath == null) dart.nullFailed(I[107], 58, 17, "rawPath");
      if (recursive == null) dart.nullFailed(I[107], 59, 12, "recursive");
      if (followLinks == null) dart.nullFailed(I[107], 60, 12, "followLinks");
      dart.throw(new core.UnsupportedError.new("Directory._fillWithDirectoryListing"));
    }
    static get current() {
      let result = io._Directory._current(io._Namespace._namespace);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Getting current working directory failed", "", result));
      }
      return new io._Directory.new(core.String.as(result));
    }
    static set current(path) {
      let _rawPath = null;
      let _rawPath$35isSet = false;
      function _rawPath$35get() {
        return _rawPath$35isSet ? _rawPath : dart.throw(new _internal.LateError.localNI("_rawPath"));
      }
      dart.fn(_rawPath$35get, T$0.VoidToUint8List());
      function _rawPath$35set(t185) {
        if (t185 == null) dart.nullFailed(I[110], 49, 20, "null");
        _rawPath$35isSet = true;
        return _rawPath = t185;
      }
      dart.fn(_rawPath$35set, T$0.Uint8ListTodynamic());
      if (io._Directory.is(path)) {
        _rawPath$35set(path[_rawPath$]);
      } else if (io.Directory.is(path)) {
        _rawPath$35set(io.FileSystemEntity._toUtf8Array(path.path));
      } else if (typeof path == 'string') {
        _rawPath$35set(io.FileSystemEntity._toUtf8Array(path));
      } else {
        dart.throw(new core.ArgumentError.new(dart.str(core.Error.safeToString(path)) + " is not a String or" + " Directory"));
      }
      if (!dart.test(io._EmbedderConfig._mayChdir)) {
        dart.throw(new core.UnsupportedError.new("This embedder disallows setting Directory.current"));
      }
      let result = io._Directory._setCurrent(io._Namespace._namespace, _rawPath$35get());
      if (core.ArgumentError.is(result)) dart.throw(result);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Setting current working directory failed", dart.toString(path), result));
      }
    }
    get uri() {
      return core._Uri.directory(this.path);
    }
    exists() {
      return io._File._dispatchWithNamespace(36, [null, this[_rawPath$]]).then(core.bool, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionOrErrorFromResponse](response, "Exists failed"));
        }
        return dart.equals(response, 1);
      }, T$0.dynamicTobool()));
    }
    existsSync() {
      let result = io._Directory._exists(io._Namespace._namespace, this[_rawPath$]);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Exists failed", this.path, result));
      }
      return dart.equals(result, 1);
    }
    get absolute() {
      return io.Directory.new(this[_absolutePath]);
    }
    create(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 101, 34, "recursive");
      if (dart.test(recursive)) {
        return this.exists().then(io.Directory, dart.fn(exists => {
          if (exists == null) dart.nullFailed(I[110], 103, 29, "exists");
          if (dart.test(exists)) return this;
          if (this.path != this.parent.path) {
            return this.parent.create({recursive: true}).then(io.Directory, dart.fn(_ => {
              if (_ == null) dart.nullFailed(I[110], 106, 55, "_");
              return this.create();
            }, T$0.DirectoryToFutureOfDirectory()));
          } else {
            return this.create();
          }
        }, T$0.boolToFutureOrOfDirectory()));
      } else {
        return io._File._dispatchWithNamespace(34, [null, this[_rawPath$]]).then(io.Directory, dart.fn(response => {
          if (dart.test(this[_isErrorResponse](response))) {
            dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation failed"));
          }
          return this;
        }, T$0.dynamicTo_Directory()));
      }
    }
    createSync(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 124, 25, "recursive");
      if (dart.test(recursive)) {
        if (dart.test(this.existsSync())) return;
        if (this.path != this.parent.path) {
          this.parent.createSync({recursive: true});
        }
      }
      let result = io._Directory._create(io._Namespace._namespace, this[_rawPath$]);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Creation failed", this.path, result));
      }
    }
    static get systemTemp() {
      return io.Directory.new(io._Directory._systemTemp(io._Namespace._namespace));
    }
    createTemp(prefix = null) {
      prefix == null ? prefix = "" : null;
      if (this.path === "") {
        dart.throw(new core.ArgumentError.new("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
      }
      let fullPrefix = null;
      if (this.path[$endsWith]("/") || dart.test(io.Platform.isWindows) && this.path[$endsWith]("\\")) {
        fullPrefix = dart.str(this.path) + dart.str(prefix);
      } else {
        fullPrefix = dart.str(this.path) + dart.str(io.Platform.pathSeparator) + dart.str(prefix);
      }
      return io._File._dispatchWithNamespace(37, [null, io.FileSystemEntity._toUtf8Array(fullPrefix)]).then(io.Directory, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation of temporary directory failed"));
        }
        return io.Directory.new(core.String.as(response));
      }, T$0.dynamicToDirectory()));
    }
    createTempSync(prefix = null) {
      prefix == null ? prefix = "" : null;
      if (this.path === "") {
        dart.throw(new core.ArgumentError.new("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
      }
      let fullPrefix = null;
      if (this.path[$endsWith]("/") || dart.test(io.Platform.isWindows) && this.path[$endsWith]("\\")) {
        fullPrefix = dart.str(this.path) + dart.str(prefix);
      } else {
        fullPrefix = dart.str(this.path) + dart.str(io.Platform.pathSeparator) + dart.str(prefix);
      }
      let result = io._Directory._createTemp(io._Namespace._namespace, io.FileSystemEntity._toUtf8Array(fullPrefix));
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Creation of temporary directory failed", fullPrefix, result));
      }
      return io.Directory.new(core.String.as(result));
    }
    [_delete](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 187, 35, "recursive");
      return io._File._dispatchWithNamespace(35, [null, this[_rawPath$], recursive]).then(io.Directory, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionOrErrorFromResponse](response, "Deletion failed"));
        }
        return this;
      }, T$0.dynamicTo_Directory()));
    }
    [_deleteSync](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 198, 26, "recursive");
      let result = io._Directory._deleteNative(io._Namespace._namespace, this[_rawPath$], recursive);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Deletion failed", this.path, result));
      }
    }
    rename(newPath) {
      if (newPath == null) dart.nullFailed(I[110], 205, 35, "newPath");
      return io._File._dispatchWithNamespace(41, [null, this[_rawPath$], newPath]).then(io.Directory, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionOrErrorFromResponse](response, "Rename failed"));
        }
        return io.Directory.new(newPath);
      }, T$0.dynamicToDirectory()));
    }
    renameSync(newPath) {
      if (newPath == null) dart.nullFailed(I[110], 215, 31, "newPath");
      core.ArgumentError.checkNotNull(core.String, newPath, "newPath");
      let result = io._Directory._rename(io._Namespace._namespace, this[_rawPath$], newPath);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Rename failed", this.path, result));
      }
      return io.Directory.new(newPath);
    }
    list(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 226, 13, "recursive");
      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
      if (followLinks == null) dart.nullFailed(I[110], 226, 37, "followLinks");
      return new io._AsyncDirectoryLister.new(io.FileSystemEntity._toUtf8Array(io.FileSystemEntity._ensureTrailingPathSeparators(this.path)), recursive, followLinks).stream;
    }
    listSync(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[110], 238, 13, "recursive");
      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
      if (followLinks == null) dart.nullFailed(I[110], 238, 37, "followLinks");
      core.ArgumentError.checkNotNull(core.bool, recursive, "recursive");
      core.ArgumentError.checkNotNull(core.bool, followLinks, "followLinks");
      let result = T$0.JSArrayOfFileSystemEntity().of([]);
      io._Directory._fillWithDirectoryListing(io._Namespace._namespace, result, io.FileSystemEntity._toUtf8Array(io.FileSystemEntity._ensureTrailingPathSeparators(this.path)), recursive, followLinks);
      return result;
    }
    toString() {
      return "Directory: '" + dart.str(this.path) + "'";
    }
    [_isErrorResponse](response) {
      return core.List.is(response) && !dart.equals(response[$_get](0), 0);
    }
    [_exceptionOrErrorFromResponse](response, message) {
      if (message == null) dart.nullFailed(I[110], 260, 50, "message");
      if (!dart.test(this[_isErrorResponse](response))) dart.assertFailed(null, I[110], 261, 12, "_isErrorResponse(response)");
      switch (dart.dsend(response, '_get', [0])) {
        case 1:
        {
          return new core.ArgumentError.new();
        }
        case 2:
        {
          let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
          return new io.FileSystemException.new(message, this.path, err);
        }
        default:
        {
          return core.Exception.new("Unknown error");
        }
      }
    }
    static _checkNotNull(T, t, name) {
      if (name == null) dart.nullFailed(I[110], 275, 41, "name");
      core.ArgumentError.checkNotNull(T, t, name);
      return t;
    }
  };
  (io._Directory.new = function(path) {
    if (path == null) dart.nullFailed(I[110], 11, 21, "path");
    this[_path$] = io._Directory._checkNotNull(core.String, path, "path");
    this[_rawPath] = io.FileSystemEntity._toUtf8Array(path);
    ;
  }).prototype = io._Directory.prototype;
  (io._Directory.fromRawPath = function(rawPath) {
    if (rawPath == null) dart.nullFailed(I[110], 15, 36, "rawPath");
    this[_rawPath] = io.FileSystemEntity._toNullTerminatedUtf8Array(io._Directory._checkNotNull(typed_data.Uint8List, rawPath, "rawPath"));
    this[_path$] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
    ;
  }).prototype = io._Directory.prototype;
  dart.addTypeTests(io._Directory);
  dart.addTypeCaches(io._Directory);
  io._Directory[dart.implements] = () => [io.Directory];
  dart.setMethodSignature(io._Directory, () => ({
    __proto__: dart.getMethods(io._Directory.__proto__),
    exists: dart.fnType(async.Future$(core.bool), []),
    existsSync: dart.fnType(core.bool, []),
    create: dart.fnType(async.Future$(io.Directory), [], {recursive: core.bool}, {}),
    createSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    createTemp: dart.fnType(async.Future$(io.Directory), [], [dart.nullable(core.String)]),
    createTempSync: dart.fnType(io.Directory, [], [dart.nullable(core.String)]),
    [_delete]: dart.fnType(async.Future$(io.Directory), [], {recursive: core.bool}, {}),
    [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    rename: dart.fnType(async.Future$(io.Directory), [core.String]),
    renameSync: dart.fnType(io.Directory, [core.String]),
    list: dart.fnType(async.Stream$(io.FileSystemEntity), [], {followLinks: core.bool, recursive: core.bool}, {}),
    listSync: dart.fnType(core.List$(io.FileSystemEntity), [], {followLinks: core.bool, recursive: core.bool}, {}),
    [_isErrorResponse]: dart.fnType(core.bool, [dart.dynamic]),
    [_exceptionOrErrorFromResponse]: dart.fnType(dart.dynamic, [dart.dynamic, core.String])
  }));
  dart.setGetterSignature(io._Directory, () => ({
    __proto__: dart.getGetters(io._Directory.__proto__),
    path: core.String,
    absolute: io.Directory
  }));
  dart.setLibraryUri(io._Directory, I[105]);
  dart.setFieldSignature(io._Directory, () => ({
    __proto__: dart.getFields(io._Directory.__proto__),
    [_path$0]: dart.finalFieldType(core.String),
    [_rawPath$]: dart.finalFieldType(typed_data.Uint8List)
  }));
  dart.defineExtensionMethods(io._Directory, ['toString']);
  io._AsyncDirectoryListerOps = class _AsyncDirectoryListerOps extends core.Object {
    static new(pointer) {
      if (pointer == null) dart.nullFailed(I[107], 68, 40, "pointer");
      dart.throw(new core.UnsupportedError.new("Directory._list"));
    }
  };
  (io._AsyncDirectoryListerOps[dart.mixinNew] = function() {
  }).prototype = io._AsyncDirectoryListerOps.prototype;
  dart.addTypeTests(io._AsyncDirectoryListerOps);
  dart.addTypeCaches(io._AsyncDirectoryListerOps);
  dart.setLibraryUri(io._AsyncDirectoryListerOps, I[105]);
  var _ops = dart.privateName(io, "_ops");
  var _pointer = dart.privateName(io, "_pointer");
  var _cleanup = dart.privateName(io, "_cleanup");
  io._AsyncDirectoryLister = class _AsyncDirectoryLister extends core.Object {
    [_pointer]() {
      let t187;
      t187 = this[_ops];
      return t187 == null ? null : t187.getPointer();
    }
    get stream() {
      return this.controller.stream;
    }
    onListen() {
      io._File._dispatchWithNamespace(38, [null, this.rawPath, this.recursive, this.followLinks]).then(core.Null, dart.fn(response => {
        if (core.int.is(response)) {
          this[_ops] = io._AsyncDirectoryListerOps.new(response);
          this.next();
        } else if (core.Error.is(response)) {
          this.controller.addError(response, response[$stackTrace]);
          this.close();
        } else {
          this.error(response);
          this.close();
        }
      }, T$.dynamicToNull()));
    }
    onResume() {
      if (!dart.test(this.nextRunning)) {
        this.next();
      }
    }
    onCancel() {
      this.canceled = true;
      if (!dart.test(this.nextRunning)) {
        this.close();
      }
      return this.closeCompleter.future;
    }
    next() {
      if (dart.test(this.canceled)) {
        this.close();
        return;
      }
      if (dart.test(this.controller.isPaused) || dart.test(this.nextRunning)) {
        return;
      }
      let pointer = this[_pointer]();
      if (pointer == null) {
        return;
      }
      this.nextRunning = true;
      io._IOService._dispatch(39, [pointer]).then(core.Null, dart.fn(result => {
        let t187;
        this.nextRunning = false;
        if (core.List.is(result)) {
          this.next();
          if (!(result[$length][$modulo](2) === 0)) dart.assertFailed(null, I[110], 378, 16, "result.length % 2 == 0");
          for (let i = 0; i < dart.notNull(result[$length]); i = i + 1) {
            if (!(i[$modulo](2) === 0)) dart.assertFailed(null, I[110], 380, 18, "i % 2 == 0");
            switch (result[$_get]((t187 = i, i = t187 + 1, t187))) {
              case 0:
              {
                this.controller.add(io.File.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
                break;
              }
              case 1:
              {
                this.controller.add(io.Directory.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
                break;
              }
              case 2:
              {
                this.controller.add(io.Link.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
                break;
              }
              case 3:
              {
                this.error(result[$_get](i));
                break;
              }
              case 4:
              {
                this.canceled = true;
                return;
              }
            }
          }
        } else {
          this.controller.addError(new io.FileSystemException.new("Internal error"));
        }
      }, T$.dynamicToNull()));
    }
    [_cleanup]() {
      this.controller.close();
      this.closeCompleter.complete();
      this[_ops] = null;
    }
    close() {
      if (dart.test(this.closed)) {
        return;
      }
      if (dart.test(this.nextRunning)) {
        return;
      }
      this.closed = true;
      let pointer = this[_pointer]();
      if (pointer == null) {
        this[_cleanup]();
      } else {
        io._IOService._dispatch(40, [pointer]).whenComplete(dart.bind(this, _cleanup));
      }
    }
    error(message) {
      let errorType = dart.dsend(dart.dsend(message, '_get', [2]), '_get', [0]);
      if (dart.equals(errorType, 1)) {
        this.controller.addError(new core.ArgumentError.new());
      } else if (dart.equals(errorType, 2)) {
        let responseErrorInfo = dart.dsend(message, '_get', [2]);
        let err = new io.OSError.new(core.String.as(dart.dsend(responseErrorInfo, '_get', [2])), core.int.as(dart.dsend(responseErrorInfo, '_get', [1])));
        let errorPath = dart.dsend(message, '_get', [1]);
        if (errorPath == null) {
          errorPath = convert.utf8.decode(this.rawPath, {allowMalformed: true});
        } else if (typed_data.Uint8List.is(errorPath)) {
          errorPath = convert.utf8.decode(T$0.ListOfint().as(dart.dsend(message, '_get', [1])), {allowMalformed: true});
        }
        this.controller.addError(new io.FileSystemException.new("Directory listing failed", T$.StringN().as(errorPath), err));
      } else {
        this.controller.addError(new io.FileSystemException.new("Internal error"));
      }
    }
  };
  (io._AsyncDirectoryLister.new = function(rawPath, recursive, followLinks) {
    let t187;
    if (rawPath == null) dart.nullFailed(I[110], 310, 30, "rawPath");
    if (recursive == null) dart.nullFailed(I[110], 310, 44, "recursive");
    if (followLinks == null) dart.nullFailed(I[110], 310, 60, "followLinks");
    this.controller = T$0.StreamControllerOfFileSystemEntity().new({sync: true});
    this.canceled = false;
    this.nextRunning = false;
    this.closed = false;
    this[_ops] = null;
    this.closeCompleter = async.Completer.new();
    this.rawPath = rawPath;
    this.recursive = recursive;
    this.followLinks = followLinks;
    t187 = this.controller;
    (() => {
      t187.onListen = dart.bind(this, 'onListen');
      t187.onResume = dart.bind(this, 'onResume');
      t187.onCancel = dart.bind(this, 'onCancel');
      return t187;
    })();
  }).prototype = io._AsyncDirectoryLister.prototype;
  dart.addTypeTests(io._AsyncDirectoryLister);
  dart.addTypeCaches(io._AsyncDirectoryLister);
  dart.setMethodSignature(io._AsyncDirectoryLister, () => ({
    __proto__: dart.getMethods(io._AsyncDirectoryLister.__proto__),
    [_pointer]: dart.fnType(dart.nullable(core.int), []),
    onListen: dart.fnType(dart.void, []),
    onResume: dart.fnType(dart.void, []),
    onCancel: dart.fnType(async.Future, []),
    next: dart.fnType(dart.void, []),
    [_cleanup]: dart.fnType(dart.void, []),
    close: dart.fnType(dart.void, []),
    error: dart.fnType(dart.void, [dart.dynamic])
  }));
  dart.setGetterSignature(io._AsyncDirectoryLister, () => ({
    __proto__: dart.getGetters(io._AsyncDirectoryLister.__proto__),
    stream: async.Stream$(io.FileSystemEntity)
  }));
  dart.setLibraryUri(io._AsyncDirectoryLister, I[105]);
  dart.setFieldSignature(io._AsyncDirectoryLister, () => ({
    __proto__: dart.getFields(io._AsyncDirectoryLister.__proto__),
    rawPath: dart.finalFieldType(typed_data.Uint8List),
    recursive: dart.finalFieldType(core.bool),
    followLinks: dart.finalFieldType(core.bool),
    controller: dart.finalFieldType(async.StreamController$(io.FileSystemEntity)),
    canceled: dart.fieldType(core.bool),
    nextRunning: dart.fieldType(core.bool),
    closed: dart.fieldType(core.bool),
    [_ops]: dart.fieldType(dart.nullable(io._AsyncDirectoryListerOps)),
    closeCompleter: dart.fieldType(async.Completer)
  }));
  dart.defineLazy(io._AsyncDirectoryLister, {
    /*io._AsyncDirectoryLister.listFile*/get listFile() {
      return 0;
    },
    /*io._AsyncDirectoryLister.listDirectory*/get listDirectory() {
      return 1;
    },
    /*io._AsyncDirectoryLister.listLink*/get listLink() {
      return 2;
    },
    /*io._AsyncDirectoryLister.listError*/get listError() {
      return 3;
    },
    /*io._AsyncDirectoryLister.listDone*/get listDone() {
      return 4;
    },
    /*io._AsyncDirectoryLister.responseType*/get responseType() {
      return 0;
    },
    /*io._AsyncDirectoryLister.responsePath*/get responsePath() {
      return 1;
    },
    /*io._AsyncDirectoryLister.responseComplete*/get responseComplete() {
      return 1;
    },
    /*io._AsyncDirectoryLister.responseError*/get responseError() {
      return 2;
    }
  }, false);
  io._EmbedderConfig = class _EmbedderConfig extends core.Object {
    static _setDomainPolicies(domainNetworkPolicyJson) {
      if (domainNetworkPolicyJson == null) dart.nullFailed(I[112], 44, 41, "domainNetworkPolicyJson");
      io._domainPolicies = io._constructDomainPolicies(domainNetworkPolicyJson);
    }
  };
  (io._EmbedderConfig.new = function() {
    ;
  }).prototype = io._EmbedderConfig.prototype;
  dart.addTypeTests(io._EmbedderConfig);
  dart.addTypeCaches(io._EmbedderConfig);
  dart.setLibraryUri(io._EmbedderConfig, I[105]);
  dart.defineLazy(io._EmbedderConfig, {
    /*io._EmbedderConfig._mayChdir*/get _mayChdir() {
      return true;
    },
    set _mayChdir(_) {},
    /*io._EmbedderConfig._mayExit*/get _mayExit() {
      return true;
    },
    set _mayExit(_) {},
    /*io._EmbedderConfig._maySetEchoMode*/get _maySetEchoMode() {
      return true;
    },
    set _maySetEchoMode(_) {},
    /*io._EmbedderConfig._maySetLineMode*/get _maySetLineMode() {
      return true;
    },
    set _maySetLineMode(_) {},
    /*io._EmbedderConfig._maySleep*/get _maySleep() {
      return true;
    },
    set _maySleep(_) {},
    /*io._EmbedderConfig._mayInsecurelyConnectToAllDomains*/get _mayInsecurelyConnectToAllDomains() {
      return true;
    },
    set _mayInsecurelyConnectToAllDomains(_) {}
  }, false);
  io._EventHandler = class _EventHandler extends core.Object {
    static _sendData(sender, sendPort, data) {
      if (sendPort == null) dart.nullFailed(I[107], 76, 50, "sendPort");
      if (data == null) dart.nullFailed(I[107], 76, 64, "data");
      dart.throw(new core.UnsupportedError.new("EventHandler._sendData"));
    }
  };
  (io._EventHandler.new = function() {
    ;
  }).prototype = io._EventHandler.prototype;
  dart.addTypeTests(io._EventHandler);
  dart.addTypeCaches(io._EventHandler);
  dart.setLibraryUri(io._EventHandler, I[105]);
  var _mode$ = dart.privateName(io, "FileMode._mode");
  var _mode = dart.privateName(io, "_mode");
  io.FileMode = class FileMode extends core.Object {
    get [_mode]() {
      return this[_mode$];
    }
    set [_mode](value) {
      super[_mode] = value;
    }
  };
  (io.FileMode._internal = function(_mode) {
    if (_mode == null) dart.nullFailed(I[113], 42, 33, "_mode");
    this[_mode$] = _mode;
    ;
  }).prototype = io.FileMode.prototype;
  dart.addTypeTests(io.FileMode);
  dart.addTypeCaches(io.FileMode);
  dart.setLibraryUri(io.FileMode, I[105]);
  dart.setFieldSignature(io.FileMode, () => ({
    __proto__: dart.getFields(io.FileMode.__proto__),
    [_mode]: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(io.FileMode, {
    /*io.FileMode.read*/get read() {
      return C[109] || CT.C109;
    },
    /*io.FileMode.READ*/get READ() {
      return C[109] || CT.C109;
    },
    /*io.FileMode.write*/get write() {
      return C[110] || CT.C110;
    },
    /*io.FileMode.WRITE*/get WRITE() {
      return C[110] || CT.C110;
    },
    /*io.FileMode.append*/get append() {
      return C[111] || CT.C111;
    },
    /*io.FileMode.APPEND*/get APPEND() {
      return C[111] || CT.C111;
    },
    /*io.FileMode.writeOnly*/get writeOnly() {
      return C[112] || CT.C112;
    },
    /*io.FileMode.WRITE_ONLY*/get WRITE_ONLY() {
      return C[112] || CT.C112;
    },
    /*io.FileMode.writeOnlyAppend*/get writeOnlyAppend() {
      return C[113] || CT.C113;
    },
    /*io.FileMode.WRITE_ONLY_APPEND*/get WRITE_ONLY_APPEND() {
      return C[113] || CT.C113;
    }
  }, false);
  var _type$1 = dart.privateName(io, "FileLock._type");
  var _type = dart.privateName(io, "_type");
  io.FileLock = class FileLock extends core.Object {
    get [_type]() {
      return this[_type$1];
    }
    set [_type](value) {
      super[_type] = value;
    }
  };
  (io.FileLock._internal = function(_type) {
    if (_type == null) dart.nullFailed(I[113], 95, 33, "_type");
    this[_type$1] = _type;
    ;
  }).prototype = io.FileLock.prototype;
  dart.addTypeTests(io.FileLock);
  dart.addTypeCaches(io.FileLock);
  dart.setLibraryUri(io.FileLock, I[105]);
  dart.setFieldSignature(io.FileLock, () => ({
    __proto__: dart.getFields(io.FileLock.__proto__),
    [_type]: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(io.FileLock, {
    /*io.FileLock.shared*/get shared() {
      return C[114] || CT.C114;
    },
    /*io.FileLock.SHARED*/get SHARED() {
      return C[114] || CT.C114;
    },
    /*io.FileLock.exclusive*/get exclusive() {
      return C[115] || CT.C115;
    },
    /*io.FileLock.EXCLUSIVE*/get EXCLUSIVE() {
      return C[115] || CT.C115;
    },
    /*io.FileLock.blockingShared*/get blockingShared() {
      return C[116] || CT.C116;
    },
    /*io.FileLock.BLOCKING_SHARED*/get BLOCKING_SHARED() {
      return C[116] || CT.C116;
    },
    /*io.FileLock.blockingExclusive*/get blockingExclusive() {
      return C[117] || CT.C117;
    },
    /*io.FileLock.BLOCKING_EXCLUSIVE*/get BLOCKING_EXCLUSIVE() {
      return C[117] || CT.C117;
    }
  }, false);
  io.File = class File extends core.Object {
    static new(path) {
      if (path == null) dart.nullFailed(I[113], 237, 23, "path");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return new io._File.new(path);
      }
      return overrides.createFile(path);
    }
    static fromUri(uri) {
      if (uri == null) dart.nullFailed(I[113], 248, 28, "uri");
      return io.File.new(uri.toFilePath());
    }
    static fromRawPath(rawPath) {
      if (rawPath == null) dart.nullFailed(I[113], 254, 38, "rawPath");
      return new io._File.fromRawPath(rawPath);
    }
  };
  (io.File[dart.mixinNew] = function() {
  }).prototype = io.File.prototype;
  dart.addTypeTests(io.File);
  dart.addTypeCaches(io.File);
  io.File[dart.implements] = () => [io.FileSystemEntity];
  dart.setLibraryUri(io.File, I[105]);
  io.RandomAccessFile = class RandomAccessFile extends core.Object {};
  (io.RandomAccessFile.new = function() {
    ;
  }).prototype = io.RandomAccessFile.prototype;
  dart.addTypeTests(io.RandomAccessFile);
  dart.addTypeCaches(io.RandomAccessFile);
  dart.setLibraryUri(io.RandomAccessFile, I[105]);
  var message$3 = dart.privateName(io, "FileSystemException.message");
  var path$ = dart.privateName(io, "FileSystemException.path");
  var osError$ = dart.privateName(io, "FileSystemException.osError");
  io.FileSystemException = class FileSystemException extends core.Object {
    get message() {
      return this[message$3];
    }
    set message(value) {
      super.message = value;
    }
    get path() {
      return this[path$];
    }
    set path(value) {
      super.path = value;
    }
    get osError() {
      return this[osError$];
    }
    set osError(value) {
      super.osError = value;
    }
    toString() {
      let sb = new core.StringBuffer.new();
      sb.write("FileSystemException");
      if (this.message[$isNotEmpty]) {
        sb.write(": " + dart.str(this.message));
        if (this.path != null) {
          sb.write(", path = '" + dart.str(this.path) + "'");
        }
        if (this.osError != null) {
          sb.write(" (" + dart.str(this.osError) + ")");
        }
      } else if (this.osError != null) {
        sb.write(": " + dart.str(this.osError));
        if (this.path != null) {
          sb.write(", path = '" + dart.str(this.path) + "'");
        }
      } else if (this.path != null) {
        sb.write(": " + dart.str(this.path));
      }
      return sb.toString();
    }
  };
  (io.FileSystemException.new = function(message = "", path = "", osError = null) {
    if (message == null) dart.nullFailed(I[113], 926, 35, "message");
    this[message$3] = message;
    this[path$] = path;
    this[osError$] = osError;
    ;
  }).prototype = io.FileSystemException.prototype;
  dart.addTypeTests(io.FileSystemException);
  dart.addTypeCaches(io.FileSystemException);
  io.FileSystemException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.FileSystemException, I[105]);
  dart.setFieldSignature(io.FileSystemException, () => ({
    __proto__: dart.getFields(io.FileSystemException.__proto__),
    message: dart.finalFieldType(core.String),
    path: dart.finalFieldType(dart.nullable(core.String)),
    osError: dart.finalFieldType(dart.nullable(io.OSError))
  }));
  dart.defineExtensionMethods(io.FileSystemException, ['toString']);
  var ___FileStream__controller = dart.privateName(io, "_#_FileStream#_controller");
  var ___FileStream__controller_isSet = dart.privateName(io, "_#_FileStream#_controller#isSet");
  var ___FileStream__openedFile = dart.privateName(io, "_#_FileStream#_openedFile");
  var ___FileStream__openedFile_isSet = dart.privateName(io, "_#_FileStream#_openedFile#isSet");
  var _closeCompleter = dart.privateName(io, "_closeCompleter");
  var _unsubscribed = dart.privateName(io, "_unsubscribed");
  var _readInProgress = dart.privateName(io, "_readInProgress");
  var _atEnd = dart.privateName(io, "_atEnd");
  var _end$ = dart.privateName(io, "_end");
  var _position$ = dart.privateName(io, "_position");
  var _controller = dart.privateName(io, "_controller");
  var _openedFile = dart.privateName(io, "_openedFile");
  var _start$1 = dart.privateName(io, "_start");
  var _readBlock = dart.privateName(io, "_readBlock");
  var _closeFile = dart.privateName(io, "_closeFile");
  io._FileStream = class _FileStream extends async.Stream$(core.List$(core.int)) {
    get [_controller]() {
      let t187;
      return dart.test(this[___FileStream__controller_isSet]) ? (t187 = this[___FileStream__controller], t187) : dart.throw(new _internal.LateError.fieldNI("_controller"));
    }
    set [_controller](t187) {
      if (t187 == null) dart.nullFailed(I[114], 12, 36, "null");
      this[___FileStream__controller_isSet] = true;
      this[___FileStream__controller] = t187;
    }
    get [_openedFile]() {
      let t188;
      return dart.test(this[___FileStream__openedFile_isSet]) ? (t188 = this[___FileStream__openedFile], t188) : dart.throw(new _internal.LateError.fieldNI("_openedFile"));
    }
    set [_openedFile](t188) {
      if (t188 == null) dart.nullFailed(I[114], 16, 25, "null");
      this[___FileStream__openedFile_isSet] = true;
      this[___FileStream__openedFile] = t188;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      this[_controller] = T$0.StreamControllerOfUint8List().new({sync: true, onListen: dart.bind(this, _start$1), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
          this[_unsubscribed] = true;
          return this[_closeFile]();
        }, T$0.VoidToFuture())});
      return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    [_closeFile]() {
      if (dart.test(this[_readInProgress]) || dart.test(this[_closed])) {
        return this[_closeCompleter].future;
      }
      this[_closed] = true;
      const done = () => {
        this[_closeCompleter].complete();
        this[_controller].close();
      };
      dart.fn(done, T$.VoidTovoid());
      this[_openedFile].close().catchError(dart.bind(this[_controller], 'addError')).whenComplete(done);
      return this[_closeCompleter].future;
    }
    [_readBlock]() {
      if (dart.test(this[_readInProgress])) return;
      if (dart.test(this[_atEnd])) {
        this[_closeFile]();
        return;
      }
      this[_readInProgress] = true;
      let readBytes = 65536;
      let end = this[_end$];
      if (end != null) {
        readBytes = math.min(core.int, readBytes, dart.notNull(end) - dart.notNull(this[_position$]));
        if (readBytes < 0) {
          this[_readInProgress] = false;
          if (!dart.test(this[_unsubscribed])) {
            this[_controller].addError(new core.RangeError.new("Bad end position: " + dart.str(end)));
            this[_closeFile]();
            this[_unsubscribed] = true;
          }
          return;
        }
      }
      this[_openedFile].read(readBytes).then(core.Null, dart.fn(block => {
        if (block == null) dart.nullFailed(I[114], 85, 39, "block");
        this[_readInProgress] = false;
        if (dart.test(this[_unsubscribed])) {
          this[_closeFile]();
          return;
        }
        this[_position$] = dart.notNull(this[_position$]) + dart.notNull(block[$length]);
        if (dart.notNull(block[$length]) < readBytes || this[_end$] != null && this[_position$] == this[_end$]) {
          this[_atEnd] = true;
        }
        if (!dart.test(this[_atEnd]) && !dart.test(this[_controller].isPaused)) {
          this[_readBlock]();
        }
        this[_controller].add(block);
        if (dart.test(this[_atEnd])) {
          this[_closeFile]();
        }
      }, T$0.Uint8ListToNull())).catchError(dart.fn((e, s) => {
        if (!dart.test(this[_unsubscribed])) {
          this[_controller].addError(core.Object.as(e), T$.StackTraceN().as(s));
          this[_closeFile]();
          this[_unsubscribed] = true;
        }
      }, T$.dynamicAnddynamicToNull()));
    }
    [_start$1]() {
      if (dart.notNull(this[_position$]) < 0) {
        this[_controller].addError(new core.RangeError.new("Bad start position: " + dart.str(this[_position$])));
        this[_controller].close();
        this[_closeCompleter].complete();
        return;
      }
      const onReady = file => {
        if (file == null) dart.nullFailed(I[114], 119, 35, "file");
        this[_openedFile] = file;
        this[_readInProgress] = false;
        this[_readBlock]();
      };
      dart.fn(onReady, T$0.RandomAccessFileTovoid());
      const onOpenFile = file => {
        if (file == null) dart.nullFailed(I[114], 125, 38, "file");
        if (dart.notNull(this[_position$]) > 0) {
          file.setPosition(this[_position$]).then(dart.void, onReady, {onError: dart.fn((e, s) => {
              this[_controller].addError(core.Object.as(e), T$.StackTraceN().as(s));
              this[_readInProgress] = false;
              this[_closeFile]();
            }, T$.dynamicAnddynamicToNull())});
        } else {
          onReady(file);
        }
      };
      dart.fn(onOpenFile, T$0.RandomAccessFileTovoid());
      const openFailed = (error, stackTrace) => {
        this[_controller].addError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
        this[_controller].close();
        this[_closeCompleter].complete();
      };
      dart.fn(openFailed, T$.dynamicAnddynamicTovoid());
      let path = this[_path$0];
      if (path != null) {
        io.File.new(path).open({mode: io.FileMode.read}).then(dart.void, onOpenFile, {onError: openFailed});
      } else {
        try {
          onOpenFile(io._File._openStdioSync(0));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            openFailed(e, s);
          } else
            throw e$;
        }
      }
    }
  };
  (io._FileStream.new = function(_path, position, _end) {
    let t187;
    this[___FileStream__controller] = null;
    this[___FileStream__controller_isSet] = false;
    this[___FileStream__openedFile] = null;
    this[___FileStream__openedFile_isSet] = false;
    this[_closeCompleter] = async.Completer.new();
    this[_unsubscribed] = false;
    this[_readInProgress] = true;
    this[_closed] = false;
    this[_atEnd] = false;
    this[_path$0] = _path;
    this[_end$] = _end;
    this[_position$] = (t187 = position, t187 == null ? 0 : t187);
    io._FileStream.__proto__.new.call(this);
    ;
  }).prototype = io._FileStream.prototype;
  (io._FileStream.forStdin = function() {
    this[___FileStream__controller] = null;
    this[___FileStream__controller_isSet] = false;
    this[___FileStream__openedFile] = null;
    this[___FileStream__openedFile_isSet] = false;
    this[_closeCompleter] = async.Completer.new();
    this[_unsubscribed] = false;
    this[_readInProgress] = true;
    this[_closed] = false;
    this[_atEnd] = false;
    this[_end$] = null;
    this[_path$0] = null;
    this[_position$] = 0;
    io._FileStream.__proto__.new.call(this);
    ;
  }).prototype = io._FileStream.prototype;
  dart.addTypeTests(io._FileStream);
  dart.addTypeCaches(io._FileStream);
  dart.setMethodSignature(io._FileStream, () => ({
    __proto__: dart.getMethods(io._FileStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    [_closeFile]: dart.fnType(async.Future, []),
    [_readBlock]: dart.fnType(dart.void, []),
    [_start$1]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(io._FileStream, () => ({
    __proto__: dart.getGetters(io._FileStream.__proto__),
    [_controller]: async.StreamController$(typed_data.Uint8List),
    [_openedFile]: io.RandomAccessFile
  }));
  dart.setSetterSignature(io._FileStream, () => ({
    __proto__: dart.getSetters(io._FileStream.__proto__),
    [_controller]: async.StreamController$(typed_data.Uint8List),
    [_openedFile]: io.RandomAccessFile
  }));
  dart.setLibraryUri(io._FileStream, I[105]);
  dart.setFieldSignature(io._FileStream, () => ({
    __proto__: dart.getFields(io._FileStream.__proto__),
    [___FileStream__controller]: dart.fieldType(dart.nullable(async.StreamController$(typed_data.Uint8List))),
    [___FileStream__controller_isSet]: dart.fieldType(core.bool),
    [_path$0]: dart.fieldType(dart.nullable(core.String)),
    [___FileStream__openedFile]: dart.fieldType(dart.nullable(io.RandomAccessFile)),
    [___FileStream__openedFile_isSet]: dart.fieldType(core.bool),
    [_position$]: dart.fieldType(core.int),
    [_end$]: dart.fieldType(dart.nullable(core.int)),
    [_closeCompleter]: dart.finalFieldType(async.Completer),
    [_unsubscribed]: dart.fieldType(core.bool),
    [_readInProgress]: dart.fieldType(core.bool),
    [_closed]: dart.fieldType(core.bool),
    [_atEnd]: dart.fieldType(core.bool)
  }));
  var _file = dart.privateName(io, "_file");
  var _openFuture = dart.privateName(io, "_openFuture");
  io._FileStreamConsumer = class _FileStreamConsumer extends async.StreamConsumer$(core.List$(core.int)) {
    addStream(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[114], 169, 45, "stream");
      let completer = T$0.CompleterOfFileN().sync();
      this[_openFuture].then(core.Null, dart.fn(openedFile => {
        if (openedFile == null) dart.nullFailed(I[114], 171, 23, "openedFile");
        let _subscription = null;
        let _subscription$35isSet = false;
        function _subscription$35get() {
          return _subscription$35isSet ? _subscription : dart.throw(new _internal.LateError.localNI("_subscription"));
        }
        dart.fn(_subscription$35get, T$0.VoidToStreamSubscriptionOfListOfint());
        function _subscription$35set(t193) {
          if (t193 == null) dart.nullFailed(I[114], 172, 42, "null");
          _subscription$35isSet = true;
          return _subscription = t193;
        }
        dart.fn(_subscription$35set, T$0.StreamSubscriptionOfListOfintTodynamic());
        function error(e, stackTrace) {
          if (stackTrace == null) dart.nullFailed(I[114], 173, 32, "stackTrace");
          _subscription$35get().cancel();
          openedFile.close();
          completer.completeError(core.Object.as(e), stackTrace);
        }
        dart.fn(error, T$0.dynamicAndStackTraceTovoid());
        _subscription$35set(stream.listen(dart.fn(d => {
          if (d == null) dart.nullFailed(I[114], 179, 38, "d");
          _subscription$35get().pause();
          try {
            openedFile.writeFrom(d, 0, d[$length]).then(dart.void, dart.fn(_ => {
              if (_ == null) dart.nullFailed(I[114], 184, 22, "_");
              return _subscription$35get().resume();
            }, T$0.RandomAccessFileTovoid()), {onError: error});
          } catch (e$) {
            let e = dart.getThrown(e$);
            let stackTrace = dart.stackTrace(e$);
            if (core.Object.is(e)) {
              error(e, stackTrace);
            } else
              throw e$;
          }
        }, T$0.ListOfintTovoid()), {onDone: dart.fn(() => {
            completer.complete(this[_file]);
          }, T$.VoidTovoid()), onError: error, cancelOnError: true}));
      }, T$0.RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
      return completer.future;
    }
    close() {
      return this[_openFuture].then(dart.void, dart.fn(openedFile => {
        if (openedFile == null) dart.nullFailed(I[114], 196, 25, "openedFile");
        return openedFile.close();
      }, T$0.RandomAccessFileToFutureOfvoid())).then(T$0.FileN(), dart.fn(_ => this[_file], T$0.voidToFileN()));
    }
  };
  (io._FileStreamConsumer.new = function(file, mode) {
    if (file == null) dart.nullFailed(I[114], 162, 28, "file");
    if (mode == null) dart.nullFailed(I[114], 162, 43, "mode");
    this[_file] = file;
    this[_openFuture] = file.open({mode: mode});
    ;
  }).prototype = io._FileStreamConsumer.prototype;
  (io._FileStreamConsumer.fromStdio = function(fd) {
    if (fd == null) dart.nullFailed(I[114], 166, 37, "fd");
    this[_file] = null;
    this[_openFuture] = T$0.FutureOfRandomAccessFile().value(io._File._openStdioSync(fd));
    ;
  }).prototype = io._FileStreamConsumer.prototype;
  dart.addTypeTests(io._FileStreamConsumer);
  dart.addTypeCaches(io._FileStreamConsumer);
  dart.setMethodSignature(io._FileStreamConsumer, () => ({
    __proto__: dart.getMethods(io._FileStreamConsumer.__proto__),
    addStream: dart.fnType(async.Future$(dart.nullable(io.File)), [dart.nullable(core.Object)]),
    close: dart.fnType(async.Future$(dart.nullable(io.File)), [])
  }));
  dart.setLibraryUri(io._FileStreamConsumer, I[105]);
  dart.setFieldSignature(io._FileStreamConsumer, () => ({
    __proto__: dart.getFields(io._FileStreamConsumer.__proto__),
    [_file]: dart.fieldType(dart.nullable(io.File)),
    [_openFuture]: dart.fieldType(async.Future$(io.RandomAccessFile))
  }));
  var _path$1 = dart.privateName(io, "_File._path");
  var _rawPath$0 = dart.privateName(io, "_File._rawPath");
  var _tryDecode = dart.privateName(io, "_tryDecode");
  io._File = class _File extends io.FileSystemEntity {
    get [_path$0]() {
      return this[_path$1];
    }
    set [_path$0](value) {
      super[_path$0] = value;
    }
    get [_rawPath$]() {
      return this[_rawPath$0];
    }
    set [_rawPath$](value) {
      super[_rawPath$] = value;
    }
    get path() {
      return this[_path$0];
    }
    static _namespacePointer() {
      return io._Namespace._namespacePointer;
    }
    static _dispatchWithNamespace(request, data) {
      if (request == null) dart.nullFailed(I[114], 222, 44, "request");
      if (data == null) dart.nullFailed(I[114], 222, 58, "data");
      data[$_set](0, io._File._namespacePointer());
      return io._IOService._dispatch(request, data);
    }
    exists() {
      return io._File._dispatchWithNamespace(0, [null, this[_rawPath$]]).then(core.bool, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot check existence", this.path));
        }
        return T$.FutureOrOfbool().as(response);
      }, T$0.dynamicToFutureOrOfbool()));
    }
    static _exists(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 111, 29, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 111, 50, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._exists"));
    }
    existsSync() {
      let result = io._File._exists(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(result), "Cannot check existence of file", this.path);
      return core.bool.as(result);
    }
    get absolute() {
      return io.File.new(this[_absolutePath]);
    }
    create(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[114], 247, 29, "recursive");
      let result = dart.test(recursive) ? this.parent.create({recursive: true}) : T$.FutureOfNull().value(null);
      return result.then(dart.dynamic, dart.fn(_ => io._File._dispatchWithNamespace(1, [null, this[_rawPath$]]), T$0.DirectoryNToFuture())).then(io.File, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot create file", this.path));
        }
        return this;
      }, T$0.dynamicTo_File()));
    }
    static _create(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 116, 29, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 116, 50, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._create"));
    }
    static _createLink(namespace, rawPath, target) {
      if (namespace == null) dart.nullFailed(I[107], 121, 33, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 121, 54, "rawPath");
      if (target == null) dart.nullFailed(I[107], 121, 70, "target");
      dart.throw(new core.UnsupportedError.new("File._createLink"));
    }
    static _linkTarget(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 126, 33, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 126, 54, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._linkTarget"));
    }
    createSync(opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[114], 268, 25, "recursive");
      if (dart.test(recursive)) {
        this.parent.createSync({recursive: true});
      }
      let result = io._File._create(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(result), "Cannot create file", this.path);
    }
    [_delete](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[114], 276, 30, "recursive");
      if (dart.test(recursive)) {
        return io.Directory.new(this.path).delete({recursive: true}).then(io.File, dart.fn(_ => {
          if (_ == null) dart.nullFailed(I[114], 278, 64, "_");
          return this;
        }, T$0.FileSystemEntityTo_File()));
      }
      return io._File._dispatchWithNamespace(2, [null, this[_rawPath$]]).then(io.File, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot delete file", this.path));
        }
        return this;
      }, T$0.dynamicTo_File()));
    }
    static _deleteNative(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 131, 35, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 131, 56, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._deleteNative"));
    }
    static _deleteLinkNative(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 136, 39, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 136, 60, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._deleteLinkNative"));
    }
    [_deleteSync](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[114], 293, 26, "recursive");
      if (dart.test(recursive)) {
        return io.Directory.fromRawPath(this[_rawPath$]).deleteSync({recursive: true});
      }
      let result = io._File._deleteNative(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(result), "Cannot delete file", this.path);
    }
    rename(newPath) {
      if (newPath == null) dart.nullFailed(I[114], 301, 30, "newPath");
      return io._File._dispatchWithNamespace(3, [null, this[_rawPath$], newPath]).then(io.File, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot rename file to '" + dart.str(newPath) + "'", this.path));
        }
        return io.File.new(newPath);
      }, T$0.dynamicToFile()));
    }
    static _rename(namespace, oldPath, newPath) {
      if (namespace == null) dart.nullFailed(I[107], 141, 29, "namespace");
      if (oldPath == null) dart.nullFailed(I[107], 141, 50, "oldPath");
      if (newPath == null) dart.nullFailed(I[107], 141, 66, "newPath");
      dart.throw(new core.UnsupportedError.new("File._rename"));
    }
    static _renameLink(namespace, oldPath, newPath) {
      if (namespace == null) dart.nullFailed(I[107], 146, 33, "namespace");
      if (oldPath == null) dart.nullFailed(I[107], 146, 54, "oldPath");
      if (newPath == null) dart.nullFailed(I[107], 146, 70, "newPath");
      dart.throw(new core.UnsupportedError.new("File._renameLink"));
    }
    renameSync(newPath) {
      if (newPath == null) dart.nullFailed(I[114], 318, 26, "newPath");
      let result = io._File._rename(io._Namespace._namespace, this[_rawPath$], newPath);
      io._File.throwIfError(core.Object.as(result), "Cannot rename file to '" + dart.str(newPath) + "'", this.path);
      return io.File.new(newPath);
    }
    copy(newPath) {
      if (newPath == null) dart.nullFailed(I[114], 324, 28, "newPath");
      return io._File._dispatchWithNamespace(4, [null, this[_rawPath$], newPath]).then(io.File, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot copy file to '" + dart.str(newPath) + "'", this.path));
        }
        return io.File.new(newPath);
      }, T$0.dynamicToFile()));
    }
    static _copy(namespace, oldPath, newPath) {
      if (namespace == null) dart.nullFailed(I[107], 151, 27, "namespace");
      if (oldPath == null) dart.nullFailed(I[107], 151, 48, "oldPath");
      if (newPath == null) dart.nullFailed(I[107], 151, 64, "newPath");
      dart.throw(new core.UnsupportedError.new("File._copy"));
    }
    copySync(newPath) {
      if (newPath == null) dart.nullFailed(I[114], 338, 24, "newPath");
      let result = io._File._copy(io._Namespace._namespace, this[_rawPath$], newPath);
      io._File.throwIfError(core.Object.as(result), "Cannot copy file to '" + dart.str(newPath) + "'", this.path);
      return io.File.new(newPath);
    }
    open(opts) {
      let mode = opts && 'mode' in opts ? opts.mode : C[109] || CT.C109;
      if (mode == null) dart.nullFailed(I[114], 344, 43, "mode");
      if (!dart.equals(mode, io.FileMode.read) && !dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
        return T$0.FutureOfRandomAccessFile().error(new core.ArgumentError.new("Invalid file mode for this operation"));
      }
      return io._File._dispatchWithNamespace(5, [null, this[_rawPath$], mode[_mode]]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot open file", this.path));
        }
        return new io._RandomAccessFile.new(core.int.as(response), this.path);
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    length() {
      return io._File._dispatchWithNamespace(12, [null, this[_rawPath$]]).then(core.int, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot retrieve length of file", this.path));
        }
        return T$0.FutureOrOfint().as(response);
      }, T$0.dynamicToFutureOrOfint()));
    }
    static _lengthFromPath(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 156, 37, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 156, 58, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._lengthFromPath"));
    }
    lengthSync() {
      let result = io._File._lengthFromPath(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(result), "Cannot retrieve length of file", this.path);
      return core.int.as(result);
    }
    lastAccessed() {
      return io._File._dispatchWithNamespace(13, [null, this[_rawPath$]]).then(core.DateTime, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot retrieve access time", this.path));
        }
        return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(response));
      }, T$0.dynamicToDateTime()));
    }
    static _lastAccessed(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 166, 35, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 166, 56, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._lastAccessed"));
    }
    lastAccessedSync() {
      let ms = io._File._lastAccessed(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(ms), "Cannot retrieve access time", this.path);
      return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(ms));
    }
    setLastAccessed(time) {
      if (time == null) dart.nullFailed(I[114], 400, 35, "time");
      let millis = time.millisecondsSinceEpoch;
      return io._File._dispatchWithNamespace(14, [null, this[_rawPath$], millis]).then(dart.dynamic, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot set access time", this.path));
        }
        return null;
      }, T$.dynamicToNull()));
    }
    static _setLastAccessed(namespace, rawPath, millis) {
      if (namespace == null) dart.nullFailed(I[107], 176, 38, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 176, 59, "rawPath");
      if (millis == null) dart.nullFailed(I[107], 176, 72, "millis");
      dart.throw(new core.UnsupportedError.new("File._setLastAccessed"));
    }
    setLastAccessedSync(time) {
      if (time == null) dart.nullFailed(I[114], 415, 37, "time");
      let millis = time.millisecondsSinceEpoch;
      let result = io._File._setLastAccessed(io._Namespace._namespace, this[_rawPath$], millis);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Failed to set file access time", this.path, result));
      }
    }
    lastModified() {
      return io._File._dispatchWithNamespace(15, [null, this[_rawPath$]]).then(core.DateTime, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot retrieve modification time", this.path));
        }
        return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(response));
      }, T$0.dynamicToDateTime()));
    }
    static _lastModified(namespace, rawPath) {
      if (namespace == null) dart.nullFailed(I[107], 161, 35, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 161, 56, "rawPath");
      dart.throw(new core.UnsupportedError.new("File._lastModified"));
    }
    lastModifiedSync() {
      let ms = io._File._lastModified(io._Namespace._namespace, this[_rawPath$]);
      io._File.throwIfError(core.Object.as(ms), "Cannot retrieve modification time", this.path);
      return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(ms));
    }
    setLastModified(time) {
      if (time == null) dart.nullFailed(I[114], 443, 35, "time");
      let millis = time.millisecondsSinceEpoch;
      return io._File._dispatchWithNamespace(16, [null, this[_rawPath$], millis]).then(dart.dynamic, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "Cannot set modification time", this.path));
        }
        return null;
      }, T$.dynamicToNull()));
    }
    static _setLastModified(namespace, rawPath, millis) {
      if (namespace == null) dart.nullFailed(I[107], 171, 38, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 171, 59, "rawPath");
      if (millis == null) dart.nullFailed(I[107], 171, 72, "millis");
      dart.throw(new core.UnsupportedError.new("File._setLastModified"));
    }
    setLastModifiedSync(time) {
      if (time == null) dart.nullFailed(I[114], 459, 37, "time");
      let millis = time.millisecondsSinceEpoch;
      let result = io._File._setLastModified(io._Namespace._namespace, this[_rawPath$], millis);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("Failed to set file modification time", this.path, result));
      }
    }
    static _open(namespace, rawPath, mode) {
      if (namespace == null) dart.nullFailed(I[107], 181, 27, "namespace");
      if (rawPath == null) dart.nullFailed(I[107], 181, 48, "rawPath");
      if (mode == null) dart.nullFailed(I[107], 181, 61, "mode");
      dart.throw(new core.UnsupportedError.new("File._open"));
    }
    openSync(opts) {
      let mode = opts && 'mode' in opts ? opts.mode : C[109] || CT.C109;
      if (mode == null) dart.nullFailed(I[114], 470, 39, "mode");
      if (!dart.equals(mode, io.FileMode.read) && !dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
        dart.throw(new core.ArgumentError.new("Invalid file mode for this operation"));
      }
      let id = io._File._open(io._Namespace._namespace, this[_rawPath$], mode[_mode]);
      io._File.throwIfError(core.Object.as(id), "Cannot open file", this.path);
      return new io._RandomAccessFile.new(core.int.as(id), this[_path$0]);
    }
    static _openStdio(fd) {
      if (fd == null) dart.nullFailed(I[107], 186, 29, "fd");
      dart.throw(new core.UnsupportedError.new("File._openStdio"));
    }
    static _openStdioSync(fd) {
      if (fd == null) dart.nullFailed(I[114], 485, 46, "fd");
      let id = io._File._openStdio(fd);
      if (id === 0) {
        dart.throw(new io.FileSystemException.new("Cannot open stdio file for: " + dart.str(fd)));
      }
      return new io._RandomAccessFile.new(id, "");
    }
    openRead(start = null, end = null) {
      return new io._FileStream.new(this.path, start, end);
    }
    openWrite(opts) {
      let mode = opts && 'mode' in opts ? opts.mode : C[110] || CT.C110;
      if (mode == null) dart.nullFailed(I[114], 497, 30, "mode");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 497, 62, "encoding");
      if (!dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
        dart.throw(new core.ArgumentError.new("Invalid file mode for this operation"));
      }
      let consumer = new io._FileStreamConsumer.new(this, mode);
      return io.IOSink.new(consumer, {encoding: encoding});
    }
    readAsBytes() {
      function readDataChunked(file) {
        if (file == null) dart.nullFailed(I[114], 509, 56, "file");
        let builder = _internal.BytesBuilder.new({copy: false});
        let completer = T$0.CompleterOfUint8List().new();
        function read() {
          file.read(65536).then(core.Null, dart.fn(data => {
            if (data == null) dart.nullFailed(I[114], 513, 37, "data");
            if (dart.notNull(data[$length]) > 0) {
              builder.add(data);
              read();
            } else {
              completer.complete(builder.takeBytes());
            }
          }, T$0.Uint8ListToNull()), {onError: dart.bind(completer, 'completeError')});
        }
        dart.fn(read, T$.VoidTovoid());
        read();
        return completer.future;
      }
      dart.fn(readDataChunked, T$0.RandomAccessFileToFutureOfUint8List());
      return this.open().then(typed_data.Uint8List, dart.fn(file => {
        if (file == null) dart.nullFailed(I[114], 527, 25, "file");
        return file.length().then(typed_data.Uint8List, dart.fn(length => {
          if (length == null) dart.nullFailed(I[114], 528, 34, "length");
          if (length === 0) {
            return readDataChunked(file);
          }
          return file.read(length);
        }, T$0.intToFutureOfUint8List())).whenComplete(dart.bind(file, 'close'));
      }, T$0.RandomAccessFileToFutureOfUint8List()));
    }
    readAsBytesSync() {
      let opened = this.openSync();
      try {
        let data = null;
        let length = opened.lengthSync();
        if (length === 0) {
          let builder = _internal.BytesBuilder.new({copy: false});
          do {
            data = opened.readSync(65536);
            if (dart.notNull(data[$length]) > 0) builder.add(data);
          } while (dart.notNull(data[$length]) > 0);
          data = builder.takeBytes();
        } else {
          data = opened.readSync(length);
        }
        return data;
      } finally {
        opened.closeSync();
      }
    }
    [_tryDecode](bytes, encoding) {
      if (bytes == null) dart.nullFailed(I[114], 560, 31, "bytes");
      if (encoding == null) dart.nullFailed(I[114], 560, 47, "encoding");
      try {
        return encoding.decode(bytes);
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          dart.throw(new io.FileSystemException.new("Failed to decode data using encoding '" + dart.str(encoding.name) + "'", this.path));
        } else
          throw e;
      }
    }
    readAsString(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 569, 41, "encoding");
      let stack = core.StackTrace.current;
      return this.readAsBytes().then(core.String, dart.fn(bytes => {
        if (bytes == null) dart.nullFailed(I[114], 574, 32, "bytes");
        try {
          return this[_tryDecode](bytes, encoding);
        } catch (e$) {
          let e = dart.getThrown(e$);
          if (core.Object.is(e)) {
            return T$0.FutureOfString().error(e, stack);
          } else
            throw e$;
        }
      }, T$0.Uint8ListToFutureOrOfString()));
    }
    readAsStringSync(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 583, 37, "encoding");
      return this[_tryDecode](this.readAsBytesSync(), encoding);
    }
    readAsLines(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 586, 46, "encoding");
      return this.readAsString({encoding: encoding}).then(T$.ListOfString(), dart.bind(C[118] || CT.C118, 'convert'));
    }
    readAsLinesSync(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 589, 42, "encoding");
      return (C[118] || CT.C118).convert(this.readAsStringSync({encoding: encoding}));
    }
    writeAsBytes(bytes, opts) {
      if (bytes == null) dart.nullFailed(I[114], 592, 39, "bytes");
      let mode = opts && 'mode' in opts ? opts.mode : C[110] || CT.C110;
      if (mode == null) dart.nullFailed(I[114], 593, 17, "mode");
      let flush = opts && 'flush' in opts ? opts.flush : false;
      if (flush == null) dart.nullFailed(I[114], 593, 45, "flush");
      return this.open({mode: mode}).then(io.File, dart.fn(file => {
        if (file == null) dart.nullFailed(I[114], 594, 35, "file");
        return file.writeFrom(bytes, 0, bytes[$length]).then(io.File, dart.fn(_ => {
          if (_ == null) dart.nullFailed(I[114], 595, 65, "_");
          if (dart.test(flush)) return file.flush().then(io.File, dart.fn(_ => {
            if (_ == null) dart.nullFailed(I[114], 596, 46, "_");
            return this;
          }, T$0.RandomAccessFileTo_File()));
          return this;
        }, T$0.RandomAccessFileToFutureOrOfFile())).whenComplete(dart.bind(file, 'close'));
      }, T$0.RandomAccessFileToFutureOfFile()));
    }
    writeAsBytesSync(bytes, opts) {
      if (bytes == null) dart.nullFailed(I[114], 602, 35, "bytes");
      let mode = opts && 'mode' in opts ? opts.mode : C[110] || CT.C110;
      if (mode == null) dart.nullFailed(I[114], 603, 17, "mode");
      let flush = opts && 'flush' in opts ? opts.flush : false;
      if (flush == null) dart.nullFailed(I[114], 603, 45, "flush");
      let opened = this.openSync({mode: mode});
      try {
        opened.writeFromSync(bytes, 0, bytes[$length]);
        if (dart.test(flush)) opened.flushSync();
      } finally {
        opened.closeSync();
      }
    }
    writeAsString(contents, opts) {
      if (contents == null) dart.nullFailed(I[114], 613, 37, "contents");
      let mode = opts && 'mode' in opts ? opts.mode : C[110] || CT.C110;
      if (mode == null) dart.nullFailed(I[114], 614, 17, "mode");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 615, 16, "encoding");
      let flush = opts && 'flush' in opts ? opts.flush : false;
      if (flush == null) dart.nullFailed(I[114], 616, 12, "flush");
      try {
        return this.writeAsBytes(encoding.encode(contents), {mode: mode, flush: flush});
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfFile().error(e);
        } else
          throw e$;
      }
    }
    writeAsStringSync(contents, opts) {
      if (contents == null) dart.nullFailed(I[114], 624, 33, "contents");
      let mode = opts && 'mode' in opts ? opts.mode : C[110] || CT.C110;
      if (mode == null) dart.nullFailed(I[114], 625, 17, "mode");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 626, 16, "encoding");
      let flush = opts && 'flush' in opts ? opts.flush : false;
      if (flush == null) dart.nullFailed(I[114], 627, 12, "flush");
      this.writeAsBytesSync(encoding.encode(contents), {mode: mode, flush: flush});
    }
    toString() {
      return "File: '" + dart.str(this.path) + "'";
    }
    static throwIfError(result, msg, path) {
      if (result == null) dart.nullFailed(I[114], 633, 30, "result");
      if (msg == null) dart.nullFailed(I[114], 633, 45, "msg");
      if (path == null) dart.nullFailed(I[114], 633, 57, "path");
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new(msg, path, result));
      }
    }
    static _checkNotNull(T, t, name) {
      if (name == null) dart.nullFailed(I[114], 640, 41, "name");
      core.ArgumentError.checkNotNull(T, t, name);
      return t;
    }
  };
  (io._File.new = function(path) {
    if (path == null) dart.nullFailed(I[114], 204, 16, "path");
    this[_path$1] = io._File._checkNotNull(core.String, path, "path");
    this[_rawPath$0] = io.FileSystemEntity._toUtf8Array(path);
    ;
  }).prototype = io._File.prototype;
  (io._File.fromRawPath = function(rawPath) {
    if (rawPath == null) dart.nullFailed(I[114], 208, 31, "rawPath");
    this[_rawPath$0] = io.FileSystemEntity._toNullTerminatedUtf8Array(io._File._checkNotNull(typed_data.Uint8List, rawPath, "rawPath"));
    this[_path$1] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
    ;
  }).prototype = io._File.prototype;
  dart.addTypeTests(io._File);
  dart.addTypeCaches(io._File);
  io._File[dart.implements] = () => [io.File];
  dart.setMethodSignature(io._File, () => ({
    __proto__: dart.getMethods(io._File.__proto__),
    exists: dart.fnType(async.Future$(core.bool), []),
    existsSync: dart.fnType(core.bool, []),
    create: dart.fnType(async.Future$(io.File), [], {recursive: core.bool}, {}),
    createSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    [_delete]: dart.fnType(async.Future$(io.File), [], {recursive: core.bool}, {}),
    [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    rename: dart.fnType(async.Future$(io.File), [core.String]),
    renameSync: dart.fnType(io.File, [core.String]),
    copy: dart.fnType(async.Future$(io.File), [core.String]),
    copySync: dart.fnType(io.File, [core.String]),
    open: dart.fnType(async.Future$(io.RandomAccessFile), [], {mode: io.FileMode}, {}),
    length: dart.fnType(async.Future$(core.int), []),
    lengthSync: dart.fnType(core.int, []),
    lastAccessed: dart.fnType(async.Future$(core.DateTime), []),
    lastAccessedSync: dart.fnType(core.DateTime, []),
    setLastAccessed: dart.fnType(async.Future, [core.DateTime]),
    setLastAccessedSync: dart.fnType(dart.void, [core.DateTime]),
    lastModified: dart.fnType(async.Future$(core.DateTime), []),
    lastModifiedSync: dart.fnType(core.DateTime, []),
    setLastModified: dart.fnType(async.Future, [core.DateTime]),
    setLastModifiedSync: dart.fnType(dart.void, [core.DateTime]),
    openSync: dart.fnType(io.RandomAccessFile, [], {mode: io.FileMode}, {}),
    openRead: dart.fnType(async.Stream$(core.List$(core.int)), [], [dart.nullable(core.int), dart.nullable(core.int)]),
    openWrite: dart.fnType(io.IOSink, [], {encoding: convert.Encoding, mode: io.FileMode}, {}),
    readAsBytes: dart.fnType(async.Future$(typed_data.Uint8List), []),
    readAsBytesSync: dart.fnType(typed_data.Uint8List, []),
    [_tryDecode]: dart.fnType(core.String, [core.List$(core.int), convert.Encoding]),
    readAsString: dart.fnType(async.Future$(core.String), [], {encoding: convert.Encoding}, {}),
    readAsStringSync: dart.fnType(core.String, [], {encoding: convert.Encoding}, {}),
    readAsLines: dart.fnType(async.Future$(core.List$(core.String)), [], {encoding: convert.Encoding}, {}),
    readAsLinesSync: dart.fnType(core.List$(core.String), [], {encoding: convert.Encoding}, {}),
    writeAsBytes: dart.fnType(async.Future$(io.File), [core.List$(core.int)], {flush: core.bool, mode: io.FileMode}, {}),
    writeAsBytesSync: dart.fnType(dart.void, [core.List$(core.int)], {flush: core.bool, mode: io.FileMode}, {}),
    writeAsString: dart.fnType(async.Future$(io.File), [core.String], {encoding: convert.Encoding, flush: core.bool, mode: io.FileMode}, {}),
    writeAsStringSync: dart.fnType(dart.void, [core.String], {encoding: convert.Encoding, flush: core.bool, mode: io.FileMode}, {})
  }));
  dart.setGetterSignature(io._File, () => ({
    __proto__: dart.getGetters(io._File.__proto__),
    path: core.String,
    absolute: io.File
  }));
  dart.setLibraryUri(io._File, I[105]);
  dart.setFieldSignature(io._File, () => ({
    __proto__: dart.getFields(io._File.__proto__),
    [_path$0]: dart.finalFieldType(core.String),
    [_rawPath$]: dart.finalFieldType(typed_data.Uint8List)
  }));
  dart.defineExtensionMethods(io._File, ['toString']);
  io._RandomAccessFileOps = class _RandomAccessFileOps extends core.Object {
    static new(pointer) {
      if (pointer == null) dart.nullFailed(I[107], 212, 36, "pointer");
      dart.throw(new core.UnsupportedError.new("RandomAccessFile"));
    }
  };
  (io._RandomAccessFileOps[dart.mixinNew] = function() {
  }).prototype = io._RandomAccessFileOps.prototype;
  dart.addTypeTests(io._RandomAccessFileOps);
  dart.addTypeCaches(io._RandomAccessFileOps);
  dart.setLibraryUri(io._RandomAccessFileOps, I[105]);
  var _asyncDispatched = dart.privateName(io, "_asyncDispatched");
  var ___RandomAccessFile__resourceInfo = dart.privateName(io, "_#_RandomAccessFile#_resourceInfo");
  var ___RandomAccessFile__resourceInfo_isSet = dart.privateName(io, "_#_RandomAccessFile#_resourceInfo#isSet");
  var _resourceInfo = dart.privateName(io, "_resourceInfo");
  var _maybeConnectHandler = dart.privateName(io, "_maybeConnectHandler");
  var _maybePerformCleanup = dart.privateName(io, "_maybePerformCleanup");
  var _dispatch = dart.privateName(io, "_dispatch");
  var _checkAvailable = dart.privateName(io, "_checkAvailable");
  var _fileLockValue = dart.privateName(io, "_fileLockValue");
  io._RandomAccessFile = class _RandomAccessFile extends core.Object {
    get [_resourceInfo]() {
      let t199;
      return dart.test(this[___RandomAccessFile__resourceInfo_isSet]) ? (t199 = this[___RandomAccessFile__resourceInfo], t199) : dart.throw(new _internal.LateError.fieldNI("_resourceInfo"));
    }
    set [_resourceInfo](t199) {
      if (t199 == null) dart.nullFailed(I[114], 671, 26, "null");
      this[___RandomAccessFile__resourceInfo_isSet] = true;
      this[___RandomAccessFile__resourceInfo] = t199;
    }
    [_maybePerformCleanup]() {
      if (dart.test(this.closed)) {
        io._FileResourceInfo.fileClosed(this[_resourceInfo]);
      }
    }
    [_maybeConnectHandler]() {
      if (!dart.test(io._RandomAccessFile._connectedResourceHandler)) {
        developer.registerExtension("ext.dart.io.getOpenFiles", C[119] || CT.C119);
        developer.registerExtension("ext.dart.io.getOpenFileById", C[120] || CT.C120);
        io._RandomAccessFile._connectedResourceHandler = true;
      }
    }
    close() {
      return this[_dispatch](7, [null], {markClosed: true}).then(dart.void, dart.fn(result => {
        if (dart.equals(result, -1)) {
          dart.throw(new io.FileSystemException.new("Cannot close file", this.path));
        }
        this.closed = dart.test(this.closed) || dart.equals(result, 0);
        this[_maybePerformCleanup]();
      }, T$.dynamicToNull()));
    }
    closeSync() {
      this[_checkAvailable]();
      let id = this[_ops].close();
      if (id === -1) {
        dart.throw(new io.FileSystemException.new("Cannot close file", this.path));
      }
      this.closed = dart.test(this.closed) || id === 0;
      this[_maybePerformCleanup]();
    }
    readByte() {
      return this[_dispatch](18, [null]).then(core.int, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "readByte failed", this.path));
        }
        this[_resourceInfo].addRead(1);
        return T$0.FutureOrOfint().as(response);
      }, T$0.dynamicToFutureOrOfint()));
    }
    readByteSync() {
      this[_checkAvailable]();
      let result = this[_ops].readByte();
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("readByte failed", this.path, result));
      }
      this[_resourceInfo].addRead(1);
      return core.int.as(result);
    }
    read(bytes) {
      if (bytes == null) dart.nullFailed(I[114], 741, 30, "bytes");
      core.ArgumentError.checkNotNull(core.int, bytes, "bytes");
      return this[_dispatch](20, [null, bytes]).then(typed_data.Uint8List, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "read failed", this.path));
        }
        this[_resourceInfo].addRead(core.int.as(dart.dload(dart.dsend(response, '_get', [1]), 'length')));
        let result = typed_data.Uint8List.as(dart.dsend(response, '_get', [1]));
        return result;
      }, T$0.dynamicToUint8List()));
    }
    readSync(bytes) {
      if (bytes == null) dart.nullFailed(I[114], 754, 26, "bytes");
      core.ArgumentError.checkNotNull(core.int, bytes, "bytes");
      this[_checkAvailable]();
      let result = this[_ops].read(bytes);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("readSync failed", this.path, result));
      }
      this[_resourceInfo].addRead(core.int.as(dart.dload(result, 'length')));
      return typed_data.Uint8List.as(result);
    }
    readInto(buffer, start = 0, end = null) {
      if (buffer == null) dart.nullFailed(I[114], 766, 34, "buffer");
      if (start == null) dart.nullFailed(I[114], 766, 47, "start");
      core.ArgumentError.checkNotNull(T$0.ListOfint(), buffer, "buffer");
      end = core.RangeError.checkValidRange(start, end, buffer[$length]);
      if (end == start) {
        return T$0.FutureOfint().value(0);
      }
      let length = dart.notNull(end) - dart.notNull(start);
      return this[_dispatch](21, [null, length]).then(core.int, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "readInto failed", this.path));
        }
        let read = core.int.as(dart.dsend(response, '_get', [1]));
        let data = T$0.ListOfint().as(dart.dsend(response, '_get', [2]));
        buffer[$setRange](start, dart.notNull(start) + dart.notNull(read), data);
        this[_resourceInfo].addRead(read);
        return read;
      }, T$0.dynamicToint()));
    }
    readIntoSync(buffer, start = 0, end = null) {
      if (buffer == null) dart.nullFailed(I[114], 786, 30, "buffer");
      if (start == null) dart.nullFailed(I[114], 786, 43, "start");
      core.ArgumentError.checkNotNull(T$0.ListOfint(), buffer, "buffer");
      this[_checkAvailable]();
      end = core.RangeError.checkValidRange(start, end, buffer[$length]);
      if (end == start) {
        return 0;
      }
      let result = this[_ops].readInto(buffer, start, end);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("readInto failed", this.path, result));
      }
      this[_resourceInfo].addRead(core.int.as(result));
      return core.int.as(result);
    }
    writeByte(value) {
      if (value == null) dart.nullFailed(I[114], 802, 42, "value");
      core.ArgumentError.checkNotNull(core.int, value, "value");
      return this[_dispatch](19, [null, value]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "writeByte failed", this.path));
        }
        this[_resourceInfo].addWrite(1);
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    writeByteSync(value) {
      if (value == null) dart.nullFailed(I[114], 814, 25, "value");
      this[_checkAvailable]();
      core.ArgumentError.checkNotNull(core.int, value, "value");
      let result = this[_ops].writeByte(value);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("writeByte failed", this.path, result));
      }
      this[_resourceInfo].addWrite(1);
      return core.int.as(result);
    }
    writeFrom(buffer, start = 0, end = null) {
      if (buffer == null) dart.nullFailed(I[114], 826, 48, "buffer");
      if (start == null) dart.nullFailed(I[114], 827, 12, "start");
      core.ArgumentError.checkNotNull(T$0.ListOfint(), buffer, "buffer");
      core.ArgumentError.checkNotNull(core.int, start, "start");
      end = core.RangeError.checkValidRange(start, end, buffer[$length]);
      if (end == start) {
        return T$0.FutureOfRandomAccessFile().value(this);
      }
      let result = null;
      try {
        result = io._ensureFastAndSerializableByteData(buffer, start, end);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfRandomAccessFile().error(e);
        } else
          throw e$;
      }
      let request = core.List.filled(4, null);
      request[$_set](0, null);
      request[$_set](1, result.buffer);
      request[$_set](2, result.start);
      request[$_set](3, dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
      return this[_dispatch](22, request).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "writeFrom failed", this.path));
        }
        this[_resourceInfo].addWrite(dart.nullCheck(end) - (dart.notNull(start) - dart.notNull(result.start)));
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    writeFromSync(buffer, start = 0, end = null) {
      if (buffer == null) dart.nullFailed(I[114], 856, 32, "buffer");
      if (start == null) dart.nullFailed(I[114], 856, 45, "start");
      this[_checkAvailable]();
      core.ArgumentError.checkNotNull(T$0.ListOfint(), buffer, "buffer");
      core.ArgumentError.checkNotNull(core.int, start, "start");
      end = core.RangeError.checkValidRange(start, end, buffer[$length]);
      if (end == start) {
        return;
      }
      let bufferAndStart = io._ensureFastAndSerializableByteData(buffer, start, end);
      let result = this[_ops].writeFrom(bufferAndStart.buffer, bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("writeFrom failed", this.path, result));
      }
      this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
    }
    writeString(string, opts) {
      if (string == null) dart.nullFailed(I[114], 875, 47, "string");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 876, 17, "encoding");
      core.ArgumentError.checkNotNull(convert.Encoding, encoding, "encoding");
      let data = encoding.encode(string);
      return this.writeFrom(data, 0, data[$length]);
    }
    writeStringSync(string, opts) {
      if (string == null) dart.nullFailed(I[114], 883, 31, "string");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[114], 883, 49, "encoding");
      core.ArgumentError.checkNotNull(convert.Encoding, encoding, "encoding");
      let data = encoding.encode(string);
      this.writeFromSync(data, 0, data[$length]);
    }
    position() {
      return this[_dispatch](8, [null]).then(core.int, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "position failed", this.path));
        }
        return T$0.FutureOrOfint().as(response);
      }, T$0.dynamicToFutureOrOfint()));
    }
    positionSync() {
      this[_checkAvailable]();
      let result = this[_ops].position();
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("position failed", this.path, result));
      }
      return core.int.as(result);
    }
    setPosition(position) {
      if (position == null) dart.nullFailed(I[114], 908, 44, "position");
      return this[_dispatch](9, [null, position]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "setPosition failed", this.path));
        }
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    setPositionSync(position) {
      if (position == null) dart.nullFailed(I[114], 918, 28, "position");
      this[_checkAvailable]();
      let result = this[_ops].setPosition(position);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("setPosition failed", this.path, result));
      }
    }
    truncate(length) {
      if (length == null) dart.nullFailed(I[114], 926, 41, "length");
      return this[_dispatch](10, [null, length]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "truncate failed", this.path));
        }
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    truncateSync(length) {
      if (length == null) dart.nullFailed(I[114], 935, 25, "length");
      this[_checkAvailable]();
      let result = this[_ops].truncate(length);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("truncate failed", this.path, result));
      }
    }
    length() {
      return this[_dispatch](11, [null]).then(core.int, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "length failed", this.path));
        }
        return T$0.FutureOrOfint().as(response);
      }, T$0.dynamicToFutureOrOfint()));
    }
    lengthSync() {
      this[_checkAvailable]();
      let result = this[_ops].length();
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("length failed", this.path, result));
      }
      return core.int.as(result);
    }
    flush() {
      return this[_dispatch](17, [null]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "flush failed", this.path));
        }
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    flushSync() {
      this[_checkAvailable]();
      let result = this[_ops].flush();
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("flush failed", this.path, result));
      }
    }
    [_fileLockValue](fl) {
      if (fl == null) dart.nullFailed(I[114], 984, 31, "fl");
      return fl[_type];
    }
    lock(mode = C[115] || CT.C115, start = 0, end = -1) {
      if (mode == null) dart.nullFailed(I[114], 987, 17, "mode");
      if (start == null) dart.nullFailed(I[114], 987, 48, "start");
      if (end == null) dart.nullFailed(I[114], 987, 63, "end");
      core.ArgumentError.checkNotNull(io.FileLock, mode, "mode");
      core.ArgumentError.checkNotNull(core.int, start, "start");
      core.ArgumentError.checkNotNull(core.int, end, "end");
      if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end !== -1 && dart.notNull(start) >= dart.notNull(end)) {
        dart.throw(new core.ArgumentError.new());
      }
      let lock = this[_fileLockValue](mode);
      return this[_dispatch](30, [null, lock, start, end]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "lock failed", this.path));
        }
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    unlock(start = 0, end = -1) {
      if (start == null) dart.nullFailed(I[114], 1005, 40, "start");
      if (end == null) dart.nullFailed(I[114], 1005, 55, "end");
      core.ArgumentError.checkNotNull(core.int, start, "start");
      core.ArgumentError.checkNotNull(core.int, end, "end");
      if (start == end) {
        dart.throw(new core.ArgumentError.new());
      }
      return this[_dispatch](30, [null, 0, start, end]).then(io.RandomAccessFile, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          dart.throw(io._exceptionFromResponse(response, "unlock failed", this.path));
        }
        return this;
      }, T$0.dynamicTo_RandomAccessFile()));
    }
    lockSync(mode = C[115] || CT.C115, start = 0, end = -1) {
      if (mode == null) dart.nullFailed(I[114], 1022, 17, "mode");
      if (start == null) dart.nullFailed(I[114], 1022, 48, "start");
      if (end == null) dart.nullFailed(I[114], 1022, 63, "end");
      this[_checkAvailable]();
      core.ArgumentError.checkNotNull(io.FileLock, mode, "mode");
      core.ArgumentError.checkNotNull(core.int, start, "start");
      core.ArgumentError.checkNotNull(core.int, end, "end");
      if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end !== -1 && dart.notNull(start) >= dart.notNull(end)) {
        dart.throw(new core.ArgumentError.new());
      }
      let lock = this[_fileLockValue](mode);
      let result = this[_ops].lock(lock, start, end);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("lock failed", this.path, result));
      }
    }
    unlockSync(start = 0, end = -1) {
      if (start == null) dart.nullFailed(I[114], 1038, 24, "start");
      if (end == null) dart.nullFailed(I[114], 1038, 39, "end");
      this[_checkAvailable]();
      core.ArgumentError.checkNotNull(core.int, start, "start");
      core.ArgumentError.checkNotNull(core.int, end, "end");
      if (start == end) {
        dart.throw(new core.ArgumentError.new());
      }
      let result = this[_ops].lock(0, start, end);
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new("unlock failed", this.path, result));
      }
    }
    [_pointer]() {
      return this[_ops].getPointer();
    }
    [_dispatch](request, data, opts) {
      if (request == null) dart.nullFailed(I[114], 1061, 24, "request");
      if (data == null) dart.nullFailed(I[114], 1061, 38, "data");
      let markClosed = opts && 'markClosed' in opts ? opts.markClosed : false;
      if (markClosed == null) dart.nullFailed(I[114], 1061, 50, "markClosed");
      if (dart.test(this.closed)) {
        return async.Future.error(new io.FileSystemException.new("File closed", this.path));
      }
      if (dart.test(this[_asyncDispatched])) {
        let msg = "An async operation is currently pending";
        return async.Future.error(new io.FileSystemException.new(msg, this.path));
      }
      if (dart.test(markClosed)) {
        this.closed = true;
      }
      this[_asyncDispatched] = true;
      data[$_set](0, this[_pointer]());
      return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
        this[_asyncDispatched] = false;
      }, T$.VoidToNull()));
    }
    [_checkAvailable]() {
      if (dart.test(this[_asyncDispatched])) {
        dart.throw(new io.FileSystemException.new("An async operation is currently pending", this.path));
      }
      if (dart.test(this.closed)) {
        dart.throw(new io.FileSystemException.new("File closed", this.path));
      }
    }
  };
  (io._RandomAccessFile.new = function(pointer, path) {
    if (pointer == null) dart.nullFailed(I[114], 674, 25, "pointer");
    if (path == null) dart.nullFailed(I[114], 674, 39, "path");
    this[_asyncDispatched] = false;
    this[___RandomAccessFile__resourceInfo] = null;
    this[___RandomAccessFile__resourceInfo_isSet] = false;
    this.closed = false;
    this.path = path;
    this[_ops] = io._RandomAccessFileOps.new(pointer);
    this[_resourceInfo] = new io._FileResourceInfo.new(this);
    this[_maybeConnectHandler]();
  }).prototype = io._RandomAccessFile.prototype;
  dart.addTypeTests(io._RandomAccessFile);
  dart.addTypeCaches(io._RandomAccessFile);
  io._RandomAccessFile[dart.implements] = () => [io.RandomAccessFile];
  dart.setMethodSignature(io._RandomAccessFile, () => ({
    __proto__: dart.getMethods(io._RandomAccessFile.__proto__),
    [_maybePerformCleanup]: dart.fnType(dart.void, []),
    [_maybeConnectHandler]: dart.fnType(dart.dynamic, []),
    close: dart.fnType(async.Future$(dart.void), []),
    closeSync: dart.fnType(dart.void, []),
    readByte: dart.fnType(async.Future$(core.int), []),
    readByteSync: dart.fnType(core.int, []),
    read: dart.fnType(async.Future$(typed_data.Uint8List), [core.int]),
    readSync: dart.fnType(typed_data.Uint8List, [core.int]),
    readInto: dart.fnType(async.Future$(core.int), [core.List$(core.int)], [core.int, dart.nullable(core.int)]),
    readIntoSync: dart.fnType(core.int, [core.List$(core.int)], [core.int, dart.nullable(core.int)]),
    writeByte: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
    writeByteSync: dart.fnType(core.int, [core.int]),
    writeFrom: dart.fnType(async.Future$(io.RandomAccessFile), [core.List$(core.int)], [core.int, dart.nullable(core.int)]),
    writeFromSync: dart.fnType(dart.void, [core.List$(core.int)], [core.int, dart.nullable(core.int)]),
    writeString: dart.fnType(async.Future$(io.RandomAccessFile), [core.String], {encoding: convert.Encoding}, {}),
    writeStringSync: dart.fnType(dart.void, [core.String], {encoding: convert.Encoding}, {}),
    position: dart.fnType(async.Future$(core.int), []),
    positionSync: dart.fnType(core.int, []),
    setPosition: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
    setPositionSync: dart.fnType(dart.void, [core.int]),
    truncate: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
    truncateSync: dart.fnType(dart.void, [core.int]),
    length: dart.fnType(async.Future$(core.int), []),
    lengthSync: dart.fnType(core.int, []),
    flush: dart.fnType(async.Future$(io.RandomAccessFile), []),
    flushSync: dart.fnType(dart.void, []),
    [_fileLockValue]: dart.fnType(core.int, [io.FileLock]),
    lock: dart.fnType(async.Future$(io.RandomAccessFile), [], [io.FileLock, core.int, core.int]),
    unlock: dart.fnType(async.Future$(io.RandomAccessFile), [], [core.int, core.int]),
    lockSync: dart.fnType(dart.void, [], [io.FileLock, core.int, core.int]),
    unlockSync: dart.fnType(dart.void, [], [core.int, core.int]),
    [_pointer]: dart.fnType(core.int, []),
    [_dispatch]: dart.fnType(async.Future, [core.int, core.List], {markClosed: core.bool}, {}),
    [_checkAvailable]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(io._RandomAccessFile, () => ({
    __proto__: dart.getGetters(io._RandomAccessFile.__proto__),
    [_resourceInfo]: io._FileResourceInfo
  }));
  dart.setSetterSignature(io._RandomAccessFile, () => ({
    __proto__: dart.getSetters(io._RandomAccessFile.__proto__),
    [_resourceInfo]: io._FileResourceInfo
  }));
  dart.setLibraryUri(io._RandomAccessFile, I[105]);
  dart.setFieldSignature(io._RandomAccessFile, () => ({
    __proto__: dart.getFields(io._RandomAccessFile.__proto__),
    path: dart.finalFieldType(core.String),
    [_asyncDispatched]: dart.fieldType(core.bool),
    [___RandomAccessFile__resourceInfo]: dart.fieldType(dart.nullable(io._FileResourceInfo)),
    [___RandomAccessFile__resourceInfo_isSet]: dart.fieldType(core.bool),
    [_ops]: dart.fieldType(io._RandomAccessFileOps),
    closed: dart.fieldType(core.bool)
  }));
  dart.defineLazy(io._RandomAccessFile, {
    /*io._RandomAccessFile._connectedResourceHandler*/get _connectedResourceHandler() {
      return false;
    },
    set _connectedResourceHandler(_) {},
    /*io._RandomAccessFile.lockUnlock*/get lockUnlock() {
      return 0;
    }
  }, false);
  var _type$2 = dart.privateName(io, "FileSystemEntityType._type");
  io.FileSystemEntityType = class FileSystemEntityType extends core.Object {
    get [_type]() {
      return this[_type$2];
    }
    set [_type](value) {
      super[_type] = value;
    }
    static _lookup(type) {
      if (type == null) dart.nullFailed(I[111], 39, 43, "type");
      return io.FileSystemEntityType._typeList[$_get](type);
    }
    toString() {
      return (C[121] || CT.C121)[$_get](this[_type]);
    }
  };
  (io.FileSystemEntityType._internal = function(_type) {
    if (_type == null) dart.nullFailed(I[111], 37, 45, "_type");
    this[_type$2] = _type;
    ;
  }).prototype = io.FileSystemEntityType.prototype;
  dart.addTypeTests(io.FileSystemEntityType);
  dart.addTypeCaches(io.FileSystemEntityType);
  dart.setLibraryUri(io.FileSystemEntityType, I[105]);
  dart.setFieldSignature(io.FileSystemEntityType, () => ({
    __proto__: dart.getFields(io.FileSystemEntityType.__proto__),
    [_type]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.FileSystemEntityType, ['toString']);
  dart.defineLazy(io.FileSystemEntityType, {
    /*io.FileSystemEntityType.file*/get file() {
      return C[122] || CT.C122;
    },
    /*io.FileSystemEntityType.FILE*/get FILE() {
      return C[122] || CT.C122;
    },
    /*io.FileSystemEntityType.directory*/get directory() {
      return C[123] || CT.C123;
    },
    /*io.FileSystemEntityType.DIRECTORY*/get DIRECTORY() {
      return C[123] || CT.C123;
    },
    /*io.FileSystemEntityType.link*/get link() {
      return C[124] || CT.C124;
    },
    /*io.FileSystemEntityType.LINK*/get LINK() {
      return C[124] || CT.C124;
    },
    /*io.FileSystemEntityType.notFound*/get notFound() {
      return C[125] || CT.C125;
    },
    /*io.FileSystemEntityType.NOT_FOUND*/get NOT_FOUND() {
      return C[125] || CT.C125;
    },
    /*io.FileSystemEntityType._typeList*/get _typeList() {
      return C[126] || CT.C126;
    }
  }, false);
  var changed$ = dart.privateName(io, "FileStat.changed");
  var modified$ = dart.privateName(io, "FileStat.modified");
  var accessed$ = dart.privateName(io, "FileStat.accessed");
  var type$1 = dart.privateName(io, "FileStat.type");
  var mode$0 = dart.privateName(io, "FileStat.mode");
  var size$ = dart.privateName(io, "FileStat.size");
  io.FileStat = class FileStat extends core.Object {
    get changed() {
      return this[changed$];
    }
    set changed(value) {
      super.changed = value;
    }
    get modified() {
      return this[modified$];
    }
    set modified(value) {
      super.modified = value;
    }
    get accessed() {
      return this[accessed$];
    }
    set accessed(value) {
      super.accessed = value;
    }
    get type() {
      return this[type$1];
    }
    set type(value) {
      super.type = value;
    }
    get mode() {
      return this[mode$0];
    }
    set mode(value) {
      super.mode = value;
    }
    get size() {
      return this[size$];
    }
    set size(value) {
      super.size = value;
    }
    static _statSync(namespace, path) {
      if (namespace == null) dart.nullFailed(I[107], 84, 31, "namespace");
      if (path == null) dart.nullFailed(I[107], 84, 49, "path");
      dart.throw(new core.UnsupportedError.new("FileStat.stat"));
    }
    static statSync(path) {
      if (path == null) dart.nullFailed(I[111], 99, 35, "path");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileStat._statSyncInternal(path);
      }
      return overrides.statSync(path);
    }
    static _statSyncInternal(path) {
      if (path == null) dart.nullFailed(I[111], 107, 44, "path");
      if (dart.test(io.Platform.isWindows)) {
        path = io.FileSystemEntity._trimTrailingPathSeparators(path);
      }
      let data = io.FileStat._statSync(io._Namespace._namespace, path);
      if (io.OSError.is(data)) return io.FileStat._notFound;
      return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [1]))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [2]))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [3]))), io.FileSystemEntityType._lookup(core.int.as(dart.dsend(data, '_get', [0]))), core.int.as(dart.dsend(data, '_get', [4])), core.int.as(dart.dsend(data, '_get', [5])));
    }
    static stat(path) {
      if (path == null) dart.nullFailed(I[111], 127, 39, "path");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.FileStat._stat(path);
      }
      return overrides.stat(path);
    }
    static _stat(path) {
      if (path == null) dart.nullFailed(I[111], 135, 40, "path");
      if (dart.test(io.Platform.isWindows)) {
        path = io.FileSystemEntity._trimTrailingPathSeparators(path);
      }
      return io._File._dispatchWithNamespace(29, [null, path]).then(io.FileStat, dart.fn(response => {
        if (dart.test(io._isErrorResponse(response))) {
          return io.FileStat._notFound;
        }
        let data = core.List.as(dart.dsend(response, '_get', [1]));
        return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](1))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](2))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](3))), io.FileSystemEntityType._lookup(core.int.as(data[$_get](0))), core.int.as(data[$_get](4)), core.int.as(data[$_get](5)));
      }, T$0.dynamicToFileStat()));
    }
    toString() {
      return "FileStat: type " + dart.str(this.type) + "\n          changed " + dart.str(this.changed) + "\n          modified " + dart.str(this.modified) + "\n          accessed " + dart.str(this.accessed) + "\n          mode " + dart.str(this.modeString()) + "\n          size " + dart.str(this.size);
    }
    modeString() {
      let t201;
      let permissions = dart.notNull(this.mode) & 4095;
      let codes = C[127] || CT.C127;
      let result = [];
      if ((permissions & 2048) !== 0) result[$add]("(suid) ");
      if ((permissions & 1024) !== 0) result[$add]("(guid) ");
      if ((permissions & 512) !== 0) result[$add]("(sticky) ");
      t201 = result;
      (() => {
        t201[$add](codes[$_get](permissions >> 6 & 7));
        t201[$add](codes[$_get](permissions >> 3 & 7));
        t201[$add](codes[$_get](permissions & 7));
        return t201;
      })();
      return result[$join]();
    }
  };
  (io.FileStat._internal = function(changed, modified, accessed, type, mode, size) {
    if (changed == null) dart.nullFailed(I[111], 89, 27, "changed");
    if (modified == null) dart.nullFailed(I[111], 89, 41, "modified");
    if (accessed == null) dart.nullFailed(I[111], 89, 56, "accessed");
    if (type == null) dart.nullFailed(I[111], 89, 71, "type");
    if (mode == null) dart.nullFailed(I[111], 90, 12, "mode");
    if (size == null) dart.nullFailed(I[111], 90, 23, "size");
    this[changed$] = changed;
    this[modified$] = modified;
    this[accessed$] = accessed;
    this[type$1] = type;
    this[mode$0] = mode;
    this[size$] = size;
    ;
  }).prototype = io.FileStat.prototype;
  dart.addTypeTests(io.FileStat);
  dart.addTypeCaches(io.FileStat);
  dart.setMethodSignature(io.FileStat, () => ({
    __proto__: dart.getMethods(io.FileStat.__proto__),
    modeString: dart.fnType(core.String, [])
  }));
  dart.setLibraryUri(io.FileStat, I[105]);
  dart.setFieldSignature(io.FileStat, () => ({
    __proto__: dart.getFields(io.FileStat.__proto__),
    changed: dart.finalFieldType(core.DateTime),
    modified: dart.finalFieldType(core.DateTime),
    accessed: dart.finalFieldType(core.DateTime),
    type: dart.finalFieldType(io.FileSystemEntityType),
    mode: dart.finalFieldType(core.int),
    size: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.FileStat, ['toString']);
  dart.defineLazy(io.FileStat, {
    /*io.FileStat._type*/get _type() {
      return 0;
    },
    /*io.FileStat._changedTime*/get _changedTime() {
      return 1;
    },
    /*io.FileStat._modifiedTime*/get _modifiedTime() {
      return 2;
    },
    /*io.FileStat._accessedTime*/get _accessedTime() {
      return 3;
    },
    /*io.FileStat._mode*/get _mode() {
      return 4;
    },
    /*io.FileStat._size*/get _size() {
      return 5;
    },
    /*io.FileStat._epoch*/get _epoch() {
      return new core.DateTime.fromMillisecondsSinceEpoch(0, {isUtc: true});
    },
    /*io.FileStat._notFound*/get _notFound() {
      return new io.FileStat._internal(io.FileStat._epoch, io.FileStat._epoch, io.FileStat._epoch, io.FileSystemEntityType.notFound, 0, -1);
    }
  }, false);
  var type$2 = dart.privateName(io, "FileSystemEvent.type");
  var path$0 = dart.privateName(io, "FileSystemEvent.path");
  var isDirectory$ = dart.privateName(io, "FileSystemEvent.isDirectory");
  io.FileSystemEvent = class FileSystemEvent extends core.Object {
    get type() {
      return this[type$2];
    }
    set type(value) {
      super.type = value;
    }
    get path() {
      return this[path$0];
    }
    set path(value) {
      super.path = value;
    }
    get isDirectory() {
      return this[isDirectory$];
    }
    set isDirectory(value) {
      super.isDirectory = value;
    }
  };
  (io.FileSystemEvent.__ = function(type, path, isDirectory) {
    if (type == null) dart.nullFailed(I[111], 905, 26, "type");
    if (path == null) dart.nullFailed(I[111], 905, 37, "path");
    if (isDirectory == null) dart.nullFailed(I[111], 905, 48, "isDirectory");
    this[type$2] = type;
    this[path$0] = path;
    this[isDirectory$] = isDirectory;
    ;
  }).prototype = io.FileSystemEvent.prototype;
  dart.addTypeTests(io.FileSystemEvent);
  dart.addTypeCaches(io.FileSystemEvent);
  dart.setLibraryUri(io.FileSystemEvent, I[105]);
  dart.setFieldSignature(io.FileSystemEvent, () => ({
    __proto__: dart.getFields(io.FileSystemEvent.__proto__),
    type: dart.finalFieldType(core.int),
    path: dart.finalFieldType(core.String),
    isDirectory: dart.finalFieldType(core.bool)
  }));
  dart.defineLazy(io.FileSystemEvent, {
    /*io.FileSystemEvent.create*/get create() {
      return 1;
    },
    /*io.FileSystemEvent.CREATE*/get CREATE() {
      return 1;
    },
    /*io.FileSystemEvent.modify*/get modify() {
      return 2;
    },
    /*io.FileSystemEvent.MODIFY*/get MODIFY() {
      return 2;
    },
    /*io.FileSystemEvent.delete*/get delete() {
      return 4;
    },
    /*io.FileSystemEvent.DELETE*/get DELETE() {
      return 4;
    },
    /*io.FileSystemEvent.move*/get move() {
      return 8;
    },
    /*io.FileSystemEvent.MOVE*/get MOVE() {
      return 8;
    },
    /*io.FileSystemEvent.all*/get all() {
      return 15;
    },
    /*io.FileSystemEvent.ALL*/get ALL() {
      return 15;
    },
    /*io.FileSystemEvent._modifyAttributes*/get _modifyAttributes() {
      return 16;
    },
    /*io.FileSystemEvent._deleteSelf*/get _deleteSelf() {
      return 32;
    },
    /*io.FileSystemEvent._isDir*/get _isDir() {
      return 64;
    }
  }, false);
  io.FileSystemCreateEvent = class FileSystemCreateEvent extends io.FileSystemEvent {
    toString() {
      return "FileSystemCreateEvent('" + dart.str(this.path) + "')";
    }
  };
  (io.FileSystemCreateEvent.__ = function(path, isDirectory) {
    io.FileSystemCreateEvent.__proto__.__.call(this, 1, core.String.as(path), core.bool.as(isDirectory));
    ;
  }).prototype = io.FileSystemCreateEvent.prototype;
  dart.addTypeTests(io.FileSystemCreateEvent);
  dart.addTypeCaches(io.FileSystemCreateEvent);
  dart.setLibraryUri(io.FileSystemCreateEvent, I[105]);
  dart.defineExtensionMethods(io.FileSystemCreateEvent, ['toString']);
  var contentChanged$ = dart.privateName(io, "FileSystemModifyEvent.contentChanged");
  io.FileSystemModifyEvent = class FileSystemModifyEvent extends io.FileSystemEvent {
    get contentChanged() {
      return this[contentChanged$];
    }
    set contentChanged(value) {
      super.contentChanged = value;
    }
    toString() {
      return "FileSystemModifyEvent('" + dart.str(this.path) + "', contentChanged=" + dart.str(this.contentChanged) + ")";
    }
  };
  (io.FileSystemModifyEvent.__ = function(path, isDirectory, contentChanged) {
    if (contentChanged == null) dart.nullFailed(I[111], 922, 51, "contentChanged");
    this[contentChanged$] = contentChanged;
    io.FileSystemModifyEvent.__proto__.__.call(this, 2, core.String.as(path), core.bool.as(isDirectory));
    ;
  }).prototype = io.FileSystemModifyEvent.prototype;
  dart.addTypeTests(io.FileSystemModifyEvent);
  dart.addTypeCaches(io.FileSystemModifyEvent);
  dart.setLibraryUri(io.FileSystemModifyEvent, I[105]);
  dart.setFieldSignature(io.FileSystemModifyEvent, () => ({
    __proto__: dart.getFields(io.FileSystemModifyEvent.__proto__),
    contentChanged: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(io.FileSystemModifyEvent, ['toString']);
  io.FileSystemDeleteEvent = class FileSystemDeleteEvent extends io.FileSystemEvent {
    toString() {
      return "FileSystemDeleteEvent('" + dart.str(this.path) + "')";
    }
  };
  (io.FileSystemDeleteEvent.__ = function(path, isDirectory) {
    io.FileSystemDeleteEvent.__proto__.__.call(this, 4, core.String.as(path), core.bool.as(isDirectory));
    ;
  }).prototype = io.FileSystemDeleteEvent.prototype;
  dart.addTypeTests(io.FileSystemDeleteEvent);
  dart.addTypeCaches(io.FileSystemDeleteEvent);
  dart.setLibraryUri(io.FileSystemDeleteEvent, I[105]);
  dart.defineExtensionMethods(io.FileSystemDeleteEvent, ['toString']);
  var destination$ = dart.privateName(io, "FileSystemMoveEvent.destination");
  io.FileSystemMoveEvent = class FileSystemMoveEvent extends io.FileSystemEvent {
    get destination() {
      return this[destination$];
    }
    set destination(value) {
      super.destination = value;
    }
    toString() {
      let buffer = new core.StringBuffer.new();
      buffer.write("FileSystemMoveEvent('" + dart.str(this.path) + "'");
      if (this.destination != null) buffer.write(", '" + dart.str(this.destination) + "'");
      buffer.write(")");
      return buffer.toString();
    }
  };
  (io.FileSystemMoveEvent.__ = function(path, isDirectory, destination) {
    this[destination$] = destination;
    io.FileSystemMoveEvent.__proto__.__.call(this, 8, core.String.as(path), core.bool.as(isDirectory));
    ;
  }).prototype = io.FileSystemMoveEvent.prototype;
  dart.addTypeTests(io.FileSystemMoveEvent);
  dart.addTypeCaches(io.FileSystemMoveEvent);
  dart.setLibraryUri(io.FileSystemMoveEvent, I[105]);
  dart.setFieldSignature(io.FileSystemMoveEvent, () => ({
    __proto__: dart.getFields(io.FileSystemMoveEvent.__proto__),
    destination: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(io.FileSystemMoveEvent, ['toString']);
  io._FileSystemWatcher = class _FileSystemWatcher extends core.Object {
    static _watch(path, events, recursive) {
      if (path == null) dart.nullFailed(I[107], 691, 14, "path");
      if (events == null) dart.nullFailed(I[107], 691, 24, "events");
      if (recursive == null) dart.nullFailed(I[107], 691, 37, "recursive");
      dart.throw(new core.UnsupportedError.new("_FileSystemWatcher.watch"));
    }
    static get isSupported() {
      dart.throw(new core.UnsupportedError.new("_FileSystemWatcher.isSupported"));
    }
  };
  (io._FileSystemWatcher.new = function() {
    ;
  }).prototype = io._FileSystemWatcher.prototype;
  dart.addTypeTests(io._FileSystemWatcher);
  dart.addTypeCaches(io._FileSystemWatcher);
  dart.setLibraryUri(io._FileSystemWatcher, I[105]);
  io._IOResourceInfo = class _IOResourceInfo extends core.Object {
    static get timestamp() {
      return dart.notNull(io._IOResourceInfo._startTime) + (dart.notNull(io._IOResourceInfo._sw.elapsedMicroseconds) / 1000)[$truncate]();
    }
    get referenceValueMap() {
      return new (T$0.IdentityMapOfString$dynamic()).from(["type", "@" + dart.str(this.type), "id", this.id, "name", this.name]);
    }
    static getNextID() {
      let t201;
      t201 = io._IOResourceInfo._count;
      io._IOResourceInfo._count = dart.notNull(t201) + 1;
      return t201;
    }
  };
  (io._IOResourceInfo.new = function(type) {
    if (type == null) dart.nullFailed(I[115], 18, 24, "type");
    this.type = type;
    this.id = io._IOResourceInfo.getNextID();
    ;
  }).prototype = io._IOResourceInfo.prototype;
  dart.addTypeTests(io._IOResourceInfo);
  dart.addTypeCaches(io._IOResourceInfo);
  dart.setGetterSignature(io._IOResourceInfo, () => ({
    __proto__: dart.getGetters(io._IOResourceInfo.__proto__),
    referenceValueMap: core.Map$(core.String, dart.dynamic)
  }));
  dart.setLibraryUri(io._IOResourceInfo, I[105]);
  dart.setFieldSignature(io._IOResourceInfo, () => ({
    __proto__: dart.getFields(io._IOResourceInfo.__proto__),
    type: dart.finalFieldType(core.String),
    id: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(io._IOResourceInfo, {
    /*io._IOResourceInfo._count*/get _count() {
      return 0;
    },
    set _count(_) {},
    /*io._IOResourceInfo._sw*/get _sw() {
      let t201;
      return t201 = new core.Stopwatch.new(), (() => {
        t201.start();
        return t201;
      })();
    },
    /*io._IOResourceInfo._startTime*/get _startTime() {
      return new core.DateTime.now().millisecondsSinceEpoch;
    }
  }, false);
  io._ReadWriteResourceInfo = class _ReadWriteResourceInfo extends io._IOResourceInfo {
    addRead(bytes) {
      if (bytes == null) dart.nullFailed(I[115], 47, 20, "bytes");
      this.readBytes = dart.notNull(this.readBytes) + dart.notNull(bytes);
      this.readCount = dart.notNull(this.readCount) + 1;
      this.lastReadTime = io._IOResourceInfo.timestamp;
    }
    didRead() {
      this.addRead(0);
    }
    addWrite(bytes) {
      if (bytes == null) dart.nullFailed(I[115], 60, 21, "bytes");
      this.writeBytes = dart.notNull(this.writeBytes) + dart.notNull(bytes);
      this.writeCount = dart.notNull(this.writeCount) + 1;
      this.lastWriteTime = io._IOResourceInfo.timestamp;
    }
    get fullValueMap() {
      return new (T$0.IdentityMapOfString$dynamic()).from(["type", this.type, "id", this.id, "name", this.name, "readBytes", this.readBytes, "writeBytes", this.writeBytes, "readCount", this.readCount, "writeCount", this.writeCount, "lastReadTime", this.lastReadTime, "lastWriteTime", this.lastWriteTime]);
    }
  };
  (io._ReadWriteResourceInfo.new = function(type) {
    if (type == null) dart.nullFailed(I[115], 66, 33, "type");
    this.readBytes = 0;
    this.writeBytes = 0;
    this.readCount = 0;
    this.writeCount = 0;
    this.lastReadTime = 0;
    this.lastWriteTime = 0;
    io._ReadWriteResourceInfo.__proto__.new.call(this, type);
    ;
  }).prototype = io._ReadWriteResourceInfo.prototype;
  dart.addTypeTests(io._ReadWriteResourceInfo);
  dart.addTypeCaches(io._ReadWriteResourceInfo);
  dart.setMethodSignature(io._ReadWriteResourceInfo, () => ({
    __proto__: dart.getMethods(io._ReadWriteResourceInfo.__proto__),
    addRead: dart.fnType(dart.void, [core.int]),
    didRead: dart.fnType(dart.void, []),
    addWrite: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(io._ReadWriteResourceInfo, () => ({
    __proto__: dart.getGetters(io._ReadWriteResourceInfo.__proto__),
    fullValueMap: core.Map$(core.String, dart.dynamic)
  }));
  dart.setLibraryUri(io._ReadWriteResourceInfo, I[105]);
  dart.setFieldSignature(io._ReadWriteResourceInfo, () => ({
    __proto__: dart.getFields(io._ReadWriteResourceInfo.__proto__),
    readBytes: dart.fieldType(core.int),
    writeBytes: dart.fieldType(core.int),
    readCount: dart.fieldType(core.int),
    writeCount: dart.fieldType(core.int),
    lastReadTime: dart.fieldType(core.int),
    lastWriteTime: dart.fieldType(core.int)
  }));
  io._FileResourceInfo = class _FileResourceInfo extends io._ReadWriteResourceInfo {
    static fileOpened(info) {
      if (info == null) dart.nullFailed(I[115], 99, 39, "info");
      if (!!dart.test(io._FileResourceInfo.openFiles[$containsKey](info.id))) dart.assertFailed(null, I[115], 100, 12, "!openFiles.containsKey(info.id)");
      io._FileResourceInfo.openFiles[$_set](info.id, info);
    }
    static fileClosed(info) {
      if (info == null) dart.nullFailed(I[115], 104, 39, "info");
      if (!dart.test(io._FileResourceInfo.openFiles[$containsKey](info.id))) dart.assertFailed(null, I[115], 105, 12, "openFiles.containsKey(info.id)");
      io._FileResourceInfo.openFiles[$remove](info.id);
    }
    static getOpenFilesList() {
      return T$0.ListOfMapOfString$dynamic().from(io._FileResourceInfo.openFiles[$values][$map](dart.dynamic, dart.fn(e => {
        if (e == null) dart.nullFailed(I[115], 111, 8, "e");
        return e.referenceValueMap;
      }, T$0._FileResourceInfoToMapOfString$dynamic())));
    }
    static getOpenFiles($function, params) {
      if (!dart.equals($function, "ext.dart.io.getOpenFiles")) dart.assertFailed(null, I[115], 116, 12, "function == 'ext.dart.io.getOpenFiles'");
      let data = new (T$.IdentityMapOfString$Object()).from(["type", "OpenFileList", "files", io._FileResourceInfo.getOpenFilesList()]);
      let jsonValue = convert.json.encode(data);
      return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(jsonValue));
    }
    get fileInfoMap() {
      return this.fullValueMap;
    }
    static getOpenFileInfoMapByID($function, params) {
      let id = core.int.parse(core.String.as(dart.nullCheck(dart.dsend(params, '_get', ["id"]))));
      let result = dart.test(io._FileResourceInfo.openFiles[$containsKey](id)) ? dart.nullCheck(io._FileResourceInfo.openFiles[$_get](id)).fileInfoMap : new _js_helper.LinkedMap.new();
      let jsonValue = convert.json.encode(result);
      return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(jsonValue));
    }
    get name() {
      return core.String.as(dart.dload(this.file, 'path'));
    }
  };
  (io._FileResourceInfo.new = function(file) {
    this.file = file;
    io._FileResourceInfo.__proto__.new.call(this, "OpenFile");
    io._FileResourceInfo.fileOpened(this);
  }).prototype = io._FileResourceInfo.prototype;
  dart.addTypeTests(io._FileResourceInfo);
  dart.addTypeCaches(io._FileResourceInfo);
  dart.setGetterSignature(io._FileResourceInfo, () => ({
    __proto__: dart.getGetters(io._FileResourceInfo.__proto__),
    fileInfoMap: core.Map$(core.String, dart.dynamic),
    name: core.String
  }));
  dart.setLibraryUri(io._FileResourceInfo, I[105]);
  dart.setFieldSignature(io._FileResourceInfo, () => ({
    __proto__: dart.getFields(io._FileResourceInfo.__proto__),
    file: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineLazy(io._FileResourceInfo, {
    /*io._FileResourceInfo._type*/get _type() {
      return "OpenFile";
    },
    /*io._FileResourceInfo.openFiles*/get openFiles() {
      return new (T$0.IdentityMapOfint$_FileResourceInfo()).new();
    },
    set openFiles(_) {}
  }, false);
  var _arguments$2 = dart.privateName(io, "_arguments");
  var _workingDirectory = dart.privateName(io, "_workingDirectory");
  io._SpawnedProcessResourceInfo = class _SpawnedProcessResourceInfo extends io._IOResourceInfo {
    get name() {
      return core.String.as(dart.dload(this.process, _path$0));
    }
    stopped() {
      return io._SpawnedProcessResourceInfo.processStopped(this);
    }
    get fullValueMap() {
      return new (T$0.IdentityMapOfString$dynamic()).from(["type", this.type, "id", this.id, "name", this.name, "pid", dart.dload(this.process, 'pid'), "startedAt", this.startedAt, "arguments", dart.dload(this.process, _arguments$2), "workingDirectory", dart.dload(this.process, _workingDirectory) == null ? "." : dart.dload(this.process, _workingDirectory)]);
    }
    static processStarted(info) {
      if (info == null) dart.nullFailed(I[115], 167, 53, "info");
      if (!!dart.test(io._SpawnedProcessResourceInfo.startedProcesses[$containsKey](info.id))) dart.assertFailed(null, I[115], 168, 12, "!startedProcesses.containsKey(info.id)");
      io._SpawnedProcessResourceInfo.startedProcesses[$_set](info.id, info);
    }
    static processStopped(info) {
      if (info == null) dart.nullFailed(I[115], 172, 53, "info");
      if (!dart.test(io._SpawnedProcessResourceInfo.startedProcesses[$containsKey](info.id))) dart.assertFailed(null, I[115], 173, 12, "startedProcesses.containsKey(info.id)");
      io._SpawnedProcessResourceInfo.startedProcesses[$remove](info.id);
    }
    static getStartedProcessesList() {
      return T$0.ListOfMapOfString$dynamic().from(io._SpawnedProcessResourceInfo.startedProcesses[$values][$map](dart.dynamic, dart.fn(e => {
        if (e == null) dart.nullFailed(I[115], 179, 10, "e");
        return e.referenceValueMap;
      }, T$0._SpawnedProcessResourceInfoToMapOfString$dynamic())));
    }
    static getStartedProcesses($function, params) {
      if ($function == null) dart.nullFailed(I[115], 183, 14, "function");
      if (params == null) dart.nullFailed(I[115], 183, 44, "params");
      if (!($function === "ext.dart.io.getSpawnedProcesses")) dart.assertFailed(null, I[115], 184, 12, "function == 'ext.dart.io.getSpawnedProcesses'");
      let data = new (T$.IdentityMapOfString$Object()).from(["type", "SpawnedProcessList", "processes", io._SpawnedProcessResourceInfo.getStartedProcessesList()]);
      let jsonValue = convert.json.encode(data);
      return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(jsonValue));
    }
    static getProcessInfoMapById($function, params) {
      if ($function == null) dart.nullFailed(I[115], 194, 14, "function");
      if (params == null) dart.nullFailed(I[115], 194, 44, "params");
      let id = core.int.parse(dart.nullCheck(params[$_get]("id")));
      let result = dart.test(io._SpawnedProcessResourceInfo.startedProcesses[$containsKey](id)) ? dart.nullCheck(io._SpawnedProcessResourceInfo.startedProcesses[$_get](id)).fullValueMap : new _js_helper.LinkedMap.new();
      let jsonValue = convert.json.encode(result);
      return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(jsonValue));
    }
  };
  (io._SpawnedProcessResourceInfo.new = function(process) {
    this.process = process;
    this.startedAt = io._IOResourceInfo.timestamp;
    io._SpawnedProcessResourceInfo.__proto__.new.call(this, "SpawnedProcess");
    io._SpawnedProcessResourceInfo.processStarted(this);
  }).prototype = io._SpawnedProcessResourceInfo.prototype;
  dart.addTypeTests(io._SpawnedProcessResourceInfo);
  dart.addTypeCaches(io._SpawnedProcessResourceInfo);
  dart.setMethodSignature(io._SpawnedProcessResourceInfo, () => ({
    __proto__: dart.getMethods(io._SpawnedProcessResourceInfo.__proto__),
    stopped: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(io._SpawnedProcessResourceInfo, () => ({
    __proto__: dart.getGetters(io._SpawnedProcessResourceInfo.__proto__),
    name: core.String,
    fullValueMap: core.Map$(core.String, dart.dynamic)
  }));
  dart.setLibraryUri(io._SpawnedProcessResourceInfo, I[105]);
  dart.setFieldSignature(io._SpawnedProcessResourceInfo, () => ({
    __proto__: dart.getFields(io._SpawnedProcessResourceInfo.__proto__),
    process: dart.finalFieldType(dart.dynamic),
    startedAt: dart.finalFieldType(core.int)
  }));
  dart.defineLazy(io._SpawnedProcessResourceInfo, {
    /*io._SpawnedProcessResourceInfo._type*/get _type() {
      return "SpawnedProcess";
    },
    /*io._SpawnedProcessResourceInfo.startedProcesses*/get startedProcesses() {
      return new (T$0.LinkedMapOfint$_SpawnedProcessResourceInfo()).new();
    },
    set startedProcesses(_) {}
  }, false);
  var __IOSink_encoding = dart.privateName(io, "_#IOSink#encoding");
  var __IOSink_encoding_isSet = dart.privateName(io, "_#IOSink#encoding#isSet");
  io.IOSink = class IOSink extends core.Object {
    static new(target, opts) {
      if (target == null) dart.nullFailed(I[116], 23, 44, "target");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[116], 24, 21, "encoding");
      return new io._IOSinkImpl.new(target, encoding);
    }
    get encoding() {
      let t201;
      return dart.test(this[__IOSink_encoding_isSet]) ? (t201 = this[__IOSink_encoding], t201) : dart.throw(new _internal.LateError.fieldNI("encoding"));
    }
    set encoding(t201) {
      if (t201 == null) dart.nullFailed(I[116], 30, 17, "null");
      this[__IOSink_encoding_isSet] = true;
      this[__IOSink_encoding] = t201;
    }
  };
  (io.IOSink[dart.mixinNew] = function() {
    this[__IOSink_encoding] = null;
    this[__IOSink_encoding_isSet] = false;
  }).prototype = io.IOSink.prototype;
  dart.addTypeTests(io.IOSink);
  dart.addTypeCaches(io.IOSink);
  io.IOSink[dart.implements] = () => [async.StreamSink$(core.List$(core.int)), core.StringSink];
  dart.setGetterSignature(io.IOSink, () => ({
    __proto__: dart.getGetters(io.IOSink.__proto__),
    encoding: convert.Encoding
  }));
  dart.setSetterSignature(io.IOSink, () => ({
    __proto__: dart.getSetters(io.IOSink.__proto__),
    encoding: convert.Encoding
  }));
  dart.setLibraryUri(io.IOSink, I[105]);
  dart.setFieldSignature(io.IOSink, () => ({
    __proto__: dart.getFields(io.IOSink.__proto__),
    [__IOSink_encoding]: dart.fieldType(dart.nullable(convert.Encoding)),
    [__IOSink_encoding_isSet]: dart.fieldType(core.bool)
  }));
  var _doneCompleter = dart.privateName(io, "_doneCompleter");
  var _controllerInstance = dart.privateName(io, "_controllerInstance");
  var _controllerCompleter = dart.privateName(io, "_controllerCompleter");
  var _isClosed$ = dart.privateName(io, "_isClosed");
  var _isBound = dart.privateName(io, "_isBound");
  var _hasError$ = dart.privateName(io, "_hasError");
  var _target$0 = dart.privateName(io, "_target");
  var _closeTarget = dart.privateName(io, "_closeTarget");
  var _completeDoneValue = dart.privateName(io, "_completeDoneValue");
  var _completeDoneError = dart.privateName(io, "_completeDoneError");
  const _is__StreamSinkImpl_default = Symbol('_is__StreamSinkImpl_default');
  io._StreamSinkImpl$ = dart.generic(T => {
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
    class _StreamSinkImpl extends core.Object {
      add(data) {
        T.as(data);
        if (dart.test(this[_isClosed$])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        this[_controller].add(data);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[116], 139, 17, "error");
        if (dart.test(this[_isClosed$])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        this[_controller].addError(error, stackTrace);
      }
      addStream(stream) {
        let t202;
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[116], 146, 30, "stream");
        if (dart.test(this[_isBound])) {
          dart.throw(new core.StateError.new("StreamSink is already bound to a stream"));
        }
        if (dart.test(this[_hasError$])) return this.done;
        this[_isBound] = true;
        let future = this[_controllerCompleter] == null ? this[_target$0].addStream(stream) : dart.nullCheck(this[_controllerCompleter]).future.then(dart.dynamic, dart.fn(_ => this[_target$0].addStream(stream), T$.dynamicToFuture()));
        t202 = this[_controllerInstance];
        t202 == null ? null : t202.close();
        return future.whenComplete(dart.fn(() => {
          this[_isBound] = false;
        }, T$.VoidToNull()));
      }
      flush() {
        if (dart.test(this[_isBound])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        if (this[_controllerInstance] == null) return async.Future.value(this);
        this[_isBound] = true;
        let future = dart.nullCheck(this[_controllerCompleter]).future;
        dart.nullCheck(this[_controllerInstance]).close();
        return future.whenComplete(dart.fn(() => {
          this[_isBound] = false;
        }, T$.VoidToNull()));
      }
      close() {
        if (dart.test(this[_isBound])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        if (!dart.test(this[_isClosed$])) {
          this[_isClosed$] = true;
          if (this[_controllerInstance] != null) {
            dart.nullCheck(this[_controllerInstance]).close();
          } else {
            this[_closeTarget]();
          }
        }
        return this.done;
      }
      [_closeTarget]() {
        this[_target$0].close().then(dart.void, dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
      }
      get done() {
        return this[_doneCompleter].future;
      }
      [_completeDoneValue](value) {
        if (!dart.test(this[_doneCompleter].isCompleted)) {
          this[_doneCompleter].complete(value);
        }
      }
      [_completeDoneError](error, stackTrace) {
        if (!dart.test(this[_doneCompleter].isCompleted)) {
          this[_hasError$] = true;
          this[_doneCompleter].completeError(core.Object.as(error), stackTrace);
        }
      }
      get [_controller]() {
        if (dart.test(this[_isBound])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        if (dart.test(this[_isClosed$])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        if (this[_controllerInstance] == null) {
          this[_controllerInstance] = StreamControllerOfT().new({sync: true});
          this[_controllerCompleter] = async.Completer.new();
          this[_target$0].addStream(this[_controller].stream).then(core.Null, dart.fn(_ => {
            if (dart.test(this[_isBound])) {
              dart.nullCheck(this[_controllerCompleter]).complete(this);
              this[_controllerCompleter] = null;
              this[_controllerInstance] = null;
            } else {
              this[_closeTarget]();
            }
          }, T$.dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
              if (dart.test(this[_isBound])) {
                dart.nullCheck(this[_controllerCompleter]).completeError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
                this[_controllerCompleter] = null;
                this[_controllerInstance] = null;
              } else {
                this[_completeDoneError](error, T$.StackTraceN().as(stackTrace));
              }
            }, T$.dynamicAnddynamicToNull())});
        }
        return dart.nullCheck(this[_controllerInstance]);
      }
    }
    (_StreamSinkImpl.new = function(_target) {
      if (_target == null) dart.nullFailed(I[116], 130, 24, "_target");
      this[_doneCompleter] = async.Completer.new();
      this[_controllerInstance] = null;
      this[_controllerCompleter] = null;
      this[_isClosed$] = false;
      this[_isBound] = false;
      this[_hasError$] = false;
      this[_target$0] = _target;
      ;
    }).prototype = _StreamSinkImpl.prototype;
    dart.addTypeTests(_StreamSinkImpl);
    _StreamSinkImpl.prototype[_is__StreamSinkImpl_default] = true;
    dart.addTypeCaches(_StreamSinkImpl);
    _StreamSinkImpl[dart.implements] = () => [async.StreamSink$(T)];
    dart.setMethodSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getMethods(_StreamSinkImpl.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
      flush: dart.fnType(async.Future, []),
      close: dart.fnType(async.Future, []),
      [_closeTarget]: dart.fnType(dart.void, []),
      [_completeDoneValue]: dart.fnType(dart.void, [dart.dynamic]),
      [_completeDoneError]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(core.StackTrace)])
    }));
    dart.setGetterSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getGetters(_StreamSinkImpl.__proto__),
      done: async.Future,
      [_controller]: async.StreamController$(T)
    }));
    dart.setLibraryUri(_StreamSinkImpl, I[105]);
    dart.setFieldSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getFields(_StreamSinkImpl.__proto__),
      [_target$0]: dart.finalFieldType(async.StreamConsumer$(T)),
      [_doneCompleter]: dart.finalFieldType(async.Completer),
      [_controllerInstance]: dart.fieldType(dart.nullable(async.StreamController$(T))),
      [_controllerCompleter]: dart.fieldType(dart.nullable(async.Completer)),
      [_isClosed$]: dart.fieldType(core.bool),
      [_isBound]: dart.fieldType(core.bool),
      [_hasError$]: dart.fieldType(core.bool)
    }));
    return _StreamSinkImpl;
  });
  io._StreamSinkImpl = io._StreamSinkImpl$();
  dart.addTypeTests(io._StreamSinkImpl, _is__StreamSinkImpl_default);
  var _encodingMutable = dart.privateName(io, "_encodingMutable");
  var _encoding$ = dart.privateName(io, "_encoding");
  io._IOSinkImpl = class _IOSinkImpl extends io._StreamSinkImpl$(core.List$(core.int)) {
    get encoding() {
      return this[_encoding$];
    }
    set encoding(value) {
      if (value == null) dart.nullFailed(I[116], 259, 30, "value");
      if (!dart.test(this[_encodingMutable])) {
        dart.throw(new core.StateError.new("IOSink encoding is not mutable"));
      }
      this[_encoding$] = value;
    }
    write(obj) {
      let string = dart.str(obj);
      if (string[$isEmpty]) return;
      this.add(this[_encoding$].encode(string));
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[116], 272, 26, "objects");
      if (separator == null) dart.nullFailed(I[116], 272, 43, "separator");
      let iterator = objects[$iterator];
      if (!dart.test(iterator.moveNext())) return;
      if (separator[$isEmpty]) {
        do {
          this.write(iterator.current);
        } while (dart.test(iterator.moveNext()));
      } else {
        this.write(iterator.current);
        while (dart.test(iterator.moveNext())) {
          this.write(separator);
          this.write(iterator.current);
        }
      }
    }
    writeln(object = "") {
      this.write(object);
      this.write("\n");
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[116], 293, 26, "charCode");
      this.write(core.String.fromCharCode(charCode));
    }
  };
  (io._IOSinkImpl.new = function(target, _encoding) {
    if (target == null) dart.nullFailed(I[116], 255, 41, "target");
    if (_encoding == null) dart.nullFailed(I[116], 255, 54, "_encoding");
    this[_encodingMutable] = true;
    this[_encoding$] = _encoding;
    io._IOSinkImpl.__proto__.new.call(this, target);
    ;
  }).prototype = io._IOSinkImpl.prototype;
  dart.addTypeTests(io._IOSinkImpl);
  dart.addTypeCaches(io._IOSinkImpl);
  io._IOSinkImpl[dart.implements] = () => [io.IOSink];
  dart.setMethodSignature(io._IOSinkImpl, () => ({
    __proto__: dart.getMethods(io._IOSinkImpl.__proto__),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeCharCode: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(io._IOSinkImpl, () => ({
    __proto__: dart.getGetters(io._IOSinkImpl.__proto__),
    encoding: convert.Encoding
  }));
  dart.setSetterSignature(io._IOSinkImpl, () => ({
    __proto__: dart.getSetters(io._IOSinkImpl.__proto__),
    encoding: convert.Encoding
  }));
  dart.setLibraryUri(io._IOSinkImpl, I[105]);
  dart.setFieldSignature(io._IOSinkImpl, () => ({
    __proto__: dart.getFields(io._IOSinkImpl.__proto__),
    [_encoding$]: dart.fieldType(convert.Encoding),
    [_encodingMutable]: dart.fieldType(core.bool)
  }));
  io._IOService = class _IOService extends core.Object {
    static _dispatch(request, data) {
      if (request == null) dart.nullFailed(I[107], 704, 31, "request");
      if (data == null) dart.nullFailed(I[107], 704, 45, "data");
      dart.throw(new core.UnsupportedError.new("_IOService._dispatch"));
    }
  };
  (io._IOService.new = function() {
    ;
  }).prototype = io._IOService.prototype;
  dart.addTypeTests(io._IOService);
  dart.addTypeCaches(io._IOService);
  dart.setLibraryUri(io._IOService, I[105]);
  dart.defineLazy(io._IOService, {
    /*io._IOService.fileExists*/get fileExists() {
      return 0;
    },
    /*io._IOService.fileCreate*/get fileCreate() {
      return 1;
    },
    /*io._IOService.fileDelete*/get fileDelete() {
      return 2;
    },
    /*io._IOService.fileRename*/get fileRename() {
      return 3;
    },
    /*io._IOService.fileCopy*/get fileCopy() {
      return 4;
    },
    /*io._IOService.fileOpen*/get fileOpen() {
      return 5;
    },
    /*io._IOService.fileResolveSymbolicLinks*/get fileResolveSymbolicLinks() {
      return 6;
    },
    /*io._IOService.fileClose*/get fileClose() {
      return 7;
    },
    /*io._IOService.filePosition*/get filePosition() {
      return 8;
    },
    /*io._IOService.fileSetPosition*/get fileSetPosition() {
      return 9;
    },
    /*io._IOService.fileTruncate*/get fileTruncate() {
      return 10;
    },
    /*io._IOService.fileLength*/get fileLength() {
      return 11;
    },
    /*io._IOService.fileLengthFromPath*/get fileLengthFromPath() {
      return 12;
    },
    /*io._IOService.fileLastAccessed*/get fileLastAccessed() {
      return 13;
    },
    /*io._IOService.fileSetLastAccessed*/get fileSetLastAccessed() {
      return 14;
    },
    /*io._IOService.fileLastModified*/get fileLastModified() {
      return 15;
    },
    /*io._IOService.fileSetLastModified*/get fileSetLastModified() {
      return 16;
    },
    /*io._IOService.fileFlush*/get fileFlush() {
      return 17;
    },
    /*io._IOService.fileReadByte*/get fileReadByte() {
      return 18;
    },
    /*io._IOService.fileWriteByte*/get fileWriteByte() {
      return 19;
    },
    /*io._IOService.fileRead*/get fileRead() {
      return 20;
    },
    /*io._IOService.fileReadInto*/get fileReadInto() {
      return 21;
    },
    /*io._IOService.fileWriteFrom*/get fileWriteFrom() {
      return 22;
    },
    /*io._IOService.fileCreateLink*/get fileCreateLink() {
      return 23;
    },
    /*io._IOService.fileDeleteLink*/get fileDeleteLink() {
      return 24;
    },
    /*io._IOService.fileRenameLink*/get fileRenameLink() {
      return 25;
    },
    /*io._IOService.fileLinkTarget*/get fileLinkTarget() {
      return 26;
    },
    /*io._IOService.fileType*/get fileType() {
      return 27;
    },
    /*io._IOService.fileIdentical*/get fileIdentical() {
      return 28;
    },
    /*io._IOService.fileStat*/get fileStat() {
      return 29;
    },
    /*io._IOService.fileLock*/get fileLock() {
      return 30;
    },
    /*io._IOService.socketLookup*/get socketLookup() {
      return 31;
    },
    /*io._IOService.socketListInterfaces*/get socketListInterfaces() {
      return 32;
    },
    /*io._IOService.socketReverseLookup*/get socketReverseLookup() {
      return 33;
    },
    /*io._IOService.directoryCreate*/get directoryCreate() {
      return 34;
    },
    /*io._IOService.directoryDelete*/get directoryDelete() {
      return 35;
    },
    /*io._IOService.directoryExists*/get directoryExists() {
      return 36;
    },
    /*io._IOService.directoryCreateTemp*/get directoryCreateTemp() {
      return 37;
    },
    /*io._IOService.directoryListStart*/get directoryListStart() {
      return 38;
    },
    /*io._IOService.directoryListNext*/get directoryListNext() {
      return 39;
    },
    /*io._IOService.directoryListStop*/get directoryListStop() {
      return 40;
    },
    /*io._IOService.directoryRename*/get directoryRename() {
      return 41;
    },
    /*io._IOService.sslProcessFilter*/get sslProcessFilter() {
      return 42;
    }
  }, false);
  io.Link = class Link extends core.Object {
    static new(path) {
      if (path == null) dart.nullFailed(I[117], 12, 23, "path");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return new io._Link.new(path);
      }
      return overrides.createLink(path);
    }
    static fromRawPath(rawPath) {
      if (rawPath == null) dart.nullFailed(I[117], 21, 38, "rawPath");
      return new io._Link.fromRawPath(rawPath);
    }
    static fromUri(uri) {
      if (uri == null) dart.nullFailed(I[117], 33, 28, "uri");
      return io.Link.new(uri.toFilePath());
    }
  };
  (io.Link[dart.mixinNew] = function() {
  }).prototype = io.Link.prototype;
  dart.addTypeTests(io.Link);
  dart.addTypeCaches(io.Link);
  io.Link[dart.implements] = () => [io.FileSystemEntity];
  dart.setLibraryUri(io.Link, I[105]);
  var _path$2 = dart.privateName(io, "_Link._path");
  var _rawPath$1 = dart.privateName(io, "_Link._rawPath");
  var _exceptionFromResponse = dart.privateName(io, "_exceptionFromResponse");
  io._Link = class _Link extends io.FileSystemEntity {
    get [_path$0]() {
      return this[_path$2];
    }
    set [_path$0](value) {
      super[_path$0] = value;
    }
    get [_rawPath$]() {
      return this[_rawPath$1];
    }
    set [_rawPath$](value) {
      super[_rawPath$] = value;
    }
    get path() {
      return this[_path$0];
    }
    toString() {
      return "Link: '" + dart.str(this.path) + "'";
    }
    exists() {
      return io.FileSystemEntity._isLinkRaw(this[_rawPath$]);
    }
    existsSync() {
      return io.FileSystemEntity._isLinkRawSync(this[_rawPath$]);
    }
    get absolute() {
      return dart.test(this.isAbsolute) ? this : new io._Link.new(this[_absolutePath]);
    }
    create(target, opts) {
      if (target == null) dart.nullFailed(I[117], 164, 30, "target");
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[117], 164, 44, "recursive");
      let result = dart.test(recursive) ? this.parent.create({recursive: true}) : T$.FutureOfNull().value(null);
      return result.then(dart.dynamic, dart.fn(_ => io._File._dispatchWithNamespace(23, [null, this[_rawPath$], target]), T$0.DirectoryNToFuture())).then(io.Link, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionFromResponse](response, "Cannot create link to target '" + dart.str(target) + "'", this.path));
        }
        return this;
      }, T$0.dynamicTo_Link()));
    }
    createSync(target, opts) {
      if (target == null) dart.nullFailed(I[117], 179, 26, "target");
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[117], 179, 40, "recursive");
      if (dart.test(recursive)) {
        this.parent.createSync({recursive: true});
      }
      let result = io._File._createLink(io._Namespace._namespace, this[_rawPath$], target);
      io._Link.throwIfError(result, "Cannot create link", this.path);
    }
    updateSync(target) {
      if (target == null) dart.nullFailed(I[117], 187, 26, "target");
      this.deleteSync();
      this.createSync(target);
    }
    update(target) {
      if (target == null) dart.nullFailed(I[117], 196, 30, "target");
      return this.delete().then(io.Link, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[117], 201, 33, "_");
        return this.create(target);
      }, T$0.FileSystemEntityToFutureOfLink()));
    }
    [_delete](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[117], 204, 30, "recursive");
      if (dart.test(recursive)) {
        return io.Directory.fromRawPath(this[_rawPath$]).delete({recursive: true}).then(io.Link, dart.fn(_ => {
          if (_ == null) dart.nullFailed(I[117], 208, 18, "_");
          return this;
        }, T$0.FileSystemEntityTo_Link()));
      }
      return io._File._dispatchWithNamespace(24, [null, this[_rawPath$]]).then(io.Link, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionFromResponse](response, "Cannot delete link", this.path));
        }
        return this;
      }, T$0.dynamicTo_Link()));
    }
    [_deleteSync](opts) {
      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
      if (recursive == null) dart.nullFailed(I[117], 219, 26, "recursive");
      if (dart.test(recursive)) {
        return io.Directory.fromRawPath(this[_rawPath$]).deleteSync({recursive: true});
      }
      let result = io._File._deleteLinkNative(io._Namespace._namespace, this[_rawPath$]);
      io._Link.throwIfError(result, "Cannot delete link", this.path);
    }
    rename(newPath) {
      if (newPath == null) dart.nullFailed(I[117], 227, 30, "newPath");
      return io._File._dispatchWithNamespace(25, [null, this[_rawPath$], newPath]).then(io.Link, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionFromResponse](response, "Cannot rename link to '" + dart.str(newPath) + "'", this.path));
        }
        return io.Link.new(newPath);
      }, T$0.dynamicToLink()));
    }
    renameSync(newPath) {
      if (newPath == null) dart.nullFailed(I[117], 238, 26, "newPath");
      let result = io._File._renameLink(io._Namespace._namespace, this[_rawPath$], newPath);
      io._Link.throwIfError(result, "Cannot rename link '" + dart.str(this.path) + "' to '" + dart.str(newPath) + "'");
      return io.Link.new(newPath);
    }
    target() {
      return io._File._dispatchWithNamespace(26, [null, this[_rawPath$]]).then(core.String, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionFromResponse](response, "Cannot get target of link", this.path));
        }
        return T$0.FutureOrOfString().as(response);
      }, T$0.dynamicToFutureOrOfString()));
    }
    targetSync() {
      let result = io._File._linkTarget(io._Namespace._namespace, this[_rawPath$]);
      io._Link.throwIfError(result, "Cannot read link", this.path);
      return core.String.as(result);
    }
    static throwIfError(result, msg, path = "") {
      if (msg == null) dart.nullFailed(I[117], 261, 46, "msg");
      if (path == null) dart.nullFailed(I[117], 261, 59, "path");
      if (io.OSError.is(result)) {
        dart.throw(new io.FileSystemException.new(msg, path, result));
      }
    }
    [_isErrorResponse](response) {
      return core.List.is(response) && !dart.equals(response[$_get](0), 0);
    }
    [_exceptionFromResponse](response, message, path) {
      if (message == null) dart.nullFailed(I[117], 271, 43, "message");
      if (path == null) dart.nullFailed(I[117], 271, 59, "path");
      if (!dart.test(this[_isErrorResponse](response))) dart.assertFailed(null, I[117], 272, 12, "_isErrorResponse(response)");
      switch (dart.dsend(response, '_get', [0])) {
        case 1:
        {
          return new core.ArgumentError.new();
        }
        case 2:
        {
          let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
          return new io.FileSystemException.new(message, path, err);
        }
        default:
        {
          return core.Exception.new("Unknown error");
        }
      }
    }
  };
  (io._Link.new = function(path) {
    if (path == null) dart.nullFailed(I[117], 146, 16, "path");
    this[_path$2] = path;
    this[_rawPath$1] = io.FileSystemEntity._toUtf8Array(path);
    ;
  }).prototype = io._Link.prototype;
  (io._Link.fromRawPath = function(rawPath) {
    if (rawPath == null) dart.nullFailed(I[117], 150, 31, "rawPath");
    this[_rawPath$1] = io.FileSystemEntity._toNullTerminatedUtf8Array(rawPath);
    this[_path$2] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
    ;
  }).prototype = io._Link.prototype;
  dart.addTypeTests(io._Link);
  dart.addTypeCaches(io._Link);
  io._Link[dart.implements] = () => [io.Link];
  dart.setMethodSignature(io._Link, () => ({
    __proto__: dart.getMethods(io._Link.__proto__),
    exists: dart.fnType(async.Future$(core.bool), []),
    existsSync: dart.fnType(core.bool, []),
    create: dart.fnType(async.Future$(io.Link), [core.String], {recursive: core.bool}, {}),
    createSync: dart.fnType(dart.void, [core.String], {recursive: core.bool}, {}),
    updateSync: dart.fnType(dart.void, [core.String]),
    update: dart.fnType(async.Future$(io.Link), [core.String]),
    [_delete]: dart.fnType(async.Future$(io.Link), [], {recursive: core.bool}, {}),
    [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
    rename: dart.fnType(async.Future$(io.Link), [core.String]),
    renameSync: dart.fnType(io.Link, [core.String]),
    target: dart.fnType(async.Future$(core.String), []),
    targetSync: dart.fnType(core.String, []),
    [_isErrorResponse]: dart.fnType(core.bool, [dart.dynamic]),
    [_exceptionFromResponse]: dart.fnType(dart.dynamic, [dart.dynamic, core.String, core.String])
  }));
  dart.setGetterSignature(io._Link, () => ({
    __proto__: dart.getGetters(io._Link.__proto__),
    path: core.String,
    absolute: io.Link
  }));
  dart.setLibraryUri(io._Link, I[105]);
  dart.setFieldSignature(io._Link, () => ({
    __proto__: dart.getFields(io._Link.__proto__),
    [_path$0]: dart.finalFieldType(core.String),
    [_rawPath$]: dart.finalFieldType(typed_data.Uint8List)
  }));
  dart.defineExtensionMethods(io._Link, ['toString']);
  io._Namespace = class _Namespace extends core.Object {
    static get _namespace() {
      dart.throw(new core.UnsupportedError.new("_Namespace"));
    }
    static get _namespacePointer() {
      dart.throw(new core.UnsupportedError.new("_Namespace"));
    }
    static _setupNamespace(namespace) {
      dart.throw(new core.UnsupportedError.new("_Namespace"));
    }
  };
  (io._Namespace.new = function() {
    ;
  }).prototype = io._Namespace.prototype;
  dart.addTypeTests(io._Namespace);
  dart.addTypeCaches(io._Namespace);
  dart.setLibraryUri(io._Namespace, I[105]);
  io._DomainNetworkPolicy = class _DomainNetworkPolicy extends core.Object {
    matchScore(host) {
      if (host == null) dart.nullFailed(I[118], 100, 25, "host");
      let domainLength = this.domain.length;
      let hostLength = host.length;
      let lengthDelta = hostLength - domainLength;
      if (host[$endsWith](this.domain) && (lengthDelta === 0 || dart.test(this.includesSubDomains) && host[$codeUnitAt](lengthDelta - 1) === 46)) {
        return domainLength * 2 + (dart.test(this.includesSubDomains) ? 0 : 1);
      }
      return -1;
    }
    checkConflict(existingPolicies) {
      if (existingPolicies == null) dart.nullFailed(I[118], 118, 49, "existingPolicies");
      for (let existingPolicy of existingPolicies) {
        if (this.includesSubDomains == existingPolicy.includesSubDomains && this.domain == existingPolicy.domain) {
          if (this.allowInsecureConnections == existingPolicy.allowInsecureConnections) {
            return false;
          }
          dart.throw(new core.StateError.new("Contradiction in the domain security policies: " + "'" + dart.str(this) + "' contradicts '" + dart.str(existingPolicy) + "'"));
        }
      }
      return true;
    }
    toString() {
      let subDomainPrefix = dart.test(this.includesSubDomains) ? "*." : "";
      let insecureConnectionPermission = dart.test(this.allowInsecureConnections) ? "Allows" : "Disallows";
      return subDomainPrefix + dart.str(this.domain) + ": " + insecureConnectionPermission + " insecure connections";
    }
  };
  (io._DomainNetworkPolicy.new = function(domain, opts) {
    if (domain == null) dart.nullFailed(I[118], 81, 29, "domain");
    let includesSubDomains = opts && 'includesSubDomains' in opts ? opts.includesSubDomains : false;
    if (includesSubDomains == null) dart.nullFailed(I[118], 82, 13, "includesSubDomains");
    let allowInsecureConnections = opts && 'allowInsecureConnections' in opts ? opts.allowInsecureConnections : false;
    if (allowInsecureConnections == null) dart.nullFailed(I[118], 83, 12, "allowInsecureConnections");
    this.domain = domain;
    this.includesSubDomains = includesSubDomains;
    this.allowInsecureConnections = allowInsecureConnections;
    if (this.domain.length > 255 || !dart.test(io._DomainNetworkPolicy._domainMatcher.hasMatch(this.domain))) {
      dart.throw(new core.ArgumentError.value(this.domain, "domain", "Invalid domain name"));
    }
  }).prototype = io._DomainNetworkPolicy.prototype;
  dart.addTypeTests(io._DomainNetworkPolicy);
  dart.addTypeCaches(io._DomainNetworkPolicy);
  dart.setMethodSignature(io._DomainNetworkPolicy, () => ({
    __proto__: dart.getMethods(io._DomainNetworkPolicy.__proto__),
    matchScore: dart.fnType(core.int, [core.String]),
    checkConflict: dart.fnType(core.bool, [core.List$(io._DomainNetworkPolicy)])
  }));
  dart.setLibraryUri(io._DomainNetworkPolicy, I[105]);
  dart.setFieldSignature(io._DomainNetworkPolicy, () => ({
    __proto__: dart.getFields(io._DomainNetworkPolicy.__proto__),
    domain: dart.finalFieldType(core.String),
    allowInsecureConnections: dart.finalFieldType(core.bool),
    includesSubDomains: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(io._DomainNetworkPolicy, ['toString']);
  dart.defineLazy(io._DomainNetworkPolicy, {
    /*io._DomainNetworkPolicy._domainMatcher*/get _domainMatcher() {
      return core.RegExp.new("^(?:[a-z\\d-]{1,63}\\.)+[a-z][a-z\\d-]{0,62}$", {caseSensitive: false});
    }
  }, false);
  io._NetworkProfiling = class _NetworkProfiling extends core.Object {
    static _registerServiceExtension() {
      developer.registerExtension(io._NetworkProfiling._kGetHttpEnableTimelineLogging, C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kSetHttpEnableTimelineLogging, C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kHttpEnableTimelineLogging, C[128] || CT.C128);
      developer.registerExtension("ext.dart.io.getSocketProfile", C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kStartSocketProfilingRPC, C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kPauseSocketProfilingRPC, C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kSocketProfilingEnabledRPC, C[128] || CT.C128);
      developer.registerExtension("ext.dart.io.clearSocketProfile", C[128] || CT.C128);
      developer.registerExtension("ext.dart.io.getVersion", C[128] || CT.C128);
      developer.registerExtension("ext.dart.io.getHttpProfile", C[128] || CT.C128);
      developer.registerExtension(io._NetworkProfiling._kGetHttpProfileRequestRPC, C[128] || CT.C128);
      developer.registerExtension("ext.dart.io.clearHttpProfile", C[128] || CT.C128);
    }
    static _serviceExtensionHandler(method, parameters) {
      if (method == null) dart.nullFailed(I[119], 60, 14, "method");
      if (parameters == null) dart.nullFailed(I[119], 60, 42, "parameters");
      try {
        let responseJson = null;
        switch (method) {
          case "ext.dart.io.getHttpEnableTimelineLogging":
          {
            responseJson = io._getHttpEnableTimelineLogging();
            break;
          }
          case "ext.dart.io.setHttpEnableTimelineLogging":
          {
            responseJson = io._setHttpEnableTimelineLogging(parameters);
            break;
          }
          case "ext.dart.io.httpEnableTimelineLogging":
          {
            if (dart.test(parameters[$containsKey]("enabled")) || dart.test(parameters[$containsKey]("enable"))) {
              if (!(1 === 1)) dart.assertFailed("'enable' is deprecated and should be removed (See #43638)", I[119], 75, 20, "_versionMajor == 1");
              if (dart.test(parameters[$containsKey]("enabled"))) {
                parameters[$_set]("enable", dart.nullCheck(parameters[$_get]("enabled")));
              }
              io._setHttpEnableTimelineLogging(parameters);
            }
            responseJson = io._getHttpEnableTimelineLogging();
            break;
          }
          case "ext.dart.io.getHttpProfile":
          {
            responseJson = _http.HttpProfiler.toJson(dart.test(parameters[$containsKey]("updatedSince")) ? core.int.tryParse(dart.nullCheck(parameters[$_get]("updatedSince"))) : null);
            break;
          }
          case "ext.dart.io.getHttpProfileRequest":
          {
            responseJson = io._getHttpProfileRequest(parameters);
            break;
          }
          case "ext.dart.io.clearHttpProfile":
          {
            _http.HttpProfiler.clear();
            responseJson = io._success();
            break;
          }
          case "ext.dart.io.getSocketProfile":
          {
            responseJson = io._SocketProfile.toJson();
            break;
          }
          case "ext.dart.io.socketProfilingEnabled":
          {
            responseJson = io._socketProfilingEnabled(parameters);
            break;
          }
          case "ext.dart.io.startSocketProfiling":
          {
            responseJson = io._SocketProfile.start();
            break;
          }
          case "ext.dart.io.pauseSocketProfiling":
          {
            responseJson = io._SocketProfile.pause();
            break;
          }
          case "ext.dart.io.clearSocketProfile":
          {
            responseJson = io._SocketProfile.clear();
            break;
          }
          case "ext.dart.io.getVersion":
          {
            responseJson = io._NetworkProfiling.getVersion();
            break;
          }
          default:
          {
            return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.error(-32000, "Method " + dart.str(method) + " does not exist"));
          }
        }
        return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(responseJson));
      } catch (e) {
        let errorMessage = dart.getThrown(e);
        if (core.Object.is(errorMessage)) {
          return T$0.FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.error(-32602, dart.toString(errorMessage)));
        } else
          throw e;
      }
    }
    static getVersion() {
      return convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["type", "Version", "major", 1, "minor", 6]));
    }
  };
  (io._NetworkProfiling.new = function() {
    ;
  }).prototype = io._NetworkProfiling.prototype;
  dart.addTypeTests(io._NetworkProfiling);
  dart.addTypeCaches(io._NetworkProfiling);
  dart.setLibraryUri(io._NetworkProfiling, I[105]);
  dart.defineLazy(io._NetworkProfiling, {
    /*io._NetworkProfiling._kGetHttpEnableTimelineLogging*/get _kGetHttpEnableTimelineLogging() {
      return "ext.dart.io.getHttpEnableTimelineLogging";
    },
    /*io._NetworkProfiling._kSetHttpEnableTimelineLogging*/get _kSetHttpEnableTimelineLogging() {
      return "ext.dart.io.setHttpEnableTimelineLogging";
    },
    /*io._NetworkProfiling._kHttpEnableTimelineLogging*/get _kHttpEnableTimelineLogging() {
      return "ext.dart.io.httpEnableTimelineLogging";
    },
    /*io._NetworkProfiling._kGetHttpProfileRPC*/get _kGetHttpProfileRPC() {
      return "ext.dart.io.getHttpProfile";
    },
    /*io._NetworkProfiling._kGetHttpProfileRequestRPC*/get _kGetHttpProfileRequestRPC() {
      return "ext.dart.io.getHttpProfileRequest";
    },
    /*io._NetworkProfiling._kClearHttpProfileRPC*/get _kClearHttpProfileRPC() {
      return "ext.dart.io.clearHttpProfile";
    },
    /*io._NetworkProfiling._kClearSocketProfileRPC*/get _kClearSocketProfileRPC() {
      return "ext.dart.io.clearSocketProfile";
    },
    /*io._NetworkProfiling._kGetSocketProfileRPC*/get _kGetSocketProfileRPC() {
      return "ext.dart.io.getSocketProfile";
    },
    /*io._NetworkProfiling._kSocketProfilingEnabledRPC*/get _kSocketProfilingEnabledRPC() {
      return "ext.dart.io.socketProfilingEnabled";
    },
    /*io._NetworkProfiling._kPauseSocketProfilingRPC*/get _kPauseSocketProfilingRPC() {
      return "ext.dart.io.pauseSocketProfiling";
    },
    /*io._NetworkProfiling._kStartSocketProfilingRPC*/get _kStartSocketProfilingRPC() {
      return "ext.dart.io.startSocketProfiling";
    },
    /*io._NetworkProfiling._kGetVersionRPC*/get _kGetVersionRPC() {
      return "ext.dart.io.getVersion";
    }
  }, false);
  var _name$4 = dart.privateName(io, "_name");
  io._SocketProfile = class _SocketProfile extends core.Object {
    static set enableSocketProfiling(enabled) {
      if (enabled == null) dart.nullFailed(I[119], 205, 41, "enabled");
      if (enabled != io._SocketProfile._enableSocketProfiling) {
        developer.postEvent("SocketProfilingStateChange", new _js_helper.LinkedMap.from(["isolateId", developer.Service.getIsolateID(isolate$.Isolate.current), "enabled", enabled]));
        io._SocketProfile._enableSocketProfiling = enabled;
      }
    }
    static get enableSocketProfiling() {
      return io._SocketProfile._enableSocketProfiling;
    }
    static toJson() {
      return convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["type", "SocketProfile", "sockets", io._SocketProfile._idToSocketStatistic[$values][$map](T$0.MapOfString$dynamic(), dart.fn(f => {
          if (f == null) dart.nullFailed(I[119], 222, 53, "f");
          return f.toMap();
        }, T$0._SocketStatisticToMapOfString$dynamic()))[$toList]()]));
    }
    static collectNewSocket(id, type, addr, port) {
      if (id == null) dart.nullFailed(I[119], 226, 11, "id");
      if (type == null) dart.nullFailed(I[119], 226, 22, "type");
      if (addr == null) dart.nullFailed(I[119], 226, 44, "addr");
      if (port == null) dart.nullFailed(I[119], 226, 54, "port");
      io._SocketProfile.collectStatistic(id, io._SocketProfileType.startTime);
      io._SocketProfile.collectStatistic(id, io._SocketProfileType.socketType, type);
      io._SocketProfile.collectStatistic(id, io._SocketProfileType.address, addr);
      io._SocketProfile.collectStatistic(id, io._SocketProfileType.port, port);
    }
    static collectStatistic(id, type, object = null) {
      let t206, t205, t204, t203, t203$, t203$0;
      if (id == null) dart.nullFailed(I[119], 233, 36, "id");
      if (type == null) dart.nullFailed(I[119], 233, 59, "type");
      if (!dart.test(io._SocketProfile._enableSocketProfiling)) {
        return;
      }
      if (!dart.test(io._SocketProfile._idToSocketStatistic[$containsKey](id)) && type != io._SocketProfileType.startTime) return;
      let stats = (t203 = io._SocketProfile._idToSocketStatistic, t204 = id, t205 = t203[$_get](t204), t205 == null ? (t206 = new io._SocketStatistic.new(id), t203[$_set](t204, t206), t206) : t205);
      switch (type) {
        case C[129] || CT.C129:
        {
          stats.startTime = developer.Timeline.now;
          break;
        }
        case C[130] || CT.C130:
        {
          stats.endTime = developer.Timeline.now;
          break;
        }
        case C[131] || CT.C131:
        {
          if (!io.InternetAddress.is(object)) dart.assertFailed(null, I[119], 250, 16, "object is InternetAddress");
          stats.address = dart.toString(io.InternetAddress.as(object));
          break;
        }
        case C[132] || CT.C132:
        {
          if (!core.int.is(object)) dart.assertFailed(null, I[119], 254, 16, "object is int");
          stats.port = T$.intN().as(object);
          break;
        }
        case C[133] || CT.C133:
        {
          if (!(typeof object == 'string')) dart.assertFailed(null, I[119], 258, 16, "object is String");
          stats.socketType = T$.StringN().as(object);
          break;
        }
        case C[134] || CT.C134:
        {
          if (object == null) return;
          t203$ = stats;
          t203$.readBytes = dart.notNull(t203$.readBytes) + dart.notNull(core.int.as(object));
          stats.lastReadTime = developer.Timeline.now;
          break;
        }
        case C[135] || CT.C135:
        {
          if (object == null) return;
          t203$0 = stats;
          t203$0.writeBytes = dart.notNull(t203$0.writeBytes) + dart.notNull(core.int.as(object));
          stats.lastWriteTime = developer.Timeline.now;
          break;
        }
        default:
        {
          dart.throw(new core.ArgumentError.new("type " + dart.str(type) + " does not exist"));
        }
      }
    }
    static start() {
      io._SocketProfile.enableSocketProfiling = true;
      return io._success();
    }
    static pause() {
      io._SocketProfile.enableSocketProfiling = false;
      return io._success();
    }
    static clear() {
      io._SocketProfile._idToSocketStatistic[$clear]();
      return io._success();
    }
  };
  (io._SocketProfile.new = function() {
    ;
  }).prototype = io._SocketProfile.prototype;
  dart.addTypeTests(io._SocketProfile);
  dart.addTypeCaches(io._SocketProfile);
  dart.setLibraryUri(io._SocketProfile, I[105]);
  dart.defineLazy(io._SocketProfile, {
    /*io._SocketProfile._kType*/get _kType() {
      return "SocketProfile";
    },
    /*io._SocketProfile._enableSocketProfiling*/get _enableSocketProfiling() {
      return false;
    },
    set _enableSocketProfiling(_) {},
    /*io._SocketProfile._idToSocketStatistic*/get _idToSocketStatistic() {
      return new (T$0.IdentityMapOfint$_SocketStatistic()).new();
    },
    set _idToSocketStatistic(_) {}
  }, false);
  io._SocketProfileType = class _SocketProfileType extends core.Object {
    toString() {
      return this[_name$4];
    }
  };
  (io._SocketProfileType.new = function(index, _name) {
    if (index == null) dart.nullFailed(I[119], 295, 6, "index");
    if (_name == null) dart.nullFailed(I[119], 295, 6, "_name");
    this.index = index;
    this[_name$4] = _name;
    ;
  }).prototype = io._SocketProfileType.prototype;
  dart.addTypeTests(io._SocketProfileType);
  dart.addTypeCaches(io._SocketProfileType);
  dart.setLibraryUri(io._SocketProfileType, I[105]);
  dart.setFieldSignature(io._SocketProfileType, () => ({
    __proto__: dart.getFields(io._SocketProfileType.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$4]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(io._SocketProfileType, ['toString']);
  io._SocketProfileType.startTime = C[129] || CT.C129;
  io._SocketProfileType.endTime = C[130] || CT.C130;
  io._SocketProfileType.address = C[131] || CT.C131;
  io._SocketProfileType.port = C[132] || CT.C132;
  io._SocketProfileType.socketType = C[133] || CT.C133;
  io._SocketProfileType.readBytes = C[134] || CT.C134;
  io._SocketProfileType.writeBytes = C[135] || CT.C135;
  io._SocketProfileType.values = C[136] || CT.C136;
  var _setIfNotNull = dart.privateName(io, "_setIfNotNull");
  io._SocketStatistic = class _SocketStatistic extends core.Object {
    toMap() {
      let map = new (T$0.IdentityMapOfString$dynamic()).from(["id", this.id]);
      this[_setIfNotNull](map, "startTime", this.startTime);
      this[_setIfNotNull](map, "endTime", this.endTime);
      this[_setIfNotNull](map, "address", this.address);
      this[_setIfNotNull](map, "port", this.port);
      this[_setIfNotNull](map, "socketType", this.socketType);
      this[_setIfNotNull](map, "readBytes", this.readBytes);
      this[_setIfNotNull](map, "writeBytes", this.writeBytes);
      this[_setIfNotNull](map, "lastWriteTime", this.lastWriteTime);
      this[_setIfNotNull](map, "lastReadTime", this.lastReadTime);
      return map;
    }
    [_setIfNotNull](json, key, value) {
      if (json == null) dart.nullFailed(I[119], 336, 43, "json");
      if (key == null) dart.nullFailed(I[119], 336, 56, "key");
      if (value == null) return;
      json[$_set](key, value);
    }
  };
  (io._SocketStatistic.new = function(id) {
    if (id == null) dart.nullFailed(I[119], 318, 25, "id");
    this.startTime = null;
    this.endTime = null;
    this.address = null;
    this.port = null;
    this.socketType = null;
    this.readBytes = 0;
    this.writeBytes = 0;
    this.lastWriteTime = null;
    this.lastReadTime = null;
    this.id = id;
    ;
  }).prototype = io._SocketStatistic.prototype;
  dart.addTypeTests(io._SocketStatistic);
  dart.addTypeCaches(io._SocketStatistic);
  dart.setMethodSignature(io._SocketStatistic, () => ({
    __proto__: dart.getMethods(io._SocketStatistic.__proto__),
    toMap: dart.fnType(core.Map$(core.String, dart.dynamic), []),
    [_setIfNotNull]: dart.fnType(dart.void, [core.Map$(core.String, dart.dynamic), core.String, dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io._SocketStatistic, I[105]);
  dart.setFieldSignature(io._SocketStatistic, () => ({
    __proto__: dart.getFields(io._SocketStatistic.__proto__),
    id: dart.finalFieldType(core.int),
    startTime: dart.fieldType(dart.nullable(core.int)),
    endTime: dart.fieldType(dart.nullable(core.int)),
    address: dart.fieldType(dart.nullable(core.String)),
    port: dart.fieldType(dart.nullable(core.int)),
    socketType: dart.fieldType(dart.nullable(core.String)),
    readBytes: dart.fieldType(core.int),
    writeBytes: dart.fieldType(core.int),
    lastWriteTime: dart.fieldType(dart.nullable(core.int)),
    lastReadTime: dart.fieldType(dart.nullable(core.int))
  }));
  io.IOOverrides = class IOOverrides extends core.Object {
    static get current() {
      let t203;
      return T$0.IOOverridesN().as((t203 = async.Zone.current._get(io._ioOverridesToken), t203 == null ? io.IOOverrides._global : t203));
    }
    static set global(overrides) {
      io.IOOverrides._global = overrides;
    }
    static runZoned(R, body, opts) {
      if (body == null) dart.nullFailed(I[120], 54, 26, "body");
      let createDirectory = opts && 'createDirectory' in opts ? opts.createDirectory : null;
      let getCurrentDirectory = opts && 'getCurrentDirectory' in opts ? opts.getCurrentDirectory : null;
      let setCurrentDirectory = opts && 'setCurrentDirectory' in opts ? opts.setCurrentDirectory : null;
      let getSystemTempDirectory = opts && 'getSystemTempDirectory' in opts ? opts.getSystemTempDirectory : null;
      let createFile = opts && 'createFile' in opts ? opts.createFile : null;
      let stat = opts && 'stat' in opts ? opts.stat : null;
      let statSync = opts && 'statSync' in opts ? opts.statSync : null;
      let fseIdentical = opts && 'fseIdentical' in opts ? opts.fseIdentical : null;
      let fseIdenticalSync = opts && 'fseIdenticalSync' in opts ? opts.fseIdenticalSync : null;
      let fseGetType = opts && 'fseGetType' in opts ? opts.fseGetType : null;
      let fseGetTypeSync = opts && 'fseGetTypeSync' in opts ? opts.fseGetTypeSync : null;
      let fsWatch = opts && 'fsWatch' in opts ? opts.fsWatch : null;
      let fsWatchIsSupported = opts && 'fsWatchIsSupported' in opts ? opts.fsWatchIsSupported : null;
      let createLink = opts && 'createLink' in opts ? opts.createLink : null;
      let socketConnect = opts && 'socketConnect' in opts ? opts.socketConnect : null;
      let socketStartConnect = opts && 'socketStartConnect' in opts ? opts.socketStartConnect : null;
      let serverSocketBind = opts && 'serverSocketBind' in opts ? opts.serverSocketBind : null;
      let overrides = new io._IOOverridesScope.new(createDirectory, getCurrentDirectory, setCurrentDirectory, getSystemTempDirectory, createFile, stat, statSync, fseIdentical, fseIdenticalSync, fseGetType, fseGetTypeSync, fsWatch, fsWatchIsSupported, createLink, socketConnect, socketStartConnect, serverSocketBind);
      return io._asyncRunZoned(R, body, {zoneValues: new (T$0.LinkedMapOfObjectN$ObjectN()).from([io._ioOverridesToken, overrides])});
    }
    static runWithIOOverrides(R, body, overrides) {
      if (body == null) dart.nullFailed(I[120], 135, 36, "body");
      if (overrides == null) dart.nullFailed(I[120], 135, 56, "overrides");
      return io._asyncRunZoned(R, body, {zoneValues: new (T$0.LinkedMapOfObjectN$ObjectN()).from([io._ioOverridesToken, overrides])});
    }
    createDirectory(path) {
      if (path == null) dart.nullFailed(I[120], 145, 36, "path");
      return new io._Directory.new(path);
    }
    getCurrentDirectory() {
      return io._Directory.current;
    }
    setCurrentDirectory(path) {
      if (path == null) dart.nullFailed(I[120], 157, 35, "path");
      io._Directory.current = path;
    }
    getSystemTempDirectory() {
      return io._Directory.systemTemp;
    }
    createFile(path) {
      if (path == null) dart.nullFailed(I[120], 173, 26, "path");
      return new io._File.new(path);
    }
    stat(path) {
      if (path == null) dart.nullFailed(I[120], 181, 32, "path");
      return io.FileStat._stat(path);
    }
    statSync(path) {
      if (path == null) dart.nullFailed(I[120], 189, 28, "path");
      return io.FileStat._statSyncInternal(path);
    }
    fseIdentical(path1, path2) {
      if (path1 == null) dart.nullFailed(I[120], 200, 36, "path1");
      if (path2 == null) dart.nullFailed(I[120], 200, 50, "path2");
      return io.FileSystemEntity._identical(path1, path2);
    }
    fseIdenticalSync(path1, path2) {
      if (path1 == null) dart.nullFailed(I[120], 209, 32, "path1");
      if (path2 == null) dart.nullFailed(I[120], 209, 46, "path2");
      return io.FileSystemEntity._identicalSync(path1, path2);
    }
    fseGetType(path, followLinks) {
      if (path == null) dart.nullFailed(I[120], 217, 50, "path");
      if (followLinks == null) dart.nullFailed(I[120], 217, 61, "followLinks");
      return io.FileSystemEntity._getTypeRequest(convert.utf8.encoder.convert(path), followLinks);
    }
    fseGetTypeSync(path, followLinks) {
      if (path == null) dart.nullFailed(I[120], 226, 46, "path");
      if (followLinks == null) dart.nullFailed(I[120], 226, 57, "followLinks");
      return io.FileSystemEntity._getTypeSyncHelper(convert.utf8.encoder.convert(path), followLinks);
    }
    fsWatch(path, events, recursive) {
      if (path == null) dart.nullFailed(I[120], 237, 42, "path");
      if (events == null) dart.nullFailed(I[120], 237, 52, "events");
      if (recursive == null) dart.nullFailed(I[120], 237, 65, "recursive");
      return io._FileSystemWatcher._watch(path, events, recursive);
    }
    fsWatchIsSupported() {
      return io._FileSystemWatcher.isSupported;
    }
    createLink(path) {
      if (path == null) dart.nullFailed(I[120], 253, 26, "path");
      return new io._Link.new(path);
    }
    socketConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[120], 261, 42, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      return io.Socket._connect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
    }
    socketStartConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[120], 272, 63, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      return io.Socket._startConnect(host, port, {sourceAddress: sourceAddress});
    }
    serverSocketBind(address, port, opts) {
      if (port == null) dart.nullFailed(I[120], 284, 54, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[120], 285, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[120], 285, 30, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[120], 285, 51, "shared");
      return io.ServerSocket._bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
    }
  };
  (io.IOOverrides.new = function() {
    ;
  }).prototype = io.IOOverrides.prototype;
  dart.addTypeTests(io.IOOverrides);
  dart.addTypeCaches(io.IOOverrides);
  dart.setMethodSignature(io.IOOverrides, () => ({
    __proto__: dart.getMethods(io.IOOverrides.__proto__),
    createDirectory: dart.fnType(io.Directory, [core.String]),
    getCurrentDirectory: dart.fnType(io.Directory, []),
    setCurrentDirectory: dart.fnType(dart.void, [core.String]),
    getSystemTempDirectory: dart.fnType(io.Directory, []),
    createFile: dart.fnType(io.File, [core.String]),
    stat: dart.fnType(async.Future$(io.FileStat), [core.String]),
    statSync: dart.fnType(io.FileStat, [core.String]),
    fseIdentical: dart.fnType(async.Future$(core.bool), [core.String, core.String]),
    fseIdenticalSync: dart.fnType(core.bool, [core.String, core.String]),
    fseGetType: dart.fnType(async.Future$(io.FileSystemEntityType), [core.String, core.bool]),
    fseGetTypeSync: dart.fnType(io.FileSystemEntityType, [core.String, core.bool]),
    fsWatch: dart.fnType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool]),
    fsWatchIsSupported: dart.fnType(core.bool, []),
    createLink: dart.fnType(io.Link, [core.String]),
    socketConnect: dart.fnType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic, timeout: dart.nullable(core.Duration)}, {}),
    socketStartConnect: dart.fnType(async.Future$(io.ConnectionTask$(io.Socket)), [dart.dynamic, core.int], {sourceAddress: dart.dynamic}, {}),
    serverSocketBind: dart.fnType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, shared: core.bool, v6Only: core.bool}, {})
  }));
  dart.setLibraryUri(io.IOOverrides, I[105]);
  dart.defineLazy(io.IOOverrides, {
    /*io.IOOverrides._global*/get _global() {
      return null;
    },
    set _global(_) {}
  }, false);
  var _previous$4 = dart.privateName(io, "_previous");
  var _createDirectory$ = dart.privateName(io, "_createDirectory");
  var _getCurrentDirectory$ = dart.privateName(io, "_getCurrentDirectory");
  var _setCurrentDirectory$ = dart.privateName(io, "_setCurrentDirectory");
  var _getSystemTempDirectory$ = dart.privateName(io, "_getSystemTempDirectory");
  var _createFile$ = dart.privateName(io, "_createFile");
  var _stat$ = dart.privateName(io, "_stat");
  var _statSync$ = dart.privateName(io, "_statSync");
  var _fseIdentical$ = dart.privateName(io, "_fseIdentical");
  var _fseIdenticalSync$ = dart.privateName(io, "_fseIdenticalSync");
  var _fseGetType$ = dart.privateName(io, "_fseGetType");
  var _fseGetTypeSync$ = dart.privateName(io, "_fseGetTypeSync");
  var _fsWatch$ = dart.privateName(io, "_fsWatch");
  var _fsWatchIsSupported$ = dart.privateName(io, "_fsWatchIsSupported");
  var _createLink$ = dart.privateName(io, "_createLink");
  var _socketConnect$ = dart.privateName(io, "_socketConnect");
  var _socketStartConnect$ = dart.privateName(io, "_socketStartConnect");
  var _serverSocketBind$ = dart.privateName(io, "_serverSocketBind");
  io._IOOverridesScope = class _IOOverridesScope extends io.IOOverrides {
    createDirectory(path) {
      if (path == null) dart.nullFailed(I[120], 367, 36, "path");
      if (this[_createDirectory$] != null) return dart.nullCheck(this[_createDirectory$])(path);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).createDirectory(path);
      return super.createDirectory(path);
    }
    getCurrentDirectory() {
      if (this[_getCurrentDirectory$] != null) return dart.nullCheck(this[_getCurrentDirectory$])();
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).getCurrentDirectory();
      return super.getCurrentDirectory();
    }
    setCurrentDirectory(path) {
      if (path == null) dart.nullFailed(I[120], 381, 35, "path");
      if (this[_setCurrentDirectory$] != null)
        dart.nullCheck(this[_setCurrentDirectory$])(path);
      else if (this[_previous$4] != null)
        dart.nullCheck(this[_previous$4]).setCurrentDirectory(path);
      else
        super.setCurrentDirectory(path);
    }
    getSystemTempDirectory() {
      if (this[_getSystemTempDirectory$] != null) return dart.nullCheck(this[_getSystemTempDirectory$])();
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).getSystemTempDirectory();
      return super.getSystemTempDirectory();
    }
    createFile(path) {
      if (path == null) dart.nullFailed(I[120], 399, 26, "path");
      if (this[_createFile$] != null) return dart.nullCheck(this[_createFile$])(path);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).createFile(path);
      return super.createFile(path);
    }
    stat(path) {
      if (path == null) dart.nullFailed(I[120], 407, 32, "path");
      if (this[_stat$] != null) return dart.nullCheck(this[_stat$])(path);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).stat(path);
      return super.stat(path);
    }
    statSync(path) {
      if (path == null) dart.nullFailed(I[120], 414, 28, "path");
      if (this[_stat$] != null) return dart.nullCheck(this[_statSync$])(path);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).statSync(path);
      return super.statSync(path);
    }
    fseIdentical(path1, path2) {
      if (path1 == null) dart.nullFailed(I[120], 422, 36, "path1");
      if (path2 == null) dart.nullFailed(I[120], 422, 50, "path2");
      if (this[_fseIdentical$] != null) return dart.nullCheck(this[_fseIdentical$])(path1, path2);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fseIdentical(path1, path2);
      return super.fseIdentical(path1, path2);
    }
    fseIdenticalSync(path1, path2) {
      if (path1 == null) dart.nullFailed(I[120], 429, 32, "path1");
      if (path2 == null) dart.nullFailed(I[120], 429, 46, "path2");
      if (this[_fseIdenticalSync$] != null) return dart.nullCheck(this[_fseIdenticalSync$])(path1, path2);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fseIdenticalSync(path1, path2);
      return super.fseIdenticalSync(path1, path2);
    }
    fseGetType(path, followLinks) {
      if (path == null) dart.nullFailed(I[120], 436, 50, "path");
      if (followLinks == null) dart.nullFailed(I[120], 436, 61, "followLinks");
      if (this[_fseGetType$] != null) return dart.nullCheck(this[_fseGetType$])(path, followLinks);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fseGetType(path, followLinks);
      return super.fseGetType(path, followLinks);
    }
    fseGetTypeSync(path, followLinks) {
      if (path == null) dart.nullFailed(I[120], 443, 46, "path");
      if (followLinks == null) dart.nullFailed(I[120], 443, 57, "followLinks");
      if (this[_fseGetTypeSync$] != null) return dart.nullCheck(this[_fseGetTypeSync$])(path, followLinks);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fseGetTypeSync(path, followLinks);
      return super.fseGetTypeSync(path, followLinks);
    }
    fsWatch(path, events, recursive) {
      if (path == null) dart.nullFailed(I[120], 451, 42, "path");
      if (events == null) dart.nullFailed(I[120], 451, 52, "events");
      if (recursive == null) dart.nullFailed(I[120], 451, 65, "recursive");
      if (this[_fsWatch$] != null) return dart.nullCheck(this[_fsWatch$])(path, events, recursive);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fsWatch(path, events, recursive);
      return super.fsWatch(path, events, recursive);
    }
    fsWatchIsSupported() {
      if (this[_fsWatchIsSupported$] != null) return dart.nullCheck(this[_fsWatchIsSupported$])();
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).fsWatchIsSupported();
      return super.fsWatchIsSupported();
    }
    createLink(path) {
      if (path == null) dart.nullFailed(I[120], 466, 26, "path");
      if (this[_createLink$] != null) return dart.nullCheck(this[_createLink$])(path);
      if (this[_previous$4] != null) return dart.nullCheck(this[_previous$4]).createLink(path);
      return super.createLink(path);
    }
    socketConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[120], 474, 42, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      if (this[_socketConnect$] != null) {
        return dart.nullCheck(this[_socketConnect$])(host, port, {sourceAddress: sourceAddress, timeout: timeout});
      }
      if (this[_previous$4] != null) {
        return dart.nullCheck(this[_previous$4]).socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
      }
      return super.socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
    }
    socketStartConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[120], 489, 63, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      if (this[_socketStartConnect$] != null) {
        return dart.nullCheck(this[_socketStartConnect$])(host, port, {sourceAddress: sourceAddress});
      }
      if (this[_previous$4] != null) {
        return dart.nullCheck(this[_previous$4]).socketStartConnect(host, port, {sourceAddress: sourceAddress});
      }
      return super.socketStartConnect(host, port, {sourceAddress: sourceAddress});
    }
    serverSocketBind(address, port, opts) {
      if (port == null) dart.nullFailed(I[120], 504, 54, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[120], 505, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[120], 505, 30, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[120], 505, 51, "shared");
      if (this[_serverSocketBind$] != null) {
        return dart.nullCheck(this[_serverSocketBind$])(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
      }
      if (this[_previous$4] != null) {
        return dart.nullCheck(this[_previous$4]).serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
      }
      return super.serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
    }
  };
  (io._IOOverridesScope.new = function(_createDirectory, _getCurrentDirectory, _setCurrentDirectory, _getSystemTempDirectory, _createFile, _stat, _statSync, _fseIdentical, _fseIdenticalSync, _fseGetType, _fseGetTypeSync, _fsWatch, _fsWatchIsSupported, _createLink, _socketConnect, _socketStartConnect, _serverSocketBind) {
    this[_previous$4] = io.IOOverrides.current;
    this[_createDirectory$] = _createDirectory;
    this[_getCurrentDirectory$] = _getCurrentDirectory;
    this[_setCurrentDirectory$] = _setCurrentDirectory;
    this[_getSystemTempDirectory$] = _getSystemTempDirectory;
    this[_createFile$] = _createFile;
    this[_stat$] = _stat;
    this[_statSync$] = _statSync;
    this[_fseIdentical$] = _fseIdentical;
    this[_fseIdenticalSync$] = _fseIdenticalSync;
    this[_fseGetType$] = _fseGetType;
    this[_fseGetTypeSync$] = _fseGetTypeSync;
    this[_fsWatch$] = _fsWatch;
    this[_fsWatchIsSupported$] = _fsWatchIsSupported;
    this[_createLink$] = _createLink;
    this[_socketConnect$] = _socketConnect;
    this[_socketStartConnect$] = _socketStartConnect;
    this[_serverSocketBind$] = _serverSocketBind;
    ;
  }).prototype = io._IOOverridesScope.prototype;
  dart.addTypeTests(io._IOOverridesScope);
  dart.addTypeCaches(io._IOOverridesScope);
  dart.setLibraryUri(io._IOOverridesScope, I[105]);
  dart.setFieldSignature(io._IOOverridesScope, () => ({
    __proto__: dart.getFields(io._IOOverridesScope.__proto__),
    [_previous$4]: dart.finalFieldType(dart.nullable(io.IOOverrides)),
    [_createDirectory$]: dart.fieldType(dart.nullable(dart.fnType(io.Directory, [core.String]))),
    [_getCurrentDirectory$]: dart.fieldType(dart.nullable(dart.fnType(io.Directory, []))),
    [_setCurrentDirectory$]: dart.fieldType(dart.nullable(dart.fnType(dart.void, [core.String]))),
    [_getSystemTempDirectory$]: dart.fieldType(dart.nullable(dart.fnType(io.Directory, []))),
    [_createFile$]: dart.fieldType(dart.nullable(dart.fnType(io.File, [core.String]))),
    [_stat$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(io.FileStat), [core.String]))),
    [_statSync$]: dart.fieldType(dart.nullable(dart.fnType(io.FileStat, [core.String]))),
    [_fseIdentical$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(core.bool), [core.String, core.String]))),
    [_fseIdenticalSync$]: dart.fieldType(dart.nullable(dart.fnType(core.bool, [core.String, core.String]))),
    [_fseGetType$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(io.FileSystemEntityType), [core.String, core.bool]))),
    [_fseGetTypeSync$]: dart.fieldType(dart.nullable(dart.fnType(io.FileSystemEntityType, [core.String, core.bool]))),
    [_fsWatch$]: dart.fieldType(dart.nullable(dart.fnType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool]))),
    [_fsWatchIsSupported$]: dart.fieldType(dart.nullable(dart.fnType(core.bool, []))),
    [_createLink$]: dart.fieldType(dart.nullable(dart.fnType(io.Link, [core.String]))),
    [_socketConnect$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic, timeout: dart.nullable(core.Duration)}, {}))),
    [_socketStartConnect$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(io.ConnectionTask$(io.Socket)), [dart.dynamic, core.int], {sourceAddress: dart.dynamic}, {}))),
    [_serverSocketBind$]: dart.fieldType(dart.nullable(dart.fnType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, shared: core.bool, v6Only: core.bool}, {})))
  }));
  io.Platform = class Platform extends core.Object {
    static get numberOfProcessors() {
      return io.Platform._numberOfProcessors;
    }
    static get pathSeparator() {
      return io.Platform._pathSeparator;
    }
    static get localeName() {
      return io._Platform.localeName();
    }
    static get operatingSystem() {
      return io.Platform._operatingSystem;
    }
    static get operatingSystemVersion() {
      return io.Platform._operatingSystemVersion;
    }
    static get localHostname() {
      return io.Platform._localHostname;
    }
    static get environment() {
      return io._Platform.environment;
    }
    static get executable() {
      return io._Platform.executable;
    }
    static get resolvedExecutable() {
      return io._Platform.resolvedExecutable;
    }
    static get script() {
      return io._Platform.script;
    }
    static get executableArguments() {
      return io._Platform.executableArguments;
    }
    static get packageRoot() {
      return null;
    }
    static get packageConfig() {
      return io._Platform.packageConfig;
    }
    static get version() {
      return io.Platform._version;
    }
  };
  (io.Platform.new = function() {
    ;
  }).prototype = io.Platform.prototype;
  dart.addTypeTests(io.Platform);
  dart.addTypeCaches(io.Platform);
  dart.setLibraryUri(io.Platform, I[105]);
  dart.defineLazy(io.Platform, {
    /*io.Platform._numberOfProcessors*/get _numberOfProcessors() {
      return io._Platform.numberOfProcessors;
    },
    /*io.Platform._pathSeparator*/get _pathSeparator() {
      return io._Platform.pathSeparator;
    },
    /*io.Platform._operatingSystem*/get _operatingSystem() {
      return io._Platform.operatingSystem;
    },
    /*io.Platform._operatingSystemVersion*/get _operatingSystemVersion() {
      return io._Platform.operatingSystemVersion;
    },
    /*io.Platform._localHostname*/get _localHostname() {
      return io._Platform.localHostname;
    },
    /*io.Platform._version*/get _version() {
      return io._Platform.version;
    },
    /*io.Platform.isLinux*/get isLinux() {
      return io.Platform._operatingSystem === "linux";
    },
    /*io.Platform.isMacOS*/get isMacOS() {
      return io.Platform._operatingSystem === "macos";
    },
    /*io.Platform.isWindows*/get isWindows() {
      return io.Platform._operatingSystem === "windows";
    },
    /*io.Platform.isAndroid*/get isAndroid() {
      return io.Platform._operatingSystem === "android";
    },
    /*io.Platform.isIOS*/get isIOS() {
      return io.Platform._operatingSystem === "ios";
    },
    /*io.Platform.isFuchsia*/get isFuchsia() {
      return io.Platform._operatingSystem === "fuchsia";
    }
  }, false);
  io._Platform = class _Platform extends core.Object {
    static _packageRoot() {
      dart.throw(new core.UnsupportedError.new("Platform._packageRoot"));
    }
    static _numberOfProcessors() {
      dart.throw(new core.UnsupportedError.new("Platform._numberOfProcessors"));
    }
    static _pathSeparator() {
      dart.throw(new core.UnsupportedError.new("Platform._pathSeparator"));
    }
    static _operatingSystem() {
      dart.throw(new core.UnsupportedError.new("Platform._operatingSystem"));
    }
    static _operatingSystemVersion() {
      dart.throw(new core.UnsupportedError.new("Platform._operatingSystemVersion"));
    }
    static _localHostname() {
      dart.throw(new core.UnsupportedError.new("Platform._localHostname"));
    }
    static _executable() {
      dart.throw(new core.UnsupportedError.new("Platform._executable"));
    }
    static _resolvedExecutable() {
      dart.throw(new core.UnsupportedError.new("Platform._resolvedExecutable"));
    }
    static _environment() {
      dart.throw(new core.UnsupportedError.new("Platform._environment"));
    }
    static _executableArguments() {
      dart.throw(new core.UnsupportedError.new("Platform._executableArguments"));
    }
    static _packageConfig() {
      dart.throw(new core.UnsupportedError.new("Platform._packageConfig"));
    }
    static _version() {
      dart.throw(new core.UnsupportedError.new("Platform._version"));
    }
    static _localeName() {
      dart.throw(new core.UnsupportedError.new("Platform._localeName"));
    }
    static _script() {
      dart.throw(new core.UnsupportedError.new("Platform._script"));
    }
    static localeName() {
      let result = io._Platform._localeClosure == null ? io._Platform._localeName() : dart.nullCheck(io._Platform._localeClosure)();
      if (io.OSError.is(result)) {
        dart.throw(result);
      }
      return result;
    }
    static get numberOfProcessors() {
      return io._Platform._numberOfProcessors();
    }
    static get pathSeparator() {
      return io._Platform._pathSeparator();
    }
    static get operatingSystem() {
      return io._Platform._operatingSystem();
    }
    static get script() {
      return io._Platform._script();
    }
    static get operatingSystemVersion() {
      if (io._Platform._cachedOSVersion == null) {
        let result = io._Platform._operatingSystemVersion();
        if (io.OSError.is(result)) {
          dart.throw(result);
        }
        io._Platform._cachedOSVersion = T$.StringN().as(result);
      }
      return dart.nullCheck(io._Platform._cachedOSVersion);
    }
    static get localHostname() {
      let result = io._Platform._localHostname();
      if (io.OSError.is(result)) {
        dart.throw(result);
      }
      return core.String.as(result);
    }
    static get executableArguments() {
      return io._Platform._executableArguments();
    }
    static get environment() {
      if (io._Platform._environmentCache == null) {
        let env = io._Platform._environment();
        if (!io.OSError.is(env)) {
          let isWindows = io._Platform.operatingSystem === "windows";
          let result = isWindows ? new (T$0._CaseInsensitiveStringMapOfString()).new() : new (T$0.LinkedMapOfString$String()).new();
          for (let str of core.Iterable.as(env)) {
            if (str == null) {
              continue;
            }
            let equalsIndex = dart.dsend(str, 'indexOf', ["="]);
            if (dart.dtest(dart.dsend(equalsIndex, '>', [0]))) {
              result[$_set](core.String.as(dart.dsend(str, 'substring', [0, equalsIndex])), core.String.as(dart.dsend(str, 'substring', [dart.dsend(equalsIndex, '+', [1])])));
            }
          }
          io._Platform._environmentCache = new (T$0.UnmodifiableMapViewOfString$String()).new(result);
        } else {
          io._Platform._environmentCache = env;
        }
      }
      if (io.OSError.is(io._Platform._environmentCache)) {
        dart.throw(io._Platform._environmentCache);
      } else {
        return T$0.MapOfString$String().as(dart.nullCheck(io._Platform._environmentCache));
      }
    }
    static get version() {
      return io._Platform._version();
    }
  };
  (io._Platform.new = function() {
    ;
  }).prototype = io._Platform.prototype;
  dart.addTypeTests(io._Platform);
  dart.addTypeCaches(io._Platform);
  dart.setLibraryUri(io._Platform, I[105]);
  dart.defineLazy(io._Platform, {
    /*io._Platform.executable*/get executable() {
      return core.String.as(io._Platform._executable());
    },
    set executable(_) {},
    /*io._Platform.resolvedExecutable*/get resolvedExecutable() {
      return core.String.as(io._Platform._resolvedExecutable());
    },
    set resolvedExecutable(_) {},
    /*io._Platform.packageConfig*/get packageConfig() {
      return io._Platform._packageConfig();
    },
    set packageConfig(_) {},
    /*io._Platform._localeClosure*/get _localeClosure() {
      return null;
    },
    set _localeClosure(_) {},
    /*io._Platform._environmentCache*/get _environmentCache() {
      return null;
    },
    set _environmentCache(_) {},
    /*io._Platform._cachedOSVersion*/get _cachedOSVersion() {
      return null;
    },
    set _cachedOSVersion(_) {}
  }, false);
  var _map$10 = dart.privateName(io, "_map");
  const _is__CaseInsensitiveStringMap_default = Symbol('_is__CaseInsensitiveStringMap_default');
  io._CaseInsensitiveStringMap$ = dart.generic(V => {
    var LinkedMapOfString$V = () => (LinkedMapOfString$V = dart.constFn(_js_helper.LinkedMap$(core.String, V)))();
    var VoidToV = () => (VoidToV = dart.constFn(dart.fnType(V, [])))();
    var MapOfString$V = () => (MapOfString$V = dart.constFn(core.Map$(core.String, V)))();
    var StringAndVTovoid = () => (StringAndVTovoid = dart.constFn(dart.fnType(dart.void, [core.String, V])))();
    var VToV = () => (VToV = dart.constFn(dart.fnType(V, [V])))();
    var VoidToNV = () => (VoidToNV = dart.constFn(dart.nullable(VoidToV())))();
    var StringAndVToV = () => (StringAndVToV = dart.constFn(dart.fnType(V, [core.String, V])))();
    class _CaseInsensitiveStringMap extends collection.MapBase$(core.String, V) {
      containsKey(key) {
        return typeof key == 'string' && dart.test(this[_map$10][$containsKey](key[$toUpperCase]()));
      }
      containsValue(value) {
        return this[_map$10][$containsValue](value);
      }
      _get(key) {
        return typeof key == 'string' ? this[_map$10][$_get](key[$toUpperCase]()) : null;
      }
      _set(key, value$) {
        let value = value$;
        core.String.as(key);
        if (key == null) dart.nullFailed(I[121], 129, 28, "key");
        V.as(value);
        this[_map$10][$_set](key[$toUpperCase](), value);
        return value$;
      }
      putIfAbsent(key, ifAbsent) {
        core.String.as(key);
        if (key == null) dart.nullFailed(I[121], 133, 24, "key");
        VoidToV().as(ifAbsent);
        if (ifAbsent == null) dart.nullFailed(I[121], 133, 31, "ifAbsent");
        return this[_map$10][$putIfAbsent](key[$toUpperCase](), ifAbsent);
      }
      addAll(other) {
        MapOfString$V().as(other);
        if (other == null) dart.nullFailed(I[121], 137, 30, "other");
        other[$forEach](dart.fn((key, value) => {
          let t204, t203;
          if (key == null) dart.nullFailed(I[121], 138, 20, "key");
          t203 = key[$toUpperCase]();
          t204 = value;
          this._set(t203, t204);
          return t204;
        }, StringAndVTovoid()));
      }
      remove(key) {
        return typeof key == 'string' ? this[_map$10][$remove](key[$toUpperCase]()) : null;
      }
      clear() {
        this[_map$10][$clear]();
      }
      forEach(f) {
        if (f == null) dart.nullFailed(I[121], 148, 21, "f");
        this[_map$10][$forEach](f);
      }
      get keys() {
        return this[_map$10][$keys];
      }
      get values() {
        return this[_map$10][$values];
      }
      get length() {
        return this[_map$10][$length];
      }
      get isEmpty() {
        return this[_map$10][$isEmpty];
      }
      get isNotEmpty() {
        return this[_map$10][$isNotEmpty];
      }
      get entries() {
        return this[_map$10][$entries];
      }
      map(K2, V2, transform) {
        if (transform == null) dart.nullFailed(I[121], 160, 44, "transform");
        return this[_map$10][$map](K2, V2, transform);
      }
      update(key, update, opts) {
        core.String.as(key);
        if (key == null) dart.nullFailed(I[121], 163, 19, "key");
        VToV().as(update);
        if (update == null) dart.nullFailed(I[121], 163, 26, "update");
        let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
        VoidToNV().as(ifAbsent);
        return this[_map$10][$update](key[$toUpperCase](), update, {ifAbsent: ifAbsent});
      }
      updateAll(update) {
        StringAndVToV().as(update);
        if (update == null) dart.nullFailed(I[121], 166, 20, "update");
        this[_map$10][$updateAll](update);
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[121], 170, 25, "test");
        this[_map$10][$removeWhere](test);
      }
      toString() {
        return dart.toString(this[_map$10]);
      }
    }
    (_CaseInsensitiveStringMap.new = function() {
      this[_map$10] = new (LinkedMapOfString$V()).new();
      ;
    }).prototype = _CaseInsensitiveStringMap.prototype;
    dart.addTypeTests(_CaseInsensitiveStringMap);
    _CaseInsensitiveStringMap.prototype[_is__CaseInsensitiveStringMap_default] = true;
    dart.addTypeCaches(_CaseInsensitiveStringMap);
    dart.setMethodSignature(_CaseInsensitiveStringMap, () => ({
      __proto__: dart.getMethods(_CaseInsensitiveStringMap.__proto__),
      _get: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$_get]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
      remove: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(dart.nullable(V), [dart.nullable(core.Object)]),
      clear: dart.fnType(dart.void, []),
      [$clear]: dart.fnType(dart.void, []),
      map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [core.String, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
      [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [core.String, V])]], (K2, V2) => [dart.nullable(core.Object), dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_CaseInsensitiveStringMap, () => ({
      __proto__: dart.getGetters(_CaseInsensitiveStringMap.__proto__),
      keys: core.Iterable$(core.String),
      [$keys]: core.Iterable$(core.String)
    }));
    dart.setLibraryUri(_CaseInsensitiveStringMap, I[105]);
    dart.setFieldSignature(_CaseInsensitiveStringMap, () => ({
      __proto__: dart.getFields(_CaseInsensitiveStringMap.__proto__),
      [_map$10]: dart.finalFieldType(core.Map$(core.String, V))
    }));
    dart.defineExtensionMethods(_CaseInsensitiveStringMap, [
      'containsKey',
      'containsValue',
      '_get',
      '_set',
      'putIfAbsent',
      'addAll',
      'remove',
      'clear',
      'forEach',
      'map',
      'update',
      'updateAll',
      'removeWhere',
      'toString'
    ]);
    dart.defineExtensionAccessors(_CaseInsensitiveStringMap, [
      'keys',
      'values',
      'length',
      'isEmpty',
      'isNotEmpty',
      'entries'
    ]);
    return _CaseInsensitiveStringMap;
  });
  io._CaseInsensitiveStringMap = io._CaseInsensitiveStringMap$();
  dart.addTypeTests(io._CaseInsensitiveStringMap, _is__CaseInsensitiveStringMap_default);
  io._ProcessUtils = class _ProcessUtils extends core.Object {
    static _exit(status) {
      if (status == null) dart.nullFailed(I[107], 306, 26, "status");
      dart.throw(new core.UnsupportedError.new("ProcessUtils._exit"));
    }
    static _setExitCode(status) {
      if (status == null) dart.nullFailed(I[107], 311, 32, "status");
      dart.throw(new core.UnsupportedError.new("ProcessUtils._setExitCode"));
    }
    static _getExitCode() {
      dart.throw(new core.UnsupportedError.new("ProcessUtils._getExitCode"));
    }
    static _sleep(millis) {
      if (millis == null) dart.nullFailed(I[107], 321, 26, "millis");
      dart.throw(new core.UnsupportedError.new("ProcessUtils._sleep"));
    }
    static _pid(process) {
      dart.throw(new core.UnsupportedError.new("ProcessUtils._pid"));
    }
    static _watchSignal(signal) {
      if (signal == null) dart.nullFailed(I[107], 331, 59, "signal");
      dart.throw(new core.UnsupportedError.new("ProcessUtils._watchSignal"));
    }
  };
  (io._ProcessUtils.new = function() {
    ;
  }).prototype = io._ProcessUtils.prototype;
  dart.addTypeTests(io._ProcessUtils);
  dart.addTypeCaches(io._ProcessUtils);
  dart.setLibraryUri(io._ProcessUtils, I[105]);
  io.ProcessInfo = class ProcessInfo extends core.Object {
    static get currentRss() {
      dart.throw(new core.UnsupportedError.new("ProcessInfo.currentRss"));
    }
    static get maxRss() {
      dart.throw(new core.UnsupportedError.new("ProcessInfo.maxRss"));
    }
  };
  (io.ProcessInfo.new = function() {
    ;
  }).prototype = io.ProcessInfo.prototype;
  dart.addTypeTests(io.ProcessInfo);
  dart.addTypeCaches(io.ProcessInfo);
  dart.setLibraryUri(io.ProcessInfo, I[105]);
  var _mode$0 = dart.privateName(io, "ProcessStartMode._mode");
  io.ProcessStartMode = class ProcessStartMode extends core.Object {
    get [_mode]() {
      return this[_mode$0];
    }
    set [_mode](value) {
      super[_mode] = value;
    }
    static get values() {
      return C[137] || CT.C137;
    }
    toString() {
      return (C[142] || CT.C142)[$_get](this[_mode]);
    }
  };
  (io.ProcessStartMode._internal = function(_mode) {
    if (_mode == null) dart.nullFailed(I[122], 156, 41, "_mode");
    this[_mode$0] = _mode;
    ;
  }).prototype = io.ProcessStartMode.prototype;
  dart.addTypeTests(io.ProcessStartMode);
  dart.addTypeCaches(io.ProcessStartMode);
  dart.setLibraryUri(io.ProcessStartMode, I[105]);
  dart.setFieldSignature(io.ProcessStartMode, () => ({
    __proto__: dart.getFields(io.ProcessStartMode.__proto__),
    [_mode]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.ProcessStartMode, ['toString']);
  dart.defineLazy(io.ProcessStartMode, {
    /*io.ProcessStartMode.normal*/get normal() {
      return C[138] || CT.C138;
    },
    /*io.ProcessStartMode.NORMAL*/get NORMAL() {
      return C[138] || CT.C138;
    },
    /*io.ProcessStartMode.inheritStdio*/get inheritStdio() {
      return C[139] || CT.C139;
    },
    /*io.ProcessStartMode.INHERIT_STDIO*/get INHERIT_STDIO() {
      return C[139] || CT.C139;
    },
    /*io.ProcessStartMode.detached*/get detached() {
      return C[140] || CT.C140;
    },
    /*io.ProcessStartMode.DETACHED*/get DETACHED() {
      return C[140] || CT.C140;
    },
    /*io.ProcessStartMode.detachedWithStdio*/get detachedWithStdio() {
      return C[141] || CT.C141;
    },
    /*io.ProcessStartMode.DETACHED_WITH_STDIO*/get DETACHED_WITH_STDIO() {
      return C[141] || CT.C141;
    }
  }, false);
  var ProcessSignal__name = dart.privateName(io, "ProcessSignal._name");
  var ProcessSignal__signalNumber = dart.privateName(io, "ProcessSignal._signalNumber");
  io.Process = class Process extends core.Object {
    static start(executable, $arguments, opts) {
      if (executable == null) dart.nullFailed(I[107], 352, 39, "executable");
      if ($arguments == null) dart.nullFailed(I[107], 352, 64, "arguments");
      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
      let environment = opts && 'environment' in opts ? opts.environment : null;
      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
      if (includeParentEnvironment == null) dart.nullFailed(I[107], 355, 12, "includeParentEnvironment");
      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
      if (runInShell == null) dart.nullFailed(I[107], 356, 12, "runInShell");
      let mode = opts && 'mode' in opts ? opts.mode : C[138] || CT.C138;
      if (mode == null) dart.nullFailed(I[107], 357, 24, "mode");
      dart.throw(new core.UnsupportedError.new("Process.start"));
    }
    static run(executable, $arguments, opts) {
      if (executable == null) dart.nullFailed(I[107], 362, 43, "executable");
      if ($arguments == null) dart.nullFailed(I[107], 362, 68, "arguments");
      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
      let environment = opts && 'environment' in opts ? opts.environment : null;
      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
      if (includeParentEnvironment == null) dart.nullFailed(I[107], 365, 12, "includeParentEnvironment");
      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
      if (runInShell == null) dart.nullFailed(I[107], 366, 12, "runInShell");
      let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : C[143] || CT.C143;
      if (stdoutEncoding == null) dart.nullFailed(I[107], 367, 16, "stdoutEncoding");
      let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : C[143] || CT.C143;
      if (stderrEncoding == null) dart.nullFailed(I[107], 368, 16, "stderrEncoding");
      dart.throw(new core.UnsupportedError.new("Process.run"));
    }
    static runSync(executable, $arguments, opts) {
      if (executable == null) dart.nullFailed(I[107], 373, 39, "executable");
      if ($arguments == null) dart.nullFailed(I[107], 373, 64, "arguments");
      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
      let environment = opts && 'environment' in opts ? opts.environment : null;
      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
      if (includeParentEnvironment == null) dart.nullFailed(I[107], 376, 12, "includeParentEnvironment");
      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
      if (runInShell == null) dart.nullFailed(I[107], 377, 12, "runInShell");
      let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : C[143] || CT.C143;
      if (stdoutEncoding == null) dart.nullFailed(I[107], 378, 16, "stdoutEncoding");
      let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : C[143] || CT.C143;
      if (stderrEncoding == null) dart.nullFailed(I[107], 379, 16, "stderrEncoding");
      dart.throw(new core.UnsupportedError.new("Process.runSync"));
    }
    static killPid(pid, signal = C[144] || CT.C144) {
      if (pid == null) dart.nullFailed(I[107], 384, 27, "pid");
      if (signal == null) dart.nullFailed(I[107], 384, 47, "signal");
      dart.throw(new core.UnsupportedError.new("Process.killPid"));
    }
  };
  (io.Process.new = function() {
    ;
  }).prototype = io.Process.prototype;
  dart.addTypeTests(io.Process);
  dart.addTypeCaches(io.Process);
  dart.setLibraryUri(io.Process, I[105]);
  var exitCode$ = dart.privateName(io, "ProcessResult.exitCode");
  var stdout$ = dart.privateName(io, "ProcessResult.stdout");
  var stderr$ = dart.privateName(io, "ProcessResult.stderr");
  var pid$ = dart.privateName(io, "ProcessResult.pid");
  io.ProcessResult = class ProcessResult extends core.Object {
    get exitCode() {
      return this[exitCode$];
    }
    set exitCode(value) {
      super.exitCode = value;
    }
    get stdout() {
      return this[stdout$];
    }
    set stdout(value) {
      super.stdout = value;
    }
    get stderr() {
      return this[stderr$];
    }
    set stderr(value) {
      super.stderr = value;
    }
    get pid() {
      return this[pid$];
    }
    set pid(value) {
      super.pid = value;
    }
  };
  (io.ProcessResult.new = function(pid, exitCode, stdout, stderr) {
    if (pid == null) dart.nullFailed(I[122], 469, 22, "pid");
    if (exitCode == null) dart.nullFailed(I[122], 469, 32, "exitCode");
    this[pid$] = pid;
    this[exitCode$] = exitCode;
    this[stdout$] = stdout;
    this[stderr$] = stderr;
    ;
  }).prototype = io.ProcessResult.prototype;
  dart.addTypeTests(io.ProcessResult);
  dart.addTypeCaches(io.ProcessResult);
  dart.setLibraryUri(io.ProcessResult, I[105]);
  dart.setFieldSignature(io.ProcessResult, () => ({
    __proto__: dart.getFields(io.ProcessResult.__proto__),
    exitCode: dart.finalFieldType(core.int),
    stdout: dart.finalFieldType(dart.dynamic),
    stderr: dart.finalFieldType(dart.dynamic),
    pid: dart.finalFieldType(core.int)
  }));
  var _signalNumber = dart.privateName(io, "_signalNumber");
  const _signalNumber$ = ProcessSignal__signalNumber;
  const _name$5 = ProcessSignal__name;
  io.ProcessSignal = class ProcessSignal extends core.Object {
    get [_signalNumber]() {
      return this[_signalNumber$];
    }
    set [_signalNumber](value) {
      super[_signalNumber] = value;
    }
    get [_name$4]() {
      return this[_name$5];
    }
    set [_name$4](value) {
      super[_name$4] = value;
    }
    toString() {
      return this[_name$4];
    }
    watch() {
      return io._ProcessUtils._watchSignal(this);
    }
  };
  (io.ProcessSignal.__ = function(_signalNumber, _name) {
    if (_signalNumber == null) dart.nullFailed(I[122], 571, 30, "_signalNumber");
    if (_name == null) dart.nullFailed(I[122], 571, 50, "_name");
    this[_signalNumber$] = _signalNumber;
    this[_name$5] = _name;
    ;
  }).prototype = io.ProcessSignal.prototype;
  dart.addTypeTests(io.ProcessSignal);
  dart.addTypeCaches(io.ProcessSignal);
  dart.setMethodSignature(io.ProcessSignal, () => ({
    __proto__: dart.getMethods(io.ProcessSignal.__proto__),
    watch: dart.fnType(async.Stream$(io.ProcessSignal), [])
  }));
  dart.setLibraryUri(io.ProcessSignal, I[105]);
  dart.setFieldSignature(io.ProcessSignal, () => ({
    __proto__: dart.getFields(io.ProcessSignal.__proto__),
    [_signalNumber]: dart.finalFieldType(core.int),
    [_name$4]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(io.ProcessSignal, ['toString']);
  dart.defineLazy(io.ProcessSignal, {
    /*io.ProcessSignal.sighup*/get sighup() {
      return C[145] || CT.C145;
    },
    /*io.ProcessSignal.sigint*/get sigint() {
      return C[146] || CT.C146;
    },
    /*io.ProcessSignal.sigquit*/get sigquit() {
      return C[147] || CT.C147;
    },
    /*io.ProcessSignal.sigill*/get sigill() {
      return C[148] || CT.C148;
    },
    /*io.ProcessSignal.sigtrap*/get sigtrap() {
      return C[149] || CT.C149;
    },
    /*io.ProcessSignal.sigabrt*/get sigabrt() {
      return C[150] || CT.C150;
    },
    /*io.ProcessSignal.sigbus*/get sigbus() {
      return C[151] || CT.C151;
    },
    /*io.ProcessSignal.sigfpe*/get sigfpe() {
      return C[152] || CT.C152;
    },
    /*io.ProcessSignal.sigkill*/get sigkill() {
      return C[153] || CT.C153;
    },
    /*io.ProcessSignal.sigusr1*/get sigusr1() {
      return C[154] || CT.C154;
    },
    /*io.ProcessSignal.sigsegv*/get sigsegv() {
      return C[155] || CT.C155;
    },
    /*io.ProcessSignal.sigusr2*/get sigusr2() {
      return C[156] || CT.C156;
    },
    /*io.ProcessSignal.sigpipe*/get sigpipe() {
      return C[157] || CT.C157;
    },
    /*io.ProcessSignal.sigalrm*/get sigalrm() {
      return C[158] || CT.C158;
    },
    /*io.ProcessSignal.sigterm*/get sigterm() {
      return C[144] || CT.C144;
    },
    /*io.ProcessSignal.sigchld*/get sigchld() {
      return C[159] || CT.C159;
    },
    /*io.ProcessSignal.sigcont*/get sigcont() {
      return C[160] || CT.C160;
    },
    /*io.ProcessSignal.sigstop*/get sigstop() {
      return C[161] || CT.C161;
    },
    /*io.ProcessSignal.sigtstp*/get sigtstp() {
      return C[162] || CT.C162;
    },
    /*io.ProcessSignal.sigttin*/get sigttin() {
      return C[163] || CT.C163;
    },
    /*io.ProcessSignal.sigttou*/get sigttou() {
      return C[164] || CT.C164;
    },
    /*io.ProcessSignal.sigurg*/get sigurg() {
      return C[165] || CT.C165;
    },
    /*io.ProcessSignal.sigxcpu*/get sigxcpu() {
      return C[166] || CT.C166;
    },
    /*io.ProcessSignal.sigxfsz*/get sigxfsz() {
      return C[167] || CT.C167;
    },
    /*io.ProcessSignal.sigvtalrm*/get sigvtalrm() {
      return C[168] || CT.C168;
    },
    /*io.ProcessSignal.sigprof*/get sigprof() {
      return C[169] || CT.C169;
    },
    /*io.ProcessSignal.sigwinch*/get sigwinch() {
      return C[170] || CT.C170;
    },
    /*io.ProcessSignal.sigpoll*/get sigpoll() {
      return C[171] || CT.C171;
    },
    /*io.ProcessSignal.sigsys*/get sigsys() {
      return C[172] || CT.C172;
    },
    /*io.ProcessSignal.SIGHUP*/get SIGHUP() {
      return C[145] || CT.C145;
    },
    /*io.ProcessSignal.SIGINT*/get SIGINT() {
      return C[146] || CT.C146;
    },
    /*io.ProcessSignal.SIGQUIT*/get SIGQUIT() {
      return C[147] || CT.C147;
    },
    /*io.ProcessSignal.SIGILL*/get SIGILL() {
      return C[148] || CT.C148;
    },
    /*io.ProcessSignal.SIGTRAP*/get SIGTRAP() {
      return C[149] || CT.C149;
    },
    /*io.ProcessSignal.SIGABRT*/get SIGABRT() {
      return C[150] || CT.C150;
    },
    /*io.ProcessSignal.SIGBUS*/get SIGBUS() {
      return C[151] || CT.C151;
    },
    /*io.ProcessSignal.SIGFPE*/get SIGFPE() {
      return C[152] || CT.C152;
    },
    /*io.ProcessSignal.SIGKILL*/get SIGKILL() {
      return C[153] || CT.C153;
    },
    /*io.ProcessSignal.SIGUSR1*/get SIGUSR1() {
      return C[154] || CT.C154;
    },
    /*io.ProcessSignal.SIGSEGV*/get SIGSEGV() {
      return C[155] || CT.C155;
    },
    /*io.ProcessSignal.SIGUSR2*/get SIGUSR2() {
      return C[156] || CT.C156;
    },
    /*io.ProcessSignal.SIGPIPE*/get SIGPIPE() {
      return C[157] || CT.C157;
    },
    /*io.ProcessSignal.SIGALRM*/get SIGALRM() {
      return C[158] || CT.C158;
    },
    /*io.ProcessSignal.SIGTERM*/get SIGTERM() {
      return C[144] || CT.C144;
    },
    /*io.ProcessSignal.SIGCHLD*/get SIGCHLD() {
      return C[159] || CT.C159;
    },
    /*io.ProcessSignal.SIGCONT*/get SIGCONT() {
      return C[160] || CT.C160;
    },
    /*io.ProcessSignal.SIGSTOP*/get SIGSTOP() {
      return C[161] || CT.C161;
    },
    /*io.ProcessSignal.SIGTSTP*/get SIGTSTP() {
      return C[162] || CT.C162;
    },
    /*io.ProcessSignal.SIGTTIN*/get SIGTTIN() {
      return C[163] || CT.C163;
    },
    /*io.ProcessSignal.SIGTTOU*/get SIGTTOU() {
      return C[164] || CT.C164;
    },
    /*io.ProcessSignal.SIGURG*/get SIGURG() {
      return C[165] || CT.C165;
    },
    /*io.ProcessSignal.SIGXCPU*/get SIGXCPU() {
      return C[166] || CT.C166;
    },
    /*io.ProcessSignal.SIGXFSZ*/get SIGXFSZ() {
      return C[167] || CT.C167;
    },
    /*io.ProcessSignal.SIGVTALRM*/get SIGVTALRM() {
      return C[168] || CT.C168;
    },
    /*io.ProcessSignal.SIGPROF*/get SIGPROF() {
      return C[169] || CT.C169;
    },
    /*io.ProcessSignal.SIGWINCH*/get SIGWINCH() {
      return C[170] || CT.C170;
    },
    /*io.ProcessSignal.SIGPOLL*/get SIGPOLL() {
      return C[171] || CT.C171;
    },
    /*io.ProcessSignal.SIGSYS*/get SIGSYS() {
      return C[172] || CT.C172;
    }
  }, false);
  var message$4 = dart.privateName(io, "SignalException.message");
  var osError$0 = dart.privateName(io, "SignalException.osError");
  io.SignalException = class SignalException extends core.Object {
    get message() {
      return this[message$4];
    }
    set message(value) {
      super.message = value;
    }
    get osError() {
      return this[osError$0];
    }
    set osError(value) {
      super.osError = value;
    }
    toString() {
      let msg = "";
      if (this.osError != null) {
        msg = ", osError: " + dart.str(this.osError);
      }
      return "SignalException: " + dart.str(this.message) + msg;
    }
  };
  (io.SignalException.new = function(message, osError = null) {
    if (message == null) dart.nullFailed(I[122], 597, 30, "message");
    this[message$4] = message;
    this[osError$0] = osError;
    ;
  }).prototype = io.SignalException.prototype;
  dart.addTypeTests(io.SignalException);
  dart.addTypeCaches(io.SignalException);
  io.SignalException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.SignalException, I[105]);
  dart.setFieldSignature(io.SignalException, () => ({
    __proto__: dart.getFields(io.SignalException.__proto__),
    message: dart.finalFieldType(core.String),
    osError: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(io.SignalException, ['toString']);
  var executable$ = dart.privateName(io, "ProcessException.executable");
  var $arguments$ = dart.privateName(io, "ProcessException.arguments");
  var message$5 = dart.privateName(io, "ProcessException.message");
  var errorCode$1 = dart.privateName(io, "ProcessException.errorCode");
  io.ProcessException = class ProcessException extends core.Object {
    get executable() {
      return this[executable$];
    }
    set executable(value) {
      super.executable = value;
    }
    get arguments() {
      return this[$arguments$];
    }
    set arguments(value) {
      super.arguments = value;
    }
    get message() {
      return this[message$5];
    }
    set message(value) {
      super.message = value;
    }
    get errorCode() {
      return this[errorCode$1];
    }
    set errorCode(value) {
      super.errorCode = value;
    }
    toString() {
      let args = this.arguments[$join](" ");
      return "ProcessException: " + dart.str(this.message) + "\n  Command: " + dart.str(this.executable) + " " + dart.str(args);
    }
  };
  (io.ProcessException.new = function(executable, $arguments, message = "", errorCode = 0) {
    if (executable == null) dart.nullFailed(I[122], 625, 31, "executable");
    if ($arguments == null) dart.nullFailed(I[122], 625, 48, "arguments");
    if (message == null) dart.nullFailed(I[122], 626, 13, "message");
    if (errorCode == null) dart.nullFailed(I[122], 626, 32, "errorCode");
    this[executable$] = executable;
    this[$arguments$] = $arguments;
    this[message$5] = message;
    this[errorCode$1] = errorCode;
    ;
  }).prototype = io.ProcessException.prototype;
  dart.addTypeTests(io.ProcessException);
  dart.addTypeCaches(io.ProcessException);
  io.ProcessException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.ProcessException, I[105]);
  dart.setFieldSignature(io.ProcessException, () => ({
    __proto__: dart.getFields(io.ProcessException.__proto__),
    executable: dart.finalFieldType(core.String),
    arguments: dart.finalFieldType(core.List$(core.String)),
    message: dart.finalFieldType(core.String),
    errorCode: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.ProcessException, ['toString']);
  var _socket$ = dart.privateName(io, "_socket");
  var _owner = dart.privateName(io, "_owner");
  var _onCancel$ = dart.privateName(io, "_onCancel");
  var _detachRaw = dart.privateName(io, "_detachRaw");
  io.SecureSocket = class SecureSocket extends core.Object {
    static connect(host, port, opts) {
      if (port == null) dart.nullFailed(I[124], 40, 49, "port");
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      return io.RawSecureSocket.connect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols, timeout: timeout}).then(io.SecureSocket, dart.fn(rawSocket => {
        if (rawSocket == null) dart.nullFailed(I[124], 50, 16, "rawSocket");
        return io.SecureSocket.__(rawSocket);
      }, T$0.RawSecureSocketToSecureSocket()));
    }
    static startConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[124], 56, 70, "port");
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      return io.RawSecureSocket.startConnect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}).then(T$0.ConnectionTaskOfSecureSocket(), dart.fn(rawState => {
        if (rawState == null) dart.nullFailed(I[124], 64, 16, "rawState");
        let socket = rawState.socket.then(io.SecureSocket, dart.fn(rawSocket => {
          if (rawSocket == null) dart.nullFailed(I[124], 66, 33, "rawSocket");
          return io.SecureSocket.__(rawSocket);
        }, T$0.RawSecureSocketToSecureSocket()));
        return new (T$0.ConnectionTaskOfSecureSocket()).__(socket, rawState[_onCancel$]);
      }, T$0.ConnectionTaskOfRawSecureSocketToConnectionTaskOfSecureSocket()));
    }
    static secure(socket, opts) {
      if (socket == null) dart.nullFailed(I[124], 103, 45, "socket");
      let host = opts && 'host' in opts ? opts.host : null;
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      return async.Future.as(dart.dsend(socket, _detachRaw, [])).then(io.RawSecureSocket, dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket.as(dart.dsend(detachedRaw, '_get', [0])), {subscription: T$0.StreamSubscriptionNOfRawSocketEvent().as(dart.dsend(detachedRaw, '_get', [1])), host: host, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), T$0.dynamicToFutureOfRawSecureSocket())).then(io.SecureSocket, dart.fn(raw => {
        if (raw == null) dart.nullFailed(I[124], 116, 28, "raw");
        return io.SecureSocket.__(raw);
      }, T$0.RawSecureSocketToSecureSocket()));
    }
    static secureServer(socket, context, opts) {
      if (socket == null) dart.nullFailed(I[124], 140, 14, "socket");
      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[124], 142, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[124], 143, 12, "requireClientCertificate");
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      return async.Future.as(dart.dsend(socket, _detachRaw, [])).then(io.RawSecureSocket, dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket.as(dart.dsend(detachedRaw, '_get', [0])), context, {subscription: T$0.StreamSubscriptionNOfRawSocketEvent().as(dart.dsend(detachedRaw, '_get', [1])), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), T$0.dynamicToFutureOfRawSecureSocket())).then(io.SecureSocket, dart.fn(raw => {
        if (raw == null) dart.nullFailed(I[124], 153, 28, "raw");
        return io.SecureSocket.__(raw);
      }, T$0.RawSecureSocketToSecureSocket()));
    }
  };
  (io.SecureSocket[dart.mixinNew] = function() {
  }).prototype = io.SecureSocket.prototype;
  dart.addTypeTests(io.SecureSocket);
  dart.addTypeCaches(io.SecureSocket);
  io.SecureSocket[dart.implements] = () => [io.Socket];
  dart.setLibraryUri(io.SecureSocket, I[105]);
  io.SecureServerSocket = class SecureServerSocket extends async.Stream$(io.SecureSocket) {
    static bind(address, port, context, opts) {
      if (port == null) dart.nullFailed(I[123], 66, 20, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[123], 67, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[123], 68, 12, "v6Only");
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[123], 69, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[123], 70, 12, "requireClientCertificate");
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[123], 72, 12, "shared");
      return io.RawSecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols, shared: shared}).then(io.SecureServerSocket, dart.fn(serverSocket => {
        if (serverSocket == null) dart.nullFailed(I[123], 80, 16, "serverSocket");
        return new io.SecureServerSocket.__(serverSocket);
      }, T$0.RawSecureServerSocketToSecureServerSocket()));
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_socket$].map(io.SecureSocket, dart.fn(rawSocket => {
        if (rawSocket == null) dart.nullFailed(I[123], 85, 25, "rawSocket");
        return io.SecureSocket.__(rawSocket);
      }, T$0.RawSecureSocketToSecureSocket())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get port() {
      return this[_socket$].port;
    }
    get address() {
      return this[_socket$].address;
    }
    close() {
      return this[_socket$].close().then(io.SecureServerSocket, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[123], 102, 63, "_");
        return this;
      }, T$0.RawSecureServerSocketToSecureServerSocket()));
    }
    set [_owner](owner) {
      this[_socket$][_owner] = owner;
    }
  };
  (io.SecureServerSocket.__ = function(_socket) {
    if (_socket == null) dart.nullFailed(I[123], 13, 29, "_socket");
    this[_socket$] = _socket;
    io.SecureServerSocket.__proto__.new.call(this);
    ;
  }).prototype = io.SecureServerSocket.prototype;
  dart.addTypeTests(io.SecureServerSocket);
  dart.addTypeCaches(io.SecureServerSocket);
  dart.setMethodSignature(io.SecureServerSocket, () => ({
    __proto__: dart.getMethods(io.SecureServerSocket.__proto__),
    listen: dart.fnType(async.StreamSubscription$(io.SecureSocket), [dart.nullable(dart.fnType(dart.void, [io.SecureSocket]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    close: dart.fnType(async.Future$(io.SecureServerSocket), [])
  }));
  dart.setGetterSignature(io.SecureServerSocket, () => ({
    __proto__: dart.getGetters(io.SecureServerSocket.__proto__),
    port: core.int,
    address: io.InternetAddress
  }));
  dart.setSetterSignature(io.SecureServerSocket, () => ({
    __proto__: dart.getSetters(io.SecureServerSocket.__proto__),
    [_owner]: dart.dynamic
  }));
  dart.setLibraryUri(io.SecureServerSocket, I[105]);
  dart.setFieldSignature(io.SecureServerSocket, () => ({
    __proto__: dart.getFields(io.SecureServerSocket.__proto__),
    [_socket$]: dart.finalFieldType(io.RawSecureServerSocket)
  }));
  var requestClientCertificate$ = dart.privateName(io, "RawSecureServerSocket.requestClientCertificate");
  var requireClientCertificate$ = dart.privateName(io, "RawSecureServerSocket.requireClientCertificate");
  var supportedProtocols$ = dart.privateName(io, "RawSecureServerSocket.supportedProtocols");
  var __RawSecureServerSocket__controller = dart.privateName(io, "_#RawSecureServerSocket#_controller");
  var __RawSecureServerSocket__controller_isSet = dart.privateName(io, "_#RawSecureServerSocket#_controller#isSet");
  var _subscription$ = dart.privateName(io, "_subscription");
  var _context$ = dart.privateName(io, "_context");
  var _onSubscriptionStateChange = dart.privateName(io, "_onSubscriptionStateChange");
  var _onPauseStateChange = dart.privateName(io, "_onPauseStateChange");
  var _onData$0 = dart.privateName(io, "_onData");
  io.RawSecureSocket = class RawSecureSocket extends core.Object {
    static connect(host, port, opts) {
      if (port == null) dart.nullFailed(I[124], 216, 52, "port");
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      io._RawSecureSocket._verifyFields(host, port, false, false);
      return io.RawSocket.connect(host, port, {timeout: timeout}).then(io.RawSecureSocket, dart.fn(socket => {
        if (socket == null) dart.nullFailed(I[124], 222, 66, "socket");
        return io.RawSecureSocket.secure(socket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
      }, T$0.RawSocketToFutureOfRawSecureSocket()));
    }
    static startConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[124], 233, 73, "port");
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      return io.RawSocket.startConnect(host, port).then(T$0.ConnectionTaskOfRawSecureSocket(), dart.fn(rawState => {
        if (rawState == null) dart.nullFailed(I[124], 238, 42, "rawState");
        let socket = rawState.socket.then(io.RawSecureSocket, dart.fn(rawSocket => {
          if (rawSocket == null) dart.nullFailed(I[124], 239, 62, "rawSocket");
          return io.RawSecureSocket.secure(rawSocket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
        }, T$0.RawSocketToFutureOfRawSecureSocket()));
        return new (T$0.ConnectionTaskOfRawSecureSocket()).__(socket, rawState[_onCancel$]);
      }, T$0.ConnectionTaskOfRawSocketToConnectionTaskOfRawSecureSocket()));
    }
    static secure(socket, opts) {
      if (socket == null) dart.nullFailed(I[124], 281, 51, "socket");
      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
      let host = opts && 'host' in opts ? opts.host : null;
      let context = opts && 'context' in opts ? opts.context : null;
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      socket.readEventsEnabled = false;
      socket.writeEventsEnabled = false;
      return io._RawSecureSocket.connect(host != null ? host : socket.address.host, socket.port, false, socket, {subscription: subscription, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
    }
    static secureServer(socket, context, opts) {
      if (socket == null) dart.nullFailed(I[124], 320, 17, "socket");
      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[124], 323, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[124], 324, 12, "requireClientCertificate");
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      socket.readEventsEnabled = false;
      socket.writeEventsEnabled = false;
      return io._RawSecureSocket.connect(socket.address, socket.remotePort, true, socket, {context: context, subscription: subscription, bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols});
    }
  };
  (io.RawSecureSocket.new = function() {
    ;
  }).prototype = io.RawSecureSocket.prototype;
  dart.addTypeTests(io.RawSecureSocket);
  dart.addTypeCaches(io.RawSecureSocket);
  io.RawSecureSocket[dart.implements] = () => [io.RawSocket];
  dart.setLibraryUri(io.RawSecureSocket, I[105]);
  io.RawSecureServerSocket = class RawSecureServerSocket extends async.Stream$(io.RawSecureSocket) {
    get requestClientCertificate() {
      return this[requestClientCertificate$];
    }
    set requestClientCertificate(value) {
      super.requestClientCertificate = value;
    }
    get requireClientCertificate() {
      return this[requireClientCertificate$];
    }
    set requireClientCertificate(value) {
      super.requireClientCertificate = value;
    }
    get supportedProtocols() {
      return this[supportedProtocols$];
    }
    set supportedProtocols(value) {
      super.supportedProtocols = value;
    }
    get [_controller]() {
      let t203;
      return dart.test(this[__RawSecureServerSocket__controller_isSet]) ? (t203 = this[__RawSecureServerSocket__controller], t203) : dart.throw(new _internal.LateError.fieldNI("_controller"));
    }
    set [_controller](t203) {
      if (t203 == null) dart.nullFailed(I[123], 114, 42, "null");
      this[__RawSecureServerSocket__controller_isSet] = true;
      this[__RawSecureServerSocket__controller] = t203;
    }
    static bind(address, port, context, opts) {
      if (port == null) dart.nullFailed(I[123], 186, 20, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[123], 187, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[123], 188, 12, "v6Only");
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[123], 189, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[123], 190, 12, "requireClientCertificate");
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[123], 192, 12, "shared");
      return io.RawServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io.RawSecureServerSocket, dart.fn(serverSocket => {
        if (serverSocket == null) dart.nullFailed(I[123], 195, 16, "serverSocket");
        return new io.RawSecureServerSocket.__(serverSocket, context, requestClientCertificate, requireClientCertificate, supportedProtocols);
      }, T$0.RawServerSocketToRawSecureServerSocket()));
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get port() {
      return this[_socket$].port;
    }
    get address() {
      return this[_socket$].address;
    }
    close() {
      this[_closed] = true;
      return this[_socket$].close().then(io.RawSecureServerSocket, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[123], 221, 34, "_");
        return this;
      }, T$0.RawServerSocketToRawSecureServerSocket()));
    }
    [_onData$0](connection) {
      if (connection == null) dart.nullFailed(I[123], 224, 26, "connection");
      let remotePort = null;
      try {
        remotePort = connection.remotePort;
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return;
        } else
          throw e$;
      }
      io._RawSecureSocket.connect(connection.address, core.int.as(remotePort), true, connection, {context: this[_context$], requestClientCertificate: this.requestClientCertificate, requireClientCertificate: this.requireClientCertificate, supportedProtocols: this.supportedProtocols}).then(core.Null, dart.fn(secureConnection => {
        if (secureConnection == null) dart.nullFailed(I[123], 238, 32, "secureConnection");
        if (dart.test(this[_closed])) {
          secureConnection.close();
        } else {
          this[_controller].add(secureConnection);
        }
      }, T$0.RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
        if (!dart.test(this[_closed])) {
          this[_controller].addError(core.Object.as(e), T$.StackTraceN().as(s));
        }
      }, T$.dynamicAnddynamicToNull()));
    }
    [_onPauseStateChange]() {
      if (dart.test(this[_controller].isPaused)) {
        dart.nullCheck(this[_subscription$]).pause();
      } else {
        dart.nullCheck(this[_subscription$]).resume();
      }
    }
    [_onSubscriptionStateChange]() {
      if (dart.test(this[_controller].hasListener)) {
        this[_subscription$] = this[_socket$].listen(dart.bind(this, _onData$0), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this[_controller], 'close')});
      } else {
        this.close();
      }
    }
    set [_owner](owner) {
      dart.dput(this[_socket$], _owner, owner);
    }
  };
  (io.RawSecureServerSocket.__ = function(_socket, _context, requestClientCertificate, requireClientCertificate, supportedProtocols) {
    if (_socket == null) dart.nullFailed(I[123], 123, 12, "_socket");
    if (requestClientCertificate == null) dart.nullFailed(I[123], 125, 12, "requestClientCertificate");
    if (requireClientCertificate == null) dart.nullFailed(I[123], 126, 12, "requireClientCertificate");
    this[__RawSecureServerSocket__controller] = null;
    this[__RawSecureServerSocket__controller_isSet] = false;
    this[_subscription$] = null;
    this[_closed] = false;
    this[_socket$] = _socket;
    this[_context$] = _context;
    this[requestClientCertificate$] = requestClientCertificate;
    this[requireClientCertificate$] = requireClientCertificate;
    this[supportedProtocols$] = supportedProtocols;
    io.RawSecureServerSocket.__proto__.new.call(this);
    this[_controller] = T$0.StreamControllerOfRawSecureSocket().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
  }).prototype = io.RawSecureServerSocket.prototype;
  dart.addTypeTests(io.RawSecureServerSocket);
  dart.addTypeCaches(io.RawSecureServerSocket);
  dart.setMethodSignature(io.RawSecureServerSocket, () => ({
    __proto__: dart.getMethods(io.RawSecureServerSocket.__proto__),
    listen: dart.fnType(async.StreamSubscription$(io.RawSecureSocket), [dart.nullable(dart.fnType(dart.void, [io.RawSecureSocket]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    close: dart.fnType(async.Future$(io.RawSecureServerSocket), []),
    [_onData$0]: dart.fnType(dart.void, [io.RawSocket]),
    [_onPauseStateChange]: dart.fnType(dart.void, []),
    [_onSubscriptionStateChange]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(io.RawSecureServerSocket, () => ({
    __proto__: dart.getGetters(io.RawSecureServerSocket.__proto__),
    [_controller]: async.StreamController$(io.RawSecureSocket),
    port: core.int,
    address: io.InternetAddress
  }));
  dart.setSetterSignature(io.RawSecureServerSocket, () => ({
    __proto__: dart.getSetters(io.RawSecureServerSocket.__proto__),
    [_controller]: async.StreamController$(io.RawSecureSocket),
    [_owner]: dart.dynamic
  }));
  dart.setLibraryUri(io.RawSecureServerSocket, I[105]);
  dart.setFieldSignature(io.RawSecureServerSocket, () => ({
    __proto__: dart.getFields(io.RawSecureServerSocket.__proto__),
    [_socket$]: dart.finalFieldType(io.RawServerSocket),
    [__RawSecureServerSocket__controller]: dart.fieldType(dart.nullable(async.StreamController$(io.RawSecureSocket))),
    [__RawSecureServerSocket__controller_isSet]: dart.fieldType(core.bool),
    [_subscription$]: dart.fieldType(dart.nullable(async.StreamSubscription$(io.RawSocket))),
    [_context$]: dart.finalFieldType(dart.nullable(io.SecurityContext)),
    requestClientCertificate: dart.finalFieldType(core.bool),
    requireClientCertificate: dart.finalFieldType(core.bool),
    supportedProtocols: dart.finalFieldType(dart.nullable(core.List$(core.String))),
    [_closed]: dart.fieldType(core.bool)
  }));
  io.X509Certificate = class X509Certificate extends core.Object {};
  (io.X509Certificate[dart.mixinNew] = function() {
  }).prototype = io.X509Certificate.prototype;
  dart.addTypeTests(io.X509Certificate);
  dart.addTypeCaches(io.X509Certificate);
  dart.setLibraryUri(io.X509Certificate, I[105]);
  io._FilterStatus = class _FilterStatus extends core.Object {};
  (io._FilterStatus.new = function() {
    this.progress = false;
    this.readEmpty = true;
    this.writeEmpty = true;
    this.readPlaintextNoLongerEmpty = false;
    this.writePlaintextNoLongerFull = false;
    this.readEncryptedNoLongerFull = false;
    this.writeEncryptedNoLongerEmpty = false;
    ;
  }).prototype = io._FilterStatus.prototype;
  dart.addTypeTests(io._FilterStatus);
  dart.addTypeCaches(io._FilterStatus);
  dart.setLibraryUri(io._FilterStatus, I[105]);
  dart.setFieldSignature(io._FilterStatus, () => ({
    __proto__: dart.getFields(io._FilterStatus.__proto__),
    progress: dart.fieldType(core.bool),
    readEmpty: dart.fieldType(core.bool),
    writeEmpty: dart.fieldType(core.bool),
    readPlaintextNoLongerEmpty: dart.fieldType(core.bool),
    writePlaintextNoLongerFull: dart.fieldType(core.bool),
    readEncryptedNoLongerFull: dart.fieldType(core.bool),
    writeEncryptedNoLongerEmpty: dart.fieldType(core.bool)
  }));
  var _handshakeComplete = dart.privateName(io, "_handshakeComplete");
  var ___RawSecureSocket__socketSubscription = dart.privateName(io, "_#_RawSecureSocket#_socketSubscription");
  var ___RawSecureSocket__socketSubscription_isSet = dart.privateName(io, "_#_RawSecureSocket#_socketSubscription#isSet");
  var _bufferedDataIndex = dart.privateName(io, "_bufferedDataIndex");
  var _status = dart.privateName(io, "_status");
  var _writeEventsEnabled = dart.privateName(io, "_writeEventsEnabled");
  var _readEventsEnabled = dart.privateName(io, "_readEventsEnabled");
  var _pauseCount = dart.privateName(io, "_pauseCount");
  var _pendingReadEvent = dart.privateName(io, "_pendingReadEvent");
  var _socketClosedRead = dart.privateName(io, "_socketClosedRead");
  var _socketClosedWrite = dart.privateName(io, "_socketClosedWrite");
  var _closedRead = dart.privateName(io, "_closedRead");
  var _closedWrite = dart.privateName(io, "_closedWrite");
  var _filterStatus = dart.privateName(io, "_filterStatus");
  var _connectPending = dart.privateName(io, "_connectPending");
  var _filterPending = dart.privateName(io, "_filterPending");
  var _filterActive = dart.privateName(io, "_filterActive");
  var _secureFilter = dart.privateName(io, "_secureFilter");
  var _selectedProtocol = dart.privateName(io, "_selectedProtocol");
  var _bufferedData$ = dart.privateName(io, "_bufferedData");
  var _secureHandshakeCompleteHandler = dart.privateName(io, "_secureHandshakeCompleteHandler");
  var _onBadCertificateWrapper = dart.privateName(io, "_onBadCertificateWrapper");
  var _socketSubscription = dart.privateName(io, "_socketSubscription");
  var _eventDispatcher = dart.privateName(io, "_eventDispatcher");
  var _reportError = dart.privateName(io, "_reportError");
  var _doneHandler = dart.privateName(io, "_doneHandler");
  var _secureHandshake = dart.privateName(io, "_secureHandshake");
  var _sendWriteEvent = dart.privateName(io, "_sendWriteEvent");
  var _completeCloseCompleter = dart.privateName(io, "_completeCloseCompleter");
  var _close$ = dart.privateName(io, "_close");
  var _scheduleReadEvent = dart.privateName(io, "_scheduleReadEvent");
  var _scheduleFilter = dart.privateName(io, "_scheduleFilter");
  var _readHandler = dart.privateName(io, "_readHandler");
  var _writeHandler = dart.privateName(io, "_writeHandler");
  var _closeHandler = dart.privateName(io, "_closeHandler");
  var _readSocket = dart.privateName(io, "_readSocket");
  var _writeSocket = dart.privateName(io, "_writeSocket");
  var _tryFilter = dart.privateName(io, "_tryFilter");
  var _pushAllFilterStages = dart.privateName(io, "_pushAllFilterStages");
  var _readSocketOrBufferedData = dart.privateName(io, "_readSocketOrBufferedData");
  var _sendReadEvent = dart.privateName(io, "_sendReadEvent");
  var _value$ = dart.privateName(io, "RawSocketEvent._value");
  var _value$0 = dart.privateName(io, "_value");
  io.RawSocketEvent = class RawSocketEvent extends core.Object {
    get [_value$0]() {
      return this[_value$];
    }
    set [_value$0](value) {
      super[_value$0] = value;
    }
    toString() {
      return (C[173] || CT.C173)[$_get](this[_value$0]);
    }
  };
  (io.RawSocketEvent.__ = function(_value) {
    if (_value == null) dart.nullFailed(I[125], 518, 31, "_value");
    this[_value$] = _value;
    ;
  }).prototype = io.RawSocketEvent.prototype;
  dart.addTypeTests(io.RawSocketEvent);
  dart.addTypeCaches(io.RawSocketEvent);
  dart.setLibraryUri(io.RawSocketEvent, I[105]);
  dart.setFieldSignature(io.RawSocketEvent, () => ({
    __proto__: dart.getFields(io.RawSocketEvent.__proto__),
    [_value$0]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.RawSocketEvent, ['toString']);
  dart.defineLazy(io.RawSocketEvent, {
    /*io.RawSocketEvent.read*/get read() {
      return C[174] || CT.C174;
    },
    /*io.RawSocketEvent.write*/get write() {
      return C[175] || CT.C175;
    },
    /*io.RawSocketEvent.readClosed*/get readClosed() {
      return C[176] || CT.C176;
    },
    /*io.RawSocketEvent.closed*/get closed() {
      return C[177] || CT.C177;
    },
    /*io.RawSocketEvent.READ*/get READ() {
      return C[174] || CT.C174;
    },
    /*io.RawSocketEvent.WRITE*/get WRITE() {
      return C[175] || CT.C175;
    },
    /*io.RawSocketEvent.READ_CLOSED*/get READ_CLOSED() {
      return C[176] || CT.C176;
    },
    /*io.RawSocketEvent.CLOSED*/get CLOSED() {
      return C[177] || CT.C177;
    }
  }, false);
  io._RawSecureSocket = class _RawSecureSocket extends async.Stream$(io.RawSocketEvent) {
    static _isBufferEncrypted(identifier) {
      if (identifier == null) dart.nullFailed(I[124], 414, 38, "identifier");
      return dart.notNull(identifier) >= 2;
    }
    get [_socketSubscription]() {
      let t206;
      return dart.test(this[___RawSecureSocket__socketSubscription_isSet]) ? (t206 = this[___RawSecureSocket__socketSubscription], t206) : dart.throw(new _internal.LateError.fieldNI("_socketSubscription"));
    }
    set [_socketSubscription](t206) {
      if (t206 == null) dart.nullFailed(I[124], 421, 49, "null");
      if (dart.test(this[___RawSecureSocket__socketSubscription_isSet]))
        dart.throw(new _internal.LateError.fieldAI("_socketSubscription"));
      else {
        this[___RawSecureSocket__socketSubscription_isSet] = true;
        this[___RawSecureSocket__socketSubscription] = t206;
      }
    }
    static connect(host, requestedPort, isServer, socket, opts) {
      let t207;
      if (requestedPort == null) dart.nullFailed(I[124], 452, 11, "requestedPort");
      if (isServer == null) dart.nullFailed(I[124], 453, 12, "isServer");
      if (socket == null) dart.nullFailed(I[124], 454, 17, "socket");
      let context = opts && 'context' in opts ? opts.context : null;
      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[124], 458, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[124], 459, 12, "requireClientCertificate");
      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
      io._RawSecureSocket._verifyFields(host, requestedPort, requestClientCertificate, requireClientCertificate);
      if (io.InternetAddress.is(host)) host = host.host;
      let address = socket.address;
      if (host != null) {
        address = io.InternetAddress._cloneWithNewHost(address, core.String.as(host));
      }
      return new io._RawSecureSocket.new(address, requestedPort, isServer, (t207 = context, t207 == null ? io.SecurityContext.defaultContext : t207), socket, subscription, bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols)[_handshakeComplete].future;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      this[_sendWriteEvent]();
      return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    static _verifyFields(host, requestedPort, requestClientCertificate, requireClientCertificate) {
      if (requestedPort == null) dart.nullFailed(I[124], 558, 39, "requestedPort");
      if (requestClientCertificate == null) dart.nullFailed(I[124], 559, 12, "requestClientCertificate");
      if (requireClientCertificate == null) dart.nullFailed(I[124], 559, 43, "requireClientCertificate");
      if (!(typeof host == 'string') && !io.InternetAddress.is(host)) {
        dart.throw(new core.ArgumentError.new("host is not a String or an InternetAddress"));
      }
      core.ArgumentError.checkNotNull(core.int, requestedPort, "requestedPort");
      if (dart.notNull(requestedPort) < 0 || dart.notNull(requestedPort) > 65535) {
        dart.throw(new core.ArgumentError.new("requestedPort is not in the range 0..65535"));
      }
      core.ArgumentError.checkNotNull(core.bool, requestClientCertificate, "requestClientCertificate");
      core.ArgumentError.checkNotNull(core.bool, requireClientCertificate, "requireClientCertificate");
    }
    get port() {
      return this[_socket$].port;
    }
    get remoteAddress() {
      return this[_socket$].remoteAddress;
    }
    get remotePort() {
      return this[_socket$].remotePort;
    }
    set [_owner](owner) {
      dart.dput(this[_socket$], _owner, owner);
    }
    available() {
      return this[_status] !== 202 ? 0 : dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](0).length;
    }
    close() {
      this.shutdown(io.SocketDirection.both);
      return this[_closeCompleter].future;
    }
    [_completeCloseCompleter](dummy = null) {
      if (!dart.test(this[_closeCompleter].isCompleted)) this[_closeCompleter].complete(this);
    }
    [_close$]() {
      this[_closedWrite] = true;
      this[_closedRead] = true;
      this[_socket$].close().then(dart.void, dart.bind(this, _completeCloseCompleter));
      this[_socketClosedWrite] = true;
      this[_socketClosedRead] = true;
      if (!dart.test(this[_filterActive]) && this[_secureFilter] != null) {
        dart.nullCheck(this[_secureFilter]).destroy();
        this[_secureFilter] = null;
      }
      if (this[_socketSubscription] != null) {
        this[_socketSubscription].cancel();
      }
      this[_controller].close();
      this[_status] = 203;
    }
    shutdown(direction) {
      if (direction == null) dart.nullFailed(I[124], 617, 33, "direction");
      if (dart.equals(direction, io.SocketDirection.send) || dart.equals(direction, io.SocketDirection.both)) {
        this[_closedWrite] = true;
        if (dart.test(this[_filterStatus].writeEmpty)) {
          this[_socket$].shutdown(io.SocketDirection.send);
          this[_socketClosedWrite] = true;
          if (dart.test(this[_closedRead])) {
            this[_close$]();
          }
        }
      }
      if (dart.equals(direction, io.SocketDirection.receive) || dart.equals(direction, io.SocketDirection.both)) {
        this[_closedRead] = true;
        this[_socketClosedRead] = true;
        this[_socket$].shutdown(io.SocketDirection.receive);
        if (dart.test(this[_socketClosedWrite])) {
          this[_close$]();
        }
      }
    }
    get writeEventsEnabled() {
      return this[_writeEventsEnabled];
    }
    set writeEventsEnabled(value) {
      if (value == null) dart.nullFailed(I[124], 642, 36, "value");
      this[_writeEventsEnabled] = value;
      if (dart.test(value)) {
        async.Timer.run(dart.fn(() => this[_sendWriteEvent](), T$.VoidTovoid()));
      }
    }
    get readEventsEnabled() {
      return this[_readEventsEnabled];
    }
    set readEventsEnabled(value) {
      if (value == null) dart.nullFailed(I[124], 651, 35, "value");
      this[_readEventsEnabled] = value;
      this[_scheduleReadEvent]();
    }
    read(length = null) {
      if (length != null && dart.notNull(length) < 0) {
        dart.throw(new core.ArgumentError.new("Invalid length parameter in SecureSocket.read (length: " + dart.str(length) + ")"));
      }
      if (dart.test(this[_closedRead])) {
        dart.throw(new io.SocketException.new("Reading from a closed socket"));
      }
      if (this[_status] !== 202) {
        return null;
      }
      let result = dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](0).read(length);
      this[_scheduleFilter]();
      return result;
    }
    static _fixOffset(offset) {
      let t207;
      t207 = offset;
      return t207 == null ? 0 : t207;
    }
    write(data, offset = 0, bytes = null) {
      if (data == null) dart.nullFailed(I[124], 675, 23, "data");
      if (offset == null) dart.nullFailed(I[124], 675, 34, "offset");
      if (bytes != null && dart.notNull(bytes) < 0) {
        dart.throw(new core.ArgumentError.new("Invalid bytes parameter in SecureSocket.read (bytes: " + dart.str(bytes) + ")"));
      }
      offset = io._RawSecureSocket._fixOffset(offset);
      if (dart.notNull(offset) < 0) {
        dart.throw(new core.ArgumentError.new("Invalid offset parameter in SecureSocket.read (offset: " + dart.str(offset) + ")"));
      }
      if (dart.test(this[_closedWrite])) {
        this[_controller].addError(new io.SocketException.new("Writing to a closed socket"));
        return 0;
      }
      if (this[_status] !== 202) return 0;
      bytes == null ? bytes = dart.notNull(data[$length]) - dart.notNull(offset) : null;
      let written = dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](1).write(data, offset, bytes);
      if (dart.notNull(written) > 0) {
        this[_filterStatus].writeEmpty = false;
      }
      this[_scheduleFilter]();
      return written;
    }
    get peerCertificate() {
      return dart.nullCheck(this[_secureFilter]).peerCertificate;
    }
    get selectedProtocol() {
      return this[_selectedProtocol];
    }
    [_onBadCertificateWrapper](certificate) {
      if (certificate == null) dart.nullFailed(I[124], 706, 49, "certificate");
      if (this.onBadCertificate == null) return false;
      return dart.nullCheck(this.onBadCertificate)(certificate);
    }
    setOption(option, enabled) {
      if (option == null) dart.nullFailed(I[124], 711, 31, "option");
      if (enabled == null) dart.nullFailed(I[124], 711, 44, "enabled");
      return this[_socket$].setOption(option, enabled);
    }
    getRawOption(option) {
      if (option == null) dart.nullFailed(I[124], 715, 42, "option");
      return this[_socket$].getRawOption(option);
    }
    setRawOption(option) {
      if (option == null) dart.nullFailed(I[124], 719, 37, "option");
      this[_socket$].setRawOption(option);
    }
    [_eventDispatcher](event) {
      if (event == null) dart.nullFailed(I[124], 723, 40, "event");
      try {
        if (dart.equals(event, io.RawSocketEvent.read)) {
          this[_readHandler]();
        } else if (dart.equals(event, io.RawSocketEvent.write)) {
          this[_writeHandler]();
        } else if (dart.equals(event, io.RawSocketEvent.readClosed)) {
          this[_closeHandler]();
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stackTrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          this[_reportError](e, stackTrace);
        } else
          throw e$;
      }
    }
    [_readHandler]() {
      this[_readSocket]();
      this[_scheduleFilter]();
    }
    [_writeHandler]() {
      this[_writeSocket]();
      this[_scheduleFilter]();
    }
    [_doneHandler]() {
      if (dart.test(this[_filterStatus].readEmpty)) {
        this[_close$]();
      }
    }
    [_reportError](e, stackTrace = null) {
      if (this[_status] === 203) {
        return;
      } else if (dart.test(this[_connectPending])) {
        this[_handshakeComplete].completeError(core.Object.as(e), stackTrace);
      } else {
        this[_controller].addError(core.Object.as(e), stackTrace);
      }
      this[_close$]();
    }
    [_closeHandler]() {
      return async.async(dart.void, (function* _closeHandler() {
        if (this[_status] === 202) {
          if (dart.test(this[_closedRead])) return;
          this[_socketClosedRead] = true;
          if (dart.test(this[_filterStatus].readEmpty)) {
            this[_closedRead] = true;
            this[_controller].add(io.RawSocketEvent.readClosed);
            if (dart.test(this[_socketClosedWrite])) {
              this[_close$]();
            }
          } else {
            yield this[_scheduleFilter]();
          }
        } else if (this[_status] === 201) {
          this[_socketClosedRead] = true;
          if (dart.test(this[_filterStatus].readEmpty)) {
            this[_reportError](new io.HandshakeException.new("Connection terminated during handshake"), null);
          } else {
            yield this[_secureHandshake]();
          }
        }
      }).bind(this));
    }
    [_secureHandshake]() {
      return async.async(dart.void, (function* _secureHandshake$() {
        try {
          let needRetryHandshake = (yield dart.nullCheck(this[_secureFilter]).handshake());
          if (dart.test(needRetryHandshake)) {
            yield this[_secureHandshake]();
          } else {
            this[_filterStatus].writeEmpty = false;
            this[_readSocket]();
            this[_writeSocket]();
            yield this[_scheduleFilter]();
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          let stackTrace = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            this[_reportError](e, stackTrace);
          } else
            throw e$;
        }
      }).bind(this));
    }
    renegotiate(opts) {
      let useSessionCache = opts && 'useSessionCache' in opts ? opts.useSessionCache : true;
      if (useSessionCache == null) dart.nullFailed(I[124], 810, 13, "useSessionCache");
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[124], 811, 12, "requestClientCertificate");
      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
      if (requireClientCertificate == null) dart.nullFailed(I[124], 812, 12, "requireClientCertificate");
      if (this[_status] !== 202) {
        dart.throw(new io.HandshakeException.new("Called renegotiate on a non-connected socket"));
      }
      dart.nullCheck(this[_secureFilter]).renegotiate(useSessionCache, requestClientCertificate, requireClientCertificate);
      this[_status] = 201;
      this[_filterStatus].writeEmpty = false;
      this[_scheduleFilter]();
    }
    [_secureHandshakeCompleteHandler]() {
      this[_status] = 202;
      if (dart.test(this[_connectPending])) {
        this[_connectPending] = false;
        try {
          this[_selectedProtocol] = dart.nullCheck(this[_secureFilter]).selectedProtocol();
          async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), T$.VoidTovoid()));
        } catch (e) {
          let error = dart.getThrown(e);
          let stack = dart.stackTrace(e);
          if (core.Object.is(error)) {
            this[_handshakeComplete].completeError(error, stack);
          } else
            throw e;
        }
      }
    }
    [_onPauseStateChange]() {
      if (dart.test(this[_controller].isPaused)) {
        this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
      } else {
        this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
        if (this[_pauseCount] === 0) {
          this[_scheduleReadEvent]();
          this[_sendWriteEvent]();
        }
      }
      if (!dart.test(this[_socketClosedRead]) || !dart.test(this[_socketClosedWrite])) {
        if (dart.test(this[_controller].isPaused)) {
          this[_socketSubscription].pause();
        } else {
          this[_socketSubscription].resume();
        }
      }
    }
    [_onSubscriptionStateChange]() {
      if (dart.test(this[_controller].hasListener)) {
      }
    }
    [_scheduleFilter]() {
      this[_filterPending] = true;
      return this[_tryFilter]();
    }
    [_tryFilter]() {
      return async.async(dart.void, (function* _tryFilter() {
        try {
          while (true) {
            if (this[_status] === 203) {
              return;
            }
            if (!dart.test(this[_filterPending]) || dart.test(this[_filterActive])) {
              return;
            }
            this[_filterActive] = true;
            this[_filterPending] = false;
            this[_filterStatus] = (yield this[_pushAllFilterStages]());
            this[_filterActive] = false;
            if (this[_status] === 203) {
              dart.nullCheck(this[_secureFilter]).destroy();
              this[_secureFilter] = null;
              return;
            }
            this[_socket$].readEventsEnabled = true;
            if (dart.test(this[_filterStatus].writeEmpty) && dart.test(this[_closedWrite]) && !dart.test(this[_socketClosedWrite])) {
              this.shutdown(io.SocketDirection.send);
              if (this[_status] === 203) {
                return;
              }
            }
            if (dart.test(this[_filterStatus].readEmpty) && dart.test(this[_socketClosedRead]) && !dart.test(this[_closedRead])) {
              if (this[_status] === 201) {
                dart.nullCheck(this[_secureFilter]).handshake();
                if (this[_status] === 201) {
                  dart.throw(new io.HandshakeException.new("Connection terminated during handshake"));
                }
              }
              this[_closeHandler]();
            }
            if (this[_status] === 203) {
              return;
            }
            if (dart.test(this[_filterStatus].progress)) {
              this[_filterPending] = true;
              if (dart.test(this[_filterStatus].writeEncryptedNoLongerEmpty)) {
                this[_writeSocket]();
              }
              if (dart.test(this[_filterStatus].writePlaintextNoLongerFull)) {
                this[_sendWriteEvent]();
              }
              if (dart.test(this[_filterStatus].readEncryptedNoLongerFull)) {
                this[_readSocket]();
              }
              if (dart.test(this[_filterStatus].readPlaintextNoLongerEmpty)) {
                this[_scheduleReadEvent]();
              }
              if (this[_status] === 201) {
                yield this[_secureHandshake]();
              }
            }
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          let st = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            this[_reportError](e, st);
          } else
            throw e$;
        }
      }).bind(this));
    }
    [_readSocketOrBufferedData](bytes) {
      if (bytes == null) dart.nullFailed(I[124], 933, 44, "bytes");
      let bufferedData = this[_bufferedData$];
      if (bufferedData != null) {
        if (dart.notNull(bytes) > dart.notNull(bufferedData[$length]) - dart.notNull(this[_bufferedDataIndex])) {
          bytes = dart.notNull(bufferedData[$length]) - dart.notNull(this[_bufferedDataIndex]);
        }
        let result = bufferedData[$sublist](this[_bufferedDataIndex], dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes));
        this[_bufferedDataIndex] = dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes);
        if (bufferedData[$length] == this[_bufferedDataIndex]) {
          this[_bufferedData$] = null;
        }
        return result;
      } else if (!dart.test(this[_socketClosedRead])) {
        return this[_socket$].read(bytes);
      } else {
        return null;
      }
    }
    [_readSocket]() {
      if (this[_status] === 203) return;
      let buffer = dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](2);
      if (dart.notNull(buffer.writeFromSource(dart.bind(this, _readSocketOrBufferedData))) > 0) {
        this[_filterStatus].readEmpty = false;
      } else {
        this[_socket$].readEventsEnabled = false;
      }
    }
    [_writeSocket]() {
      if (dart.test(this[_socketClosedWrite])) return;
      let buffer = dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](3);
      if (dart.test(buffer.readToSocket(this[_socket$]))) {
        this[_socket$].writeEventsEnabled = true;
      }
    }
    [_scheduleReadEvent]() {
      if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && !dart.test(dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](0).isEmpty)) {
        this[_pendingReadEvent] = true;
        async.Timer.run(dart.bind(this, _sendReadEvent));
      }
    }
    [_sendReadEvent]() {
      this[_pendingReadEvent] = false;
      if (this[_status] !== 203 && dart.test(this[_readEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && !dart.test(dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](0).isEmpty)) {
        this[_controller].add(io.RawSocketEvent.read);
        this[_scheduleReadEvent]();
      }
    }
    [_sendWriteEvent]() {
      if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && dart.notNull(dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers)[$_get](1).free) > 0) {
        this[_writeEventsEnabled] = false;
        this[_controller].add(io.RawSocketEvent.write);
      }
    }
    [_pushAllFilterStages]() {
      return async.async(io._FilterStatus, (function* _pushAllFilterStages() {
        let wasInHandshake = this[_status] !== 202;
        let args = core.List.filled(2 + 4 * 2, null);
        args[$_set](0, dart.nullCheck(this[_secureFilter])[_pointer]());
        args[$_set](1, wasInHandshake);
        let bufs = dart.nullCheck(dart.nullCheck(this[_secureFilter]).buffers);
        for (let i = 0; i < 4; i = i + 1) {
          args[$_set](2 * i + 2, bufs[$_get](i).start);
          args[$_set](2 * i + 3, bufs[$_get](i).end);
        }
        let response = (yield io._IOService._dispatch(42, args));
        if (dart.equals(dart.dload(response, 'length'), 2)) {
          if (wasInHandshake) {
            this[_reportError](new io.HandshakeException.new(dart.str(dart.dsend(response, '_get', [1])) + " error " + dart.str(dart.dsend(response, '_get', [0]))), null);
          } else {
            this[_reportError](new io.TlsException.new(dart.str(dart.dsend(response, '_get', [1])) + " error " + dart.str(dart.dsend(response, '_get', [0]))), null);
          }
        }
        function start(index) {
          if (index == null) dart.nullFailed(I[124], 1033, 19, "index");
          return core.int.as(dart.dsend(response, '_get', [2 * dart.notNull(index)]));
        }
        dart.fn(start, T$0.intToint());
        function end(index) {
          if (index == null) dart.nullFailed(I[124], 1034, 17, "index");
          return core.int.as(dart.dsend(response, '_get', [2 * dart.notNull(index) + 1]));
        }
        dart.fn(end, T$0.intToint());
        let status = new io._FilterStatus.new();
        status.writeEmpty = dart.test(bufs[$_get](1).isEmpty) && start(3) == end(3);
        if (wasInHandshake) status.writeEmpty = false;
        status.readEmpty = dart.test(bufs[$_get](2).isEmpty) && start(0) == end(0);
        let buffer = bufs[$_get](1);
        let new_start = start(1);
        if (new_start != buffer.start) {
          status.progress = true;
          if (buffer.free === 0) {
            status.writePlaintextNoLongerFull = true;
          }
          buffer.start = new_start;
        }
        buffer = bufs[$_get](2);
        new_start = start(2);
        if (new_start != buffer.start) {
          status.progress = true;
          if (buffer.free === 0) {
            status.readEncryptedNoLongerFull = true;
          }
          buffer.start = new_start;
        }
        buffer = bufs[$_get](3);
        let new_end = end(3);
        if (new_end != buffer.end) {
          status.progress = true;
          if (buffer.length === 0) {
            status.writeEncryptedNoLongerEmpty = true;
          }
          buffer.end = new_end;
        }
        buffer = bufs[$_get](0);
        new_end = end(0);
        if (new_end != buffer.end) {
          status.progress = true;
          if (buffer.length === 0) {
            status.readPlaintextNoLongerEmpty = true;
          }
          buffer.end = new_end;
        }
        return status;
      }).bind(this));
    }
  };
  (io._RawSecureSocket.new = function(address, requestedPort, isServer, context, _socket, subscription, _bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols) {
    let t205, t205$;
    if (address == null) dart.nullFailed(I[124], 486, 12, "address");
    if (requestedPort == null) dart.nullFailed(I[124], 487, 11, "requestedPort");
    if (isServer == null) dart.nullFailed(I[124], 488, 12, "isServer");
    if (context == null) dart.nullFailed(I[124], 489, 12, "context");
    if (_socket == null) dart.nullFailed(I[124], 490, 12, "_socket");
    if (requestClientCertificate == null) dart.nullFailed(I[124], 493, 12, "requestClientCertificate");
    if (requireClientCertificate == null) dart.nullFailed(I[124], 494, 12, "requireClientCertificate");
    this[_handshakeComplete] = T$0.CompleterOf_RawSecureSocket().new();
    this[_controller] = T$0.StreamControllerOfRawSocketEvent().new({sync: true});
    this[___RawSecureSocket__socketSubscription] = null;
    this[___RawSecureSocket__socketSubscription_isSet] = false;
    this[_bufferedDataIndex] = 0;
    this[_status] = 201;
    this[_writeEventsEnabled] = true;
    this[_readEventsEnabled] = true;
    this[_pauseCount] = 0;
    this[_pendingReadEvent] = false;
    this[_socketClosedRead] = false;
    this[_socketClosedWrite] = false;
    this[_closedRead] = false;
    this[_closedWrite] = false;
    this[_closeCompleter] = T$0.CompleterOfRawSecureSocket().new();
    this[_filterStatus] = new io._FilterStatus.new();
    this[_connectPending] = true;
    this[_filterPending] = false;
    this[_filterActive] = false;
    this[_secureFilter] = io._SecureFilter.__();
    this[_selectedProtocol] = null;
    this.address = address;
    this.isServer = isServer;
    this.context = context;
    this[_socket$] = _socket;
    this[_bufferedData$] = _bufferedData;
    this.requestClientCertificate = requestClientCertificate;
    this.requireClientCertificate = requireClientCertificate;
    this.onBadCertificate = onBadCertificate;
    io._RawSecureSocket.__proto__.new.call(this);
    t205 = this[_controller];
    (() => {
      t205.onListen = dart.bind(this, _onSubscriptionStateChange);
      t205.onPause = dart.bind(this, _onPauseStateChange);
      t205.onResume = dart.bind(this, _onPauseStateChange);
      t205.onCancel = dart.bind(this, _onSubscriptionStateChange);
      return t205;
    })();
    let secureFilter = dart.nullCheck(this[_secureFilter]);
    secureFilter.init();
    secureFilter.registerHandshakeCompleteCallback(dart.bind(this, _secureHandshakeCompleteHandler));
    if (this.onBadCertificate != null) {
      secureFilter.registerBadCertificateCallback(dart.bind(this, _onBadCertificateWrapper));
    }
    this[_socket$].readEventsEnabled = true;
    this[_socket$].writeEventsEnabled = false;
    if (subscription == null) {
      this[_socketSubscription] = this[_socket$].listen(dart.bind(this, _eventDispatcher), {onError: dart.bind(this, _reportError), onDone: dart.bind(this, _doneHandler)});
    } else {
      this[_socketSubscription] = subscription;
      if (dart.test(this[_socketSubscription].isPaused)) {
        this[_socket$].close();
        dart.throw(new core.ArgumentError.new("Subscription passed to TLS upgrade is paused"));
      }
      let s = this[_socket$];
      if (dart.dtest(dart.dload(dart.dload(s, _socket$), 'closedReadEventSent'))) {
        this[_eventDispatcher](io.RawSocketEvent.readClosed);
      }
      t205$ = this[_socketSubscription];
      (() => {
        t205$.onData(dart.bind(this, _eventDispatcher));
        t205$.onError(dart.bind(this, _reportError));
        t205$.onDone(dart.bind(this, _doneHandler));
        return t205$;
      })();
    }
    try {
      let encodedProtocols = io.SecurityContext._protocolsToLengthEncoding(supportedProtocols);
      secureFilter.connect(this.address.host, this.context, this.isServer, dart.test(this.requestClientCertificate) || dart.test(this.requireClientCertificate), this.requireClientCertificate, encodedProtocols);
      this[_secureHandshake]();
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (core.Object.is(e)) {
        this[_reportError](e, s);
      } else
        throw e$;
    }
  }).prototype = io._RawSecureSocket.prototype;
  dart.addTypeTests(io._RawSecureSocket);
  dart.addTypeCaches(io._RawSecureSocket);
  io._RawSecureSocket[dart.implements] = () => [io.RawSecureSocket];
  dart.setMethodSignature(io._RawSecureSocket, () => ({
    __proto__: dart.getMethods(io._RawSecureSocket.__proto__),
    listen: dart.fnType(async.StreamSubscription$(io.RawSocketEvent), [dart.nullable(dart.fnType(dart.void, [io.RawSocketEvent]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    available: dart.fnType(core.int, []),
    close: dart.fnType(async.Future$(io.RawSecureSocket), []),
    [_completeCloseCompleter]: dart.fnType(dart.void, [], [dart.nullable(io.RawSocket)]),
    [_close$]: dart.fnType(dart.void, []),
    shutdown: dart.fnType(dart.void, [io.SocketDirection]),
    read: dart.fnType(dart.nullable(typed_data.Uint8List), [], [dart.nullable(core.int)]),
    write: dart.fnType(core.int, [core.List$(core.int)], [core.int, dart.nullable(core.int)]),
    [_onBadCertificateWrapper]: dart.fnType(core.bool, [io.X509Certificate]),
    setOption: dart.fnType(core.bool, [io.SocketOption, core.bool]),
    getRawOption: dart.fnType(typed_data.Uint8List, [io.RawSocketOption]),
    setRawOption: dart.fnType(dart.void, [io.RawSocketOption]),
    [_eventDispatcher]: dart.fnType(dart.void, [io.RawSocketEvent]),
    [_readHandler]: dart.fnType(dart.void, []),
    [_writeHandler]: dart.fnType(dart.void, []),
    [_doneHandler]: dart.fnType(dart.void, []),
    [_reportError]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(core.StackTrace)]),
    [_closeHandler]: dart.fnType(dart.void, []),
    [_secureHandshake]: dart.fnType(async.Future$(dart.void), []),
    renegotiate: dart.fnType(dart.void, [], {requestClientCertificate: core.bool, requireClientCertificate: core.bool, useSessionCache: core.bool}, {}),
    [_secureHandshakeCompleteHandler]: dart.fnType(dart.void, []),
    [_onPauseStateChange]: dart.fnType(dart.void, []),
    [_onSubscriptionStateChange]: dart.fnType(dart.void, []),
    [_scheduleFilter]: dart.fnType(async.Future$(dart.void), []),
    [_tryFilter]: dart.fnType(async.Future$(dart.void), []),
    [_readSocketOrBufferedData]: dart.fnType(dart.nullable(core.List$(core.int)), [core.int]),
    [_readSocket]: dart.fnType(dart.void, []),
    [_writeSocket]: dart.fnType(dart.void, []),
    [_scheduleReadEvent]: dart.fnType(dart.dynamic, []),
    [_sendReadEvent]: dart.fnType(dart.dynamic, []),
    [_sendWriteEvent]: dart.fnType(dart.dynamic, []),
    [_pushAllFilterStages]: dart.fnType(async.Future$(io._FilterStatus), [])
  }));
  dart.setGetterSignature(io._RawSecureSocket, () => ({
    __proto__: dart.getGetters(io._RawSecureSocket.__proto__),
    [_socketSubscription]: async.StreamSubscription$(io.RawSocketEvent),
    port: core.int,
    remoteAddress: io.InternetAddress,
    remotePort: core.int,
    writeEventsEnabled: core.bool,
    readEventsEnabled: core.bool,
    peerCertificate: dart.nullable(io.X509Certificate),
    selectedProtocol: dart.nullable(core.String)
  }));
  dart.setSetterSignature(io._RawSecureSocket, () => ({
    __proto__: dart.getSetters(io._RawSecureSocket.__proto__),
    [_socketSubscription]: async.StreamSubscription$(io.RawSocketEvent),
    [_owner]: dart.dynamic,
    writeEventsEnabled: core.bool,
    readEventsEnabled: core.bool
  }));
  dart.setLibraryUri(io._RawSecureSocket, I[105]);
  dart.setFieldSignature(io._RawSecureSocket, () => ({
    __proto__: dart.getFields(io._RawSecureSocket.__proto__),
    [_socket$]: dart.finalFieldType(io.RawSocket),
    [_handshakeComplete]: dart.finalFieldType(async.Completer$(io._RawSecureSocket)),
    [_controller]: dart.finalFieldType(async.StreamController$(io.RawSocketEvent)),
    [___RawSecureSocket__socketSubscription]: dart.fieldType(dart.nullable(async.StreamSubscription$(io.RawSocketEvent))),
    [___RawSecureSocket__socketSubscription_isSet]: dart.fieldType(core.bool),
    [_bufferedData$]: dart.fieldType(dart.nullable(core.List$(core.int))),
    [_bufferedDataIndex]: dart.fieldType(core.int),
    address: dart.finalFieldType(io.InternetAddress),
    isServer: dart.finalFieldType(core.bool),
    context: dart.finalFieldType(io.SecurityContext),
    requestClientCertificate: dart.finalFieldType(core.bool),
    requireClientCertificate: dart.finalFieldType(core.bool),
    onBadCertificate: dart.finalFieldType(dart.nullable(dart.fnType(core.bool, [io.X509Certificate]))),
    [_status]: dart.fieldType(core.int),
    [_writeEventsEnabled]: dart.fieldType(core.bool),
    [_readEventsEnabled]: dart.fieldType(core.bool),
    [_pauseCount]: dart.fieldType(core.int),
    [_pendingReadEvent]: dart.fieldType(core.bool),
    [_socketClosedRead]: dart.fieldType(core.bool),
    [_socketClosedWrite]: dart.fieldType(core.bool),
    [_closedRead]: dart.fieldType(core.bool),
    [_closedWrite]: dart.fieldType(core.bool),
    [_closeCompleter]: dart.fieldType(async.Completer$(io.RawSecureSocket)),
    [_filterStatus]: dart.fieldType(io._FilterStatus),
    [_connectPending]: dart.fieldType(core.bool),
    [_filterPending]: dart.fieldType(core.bool),
    [_filterActive]: dart.fieldType(core.bool),
    [_secureFilter]: dart.fieldType(dart.nullable(io._SecureFilter)),
    [_selectedProtocol]: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineLazy(io._RawSecureSocket, {
    /*io._RawSecureSocket.handshakeStatus*/get handshakeStatus() {
      return 201;
    },
    /*io._RawSecureSocket.connectedStatus*/get connectedStatus() {
      return 202;
    },
    /*io._RawSecureSocket.closedStatus*/get closedStatus() {
      return 203;
    },
    /*io._RawSecureSocket.readPlaintextId*/get readPlaintextId() {
      return 0;
    },
    /*io._RawSecureSocket.writePlaintextId*/get writePlaintextId() {
      return 1;
    },
    /*io._RawSecureSocket.readEncryptedId*/get readEncryptedId() {
      return 2;
    },
    /*io._RawSecureSocket.writeEncryptedId*/get writeEncryptedId() {
      return 3;
    },
    /*io._RawSecureSocket.bufferCount*/get bufferCount() {
      return 4;
    }
  }, false);
  io._ExternalBuffer = class _ExternalBuffer extends core.Object {
    advanceStart(bytes) {
      if (bytes == null) dart.nullFailed(I[124], 1111, 25, "bytes");
      if (!(dart.notNull(this.start) > dart.notNull(this.end) || dart.notNull(this.start) + dart.notNull(bytes) <= dart.notNull(this.end))) dart.assertFailed(null, I[124], 1112, 12, "start > end || start + bytes <= end");
      this.start = dart.notNull(this.start) + dart.notNull(bytes);
      if (dart.notNull(this.start) >= dart.notNull(this.size)) {
        this.start = dart.notNull(this.start) - dart.notNull(this.size);
        if (!(dart.notNull(this.start) <= dart.notNull(this.end))) dart.assertFailed(null, I[124], 1116, 14, "start <= end");
        if (!(dart.notNull(this.start) < dart.notNull(this.size))) dart.assertFailed(null, I[124], 1117, 14, "start < size");
      }
    }
    advanceEnd(bytes) {
      if (bytes == null) dart.nullFailed(I[124], 1121, 23, "bytes");
      if (!(dart.notNull(this.start) <= dart.notNull(this.end) || dart.notNull(this.start) > dart.notNull(this.end) + dart.notNull(bytes))) dart.assertFailed(null, I[124], 1122, 12, "start <= end || start > end + bytes");
      this.end = dart.notNull(this.end) + dart.notNull(bytes);
      if (dart.notNull(this.end) >= dart.notNull(this.size)) {
        this.end = dart.notNull(this.end) - dart.notNull(this.size);
        if (!(dart.notNull(this.end) < dart.notNull(this.start))) dart.assertFailed(null, I[124], 1126, 14, "end < start");
        if (!(dart.notNull(this.end) < dart.notNull(this.size))) dart.assertFailed(null, I[124], 1127, 14, "end < size");
      }
    }
    get isEmpty() {
      return this.end == this.start;
    }
    get length() {
      return dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.size) + dart.notNull(this.end) - dart.notNull(this.start) : dart.notNull(this.end) - dart.notNull(this.start);
    }
    get linearLength() {
      return dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.size) - dart.notNull(this.start) : dart.notNull(this.end) - dart.notNull(this.start);
    }
    get free() {
      return dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.start) - dart.notNull(this.end) - 1 : dart.notNull(this.size) + dart.notNull(this.start) - dart.notNull(this.end) - 1;
    }
    get linearFree() {
      if (dart.notNull(this.start) > dart.notNull(this.end)) return dart.notNull(this.start) - dart.notNull(this.end) - 1;
      if (this.start === 0) return dart.notNull(this.size) - dart.notNull(this.end) - 1;
      return dart.notNull(this.size) - dart.notNull(this.end);
    }
    read(bytes) {
      if (bytes == null) {
        bytes = this.length;
      } else {
        bytes = math.min(core.int, bytes, this.length);
      }
      if (bytes === 0) return null;
      let result = _native_typed_data.NativeUint8List.new(bytes);
      let bytesRead = 0;
      while (bytesRead < dart.notNull(bytes)) {
        let toRead = math.min(core.int, dart.notNull(bytes) - bytesRead, this.linearLength);
        result[$setRange](bytesRead, bytesRead + toRead, dart.nullCheck(this.data), this.start);
        this.advanceStart(toRead);
        bytesRead = bytesRead + toRead;
      }
      return result;
    }
    write(inputData, offset, bytes) {
      if (inputData == null) dart.nullFailed(I[124], 1164, 23, "inputData");
      if (offset == null) dart.nullFailed(I[124], 1164, 38, "offset");
      if (bytes == null) dart.nullFailed(I[124], 1164, 50, "bytes");
      if (dart.notNull(bytes) > dart.notNull(this.free)) {
        bytes = this.free;
      }
      let written = 0;
      let toWrite = math.min(core.int, bytes, this.linearFree);
      while (toWrite > 0) {
        dart.nullCheck(this.data)[$setRange](this.end, dart.notNull(this.end) + toWrite, inputData, offset);
        this.advanceEnd(toWrite);
        offset = dart.notNull(offset) + toWrite;
        written = written + toWrite;
        toWrite = math.min(core.int, dart.notNull(bytes) - written, this.linearFree);
      }
      return written;
    }
    writeFromSource(getData) {
      if (getData == null) dart.nullFailed(I[124], 1181, 34, "getData");
      let written = 0;
      let toWrite = this.linearFree;
      while (dart.notNull(toWrite) > 0) {
        let inputData = getData(toWrite);
        if (inputData == null || inputData[$length] === 0) break;
        let len = inputData[$length];
        dart.nullCheck(this.data)[$setRange](this.end, dart.notNull(this.end) + dart.notNull(len), inputData);
        this.advanceEnd(len);
        written = written + dart.notNull(len);
        toWrite = this.linearFree;
      }
      return written;
    }
    readToSocket(socket) {
      if (socket == null) dart.nullFailed(I[124], 1198, 31, "socket");
      while (true) {
        let toWrite = this.linearLength;
        if (toWrite === 0) return false;
        let bytes = socket.write(dart.nullCheck(this.data), this.start, toWrite);
        this.advanceStart(bytes);
        if (dart.notNull(bytes) < dart.notNull(toWrite)) {
          return true;
        }
      }
    }
  };
  (io._ExternalBuffer.new = function(size) {
    if (size == null) dart.nullFailed(I[124], 1106, 23, "size");
    this.data = null;
    this.size = size;
    this.start = (dart.notNull(size) / 2)[$truncate]();
    this.end = (dart.notNull(size) / 2)[$truncate]();
    ;
  }).prototype = io._ExternalBuffer.prototype;
  dart.addTypeTests(io._ExternalBuffer);
  dart.addTypeCaches(io._ExternalBuffer);
  dart.setMethodSignature(io._ExternalBuffer, () => ({
    __proto__: dart.getMethods(io._ExternalBuffer.__proto__),
    advanceStart: dart.fnType(dart.void, [core.int]),
    advanceEnd: dart.fnType(dart.void, [core.int]),
    read: dart.fnType(dart.nullable(typed_data.Uint8List), [dart.nullable(core.int)]),
    write: dart.fnType(core.int, [core.List$(core.int), core.int, core.int]),
    writeFromSource: dart.fnType(core.int, [dart.fnType(dart.nullable(core.List$(core.int)), [core.int])]),
    readToSocket: dart.fnType(core.bool, [io.RawSocket])
  }));
  dart.setGetterSignature(io._ExternalBuffer, () => ({
    __proto__: dart.getGetters(io._ExternalBuffer.__proto__),
    isEmpty: core.bool,
    length: core.int,
    linearLength: core.int,
    free: core.int,
    linearFree: core.int
  }));
  dart.setLibraryUri(io._ExternalBuffer, I[105]);
  dart.setFieldSignature(io._ExternalBuffer, () => ({
    __proto__: dart.getFields(io._ExternalBuffer.__proto__),
    data: dart.fieldType(dart.nullable(core.List$(core.int))),
    start: dart.fieldType(core.int),
    end: dart.fieldType(core.int),
    size: dart.finalFieldType(core.int)
  }));
  io._SecureFilter = class _SecureFilter extends core.Object {};
  (io._SecureFilter[dart.mixinNew] = function() {
  }).prototype = io._SecureFilter.prototype;
  dart.addTypeTests(io._SecureFilter);
  dart.addTypeCaches(io._SecureFilter);
  dart.setLibraryUri(io._SecureFilter, I[105]);
  var type$3 = dart.privateName(io, "TlsException.type");
  var message$6 = dart.privateName(io, "TlsException.message");
  var osError$1 = dart.privateName(io, "TlsException.osError");
  io.TlsException = class TlsException extends core.Object {
    get type() {
      return this[type$3];
    }
    set type(value) {
      super.type = value;
    }
    get message() {
      return this[message$6];
    }
    set message(value) {
      super.message = value;
    }
    get osError() {
      return this[osError$1];
    }
    set osError(value) {
      super.osError = value;
    }
    toString() {
      let sb = new core.StringBuffer.new();
      sb.write(this.type);
      if (this.message[$isNotEmpty]) {
        sb.write(": " + dart.str(this.message));
        if (this.osError != null) {
          sb.write(" (" + dart.str(this.osError) + ")");
        }
      } else if (this.osError != null) {
        sb.write(": " + dart.str(this.osError));
      }
      return sb.toString();
    }
  };
  (io.TlsException.new = function(message = "", osError = null) {
    if (message == null) dart.nullFailed(I[124], 1251, 30, "message");
    io.TlsException.__.call(this, "TlsException", message, osError);
  }).prototype = io.TlsException.prototype;
  (io.TlsException.__ = function(type, message, osError) {
    if (type == null) dart.nullFailed(I[124], 1254, 29, "type");
    if (message == null) dart.nullFailed(I[124], 1254, 40, "message");
    this[type$3] = type;
    this[message$6] = message;
    this[osError$1] = osError;
    ;
  }).prototype = io.TlsException.prototype;
  dart.addTypeTests(io.TlsException);
  dart.addTypeCaches(io.TlsException);
  io.TlsException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.TlsException, I[105]);
  dart.setFieldSignature(io.TlsException, () => ({
    __proto__: dart.getFields(io.TlsException.__proto__),
    type: dart.finalFieldType(core.String),
    message: dart.finalFieldType(core.String),
    osError: dart.finalFieldType(dart.nullable(io.OSError))
  }));
  dart.defineExtensionMethods(io.TlsException, ['toString']);
  io.HandshakeException = class HandshakeException extends io.TlsException {};
  (io.HandshakeException.new = function(message = "", osError = null) {
    if (message == null) dart.nullFailed(I[124], 1276, 36, "message");
    io.HandshakeException.__proto__.__.call(this, "HandshakeException", message, osError);
    ;
  }).prototype = io.HandshakeException.prototype;
  dart.addTypeTests(io.HandshakeException);
  dart.addTypeCaches(io.HandshakeException);
  dart.setLibraryUri(io.HandshakeException, I[105]);
  io.CertificateException = class CertificateException extends io.TlsException {};
  (io.CertificateException.new = function(message = "", osError = null) {
    if (message == null) dart.nullFailed(I[124], 1285, 38, "message");
    io.CertificateException.__proto__.__.call(this, "CertificateException", message, osError);
    ;
  }).prototype = io.CertificateException.prototype;
  dart.addTypeTests(io.CertificateException);
  dart.addTypeCaches(io.CertificateException);
  dart.setLibraryUri(io.CertificateException, I[105]);
  io.SecurityContext = class SecurityContext extends core.Object {
    static new(opts) {
      let withTrustedRoots = opts && 'withTrustedRoots' in opts ? opts.withTrustedRoots : false;
      if (withTrustedRoots == null) dart.nullFailed(I[107], 531, 33, "withTrustedRoots");
      dart.throw(new core.UnsupportedError.new("SecurityContext constructor"));
    }
    static get defaultContext() {
      dart.throw(new core.UnsupportedError.new("default SecurityContext getter"));
    }
    static get alpnSupported() {
      dart.throw(new core.UnsupportedError.new("SecurityContext alpnSupported getter"));
    }
    static _protocolsToLengthEncoding(protocols) {
      let t211, t211$;
      if (protocols == null || protocols[$length] === 0) {
        return _native_typed_data.NativeUint8List.new(0);
      }
      let protocolsLength = protocols[$length];
      let expectedLength = protocolsLength;
      for (let i = 0; i < dart.notNull(protocolsLength); i = i + 1) {
        let length = protocols[$_get](i).length;
        if (length > 0 && length <= 255) {
          expectedLength = dart.notNull(expectedLength) + length;
        } else {
          dart.throw(new core.ArgumentError.new("Length of protocol must be between 1 and 255 (was: " + dart.str(length) + ")."));
        }
      }
      if (dart.notNull(expectedLength) >= 1 << 13) {
        dart.throw(new core.ArgumentError.new("The maximum message length supported is 2^13-1."));
      }
      let bytes = _native_typed_data.NativeUint8List.new(expectedLength);
      let bytesOffset = 0;
      for (let i = 0; i < dart.notNull(protocolsLength); i = i + 1) {
        let proto = protocols[$_get](i);
        bytes[$_set]((t211 = bytesOffset, bytesOffset = t211 + 1, t211), proto.length);
        let bits = 0;
        for (let j = 0; j < proto.length; j = j + 1) {
          let char = proto[$codeUnitAt](j);
          bits = (bits | char) >>> 0;
          bytes[$_set]((t211$ = bytesOffset, bytesOffset = t211$ + 1, t211$), char & 255);
        }
        if (bits > 127) {
          return io.SecurityContext._protocolsToLengthEncodingNonAsciiBailout(protocols);
        }
      }
      return bytes;
    }
    static _protocolsToLengthEncodingNonAsciiBailout(protocols) {
      if (protocols == null) dart.nullFailed(I[126], 233, 20, "protocols");
      function addProtocol(outBytes, protocol) {
        if (outBytes == null) dart.nullFailed(I[126], 234, 32, "outBytes");
        if (protocol == null) dart.nullFailed(I[126], 234, 49, "protocol");
        let protocolBytes = convert.utf8.encode(protocol);
        let len = protocolBytes[$length];
        if (dart.notNull(len) > 255) {
          dart.throw(new core.ArgumentError.new("Length of protocol must be between 1 and 255 (was: " + dart.str(len) + ")"));
        }
        outBytes[$add](len);
        outBytes[$addAll](protocolBytes);
      }
      dart.fn(addProtocol, T$0.ListOfintAndStringTovoid());
      let bytes = T$.JSArrayOfint().of([]);
      for (let i = 0; i < dart.notNull(protocols[$length]); i = i + 1) {
        addProtocol(bytes, protocols[$_get](i));
      }
      if (dart.notNull(bytes[$length]) >= 1 << 13) {
        dart.throw(new core.ArgumentError.new("The maximum message length supported is 2^13-1."));
      }
      return _native_typed_data.NativeUint8List.fromList(bytes);
    }
  };
  (io.SecurityContext[dart.mixinNew] = function() {
  }).prototype = io.SecurityContext.prototype;
  dart.addTypeTests(io.SecurityContext);
  dart.addTypeCaches(io.SecurityContext);
  dart.setLibraryUri(io.SecurityContext, I[105]);
  var __serviceId = dart.privateName(io, "__serviceId");
  var _serviceId = dart.privateName(io, "_serviceId");
  var _serviceTypePath = dart.privateName(io, "_serviceTypePath");
  var _servicePath = dart.privateName(io, "_servicePath");
  var _serviceTypeName = dart.privateName(io, "_serviceTypeName");
  var _serviceType = dart.privateName(io, "_serviceType");
  io._ServiceObject = class _ServiceObject extends core.Object {
    get [_serviceId]() {
      let t211;
      if (this[__serviceId] === 0) this[__serviceId] = (t211 = io._nextServiceId, io._nextServiceId = dart.notNull(t211) + 1, t211);
      return this[__serviceId];
    }
    get [_servicePath]() {
      return dart.str(this[_serviceTypePath]) + "/" + dart.str(this[_serviceId]);
    }
    [_serviceType](ref) {
      if (ref == null) dart.nullFailed(I[127], 25, 28, "ref");
      if (dart.test(ref)) return "@" + dart.str(this[_serviceTypeName]);
      return this[_serviceTypeName];
    }
  };
  (io._ServiceObject.new = function() {
    this[__serviceId] = 0;
    ;
  }).prototype = io._ServiceObject.prototype;
  dart.addTypeTests(io._ServiceObject);
  dart.addTypeCaches(io._ServiceObject);
  dart.setMethodSignature(io._ServiceObject, () => ({
    __proto__: dart.getMethods(io._ServiceObject.__proto__),
    [_serviceType]: dart.fnType(core.String, [core.bool])
  }));
  dart.setGetterSignature(io._ServiceObject, () => ({
    __proto__: dart.getGetters(io._ServiceObject.__proto__),
    [_serviceId]: core.int,
    [_servicePath]: core.String
  }));
  dart.setLibraryUri(io._ServiceObject, I[105]);
  dart.setFieldSignature(io._ServiceObject, () => ({
    __proto__: dart.getFields(io._ServiceObject.__proto__),
    [__serviceId]: dart.fieldType(core.int)
  }));
  var _value$1 = dart.privateName(io, "InternetAddressType._value");
  io.InternetAddressType = class InternetAddressType extends core.Object {
    get [_value$0]() {
      return this[_value$1];
    }
    set [_value$0](value) {
      super[_value$0] = value;
    }
    static _from(value) {
      if (value == null) dart.nullFailed(I[125], 30, 41, "value");
      if (value == io.InternetAddressType.IPv4[_value$0]) return io.InternetAddressType.IPv4;
      if (value == io.InternetAddressType.IPv6[_value$0]) return io.InternetAddressType.IPv6;
      if (value == io.InternetAddressType.unix[_value$0]) return io.InternetAddressType.unix;
      dart.throw(new core.ArgumentError.new("Invalid type: " + dart.str(value)));
    }
    get name() {
      return (C[178] || CT.C178)[$_get](dart.notNull(this[_value$0]) + 1);
    }
    toString() {
      return "InternetAddressType: " + dart.str(this.name);
    }
  };
  (io.InternetAddressType.__ = function(_value) {
    if (_value == null) dart.nullFailed(I[125], 28, 36, "_value");
    this[_value$1] = _value;
    ;
  }).prototype = io.InternetAddressType.prototype;
  dart.addTypeTests(io.InternetAddressType);
  dart.addTypeCaches(io.InternetAddressType);
  dart.setGetterSignature(io.InternetAddressType, () => ({
    __proto__: dart.getGetters(io.InternetAddressType.__proto__),
    name: core.String
  }));
  dart.setLibraryUri(io.InternetAddressType, I[105]);
  dart.setFieldSignature(io.InternetAddressType, () => ({
    __proto__: dart.getFields(io.InternetAddressType.__proto__),
    [_value$0]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(io.InternetAddressType, ['toString']);
  dart.defineLazy(io.InternetAddressType, {
    /*io.InternetAddressType.IPv4*/get IPv4() {
      return C[179] || CT.C179;
    },
    /*io.InternetAddressType.IPv6*/get IPv6() {
      return C[180] || CT.C180;
    },
    /*io.InternetAddressType.unix*/get unix() {
      return C[181] || CT.C181;
    },
    /*io.InternetAddressType.any*/get any() {
      return C[182] || CT.C182;
    },
    /*io.InternetAddressType.IP_V4*/get IP_V4() {
      return C[179] || CT.C179;
    },
    /*io.InternetAddressType.IP_V6*/get IP_V6() {
      return C[180] || CT.C180;
    },
    /*io.InternetAddressType.ANY*/get ANY() {
      return C[182] || CT.C182;
    }
  }, false);
  io.InternetAddress = class InternetAddress extends core.Object {
    static get loopbackIPv4() {
      return io.InternetAddress.LOOPBACK_IP_V4;
    }
    static get LOOPBACK_IP_V4() {
      dart.throw(new core.UnsupportedError.new("InternetAddress.LOOPBACK_IP_V4"));
    }
    static get loopbackIPv6() {
      return io.InternetAddress.LOOPBACK_IP_V6;
    }
    static get LOOPBACK_IP_V6() {
      dart.throw(new core.UnsupportedError.new("InternetAddress.LOOPBACK_IP_V6"));
    }
    static get anyIPv4() {
      return io.InternetAddress.ANY_IP_V4;
    }
    static get ANY_IP_V4() {
      dart.throw(new core.UnsupportedError.new("InternetAddress.ANY_IP_V4"));
    }
    static get anyIPv6() {
      return io.InternetAddress.ANY_IP_V6;
    }
    static get ANY_IP_V6() {
      dart.throw(new core.UnsupportedError.new("InternetAddress.ANY_IP_V6"));
    }
    static new(address, opts) {
      if (address == null) dart.nullFailed(I[107], 412, 34, "address");
      let type = opts && 'type' in opts ? opts.type : null;
      dart.throw(new core.UnsupportedError.new("InternetAddress"));
    }
    static fromRawAddress(rawAddress, opts) {
      if (rawAddress == null) dart.nullFailed(I[107], 417, 52, "rawAddress");
      let type = opts && 'type' in opts ? opts.type : null;
      dart.throw(new core.UnsupportedError.new("InternetAddress.fromRawAddress"));
    }
    static lookup(host, opts) {
      if (host == null) dart.nullFailed(I[107], 423, 54, "host");
      let type = opts && 'type' in opts ? opts.type : C[182] || CT.C182;
      if (type == null) dart.nullFailed(I[107], 424, 28, "type");
      dart.throw(new core.UnsupportedError.new("InternetAddress.lookup"));
    }
    static _cloneWithNewHost(address, host) {
      if (address == null) dart.nullFailed(I[107], 430, 23, "address");
      if (host == null) dart.nullFailed(I[107], 430, 39, "host");
      dart.throw(new core.UnsupportedError.new("InternetAddress._cloneWithNewHost"));
    }
    static tryParse(address) {
      if (address == null) dart.nullFailed(I[107], 435, 43, "address");
      dart.throw(new core.UnsupportedError.new("InternetAddress.tryParse"));
    }
  };
  (io.InternetAddress[dart.mixinNew] = function() {
  }).prototype = io.InternetAddress.prototype;
  dart.addTypeTests(io.InternetAddress);
  dart.addTypeCaches(io.InternetAddress);
  dart.setLibraryUri(io.InternetAddress, I[105]);
  io.NetworkInterface = class NetworkInterface extends core.Object {
    static get listSupported() {
      dart.throw(new core.UnsupportedError.new("NetworkInterface.listSupported"));
    }
    static list(opts) {
      let includeLoopback = opts && 'includeLoopback' in opts ? opts.includeLoopback : false;
      if (includeLoopback == null) dart.nullFailed(I[107], 449, 13, "includeLoopback");
      let includeLinkLocal = opts && 'includeLinkLocal' in opts ? opts.includeLinkLocal : false;
      if (includeLinkLocal == null) dart.nullFailed(I[107], 450, 12, "includeLinkLocal");
      let type = opts && 'type' in opts ? opts.type : C[182] || CT.C182;
      if (type == null) dart.nullFailed(I[107], 451, 27, "type");
      dart.throw(new core.UnsupportedError.new("NetworkInterface.list"));
    }
  };
  (io.NetworkInterface.new = function() {
    ;
  }).prototype = io.NetworkInterface.prototype;
  dart.addTypeTests(io.NetworkInterface);
  dart.addTypeCaches(io.NetworkInterface);
  dart.setLibraryUri(io.NetworkInterface, I[105]);
  io.RawServerSocket = class RawServerSocket extends core.Object {
    static bind(address, port, opts) {
      if (port == null) dart.nullFailed(I[107], 459, 52, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[107], 460, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[107], 460, 30, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[107], 460, 51, "shared");
      dart.throw(new core.UnsupportedError.new("RawServerSocket.bind"));
    }
  };
  (io.RawServerSocket.new = function() {
    ;
  }).prototype = io.RawServerSocket.prototype;
  io.RawServerSocket.prototype[dart.isStream] = true;
  dart.addTypeTests(io.RawServerSocket);
  dart.addTypeCaches(io.RawServerSocket);
  io.RawServerSocket[dart.implements] = () => [async.Stream$(io.RawSocket)];
  dart.setLibraryUri(io.RawServerSocket, I[105]);
  io.ServerSocket = class ServerSocket extends core.Object {
    static bind(address, port, opts) {
      if (port == null) dart.nullFailed(I[125], 318, 49, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[125], 319, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[125], 319, 30, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[125], 319, 51, "shared");
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.ServerSocket._bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
      }
      return overrides.serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
    }
    static _bind(address, port, opts) {
      if (port == null) dart.nullFailed(I[107], 468, 50, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[107], 469, 12, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[107], 469, 30, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[107], 469, 51, "shared");
      dart.throw(new core.UnsupportedError.new("ServerSocket.bind"));
    }
  };
  (io.ServerSocket.new = function() {
    ;
  }).prototype = io.ServerSocket.prototype;
  io.ServerSocket.prototype[dart.isStream] = true;
  dart.addTypeTests(io.ServerSocket);
  dart.addTypeCaches(io.ServerSocket);
  io.ServerSocket[dart.implements] = () => [async.Stream$(io.Socket)];
  dart.setLibraryUri(io.ServerSocket, I[105]);
  var _value$2 = dart.privateName(io, "SocketDirection._value");
  io.SocketDirection = class SocketDirection extends core.Object {
    get [_value$0]() {
      return this[_value$2];
    }
    set [_value$0](value) {
      super[_value$0] = value;
    }
  };
  (io.SocketDirection.__ = function(_value) {
    this[_value$2] = _value;
    ;
  }).prototype = io.SocketDirection.prototype;
  dart.addTypeTests(io.SocketDirection);
  dart.addTypeCaches(io.SocketDirection);
  dart.setLibraryUri(io.SocketDirection, I[105]);
  dart.setFieldSignature(io.SocketDirection, () => ({
    __proto__: dart.getFields(io.SocketDirection.__proto__),
    [_value$0]: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineLazy(io.SocketDirection, {
    /*io.SocketDirection.receive*/get receive() {
      return C[183] || CT.C183;
    },
    /*io.SocketDirection.send*/get send() {
      return C[184] || CT.C184;
    },
    /*io.SocketDirection.both*/get both() {
      return C[185] || CT.C185;
    },
    /*io.SocketDirection.RECEIVE*/get RECEIVE() {
      return C[183] || CT.C183;
    },
    /*io.SocketDirection.SEND*/get SEND() {
      return C[184] || CT.C184;
    },
    /*io.SocketDirection.BOTH*/get BOTH() {
      return C[185] || CT.C185;
    }
  }, false);
  var _value$3 = dart.privateName(io, "SocketOption._value");
  io.SocketOption = class SocketOption extends core.Object {
    get [_value$0]() {
      return this[_value$3];
    }
    set [_value$0](value) {
      super[_value$0] = value;
    }
  };
  (io.SocketOption.__ = function(_value) {
    this[_value$3] = _value;
    ;
  }).prototype = io.SocketOption.prototype;
  dart.addTypeTests(io.SocketOption);
  dart.addTypeCaches(io.SocketOption);
  dart.setLibraryUri(io.SocketOption, I[105]);
  dart.setFieldSignature(io.SocketOption, () => ({
    __proto__: dart.getFields(io.SocketOption.__proto__),
    [_value$0]: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineLazy(io.SocketOption, {
    /*io.SocketOption.tcpNoDelay*/get tcpNoDelay() {
      return C[186] || CT.C186;
    },
    /*io.SocketOption.TCP_NODELAY*/get TCP_NODELAY() {
      return C[186] || CT.C186;
    },
    /*io.SocketOption._ipMulticastLoop*/get _ipMulticastLoop() {
      return C[187] || CT.C187;
    },
    /*io.SocketOption._ipMulticastHops*/get _ipMulticastHops() {
      return C[188] || CT.C188;
    },
    /*io.SocketOption._ipMulticastIf*/get _ipMulticastIf() {
      return C[189] || CT.C189;
    },
    /*io.SocketOption._ipBroadcast*/get _ipBroadcast() {
      return C[190] || CT.C190;
    }
  }, false);
  io._RawSocketOptions = class _RawSocketOptions extends core.Object {
    toString() {
      return this[_name$4];
    }
  };
  (io._RawSocketOptions.new = function(index, _name) {
    if (index == null) dart.nullFailed(I[125], 390, 6, "index");
    if (_name == null) dart.nullFailed(I[125], 390, 6, "_name");
    this.index = index;
    this[_name$4] = _name;
    ;
  }).prototype = io._RawSocketOptions.prototype;
  dart.addTypeTests(io._RawSocketOptions);
  dart.addTypeCaches(io._RawSocketOptions);
  dart.setLibraryUri(io._RawSocketOptions, I[105]);
  dart.setFieldSignature(io._RawSocketOptions, () => ({
    __proto__: dart.getFields(io._RawSocketOptions.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$4]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(io._RawSocketOptions, ['toString']);
  io._RawSocketOptions.SOL_SOCKET = C[191] || CT.C191;
  io._RawSocketOptions.IPPROTO_IP = C[192] || CT.C192;
  io._RawSocketOptions.IP_MULTICAST_IF = C[193] || CT.C193;
  io._RawSocketOptions.IPPROTO_IPV6 = C[194] || CT.C194;
  io._RawSocketOptions.IPV6_MULTICAST_IF = C[195] || CT.C195;
  io._RawSocketOptions.IPPROTO_TCP = C[196] || CT.C196;
  io._RawSocketOptions.IPPROTO_UDP = C[197] || CT.C197;
  io._RawSocketOptions.values = C[198] || CT.C198;
  var level$2 = dart.privateName(io, "RawSocketOption.level");
  var option$ = dart.privateName(io, "RawSocketOption.option");
  var value$3 = dart.privateName(io, "RawSocketOption.value");
  io.RawSocketOption = class RawSocketOption extends core.Object {
    get level() {
      return this[level$2];
    }
    set level(value) {
      super.level = value;
    }
    get option() {
      return this[option$];
    }
    set option(value) {
      super.option = value;
    }
    get value() {
      return this[value$3];
    }
    set value(value) {
      super.value = value;
    }
    static fromInt(level, option, value) {
      if (level == null) dart.nullFailed(I[125], 426, 39, "level");
      if (option == null) dart.nullFailed(I[125], 426, 50, "option");
      if (value == null) dart.nullFailed(I[125], 426, 62, "value");
      let list = _native_typed_data.NativeUint8List.new(4);
      let buffer = typed_data.ByteData.view(list[$buffer], list[$offsetInBytes]);
      buffer[$setInt32](0, value, typed_data.Endian.host);
      return new io.RawSocketOption.new(level, option, list);
    }
    static fromBool(level, option, value) {
      if (level == null) dart.nullFailed(I[125], 434, 40, "level");
      if (option == null) dart.nullFailed(I[125], 434, 51, "option");
      if (value == null) dart.nullFailed(I[125], 434, 64, "value");
      return io.RawSocketOption.fromInt(level, option, dart.test(value) ? 1 : 0);
    }
    static get levelSocket() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.SOL_SOCKET.index);
    }
    static get levelIPv4() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_IP.index);
    }
    static get IPv4MulticastInterface() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IP_MULTICAST_IF.index);
    }
    static get levelIPv6() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_IPV6.index);
    }
    static get IPv6MulticastInterface() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPV6_MULTICAST_IF.index);
    }
    static get levelTcp() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_TCP.index);
    }
    static get levelUdp() {
      return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_UDP.index);
    }
    static _getOptionValue(key) {
      if (key == null) dart.nullFailed(I[107], 523, 34, "key");
      dart.throw(new core.UnsupportedError.new("RawSocketOption._getOptionValue"));
    }
  };
  (io.RawSocketOption.new = function(level, option, value) {
    if (level == null) dart.nullFailed(I[125], 423, 30, "level");
    if (option == null) dart.nullFailed(I[125], 423, 42, "option");
    if (value == null) dart.nullFailed(I[125], 423, 55, "value");
    this[level$2] = level;
    this[option$] = option;
    this[value$3] = value;
    ;
  }).prototype = io.RawSocketOption.prototype;
  dart.addTypeTests(io.RawSocketOption);
  dart.addTypeCaches(io.RawSocketOption);
  dart.setLibraryUri(io.RawSocketOption, I[105]);
  dart.setFieldSignature(io.RawSocketOption, () => ({
    __proto__: dart.getFields(io.RawSocketOption.__proto__),
    level: dart.finalFieldType(core.int),
    option: dart.finalFieldType(core.int),
    value: dart.finalFieldType(typed_data.Uint8List)
  }));
  var socket$ = dart.privateName(io, "ConnectionTask.socket");
  const _is_ConnectionTask_default = Symbol('_is_ConnectionTask_default');
  io.ConnectionTask$ = dart.generic(S => {
    class ConnectionTask extends core.Object {
      get socket() {
        return this[socket$];
      }
      set socket(value) {
        super.socket = value;
      }
      cancel() {
        this[_onCancel$]();
      }
    }
    (ConnectionTask.__ = function(socket, onCancel) {
      if (socket == null) dart.nullFailed(I[125], 542, 35, "socket");
      if (onCancel == null) dart.nullFailed(I[125], 542, 59, "onCancel");
      this[socket$] = socket;
      this[_onCancel$] = onCancel;
      ;
    }).prototype = ConnectionTask.prototype;
    dart.addTypeTests(ConnectionTask);
    ConnectionTask.prototype[_is_ConnectionTask_default] = true;
    dart.addTypeCaches(ConnectionTask);
    dart.setMethodSignature(ConnectionTask, () => ({
      __proto__: dart.getMethods(ConnectionTask.__proto__),
      cancel: dart.fnType(dart.void, [])
    }));
    dart.setLibraryUri(ConnectionTask, I[105]);
    dart.setFieldSignature(ConnectionTask, () => ({
      __proto__: dart.getFields(ConnectionTask.__proto__),
      socket: dart.finalFieldType(async.Future$(S)),
      [_onCancel$]: dart.finalFieldType(dart.fnType(dart.void, []))
    }));
    return ConnectionTask;
  });
  io.ConnectionTask = io.ConnectionTask$();
  dart.addTypeTests(io.ConnectionTask, _is_ConnectionTask_default);
  io.RawSocket = class RawSocket extends core.Object {
    static connect(host, port, opts) {
      if (port == null) dart.nullFailed(I[107], 477, 54, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      dart.throw(new core.UnsupportedError.new("RawSocket constructor"));
    }
    static startConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[107], 483, 75, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      dart.throw(new core.UnsupportedError.new("RawSocket constructor"));
    }
  };
  (io.RawSocket.new = function() {
    ;
  }).prototype = io.RawSocket.prototype;
  io.RawSocket.prototype[dart.isStream] = true;
  dart.addTypeTests(io.RawSocket);
  dart.addTypeCaches(io.RawSocket);
  io.RawSocket[dart.implements] = () => [async.Stream$(io.RawSocketEvent)];
  dart.setLibraryUri(io.RawSocket, I[105]);
  io.Socket = class Socket extends core.Object {
    static connect(host, port, opts) {
      if (port == null) dart.nullFailed(I[125], 720, 43, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.Socket._connect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
      }
      return overrides.socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
    }
    static startConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[125], 734, 64, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let overrides = io.IOOverrides.current;
      if (overrides == null) {
        return io.Socket._startConnect(host, port, {sourceAddress: sourceAddress});
      }
      return overrides.socketStartConnect(host, port, {sourceAddress: sourceAddress});
    }
    static _connect(host, port, opts) {
      if (port == null) dart.nullFailed(I[107], 492, 52, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      dart.throw(new core.UnsupportedError.new("Socket constructor"));
    }
    static _startConnect(host, port, opts) {
      if (port == null) dart.nullFailed(I[107], 498, 73, "port");
      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
      dart.throw(new core.UnsupportedError.new("Socket constructor"));
    }
  };
  (io.Socket.new = function() {
    ;
  }).prototype = io.Socket.prototype;
  io.Socket.prototype[dart.isStream] = true;
  dart.addTypeTests(io.Socket);
  dart.addTypeCaches(io.Socket);
  io.Socket[dart.implements] = () => [async.Stream$(typed_data.Uint8List), io.IOSink];
  dart.setLibraryUri(io.Socket, I[105]);
  var data$ = dart.privateName(io, "Datagram.data");
  var address$ = dart.privateName(io, "Datagram.address");
  var port$ = dart.privateName(io, "Datagram.port");
  io.Datagram = class Datagram extends core.Object {
    get data() {
      return this[data$];
    }
    set data(value) {
      this[data$] = value;
    }
    get address() {
      return this[address$];
    }
    set address(value) {
      this[address$] = value;
    }
    get port() {
      return this[port$];
    }
    set port(value) {
      this[port$] = value;
    }
  };
  (io.Datagram.new = function(data, address, port) {
    if (data == null) dart.nullFailed(I[125], 825, 17, "data");
    if (address == null) dart.nullFailed(I[125], 825, 28, "address");
    if (port == null) dart.nullFailed(I[125], 825, 42, "port");
    this[data$] = data;
    this[address$] = address;
    this[port$] = port;
    ;
  }).prototype = io.Datagram.prototype;
  dart.addTypeTests(io.Datagram);
  dart.addTypeCaches(io.Datagram);
  dart.setLibraryUri(io.Datagram, I[105]);
  dart.setFieldSignature(io.Datagram, () => ({
    __proto__: dart.getFields(io.Datagram.__proto__),
    data: dart.fieldType(typed_data.Uint8List),
    address: dart.fieldType(io.InternetAddress),
    port: dart.fieldType(core.int)
  }));
  var multicastInterface = dart.privateName(io, "RawDatagramSocket.multicastInterface");
  io.RawDatagramSocket = class RawDatagramSocket extends async.Stream$(io.RawSocketEvent) {
    get multicastInterface() {
      return this[multicastInterface];
    }
    set multicastInterface(value) {
      this[multicastInterface] = value;
    }
    static bind(host, port, opts) {
      if (port == null) dart.nullFailed(I[107], 557, 59, "port");
      let reuseAddress = opts && 'reuseAddress' in opts ? opts.reuseAddress : true;
      if (reuseAddress == null) dart.nullFailed(I[107], 558, 13, "reuseAddress");
      let reusePort = opts && 'reusePort' in opts ? opts.reusePort : false;
      if (reusePort == null) dart.nullFailed(I[107], 558, 39, "reusePort");
      let ttl = opts && 'ttl' in opts ? opts.ttl : 1;
      if (ttl == null) dart.nullFailed(I[107], 558, 62, "ttl");
      dart.throw(new core.UnsupportedError.new("RawDatagramSocket.bind"));
    }
  };
  (io.RawDatagramSocket.new = function() {
    this[multicastInterface] = null;
    io.RawDatagramSocket.__proto__.new.call(this);
    ;
  }).prototype = io.RawDatagramSocket.prototype;
  dart.addTypeTests(io.RawDatagramSocket);
  dart.addTypeCaches(io.RawDatagramSocket);
  dart.setLibraryUri(io.RawDatagramSocket, I[105]);
  dart.setFieldSignature(io.RawDatagramSocket, () => ({
    __proto__: dart.getFields(io.RawDatagramSocket.__proto__),
    multicastInterface: dart.fieldType(dart.nullable(io.NetworkInterface))
  }));
  var message$7 = dart.privateName(io, "SocketException.message");
  var osError$2 = dart.privateName(io, "SocketException.osError");
  var address$0 = dart.privateName(io, "SocketException.address");
  var port$0 = dart.privateName(io, "SocketException.port");
  io.SocketException = class SocketException extends core.Object {
    get message() {
      return this[message$7];
    }
    set message(value) {
      super.message = value;
    }
    get osError() {
      return this[osError$2];
    }
    set osError(value) {
      super.osError = value;
    }
    get address() {
      return this[address$0];
    }
    set address(value) {
      super.address = value;
    }
    get port() {
      return this[port$0];
    }
    set port(value) {
      super.port = value;
    }
    toString() {
      let sb = new core.StringBuffer.new();
      sb.write("SocketException");
      if (this.message[$isNotEmpty]) {
        sb.write(": " + dart.str(this.message));
        if (this.osError != null) {
          sb.write(" (" + dart.str(this.osError) + ")");
        }
      } else if (this.osError != null) {
        sb.write(": " + dart.str(this.osError));
      }
      if (this.address != null) {
        sb.write(", address = " + dart.str(dart.nullCheck(this.address).host));
      }
      if (this.port != null) {
        sb.write(", port = " + dart.str(this.port));
      }
      return sb.toString();
    }
  };
  (io.SocketException.new = function(message, opts) {
    if (message == null) dart.nullFailed(I[125], 985, 30, "message");
    let osError = opts && 'osError' in opts ? opts.osError : null;
    let address = opts && 'address' in opts ? opts.address : null;
    let port = opts && 'port' in opts ? opts.port : null;
    this[message$7] = message;
    this[osError$2] = osError;
    this[address$0] = address;
    this[port$0] = port;
    ;
  }).prototype = io.SocketException.prototype;
  (io.SocketException.closed = function() {
    this[message$7] = "Socket has been closed";
    this[osError$2] = null;
    this[address$0] = null;
    this[port$0] = null;
    ;
  }).prototype = io.SocketException.prototype;
  dart.addTypeTests(io.SocketException);
  dart.addTypeCaches(io.SocketException);
  io.SocketException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.SocketException, I[105]);
  dart.setFieldSignature(io.SocketException, () => ({
    __proto__: dart.getFields(io.SocketException.__proto__),
    message: dart.finalFieldType(core.String),
    osError: dart.finalFieldType(dart.nullable(io.OSError)),
    address: dart.finalFieldType(dart.nullable(io.InternetAddress)),
    port: dart.finalFieldType(dart.nullable(core.int))
  }));
  dart.defineExtensionMethods(io.SocketException, ['toString']);
  var _stream$0 = dart.privateName(io, "_stream");
  io._StdStream = class _StdStream extends async.Stream$(core.List$(core.int)) {
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_stream$0].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
  };
  (io._StdStream.new = function(_stream) {
    if (_stream == null) dart.nullFailed(I[128], 18, 19, "_stream");
    this[_stream$0] = _stream;
    io._StdStream.__proto__.new.call(this);
    ;
  }).prototype = io._StdStream.prototype;
  dart.addTypeTests(io._StdStream);
  dart.addTypeCaches(io._StdStream);
  dart.setMethodSignature(io._StdStream, () => ({
    __proto__: dart.getMethods(io._StdStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(core.List$(core.int)), [dart.nullable(dart.fnType(dart.void, [core.List$(core.int)]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
  }));
  dart.setLibraryUri(io._StdStream, I[105]);
  dart.setFieldSignature(io._StdStream, () => ({
    __proto__: dart.getFields(io._StdStream.__proto__),
    [_stream$0]: dart.finalFieldType(async.Stream$(core.List$(core.int)))
  }));
  var _fd$ = dart.privateName(io, "_fd");
  io.Stdin = class Stdin extends io._StdStream {
    readLineSync(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[143] || CT.C143;
      if (encoding == null) dart.nullFailed(I[128], 57, 17, "encoding");
      let retainNewlines = opts && 'retainNewlines' in opts ? opts.retainNewlines : false;
      if (retainNewlines == null) dart.nullFailed(I[128], 57, 49, "retainNewlines");
      let line = T$.JSArrayOfint().of([]);
      let crIsNewline = dart.test(io.Platform.isWindows) && dart.equals(io.stdioType(io.stdin), io.StdioType.terminal) && !dart.test(this.lineMode);
      if (dart.test(retainNewlines)) {
        let byte = null;
        do {
          byte = this.readByteSync();
          if (dart.notNull(byte) < 0) {
            break;
          }
          line[$add](byte);
        } while (byte !== 10 && !(byte === 13 && crIsNewline));
        if (dart.test(line[$isEmpty])) {
          return null;
        }
      } else if (crIsNewline) {
        while (true) {
          let byte = this.readByteSync();
          if (dart.notNull(byte) < 0) {
            if (dart.test(line[$isEmpty])) return null;
            break;
          }
          if (byte === 10 || byte === 13) break;
          line[$add](byte);
        }
      } else {
        L2:
          while (true) {
            let byte = this.readByteSync();
            if (byte === 10) break;
            if (byte === 13) {
              do {
                byte = this.readByteSync();
                if (byte === 10) break L2;
                line[$add](13);
              } while (byte === 13);
            }
            if (dart.notNull(byte) < 0) {
              if (dart.test(line[$isEmpty])) return null;
              break;
            }
            line[$add](byte);
          }
      }
      return encoding.decode(line);
    }
    get echoMode() {
      dart.throw(new core.UnsupportedError.new("Stdin.echoMode"));
    }
    set echoMode(enabled) {
      if (enabled == null) dart.nullFailed(I[107], 644, 26, "enabled");
      dart.throw(new core.UnsupportedError.new("Stdin.echoMode"));
    }
    get lineMode() {
      dart.throw(new core.UnsupportedError.new("Stdin.lineMode"));
    }
    set lineMode(enabled) {
      if (enabled == null) dart.nullFailed(I[107], 654, 26, "enabled");
      dart.throw(new core.UnsupportedError.new("Stdin.lineMode"));
    }
    get supportsAnsiEscapes() {
      dart.throw(new core.UnsupportedError.new("Stdin.supportsAnsiEscapes"));
    }
    readByteSync() {
      dart.throw(new core.UnsupportedError.new("Stdin.readByteSync"));
    }
    get hasTerminal() {
      try {
        return dart.equals(io.stdioType(this), io.StdioType.terminal);
      } catch (e) {
        let _ = dart.getThrown(e);
        if (io.FileSystemException.is(_)) {
          return false;
        } else
          throw e;
      }
    }
  };
  (io.Stdin.__ = function(stream, _fd) {
    if (stream == null) dart.nullFailed(I[128], 36, 29, "stream");
    if (_fd == null) dart.nullFailed(I[128], 36, 42, "_fd");
    this[_fd$] = _fd;
    io.Stdin.__proto__.new.call(this, stream);
    ;
  }).prototype = io.Stdin.prototype;
  io.Stdin.prototype[dart.isStream] = true;
  dart.addTypeTests(io.Stdin);
  dart.addTypeCaches(io.Stdin);
  io.Stdin[dart.implements] = () => [async.Stream$(core.List$(core.int))];
  dart.setMethodSignature(io.Stdin, () => ({
    __proto__: dart.getMethods(io.Stdin.__proto__),
    readLineSync: dart.fnType(dart.nullable(core.String), [], {encoding: convert.Encoding, retainNewlines: core.bool}, {}),
    readByteSync: dart.fnType(core.int, [])
  }));
  dart.setGetterSignature(io.Stdin, () => ({
    __proto__: dart.getGetters(io.Stdin.__proto__),
    echoMode: core.bool,
    lineMode: core.bool,
    supportsAnsiEscapes: core.bool,
    hasTerminal: core.bool
  }));
  dart.setSetterSignature(io.Stdin, () => ({
    __proto__: dart.getSetters(io.Stdin.__proto__),
    echoMode: core.bool,
    lineMode: core.bool
  }));
  dart.setLibraryUri(io.Stdin, I[105]);
  dart.setFieldSignature(io.Stdin, () => ({
    __proto__: dart.getFields(io.Stdin.__proto__),
    [_fd$]: dart.fieldType(core.int)
  }));
  var _nonBlocking = dart.privateName(io, "_nonBlocking");
  var _hasTerminal = dart.privateName(io, "_hasTerminal");
  var _terminalColumns = dart.privateName(io, "_terminalColumns");
  var _terminalLines = dart.privateName(io, "_terminalLines");
  io._StdSink = class _StdSink extends core.Object {
    get encoding() {
      return this[_sink$1].encoding;
    }
    set encoding(encoding) {
      if (encoding == null) dart.nullFailed(I[128], 310, 30, "encoding");
      this[_sink$1].encoding = encoding;
    }
    write(object) {
      this[_sink$1].write(object);
    }
    writeln(object = "") {
      this[_sink$1].writeln(object);
    }
    writeAll(objects, sep = "") {
      if (objects == null) dart.nullFailed(I[128], 322, 26, "objects");
      if (sep == null) dart.nullFailed(I[128], 322, 43, "sep");
      this[_sink$1].writeAll(objects, sep);
    }
    add(data) {
      T$0.ListOfint().as(data);
      if (data == null) dart.nullFailed(I[128], 326, 22, "data");
      this[_sink$1].add(data);
    }
    addError(error, stackTrace = null) {
      if (error == null) dart.nullFailed(I[128], 330, 17, "error");
      this[_sink$1].addError(error, stackTrace);
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[128], 334, 26, "charCode");
      this[_sink$1].writeCharCode(charCode);
    }
    addStream(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[128], 338, 38, "stream");
      return this[_sink$1].addStream(stream);
    }
    flush() {
      return this[_sink$1].flush();
    }
    close() {
      return this[_sink$1].close();
    }
    get done() {
      return this[_sink$1].done;
    }
  };
  (io._StdSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[128], 307, 17, "_sink");
    this[_sink$1] = _sink;
    ;
  }).prototype = io._StdSink.prototype;
  dart.addTypeTests(io._StdSink);
  dart.addTypeCaches(io._StdSink);
  io._StdSink[dart.implements] = () => [io.IOSink];
  dart.setMethodSignature(io._StdSink, () => ({
    __proto__: dart.getMethods(io._StdSink.__proto__),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    flush: dart.fnType(async.Future, []),
    close: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(io._StdSink, () => ({
    __proto__: dart.getGetters(io._StdSink.__proto__),
    encoding: convert.Encoding,
    done: async.Future
  }));
  dart.setSetterSignature(io._StdSink, () => ({
    __proto__: dart.getSetters(io._StdSink.__proto__),
    encoding: convert.Encoding
  }));
  dart.setLibraryUri(io._StdSink, I[105]);
  dart.setFieldSignature(io._StdSink, () => ({
    __proto__: dart.getFields(io._StdSink.__proto__),
    [_sink$1]: dart.finalFieldType(io.IOSink)
  }));
  io.Stdout = class Stdout extends io._StdSink {
    get hasTerminal() {
      return this[_hasTerminal](this[_fd$]);
    }
    get terminalColumns() {
      return this[_terminalColumns](this[_fd$]);
    }
    get terminalLines() {
      return this[_terminalLines](this[_fd$]);
    }
    get supportsAnsiEscapes() {
      return io.Stdout._supportsAnsiEscapes(this[_fd$]);
    }
    [_hasTerminal](fd) {
      if (fd == null) dart.nullFailed(I[107], 667, 25, "fd");
      dart.throw(new core.UnsupportedError.new("Stdout.hasTerminal"));
    }
    [_terminalColumns](fd) {
      if (fd == null) dart.nullFailed(I[107], 672, 28, "fd");
      dart.throw(new core.UnsupportedError.new("Stdout.terminalColumns"));
    }
    [_terminalLines](fd) {
      if (fd == null) dart.nullFailed(I[107], 677, 26, "fd");
      dart.throw(new core.UnsupportedError.new("Stdout.terminalLines"));
    }
    static _supportsAnsiEscapes(fd) {
      if (fd == null) dart.nullFailed(I[107], 682, 40, "fd");
      dart.throw(new core.UnsupportedError.new("Stdout.supportsAnsiEscapes"));
    }
    get nonBlocking() {
      let t212;
      t212 = this[_nonBlocking];
      return t212 == null ? this[_nonBlocking] = io.IOSink.new(new io._FileStreamConsumer.fromStdio(this[_fd$])) : t212;
    }
  };
  (io.Stdout.__ = function(sink, _fd) {
    if (sink == null) dart.nullFailed(I[128], 196, 19, "sink");
    if (_fd == null) dart.nullFailed(I[128], 196, 30, "_fd");
    this[_nonBlocking] = null;
    this[_fd$] = _fd;
    io.Stdout.__proto__.new.call(this, sink);
    ;
  }).prototype = io.Stdout.prototype;
  dart.addTypeTests(io.Stdout);
  dart.addTypeCaches(io.Stdout);
  io.Stdout[dart.implements] = () => [io.IOSink];
  dart.setMethodSignature(io.Stdout, () => ({
    __proto__: dart.getMethods(io.Stdout.__proto__),
    [_hasTerminal]: dart.fnType(core.bool, [core.int]),
    [_terminalColumns]: dart.fnType(core.int, [core.int]),
    [_terminalLines]: dart.fnType(core.int, [core.int])
  }));
  dart.setGetterSignature(io.Stdout, () => ({
    __proto__: dart.getGetters(io.Stdout.__proto__),
    hasTerminal: core.bool,
    terminalColumns: core.int,
    terminalLines: core.int,
    supportsAnsiEscapes: core.bool,
    nonBlocking: io.IOSink
  }));
  dart.setLibraryUri(io.Stdout, I[105]);
  dart.setFieldSignature(io.Stdout, () => ({
    __proto__: dart.getFields(io.Stdout.__proto__),
    [_fd$]: dart.finalFieldType(core.int),
    [_nonBlocking]: dart.fieldType(dart.nullable(io.IOSink))
  }));
  var message$8 = dart.privateName(io, "StdoutException.message");
  var osError$3 = dart.privateName(io, "StdoutException.osError");
  io.StdoutException = class StdoutException extends core.Object {
    get message() {
      return this[message$8];
    }
    set message(value) {
      super.message = value;
    }
    get osError() {
      return this[osError$3];
    }
    set osError(value) {
      super.osError = value;
    }
    toString() {
      return "StdoutException: " + dart.str(this.message) + (this.osError == null ? "" : ", " + dart.str(this.osError));
    }
  };
  (io.StdoutException.new = function(message, osError = null) {
    if (message == null) dart.nullFailed(I[128], 254, 30, "message");
    this[message$8] = message;
    this[osError$3] = osError;
    ;
  }).prototype = io.StdoutException.prototype;
  dart.addTypeTests(io.StdoutException);
  dart.addTypeCaches(io.StdoutException);
  io.StdoutException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.StdoutException, I[105]);
  dart.setFieldSignature(io.StdoutException, () => ({
    __proto__: dart.getFields(io.StdoutException.__proto__),
    message: dart.finalFieldType(core.String),
    osError: dart.finalFieldType(dart.nullable(io.OSError))
  }));
  dart.defineExtensionMethods(io.StdoutException, ['toString']);
  var message$9 = dart.privateName(io, "StdinException.message");
  var osError$4 = dart.privateName(io, "StdinException.osError");
  io.StdinException = class StdinException extends core.Object {
    get message() {
      return this[message$9];
    }
    set message(value) {
      super.message = value;
    }
    get osError() {
      return this[osError$4];
    }
    set osError(value) {
      super.osError = value;
    }
    toString() {
      return "StdinException: " + dart.str(this.message) + (this.osError == null ? "" : ", " + dart.str(this.osError));
    }
  };
  (io.StdinException.new = function(message, osError = null) {
    if (message == null) dart.nullFailed(I[128], 269, 29, "message");
    this[message$9] = message;
    this[osError$4] = osError;
    ;
  }).prototype = io.StdinException.prototype;
  dart.addTypeTests(io.StdinException);
  dart.addTypeCaches(io.StdinException);
  io.StdinException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(io.StdinException, I[105]);
  dart.setFieldSignature(io.StdinException, () => ({
    __proto__: dart.getFields(io.StdinException.__proto__),
    message: dart.finalFieldType(core.String),
    osError: dart.finalFieldType(dart.nullable(io.OSError))
  }));
  dart.defineExtensionMethods(io.StdinException, ['toString']);
  io._StdConsumer = class _StdConsumer extends core.Object {
    addStream(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[128], 281, 38, "stream");
      let completer = async.Completer.new();
      let sub = null;
      sub = stream.listen(dart.fn(data => {
        if (data == null) dart.nullFailed(I[128], 284, 26, "data");
        try {
          dart.dsend(this[_file], 'writeFromSync', [data]);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          if (core.Object.is(e)) {
            dart.dsend(sub, 'cancel', []);
            completer.completeError(e, s);
          } else
            throw e$;
        }
      }, T$0.ListOfintTovoid()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
      return completer.future;
    }
    close() {
      dart.dsend(this[_file], 'closeSync', []);
      return async.Future.value();
    }
  };
  (io._StdConsumer.new = function(fd) {
    if (fd == null) dart.nullFailed(I[128], 279, 20, "fd");
    this[_file] = io._File._openStdioSync(fd);
    ;
  }).prototype = io._StdConsumer.prototype;
  dart.addTypeTests(io._StdConsumer);
  dart.addTypeCaches(io._StdConsumer);
  io._StdConsumer[dart.implements] = () => [async.StreamConsumer$(core.List$(core.int))];
  dart.setMethodSignature(io._StdConsumer, () => ({
    __proto__: dart.getMethods(io._StdConsumer.__proto__),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    close: dart.fnType(async.Future, [])
  }));
  dart.setLibraryUri(io._StdConsumer, I[105]);
  dart.setFieldSignature(io._StdConsumer, () => ({
    __proto__: dart.getFields(io._StdConsumer.__proto__),
    [_file]: dart.finalFieldType(dart.dynamic)
  }));
  var name$11 = dart.privateName(io, "StdioType.name");
  io.StdioType = class StdioType extends core.Object {
    get name() {
      return this[name$11];
    }
    set name(value) {
      super.name = value;
    }
    toString() {
      return "StdioType: " + dart.str(this.name);
    }
  };
  (io.StdioType.__ = function(name) {
    if (name == null) dart.nullFailed(I[128], 361, 26, "name");
    this[name$11] = name;
    ;
  }).prototype = io.StdioType.prototype;
  dart.addTypeTests(io.StdioType);
  dart.addTypeCaches(io.StdioType);
  dart.setLibraryUri(io.StdioType, I[105]);
  dart.setFieldSignature(io.StdioType, () => ({
    __proto__: dart.getFields(io.StdioType.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(io.StdioType, ['toString']);
  dart.defineLazy(io.StdioType, {
    /*io.StdioType.terminal*/get terminal() {
      return C[199] || CT.C199;
    },
    /*io.StdioType.pipe*/get pipe() {
      return C[200] || CT.C200;
    },
    /*io.StdioType.file*/get file() {
      return C[201] || CT.C201;
    },
    /*io.StdioType.other*/get other() {
      return C[202] || CT.C202;
    },
    /*io.StdioType.TERMINAL*/get TERMINAL() {
      return C[199] || CT.C199;
    },
    /*io.StdioType.PIPE*/get PIPE() {
      return C[200] || CT.C200;
    },
    /*io.StdioType.FILE*/get FILE() {
      return C[201] || CT.C201;
    },
    /*io.StdioType.OTHER*/get OTHER() {
      return C[202] || CT.C202;
    }
  }, false);
  io._StdIOUtils = class _StdIOUtils extends core.Object {
    static _getStdioOutputStream(fd) {
      if (fd == null) dart.nullFailed(I[107], 579, 36, "fd");
      dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioOutputStream"));
    }
    static _getStdioInputStream(fd) {
      if (fd == null) dart.nullFailed(I[107], 574, 41, "fd");
      dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioInputStream"));
    }
    static _socketType(socket) {
      if (socket == null) dart.nullFailed(I[107], 584, 33, "socket");
      dart.throw(new core.UnsupportedError.new("StdIOUtils._socketType"));
    }
    static _getStdioHandleType(fd) {
      if (fd == null) dart.nullFailed(I[107], 589, 34, "fd");
      dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioHandleType"));
    }
  };
  (io._StdIOUtils.new = function() {
    ;
  }).prototype = io._StdIOUtils.prototype;
  dart.addTypeTests(io._StdIOUtils);
  dart.addTypeCaches(io._StdIOUtils);
  dart.setLibraryUri(io._StdIOUtils, I[105]);
  io.SystemEncoding = class SystemEncoding extends convert.Encoding {
    get name() {
      return "system";
    }
    encode(input) {
      core.String.as(input);
      if (input == null) dart.nullFailed(I[129], 28, 27, "input");
      return this.encoder.convert(input);
    }
    decode(encoded) {
      T$0.ListOfint().as(encoded);
      if (encoded == null) dart.nullFailed(I[129], 29, 27, "encoded");
      return this.decoder.convert(encoded);
    }
    get encoder() {
      if (io.Platform.operatingSystem === "windows") {
        return C[203] || CT.C203;
      } else {
        return C[101] || CT.C101;
      }
    }
    get decoder() {
      if (io.Platform.operatingSystem === "windows") {
        return C[204] || CT.C204;
      } else {
        return C[100] || CT.C100;
      }
    }
  };
  (io.SystemEncoding.new = function() {
    io.SystemEncoding.__proto__.new.call(this);
    ;
  }).prototype = io.SystemEncoding.prototype;
  dart.addTypeTests(io.SystemEncoding);
  dart.addTypeCaches(io.SystemEncoding);
  dart.setGetterSignature(io.SystemEncoding, () => ({
    __proto__: dart.getGetters(io.SystemEncoding.__proto__),
    name: core.String,
    encoder: convert.Converter$(core.String, core.List$(core.int)),
    decoder: convert.Converter$(core.List$(core.int), core.String)
  }));
  dart.setLibraryUri(io.SystemEncoding, I[105]);
  io._WindowsCodePageEncoder = class _WindowsCodePageEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
    convert(input) {
      core.String.as(input);
      if (input == null) dart.nullFailed(I[129], 51, 28, "input");
      let encoded = io._WindowsCodePageEncoder._encodeString(input);
      if (encoded == null) {
        dart.throw(new core.FormatException.new("Invalid character for encoding"));
      }
      return encoded;
    }
    startChunkedConversion(sink) {
      T$0.SinkOfListOfint().as(sink);
      if (sink == null) dart.nullFailed(I[129], 60, 63, "sink");
      return new io._WindowsCodePageEncoderSink.new(sink);
    }
    static _encodeString(string) {
      if (string == null) dart.nullFailed(I[107], 605, 41, "string");
      dart.throw(new core.UnsupportedError.new("_WindowsCodePageEncoder._encodeString"));
    }
  };
  (io._WindowsCodePageEncoder.new = function() {
    io._WindowsCodePageEncoder.__proto__.new.call(this);
    ;
  }).prototype = io._WindowsCodePageEncoder.prototype;
  dart.addTypeTests(io._WindowsCodePageEncoder);
  dart.addTypeCaches(io._WindowsCodePageEncoder);
  dart.setMethodSignature(io._WindowsCodePageEncoder, () => ({
    __proto__: dart.getMethods(io._WindowsCodePageEncoder.__proto__),
    convert: dart.fnType(core.List$(core.int), [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.StringConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io._WindowsCodePageEncoder, I[105]);
  io._WindowsCodePageEncoderSink = class _WindowsCodePageEncoderSink extends convert.StringConversionSinkBase {
    close() {
      this[_sink$1].close();
    }
    add(string) {
      core.String.as(string);
      if (string == null) dart.nullFailed(I[129], 79, 19, "string");
      let encoded = io._WindowsCodePageEncoder._encodeString(string);
      if (encoded == null) {
        dart.throw(new core.FormatException.new("Invalid character for encoding"));
      }
      this[_sink$1].add(encoded);
    }
    addSlice(source, start, end, isLast) {
      if (source == null) dart.nullFailed(I[129], 87, 24, "source");
      if (start == null) dart.nullFailed(I[129], 87, 36, "start");
      if (end == null) dart.nullFailed(I[129], 87, 47, "end");
      if (isLast == null) dart.nullFailed(I[129], 87, 57, "isLast");
      if (start !== 0 || end !== source.length) {
        source = source[$substring](start, end);
      }
      this.add(source);
      if (dart.test(isLast)) this.close();
    }
  };
  (io._WindowsCodePageEncoderSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[129], 73, 36, "_sink");
    this[_sink$1] = _sink;
    ;
  }).prototype = io._WindowsCodePageEncoderSink.prototype;
  dart.addTypeTests(io._WindowsCodePageEncoderSink);
  dart.addTypeCaches(io._WindowsCodePageEncoderSink);
  dart.setMethodSignature(io._WindowsCodePageEncoderSink, () => ({
    __proto__: dart.getMethods(io._WindowsCodePageEncoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(io._WindowsCodePageEncoderSink, I[105]);
  dart.setFieldSignature(io._WindowsCodePageEncoderSink, () => ({
    __proto__: dart.getFields(io._WindowsCodePageEncoderSink.__proto__),
    [_sink$1]: dart.finalFieldType(core.Sink$(core.List$(core.int)))
  }));
  io._WindowsCodePageDecoder = class _WindowsCodePageDecoder extends convert.Converter$(core.List$(core.int), core.String) {
    convert(input) {
      T$0.ListOfint().as(input);
      if (input == null) dart.nullFailed(I[129], 99, 28, "input");
      return io._WindowsCodePageDecoder._decodeBytes(input);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfString().as(sink);
      if (sink == null) dart.nullFailed(I[129], 104, 58, "sink");
      return new io._WindowsCodePageDecoderSink.new(sink);
    }
    static _decodeBytes(bytes) {
      if (bytes == null) dart.nullFailed(I[107], 597, 40, "bytes");
      dart.throw(new core.UnsupportedError.new("_WindowsCodePageDecoder._decodeBytes"));
    }
  };
  (io._WindowsCodePageDecoder.new = function() {
    io._WindowsCodePageDecoder.__proto__.new.call(this);
    ;
  }).prototype = io._WindowsCodePageDecoder.prototype;
  dart.addTypeTests(io._WindowsCodePageDecoder);
  dart.addTypeCaches(io._WindowsCodePageDecoder);
  dart.setMethodSignature(io._WindowsCodePageDecoder, () => ({
    __proto__: dart.getMethods(io._WindowsCodePageDecoder.__proto__),
    convert: dart.fnType(core.String, [dart.nullable(core.Object)]),
    startChunkedConversion: dart.fnType(convert.ByteConversionSink, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io._WindowsCodePageDecoder, I[105]);
  io._WindowsCodePageDecoderSink = class _WindowsCodePageDecoderSink extends convert.ByteConversionSinkBase {
    close() {
      this[_sink$1].close();
    }
    add(bytes) {
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[129], 123, 22, "bytes");
      this[_sink$1].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
    }
  };
  (io._WindowsCodePageDecoderSink.new = function(_sink) {
    if (_sink == null) dart.nullFailed(I[129], 117, 36, "_sink");
    this[_sink$1] = _sink;
    io._WindowsCodePageDecoderSink.__proto__.new.call(this);
    ;
  }).prototype = io._WindowsCodePageDecoderSink.prototype;
  dart.addTypeTests(io._WindowsCodePageDecoderSink);
  dart.addTypeCaches(io._WindowsCodePageDecoderSink);
  dart.setMethodSignature(io._WindowsCodePageDecoderSink, () => ({
    __proto__: dart.getMethods(io._WindowsCodePageDecoderSink.__proto__),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(io._WindowsCodePageDecoderSink, I[105]);
  dart.setFieldSignature(io._WindowsCodePageDecoderSink, () => ({
    __proto__: dart.getFields(io._WindowsCodePageDecoderSink.__proto__),
    [_sink$1]: dart.finalFieldType(core.Sink$(core.String))
  }));
  io.RawSynchronousSocket = class RawSynchronousSocket extends core.Object {
    static connectSync(host, port) {
      if (port == null) dart.nullFailed(I[107], 515, 61, "port");
      dart.throw(new core.UnsupportedError.new("RawSynchronousSocket.connectSync"));
    }
  };
  (io.RawSynchronousSocket.new = function() {
    ;
  }).prototype = io.RawSynchronousSocket.prototype;
  dart.addTypeTests(io.RawSynchronousSocket);
  dart.addTypeCaches(io.RawSynchronousSocket);
  dart.setLibraryUri(io.RawSynchronousSocket, I[105]);
  io._isErrorResponse = function _isErrorResponse$(response) {
    return core.List.is(response) && !dart.equals(response[$_get](0), 0);
  };
  io._exceptionFromResponse = function _exceptionFromResponse$(response, message, path) {
    if (message == null) dart.nullFailed(I[106], 23, 41, "message");
    if (path == null) dart.nullFailed(I[106], 23, 57, "path");
    if (!dart.test(io._isErrorResponse(response))) dart.assertFailed(null, I[106], 24, 10, "_isErrorResponse(response)");
    switch (dart.dsend(response, '_get', [0])) {
      case 1:
      {
        return new core.ArgumentError.new(dart.str(message) + ": " + dart.str(path));
      }
      case 2:
      {
        let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
        return new io.FileSystemException.new(message, path, err);
      }
      case 3:
      {
        return new io.FileSystemException.new("File closed", path);
      }
      default:
      {
        return core.Exception.new("Unknown error");
      }
    }
  };
  io._ensureFastAndSerializableByteData = function _ensureFastAndSerializableByteData(buffer, start, end) {
    if (buffer == null) dart.nullFailed(I[106], 93, 15, "buffer");
    if (start == null) dart.nullFailed(I[106], 93, 27, "start");
    if (end == null) dart.nullFailed(I[106], 93, 38, "end");
    if (dart.test(io._isDirectIOCapableTypedList(buffer))) {
      return new io._BufferAndStart.new(buffer, start);
    }
    let length = dart.notNull(end) - dart.notNull(start);
    let newBuffer = _native_typed_data.NativeUint8List.new(length);
    newBuffer[$setRange](0, length, buffer, start);
    return new io._BufferAndStart.new(newBuffer, 0);
  };
  io._isDirectIOCapableTypedList = function _isDirectIOCapableTypedList(buffer) {
    if (buffer == null) dart.nullFailed(I[107], 218, 44, "buffer");
    dart.throw(new core.UnsupportedError.new("_isDirectIOCapableTypedList"));
  };
  io._validateZLibWindowBits = function _validateZLibWindowBits(windowBits) {
    if (windowBits == null) dart.nullFailed(I[108], 570, 34, "windowBits");
    if (8 > dart.notNull(windowBits) || 15 < dart.notNull(windowBits)) {
      dart.throw(new core.RangeError.range(windowBits, 8, 15));
    }
  };
  io._validateZLibeLevel = function _validateZLibeLevel(level) {
    if (level == null) dart.nullFailed(I[108], 578, 30, "level");
    if (-1 > dart.notNull(level) || 9 < dart.notNull(level)) {
      dart.throw(new core.RangeError.range(level, -1, 9));
    }
  };
  io._validateZLibMemLevel = function _validateZLibMemLevel(memLevel) {
    if (memLevel == null) dart.nullFailed(I[108], 584, 32, "memLevel");
    if (1 > dart.notNull(memLevel) || 9 < dart.notNull(memLevel)) {
      dart.throw(new core.RangeError.range(memLevel, 1, 9));
    }
  };
  io._validateZLibStrategy = function _validateZLibStrategy(strategy) {
    if (strategy == null) dart.nullFailed(I[108], 591, 32, "strategy");
    let strategies = C[205] || CT.C205;
    if (strategies[$indexOf](strategy) === -1) {
      dart.throw(new core.ArgumentError.new("Unsupported 'strategy'"));
    }
  };
  io.isInsecureConnectionAllowed = function isInsecureConnectionAllowed(host) {
    let t215, t215$;
    let hostString = null;
    if (typeof host == 'string') {
      try {
        if ("localhost" === host || dart.test(io.InternetAddress.new(host).isLoopback)) return true;
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.ArgumentError.is(ex)) {
        } else
          throw e;
      }
      hostString = host;
    } else if (io.InternetAddress.is(host)) {
      if (dart.test(host.isLoopback)) return true;
      hostString = host.host;
    } else {
      dart.throw(new core.ArgumentError.value(host, "host", "Must be a String or InternetAddress"));
    }
    let topMatchedPolicy = io._findBestDomainNetworkPolicy(hostString);
    let envOverride = core.bool.fromEnvironment("dart.library.io.may_insecurely_connect_to_all_domains", {defaultValue: true});
    t215$ = (t215 = topMatchedPolicy, t215 == null ? null : t215.allowInsecureConnections);
    return t215$ == null ? dart.test(envOverride) && dart.test(io._EmbedderConfig._mayInsecurelyConnectToAllDomains) : t215$;
  };
  io._findBestDomainNetworkPolicy = function _findBestDomainNetworkPolicy(domain) {
    if (domain == null) dart.nullFailed(I[118], 154, 59, "domain");
    let topScore = 0;
    let topPolicy = null;
    for (let policy of io._domainPolicies) {
      let score = policy.matchScore(domain);
      if (dart.notNull(score) > dart.notNull(topScore)) {
        topScore = score;
        topPolicy = policy;
      }
    }
    return topPolicy;
  };
  io._constructDomainPolicies = function _constructDomainPolicies(domainPoliciesString) {
    let domainPolicies = T$0.JSArrayOf_DomainNetworkPolicy().of([]);
    domainPoliciesString == null ? domainPoliciesString = core.String.fromEnvironment("dart.library.io.domain_network_policies", {defaultValue: ""}) : null;
    if (domainPoliciesString[$isNotEmpty]) {
      let policiesJson = core.List.as(convert.json.decode(domainPoliciesString));
      for (let t215 of policiesJson) {
        let policyJson = core.List.as(t215);
        if (!(policyJson[$length] === 3)) dart.assertFailed(null, I[118], 180, 14, "policyJson.length == 3");
        let policy = new io._DomainNetworkPolicy.new(core.String.as(policyJson[$_get](0)), {includesSubDomains: core.bool.as(policyJson[$_get](1)), allowInsecureConnections: core.bool.as(policyJson[$_get](2))});
        if (dart.test(policy.checkConflict(domainPolicies))) {
          domainPolicies[$add](policy);
        }
      }
    }
    return domainPolicies;
  };
  io._success = function _success() {
    return convert.json.encode(new (T$.IdentityMapOfString$String()).from(["type", "Success"]));
  };
  io._invalidArgument = function _invalidArgument(argument, value) {
    if (argument == null) dart.nullFailed(I[119], 148, 32, "argument");
    return "Value for parameter '" + dart.str(argument) + "' is not valid: " + dart.str(value);
  };
  io._missingArgument = function _missingArgument(argument) {
    if (argument == null) dart.nullFailed(I[119], 151, 32, "argument");
    return "Parameter '" + dart.str(argument) + "' is required";
  };
  io._getHttpEnableTimelineLogging = function _getHttpEnableTimelineLogging() {
    return convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["type", "HttpTimelineLoggingState", "enabled", _http.HttpClient.enableTimelineLogging]));
  };
  io._setHttpEnableTimelineLogging = function _setHttpEnableTimelineLogging(parameters) {
    if (parameters == null) dart.nullFailed(I[119], 158, 58, "parameters");
    if (!dart.test(parameters[$containsKey]("enable"))) {
      dart.throw(io._missingArgument("enable"));
    }
    let enable = dart.nullCheck(parameters[$_get]("enable"))[$toLowerCase]();
    if (enable !== "true" && enable !== "false") {
      dart.throw(io._invalidArgument("enable", enable));
    }
    _http.HttpClient.enableTimelineLogging = enable === "true";
    return io._success();
  };
  io._getHttpProfileRequest = function _getHttpProfileRequest(parameters) {
    if (parameters == null) dart.nullFailed(I[119], 171, 51, "parameters");
    if (!dart.test(parameters[$containsKey]("id"))) {
      dart.throw(io._missingArgument("id"));
    }
    let id = core.int.tryParse(dart.nullCheck(parameters[$_get]("id")));
    if (id == null) {
      dart.throw(io._invalidArgument("id", dart.nullCheck(parameters[$_get]("id"))));
    }
    let request = _http.HttpProfiler.getHttpProfileRequest(id);
    if (request == null) {
      dart.throw("Unable to find request with id: '" + dart.str(id) + "'");
    }
    return convert.json.encode(request.toJson({ref: false}));
  };
  io._socketProfilingEnabled = function _socketProfilingEnabled(parameters) {
    if (parameters == null) dart.nullFailed(I[119], 188, 52, "parameters");
    if (dart.test(parameters[$containsKey]("enabled"))) {
      let enable = dart.nullCheck(parameters[$_get]("enabled"))[$toLowerCase]();
      if (enable !== "true" && enable !== "false") {
        dart.throw(io._invalidArgument("enabled", enable));
      }
      enable === "true" ? io._SocketProfile.start() : io._SocketProfile.pause();
    }
    return convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["type", "SocketProfilingState", "enabled", io._SocketProfile.enableSocketProfiling]));
  };
  io.exit = function exit(code) {
    if (code == null) dart.nullFailed(I[122], 50, 16, "code");
    core.ArgumentError.checkNotNull(core.int, code, "code");
    if (!dart.test(io._EmbedderConfig._mayExit)) {
      dart.throw(new core.UnsupportedError.new("This embedder disallows calling dart:io's exit()"));
    }
    io._ProcessUtils._exit(code);
    dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
  };
  io.sleep = function sleep(duration) {
    if (duration == null) dart.nullFailed(I[122], 88, 21, "duration");
    let milliseconds = duration.inMilliseconds;
    if (dart.notNull(milliseconds) < 0) {
      dart.throw(new core.ArgumentError.new("sleep: duration cannot be negative"));
    }
    if (!dart.test(io._EmbedderConfig._maySleep)) {
      dart.throw(new core.UnsupportedError.new("This embedder disallows calling dart:io's sleep()"));
    }
    io._ProcessUtils._sleep(milliseconds);
  };
  io._setStdioFDs = function _setStdioFDs(stdin, stdout, stderr) {
    if (stdin == null) dart.nullFailed(I[128], 376, 23, "stdin");
    if (stdout == null) dart.nullFailed(I[128], 376, 34, "stdout");
    if (stderr == null) dart.nullFailed(I[128], 376, 46, "stderr");
    io._stdinFD = stdin;
    io._stdoutFD = stdout;
    io._stderrFD = stderr;
  };
  io.stdioType = function stdioType(object) {
    if (io._StdStream.is(object)) {
      object = object[_stream$0];
    } else if (dart.equals(object, io.stdout) || dart.equals(object, io.stderr)) {
      let stdiofd = dart.equals(object, io.stdout) ? io._stdoutFD : io._stderrFD;
      let type = io._StdIOUtils._getStdioHandleType(stdiofd);
      if (io.OSError.is(type)) {
        dart.throw(new io.FileSystemException.new("Failed to get type of stdio handle (fd " + dart.str(stdiofd) + ")", "", type));
      }
      switch (type) {
        case 0:
        {
          return io.StdioType.terminal;
        }
        case 1:
        {
          return io.StdioType.pipe;
        }
        case 2:
        {
          return io.StdioType.file;
        }
      }
    }
    if (io._FileStream.is(object)) {
      return io.StdioType.file;
    }
    if (io.Socket.is(object)) {
      let socketType = io._StdIOUtils._socketType(object);
      if (socketType == null) return io.StdioType.other;
      switch (socketType) {
        case 0:
        {
          return io.StdioType.terminal;
        }
        case 1:
        {
          return io.StdioType.pipe;
        }
        case 2:
        {
          return io.StdioType.file;
        }
      }
    }
    if (io._IOSinkImpl.is(object)) {
      try {
        if (io._FileStreamConsumer.is(object[_target$0])) {
          return io.StdioType.file;
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
    }
    return io.StdioType.other;
  };
  dart.copyProperties(io, {
    get _domainPolicies() {
      let t217;
      if (!dart.test(io['_#_domainPolicies#isSet'])) {
        io['_#_domainPolicies'] = io._constructDomainPolicies(null);
        io['_#_domainPolicies#isSet'] = true;
      }
      t217 = io['_#_domainPolicies'];
      return t217;
    },
    set _domainPolicies(t217) {
      if (t217 == null) dart.nullFailed(I[118], 168, 33, "null");
      io['_#_domainPolicies#isSet'] = true;
      io['_#_domainPolicies'] = t217;
    },
    set exitCode(code) {
      if (code == null) dart.nullFailed(I[122], 69, 23, "code");
      core.ArgumentError.checkNotNull(core.int, code, "code");
      io._ProcessUtils._setExitCode(code);
    },
    get exitCode() {
      return io._ProcessUtils._getExitCode();
    },
    get pid() {
      return io._ProcessUtils._pid(null);
    },
    get stdin() {
      let t218;
      t218 = io._stdin;
      return t218 == null ? io._stdin = io._StdIOUtils._getStdioInputStream(io._stdinFD) : t218;
    },
    get stdout() {
      let t218;
      return io.Stdout.as((t218 = io._stdout, t218 == null ? io._stdout = T$0.StdoutN().as(io._StdIOUtils._getStdioOutputStream(io._stdoutFD)) : t218));
    },
    get stderr() {
      let t218;
      return io.Stdout.as((t218 = io._stderr, t218 == null ? io._stderr = T$0.StdoutN().as(io._StdIOUtils._getStdioOutputStream(io._stderrFD)) : t218));
    }
  });
  dart.defineLazy(io, {
    /*io._successResponse*/get _successResponse() {
      return 0;
    },
    /*io._illegalArgumentResponse*/get _illegalArgumentResponse() {
      return 1;
    },
    /*io._osErrorResponse*/get _osErrorResponse() {
      return 2;
    },
    /*io._fileClosedResponse*/get _fileClosedResponse() {
      return 3;
    },
    /*io._errorResponseErrorType*/get _errorResponseErrorType() {
      return 0;
    },
    /*io._osErrorResponseErrorCode*/get _osErrorResponseErrorCode() {
      return 1;
    },
    /*io._osErrorResponseMessage*/get _osErrorResponseMessage() {
      return 2;
    },
    /*io.zlib*/get zlib() {
      return C[206] || CT.C206;
    },
    /*io.ZLIB*/get ZLIB() {
      return C[206] || CT.C206;
    },
    /*io.gzip*/get gzip() {
      return C[207] || CT.C207;
    },
    /*io.GZIP*/get GZIP() {
      return C[207] || CT.C207;
    },
    /*io.READ*/get READ() {
      return C[109] || CT.C109;
    },
    /*io.WRITE*/get WRITE() {
      return C[110] || CT.C110;
    },
    /*io.APPEND*/get APPEND() {
      return C[111] || CT.C111;
    },
    /*io.WRITE_ONLY*/get WRITE_ONLY() {
      return C[112] || CT.C112;
    },
    /*io.WRITE_ONLY_APPEND*/get WRITE_ONLY_APPEND() {
      return C[113] || CT.C113;
    },
    /*io._blockSize*/get _blockSize() {
      return 65536;
    },
    /*io['_#_domainPolicies']*/get ['_#_domainPolicies']() {
      return null;
    },
    set ['_#_domainPolicies'](_) {},
    /*io['_#_domainPolicies#isSet']*/get ['_#_domainPolicies#isSet']() {
      return false;
    },
    set ['_#_domainPolicies#isSet'](_) {},
    /*io._versionMajor*/get _versionMajor() {
      return 1;
    },
    /*io._versionMinor*/get _versionMinor() {
      return 6;
    },
    /*io._tcpSocket*/get _tcpSocket() {
      return "tcp";
    },
    /*io._udpSocket*/get _udpSocket() {
      return "udp";
    },
    /*io._ioOverridesToken*/get _ioOverridesToken() {
      return new core.Object.new();
    },
    /*io._asyncRunZoned*/get _asyncRunZoned() {
      return C[208] || CT.C208;
    },
    /*io._nextServiceId*/get _nextServiceId() {
      return 1;
    },
    set _nextServiceId(_) {},
    /*io._stdioHandleTypeTerminal*/get _stdioHandleTypeTerminal() {
      return 0;
    },
    /*io._stdioHandleTypePipe*/get _stdioHandleTypePipe() {
      return 1;
    },
    /*io._stdioHandleTypeFile*/get _stdioHandleTypeFile() {
      return 2;
    },
    /*io._stdioHandleTypeSocket*/get _stdioHandleTypeSocket() {
      return 3;
    },
    /*io._stdioHandleTypeOther*/get _stdioHandleTypeOther() {
      return 4;
    },
    /*io._stdioHandleTypeError*/get _stdioHandleTypeError() {
      return 5;
    },
    /*io._stdin*/get _stdin() {
      return null;
    },
    set _stdin(_) {},
    /*io._stdout*/get _stdout() {
      return null;
    },
    set _stdout(_) {},
    /*io._stderr*/get _stderr() {
      return null;
    },
    set _stderr(_) {},
    /*io._stdinFD*/get _stdinFD() {
      return 0;
    },
    set _stdinFD(_) {},
    /*io._stdoutFD*/get _stdoutFD() {
      return 1;
    },
    set _stdoutFD(_) {},
    /*io._stderrFD*/get _stderrFD() {
      return 2;
    },
    set _stderrFD(_) {},
    /*io.systemEncoding*/get systemEncoding() {
      return C[143] || CT.C143;
    },
    /*io.SYSTEM_ENCODING*/get SYSTEM_ENCODING() {
      return C[143] || CT.C143;
    }
  }, false);
  isolate$._ReceivePort = class _ReceivePort extends async.Stream {
    close() {
    }
    get sendPort() {
      return isolate$._unsupported();
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
      return isolate$._unsupported();
    }
  };
  (isolate$._ReceivePort.new = function(debugName = "") {
    if (debugName == null) dart.nullFailed(I[130], 97, 24, "debugName");
    isolate$._ReceivePort.__proto__.new.call(this);
    ;
  }).prototype = isolate$._ReceivePort.prototype;
  dart.addTypeTests(isolate$._ReceivePort);
  dart.addTypeCaches(isolate$._ReceivePort);
  isolate$._ReceivePort[dart.implements] = () => [isolate$.ReceivePort];
  dart.setMethodSignature(isolate$._ReceivePort, () => ({
    __proto__: dart.getMethods(isolate$._ReceivePort.__proto__),
    close: dart.fnType(dart.void, []),
    listen: dart.fnType(async.StreamSubscription, [dart.nullable(dart.fnType(dart.void, [dart.dynamic]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
  }));
  dart.setGetterSignature(isolate$._ReceivePort, () => ({
    __proto__: dart.getGetters(isolate$._ReceivePort.__proto__),
    sendPort: isolate$.SendPort
  }));
  dart.setLibraryUri(isolate$._ReceivePort, I[131]);
  var message$10 = dart.privateName(isolate$, "IsolateSpawnException.message");
  isolate$.IsolateSpawnException = class IsolateSpawnException extends core.Object {
    get message() {
      return this[message$10];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      return "IsolateSpawnException: " + dart.str(this.message);
    }
  };
  (isolate$.IsolateSpawnException.new = function(message) {
    if (message == null) dart.nullFailed(I[132], 28, 30, "message");
    this[message$10] = message;
    ;
  }).prototype = isolate$.IsolateSpawnException.prototype;
  dart.addTypeTests(isolate$.IsolateSpawnException);
  dart.addTypeCaches(isolate$.IsolateSpawnException);
  isolate$.IsolateSpawnException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(isolate$.IsolateSpawnException, I[131]);
  dart.setFieldSignature(isolate$.IsolateSpawnException, () => ({
    __proto__: dart.getFields(isolate$.IsolateSpawnException.__proto__),
    message: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(isolate$.IsolateSpawnException, ['toString']);
  var controlPort$ = dart.privateName(isolate$, "Isolate.controlPort");
  var pauseCapability$ = dart.privateName(isolate$, "Isolate.pauseCapability");
  var terminateCapability$ = dart.privateName(isolate$, "Isolate.terminateCapability");
  var _pause = dart.privateName(isolate$, "_pause");
  isolate$.Isolate = class Isolate extends core.Object {
    get controlPort() {
      return this[controlPort$];
    }
    set controlPort(value) {
      super.controlPort = value;
    }
    get pauseCapability() {
      return this[pauseCapability$];
    }
    set pauseCapability(value) {
      super.pauseCapability = value;
    }
    get terminateCapability() {
      return this[terminateCapability$];
    }
    set terminateCapability(value) {
      super.terminateCapability = value;
    }
    get debugName() {
      return isolate$._unsupported();
    }
    static get current() {
      return isolate$._unsupported();
    }
    static get packageRoot() {
      return isolate$._unsupported();
    }
    static get packageConfig() {
      return isolate$._unsupported();
    }
    static resolvePackageUri(packageUri) {
      if (packageUri == null) dart.nullFailed(I[130], 28, 45, "packageUri");
      return isolate$._unsupported();
    }
    static spawn(T, entryPoint, message, opts) {
      if (entryPoint == null) dart.nullFailed(I[130], 31, 40, "entryPoint");
      let paused = opts && 'paused' in opts ? opts.paused : false;
      if (paused == null) dart.nullFailed(I[130], 32, 17, "paused");
      let errorsAreFatal = opts && 'errorsAreFatal' in opts ? opts.errorsAreFatal : true;
      if (errorsAreFatal == null) dart.nullFailed(I[130], 33, 16, "errorsAreFatal");
      let onExit = opts && 'onExit' in opts ? opts.onExit : null;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      return isolate$._unsupported();
    }
    static spawnUri(uri, args, message, opts) {
      if (uri == null) dart.nullFailed(I[130], 39, 39, "uri");
      if (args == null) dart.nullFailed(I[130], 39, 57, "args");
      let paused = opts && 'paused' in opts ? opts.paused : false;
      if (paused == null) dart.nullFailed(I[130], 40, 17, "paused");
      let onExit = opts && 'onExit' in opts ? opts.onExit : null;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let errorsAreFatal = opts && 'errorsAreFatal' in opts ? opts.errorsAreFatal : true;
      if (errorsAreFatal == null) dart.nullFailed(I[130], 43, 16, "errorsAreFatal");
      let checked = opts && 'checked' in opts ? opts.checked : null;
      let environment = opts && 'environment' in opts ? opts.environment : null;
      let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
      let packageConfig = opts && 'packageConfig' in opts ? opts.packageConfig : null;
      let automaticPackageResolution = opts && 'automaticPackageResolution' in opts ? opts.automaticPackageResolution : false;
      if (automaticPackageResolution == null) dart.nullFailed(I[130], 48, 16, "automaticPackageResolution");
      let debugName = opts && 'debugName' in opts ? opts.debugName : null;
      return isolate$._unsupported();
    }
    pause(resumeCapability = null) {
      resumeCapability == null ? resumeCapability = isolate$.Capability.new() : null;
      this[_pause](resumeCapability);
      return resumeCapability;
    }
    [_pause](resumeCapability) {
      if (resumeCapability == null) dart.nullFailed(I[130], 53, 26, "resumeCapability");
      return isolate$._unsupported();
    }
    resume(resumeCapability) {
      if (resumeCapability == null) dart.nullFailed(I[130], 56, 26, "resumeCapability");
      return isolate$._unsupported();
    }
    addOnExitListener(responsePort, opts) {
      if (responsePort == null) dart.nullFailed(I[130], 59, 35, "responsePort");
      let response = opts && 'response' in opts ? opts.response : null;
      return isolate$._unsupported();
    }
    removeOnExitListener(responsePort) {
      if (responsePort == null) dart.nullFailed(I[130], 63, 38, "responsePort");
      return isolate$._unsupported();
    }
    setErrorsFatal(errorsAreFatal) {
      if (errorsAreFatal == null) dart.nullFailed(I[130], 66, 28, "errorsAreFatal");
      return isolate$._unsupported();
    }
    kill(opts) {
      let priority = opts && 'priority' in opts ? opts.priority : 1;
      if (priority == null) dart.nullFailed(I[130], 69, 18, "priority");
      return isolate$._unsupported();
    }
    ping(responsePort, opts) {
      if (responsePort == null) dart.nullFailed(I[130], 71, 22, "responsePort");
      let response = opts && 'response' in opts ? opts.response : null;
      let priority = opts && 'priority' in opts ? opts.priority : 0;
      if (priority == null) dart.nullFailed(I[130], 72, 34, "priority");
      return isolate$._unsupported();
    }
    addErrorListener(port) {
      if (port == null) dart.nullFailed(I[130], 76, 34, "port");
      return isolate$._unsupported();
    }
    removeErrorListener(port) {
      if (port == null) dart.nullFailed(I[130], 79, 37, "port");
      return isolate$._unsupported();
    }
    get errors() {
      let controller = async.StreamController.broadcast({sync: true});
      let port = null;
      function handleError(message) {
        let listMessage = T$.ListOfObjectN().as(message);
        let errorDescription = core.String.as(listMessage[$_get](0));
        let stackDescription = core.String.as(listMessage[$_get](1));
        let error = new isolate$.RemoteError.new(errorDescription, stackDescription);
        controller.addError(error, error.stackTrace);
      }
      dart.fn(handleError, T$.ObjectNTovoid());
      controller.onListen = dart.fn(() => {
        let receivePort = isolate$.RawReceivePort.new(handleError);
        port = receivePort;
        this.addErrorListener(receivePort.sendPort);
      }, T$.VoidTovoid());
      controller.onCancel = dart.fn(() => {
        let listenPort = dart.nullCheck(port);
        port = null;
        this.removeErrorListener(listenPort.sendPort);
        listenPort.close();
      }, T$.VoidToNull());
      return controller.stream;
    }
  };
  (isolate$.Isolate.new = function(controlPort, opts) {
    if (controlPort == null) dart.nullFailed(I[132], 141, 16, "controlPort");
    let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapability : null;
    let terminateCapability = opts && 'terminateCapability' in opts ? opts.terminateCapability : null;
    this[controlPort$] = controlPort;
    this[pauseCapability$] = pauseCapability;
    this[terminateCapability$] = terminateCapability;
    ;
  }).prototype = isolate$.Isolate.prototype;
  dart.addTypeTests(isolate$.Isolate);
  dart.addTypeCaches(isolate$.Isolate);
  dart.setMethodSignature(isolate$.Isolate, () => ({
    __proto__: dart.getMethods(isolate$.Isolate.__proto__),
    pause: dart.fnType(isolate$.Capability, [], [dart.nullable(isolate$.Capability)]),
    [_pause]: dart.fnType(dart.void, [isolate$.Capability]),
    resume: dart.fnType(dart.void, [isolate$.Capability]),
    addOnExitListener: dart.fnType(dart.void, [isolate$.SendPort], {response: dart.nullable(core.Object)}, {}),
    removeOnExitListener: dart.fnType(dart.void, [isolate$.SendPort]),
    setErrorsFatal: dart.fnType(dart.void, [core.bool]),
    kill: dart.fnType(dart.void, [], {priority: core.int}, {}),
    ping: dart.fnType(dart.void, [isolate$.SendPort], {priority: core.int, response: dart.nullable(core.Object)}, {}),
    addErrorListener: dart.fnType(dart.void, [isolate$.SendPort]),
    removeErrorListener: dart.fnType(dart.void, [isolate$.SendPort])
  }));
  dart.setGetterSignature(isolate$.Isolate, () => ({
    __proto__: dart.getGetters(isolate$.Isolate.__proto__),
    debugName: dart.nullable(core.String),
    errors: async.Stream
  }));
  dart.setLibraryUri(isolate$.Isolate, I[131]);
  dart.setFieldSignature(isolate$.Isolate, () => ({
    __proto__: dart.getFields(isolate$.Isolate.__proto__),
    controlPort: dart.finalFieldType(isolate$.SendPort),
    pauseCapability: dart.finalFieldType(dart.nullable(isolate$.Capability)),
    terminateCapability: dart.finalFieldType(dart.nullable(isolate$.Capability))
  }));
  dart.defineLazy(isolate$.Isolate, {
    /*isolate$.Isolate.immediate*/get immediate() {
      return 0;
    },
    /*isolate$.Isolate.beforeNextEvent*/get beforeNextEvent() {
      return 1;
    }
  }, false);
  isolate$.SendPort = class SendPort extends core.Object {};
  (isolate$.SendPort.new = function() {
    ;
  }).prototype = isolate$.SendPort.prototype;
  dart.addTypeTests(isolate$.SendPort);
  dart.addTypeCaches(isolate$.SendPort);
  isolate$.SendPort[dart.implements] = () => [isolate$.Capability];
  dart.setLibraryUri(isolate$.SendPort, I[131]);
  isolate$.ReceivePort = class ReceivePort extends core.Object {
    static fromRawReceivePort(rawPort) {
      if (rawPort == null) dart.nullFailed(I[130], 89, 57, "rawPort");
      return isolate$._unsupported();
    }
  };
  (isolate$.ReceivePort[dart.mixinNew] = function() {
  }).prototype = isolate$.ReceivePort.prototype;
  isolate$.ReceivePort.prototype[dart.isStream] = true;
  dart.addTypeTests(isolate$.ReceivePort);
  dart.addTypeCaches(isolate$.ReceivePort);
  isolate$.ReceivePort[dart.implements] = () => [async.Stream];
  dart.setLibraryUri(isolate$.ReceivePort, I[131]);
  isolate$.RawReceivePort = class RawReceivePort extends core.Object {
    static new(handler = null, debugName = "") {
      if (debugName == null) dart.nullFailed(I[130], 113, 53, "debugName");
      return isolate$._unsupported();
    }
  };
  (isolate$.RawReceivePort[dart.mixinNew] = function() {
  }).prototype = isolate$.RawReceivePort.prototype;
  dart.addTypeTests(isolate$.RawReceivePort);
  dart.addTypeCaches(isolate$.RawReceivePort);
  dart.setLibraryUri(isolate$.RawReceivePort, I[131]);
  var stackTrace$0 = dart.privateName(isolate$, "RemoteError.stackTrace");
  var _description = dart.privateName(isolate$, "_description");
  isolate$.RemoteError = class RemoteError extends core.Object {
    get stackTrace() {
      return this[stackTrace$0];
    }
    set stackTrace(value) {
      super.stackTrace = value;
    }
    toString() {
      return this[_description];
    }
  };
  (isolate$.RemoteError.new = function(description, stackDescription) {
    if (description == null) dart.nullFailed(I[132], 714, 22, "description");
    if (stackDescription == null) dart.nullFailed(I[132], 714, 42, "stackDescription");
    this[_description] = description;
    this[stackTrace$0] = new core._StringStackTrace.new(stackDescription);
    ;
  }).prototype = isolate$.RemoteError.prototype;
  dart.addTypeTests(isolate$.RemoteError);
  dart.addTypeCaches(isolate$.RemoteError);
  isolate$.RemoteError[dart.implements] = () => [core.Error];
  dart.setLibraryUri(isolate$.RemoteError, I[131]);
  dart.setFieldSignature(isolate$.RemoteError, () => ({
    __proto__: dart.getFields(isolate$.RemoteError.__proto__),
    [_description]: dart.finalFieldType(core.String),
    stackTrace: dart.finalFieldType(core.StackTrace)
  }));
  dart.defineExtensionMethods(isolate$.RemoteError, ['toString']);
  dart.defineExtensionAccessors(isolate$.RemoteError, ['stackTrace']);
  isolate$.TransferableTypedData = class TransferableTypedData extends core.Object {
    static fromList(list) {
      if (list == null) dart.nullFailed(I[130], 126, 58, "list");
      return isolate$._unsupported();
    }
  };
  (isolate$.TransferableTypedData[dart.mixinNew] = function() {
  }).prototype = isolate$.TransferableTypedData.prototype;
  dart.addTypeTests(isolate$.TransferableTypedData);
  dart.addTypeCaches(isolate$.TransferableTypedData);
  dart.setLibraryUri(isolate$.TransferableTypedData, I[131]);
  isolate$.Capability = class Capability extends core.Object {
    static new() {
      return isolate$._unsupported();
    }
  };
  (isolate$.Capability[dart.mixinNew] = function() {
  }).prototype = isolate$.Capability.prototype;
  dart.addTypeTests(isolate$.Capability);
  dart.addTypeCaches(isolate$.Capability);
  dart.setLibraryUri(isolate$.Capability, I[131]);
  isolate$._unsupported = function _unsupported() {
    dart.throw(new core.UnsupportedError.new("dart:isolate is not supported on dart4web"));
  };
  var _dartObj$ = dart.privateName(js, "_dartObj");
  js._DartObject = class _DartObject extends core.Object {};
  (js._DartObject.new = function(_dartObj) {
    if (_dartObj == null) dart.nullFailed(I[133], 327, 20, "_dartObj");
    this[_dartObj$] = _dartObj;
    ;
  }).prototype = js._DartObject.prototype;
  dart.addTypeTests(js._DartObject);
  dart.addTypeCaches(js._DartObject);
  dart.setLibraryUri(js._DartObject, I[134]);
  dart.setFieldSignature(js._DartObject, () => ({
    __proto__: dart.getFields(js._DartObject.__proto__),
    [_dartObj$]: dart.finalFieldType(core.Object)
  }));
  var _jsObject$ = dart.privateName(js, "_jsObject");
  js.JsObject = class JsObject extends core.Object {
    static _convertDataTree(data) {
      if (data == null) dart.nullFailed(I[133], 55, 34, "data");
      let _convertedObjects = new _js_helper.IdentityMap.new();
      function _convert(o) {
        if (dart.test(_convertedObjects[$containsKey](o))) {
          return _convertedObjects[$_get](o);
        }
        if (core.Map.is(o)) {
          let convertedMap = {};
          _convertedObjects[$_set](o, convertedMap);
          for (let key of o[$keys]) {
            convertedMap[key] = _convert(o[$_get](key));
          }
          return convertedMap;
        } else if (core.Iterable.is(o)) {
          let convertedList = [];
          _convertedObjects[$_set](o, convertedList);
          convertedList[$addAll](o[$map](dart.dynamic, _convert));
          return convertedList;
        } else {
          return js._convertToJS(o);
        }
      }
      dart.fn(_convert, T$0.ObjectNTodynamic());
      return _convert(data);
    }
    static new(constructor, $arguments = null) {
      if (constructor == null) dart.nullFailed(I[133], 30, 31, "constructor");
      let ctor = constructor[_jsObject$];
      if ($arguments == null) {
        return js._wrapToDart(new ctor());
      }
      let unwrapped = core.List.from($arguments[$map](dart.dynamic, C[209] || CT.C209));
      return js._wrapToDart(new ctor(...unwrapped));
    }
    static fromBrowserObject(object) {
      if (object == null) dart.nullFailed(I[133], 40, 45, "object");
      if (typeof object == 'number' || typeof object == 'string' || typeof object == 'boolean' || object == null) {
        dart.throw(new core.ArgumentError.new("object cannot be a num, string, bool, or null"));
      }
      return js._wrapToDart(dart.nullCheck(js._convertToJS(object)));
    }
    static jsify(object) {
      if (object == null) dart.nullFailed(I[133], 48, 33, "object");
      if (!core.Map.is(object) && !core.Iterable.is(object)) {
        dart.throw(new core.ArgumentError.new("object must be a Map or Iterable"));
      }
      return js._wrapToDart(core.Object.as(js.JsObject._convertDataTree(object)));
    }
    _get(property) {
      if (property == null) dart.nullFailed(I[133], 83, 30, "property");
      if (!(typeof property == 'string') && !(typeof property == 'number')) {
        dart.throw(new core.ArgumentError.new("property is not a String or num"));
      }
      return js._convertToDart(this[_jsObject$][property]);
    }
    _set(property, value$) {
      let value = value$;
      if (property == null) dart.nullFailed(I[133], 91, 28, "property");
      if (!(typeof property == 'string') && !(typeof property == 'number')) {
        dart.throw(new core.ArgumentError.new("property is not a String or num"));
      }
      this[_jsObject$][property] = js._convertToJS(value);
      return value$;
    }
    get hashCode() {
      return 0;
    }
    _equals(other) {
      if (other == null) return false;
      return js.JsObject.is(other) && this[_jsObject$] === other[_jsObject$];
    }
    hasProperty(property) {
      if (property == null) dart.nullFailed(I[133], 103, 27, "property");
      if (!(typeof property == 'string') && !(typeof property == 'number')) {
        dart.throw(new core.ArgumentError.new("property is not a String or num"));
      }
      return property in this[_jsObject$];
    }
    deleteProperty(property) {
      if (property == null) dart.nullFailed(I[133], 111, 30, "property");
      if (!(typeof property == 'string') && !(typeof property == 'number')) {
        dart.throw(new core.ArgumentError.new("property is not a String or num"));
      }
      delete this[_jsObject$][property];
    }
    instanceof(type) {
      if (type == null) dart.nullFailed(I[133], 119, 30, "type");
      return this[_jsObject$] instanceof js._convertToJS(type);
    }
    toString() {
      try {
        return String(this[_jsObject$]);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
          return super[$toString]();
        } else
          throw e$;
      }
    }
    callMethod(method, args = null) {
      if (method == null) dart.nullFailed(I[133], 133, 29, "method");
      if (!(typeof method == 'string') && !(typeof method == 'number')) {
        dart.throw(new core.ArgumentError.new("method is not a String or num"));
      }
      if (args != null) args = core.List.from(args[$map](dart.dynamic, C[209] || CT.C209));
      let fn = this[_jsObject$][method];
      if (typeof fn !== "function") {
        dart.throw(new core.NoSuchMethodError.new(this[_jsObject$], new _internal.Symbol.new(dart.str(method)), args, new (T$0.LinkedMapOfSymbol$dynamic()).new()));
      }
      return js._convertToDart(fn.apply(this[_jsObject$], args));
    }
  };
  (js.JsObject._fromJs = function(_jsObject) {
    if (_jsObject == null) dart.nullFailed(I[133], 25, 25, "_jsObject");
    this[_jsObject$] = _jsObject;
    if (!(this[_jsObject$] != null)) dart.assertFailed(null, I[133], 26, 12, "_jsObject != null");
  }).prototype = js.JsObject.prototype;
  dart.addTypeTests(js.JsObject);
  dart.addTypeCaches(js.JsObject);
  dart.setMethodSignature(js.JsObject, () => ({
    __proto__: dart.getMethods(js.JsObject.__proto__),
    _get: dart.fnType(dart.dynamic, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, dart.nullable(core.Object)]),
    hasProperty: dart.fnType(core.bool, [core.Object]),
    deleteProperty: dart.fnType(dart.void, [core.Object]),
    instanceof: dart.fnType(core.bool, [js.JsFunction]),
    callMethod: dart.fnType(dart.dynamic, [core.Object], [dart.nullable(core.List)])
  }));
  dart.setLibraryUri(js.JsObject, I[134]);
  dart.setFieldSignature(js.JsObject, () => ({
    __proto__: dart.getFields(js.JsObject.__proto__),
    [_jsObject$]: dart.finalFieldType(core.Object)
  }));
  dart.defineExtensionMethods(js.JsObject, ['_equals', 'toString']);
  dart.defineExtensionAccessors(js.JsObject, ['hashCode']);
  js.JsFunction = class JsFunction extends js.JsObject {
    static withThis(f) {
      if (f == null) dart.nullFailed(I[133], 149, 40, "f");
      return new js.JsFunction._fromJs(function() {
        let args = [js._convertToDart(this)];
        for (let arg of arguments) {
          args.push(js._convertToDart(arg));
        }
        return js._convertToJS(f(...args));
      });
    }
    apply(args, opts) {
      if (args == null) dart.nullFailed(I[133], 168, 22, "args");
      let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null;
      return js._convertToDart(this[_jsObject$].apply(js._convertToJS(thisArg), args == null ? null : core.List.from(args[$map](dart.dynamic, js._convertToJS))));
    }
  };
  (js.JsFunction._fromJs = function(jsObject) {
    if (jsObject == null) dart.nullFailed(I[133], 165, 29, "jsObject");
    js.JsFunction.__proto__._fromJs.call(this, jsObject);
    ;
  }).prototype = js.JsFunction.prototype;
  dart.addTypeTests(js.JsFunction);
  dart.addTypeCaches(js.JsFunction);
  dart.setMethodSignature(js.JsFunction, () => ({
    __proto__: dart.getMethods(js.JsFunction.__proto__),
    apply: dart.fnType(dart.dynamic, [core.List], {thisArg: dart.dynamic}, {})
  }));
  dart.setLibraryUri(js.JsFunction, I[134]);
  var _checkIndex = dart.privateName(js, "_checkIndex");
  var _checkInsertIndex = dart.privateName(js, "_checkInsertIndex");
  const _is_JsArray_default = Symbol('_is_JsArray_default');
  js.JsArray$ = dart.generic(E => {
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    const JsObject_ListMixin$36 = class JsObject_ListMixin extends js.JsObject {
      _set(property, value$) {
        let value = value$;
        if (property == null) dart.nullFailed(I[135], 175, 7, "property");
        super._set(property, value);
        return value$;
      }
    };
    (JsObject_ListMixin$36._fromJs = function(_jsObject) {
      JsObject_ListMixin$36.__proto__._fromJs.call(this, _jsObject);
    }).prototype = JsObject_ListMixin$36.prototype;
    dart.applyMixin(JsObject_ListMixin$36, collection.ListMixin$(E));
    class JsArray extends JsObject_ListMixin$36 {
      [_checkIndex](index) {
        if (index == null) dart.nullFailed(I[133], 188, 19, "index");
        if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length)) {
          dart.throw(new core.RangeError.range(index, 0, this.length));
        }
      }
      [_checkInsertIndex](index) {
        if (index == null) dart.nullFailed(I[133], 194, 25, "index");
        if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length) + 1) {
          dart.throw(new core.RangeError.range(index, 0, this.length));
        }
      }
      static _checkRange(start, end, length) {
        if (start == null) dart.nullFailed(I[133], 200, 26, "start");
        if (end == null) dart.nullFailed(I[133], 200, 37, "end");
        if (length == null) dart.nullFailed(I[133], 200, 46, "length");
        if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
          dart.throw(new core.RangeError.range(start, 0, length));
        }
        if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
          dart.throw(new core.RangeError.range(end, start, length));
        }
      }
      static new() {
        return new (js.JsArray$(E))._fromJs([]);
      }
      static from(other) {
        let t219;
        if (other == null) dart.nullFailed(I[133], 183, 36, "other");
        return new (js.JsArray$(E))._fromJs((t219 = [], (() => {
          t219[$addAll](other[$map](dart.dynamic, C[209] || CT.C209));
          return t219;
        })()));
      }
      _get(index) {
        if (index == null) dart.nullFailed(I[133], 210, 24, "index");
        if (core.int.is(index)) {
          this[_checkIndex](index);
        }
        return E.as(super._get(index));
      }
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[133], 218, 28, "index");
        if (core.int.is(index)) {
          this[_checkIndex](index);
        }
        super._set(index, value);
        return value$;
      }
      get length() {
        let len = this[_jsObject$].length;
        if (typeof len === "number" && len >>> 0 === len) {
          return len;
        }
        dart.throw(new core.StateError.new("Bad JsArray length"));
      }
      set length(length) {
        if (length == null) dart.nullFailed(I[133], 238, 23, "length");
        super._set("length", length);
      }
      add(value) {
        E.as(value);
        this.callMethod("push", [value]);
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[133], 248, 27, "iterable");
        let list = iterable instanceof Array ? iterable : core.List.from(iterable);
        this.callMethod("push", list);
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[133], 256, 19, "index");
        E.as(element);
        this[_checkInsertIndex](index);
        this.callMethod("splice", [index, 0, element]);
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[133], 262, 18, "index");
        this[_checkIndex](index);
        return E.as(dart.dsend(this.callMethod("splice", [index, 1]), '_get', [0]));
      }
      removeLast() {
        if (this.length === 0) dart.throw(new core.RangeError.new(-1));
        return E.as(this.callMethod("pop"));
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[133], 274, 24, "start");
        if (end == null) dart.nullFailed(I[133], 274, 35, "end");
        js.JsArray._checkRange(start, end, this.length);
        this.callMethod("splice", [start, dart.notNull(end) - dart.notNull(start)]);
      }
      setRange(start, end, iterable, skipCount = 0) {
        let t219;
        if (start == null) dart.nullFailed(I[133], 280, 21, "start");
        if (end == null) dart.nullFailed(I[133], 280, 32, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[133], 280, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[133], 280, 64, "skipCount");
        js.JsArray._checkRange(start, end, this.length);
        let length = dart.notNull(end) - dart.notNull(start);
        if (length === 0) return;
        if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError.new(skipCount));
        let args = (t219 = T$.JSArrayOfObjectN().of([start, length]), (() => {
          t219[$addAll](iterable[$skip](skipCount)[$take](length));
          return t219;
        })());
        this.callMethod("splice", args);
      }
      sort(compare = null) {
        this.callMethod("sort", compare == null ? [] : [compare]);
      }
    }
    (JsArray._fromJs = function(jsObject) {
      if (jsObject == null) dart.nullFailed(I[133], 186, 26, "jsObject");
      JsArray.__proto__._fromJs.call(this, jsObject);
      ;
    }).prototype = JsArray.prototype;
    dart.addTypeTests(JsArray);
    JsArray.prototype[_is_JsArray_default] = true;
    dart.addTypeCaches(JsArray);
    dart.setMethodSignature(JsArray, () => ({
      __proto__: dart.getMethods(JsArray.__proto__),
      [_checkIndex]: dart.fnType(dart.dynamic, [core.int]),
      [_checkInsertIndex]: dart.fnType(dart.dynamic, [core.int]),
      _get: dart.fnType(E, [core.Object]),
      [$_get]: dart.fnType(E, [core.Object]),
      _set: dart.fnType(dart.void, [core.Object, dart.dynamic]),
      [$_set]: dart.fnType(dart.void, [core.Object, dart.dynamic])
    }));
    dart.setGetterSignature(JsArray, () => ({
      __proto__: dart.getGetters(JsArray.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setSetterSignature(JsArray, () => ({
      __proto__: dart.getSetters(JsArray.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(JsArray, I[134]);
    dart.defineExtensionMethods(JsArray, [
      '_get',
      '_set',
      'add',
      'addAll',
      'insert',
      'removeAt',
      'removeLast',
      'removeRange',
      'setRange',
      'sort'
    ]);
    dart.defineExtensionAccessors(JsArray, ['length']);
    return JsArray;
  });
  js.JsArray = js.JsArray$();
  dart.addTypeTests(js.JsArray, _is_JsArray_default);
  js._isBrowserType = function _isBrowserType(o) {
    if (o == null) dart.nullFailed(I[133], 301, 28, "o");
    return o instanceof Object && (o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.DataView && o instanceof DataView || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window);
  };
  js._convertToJS = function _convertToJS(o) {
    if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
      return o;
    } else if (core.DateTime.is(o)) {
      return _js_helper.Primitives.lazyAsJsDate(o);
    } else if (js.JsObject.is(o)) {
      return o[_jsObject$];
    } else if (core.Function.is(o)) {
      return js._putIfAbsent(js._jsProxies, o, C[210] || CT.C210);
    } else {
      return js._putIfAbsent(js._jsProxies, o, dart.fn(o => {
        if (o == null) dart.nullFailed(I[133], 342, 41, "o");
        return new js._DartObject.new(o);
      }, T$0.ObjectTo_DartObject()));
    }
  };
  js._wrapDartFunction = function _wrapDartFunction(f) {
    if (f == null) dart.nullFailed(I[133], 346, 33, "f");
    let wrapper = function() {
      let args = Array.prototype.map.call(arguments, js._convertToDart);
      return js._convertToJS(f(...args));
    };
    js._dartProxies.set(wrapper, f);
    return wrapper;
  };
  js._convertToDart = function _convertToDart(o) {
    if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
      return o;
    } else if (o instanceof Date) {
      let ms = o.getTime();
      return new core.DateTime.fromMillisecondsSinceEpoch(ms);
    } else if (js._DartObject.is(o) && !core.identical(dart.getReifiedType(o), dart.jsobject)) {
      return o[_dartObj$];
    } else {
      return js._wrapToDart(o);
    }
  };
  js._wrapToDart = function _wrapToDart(o) {
    if (o == null) dart.nullFailed(I[133], 377, 29, "o");
    return js._putIfAbsent(js._dartProxies, o, C[211] || CT.C211);
  };
  js._wrapToDartHelper = function _wrapToDartHelper(o) {
    if (o == null) dart.nullFailed(I[133], 380, 35, "o");
    if (typeof o == "function") {
      return new js.JsFunction._fromJs(o);
    }
    if (o instanceof Array) {
      return new js.JsArray._fromJs(o);
    }
    return new js.JsObject._fromJs(o);
  };
  js._putIfAbsent = function _putIfAbsent(weakMap, o, getValue) {
    if (weakMap == null) dart.nullFailed(I[133], 394, 26, "weakMap");
    if (o == null) dart.nullFailed(I[133], 394, 42, "o");
    if (getValue == null) dart.nullFailed(I[133], 394, 47, "getValue");
    let value = weakMap.get(o);
    if (value == null) {
      value = getValue(o);
      weakMap.set(o, value);
    }
    return value;
  };
  js.allowInterop = function allowInterop(F, f) {
    if (f == null) dart.nullFailed(I[133], 407, 38, "f");
    if (!dart.test(dart.isDartFunction(f))) return f;
    let ret = dart.nullable(F).as(js._interopExpando._get(f));
    if (ret == null) {
      ret = function(...args) {
        return dart.dcall(f, args);
      };
      js._interopExpando._set(f, ret);
    }
    return ret;
  };
  js.allowInteropCaptureThis = function allowInteropCaptureThis(f) {
    if (f == null) dart.nullFailed(I[133], 426, 43, "f");
    if (!dart.test(dart.isDartFunction(f))) return f;
    let ret = js._interopCaptureThisExpando._get(f);
    if (ret == null) {
      ret = function(...arguments$) {
        let args = [this];
        args.push.apply(args, arguments$);
        return dart.dcall(f, args);
      };
      js._interopCaptureThisExpando._set(f, ret);
    }
    return ret;
  };
  dart.copyProperties(js, {
    get context() {
      return js._context;
    }
  });
  dart.defineLazy(js, {
    /*js._context*/get _context() {
      return js._wrapToDart(dart.global);
    },
    /*js._dartProxies*/get _dartProxies() {
      return new WeakMap();
    },
    /*js._jsProxies*/get _jsProxies() {
      return new WeakMap();
    },
    /*js._interopExpando*/get _interopExpando() {
      return new (T$.ExpandoOfFunction()).new();
    },
    set _interopExpando(_) {},
    /*js._interopCaptureThisExpando*/get _interopCaptureThisExpando() {
      return new (T$.ExpandoOfFunction()).new();
    },
    set _interopCaptureThisExpando(_) {}
  }, false);
  var isUndefined$ = dart.privateName(js_util, "NullRejectionException.isUndefined");
  js_util.NullRejectionException = class NullRejectionException extends core.Object {
    get isUndefined() {
      return this[isUndefined$];
    }
    set isUndefined(value) {
      super.isUndefined = value;
    }
    toString() {
      let value = dart.test(this.isUndefined) ? "undefined" : "null";
      return "Promise was rejected with a value of `" + value + "`.";
    }
  };
  (js_util.NullRejectionException.__ = function(isUndefined) {
    if (isUndefined == null) dart.nullFailed(I[136], 161, 33, "isUndefined");
    this[isUndefined$] = isUndefined;
    ;
  }).prototype = js_util.NullRejectionException.prototype;
  dart.addTypeTests(js_util.NullRejectionException);
  dart.addTypeCaches(js_util.NullRejectionException);
  js_util.NullRejectionException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(js_util.NullRejectionException, I[137]);
  dart.setFieldSignature(js_util.NullRejectionException, () => ({
    __proto__: dart.getFields(js_util.NullRejectionException.__proto__),
    isUndefined: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(js_util.NullRejectionException, ['toString']);
  js_util.jsify = function jsify(object) {
    if (object == null) dart.nullFailed(I[136], 33, 22, "object");
    if (!core.Map.is(object) && !core.Iterable.is(object)) {
      dart.throw(new core.ArgumentError.new("object must be a Map or Iterable"));
    }
    return js_util._convertDataTree(object);
  };
  js_util._convertDataTree = function _convertDataTree(data) {
    if (data == null) dart.nullFailed(I[136], 40, 32, "data");
    let _convertedObjects = new _js_helper.IdentityMap.new();
    function _convert(o) {
      if (dart.test(_convertedObjects[$containsKey](o))) {
        return _convertedObjects[$_get](o);
      }
      if (core.Map.is(o)) {
        let convertedMap = {};
        _convertedObjects[$_set](o, convertedMap);
        for (let key of o[$keys]) {
          convertedMap[key] = _convert(o[$_get](key));
        }
        return convertedMap;
      } else if (core.Iterable.is(o)) {
        let convertedList = [];
        _convertedObjects[$_set](o, convertedList);
        convertedList[$addAll](o[$map](dart.dynamic, _convert));
        return convertedList;
      } else {
        return o;
      }
    }
    dart.fn(_convert, T$.ObjectNToObjectN());
    return dart.nullCheck(_convert(data));
  };
  js_util.newObject = function newObject() {
    return {};
  };
  js_util.hasProperty = function hasProperty(o, name) {
    if (o == null) dart.nullFailed(I[136], 69, 25, "o");
    if (name == null) dart.nullFailed(I[136], 69, 35, "name");
    return name in o;
  };
  js_util.getProperty = function getProperty(o, name) {
    if (o == null) dart.nullFailed(I[136], 71, 28, "o");
    if (name == null) dart.nullFailed(I[136], 71, 38, "name");
    return o[name];
  };
  js_util.setProperty = function setProperty(o, name, value) {
    if (o == null) dart.nullFailed(I[136], 74, 28, "o");
    if (name == null) dart.nullFailed(I[136], 74, 38, "name");
    _js_helper.assertInterop(value);
    return o[name] = value;
  };
  js_util.callMethod = function callMethod$(o, method, args) {
    if (o == null) dart.nullFailed(I[136], 79, 27, "o");
    if (method == null) dart.nullFailed(I[136], 79, 37, "method");
    if (args == null) dart.nullFailed(I[136], 79, 59, "args");
    _js_helper.assertInteropArgs(args);
    return o[method].apply(o, args);
  };
  js_util.instanceof = function $instanceof(o, type) {
    if (type == null) dart.nullFailed(I[136], 88, 35, "type");
    return o instanceof type;
  };
  js_util.callConstructor = function callConstructor(constr, $arguments) {
    let t219;
    if (constr == null) dart.nullFailed(I[136], 91, 32, "constr");
    if ($arguments == null) {
      return new constr();
    } else {
      _js_helper.assertInteropArgs($arguments);
    }
    if ($arguments instanceof Array) {
      let argumentCount = $arguments.length;
      switch (argumentCount) {
        case 0:
        {
          return new constr();
        }
        case 1:
        {
          let arg0 = $arguments[0];
          return new constr(arg0);
        }
        case 2:
        {
          let arg0 = $arguments[0];
          let arg1 = $arguments[1];
          return new constr(arg0, arg1);
        }
        case 3:
        {
          let arg0 = $arguments[0];
          let arg1 = $arguments[1];
          let arg2 = $arguments[2];
          return new constr(arg0, arg1, arg2);
        }
        case 4:
        {
          let arg0 = $arguments[0];
          let arg1 = $arguments[1];
          let arg2 = $arguments[2];
          let arg3 = $arguments[3];
          return new constr(arg0, arg1, arg2, arg3);
        }
      }
    }
    let args = (t219 = [null], (() => {
      t219[$addAll]($arguments);
      return t219;
    })());
    let factoryFunction = constr.bind.apply(constr, args);
    String(factoryFunction);
    return new factoryFunction();
  };
  js_util.promiseToFuture = function promiseToFuture(T, jsPromise) {
    if (jsPromise == null) dart.nullFailed(I[136], 180, 37, "jsPromise");
    let completer = async.Completer$(T).new();
    let success = _js_helper.convertDartClosureToJS(T$.dynamicTovoid(), dart.fn(r => completer.complete(dart.nullable(async.FutureOr$(T)).as(r)), T$.dynamicTovoid()), 1);
    let error = _js_helper.convertDartClosureToJS(T$.dynamicTovoid(), dart.fn(e => {
      if (e == null) {
        return completer.completeError(new js_util.NullRejectionException.__(e === undefined));
      }
      return completer.completeError(core.Object.as(e));
    }, T$.dynamicTovoid()), 1);
    jsPromise.then(success, error);
    return completer.future;
  };
  math._JSRandom = class _JSRandom extends core.Object {
    nextInt(max) {
      if (max == null) dart.nullFailed(I[138], 85, 19, "max");
      if (dart.notNull(max) <= 0 || dart.notNull(max) > 4294967296.0) {
        dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
      }
      return Math.random() * max >>> 0;
    }
    nextDouble() {
      return Math.random();
    }
    nextBool() {
      return Math.random() < 0.5;
    }
  };
  (math._JSRandom.new = function() {
    ;
  }).prototype = math._JSRandom.prototype;
  dart.addTypeTests(math._JSRandom);
  dart.addTypeCaches(math._JSRandom);
  math._JSRandom[dart.implements] = () => [math.Random];
  dart.setMethodSignature(math._JSRandom, () => ({
    __proto__: dart.getMethods(math._JSRandom.__proto__),
    nextInt: dart.fnType(core.int, [core.int]),
    nextDouble: dart.fnType(core.double, []),
    nextBool: dart.fnType(core.bool, [])
  }));
  dart.setLibraryUri(math._JSRandom, I[139]);
  var _lo = dart.privateName(math, "_lo");
  var _hi = dart.privateName(math, "_hi");
  var _nextState = dart.privateName(math, "_nextState");
  math._Random = class _Random extends core.Object {
    [_nextState]() {
      let tmpHi = 4294901760 * this[_lo];
      let tmpHiLo = (tmpHi & 4294967295.0) >>> 0;
      let tmpHiHi = tmpHi - tmpHiLo;
      let tmpLo = 55905 * this[_lo];
      let tmpLoLo = (tmpLo & 4294967295.0) >>> 0;
      let tmpLoHi = tmpLo - tmpLoLo;
      let newLo = tmpLoLo + tmpHiLo + this[_hi];
      this[_lo] = (newLo & 4294967295.0) >>> 0;
      let newLoHi = newLo - this[_lo];
      this[_hi] = (((tmpLoHi + tmpHiHi + newLoHi) / 4294967296.0)[$truncate]() & 4294967295.0) >>> 0;
      if (!(this[_lo] < 4294967296.0)) dart.assertFailed(null, I[138], 221, 12, "_lo < _POW2_32");
      if (!(this[_hi] < 4294967296.0)) dart.assertFailed(null, I[138], 222, 12, "_hi < _POW2_32");
    }
    nextInt(max) {
      if (max == null) dart.argumentError(max);
      if (max <= 0 || max > 4294967296.0) {
        dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
      }
      if ((max & max - 1) === 0) {
        this[_nextState]();
        return (this[_lo] & max - 1) >>> 0;
      }
      let rnd32 = null;
      let result = null;
      do {
        this[_nextState]();
        rnd32 = this[_lo];
        result = rnd32[$remainder](max)[$toInt]();
      } while (dart.notNull(rnd32) - dart.notNull(result) + max >= 4294967296.0);
      return result;
    }
    nextDouble() {
      this[_nextState]();
      let bits26 = (this[_lo] & (1 << 26) - 1) >>> 0;
      this[_nextState]();
      let bits27 = (this[_lo] & (1 << 27) - 1) >>> 0;
      return (bits26 * 134217728 + bits27) / 9007199254740992.0;
    }
    nextBool() {
      this[_nextState]();
      return (this[_lo] & 1) === 0;
    }
  };
  (math._Random.new = function(seed) {
    if (seed == null) dart.nullFailed(I[138], 130, 15, "seed");
    this[_lo] = 0;
    this[_hi] = 0;
    let empty_seed = 0;
    if (dart.notNull(seed) < 0) {
      empty_seed = -1;
    }
    do {
      let low = (dart.notNull(seed) & 4294967295.0) >>> 0;
      seed = ((dart.notNull(seed) - low) / 4294967296.0)[$truncate]();
      let high = (dart.notNull(seed) & 4294967295.0) >>> 0;
      seed = ((dart.notNull(seed) - high) / 4294967296.0)[$truncate]();
      let tmplow = low << 21 >>> 0;
      let tmphigh = (high << 21 | low[$rightShift](11)) >>> 0;
      tmplow = ((~low & 4294967295.0) >>> 0) + tmplow;
      low = (tmplow & 4294967295.0) >>> 0;
      high = ((~high >>> 0) + tmphigh + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
      tmphigh = high[$rightShift](24);
      tmplow = (low[$rightShift](24) | high << 8 >>> 0) >>> 0;
      low = (low ^ tmplow) >>> 0;
      high = (high ^ tmphigh) >>> 0;
      tmplow = low * 265;
      low = (tmplow & 4294967295.0) >>> 0;
      high = (high * 265 + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
      tmphigh = high[$rightShift](14);
      tmplow = (low[$rightShift](14) | high << 18 >>> 0) >>> 0;
      low = (low ^ tmplow) >>> 0;
      high = (high ^ tmphigh) >>> 0;
      tmplow = low * 21;
      low = (tmplow & 4294967295.0) >>> 0;
      high = (high * 21 + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
      tmphigh = high[$rightShift](28);
      tmplow = (low[$rightShift](28) | high << 4 >>> 0) >>> 0;
      low = (low ^ tmplow) >>> 0;
      high = (high ^ tmphigh) >>> 0;
      tmplow = low << 31 >>> 0;
      tmphigh = (high << 31 | low[$rightShift](1)) >>> 0;
      tmplow = tmplow + low;
      low = (tmplow & 4294967295.0) >>> 0;
      high = (high + tmphigh + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
      tmplow = this[_lo] * 1037;
      this[_lo] = (tmplow & 4294967295.0) >>> 0;
      this[_hi] = (this[_hi] * 1037 + ((tmplow - this[_lo]) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
      this[_lo] = (this[_lo] ^ low) >>> 0;
      this[_hi] = (this[_hi] ^ high) >>> 0;
    } while (seed !== empty_seed);
    if (this[_hi] === 0 && this[_lo] === 0) {
      this[_lo] = 23063;
    }
    this[_nextState]();
    this[_nextState]();
    this[_nextState]();
    this[_nextState]();
  }).prototype = math._Random.prototype;
  dart.addTypeTests(math._Random);
  dart.addTypeCaches(math._Random);
  math._Random[dart.implements] = () => [math.Random];
  dart.setMethodSignature(math._Random, () => ({
    __proto__: dart.getMethods(math._Random.__proto__),
    [_nextState]: dart.fnType(dart.void, []),
    nextInt: dart.fnType(core.int, [core.int]),
    nextDouble: dart.fnType(core.double, []),
    nextBool: dart.fnType(core.bool, [])
  }));
  dart.setLibraryUri(math._Random, I[139]);
  dart.setFieldSignature(math._Random, () => ({
    __proto__: dart.getFields(math._Random.__proto__),
    [_lo]: dart.fieldType(core.int),
    [_hi]: dart.fieldType(core.int)
  }));
  dart.defineLazy(math._Random, {
    /*math._Random._POW2_53_D*/get _POW2_53_D() {
      return 9007199254740992.0;
    },
    /*math._Random._POW2_27_D*/get _POW2_27_D() {
      return 134217728;
    },
    /*math._Random._MASK32*/get _MASK32() {
      return 4294967295.0;
    }
  }, false);
  var _buffer$0 = dart.privateName(math, "_buffer");
  var _getRandomBytes = dart.privateName(math, "_getRandomBytes");
  math._JSSecureRandom = class _JSSecureRandom extends core.Object {
    [_getRandomBytes](start, length) {
      if (start == null) dart.nullFailed(I[138], 279, 28, "start");
      if (length == null) dart.nullFailed(I[138], 279, 39, "length");
      crypto.getRandomValues(this[_buffer$0][$buffer][$asUint8List](start, length));
    }
    nextBool() {
      this[_getRandomBytes](0, 1);
      return this[_buffer$0][$getUint8](0)[$isOdd];
    }
    nextDouble() {
      this[_getRandomBytes](1, 7);
      this[_buffer$0][$setUint8](0, 63);
      let highByte = this[_buffer$0][$getUint8](1);
      this[_buffer$0][$setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
      let result = dart.notNull(this[_buffer$0][$getFloat64](0)) - 1.0;
      if ((dart.notNull(highByte) & 16) !== 0) {
        result = result + 1.1102230246251565e-16;
      }
      return result;
    }
    nextInt(max) {
      if (max == null) dart.argumentError(max);
      if (max <= 0 || max > 4294967296.0) {
        dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
      }
      let byteCount = 1;
      if (max > 255) {
        byteCount = byteCount + 1;
        if (max > 65535) {
          byteCount = byteCount + 1;
          if (max > 16777215) {
            byteCount = byteCount + 1;
          }
        }
      }
      this[_buffer$0][$setUint32](0, 0);
      let start = 4 - byteCount;
      let randomLimit = math.pow(256, byteCount)[$toInt]();
      while (true) {
        this[_getRandomBytes](start, byteCount);
        let random = this[_buffer$0][$getUint32](0);
        if ((max & max - 1) === 0) {
          return (dart.notNull(random) & max - 1) >>> 0;
        }
        let result = random[$remainder](max)[$toInt]();
        if (dart.notNull(random) - result + max < randomLimit) {
          return result;
        }
      }
    }
  };
  (math._JSSecureRandom.new = function() {
    this[_buffer$0] = _native_typed_data.NativeByteData.new(8);
    let crypto = self.crypto;
    if (crypto != null) {
      let getRandomValues = crypto.getRandomValues;
      if (getRandomValues != null) {
        return;
      }
    }
    dart.throw(new core.UnsupportedError.new("No source of cryptographically secure random numbers available."));
  }).prototype = math._JSSecureRandom.prototype;
  dart.addTypeTests(math._JSSecureRandom);
  dart.addTypeCaches(math._JSSecureRandom);
  math._JSSecureRandom[dart.implements] = () => [math.Random];
  dart.setMethodSignature(math._JSSecureRandom, () => ({
    __proto__: dart.getMethods(math._JSSecureRandom.__proto__),
    [_getRandomBytes]: dart.fnType(dart.void, [core.int, core.int]),
    nextBool: dart.fnType(core.bool, []),
    nextDouble: dart.fnType(core.double, []),
    nextInt: dart.fnType(core.int, [core.int])
  }));
  dart.setLibraryUri(math._JSSecureRandom, I[139]);
  dart.setFieldSignature(math._JSSecureRandom, () => ({
    __proto__: dart.getFields(math._JSSecureRandom.__proto__),
    [_buffer$0]: dart.finalFieldType(typed_data.ByteData)
  }));
  var x$2 = dart.privateName(math, "Point.x");
  var y$2 = dart.privateName(math, "Point.y");
  const _is_Point_default = Symbol('_is_Point_default');
  math.Point$ = dart.generic(T => {
    var PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
    class Point extends core.Object {
      get x() {
        return this[x$2];
      }
      set x(value) {
        super.x = value;
      }
      get y() {
        return this[y$2];
      }
      set y(value) {
        super.y = value;
      }
      toString() {
        return "Point(" + dart.str(this.x) + ", " + dart.str(this.y) + ")";
      }
      _equals(other) {
        if (other == null) return false;
        return T$0.PointOfnum().is(other) && this.x == other.x && this.y == other.y;
      }
      get hashCode() {
        return _internal.SystemHash.hash2(dart.hashCode(this.x), dart.hashCode(this.y));
      }
      ['+'](other) {
        PointOfT().as(other);
        if (other == null) dart.nullFailed(I[140], 32, 32, "other");
        return new (PointOfT()).new(T.as(dart.notNull(this.x) + dart.notNull(other.x)), T.as(dart.notNull(this.y) + dart.notNull(other.y)));
      }
      ['-'](other) {
        PointOfT().as(other);
        if (other == null) dart.nullFailed(I[140], 39, 32, "other");
        return new (PointOfT()).new(T.as(dart.notNull(this.x) - dart.notNull(other.x)), T.as(dart.notNull(this.y) - dart.notNull(other.y)));
      }
      ['*'](factor) {
        if (factor == null) dart.nullFailed(I[140], 50, 37, "factor");
        return new (PointOfT()).new(T.as(dart.notNull(this.x) * dart.notNull(factor)), T.as(dart.notNull(this.y) * dart.notNull(factor)));
      }
      get magnitude() {
        return math.sqrt(dart.notNull(this.x) * dart.notNull(this.x) + dart.notNull(this.y) * dart.notNull(this.y));
      }
      distanceTo(other) {
        PointOfT().as(other);
        if (other == null) dart.nullFailed(I[140], 59, 30, "other");
        let dx = dart.notNull(this.x) - dart.notNull(other.x);
        let dy = dart.notNull(this.y) - dart.notNull(other.y);
        return math.sqrt(dx * dx + dy * dy);
      }
      squaredDistanceTo(other) {
        PointOfT().as(other);
        if (other == null) dart.nullFailed(I[140], 69, 32, "other");
        let dx = dart.notNull(this.x) - dart.notNull(other.x);
        let dy = dart.notNull(this.y) - dart.notNull(other.y);
        return T.as(dx * dx + dy * dy);
      }
    }
    (Point.new = function(x, y) {
      if (x == null) dart.nullFailed(I[140], 13, 17, "x");
      if (y == null) dart.nullFailed(I[140], 13, 22, "y");
      this[x$2] = x;
      this[y$2] = y;
      ;
    }).prototype = Point.prototype;
    dart.addTypeTests(Point);
    Point.prototype[_is_Point_default] = true;
    dart.addTypeCaches(Point);
    dart.setMethodSignature(Point, () => ({
      __proto__: dart.getMethods(Point.__proto__),
      '+': dart.fnType(math.Point$(T), [dart.nullable(core.Object)]),
      '-': dart.fnType(math.Point$(T), [dart.nullable(core.Object)]),
      '*': dart.fnType(math.Point$(T), [core.num]),
      distanceTo: dart.fnType(core.double, [dart.nullable(core.Object)]),
      squaredDistanceTo: dart.fnType(T, [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(Point, () => ({
      __proto__: dart.getGetters(Point.__proto__),
      magnitude: core.double
    }));
    dart.setLibraryUri(Point, I[139]);
    dart.setFieldSignature(Point, () => ({
      __proto__: dart.getFields(Point.__proto__),
      x: dart.finalFieldType(T),
      y: dart.finalFieldType(T)
    }));
    dart.defineExtensionMethods(Point, ['toString', '_equals']);
    dart.defineExtensionAccessors(Point, ['hashCode']);
    return Point;
  });
  math.Point = math.Point$();
  dart.addTypeTests(math.Point, _is_Point_default);
  math.Random = class Random extends core.Object {
    static new(seed = null) {
      return seed == null ? C[212] || CT.C212 : new math._Random.new(seed);
    }
    static secure() {
      let t219;
      t219 = math.Random._secureRandom;
      return t219 == null ? math.Random._secureRandom = new math._JSSecureRandom.new() : t219;
    }
  };
  (math.Random[dart.mixinNew] = function() {
  }).prototype = math.Random.prototype;
  dart.addTypeTests(math.Random);
  dart.addTypeCaches(math.Random);
  dart.setLibraryUri(math.Random, I[139]);
  dart.defineLazy(math.Random, {
    /*math.Random._secureRandom*/get _secureRandom() {
      return null;
    },
    set _secureRandom(_) {}
  }, false);
  const _is__RectangleBase_default = Symbol('_is__RectangleBase_default');
  math._RectangleBase$ = dart.generic(T => {
    var RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
    var PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
    class _RectangleBase extends core.Object {
      get right() {
        return T.as(dart.notNull(this[$left]) + dart.notNull(this[$width]));
      }
      get bottom() {
        return T.as(dart.notNull(this[$top]) + dart.notNull(this[$height]));
      }
      toString() {
        return "Rectangle (" + dart.str(this[$left]) + ", " + dart.str(this[$top]) + ") " + dart.str(this[$width]) + " x " + dart.str(this[$height]);
      }
      _equals(other) {
        if (other == null) return false;
        return T$0.RectangleOfnum().is(other) && this[$left] == other[$left] && this[$top] == other[$top] && this[$right] == other[$right] && this[$bottom] == other[$bottom];
      }
      get hashCode() {
        return _internal.SystemHash.hash4(dart.hashCode(this[$left]), dart.hashCode(this[$top]), dart.hashCode(this[$right]), dart.hashCode(this[$bottom]));
      }
      intersection(other) {
        RectangleOfT().as(other);
        if (other == null) dart.nullFailed(I[141], 61, 43, "other");
        let x0 = math.max(T, this[$left], other[$left]);
        let x1 = math.min(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
        if (x0 <= x1) {
          let y0 = math.max(T, this[$top], other[$top]);
          let y1 = math.min(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
          if (y0 <= y1) {
            return new (RectangleOfT()).new(x0, y0, T.as(x1 - x0), T.as(y1 - y0));
          }
        }
        return null;
      }
      intersects(other) {
        if (other == null) dart.nullFailed(I[141], 77, 34, "other");
        return dart.notNull(this[$left]) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(this[$top]) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
      }
      boundingBox(other) {
        RectangleOfT().as(other);
        if (other == null) dart.nullFailed(I[141], 85, 41, "other");
        let right = math.max(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
        let bottom = math.max(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
        let left = math.min(T, this[$left], other[$left]);
        let top = math.min(T, this[$top], other[$top]);
        return new (RectangleOfT()).new(left, top, T.as(right - left), T.as(bottom - top));
      }
      containsRectangle(another) {
        if (another == null) dart.nullFailed(I[141], 96, 41, "another");
        return dart.notNull(this[$left]) <= dart.notNull(another[$left]) && dart.notNull(this[$left]) + dart.notNull(this[$width]) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this[$top]) <= dart.notNull(another[$top]) && dart.notNull(this[$top]) + dart.notNull(this[$height]) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
      }
      containsPoint(another) {
        if (another == null) dart.nullFailed(I[141], 104, 33, "another");
        return dart.notNull(another.x) >= dart.notNull(this[$left]) && dart.notNull(another.x) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(another.y) >= dart.notNull(this[$top]) && dart.notNull(another.y) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
      }
      get topLeft() {
        return new (PointOfT()).new(this[$left], this[$top]);
      }
      get topRight() {
        return new (PointOfT()).new(T.as(dart.notNull(this[$left]) + dart.notNull(this[$width])), this[$top]);
      }
      get bottomRight() {
        return new (PointOfT()).new(T.as(dart.notNull(this[$left]) + dart.notNull(this[$width])), T.as(dart.notNull(this[$top]) + dart.notNull(this[$height])));
      }
      get bottomLeft() {
        return new (PointOfT()).new(this[$left], T.as(dart.notNull(this[$top]) + dart.notNull(this[$height])));
      }
    }
    (_RectangleBase.new = function() {
      ;
    }).prototype = _RectangleBase.prototype;
    dart.addTypeTests(_RectangleBase);
    _RectangleBase.prototype[_is__RectangleBase_default] = true;
    dart.addTypeCaches(_RectangleBase);
    dart.setMethodSignature(_RectangleBase, () => ({
      __proto__: dart.getMethods(_RectangleBase.__proto__),
      intersection: dart.fnType(dart.nullable(math.Rectangle$(T)), [dart.nullable(core.Object)]),
      [$intersection]: dart.fnType(dart.nullable(math.Rectangle$(T)), [dart.nullable(core.Object)]),
      intersects: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
      [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
      boundingBox: dart.fnType(math.Rectangle$(T), [dart.nullable(core.Object)]),
      [$boundingBox]: dart.fnType(math.Rectangle$(T), [dart.nullable(core.Object)]),
      containsRectangle: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
      [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
      containsPoint: dart.fnType(core.bool, [math.Point$(core.num)]),
      [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
    }));
    dart.setGetterSignature(_RectangleBase, () => ({
      __proto__: dart.getGetters(_RectangleBase.__proto__),
      right: T,
      [$right]: T,
      bottom: T,
      [$bottom]: T,
      topLeft: math.Point$(T),
      [$topLeft]: math.Point$(T),
      topRight: math.Point$(T),
      [$topRight]: math.Point$(T),
      bottomRight: math.Point$(T),
      [$bottomRight]: math.Point$(T),
      bottomLeft: math.Point$(T),
      [$bottomLeft]: math.Point$(T)
    }));
    dart.setLibraryUri(_RectangleBase, I[139]);
    dart.defineExtensionMethods(_RectangleBase, [
      'toString',
      '_equals',
      'intersection',
      'intersects',
      'boundingBox',
      'containsRectangle',
      'containsPoint'
    ]);
    dart.defineExtensionAccessors(_RectangleBase, [
      'right',
      'bottom',
      'hashCode',
      'topLeft',
      'topRight',
      'bottomRight',
      'bottomLeft'
    ]);
    return _RectangleBase;
  });
  math._RectangleBase = math._RectangleBase$();
  dart.addTypeTests(math._RectangleBase, _is__RectangleBase_default);
  var left$ = dart.privateName(math, "Rectangle.left");
  var top$ = dart.privateName(math, "Rectangle.top");
  var width$ = dart.privateName(math, "Rectangle.width");
  var height$ = dart.privateName(math, "Rectangle.height");
  const _is_Rectangle_default = Symbol('_is_Rectangle_default');
  math.Rectangle$ = dart.generic(T => {
    class Rectangle extends math._RectangleBase$(T) {
      get left() {
        return this[left$];
      }
      set left(value) {
        super.left = value;
      }
      get top() {
        return this[top$];
      }
      set top(value) {
        super.top = value;
      }
      get width() {
        return this[width$];
      }
      set width(value) {
        super.width = value;
      }
      get height() {
        return this[height$];
      }
      set height(value) {
        super.height = value;
      }
      static fromPoints(a, b) {
        if (a == null) dart.nullFailed(I[141], 154, 41, "a");
        if (b == null) dart.nullFailed(I[141], 154, 53, "b");
        let left = math.min(T, a.x, b.x);
        let width = T.as(math.max(T, a.x, b.x) - left);
        let top = math.min(T, a.y, b.y);
        let height = T.as(math.max(T, a.y, b.y) - top);
        return new (math.Rectangle$(T)).new(left, top, width, height);
      }
    }
    (Rectangle.new = function(left, top, width, height) {
      if (left == null) dart.nullFailed(I[141], 138, 24, "left");
      if (top == null) dart.nullFailed(I[141], 138, 35, "top");
      if (width == null) dart.nullFailed(I[141], 138, 42, "width");
      if (height == null) dart.nullFailed(I[141], 138, 51, "height");
      this[left$] = left;
      this[top$] = top;
      this[width$] = T.as(dart.notNull(width) < 0 ? -dart.notNull(width) * 0 : width);
      this[height$] = T.as(dart.notNull(height) < 0 ? -dart.notNull(height) * 0 : height);
      Rectangle.__proto__.new.call(this);
      ;
    }).prototype = Rectangle.prototype;
    dart.addTypeTests(Rectangle);
    Rectangle.prototype[_is_Rectangle_default] = true;
    dart.addTypeCaches(Rectangle);
    dart.setLibraryUri(Rectangle, I[139]);
    dart.setFieldSignature(Rectangle, () => ({
      __proto__: dart.getFields(Rectangle.__proto__),
      left: dart.finalFieldType(T),
      top: dart.finalFieldType(T),
      width: dart.finalFieldType(T),
      height: dart.finalFieldType(T)
    }));
    dart.defineExtensionAccessors(Rectangle, ['left', 'top', 'width', 'height']);
    return Rectangle;
  });
  math.Rectangle = math.Rectangle$();
  dart.addTypeTests(math.Rectangle, _is_Rectangle_default);
  var left$0 = dart.privateName(math, "MutableRectangle.left");
  var top$0 = dart.privateName(math, "MutableRectangle.top");
  var _width = dart.privateName(math, "_width");
  var _height = dart.privateName(math, "_height");
  const _is_MutableRectangle_default = Symbol('_is_MutableRectangle_default');
  math.MutableRectangle$ = dart.generic(T => {
    class MutableRectangle extends math._RectangleBase$(T) {
      get left() {
        return this[left$0];
      }
      set left(value) {
        this[left$0] = T.as(value);
      }
      get top() {
        return this[top$0];
      }
      set top(value) {
        this[top$0] = T.as(value);
      }
      static fromPoints(a, b) {
        if (a == null) dart.nullFailed(I[141], 205, 48, "a");
        if (b == null) dart.nullFailed(I[141], 205, 60, "b");
        let left = math.min(T, a.x, b.x);
        let width = T.as(math.max(T, a.x, b.x) - left);
        let top = math.min(T, a.y, b.y);
        let height = T.as(math.max(T, a.y, b.y) - top);
        return new (math.MutableRectangle$(T)).new(left, top, width, height);
      }
      get width() {
        return this[_width];
      }
      set width(width) {
        T.as(width);
        if (width == null) dart.nullFailed(I[141], 222, 15, "width");
        if (dart.notNull(width) < 0) width = math._clampToZero(T, width);
        this[_width] = width;
      }
      get height() {
        return this[_height];
      }
      set height(height) {
        T.as(height);
        if (height == null) dart.nullFailed(I[141], 236, 16, "height");
        if (dart.notNull(height) < 0) height = math._clampToZero(T, height);
        this[_height] = height;
      }
    }
    (MutableRectangle.new = function(left, top, width, height) {
      if (left == null) dart.nullFailed(I[141], 191, 25, "left");
      if (top == null) dart.nullFailed(I[141], 191, 36, "top");
      if (width == null) dart.nullFailed(I[141], 191, 43, "width");
      if (height == null) dart.nullFailed(I[141], 191, 52, "height");
      this[left$0] = left;
      this[top$0] = top;
      this[_width] = dart.notNull(width) < 0 ? math._clampToZero(T, width) : width;
      this[_height] = dart.notNull(height) < 0 ? math._clampToZero(T, height) : height;
      MutableRectangle.__proto__.new.call(this);
      ;
    }).prototype = MutableRectangle.prototype;
    dart.addTypeTests(MutableRectangle);
    MutableRectangle.prototype[_is_MutableRectangle_default] = true;
    dart.addTypeCaches(MutableRectangle);
    MutableRectangle[dart.implements] = () => [math.Rectangle$(T)];
    dart.setGetterSignature(MutableRectangle, () => ({
      __proto__: dart.getGetters(MutableRectangle.__proto__),
      width: T,
      [$width]: T,
      height: T,
      [$height]: T
    }));
    dart.setSetterSignature(MutableRectangle, () => ({
      __proto__: dart.getSetters(MutableRectangle.__proto__),
      width: dart.nullable(core.Object),
      [$width]: dart.nullable(core.Object),
      height: dart.nullable(core.Object),
      [$height]: dart.nullable(core.Object)
    }));
    dart.setLibraryUri(MutableRectangle, I[139]);
    dart.setFieldSignature(MutableRectangle, () => ({
      __proto__: dart.getFields(MutableRectangle.__proto__),
      left: dart.fieldType(T),
      top: dart.fieldType(T),
      [_width]: dart.fieldType(T),
      [_height]: dart.fieldType(T)
    }));
    dart.defineExtensionAccessors(MutableRectangle, ['left', 'top', 'width', 'height']);
    return MutableRectangle;
  });
  math.MutableRectangle = math.MutableRectangle$();
  dart.addTypeTests(math.MutableRectangle, _is_MutableRectangle_default);
  math.min = function min(T, a, b) {
    if (a == null) dart.argumentError(a);
    if (b == null) dart.argumentError(b);
    return Math.min(a, b);
  };
  math.max = function max(T, a, b) {
    if (a == null) dart.argumentError(a);
    if (b == null) dart.argumentError(b);
    return Math.max(a, b);
  };
  math.atan2 = function atan2(a, b) {
    if (a == null) dart.argumentError(a);
    if (b == null) dart.argumentError(b);
    return Math.atan2(a, b);
  };
  math.pow = function pow(x, exponent) {
    if (x == null) dart.argumentError(x);
    if (exponent == null) dart.argumentError(exponent);
    return Math.pow(x, exponent);
  };
  math.sin = function sin(radians) {
    if (radians == null) dart.argumentError(radians);
    return Math.sin(radians);
  };
  math.cos = function cos(radians) {
    if (radians == null) dart.argumentError(radians);
    return Math.cos(radians);
  };
  math.tan = function tan(radians) {
    if (radians == null) dart.argumentError(radians);
    return Math.tan(radians);
  };
  math.acos = function acos(x) {
    if (x == null) dart.argumentError(x);
    return Math.acos(x);
  };
  math.asin = function asin(x) {
    if (x == null) dart.argumentError(x);
    return Math.asin(x);
  };
  math.atan = function atan(x) {
    if (x == null) dart.argumentError(x);
    return Math.atan(x);
  };
  math.sqrt = function sqrt(x) {
    if (x == null) dart.argumentError(x);
    return Math.sqrt(x);
  };
  math.exp = function exp(x) {
    if (x == null) dart.argumentError(x);
    return Math.exp(x);
  };
  math.log = function log$(x) {
    if (x == null) dart.argumentError(x);
    return Math.log(x);
  };
  math._clampToZero = function _clampToZero(T, value) {
    if (value == null) dart.nullFailed(I[141], 245, 33, "value");
    if (!(dart.notNull(value) < 0)) dart.assertFailed(null, I[141], 246, 10, "value < 0");
    return T.as(-dart.notNull(value) * 0);
  };
  dart.defineLazy(math, {
    /*math._POW2_32*/get _POW2_32() {
      return 4294967296.0;
    },
    /*math.e*/get e() {
      return 2.718281828459045;
    },
    /*math.ln10*/get ln10() {
      return 2.302585092994046;
    },
    /*math.ln2*/get ln2() {
      return 0.6931471805599453;
    },
    /*math.log2e*/get log2e() {
      return 1.4426950408889634;
    },
    /*math.log10e*/get log10e() {
      return 0.4342944819032518;
    },
    /*math.pi*/get pi() {
      return 3.141592653589793;
    },
    /*math.sqrt1_2*/get sqrt1_2() {
      return 0.7071067811865476;
    },
    /*math.sqrt2*/get sqrt2() {
      return 1.4142135623730951;
    }
  }, false);
  typed_data.ByteBuffer = class ByteBuffer extends core.Object {};
  (typed_data.ByteBuffer.new = function() {
    ;
  }).prototype = typed_data.ByteBuffer.prototype;
  dart.addTypeTests(typed_data.ByteBuffer);
  dart.addTypeCaches(typed_data.ByteBuffer);
  dart.setLibraryUri(typed_data.ByteBuffer, I[60]);
  typed_data.TypedData = class TypedData extends core.Object {};
  (typed_data.TypedData.new = function() {
    ;
  }).prototype = typed_data.TypedData.prototype;
  dart.addTypeTests(typed_data.TypedData);
  dart.addTypeCaches(typed_data.TypedData);
  dart.setLibraryUri(typed_data.TypedData, I[60]);
  typed_data._TypedIntList = class _TypedIntList extends typed_data.TypedData {};
  (typed_data._TypedIntList.new = function() {
    ;
  }).prototype = typed_data._TypedIntList.prototype;
  dart.addTypeTests(typed_data._TypedIntList);
  dart.addTypeCaches(typed_data._TypedIntList);
  dart.setLibraryUri(typed_data._TypedIntList, I[60]);
  typed_data._TypedFloatList = class _TypedFloatList extends typed_data.TypedData {};
  (typed_data._TypedFloatList.new = function() {
    ;
  }).prototype = typed_data._TypedFloatList.prototype;
  dart.addTypeTests(typed_data._TypedFloatList);
  dart.addTypeCaches(typed_data._TypedFloatList);
  dart.setLibraryUri(typed_data._TypedFloatList, I[60]);
  var _littleEndian = dart.privateName(typed_data, "_littleEndian");
  const _littleEndian$ = Endian__littleEndian;
  typed_data.Endian = class Endian extends core.Object {
    get [_littleEndian]() {
      return this[_littleEndian$];
    }
    set [_littleEndian](value) {
      super[_littleEndian] = value;
    }
  };
  (typed_data.Endian.__ = function(_littleEndian) {
    if (_littleEndian == null) dart.nullFailed(I[142], 375, 23, "_littleEndian");
    this[_littleEndian$] = _littleEndian;
    ;
  }).prototype = typed_data.Endian.prototype;
  dart.addTypeTests(typed_data.Endian);
  dart.addTypeCaches(typed_data.Endian);
  dart.setLibraryUri(typed_data.Endian, I[60]);
  dart.setFieldSignature(typed_data.Endian, () => ({
    __proto__: dart.getFields(typed_data.Endian.__proto__),
    [_littleEndian]: dart.finalFieldType(core.bool)
  }));
  dart.defineLazy(typed_data.Endian, {
    /*typed_data.Endian.big*/get big() {
      return C[36] || CT.C36;
    },
    /*typed_data.Endian.little*/get little() {
      return C[213] || CT.C213;
    },
    /*typed_data.Endian.host*/get host() {
      return typed_data.ByteData.view(_native_typed_data.NativeUint16List.fromList(T$.JSArrayOfint().of([1]))[$buffer])[$getInt8](0) === 1 ? typed_data.Endian.little : typed_data.Endian.big;
    }
  }, false);
  typed_data.ByteData = class ByteData extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 452, 36, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 453, 12, "offsetInBytes");
      return buffer[$asByteData](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 474, 42, "data");
      if (start == null) dart.nullFailed(I[142], 474, 53, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      return data[$buffer][$asByteData](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
    }
  };
  (typed_data.ByteData[dart.mixinNew] = function() {
  }).prototype = typed_data.ByteData.prototype;
  dart.addTypeTests(typed_data.ByteData);
  dart.addTypeCaches(typed_data.ByteData);
  typed_data.ByteData[dart.implements] = () => [typed_data.TypedData];
  dart.setLibraryUri(typed_data.ByteData, I[60]);
  typed_data.Int8List = class Int8List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 748, 36, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 749, 12, "offsetInBytes");
      return buffer[$asInt8List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 770, 42, "data");
      if (start == null) dart.nullFailed(I[142], 770, 53, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      return data[$buffer][$asInt8List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Int8List[dart.mixinNew] = function() {
  }).prototype = typed_data.Int8List.prototype;
  typed_data.Int8List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Int8List);
  dart.addTypeCaches(typed_data.Int8List);
  typed_data.Int8List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Int8List, I[60]);
  dart.defineLazy(typed_data.Int8List, {
    /*typed_data.Int8List.bytesPerElement*/get bytesPerElement() {
      return 1;
    }
  }, false);
  typed_data.Uint8List = class Uint8List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 859, 37, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 860, 12, "offsetInBytes");
      return buffer[$asUint8List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 881, 43, "data");
      if (start == null) dart.nullFailed(I[142], 881, 54, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      return data[$buffer][$asUint8List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Uint8List[dart.mixinNew] = function() {
  }).prototype = typed_data.Uint8List.prototype;
  typed_data.Uint8List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Uint8List);
  dart.addTypeCaches(typed_data.Uint8List);
  typed_data.Uint8List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Uint8List, I[60]);
  dart.defineLazy(typed_data.Uint8List, {
    /*typed_data.Uint8List.bytesPerElement*/get bytesPerElement() {
      return 1;
    }
  }, false);
  typed_data.Uint8ClampedList = class Uint8ClampedList extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 978, 44, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 979, 12, "offsetInBytes");
      return buffer[$asUint8ClampedList](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1000, 50, "data");
      if (start == null) dart.nullFailed(I[142], 1001, 12, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      return data[$buffer][$asUint8ClampedList](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Uint8ClampedList[dart.mixinNew] = function() {
  }).prototype = typed_data.Uint8ClampedList.prototype;
  typed_data.Uint8ClampedList.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Uint8ClampedList);
  dart.addTypeCaches(typed_data.Uint8ClampedList);
  typed_data.Uint8ClampedList[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Uint8ClampedList, I[60]);
  dart.defineLazy(typed_data.Uint8ClampedList, {
    /*typed_data.Uint8ClampedList.bytesPerElement*/get bytesPerElement() {
      return 1;
    }
  }, false);
  typed_data.Int16List = class Int16List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1094, 37, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1095, 12, "offsetInBytes");
      return buffer[$asInt16List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1119, 43, "data");
      if (start == null) dart.nullFailed(I[142], 1119, 54, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](2) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(2)));
      }
      return data[$buffer][$asInt16List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 2)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Int16List[dart.mixinNew] = function() {
  }).prototype = typed_data.Int16List.prototype;
  typed_data.Int16List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Int16List);
  dart.addTypeCaches(typed_data.Int16List);
  typed_data.Int16List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Int16List, I[60]);
  dart.defineLazy(typed_data.Int16List, {
    /*typed_data.Int16List.bytesPerElement*/get bytesPerElement() {
      return 2;
    }
  }, false);
  typed_data.Uint16List = class Uint16List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1218, 38, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1219, 12, "offsetInBytes");
      return buffer[$asUint16List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1243, 44, "data");
      if (start == null) dart.nullFailed(I[142], 1243, 55, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](2) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(2)));
      }
      return data[$buffer][$asUint16List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 2)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Uint16List[dart.mixinNew] = function() {
  }).prototype = typed_data.Uint16List.prototype;
  typed_data.Uint16List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Uint16List);
  dart.addTypeCaches(typed_data.Uint16List);
  typed_data.Uint16List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Uint16List, I[60]);
  dart.defineLazy(typed_data.Uint16List, {
    /*typed_data.Uint16List.bytesPerElement*/get bytesPerElement() {
      return 2;
    }
  }, false);
  typed_data.Int32List = class Int32List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1341, 37, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1342, 12, "offsetInBytes");
      return buffer[$asInt32List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1366, 43, "data");
      if (start == null) dart.nullFailed(I[142], 1366, 54, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](4) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
      }
      return data[$buffer][$asInt32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Int32List[dart.mixinNew] = function() {
  }).prototype = typed_data.Int32List.prototype;
  typed_data.Int32List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Int32List);
  dart.addTypeCaches(typed_data.Int32List);
  typed_data.Int32List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Int32List, I[60]);
  dart.defineLazy(typed_data.Int32List, {
    /*typed_data.Int32List.bytesPerElement*/get bytesPerElement() {
      return 4;
    }
  }, false);
  typed_data.Uint32List = class Uint32List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1465, 38, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1466, 12, "offsetInBytes");
      return buffer[$asUint32List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1490, 44, "data");
      if (start == null) dart.nullFailed(I[142], 1490, 55, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](4) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
      }
      return data[$buffer][$asUint32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Uint32List[dart.mixinNew] = function() {
  }).prototype = typed_data.Uint32List.prototype;
  typed_data.Uint32List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Uint32List);
  dart.addTypeCaches(typed_data.Uint32List);
  typed_data.Uint32List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Uint32List, I[60]);
  dart.defineLazy(typed_data.Uint32List, {
    /*typed_data.Uint32List.bytesPerElement*/get bytesPerElement() {
      return 4;
    }
  }, false);
  typed_data.Int64List = class Int64List extends core.Object {
    static new(length) {
      if (length == null) dart.nullFailed(I[143], 101, 25, "length");
      dart.throw(new core.UnsupportedError.new("Int64List not supported on the web."));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[143], 106, 40, "elements");
      dart.throw(new core.UnsupportedError.new("Int64List not supported on the web."));
    }
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1588, 37, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1589, 12, "offsetInBytes");
      return buffer[$asInt64List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1613, 43, "data");
      if (start == null) dart.nullFailed(I[142], 1613, 54, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](8) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
      }
      return data[$buffer][$asInt64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Int64List[dart.mixinNew] = function() {
  }).prototype = typed_data.Int64List.prototype;
  typed_data.Int64List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Int64List);
  dart.addTypeCaches(typed_data.Int64List);
  typed_data.Int64List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Int64List, I[60]);
  dart.defineLazy(typed_data.Int64List, {
    /*typed_data.Int64List.bytesPerElement*/get bytesPerElement() {
      return 8;
    }
  }, false);
  typed_data.Uint64List = class Uint64List extends core.Object {
    static new(length) {
      if (length == null) dart.nullFailed(I[143], 114, 26, "length");
      dart.throw(new core.UnsupportedError.new("Uint64List not supported on the web."));
    }
    static fromList(elements) {
      if (elements == null) dart.nullFailed(I[143], 119, 41, "elements");
      dart.throw(new core.UnsupportedError.new("Uint64List not supported on the web."));
    }
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1712, 38, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1713, 12, "offsetInBytes");
      return buffer[$asUint64List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1737, 44, "data");
      if (start == null) dart.nullFailed(I[142], 1737, 55, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](8) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
      }
      return data[$buffer][$asUint64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Uint64List[dart.mixinNew] = function() {
  }).prototype = typed_data.Uint64List.prototype;
  typed_data.Uint64List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Uint64List);
  dart.addTypeCaches(typed_data.Uint64List);
  typed_data.Uint64List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
  dart.setLibraryUri(typed_data.Uint64List, I[60]);
  dart.defineLazy(typed_data.Uint64List, {
    /*typed_data.Uint64List.bytesPerElement*/get bytesPerElement() {
      return 8;
    }
  }, false);
  typed_data.Float32List = class Float32List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1836, 39, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1837, 12, "offsetInBytes");
      return buffer[$asFloat32List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1861, 45, "data");
      if (start == null) dart.nullFailed(I[142], 1861, 56, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](4) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
      }
      return data[$buffer][$asFloat32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Float32List[dart.mixinNew] = function() {
  }).prototype = typed_data.Float32List.prototype;
  typed_data.Float32List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Float32List);
  dart.addTypeCaches(typed_data.Float32List);
  typed_data.Float32List[dart.implements] = () => [core.List$(core.double), typed_data._TypedFloatList];
  dart.setLibraryUri(typed_data.Float32List, I[60]);
  dart.defineLazy(typed_data.Float32List, {
    /*typed_data.Float32List.bytesPerElement*/get bytesPerElement() {
      return 4;
    }
  }, false);
  typed_data.Float64List = class Float64List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 1953, 39, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 1954, 12, "offsetInBytes");
      return buffer[$asFloat64List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 1978, 45, "data");
      if (start == null) dart.nullFailed(I[142], 1978, 56, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](8) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
      }
      return data[$buffer][$asFloat64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Float64List[dart.mixinNew] = function() {
  }).prototype = typed_data.Float64List.prototype;
  typed_data.Float64List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Float64List);
  dart.addTypeCaches(typed_data.Float64List);
  typed_data.Float64List[dart.implements] = () => [core.List$(core.double), typed_data._TypedFloatList];
  dart.setLibraryUri(typed_data.Float64List, I[60]);
  dart.defineLazy(typed_data.Float64List, {
    /*typed_data.Float64List.bytesPerElement*/get bytesPerElement() {
      return 8;
    }
  }, false);
  typed_data.Float32x4List = class Float32x4List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 2069, 41, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 2070, 12, "offsetInBytes");
      return buffer[$asFloat32x4List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 2094, 47, "data");
      if (start == null) dart.nullFailed(I[142], 2094, 58, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](16) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
      }
      return data[$buffer][$asFloat32x4List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Float32x4List[dart.mixinNew] = function() {
  }).prototype = typed_data.Float32x4List.prototype;
  typed_data.Float32x4List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Float32x4List);
  dart.addTypeCaches(typed_data.Float32x4List);
  typed_data.Float32x4List[dart.implements] = () => [core.List$(typed_data.Float32x4), typed_data.TypedData];
  dart.setLibraryUri(typed_data.Float32x4List, I[60]);
  dart.defineLazy(typed_data.Float32x4List, {
    /*typed_data.Float32x4List.bytesPerElement*/get bytesPerElement() {
      return 16;
    }
  }, false);
  typed_data.Int32x4List = class Int32x4List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 2191, 39, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 2192, 12, "offsetInBytes");
      return buffer[$asInt32x4List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 2216, 45, "data");
      if (start == null) dart.nullFailed(I[142], 2216, 56, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](16) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
      }
      return data[$buffer][$asInt32x4List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Int32x4List[dart.mixinNew] = function() {
  }).prototype = typed_data.Int32x4List.prototype;
  typed_data.Int32x4List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Int32x4List);
  dart.addTypeCaches(typed_data.Int32x4List);
  typed_data.Int32x4List[dart.implements] = () => [core.List$(typed_data.Int32x4), typed_data.TypedData];
  dart.setLibraryUri(typed_data.Int32x4List, I[60]);
  dart.defineLazy(typed_data.Int32x4List, {
    /*typed_data.Int32x4List.bytesPerElement*/get bytesPerElement() {
      return 16;
    }
  }, false);
  typed_data.Float64x2List = class Float64x2List extends core.Object {
    static view(buffer, offsetInBytes = 0, length = null) {
      if (buffer == null) dart.nullFailed(I[142], 2319, 41, "buffer");
      if (offsetInBytes == null) dart.nullFailed(I[142], 2320, 12, "offsetInBytes");
      return buffer[$asFloat64x2List](offsetInBytes, length);
    }
    static sublistView(data, start = 0, end = null) {
      if (data == null) dart.nullFailed(I[142], 2344, 47, "data");
      if (start == null) dart.nullFailed(I[142], 2344, 58, "start");
      let elementSize = data[$elementSizeInBytes];
      end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
      if (end == null) dart.throw("unreachable");
      let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
      if (byteLength[$modulo](16) !== 0) {
        dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
      }
      return data[$buffer][$asFloat64x2List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (typed_data.Float64x2List[dart.mixinNew] = function() {
  }).prototype = typed_data.Float64x2List.prototype;
  typed_data.Float64x2List.prototype[dart.isList] = true;
  dart.addTypeTests(typed_data.Float64x2List);
  dart.addTypeCaches(typed_data.Float64x2List);
  typed_data.Float64x2List[dart.implements] = () => [core.List$(typed_data.Float64x2), typed_data.TypedData];
  dart.setLibraryUri(typed_data.Float64x2List, I[60]);
  dart.defineLazy(typed_data.Float64x2List, {
    /*typed_data.Float64x2List.bytesPerElement*/get bytesPerElement() {
      return 16;
    }
  }, false);
  var _data$ = dart.privateName(typed_data, "_data");
  typed_data.UnmodifiableByteBufferView = class UnmodifiableByteBufferView extends core.Object {
    get lengthInBytes() {
      return this[_data$][$lengthInBytes];
    }
    asUint8List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 15, 30, "offsetInBytes");
      return new typed_data.UnmodifiableUint8ListView.new(this[_data$][$asUint8List](offsetInBytes, length));
    }
    asInt8List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 18, 28, "offsetInBytes");
      return new typed_data.UnmodifiableInt8ListView.new(this[_data$][$asInt8List](offsetInBytes, length));
    }
    asUint8ClampedList(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 21, 44, "offsetInBytes");
      return new typed_data.UnmodifiableUint8ClampedListView.new(this[_data$][$asUint8ClampedList](offsetInBytes, length));
    }
    asUint16List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 25, 32, "offsetInBytes");
      return new typed_data.UnmodifiableUint16ListView.new(this[_data$][$asUint16List](offsetInBytes, length));
    }
    asInt16List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 28, 30, "offsetInBytes");
      return new typed_data.UnmodifiableInt16ListView.new(this[_data$][$asInt16List](offsetInBytes, length));
    }
    asUint32List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 31, 32, "offsetInBytes");
      return new typed_data.UnmodifiableUint32ListView.new(this[_data$][$asUint32List](offsetInBytes, length));
    }
    asInt32List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 34, 30, "offsetInBytes");
      return new typed_data.UnmodifiableInt32ListView.new(this[_data$][$asInt32List](offsetInBytes, length));
    }
    asUint64List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 37, 32, "offsetInBytes");
      return new typed_data.UnmodifiableUint64ListView.new(this[_data$][$asUint64List](offsetInBytes, length));
    }
    asInt64List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 40, 30, "offsetInBytes");
      return new typed_data.UnmodifiableInt64ListView.new(this[_data$][$asInt64List](offsetInBytes, length));
    }
    asInt32x4List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 43, 34, "offsetInBytes");
      return new typed_data.UnmodifiableInt32x4ListView.new(this[_data$][$asInt32x4List](offsetInBytes, length));
    }
    asFloat32List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 47, 34, "offsetInBytes");
      return new typed_data.UnmodifiableFloat32ListView.new(this[_data$][$asFloat32List](offsetInBytes, length));
    }
    asFloat64List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 51, 34, "offsetInBytes");
      return new typed_data.UnmodifiableFloat64ListView.new(this[_data$][$asFloat64List](offsetInBytes, length));
    }
    asFloat32x4List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 55, 38, "offsetInBytes");
      return new typed_data.UnmodifiableFloat32x4ListView.new(this[_data$][$asFloat32x4List](offsetInBytes, length));
    }
    asFloat64x2List(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 59, 38, "offsetInBytes");
      return new typed_data.UnmodifiableFloat64x2ListView.new(this[_data$][$asFloat64x2List](offsetInBytes, length));
    }
    asByteData(offsetInBytes = 0, length = null) {
      if (offsetInBytes == null) dart.nullFailed(I[144], 63, 28, "offsetInBytes");
      return new typed_data.UnmodifiableByteDataView.new(this[_data$][$asByteData](offsetInBytes, length));
    }
  };
  (typed_data.UnmodifiableByteBufferView.new = function(data) {
    if (data == null) dart.nullFailed(I[144], 11, 41, "data");
    this[_data$] = data;
    ;
  }).prototype = typed_data.UnmodifiableByteBufferView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableByteBufferView);
  dart.addTypeCaches(typed_data.UnmodifiableByteBufferView);
  typed_data.UnmodifiableByteBufferView[dart.implements] = () => [typed_data.ByteBuffer];
  dart.setMethodSignature(typed_data.UnmodifiableByteBufferView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableByteBufferView.__proto__),
    asUint8List: dart.fnType(typed_data.Uint8List, [], [core.int, dart.nullable(core.int)]),
    [$asUint8List]: dart.fnType(typed_data.Uint8List, [], [core.int, dart.nullable(core.int)]),
    asInt8List: dart.fnType(typed_data.Int8List, [], [core.int, dart.nullable(core.int)]),
    [$asInt8List]: dart.fnType(typed_data.Int8List, [], [core.int, dart.nullable(core.int)]),
    asUint8ClampedList: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, dart.nullable(core.int)]),
    [$asUint8ClampedList]: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, dart.nullable(core.int)]),
    asUint16List: dart.fnType(typed_data.Uint16List, [], [core.int, dart.nullable(core.int)]),
    [$asUint16List]: dart.fnType(typed_data.Uint16List, [], [core.int, dart.nullable(core.int)]),
    asInt16List: dart.fnType(typed_data.Int16List, [], [core.int, dart.nullable(core.int)]),
    [$asInt16List]: dart.fnType(typed_data.Int16List, [], [core.int, dart.nullable(core.int)]),
    asUint32List: dart.fnType(typed_data.Uint32List, [], [core.int, dart.nullable(core.int)]),
    [$asUint32List]: dart.fnType(typed_data.Uint32List, [], [core.int, dart.nullable(core.int)]),
    asInt32List: dart.fnType(typed_data.Int32List, [], [core.int, dart.nullable(core.int)]),
    [$asInt32List]: dart.fnType(typed_data.Int32List, [], [core.int, dart.nullable(core.int)]),
    asUint64List: dart.fnType(typed_data.Uint64List, [], [core.int, dart.nullable(core.int)]),
    [$asUint64List]: dart.fnType(typed_data.Uint64List, [], [core.int, dart.nullable(core.int)]),
    asInt64List: dart.fnType(typed_data.Int64List, [], [core.int, dart.nullable(core.int)]),
    [$asInt64List]: dart.fnType(typed_data.Int64List, [], [core.int, dart.nullable(core.int)]),
    asInt32x4List: dart.fnType(typed_data.Int32x4List, [], [core.int, dart.nullable(core.int)]),
    [$asInt32x4List]: dart.fnType(typed_data.Int32x4List, [], [core.int, dart.nullable(core.int)]),
    asFloat32List: dart.fnType(typed_data.Float32List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat32List]: dart.fnType(typed_data.Float32List, [], [core.int, dart.nullable(core.int)]),
    asFloat64List: dart.fnType(typed_data.Float64List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat64List]: dart.fnType(typed_data.Float64List, [], [core.int, dart.nullable(core.int)]),
    asFloat32x4List: dart.fnType(typed_data.Float32x4List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat32x4List]: dart.fnType(typed_data.Float32x4List, [], [core.int, dart.nullable(core.int)]),
    asFloat64x2List: dart.fnType(typed_data.Float64x2List, [], [core.int, dart.nullable(core.int)]),
    [$asFloat64x2List]: dart.fnType(typed_data.Float64x2List, [], [core.int, dart.nullable(core.int)]),
    asByteData: dart.fnType(typed_data.ByteData, [], [core.int, dart.nullable(core.int)]),
    [$asByteData]: dart.fnType(typed_data.ByteData, [], [core.int, dart.nullable(core.int)])
  }));
  dart.setGetterSignature(typed_data.UnmodifiableByteBufferView, () => ({
    __proto__: dart.getGetters(typed_data.UnmodifiableByteBufferView.__proto__),
    lengthInBytes: core.int,
    [$lengthInBytes]: core.int
  }));
  dart.setLibraryUri(typed_data.UnmodifiableByteBufferView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableByteBufferView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableByteBufferView.__proto__),
    [_data$]: dart.finalFieldType(typed_data.ByteBuffer)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableByteBufferView, [
    'asUint8List',
    'asInt8List',
    'asUint8ClampedList',
    'asUint16List',
    'asInt16List',
    'asUint32List',
    'asInt32List',
    'asUint64List',
    'asInt64List',
    'asInt32x4List',
    'asFloat32List',
    'asFloat64List',
    'asFloat32x4List',
    'asFloat64x2List',
    'asByteData'
  ]);
  dart.defineExtensionAccessors(typed_data.UnmodifiableByteBufferView, ['lengthInBytes']);
  var _unsupported$ = dart.privateName(typed_data, "_unsupported");
  typed_data.UnmodifiableByteDataView = class UnmodifiableByteDataView extends core.Object {
    getInt8(byteOffset) {
      if (byteOffset == null) dart.nullFailed(I[144], 73, 19, "byteOffset");
      return this[_data$][$getInt8](byteOffset);
    }
    setInt8(byteOffset, value) {
      if (byteOffset == null) dart.nullFailed(I[144], 75, 20, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 75, 36, "value");
      return this[_unsupported$]();
    }
    getUint8(byteOffset) {
      if (byteOffset == null) dart.nullFailed(I[144], 77, 20, "byteOffset");
      return this[_data$][$getUint8](byteOffset);
    }
    setUint8(byteOffset, value) {
      if (byteOffset == null) dart.nullFailed(I[144], 79, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 79, 37, "value");
      return this[_unsupported$]();
    }
    getInt16(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 81, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 81, 40, "endian");
      return this[_data$][$getInt16](byteOffset, endian);
    }
    setInt16(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 84, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 84, 37, "value");
      if (endian == null) dart.nullFailed(I[144], 84, 52, "endian");
      return this[_unsupported$]();
    }
    getUint16(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 87, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 87, 41, "endian");
      return this[_data$][$getUint16](byteOffset, endian);
    }
    setUint16(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 90, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 90, 38, "value");
      if (endian == null) dart.nullFailed(I[144], 90, 53, "endian");
      return this[_unsupported$]();
    }
    getInt32(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 93, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 93, 40, "endian");
      return this[_data$][$getInt32](byteOffset, endian);
    }
    setInt32(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 96, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 96, 37, "value");
      if (endian == null) dart.nullFailed(I[144], 96, 52, "endian");
      return this[_unsupported$]();
    }
    getUint32(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 99, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 99, 41, "endian");
      return this[_data$][$getUint32](byteOffset, endian);
    }
    setUint32(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 102, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 102, 38, "value");
      if (endian == null) dart.nullFailed(I[144], 102, 53, "endian");
      return this[_unsupported$]();
    }
    getInt64(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 105, 20, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 105, 40, "endian");
      return this[_data$][$getInt64](byteOffset, endian);
    }
    setInt64(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 108, 21, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 108, 37, "value");
      if (endian == null) dart.nullFailed(I[144], 108, 52, "endian");
      return this[_unsupported$]();
    }
    getUint64(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 111, 21, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 111, 41, "endian");
      return this[_data$][$getUint64](byteOffset, endian);
    }
    setUint64(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 114, 22, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 114, 38, "value");
      if (endian == null) dart.nullFailed(I[144], 114, 53, "endian");
      return this[_unsupported$]();
    }
    getFloat32(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 117, 25, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 117, 45, "endian");
      return this[_data$][$getFloat32](byteOffset, endian);
    }
    setFloat32(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 120, 23, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 120, 42, "value");
      if (endian == null) dart.nullFailed(I[144], 120, 57, "endian");
      return this[_unsupported$]();
    }
    getFloat64(byteOffset, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 123, 25, "byteOffset");
      if (endian == null) dart.nullFailed(I[144], 123, 45, "endian");
      return this[_data$][$getFloat64](byteOffset, endian);
    }
    setFloat64(byteOffset, value, endian = C[36] || CT.C36) {
      if (byteOffset == null) dart.nullFailed(I[144], 126, 23, "byteOffset");
      if (value == null) dart.nullFailed(I[144], 126, 42, "value");
      if (endian == null) dart.nullFailed(I[144], 126, 57, "endian");
      return this[_unsupported$]();
    }
    get elementSizeInBytes() {
      return this[_data$][$elementSizeInBytes];
    }
    get offsetInBytes() {
      return this[_data$][$offsetInBytes];
    }
    get lengthInBytes() {
      return this[_data$][$lengthInBytes];
    }
    get buffer() {
      return new typed_data.UnmodifiableByteBufferView.new(this[_data$][$buffer]);
    }
    [_unsupported$]() {
      dart.throw(new core.UnsupportedError.new("An UnmodifiableByteDataView may not be modified"));
    }
  };
  (typed_data.UnmodifiableByteDataView.new = function(data) {
    if (data == null) dart.nullFailed(I[144], 71, 37, "data");
    this[_data$] = data;
    ;
  }).prototype = typed_data.UnmodifiableByteDataView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableByteDataView);
  dart.addTypeCaches(typed_data.UnmodifiableByteDataView);
  typed_data.UnmodifiableByteDataView[dart.implements] = () => [typed_data.ByteData];
  dart.setMethodSignature(typed_data.UnmodifiableByteDataView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableByteDataView.__proto__),
    getInt8: dart.fnType(core.int, [core.int]),
    [$getInt8]: dart.fnType(core.int, [core.int]),
    setInt8: dart.fnType(dart.void, [core.int, core.int]),
    [$setInt8]: dart.fnType(dart.void, [core.int, core.int]),
    getUint8: dart.fnType(core.int, [core.int]),
    [$getUint8]: dart.fnType(core.int, [core.int]),
    setUint8: dart.fnType(dart.void, [core.int, core.int]),
    [$setUint8]: dart.fnType(dart.void, [core.int, core.int]),
    getInt16: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getInt16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setInt16: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setInt16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getUint16: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getUint16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setUint16: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setUint16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getInt32: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getInt32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setInt32: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setInt32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getUint32: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getUint32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setUint32: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setUint32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getInt64: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getInt64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setInt64: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setInt64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getUint64: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    [$getUint64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
    setUint64: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    [$setUint64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
    getFloat32: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    [$getFloat32]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    setFloat32: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
    [$setFloat32]: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
    getFloat64: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    [$getFloat64]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
    setFloat64: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
    [$setFloat64]: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
    [_unsupported$]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(typed_data.UnmodifiableByteDataView, () => ({
    __proto__: dart.getGetters(typed_data.UnmodifiableByteDataView.__proto__),
    elementSizeInBytes: core.int,
    [$elementSizeInBytes]: core.int,
    offsetInBytes: core.int,
    [$offsetInBytes]: core.int,
    lengthInBytes: core.int,
    [$lengthInBytes]: core.int,
    buffer: typed_data.ByteBuffer,
    [$buffer]: typed_data.ByteBuffer
  }));
  dart.setLibraryUri(typed_data.UnmodifiableByteDataView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableByteDataView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableByteDataView.__proto__),
    [_data$]: dart.finalFieldType(typed_data.ByteData)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableByteDataView, [
    'getInt8',
    'setInt8',
    'getUint8',
    'setUint8',
    'getInt16',
    'setInt16',
    'getUint16',
    'setUint16',
    'getInt32',
    'setInt32',
    'getUint32',
    'setUint32',
    'getInt64',
    'setInt64',
    'getUint64',
    'setUint64',
    'getFloat32',
    'setFloat32',
    'getFloat64',
    'setFloat64'
  ]);
  dart.defineExtensionAccessors(typed_data.UnmodifiableByteDataView, ['elementSizeInBytes', 'offsetInBytes', 'lengthInBytes', 'buffer']);
  var _list$2 = dart.privateName(typed_data, "_list");
  var _createList = dart.privateName(typed_data, "_createList");
  const _is__UnmodifiableListMixin_default = Symbol('_is__UnmodifiableListMixin_default');
  typed_data._UnmodifiableListMixin$ = dart.generic((N, L, TD) => {
    class _UnmodifiableListMixin extends core.Object {
      get [_data$]() {
        return TD.as(this[_list$2]);
      }
      get length() {
        return this[_list$2][$length];
      }
      _get(index) {
        if (index == null) dart.nullFailed(I[144], 150, 21, "index");
        return this[_list$2][$_get](index);
      }
      get elementSizeInBytes() {
        return this[_data$][$elementSizeInBytes];
      }
      get offsetInBytes() {
        return this[_data$][$offsetInBytes];
      }
      get lengthInBytes() {
        return this[_data$][$lengthInBytes];
      }
      get buffer() {
        return new typed_data.UnmodifiableByteBufferView.new(this[_data$][$buffer]);
      }
      sublist(start, end = null) {
        if (start == null) dart.nullFailed(I[144], 162, 17, "start");
        let endIndex = core.RangeError.checkValidRange(start, dart.nullCheck(end), this.length);
        let sublistLength = dart.notNull(endIndex) - dart.notNull(start);
        let result = this[_createList](sublistLength);
        result[$setRange](0, sublistLength, this[_list$2], start);
        return result;
      }
    }
    (_UnmodifiableListMixin.new = function() {
      ;
    }).prototype = _UnmodifiableListMixin.prototype;
    dart.addTypeTests(_UnmodifiableListMixin);
    _UnmodifiableListMixin.prototype[_is__UnmodifiableListMixin_default] = true;
    dart.addTypeCaches(_UnmodifiableListMixin);
    dart.setMethodSignature(_UnmodifiableListMixin, () => ({
      __proto__: dart.getMethods(_UnmodifiableListMixin.__proto__),
      _get: dart.fnType(N, [core.int]),
      sublist: dart.fnType(L, [core.int], [dart.nullable(core.int)])
    }));
    dart.setGetterSignature(_UnmodifiableListMixin, () => ({
      __proto__: dart.getGetters(_UnmodifiableListMixin.__proto__),
      [_data$]: TD,
      length: core.int,
      elementSizeInBytes: core.int,
      offsetInBytes: core.int,
      lengthInBytes: core.int,
      buffer: typed_data.ByteBuffer
    }));
    dart.setLibraryUri(_UnmodifiableListMixin, I[60]);
    return _UnmodifiableListMixin;
  });
  typed_data._UnmodifiableListMixin = typed_data._UnmodifiableListMixin$();
  dart.addTypeTests(typed_data._UnmodifiableListMixin, _is__UnmodifiableListMixin_default);
  var _list$3 = dart.privateName(typed_data, "UnmodifiableUint8ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint8List, typed_data.Uint8List));
  typed_data.UnmodifiableUint8ListView = class UnmodifiableUint8ListView extends UnmodifiableListBase__UnmodifiableListMixin$36 {
    get [_list$2]() {
      return this[_list$3];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 179, 29, "length");
      return _native_typed_data.NativeUint8List.new(length);
    }
  };
  (typed_data.UnmodifiableUint8ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 177, 39, "list");
    this[_list$3] = list;
    ;
  }).prototype = typed_data.UnmodifiableUint8ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableUint8ListView);
  dart.addTypeCaches(typed_data.UnmodifiableUint8ListView);
  typed_data.UnmodifiableUint8ListView[dart.implements] = () => [typed_data.Uint8List];
  dart.setMethodSignature(typed_data.UnmodifiableUint8ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableUint8ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Uint8List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableUint8ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableUint8ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableUint8ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Uint8List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableUint8ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableUint8ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$4 = dart.privateName(typed_data, "UnmodifiableInt8ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$ = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int8List, typed_data.Int8List));
  typed_data.UnmodifiableInt8ListView = class UnmodifiableInt8ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$ {
    get [_list$2]() {
      return this[_list$4];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 189, 28, "length");
      return _native_typed_data.NativeInt8List.new(length);
    }
  };
  (typed_data.UnmodifiableInt8ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 187, 37, "list");
    this[_list$4] = list;
    ;
  }).prototype = typed_data.UnmodifiableInt8ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableInt8ListView);
  dart.addTypeCaches(typed_data.UnmodifiableInt8ListView);
  typed_data.UnmodifiableInt8ListView[dart.implements] = () => [typed_data.Int8List];
  dart.setMethodSignature(typed_data.UnmodifiableInt8ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableInt8ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Int8List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableInt8ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableInt8ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableInt8ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Int8List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableInt8ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableInt8ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$5 = dart.privateName(typed_data, "UnmodifiableUint8ClampedListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$0 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$0.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$0.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$0, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint8ClampedList, typed_data.Uint8ClampedList));
  typed_data.UnmodifiableUint8ClampedListView = class UnmodifiableUint8ClampedListView extends UnmodifiableListBase__UnmodifiableListMixin$36$0 {
    get [_list$2]() {
      return this[_list$5];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 199, 36, "length");
      return _native_typed_data.NativeUint8ClampedList.new(length);
    }
  };
  (typed_data.UnmodifiableUint8ClampedListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 197, 53, "list");
    this[_list$5] = list;
    ;
  }).prototype = typed_data.UnmodifiableUint8ClampedListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableUint8ClampedListView);
  dart.addTypeCaches(typed_data.UnmodifiableUint8ClampedListView);
  typed_data.UnmodifiableUint8ClampedListView[dart.implements] = () => [typed_data.Uint8ClampedList];
  dart.setMethodSignature(typed_data.UnmodifiableUint8ClampedListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableUint8ClampedListView.__proto__),
    [_createList]: dart.fnType(typed_data.Uint8ClampedList, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableUint8ClampedListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableUint8ClampedListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableUint8ClampedListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Uint8ClampedList)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableUint8ClampedListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableUint8ClampedListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$6 = dart.privateName(typed_data, "UnmodifiableUint16ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$1 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$1.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$1.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$1, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint16List, typed_data.Uint16List));
  typed_data.UnmodifiableUint16ListView = class UnmodifiableUint16ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$1 {
    get [_list$2]() {
      return this[_list$6];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 209, 30, "length");
      return _native_typed_data.NativeUint16List.new(length);
    }
  };
  (typed_data.UnmodifiableUint16ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 207, 41, "list");
    this[_list$6] = list;
    ;
  }).prototype = typed_data.UnmodifiableUint16ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableUint16ListView);
  dart.addTypeCaches(typed_data.UnmodifiableUint16ListView);
  typed_data.UnmodifiableUint16ListView[dart.implements] = () => [typed_data.Uint16List];
  dart.setMethodSignature(typed_data.UnmodifiableUint16ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableUint16ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Uint16List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableUint16ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableUint16ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableUint16ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Uint16List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableUint16ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableUint16ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$7 = dart.privateName(typed_data, "UnmodifiableInt16ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$2 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$2.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$2.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$2, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int16List, typed_data.Int16List));
  typed_data.UnmodifiableInt16ListView = class UnmodifiableInt16ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$2 {
    get [_list$2]() {
      return this[_list$7];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 219, 29, "length");
      return _native_typed_data.NativeInt16List.new(length);
    }
  };
  (typed_data.UnmodifiableInt16ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 217, 39, "list");
    this[_list$7] = list;
    ;
  }).prototype = typed_data.UnmodifiableInt16ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableInt16ListView);
  dart.addTypeCaches(typed_data.UnmodifiableInt16ListView);
  typed_data.UnmodifiableInt16ListView[dart.implements] = () => [typed_data.Int16List];
  dart.setMethodSignature(typed_data.UnmodifiableInt16ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableInt16ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Int16List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableInt16ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableInt16ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableInt16ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Int16List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableInt16ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableInt16ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$8 = dart.privateName(typed_data, "UnmodifiableUint32ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$3 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$3.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$3.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$3, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint32List, typed_data.Uint32List));
  typed_data.UnmodifiableUint32ListView = class UnmodifiableUint32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$3 {
    get [_list$2]() {
      return this[_list$8];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 229, 30, "length");
      return _native_typed_data.NativeUint32List.new(length);
    }
  };
  (typed_data.UnmodifiableUint32ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 227, 41, "list");
    this[_list$8] = list;
    ;
  }).prototype = typed_data.UnmodifiableUint32ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableUint32ListView);
  dart.addTypeCaches(typed_data.UnmodifiableUint32ListView);
  typed_data.UnmodifiableUint32ListView[dart.implements] = () => [typed_data.Uint32List];
  dart.setMethodSignature(typed_data.UnmodifiableUint32ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableUint32ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Uint32List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableUint32ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableUint32ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableUint32ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Uint32List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableUint32ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableUint32ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$9 = dart.privateName(typed_data, "UnmodifiableInt32ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$4 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$4.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$4.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$4, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int32List, typed_data.Int32List));
  typed_data.UnmodifiableInt32ListView = class UnmodifiableInt32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$4 {
    get [_list$2]() {
      return this[_list$9];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 239, 29, "length");
      return _native_typed_data.NativeInt32List.new(length);
    }
  };
  (typed_data.UnmodifiableInt32ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 237, 39, "list");
    this[_list$9] = list;
    ;
  }).prototype = typed_data.UnmodifiableInt32ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableInt32ListView);
  dart.addTypeCaches(typed_data.UnmodifiableInt32ListView);
  typed_data.UnmodifiableInt32ListView[dart.implements] = () => [typed_data.Int32List];
  dart.setMethodSignature(typed_data.UnmodifiableInt32ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableInt32ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Int32List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableInt32ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableInt32ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableInt32ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Int32List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableInt32ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableInt32ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$10 = dart.privateName(typed_data, "UnmodifiableUint64ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$5 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$5.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$5.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$5, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint64List, typed_data.Uint64List));
  typed_data.UnmodifiableUint64ListView = class UnmodifiableUint64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$5 {
    get [_list$2]() {
      return this[_list$10];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 249, 30, "length");
      return typed_data.Uint64List.new(length);
    }
  };
  (typed_data.UnmodifiableUint64ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 247, 41, "list");
    this[_list$10] = list;
    ;
  }).prototype = typed_data.UnmodifiableUint64ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableUint64ListView);
  dart.addTypeCaches(typed_data.UnmodifiableUint64ListView);
  typed_data.UnmodifiableUint64ListView[dart.implements] = () => [typed_data.Uint64List];
  dart.setMethodSignature(typed_data.UnmodifiableUint64ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableUint64ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Uint64List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableUint64ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableUint64ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableUint64ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Uint64List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableUint64ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableUint64ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$11 = dart.privateName(typed_data, "UnmodifiableInt64ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$6 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$6.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$6.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$6, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int64List, typed_data.Int64List));
  typed_data.UnmodifiableInt64ListView = class UnmodifiableInt64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$6 {
    get [_list$2]() {
      return this[_list$11];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 259, 29, "length");
      return typed_data.Int64List.new(length);
    }
  };
  (typed_data.UnmodifiableInt64ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 257, 39, "list");
    this[_list$11] = list;
    ;
  }).prototype = typed_data.UnmodifiableInt64ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableInt64ListView);
  dart.addTypeCaches(typed_data.UnmodifiableInt64ListView);
  typed_data.UnmodifiableInt64ListView[dart.implements] = () => [typed_data.Int64List];
  dart.setMethodSignature(typed_data.UnmodifiableInt64ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableInt64ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Int64List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableInt64ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableInt64ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableInt64ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Int64List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableInt64ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableInt64ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$12 = dart.privateName(typed_data, "UnmodifiableInt32x4ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$7 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Int32x4) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$7.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$7.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$7, typed_data._UnmodifiableListMixin$(typed_data.Int32x4, typed_data.Int32x4List, typed_data.Int32x4List));
  typed_data.UnmodifiableInt32x4ListView = class UnmodifiableInt32x4ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$7 {
    get [_list$2]() {
      return this[_list$12];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 269, 31, "length");
      return new _native_typed_data.NativeInt32x4List.new(length);
    }
  };
  (typed_data.UnmodifiableInt32x4ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 267, 43, "list");
    this[_list$12] = list;
    ;
  }).prototype = typed_data.UnmodifiableInt32x4ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableInt32x4ListView);
  dart.addTypeCaches(typed_data.UnmodifiableInt32x4ListView);
  typed_data.UnmodifiableInt32x4ListView[dart.implements] = () => [typed_data.Int32x4List];
  dart.setMethodSignature(typed_data.UnmodifiableInt32x4ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableInt32x4ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Int32x4List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableInt32x4ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableInt32x4ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableInt32x4ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Int32x4List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableInt32x4ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableInt32x4ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$13 = dart.privateName(typed_data, "UnmodifiableFloat32x4ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$8 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Float32x4) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$8.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$8.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$8, typed_data._UnmodifiableListMixin$(typed_data.Float32x4, typed_data.Float32x4List, typed_data.Float32x4List));
  typed_data.UnmodifiableFloat32x4ListView = class UnmodifiableFloat32x4ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$8 {
    get [_list$2]() {
      return this[_list$13];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 279, 33, "length");
      return new _native_typed_data.NativeFloat32x4List.new(length);
    }
  };
  (typed_data.UnmodifiableFloat32x4ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 277, 47, "list");
    this[_list$13] = list;
    ;
  }).prototype = typed_data.UnmodifiableFloat32x4ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableFloat32x4ListView);
  dart.addTypeCaches(typed_data.UnmodifiableFloat32x4ListView);
  typed_data.UnmodifiableFloat32x4ListView[dart.implements] = () => [typed_data.Float32x4List];
  dart.setMethodSignature(typed_data.UnmodifiableFloat32x4ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableFloat32x4ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Float32x4List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableFloat32x4ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableFloat32x4ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableFloat32x4ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Float32x4List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableFloat32x4ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableFloat32x4ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$14 = dart.privateName(typed_data, "UnmodifiableFloat64x2ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$9 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Float64x2) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$9.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$9.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$9, typed_data._UnmodifiableListMixin$(typed_data.Float64x2, typed_data.Float64x2List, typed_data.Float64x2List));
  typed_data.UnmodifiableFloat64x2ListView = class UnmodifiableFloat64x2ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$9 {
    get [_list$2]() {
      return this[_list$14];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 289, 33, "length");
      return new _native_typed_data.NativeFloat64x2List.new(length);
    }
  };
  (typed_data.UnmodifiableFloat64x2ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 287, 47, "list");
    this[_list$14] = list;
    ;
  }).prototype = typed_data.UnmodifiableFloat64x2ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableFloat64x2ListView);
  dart.addTypeCaches(typed_data.UnmodifiableFloat64x2ListView);
  typed_data.UnmodifiableFloat64x2ListView[dart.implements] = () => [typed_data.Float64x2List];
  dart.setMethodSignature(typed_data.UnmodifiableFloat64x2ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableFloat64x2ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Float64x2List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableFloat64x2ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableFloat64x2ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableFloat64x2ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Float64x2List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableFloat64x2ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableFloat64x2ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$15 = dart.privateName(typed_data, "UnmodifiableFloat32ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$10 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.double) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$10.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$10.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$10, typed_data._UnmodifiableListMixin$(core.double, typed_data.Float32List, typed_data.Float32List));
  typed_data.UnmodifiableFloat32ListView = class UnmodifiableFloat32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$10 {
    get [_list$2]() {
      return this[_list$15];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 299, 31, "length");
      return _native_typed_data.NativeFloat32List.new(length);
    }
  };
  (typed_data.UnmodifiableFloat32ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 297, 43, "list");
    this[_list$15] = list;
    ;
  }).prototype = typed_data.UnmodifiableFloat32ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableFloat32ListView);
  dart.addTypeCaches(typed_data.UnmodifiableFloat32ListView);
  typed_data.UnmodifiableFloat32ListView[dart.implements] = () => [typed_data.Float32List];
  dart.setMethodSignature(typed_data.UnmodifiableFloat32ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableFloat32ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Float32List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableFloat32ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableFloat32ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableFloat32ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Float32List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableFloat32ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableFloat32ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  var _list$16 = dart.privateName(typed_data, "UnmodifiableFloat64ListView._list");
  const UnmodifiableListBase__UnmodifiableListMixin$36$11 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.double) {};
  (UnmodifiableListBase__UnmodifiableListMixin$36$11.new = function() {
  }).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$11.prototype;
  dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$11, typed_data._UnmodifiableListMixin$(core.double, typed_data.Float64List, typed_data.Float64List));
  typed_data.UnmodifiableFloat64ListView = class UnmodifiableFloat64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$11 {
    get [_list$2]() {
      return this[_list$16];
    }
    set [_list$2](value) {
      super[_list$2] = value;
    }
    [_createList](length) {
      if (length == null) dart.nullFailed(I[144], 309, 31, "length");
      return _native_typed_data.NativeFloat64List.new(length);
    }
  };
  (typed_data.UnmodifiableFloat64ListView.new = function(list) {
    if (list == null) dart.nullFailed(I[144], 307, 43, "list");
    this[_list$16] = list;
    ;
  }).prototype = typed_data.UnmodifiableFloat64ListView.prototype;
  dart.addTypeTests(typed_data.UnmodifiableFloat64ListView);
  dart.addTypeCaches(typed_data.UnmodifiableFloat64ListView);
  typed_data.UnmodifiableFloat64ListView[dart.implements] = () => [typed_data.Float64List];
  dart.setMethodSignature(typed_data.UnmodifiableFloat64ListView, () => ({
    __proto__: dart.getMethods(typed_data.UnmodifiableFloat64ListView.__proto__),
    [_createList]: dart.fnType(typed_data.Float64List, [core.int])
  }));
  dart.setLibraryUri(typed_data.UnmodifiableFloat64ListView, I[60]);
  dart.setFieldSignature(typed_data.UnmodifiableFloat64ListView, () => ({
    __proto__: dart.getFields(typed_data.UnmodifiableFloat64ListView.__proto__),
    [_list$2]: dart.finalFieldType(typed_data.Float64List)
  }));
  dart.defineExtensionMethods(typed_data.UnmodifiableFloat64ListView, ['_get', 'sublist']);
  dart.defineExtensionAccessors(typed_data.UnmodifiableFloat64ListView, [
    'length',
    'elementSizeInBytes',
    'offsetInBytes',
    'lengthInBytes',
    'buffer'
  ]);
  indexed_db._KeyRangeFactoryProvider = class _KeyRangeFactoryProvider extends core.Object {
    static createKeyRange_only(value) {
      return indexed_db._KeyRangeFactoryProvider._only(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(value));
    }
    static createKeyRange_lowerBound(bound, open = false) {
      if (open == null) dart.nullFailed(I[145], 96, 17, "open");
      return indexed_db._KeyRangeFactoryProvider._lowerBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
    }
    static createKeyRange_upperBound(bound, open = false) {
      if (open == null) dart.nullFailed(I[145], 101, 17, "open");
      return indexed_db._KeyRangeFactoryProvider._upperBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
    }
    static createKeyRange_bound(lower, upper, lowerOpen = false, upperOpen = false) {
      if (lowerOpen == null) dart.nullFailed(I[145], 105, 17, "lowerOpen");
      if (upperOpen == null) dart.nullFailed(I[145], 105, 41, "upperOpen");
      return indexed_db._KeyRangeFactoryProvider._bound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(lower), indexed_db._KeyRangeFactoryProvider._translateKey(upper), lowerOpen, upperOpen);
    }
    static _class() {
      if (indexed_db._KeyRangeFactoryProvider._cachedClass != null) return indexed_db._KeyRangeFactoryProvider._cachedClass;
      return indexed_db._KeyRangeFactoryProvider._cachedClass = indexed_db._KeyRangeFactoryProvider._uncachedClass();
    }
    static _uncachedClass() {
      return window.webkitIDBKeyRange || window.mozIDBKeyRange || window.msIDBKeyRange || window.IDBKeyRange;
    }
    static _translateKey(idbkey) {
      return idbkey;
    }
    static _only(cls, value) {
      return cls.only(value);
    }
    static _lowerBound(cls, bound, open) {
      return cls.lowerBound(bound, open);
    }
    static _upperBound(cls, bound, open) {
      return cls.upperBound(bound, open);
    }
    static _bound(cls, lower, upper, lowerOpen, upperOpen) {
      return cls.bound(lower, upper, lowerOpen, upperOpen);
    }
  };
  (indexed_db._KeyRangeFactoryProvider.new = function() {
    ;
  }).prototype = indexed_db._KeyRangeFactoryProvider.prototype;
  dart.addTypeTests(indexed_db._KeyRangeFactoryProvider);
  dart.addTypeCaches(indexed_db._KeyRangeFactoryProvider);
  dart.setLibraryUri(indexed_db._KeyRangeFactoryProvider, I[146]);
  dart.defineLazy(indexed_db._KeyRangeFactoryProvider, {
    /*indexed_db._KeyRangeFactoryProvider._cachedClass*/get _cachedClass() {
      return null;
    },
    set _cachedClass(_) {}
  }, false);
  indexed_db.Cursor = class Cursor extends _interceptors.Interceptor {
    [S.$delete]() {
      try {
        return indexed_db._completeRequest(dart.dynamic, this[S._delete$1]());
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [$update](value) {
      try {
        return indexed_db._completeRequest(dart.dynamic, this[S._update](value));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$next](key = null) {
      if (key == null) {
        this.continue();
      } else {
        this.continue(key);
      }
    }
    get [S.$direction]() {
      return this.direction;
    }
    get [S.$key]() {
      return this.key;
    }
    get [S.$primaryKey]() {
      return this.primaryKey;
    }
    get [S.$source]() {
      return this.source;
    }
    [S.$advance](...args) {
      return this.advance.apply(this, args);
    }
    [S.$continuePrimaryKey](...args) {
      return this.continuePrimaryKey.apply(this, args);
    }
    [S._delete$1](...args) {
      return this.delete.apply(this, args);
    }
    [S._update](value) {
      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
      return this[S._update_1](value_1);
    }
    [S._update_1](...args) {
      return this.update.apply(this, args);
    }
  };
  dart.addTypeTests(indexed_db.Cursor);
  dart.addTypeCaches(indexed_db.Cursor);
  dart.setMethodSignature(indexed_db.Cursor, () => ({
    __proto__: dart.getMethods(indexed_db.Cursor.__proto__),
    [S.$delete]: dart.fnType(async.Future, []),
    [$update]: dart.fnType(async.Future, [dart.dynamic]),
    [S.$next]: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    [S.$advance]: dart.fnType(dart.void, [core.int]),
    [S.$continuePrimaryKey]: dart.fnType(dart.void, [core.Object, core.Object]),
    [S._delete$1]: dart.fnType(indexed_db.Request, []),
    [S._update]: dart.fnType(indexed_db.Request, [dart.dynamic]),
    [S._update_1]: dart.fnType(indexed_db.Request, [dart.dynamic])
  }));
  dart.setGetterSignature(indexed_db.Cursor, () => ({
    __proto__: dart.getGetters(indexed_db.Cursor.__proto__),
    [S.$direction]: dart.nullable(core.String),
    [S.$key]: dart.nullable(core.Object),
    [S.$primaryKey]: dart.nullable(core.Object),
    [S.$source]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(indexed_db.Cursor, I[146]);
  dart.registerExtension("IDBCursor", indexed_db.Cursor);
  indexed_db.CursorWithValue = class CursorWithValue extends indexed_db.Cursor {
    get [S.$value]() {
      return indexed_db._convertNativeToDart_IDBAny(this[S._get_value]);
    }
    get [S._get_value]() {
      return this.value;
    }
  };
  dart.addTypeTests(indexed_db.CursorWithValue);
  dart.addTypeCaches(indexed_db.CursorWithValue);
  dart.setGetterSignature(indexed_db.CursorWithValue, () => ({
    __proto__: dart.getGetters(indexed_db.CursorWithValue.__proto__),
    [S.$value]: dart.dynamic,
    [S._get_value]: dart.dynamic
  }));
  dart.setLibraryUri(indexed_db.CursorWithValue, I[146]);
  dart.registerExtension("IDBCursorWithValue", indexed_db.CursorWithValue);
  html$.EventTarget = class EventTarget extends _interceptors.Interceptor {
    get [S.$on]() {
      return new html$.Events.new(this);
    }
    [S.$addEventListener](type, listener, useCapture = null) {
      if (type == null) dart.nullFailed(I[147], 15797, 32, "type");
      if (listener != null) {
        this[S._addEventListener](type, listener, useCapture);
      }
    }
    [S.$removeEventListener](type, listener, useCapture = null) {
      if (type == null) dart.nullFailed(I[147], 15807, 35, "type");
      if (listener != null) {
        this[S._removeEventListener](type, listener, useCapture);
      }
    }
    [S._addEventListener](...args) {
      return this.addEventListener.apply(this, args);
    }
    [S.$dispatchEvent](...args) {
      return this.dispatchEvent.apply(this, args);
    }
    [S._removeEventListener](...args) {
      return this.removeEventListener.apply(this, args);
    }
  };
  (html$.EventTarget._created = function() {
    html$.EventTarget.__proto__.new.call(this);
    ;
  }).prototype = html$.EventTarget.prototype;
  dart.addTypeTests(html$.EventTarget);
  dart.addTypeCaches(html$.EventTarget);
  dart.setMethodSignature(html$.EventTarget, () => ({
    __proto__: dart.getMethods(html$.EventTarget.__proto__),
    [S.$addEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    [S.$removeEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    [S._addEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    [S.$dispatchEvent]: dart.fnType(core.bool, [html$.Event]),
    [S._removeEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)])
  }));
  dart.setGetterSignature(html$.EventTarget, () => ({
    __proto__: dart.getGetters(html$.EventTarget.__proto__),
    [S.$on]: html$.Events
  }));
  dart.setLibraryUri(html$.EventTarget, I[148]);
  dart.registerExtension("EventTarget", html$.EventTarget);
  indexed_db.Database = class Database extends html$.EventTarget {
    [S.$createObjectStore](name, opts) {
      if (name == null) dart.nullFailed(I[145], 304, 40, "name");
      let keyPath = opts && 'keyPath' in opts ? opts.keyPath : null;
      let autoIncrement = opts && 'autoIncrement' in opts ? opts.autoIncrement : null;
      let options = new _js_helper.LinkedMap.new();
      if (keyPath != null) {
        options[$_set]("keyPath", keyPath);
      }
      if (autoIncrement != null) {
        options[$_set]("autoIncrement", autoIncrement);
      }
      return this[S._createObjectStore](name, options);
    }
    [S.$transaction](storeName_OR_storeNames, mode) {
      if (mode == null) dart.nullFailed(I[145], 316, 59, "mode");
      if (mode !== "readonly" && mode !== "readwrite") {
        dart.throw(new core.ArgumentError.new(mode));
      }
      return this[S._transaction](storeName_OR_storeNames, mode);
    }
    [S.$transactionStore](storeName, mode) {
      if (storeName == null) dart.nullFailed(I[145], 330, 39, "storeName");
      if (mode == null) dart.nullFailed(I[145], 330, 57, "mode");
      if (mode !== "readonly" && mode !== "readwrite") {
        dart.throw(new core.ArgumentError.new(mode));
      }
      return this[S._transaction](storeName, mode);
    }
    [S.$transactionList](storeNames, mode) {
      if (storeNames == null) dart.nullFailed(I[145], 340, 44, "storeNames");
      if (mode == null) dart.nullFailed(I[145], 340, 63, "mode");
      if (mode !== "readonly" && mode !== "readwrite") {
        dart.throw(new core.ArgumentError.new(mode));
      }
      let storeNames_1 = html_common.convertDartToNative_StringArray(storeNames);
      return this[S._transaction](storeNames_1, mode);
    }
    [S.$transactionStores](storeNames, mode) {
      if (storeNames == null) dart.nullFailed(I[145], 348, 47, "storeNames");
      if (mode == null) dart.nullFailed(I[145], 348, 66, "mode");
      if (mode !== "readonly" && mode !== "readwrite") {
        dart.throw(new core.ArgumentError.new(mode));
      }
      return this[S._transaction](storeNames, mode);
    }
    [S._transaction](...args) {
      return this.transaction.apply(this, args);
    }
    get [$name]() {
      return this.name;
    }
    get [S.$objectStoreNames]() {
      return this.objectStoreNames;
    }
    get [S.$version]() {
      return this.version;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S._createObjectStore](name, options = null) {
      if (name == null) dart.nullFailed(I[145], 411, 41, "name");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S._createObjectStore_1](name, options_1);
      }
      return this[S._createObjectStore_2](name);
    }
    [S._createObjectStore_1](...args) {
      return this.createObjectStore.apply(this, args);
    }
    [S._createObjectStore_2](...args) {
      return this.createObjectStore.apply(this, args);
    }
    [S.$deleteObjectStore](...args) {
      return this.deleteObjectStore.apply(this, args);
    }
    get [S.$onAbort]() {
      return indexed_db.Database.abortEvent.forTarget(this);
    }
    get [S.$onClose]() {
      return indexed_db.Database.closeEvent.forTarget(this);
    }
    get [S.$onError]() {
      return indexed_db.Database.errorEvent.forTarget(this);
    }
    get [S.$onVersionChange]() {
      return indexed_db.Database.versionChangeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(indexed_db.Database);
  dart.addTypeCaches(indexed_db.Database);
  dart.setMethodSignature(indexed_db.Database, () => ({
    __proto__: dart.getMethods(indexed_db.Database.__proto__),
    [S.$createObjectStore]: dart.fnType(indexed_db.ObjectStore, [core.String], {autoIncrement: dart.nullable(core.bool), keyPath: dart.dynamic}, {}),
    [S.$transaction]: dart.fnType(indexed_db.Transaction, [dart.dynamic, core.String]),
    [S.$transactionStore]: dart.fnType(indexed_db.Transaction, [core.String, core.String]),
    [S.$transactionList]: dart.fnType(indexed_db.Transaction, [core.List$(core.String), core.String]),
    [S.$transactionStores]: dart.fnType(indexed_db.Transaction, [html$.DomStringList, core.String]),
    [S._transaction]: dart.fnType(indexed_db.Transaction, [dart.dynamic, dart.dynamic]),
    [S.$close]: dart.fnType(dart.void, []),
    [S._createObjectStore]: dart.fnType(indexed_db.ObjectStore, [core.String], [dart.nullable(core.Map)]),
    [S._createObjectStore_1]: dart.fnType(indexed_db.ObjectStore, [dart.dynamic, dart.dynamic]),
    [S._createObjectStore_2]: dart.fnType(indexed_db.ObjectStore, [dart.dynamic]),
    [S.$deleteObjectStore]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(indexed_db.Database, () => ({
    __proto__: dart.getGetters(indexed_db.Database.__proto__),
    [$name]: dart.nullable(core.String),
    [S.$objectStoreNames]: dart.nullable(core.List$(core.String)),
    [S.$version]: dart.nullable(core.int),
    [S.$onAbort]: async.Stream$(html$.Event),
    [S.$onClose]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S.$onVersionChange]: async.Stream$(indexed_db.VersionChangeEvent)
  }));
  dart.setLibraryUri(indexed_db.Database, I[146]);
  dart.defineLazy(indexed_db.Database, {
    /*indexed_db.Database.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*indexed_db.Database.closeEvent*/get closeEvent() {
      return C[215] || CT.C215;
    },
    /*indexed_db.Database.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*indexed_db.Database.versionChangeEvent*/get versionChangeEvent() {
      return C[217] || CT.C217;
    }
  }, false);
  dart.registerExtension("IDBDatabase", indexed_db.Database);
  indexed_db.IdbFactory = class IdbFactory extends _interceptors.Interceptor {
    static get supported() {
      return !!(window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB);
    }
    [S.$open](name, opts) {
      if (name == null) dart.nullFailed(I[145], 467, 32, "name");
      let version = opts && 'version' in opts ? opts.version : null;
      let onUpgradeNeeded = opts && 'onUpgradeNeeded' in opts ? opts.onUpgradeNeeded : null;
      let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
      if (version == null !== (onUpgradeNeeded == null)) {
        return T$0.FutureOfDatabase().error(new core.ArgumentError.new("version and onUpgradeNeeded must be specified together"));
      }
      try {
        let request = null;
        if (version != null) {
          request = this[S._open](name, version);
        } else {
          request = this[S._open](name);
        }
        if (onUpgradeNeeded != null) {
          request[S.$onUpgradeNeeded].listen(onUpgradeNeeded);
        }
        if (onBlocked != null) {
          request[S.$onBlocked].listen(onBlocked);
        }
        return indexed_db._completeRequest(indexed_db.Database, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfDatabase().error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$deleteDatabase](name, opts) {
      if (name == null) dart.nullFailed(I[145], 495, 44, "name");
      let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
      try {
        let request = this[S._deleteDatabase](name);
        if (onBlocked != null) {
          request[S.$onBlocked].listen(onBlocked);
        }
        let completer = T$0.CompleterOfIdbFactory().sync();
        request[S.$onSuccess].listen(dart.fn(e => {
          if (e == null) dart.nullFailed(I[145], 503, 33, "e");
          completer.complete(this);
        }, T$0.EventTovoid()));
        request[S.$onError].listen(dart.bind(completer, 'completeError'));
        return completer.future;
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfIdbFactory().error(e, stacktrace);
        } else
          throw e$;
      }
    }
    get [S.$supportsDatabaseNames]() {
      return dart.test(indexed_db.IdbFactory.supported) && !!(this.getDatabaseNames || this.webkitGetDatabaseNames);
    }
    [S.$cmp](...args) {
      return this.cmp.apply(this, args);
    }
    [S._deleteDatabase](...args) {
      return this.deleteDatabase.apply(this, args);
    }
    [S._open](...args) {
      return this.open.apply(this, args);
    }
  };
  dart.addTypeTests(indexed_db.IdbFactory);
  dart.addTypeCaches(indexed_db.IdbFactory);
  dart.setMethodSignature(indexed_db.IdbFactory, () => ({
    __proto__: dart.getMethods(indexed_db.IdbFactory.__proto__),
    [S.$open]: dart.fnType(async.Future$(indexed_db.Database), [core.String], {onBlocked: dart.nullable(dart.fnType(dart.void, [html$.Event])), onUpgradeNeeded: dart.nullable(dart.fnType(dart.void, [indexed_db.VersionChangeEvent])), version: dart.nullable(core.int)}, {}),
    [S.$deleteDatabase]: dart.fnType(async.Future$(indexed_db.IdbFactory), [core.String], {onBlocked: dart.nullable(dart.fnType(dart.void, [html$.Event]))}, {}),
    [S.$cmp]: dart.fnType(core.int, [core.Object, core.Object]),
    [S._deleteDatabase]: dart.fnType(indexed_db.OpenDBRequest, [core.String]),
    [S._open]: dart.fnType(indexed_db.OpenDBRequest, [core.String], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(indexed_db.IdbFactory, () => ({
    __proto__: dart.getGetters(indexed_db.IdbFactory.__proto__),
    [S.$supportsDatabaseNames]: core.bool
  }));
  dart.setLibraryUri(indexed_db.IdbFactory, I[146]);
  dart.registerExtension("IDBFactory", indexed_db.IdbFactory);
  indexed_db.Index = class Index extends _interceptors.Interceptor {
    [S.$count](key_OR_range = null) {
      try {
        let request = this[S._count$2](key_OR_range);
        return indexed_db._completeRequest(core.int, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfint().error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$get](key) {
      try {
        let request = this[S._get](core.Object.as(key));
        return indexed_db._completeRequest(dart.dynamic, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$getKey](key) {
      try {
        let request = this[S._getKey](core.Object.as(key));
        return indexed_db._completeRequest(dart.dynamic, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$openCursor](opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let range = opts && 'range' in opts ? opts.range : null;
      let direction = opts && 'direction' in opts ? opts.direction : null;
      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
      let key_OR_range = null;
      if (key != null) {
        if (range != null) {
          dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
        }
        key_OR_range = key;
      } else {
        key_OR_range = range;
      }
      let request = null;
      if (direction == null) {
        request = this[S._openCursor](key_OR_range, "next");
      } else {
        request = this[S._openCursor](key_OR_range, direction);
      }
      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue, indexed_db.Request.as(request), autoAdvance);
    }
    [S.$openKeyCursor](opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let range = opts && 'range' in opts ? opts.range : null;
      let direction = opts && 'direction' in opts ? opts.direction : null;
      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
      let key_OR_range = null;
      if (key != null) {
        if (range != null) {
          dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
        }
        key_OR_range = key;
      } else {
        key_OR_range = range;
      }
      let request = null;
      if (direction == null) {
        request = this[S._openKeyCursor](key_OR_range, "next");
      } else {
        request = this[S._openKeyCursor](key_OR_range, direction);
      }
      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.Cursor, indexed_db.Request.as(request), autoAdvance);
    }
    get [S.$keyPath]() {
      return this.keyPath;
    }
    get [S.$multiEntry]() {
      return this.multiEntry;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$objectStore]() {
      return this.objectStore;
    }
    get [S.$unique]() {
      return this.unique;
    }
    [S._count$2](...args) {
      return this.count.apply(this, args);
    }
    [S._get](...args) {
      return this.get.apply(this, args);
    }
    [S.$getAll](...args) {
      return this.getAll.apply(this, args);
    }
    [S.$getAllKeys](...args) {
      return this.getAllKeys.apply(this, args);
    }
    [S._getKey](...args) {
      return this.getKey.apply(this, args);
    }
    [S._openCursor](...args) {
      return this.openCursor.apply(this, args);
    }
    [S._openKeyCursor](...args) {
      return this.openKeyCursor.apply(this, args);
    }
  };
  dart.addTypeTests(indexed_db.Index);
  dart.addTypeCaches(indexed_db.Index);
  dart.setMethodSignature(indexed_db.Index, () => ({
    __proto__: dart.getMethods(indexed_db.Index.__proto__),
    [S.$count]: dart.fnType(async.Future$(core.int), [], [dart.dynamic]),
    [S.$get]: dart.fnType(async.Future, [dart.dynamic]),
    [S.$getKey]: dart.fnType(async.Future, [dart.dynamic]),
    [S.$openCursor]: dart.fnType(async.Stream$(indexed_db.CursorWithValue), [], {autoAdvance: dart.nullable(core.bool), direction: dart.nullable(core.String), key: dart.dynamic, range: dart.nullable(indexed_db.KeyRange)}, {}),
    [S.$openKeyCursor]: dart.fnType(async.Stream$(indexed_db.Cursor), [], {autoAdvance: dart.nullable(core.bool), direction: dart.nullable(core.String), key: dart.dynamic, range: dart.nullable(indexed_db.KeyRange)}, {}),
    [S._count$2]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)]),
    [S._get]: dart.fnType(indexed_db.Request, [core.Object]),
    [S.$getAll]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
    [S.$getAllKeys]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
    [S._getKey]: dart.fnType(indexed_db.Request, [core.Object]),
    [S._openCursor]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.String)]),
    [S._openKeyCursor]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(indexed_db.Index, () => ({
    __proto__: dart.getGetters(indexed_db.Index.__proto__),
    [S.$keyPath]: dart.nullable(core.Object),
    [S.$multiEntry]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S.$objectStore]: dart.nullable(indexed_db.ObjectStore),
    [S.$unique]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(indexed_db.Index, () => ({
    __proto__: dart.getSetters(indexed_db.Index.__proto__),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(indexed_db.Index, I[146]);
  dart.registerExtension("IDBIndex", indexed_db.Index);
  indexed_db.KeyRange = class KeyRange extends _interceptors.Interceptor {
    static only(value) {
      return indexed_db._KeyRangeFactoryProvider.createKeyRange_only(value);
    }
    static lowerBound(bound, open = false) {
      if (open == null) dart.nullFailed(I[145], 707, 52, "open");
      return indexed_db._KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
    }
    static upperBound(bound, open = false) {
      if (open == null) dart.nullFailed(I[145], 710, 52, "open");
      return indexed_db._KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
    }
    static bound(lower, upper, lowerOpen = false, upperOpen = false) {
      if (lowerOpen == null) dart.nullFailed(I[145], 714, 17, "lowerOpen");
      if (upperOpen == null) dart.nullFailed(I[145], 714, 41, "upperOpen");
      return indexed_db._KeyRangeFactoryProvider.createKeyRange_bound(lower, upper, lowerOpen, upperOpen);
    }
    get [S.$lower]() {
      return this.lower;
    }
    get [S.$lowerOpen]() {
      return this.lowerOpen;
    }
    get [S.$upper]() {
      return this.upper;
    }
    get [S.$upperOpen]() {
      return this.upperOpen;
    }
    [S.$includes](...args) {
      return this.includes.apply(this, args);
    }
  };
  dart.addTypeTests(indexed_db.KeyRange);
  dart.addTypeCaches(indexed_db.KeyRange);
  dart.setMethodSignature(indexed_db.KeyRange, () => ({
    __proto__: dart.getMethods(indexed_db.KeyRange.__proto__),
    [S.$includes]: dart.fnType(core.bool, [core.Object])
  }));
  dart.setGetterSignature(indexed_db.KeyRange, () => ({
    __proto__: dart.getGetters(indexed_db.KeyRange.__proto__),
    [S.$lower]: dart.nullable(core.Object),
    [S.$lowerOpen]: dart.nullable(core.bool),
    [S.$upper]: dart.nullable(core.Object),
    [S.$upperOpen]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(indexed_db.KeyRange, I[146]);
  dart.registerExtension("IDBKeyRange", indexed_db.KeyRange);
  indexed_db.ObjectStore = class ObjectStore extends _interceptors.Interceptor {
    [$add](value, key = null) {
      try {
        let request = null;
        if (key != null) {
          request = this[S._add$3](value, key);
        } else {
          request = this[S._add$3](value);
        }
        return indexed_db._completeRequest(dart.dynamic, indexed_db.Request.as(request));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [$clear]() {
      try {
        return indexed_db._completeRequest(dart.dynamic, this[S._clear$2]());
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$delete](key_OR_keyRange) {
      try {
        return indexed_db._completeRequest(dart.dynamic, this[S._delete$1](core.Object.as(key_OR_keyRange)));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$count](key_OR_range = null) {
      try {
        let request = this[S._count$2](key_OR_range);
        return indexed_db._completeRequest(core.int, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return T$0.FutureOfint().error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$put](value, key = null) {
      try {
        let request = null;
        if (key != null) {
          request = this[S._put](value, key);
        } else {
          request = this[S._put](value);
        }
        return indexed_db._completeRequest(dart.dynamic, indexed_db.Request.as(request));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$getObject](key) {
      try {
        let request = this[S._get](core.Object.as(key));
        return indexed_db._completeRequest(dart.dynamic, request);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          return async.Future.error(e, stacktrace);
        } else
          throw e$;
      }
    }
    [S.$openCursor](opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let range = opts && 'range' in opts ? opts.range : null;
      let direction = opts && 'direction' in opts ? opts.direction : null;
      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
      let key_OR_range = null;
      if (key != null) {
        if (range != null) {
          dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
        }
        key_OR_range = key;
      } else {
        key_OR_range = range;
      }
      let request = null;
      if (direction == null) {
        request = this[S._openCursor](key_OR_range);
      } else {
        request = this[S._openCursor](key_OR_range, direction);
      }
      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue, indexed_db.Request.as(request), autoAdvance);
    }
    [S.$createIndex](name, keyPath, opts) {
      if (name == null) dart.nullFailed(I[145], 861, 28, "name");
      let unique = opts && 'unique' in opts ? opts.unique : null;
      let multiEntry = opts && 'multiEntry' in opts ? opts.multiEntry : null;
      let options = new _js_helper.LinkedMap.new();
      if (unique != null) {
        options[$_set]("unique", unique);
      }
      if (multiEntry != null) {
        options[$_set]("multiEntry", multiEntry);
      }
      return this[S._createIndex](name, core.Object.as(keyPath), options);
    }
    get [S.$autoIncrement]() {
      return this.autoIncrement;
    }
    get [S.$indexNames]() {
      return this.indexNames;
    }
    get [S.$keyPath]() {
      return this.keyPath;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$transaction]() {
      return this.transaction;
    }
    [S._add$3](value, key = null) {
      if (key != null) {
        let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
        let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
        return this[S._add_1](value_1, key_2);
      }
      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
      return this[S._add_2](value_1);
    }
    [S._add_1](...args) {
      return this.add.apply(this, args);
    }
    [S._add_2](...args) {
      return this.add.apply(this, args);
    }
    [S._clear$2](...args) {
      return this.clear.apply(this, args);
    }
    [S._count$2](...args) {
      return this.count.apply(this, args);
    }
    [S._createIndex](name, keyPath, options = null) {
      if (name == null) dart.nullFailed(I[145], 923, 29, "name");
      if (keyPath == null) dart.nullFailed(I[145], 923, 42, "keyPath");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S._createIndex_1](name, keyPath, options_1);
      }
      return this[S._createIndex_2](name, keyPath);
    }
    [S._createIndex_1](...args) {
      return this.createIndex.apply(this, args);
    }
    [S._createIndex_2](...args) {
      return this.createIndex.apply(this, args);
    }
    [S._delete$1](...args) {
      return this.delete.apply(this, args);
    }
    [S.$deleteIndex](...args) {
      return this.deleteIndex.apply(this, args);
    }
    [S._get](...args) {
      return this.get.apply(this, args);
    }
    [S.$getAll](...args) {
      return this.getAll.apply(this, args);
    }
    [S.$getAllKeys](...args) {
      return this.getAllKeys.apply(this, args);
    }
    [S.$getKey](...args) {
      return this.getKey.apply(this, args);
    }
    [S.$index](...args) {
      return this.index.apply(this, args);
    }
    [S._openCursor](...args) {
      return this.openCursor.apply(this, args);
    }
    [S.$openKeyCursor](...args) {
      return this.openKeyCursor.apply(this, args);
    }
    [S._put](value, key = null) {
      if (key != null) {
        let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
        let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
        return this[S._put_1](value_1, key_2);
      }
      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
      return this[S._put_2](value_1);
    }
    [S._put_1](...args) {
      return this.put.apply(this, args);
    }
    [S._put_2](...args) {
      return this.put.apply(this, args);
    }
    static _cursorStreamFromResult(T, request, autoAdvance) {
      if (request == null) dart.nullFailed(I[145], 991, 15, "request");
      let controller = async.StreamController$(T).new({sync: true});
      request[S.$onError].listen(dart.bind(controller, 'addError'));
      request[S.$onSuccess].listen(dart.fn(e => {
        if (e == null) dart.nullFailed(I[145], 1000, 31, "e");
        let cursor = dart.nullable(T).as(request[S.$result]);
        if (cursor == null) {
          controller.close();
        } else {
          controller.add(cursor);
          if (autoAdvance === true && dart.test(controller.hasListener)) {
            cursor[S.$next]();
          }
        }
      }, T$0.EventTovoid()));
      return controller.stream;
    }
  };
  dart.addTypeTests(indexed_db.ObjectStore);
  dart.addTypeCaches(indexed_db.ObjectStore);
  dart.setMethodSignature(indexed_db.ObjectStore, () => ({
    __proto__: dart.getMethods(indexed_db.ObjectStore.__proto__),
    [$add]: dart.fnType(async.Future, [dart.dynamic], [dart.dynamic]),
    [$clear]: dart.fnType(async.Future, []),
    [S.$delete]: dart.fnType(async.Future, [dart.dynamic]),
    [S.$count]: dart.fnType(async.Future$(core.int), [], [dart.dynamic]),
    [S.$put]: dart.fnType(async.Future, [dart.dynamic], [dart.dynamic]),
    [S.$getObject]: dart.fnType(async.Future, [dart.dynamic]),
    [S.$openCursor]: dart.fnType(async.Stream$(indexed_db.CursorWithValue), [], {autoAdvance: dart.nullable(core.bool), direction: dart.nullable(core.String), key: dart.dynamic, range: dart.nullable(indexed_db.KeyRange)}, {}),
    [S.$createIndex]: dart.fnType(indexed_db.Index, [core.String, dart.dynamic], {multiEntry: dart.nullable(core.bool), unique: dart.nullable(core.bool)}, {}),
    [S._add$3]: dart.fnType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
    [S._add_1]: dart.fnType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
    [S._add_2]: dart.fnType(indexed_db.Request, [dart.dynamic]),
    [S._clear$2]: dart.fnType(indexed_db.Request, []),
    [S._count$2]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)]),
    [S._createIndex]: dart.fnType(indexed_db.Index, [core.String, core.Object], [dart.nullable(core.Map)]),
    [S._createIndex_1]: dart.fnType(indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S._createIndex_2]: dart.fnType(indexed_db.Index, [dart.dynamic, dart.dynamic]),
    [S._delete$1]: dart.fnType(indexed_db.Request, [core.Object]),
    [S.$deleteIndex]: dart.fnType(dart.void, [core.String]),
    [S._get]: dart.fnType(indexed_db.Request, [core.Object]),
    [S.$getAll]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
    [S.$getAllKeys]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.int)]),
    [S.$getKey]: dart.fnType(indexed_db.Request, [core.Object]),
    [S.$index]: dart.fnType(indexed_db.Index, [core.String]),
    [S._openCursor]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.String)]),
    [S.$openKeyCursor]: dart.fnType(indexed_db.Request, [dart.nullable(core.Object)], [dart.nullable(core.String)]),
    [S._put]: dart.fnType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
    [S._put_1]: dart.fnType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
    [S._put_2]: dart.fnType(indexed_db.Request, [dart.dynamic])
  }));
  dart.setGetterSignature(indexed_db.ObjectStore, () => ({
    __proto__: dart.getGetters(indexed_db.ObjectStore.__proto__),
    [S.$autoIncrement]: dart.nullable(core.bool),
    [S.$indexNames]: dart.nullable(core.List$(core.String)),
    [S.$keyPath]: dart.nullable(core.Object),
    [$name]: dart.nullable(core.String),
    [S.$transaction]: dart.nullable(indexed_db.Transaction)
  }));
  dart.setSetterSignature(indexed_db.ObjectStore, () => ({
    __proto__: dart.getSetters(indexed_db.ObjectStore.__proto__),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(indexed_db.ObjectStore, I[146]);
  dart.registerExtension("IDBObjectStore", indexed_db.ObjectStore);
  indexed_db.Observation = class Observation extends _interceptors.Interceptor {
    get [S.$key]() {
      return this.key;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S.$value]() {
      return this.value;
    }
  };
  dart.addTypeTests(indexed_db.Observation);
  dart.addTypeCaches(indexed_db.Observation);
  dart.setGetterSignature(indexed_db.Observation, () => ({
    __proto__: dart.getGetters(indexed_db.Observation.__proto__),
    [S.$key]: dart.nullable(core.Object),
    [S.$type]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(indexed_db.Observation, I[146]);
  dart.registerExtension("IDBObservation", indexed_db.Observation);
  indexed_db.Observer = class Observer extends _interceptors.Interceptor {
    static new(callback) {
      if (callback == null) dart.nullFailed(I[145], 1042, 37, "callback");
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.ObserverChangesTovoid(), callback, 1);
      return indexed_db.Observer._create_1(callback_1);
    }
    static _create_1(callback) {
      return new IDBObserver(callback);
    }
    [S.$observe](db, tx, options) {
      if (db == null) dart.nullFailed(I[145], 1049, 25, "db");
      if (tx == null) dart.nullFailed(I[145], 1049, 41, "tx");
      if (options == null) dart.nullFailed(I[145], 1049, 49, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[S._observe_1](db, tx, options_1);
      return;
    }
    [S._observe_1](...args) {
      return this.observe.apply(this, args);
    }
    [S.$unobserve](...args) {
      return this.unobserve.apply(this, args);
    }
  };
  dart.addTypeTests(indexed_db.Observer);
  dart.addTypeCaches(indexed_db.Observer);
  dart.setMethodSignature(indexed_db.Observer, () => ({
    __proto__: dart.getMethods(indexed_db.Observer.__proto__),
    [S.$observe]: dart.fnType(dart.void, [indexed_db.Database, indexed_db.Transaction, core.Map]),
    [S._observe_1]: dart.fnType(dart.void, [indexed_db.Database, indexed_db.Transaction, dart.dynamic]),
    [S.$unobserve]: dart.fnType(dart.void, [indexed_db.Database])
  }));
  dart.setLibraryUri(indexed_db.Observer, I[146]);
  dart.registerExtension("IDBObserver", indexed_db.Observer);
  indexed_db.ObserverChanges = class ObserverChanges extends _interceptors.Interceptor {
    get [S.$database]() {
      return this.database;
    }
    get [S.$records]() {
      return this.records;
    }
    get [S.$transaction]() {
      return this.transaction;
    }
  };
  dart.addTypeTests(indexed_db.ObserverChanges);
  dart.addTypeCaches(indexed_db.ObserverChanges);
  dart.setGetterSignature(indexed_db.ObserverChanges, () => ({
    __proto__: dart.getGetters(indexed_db.ObserverChanges.__proto__),
    [S.$database]: dart.nullable(indexed_db.Database),
    [S.$records]: dart.nullable(core.Object),
    [S.$transaction]: dart.nullable(indexed_db.Transaction)
  }));
  dart.setLibraryUri(indexed_db.ObserverChanges, I[146]);
  dart.registerExtension("IDBObserverChanges", indexed_db.ObserverChanges);
  indexed_db.Request = class Request extends html$.EventTarget {
    get [S.$error]() {
      return this.error;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S.$result]() {
      return indexed_db._convertNativeToDart_IDBAny(this[S._get_result]);
    }
    get [S._get_result]() {
      return this.result;
    }
    get [S.$source]() {
      return this.source;
    }
    get [S.$transaction]() {
      return this.transaction;
    }
    get [S.$onError]() {
      return indexed_db.Request.errorEvent.forTarget(this);
    }
    get [S.$onSuccess]() {
      return indexed_db.Request.successEvent.forTarget(this);
    }
  };
  dart.addTypeTests(indexed_db.Request);
  dart.addTypeCaches(indexed_db.Request);
  dart.setGetterSignature(indexed_db.Request, () => ({
    __proto__: dart.getGetters(indexed_db.Request.__proto__),
    [S.$error]: dart.nullable(html$.DomException),
    [S.$readyState]: dart.nullable(core.String),
    [S.$result]: dart.dynamic,
    [S._get_result]: dart.dynamic,
    [S.$source]: dart.nullable(core.Object),
    [S.$transaction]: dart.nullable(indexed_db.Transaction),
    [S.$onError]: async.Stream$(html$.Event),
    [S.$onSuccess]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(indexed_db.Request, I[146]);
  dart.defineLazy(indexed_db.Request, {
    /*indexed_db.Request.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*indexed_db.Request.successEvent*/get successEvent() {
      return C[218] || CT.C218;
    }
  }, false);
  dart.registerExtension("IDBRequest", indexed_db.Request);
  indexed_db.OpenDBRequest = class OpenDBRequest extends indexed_db.Request {
    get [S.$onBlocked]() {
      return indexed_db.OpenDBRequest.blockedEvent.forTarget(this);
    }
    get [S.$onUpgradeNeeded]() {
      return indexed_db.OpenDBRequest.upgradeNeededEvent.forTarget(this);
    }
  };
  dart.addTypeTests(indexed_db.OpenDBRequest);
  dart.addTypeCaches(indexed_db.OpenDBRequest);
  dart.setGetterSignature(indexed_db.OpenDBRequest, () => ({
    __proto__: dart.getGetters(indexed_db.OpenDBRequest.__proto__),
    [S.$onBlocked]: async.Stream$(html$.Event),
    [S.$onUpgradeNeeded]: async.Stream$(indexed_db.VersionChangeEvent)
  }));
  dart.setLibraryUri(indexed_db.OpenDBRequest, I[146]);
  dart.defineLazy(indexed_db.OpenDBRequest, {
    /*indexed_db.OpenDBRequest.blockedEvent*/get blockedEvent() {
      return C[219] || CT.C219;
    },
    /*indexed_db.OpenDBRequest.upgradeNeededEvent*/get upgradeNeededEvent() {
      return C[220] || CT.C220;
    }
  }, false);
  dart.registerExtension("IDBOpenDBRequest", indexed_db.OpenDBRequest);
  dart.registerExtension("IDBVersionChangeRequest", indexed_db.OpenDBRequest);
  indexed_db.Transaction = class Transaction extends html$.EventTarget {
    get [S.$completed]() {
      let completer = T$0.CompleterOfDatabase().new();
      this[S.$onComplete].first.then(core.Null, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[145], 1181, 33, "_");
        completer.complete(this.db);
      }, T$0.EventToNull()));
      this[S.$onError].first.then(core.Null, dart.fn(e => {
        if (e == null) dart.nullFailed(I[145], 1185, 30, "e");
        completer.completeError(e);
      }, T$0.EventToNull()));
      this[S.$onAbort].first.then(core.Null, dart.fn(e => {
        if (e == null) dart.nullFailed(I[145], 1189, 30, "e");
        if (!dart.test(completer.isCompleted)) {
          completer.completeError(e);
        }
      }, T$0.EventToNull()));
      return completer.future;
    }
    get [S.$db]() {
      return this.db;
    }
    get [S.$error]() {
      return this.error;
    }
    get [S.$mode]() {
      return this.mode;
    }
    get [S.$objectStoreNames]() {
      return this.objectStoreNames;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S.$objectStore](...args) {
      return this.objectStore.apply(this, args);
    }
    get [S.$onAbort]() {
      return indexed_db.Transaction.abortEvent.forTarget(this);
    }
    get [S.$onComplete]() {
      return indexed_db.Transaction.completeEvent.forTarget(this);
    }
    get [S.$onError]() {
      return indexed_db.Transaction.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(indexed_db.Transaction);
  dart.addTypeCaches(indexed_db.Transaction);
  dart.setMethodSignature(indexed_db.Transaction, () => ({
    __proto__: dart.getMethods(indexed_db.Transaction.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S.$objectStore]: dart.fnType(indexed_db.ObjectStore, [core.String])
  }));
  dart.setGetterSignature(indexed_db.Transaction, () => ({
    __proto__: dart.getGetters(indexed_db.Transaction.__proto__),
    [S.$completed]: async.Future$(indexed_db.Database),
    [S.$db]: dart.nullable(indexed_db.Database),
    [S.$error]: dart.nullable(html$.DomException),
    [S.$mode]: dart.nullable(core.String),
    [S.$objectStoreNames]: dart.nullable(core.List$(core.String)),
    [S.$onAbort]: async.Stream$(html$.Event),
    [S.$onComplete]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(indexed_db.Transaction, I[146]);
  dart.defineLazy(indexed_db.Transaction, {
    /*indexed_db.Transaction.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*indexed_db.Transaction.completeEvent*/get completeEvent() {
      return C[221] || CT.C221;
    },
    /*indexed_db.Transaction.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("IDBTransaction", indexed_db.Transaction);
  html$.Event = class Event$ extends _interceptors.Interceptor {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 15487, 24, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 15487, 36, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 15487, 58, "cancelable");
      return html$.Event.eventType("Event", type, {canBubble: canBubble, cancelable: cancelable});
    }
    static eventType(type, name, opts) {
      if (type == null) dart.nullFailed(I[147], 15500, 34, "type");
      if (name == null) dart.nullFailed(I[147], 15500, 47, "name");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 15501, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 15501, 35, "cancelable");
      let e = html$.document[S._createEvent](type);
      e[S._initEvent](name, canBubble, cancelable);
      return e;
    }
    get [S._selector]() {
      return this._selector;
    }
    set [S._selector](value) {
      this._selector = value;
    }
    get [S.$matchingTarget]() {
      if (this[S._selector] == null) {
        dart.throw(new core.UnsupportedError.new("Cannot call matchingTarget if this Event did" + " not arise as a result of event delegation."));
      }
      let currentTarget = T$0.ElementN().as(this[S.$currentTarget]);
      let target = T$0.ElementN().as(this[S.$target]);
      let matchedTarget = null;
      do {
        if (dart.test(dart.nullCheck(target)[S.$matches](dart.nullCheck(this[S._selector])))) return target;
        target = target[S.$parent];
      } while (target != null && !dart.equals(target, dart.nullCheck(currentTarget)[S.$parent]));
      dart.throw(new core.StateError.new("No selector matched for populating matchedTarget."));
    }
    get [S.$path]() {
      return !!this.composedPath ? this.composedPath() : T$0.JSArrayOfEventTarget().of([]);
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 15534, 26, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.Event._create_1(type, eventInitDict_1);
      }
      return html$.Event._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new Event(type, eventInitDict);
    }
    static _create_2(type) {
      return new Event(type);
    }
    get [S.$bubbles]() {
      return this.bubbles;
    }
    get [S.$cancelable]() {
      return this.cancelable;
    }
    get [S.$composed]() {
      return this.composed;
    }
    get [S.$currentTarget]() {
      return html$._convertNativeToDart_EventTarget(this[S._get_currentTarget]);
    }
    get [S._get_currentTarget]() {
      return this.currentTarget;
    }
    get [S.$defaultPrevented]() {
      return this.defaultPrevented;
    }
    get [S.$eventPhase]() {
      return this.eventPhase;
    }
    get [S.$isTrusted]() {
      return this.isTrusted;
    }
    get [S.$target]() {
      return html$._convertNativeToDart_EventTarget(this[S._get_target]);
    }
    get [S._get_target]() {
      return this.target;
    }
    get [S.$timeStamp]() {
      return this.timeStamp;
    }
    get [S.$type]() {
      return this.type;
    }
    [S.$composedPath](...args) {
      return this.composedPath.apply(this, args);
    }
    [S._initEvent](...args) {
      return this.initEvent.apply(this, args);
    }
    [S.$preventDefault](...args) {
      return this.preventDefault.apply(this, args);
    }
    [S.$stopImmediatePropagation](...args) {
      return this.stopImmediatePropagation.apply(this, args);
    }
    [S.$stopPropagation](...args) {
      return this.stopPropagation.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Event);
  dart.addTypeCaches(html$.Event);
  dart.setMethodSignature(html$.Event, () => ({
    __proto__: dart.getMethods(html$.Event.__proto__),
    [S.$composedPath]: dart.fnType(core.List$(html$.EventTarget), []),
    [S._initEvent]: dart.fnType(dart.void, [core.String], [dart.nullable(core.bool), dart.nullable(core.bool)]),
    [S.$preventDefault]: dart.fnType(dart.void, []),
    [S.$stopImmediatePropagation]: dart.fnType(dart.void, []),
    [S.$stopPropagation]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.Event, () => ({
    __proto__: dart.getGetters(html$.Event.__proto__),
    [S._selector]: dart.nullable(core.String),
    [S.$matchingTarget]: html$.Element,
    [S.$path]: core.List$(html$.EventTarget),
    [S.$bubbles]: dart.nullable(core.bool),
    [S.$cancelable]: dart.nullable(core.bool),
    [S.$composed]: dart.nullable(core.bool),
    [S.$currentTarget]: dart.nullable(html$.EventTarget),
    [S._get_currentTarget]: dart.dynamic,
    [S.$defaultPrevented]: core.bool,
    [S.$eventPhase]: core.int,
    [S.$isTrusted]: dart.nullable(core.bool),
    [S.$target]: dart.nullable(html$.EventTarget),
    [S._get_target]: dart.dynamic,
    [S.$timeStamp]: dart.nullable(core.num),
    [S.$type]: core.String
  }));
  dart.setSetterSignature(html$.Event, () => ({
    __proto__: dart.getSetters(html$.Event.__proto__),
    [S._selector]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Event, I[148]);
  dart.defineLazy(html$.Event, {
    /*html$.Event.AT_TARGET*/get AT_TARGET() {
      return 2;
    },
    /*html$.Event.BUBBLING_PHASE*/get BUBBLING_PHASE() {
      return 3;
    },
    /*html$.Event.CAPTURING_PHASE*/get CAPTURING_PHASE() {
      return 1;
    }
  }, false);
  dart.registerExtension("Event", html$.Event);
  dart.registerExtension("InputEvent", html$.Event);
  dart.registerExtension("SubmitEvent", html$.Event);
  indexed_db.VersionChangeEvent = class VersionChangeEvent extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[145], 1266, 37, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return indexed_db.VersionChangeEvent._create_1(type, eventInitDict_1);
      }
      return indexed_db.VersionChangeEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new IDBVersionChangeEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new IDBVersionChangeEvent(type);
    }
    get [S.$dataLoss]() {
      return this.dataLoss;
    }
    get [S.$dataLossMessage]() {
      return this.dataLossMessage;
    }
    get [S.$newVersion]() {
      return this.newVersion;
    }
    get [S.$oldVersion]() {
      return this.oldVersion;
    }
    get [S.$target]() {
      return this.target;
    }
  };
  dart.addTypeTests(indexed_db.VersionChangeEvent);
  dart.addTypeCaches(indexed_db.VersionChangeEvent);
  dart.setGetterSignature(indexed_db.VersionChangeEvent, () => ({
    __proto__: dart.getGetters(indexed_db.VersionChangeEvent.__proto__),
    [S.$dataLoss]: dart.nullable(core.String),
    [S.$dataLossMessage]: dart.nullable(core.String),
    [S.$newVersion]: dart.nullable(core.int),
    [S.$oldVersion]: dart.nullable(core.int),
    [S.$target]: indexed_db.OpenDBRequest
  }));
  dart.setLibraryUri(indexed_db.VersionChangeEvent, I[146]);
  dart.registerExtension("IDBVersionChangeEvent", indexed_db.VersionChangeEvent);
  indexed_db._convertNativeToDart_IDBKey = function _convertNativeToDart_IDBKey(nativeKey) {
    function containsDate(object) {
      if (dart.test(html_common.isJavaScriptDate(object))) return true;
      if (core.List.is(object)) {
        for (let i = 0; i < dart.notNull(object[$length]); i = i + 1) {
          if (dart.dtest(containsDate(object[$_get](i)))) return true;
        }
      }
      return false;
    }
    dart.fn(containsDate, T$0.dynamicTobool());
    if (dart.test(containsDate(nativeKey))) {
      dart.throw(new core.UnimplementedError.new("Key containing DateTime"));
    }
    return nativeKey;
  };
  indexed_db._convertDartToNative_IDBKey = function _convertDartToNative_IDBKey(dartKey) {
    return dartKey;
  };
  indexed_db._convertNativeToDart_IDBAny = function _convertNativeToDart_IDBAny(object) {
    return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false});
  };
  indexed_db._completeRequest = function _completeRequest(T, request) {
    if (request == null) dart.nullFailed(I[145], 544, 39, "request");
    let completer = async.Completer$(T).sync();
    request[S.$onSuccess].listen(dart.fn(e => {
      if (e == null) dart.nullFailed(I[145], 548, 29, "e");
      let result = T.as(request[S.$result]);
      completer.complete(result);
    }, T$0.EventTovoid()));
    request[S.$onError].listen(dart.bind(completer, 'completeError'));
    return completer.future;
  };
  dart.defineLazy(indexed_db, {
    /*indexed_db._idbKey*/get _idbKey() {
      return "JSExtendableArray|=Object|num|String";
    },
    /*indexed_db._annotation_Creates_IDBKey*/get _annotation_Creates_IDBKey() {
      return C[222] || CT.C222;
    },
    /*indexed_db._annotation_Returns_IDBKey*/get _annotation_Returns_IDBKey() {
      return C[223] || CT.C223;
    }
  }, false);
  html$.Node = class Node extends html$.EventTarget {
    get [S.$nodes]() {
      return new html$._ChildNodeListLazy.new(this);
    }
    set [S.$nodes](value) {
      if (value == null) dart.nullFailed(I[147], 23177, 28, "value");
      let copy = value[$toList]();
      this[S.$text] = "";
      for (let node of copy) {
        this[S.$append](node);
      }
    }
    [$remove]() {
      if (this.parentNode != null) {
        let parent = dart.nullCheck(this.parentNode);
        parent[S$._removeChild](this);
      }
    }
    [S$.$replaceWith](otherNode) {
      if (otherNode == null) dart.nullFailed(I[147], 23202, 25, "otherNode");
      try {
        let parent = dart.nullCheck(this.parentNode);
        parent[S$._replaceChild](otherNode, this);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return this;
    }
    [S$.$insertAllBefore](newNodes, refChild) {
      if (newNodes == null) dart.nullFailed(I[147], 23217, 39, "newNodes");
      if (refChild == null) dart.nullFailed(I[147], 23217, 54, "refChild");
      if (html$._ChildNodeListLazy.is(newNodes)) {
        let otherList = newNodes;
        if (otherList[S$._this] === this) {
          dart.throw(new core.ArgumentError.new(newNodes));
        }
        for (let i = 0, len = otherList.length; i < dart.notNull(len); i = i + 1) {
          this.insertBefore(dart.nullCheck(otherList[S$._this].firstChild), refChild);
        }
      } else {
        for (let node of newNodes) {
          this.insertBefore(node, refChild);
        }
      }
    }
    [S$._clearChildren]() {
      while (this.firstChild != null) {
        this[S$._removeChild](dart.nullCheck(this.firstChild));
      }
    }
    [$toString]() {
      let value = this.nodeValue;
      return value == null ? super[$toString]() : value;
    }
    get [S$.$childNodes]() {
      return this.childNodes;
    }
    get [S.$baseUri]() {
      return this.baseURI;
    }
    get [S$.$firstChild]() {
      return this.firstChild;
    }
    get [S$.$isConnected]() {
      return this.isConnected;
    }
    get [S$.$lastChild]() {
      return this.lastChild;
    }
    get [S.$nextNode]() {
      return this.nextSibling;
    }
    get [S$.$nodeName]() {
      return this.nodeName;
    }
    get [S$.$nodeType]() {
      return this.nodeType;
    }
    get [S$.$nodeValue]() {
      return this.nodeValue;
    }
    get [S$.$ownerDocument]() {
      return this.ownerDocument;
    }
    get [S.$parent]() {
      return this.parentElement;
    }
    get [S$.$parentNode]() {
      return this.parentNode;
    }
    get [S$.$previousNode]() {
      return this.previousSibling;
    }
    get [S.$text]() {
      return this.textContent;
    }
    set [S.$text](value) {
      this.textContent = value;
    }
    [S.$append](...args) {
      return this.appendChild.apply(this, args);
    }
    [S$.$clone](...args) {
      return this.cloneNode.apply(this, args);
    }
    [$contains](...args) {
      return this.contains.apply(this, args);
    }
    [S$.$getRootNode](options = null) {
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S$._getRootNode_1](options_1);
      }
      return this[S$._getRootNode_2]();
    }
    [S$._getRootNode_1](...args) {
      return this.getRootNode.apply(this, args);
    }
    [S$._getRootNode_2](...args) {
      return this.getRootNode.apply(this, args);
    }
    [S$.$hasChildNodes](...args) {
      return this.hasChildNodes.apply(this, args);
    }
    [S$.$insertBefore](...args) {
      return this.insertBefore.apply(this, args);
    }
    [S$._removeChild](...args) {
      return this.removeChild.apply(this, args);
    }
    [S$._replaceChild](...args) {
      return this.replaceChild.apply(this, args);
    }
  };
  (html$.Node._created = function() {
    html$.Node.__proto__._created.call(this);
    ;
  }).prototype = html$.Node.prototype;
  dart.addTypeTests(html$.Node);
  dart.addTypeCaches(html$.Node);
  dart.setMethodSignature(html$.Node, () => ({
    __proto__: dart.getMethods(html$.Node.__proto__),
    [$remove]: dart.fnType(dart.void, []),
    [S$.$replaceWith]: dart.fnType(html$.Node, [html$.Node]),
    [S$.$insertAllBefore]: dart.fnType(dart.void, [core.Iterable$(html$.Node), html$.Node]),
    [S$._clearChildren]: dart.fnType(dart.void, []),
    [S.$append]: dart.fnType(html$.Node, [html$.Node]),
    [S$.$clone]: dart.fnType(html$.Node, [dart.nullable(core.bool)]),
    [$contains]: dart.fnType(core.bool, [dart.nullable(html$.Node)]),
    [S$.$getRootNode]: dart.fnType(html$.Node, [], [dart.nullable(core.Map)]),
    [S$._getRootNode_1]: dart.fnType(html$.Node, [dart.dynamic]),
    [S$._getRootNode_2]: dart.fnType(html$.Node, []),
    [S$.$hasChildNodes]: dart.fnType(core.bool, []),
    [S$.$insertBefore]: dart.fnType(html$.Node, [html$.Node, dart.nullable(html$.Node)]),
    [S$._removeChild]: dart.fnType(html$.Node, [html$.Node]),
    [S$._replaceChild]: dart.fnType(html$.Node, [html$.Node, html$.Node])
  }));
  dart.setGetterSignature(html$.Node, () => ({
    __proto__: dart.getGetters(html$.Node.__proto__),
    [S.$nodes]: core.List$(html$.Node),
    [S$.$childNodes]: core.List$(html$.Node),
    [S.$baseUri]: dart.nullable(core.String),
    [S$.$firstChild]: dart.nullable(html$.Node),
    [S$.$isConnected]: dart.nullable(core.bool),
    [S$.$lastChild]: dart.nullable(html$.Node),
    [S.$nextNode]: dart.nullable(html$.Node),
    [S$.$nodeName]: dart.nullable(core.String),
    [S$.$nodeType]: core.int,
    [S$.$nodeValue]: dart.nullable(core.String),
    [S$.$ownerDocument]: dart.nullable(html$.Document),
    [S.$parent]: dart.nullable(html$.Element),
    [S$.$parentNode]: dart.nullable(html$.Node),
    [S$.$previousNode]: dart.nullable(html$.Node),
    [S.$text]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.Node, () => ({
    __proto__: dart.getSetters(html$.Node.__proto__),
    [S.$nodes]: core.Iterable$(html$.Node),
    [S.$text]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Node, I[148]);
  dart.defineLazy(html$.Node, {
    /*html$.Node.ATTRIBUTE_NODE*/get ATTRIBUTE_NODE() {
      return 2;
    },
    /*html$.Node.CDATA_SECTION_NODE*/get CDATA_SECTION_NODE() {
      return 4;
    },
    /*html$.Node.COMMENT_NODE*/get COMMENT_NODE() {
      return 8;
    },
    /*html$.Node.DOCUMENT_FRAGMENT_NODE*/get DOCUMENT_FRAGMENT_NODE() {
      return 11;
    },
    /*html$.Node.DOCUMENT_NODE*/get DOCUMENT_NODE() {
      return 9;
    },
    /*html$.Node.DOCUMENT_TYPE_NODE*/get DOCUMENT_TYPE_NODE() {
      return 10;
    },
    /*html$.Node.ELEMENT_NODE*/get ELEMENT_NODE() {
      return 1;
    },
    /*html$.Node.ENTITY_NODE*/get ENTITY_NODE() {
      return 6;
    },
    /*html$.Node.ENTITY_REFERENCE_NODE*/get ENTITY_REFERENCE_NODE() {
      return 5;
    },
    /*html$.Node.NOTATION_NODE*/get NOTATION_NODE() {
      return 12;
    },
    /*html$.Node.PROCESSING_INSTRUCTION_NODE*/get PROCESSING_INSTRUCTION_NODE() {
      return 7;
    },
    /*html$.Node.TEXT_NODE*/get TEXT_NODE() {
      return 3;
    }
  }, false);
  dart.registerExtension("Node", html$.Node);
  html$.Element = class Element extends html$.Node {
    static html(html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      let fragment = dart.nullCheck(html$.document.body)[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
      return html$.Element.as(fragment[S.$nodes][$where](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 12731, 34, "e");
        return html$.Element.is(e);
      }, T$0.NodeTobool()))[$single]);
    }
    static tag(tag, typeExtension = null) {
      if (tag == null) dart.nullFailed(I[147], 12776, 30, "tag");
      return html$.Element.as(html$._ElementFactoryProvider.createElement_tag(tag, typeExtension));
    }
    static a() {
      return html$.AnchorElement.new();
    }
    static article() {
      return html$.Element.tag("article");
    }
    static aside() {
      return html$.Element.tag("aside");
    }
    static audio() {
      return html$.Element.tag("audio");
    }
    static br() {
      return html$.BRElement.new();
    }
    static canvas() {
      return html$.CanvasElement.new();
    }
    static div() {
      return html$.DivElement.new();
    }
    static footer() {
      return html$.Element.tag("footer");
    }
    static header() {
      return html$.Element.tag("header");
    }
    static hr() {
      return html$.Element.tag("hr");
    }
    static iframe() {
      return html$.Element.tag("iframe");
    }
    static img() {
      return html$.Element.tag("img");
    }
    static li() {
      return html$.Element.tag("li");
    }
    static nav() {
      return html$.Element.tag("nav");
    }
    static ol() {
      return html$.Element.tag("ol");
    }
    static option() {
      return html$.Element.tag("option");
    }
    static p() {
      return html$.Element.tag("p");
    }
    static pre() {
      return html$.Element.tag("pre");
    }
    static section() {
      return html$.Element.tag("section");
    }
    static select() {
      return html$.Element.tag("select");
    }
    static span() {
      return html$.Element.tag("span");
    }
    static svg() {
      return html$.Element.tag("svg");
    }
    static table() {
      return html$.Element.tag("table");
    }
    static td() {
      return html$.Element.tag("td");
    }
    static textarea() {
      return html$.Element.tag("textarea");
    }
    static th() {
      return html$.Element.tag("th");
    }
    static tr() {
      return html$.Element.tag("tr");
    }
    static ul() {
      return html$.Element.tag("ul");
    }
    static video() {
      return html$.Element.tag("video");
    }
    get [S.$attributes]() {
      return new html$._ElementAttributeMap.new(this);
    }
    set [S.$attributes](value) {
      if (value == null) dart.nullFailed(I[147], 12936, 38, "value");
      let attributes = this[S.$attributes];
      attributes[$clear]();
      for (let key of value[$keys]) {
        attributes[$_set](key, dart.nullCheck(value[$_get](key)));
      }
    }
    [S.$getAttribute](name) {
      if (name == null) dart.nullFailed(I[147], 12945, 31, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12948, 12, "name != null");
      return this[S._getAttribute](name);
    }
    [S.$getAttributeNS](namespaceURI, name) {
      if (name == null) dart.nullFailed(I[147], 12953, 55, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12957, 12, "name != null");
      return this[S._getAttributeNS](namespaceURI, name);
    }
    [S.$hasAttribute](name) {
      if (name == null) dart.nullFailed(I[147], 12962, 28, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12965, 12, "name != null");
      return this[S._hasAttribute](name);
    }
    [S.$hasAttributeNS](namespaceURI, name) {
      if (name == null) dart.nullFailed(I[147], 12970, 52, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12974, 12, "name != null");
      return this[S._hasAttributeNS](namespaceURI, name);
    }
    [S.$removeAttribute](name) {
      if (name == null) dart.nullFailed(I[147], 12979, 31, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12982, 12, "name != null");
      this[S._removeAttribute](name);
    }
    [S.$removeAttributeNS](namespaceURI, name) {
      if (name == null) dart.nullFailed(I[147], 12987, 55, "name");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12990, 12, "name != null");
      this[S._removeAttributeNS](namespaceURI, name);
    }
    [S.$setAttribute](name, value) {
      if (name == null) dart.nullFailed(I[147], 12995, 28, "name");
      if (value == null) dart.nullFailed(I[147], 12995, 41, "value");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 12998, 12, "name != null");
      this[S._setAttribute](name, value);
    }
    [S.$setAttributeNS](namespaceURI, name, value) {
      if (name == null) dart.nullFailed(I[147], 13004, 52, "name");
      if (value == null) dart.nullFailed(I[147], 13004, 65, "value");
      if (!(name != null)) dart.assertFailed("Attribute name cannot be null", I[147], 13007, 12, "name != null");
      this[S._setAttributeNS](namespaceURI, name, value);
    }
    get [S.$children]() {
      return new html$._ChildrenElementList._wrap(this);
    }
    get [S._children]() {
      return this.children;
    }
    set [S.$children](value) {
      if (value == null) dart.nullFailed(I[147], 13036, 30, "value");
      let copy = value[$toList]();
      let children = this[S.$children];
      children[$clear]();
      children[$addAll](copy);
    }
    [S.$querySelectorAll](T, selectors) {
      if (selectors == null) dart.nullFailed(I[147], 13055, 61, "selectors");
      return new (html$._FrozenElementList$(T))._wrap(this[S._querySelectorAll](selectors));
    }
    [S._setApplyScroll](...args) {
      return this.setApplyScroll.apply(this, args);
    }
    [S.$setApplyScroll](nativeScrollBehavior) {
      if (nativeScrollBehavior == null) dart.nullFailed(I[147], 13062, 45, "nativeScrollBehavior");
      let completer = T$0.CompleterOfScrollState().new();
      this[S._setApplyScroll](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 13064, 22, "value");
        completer.complete(value);
      }, T$0.ScrollStateTovoid()), nativeScrollBehavior);
      return completer.future;
    }
    [S._setDistributeScroll](...args) {
      return this.setDistributeScroll.apply(this, args);
    }
    [S.$setDistributeScroll](nativeScrollBehavior) {
      if (nativeScrollBehavior == null) dart.nullFailed(I[147], 13074, 50, "nativeScrollBehavior");
      let completer = T$0.CompleterOfScrollState().new();
      this[S._setDistributeScroll](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 13076, 27, "value");
        completer.complete(value);
      }, T$0.ScrollStateTovoid()), nativeScrollBehavior);
      return completer.future;
    }
    get [S.$classes]() {
      return new html$._ElementCssClassSet.new(this);
    }
    set [S.$classes](value) {
      if (value == null) dart.nullFailed(I[147], 13094, 32, "value");
      let classSet = this[S.$classes];
      classSet.clear();
      classSet.addAll(value);
    }
    get [S.$dataset]() {
      return new html$._DataAttributeMap.new(this[S.$attributes]);
    }
    set [S.$dataset](value) {
      if (value == null) dart.nullFailed(I[147], 13128, 35, "value");
      let data = this[S.$dataset];
      data[$clear]();
      for (let key of value[$keys]) {
        data[$_set](key, dart.nullCheck(value[$_get](key)));
      }
    }
    [S.$getNamespacedAttributes](namespace) {
      if (namespace == null) dart.nullFailed(I[147], 13141, 54, "namespace");
      return new html$._NamespacedAttributeMap.new(this, namespace);
    }
    [S.$getComputedStyle](pseudoElement = null) {
      if (pseudoElement == null) {
        pseudoElement = "";
      }
      return html$.window[S._getComputedStyle](this, pseudoElement);
    }
    get [S.$client]() {
      return new (T$0.RectangleOfnum()).new(dart.nullCheck(this.clientLeft), dart.nullCheck(this.clientTop), this.clientWidth, this.clientHeight);
    }
    get [S.$offset]() {
      return new (T$0.RectangleOfnum()).new(this[S.$offsetLeft], this[S.$offsetTop], this[S.$offsetWidth], this[S.$offsetHeight]);
    }
    [S.$appendText](text) {
      if (text == null) dart.nullFailed(I[147], 13187, 26, "text");
      this[S.$append](html$.Text.new(text));
    }
    [S.$appendHtml](text, opts) {
      if (text == null) dart.nullFailed(I[147], 13195, 26, "text");
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      this[S.$insertAdjacentHtml]("beforeend", text, {validator: validator, treeSanitizer: treeSanitizer});
    }
    static isTagSupported(tag) {
      if (tag == null) dart.nullFailed(I[147], 13206, 37, "tag");
      let e = html$._ElementFactoryProvider.createElement_tag(tag, null);
      return html$.Element.is(e) && !html$.UnknownElement.is(e);
    }
    [S.$attached]() {
      this[S.$enteredView]();
    }
    [S.$detached]() {
      this[S.$leftView]();
    }
    [S.$enteredView]() {
    }
    [S.$getClientRects]() {
      let value = this[S._getClientRects]();
      let jsProto = value.prototype;
      if (jsProto == null) {
        value.prototype = Object.create(null);
      }
      _js_helper.applyExtension("DOMRectList", value);
      return value;
    }
    [S.$leftView]() {
    }
    [S.$animate](frames, timing = null) {
      if (frames == null) dart.nullFailed(I[147], 13282, 52, "frames");
      if (!core.Iterable.is(frames) || !dart.test(frames[$every](dart.fn(x => {
        if (x == null) dart.nullFailed(I[147], 13283, 48, "x");
        return core.Map.is(x);
      }, T$0.MapOfString$dynamicTobool())))) {
        dart.throw(new core.ArgumentError.new("The frames parameter should be a List of Maps " + "with frame information"));
      }
      let convertedFrames = null;
      if (core.Iterable.is(frames)) {
        convertedFrames = frames[$map](dart.dynamic, C[224] || CT.C224)[$toList]();
      } else {
        convertedFrames = frames;
      }
      let convertedTiming = core.Map.is(timing) ? html_common.convertDartToNative_Dictionary(timing) : timing;
      return convertedTiming == null ? this[S._animate](core.Object.as(convertedFrames)) : this[S._animate](core.Object.as(convertedFrames), convertedTiming);
    }
    [S._animate](...args) {
      return this.animate.apply(this, args);
    }
    [S.$attributeChanged](name, oldValue, newValue) {
      if (name == null) dart.nullFailed(I[147], 13305, 32, "name");
      if (oldValue == null) dart.nullFailed(I[147], 13305, 45, "oldValue");
      if (newValue == null) dart.nullFailed(I[147], 13305, 62, "newValue");
    }
    get [S.$localName]() {
      return this[S._localName];
    }
    get [S.$namespaceUri]() {
      return this[S._namespaceUri];
    }
    [$toString]() {
      return this[S.$localName];
    }
    [S.$scrollIntoView](alignment = null) {
      let hasScrollIntoViewIfNeeded = true;
      hasScrollIntoViewIfNeeded = !!this.scrollIntoViewIfNeeded;
      if (dart.equals(alignment, html$.ScrollAlignment.TOP)) {
        this[S._scrollIntoView](true);
      } else if (dart.equals(alignment, html$.ScrollAlignment.BOTTOM)) {
        this[S._scrollIntoView](false);
      } else if (hasScrollIntoViewIfNeeded) {
        if (dart.equals(alignment, html$.ScrollAlignment.CENTER)) {
          this[S._scrollIntoViewIfNeeded](true);
        } else {
          this[S._scrollIntoViewIfNeeded]();
        }
      } else {
        this[S._scrollIntoView]();
      }
    }
    static _determineMouseWheelEventType(e) {
      if (e == null) dart.nullFailed(I[147], 13378, 59, "e");
      return "wheel";
    }
    static _determineTransitionEventType(e) {
      if (e == null) dart.nullFailed(I[147], 13390, 59, "e");
      if (dart.test(html_common.Device.isWebKit)) {
        return "webkitTransitionEnd";
      } else if (dart.test(html_common.Device.isOpera)) {
        return "oTransitionEnd";
      }
      return "transitionend";
    }
    [S.$insertAdjacentText](where, text) {
      if (where == null) dart.nullFailed(I[147], 13410, 34, "where");
      if (text == null) dart.nullFailed(I[147], 13410, 48, "text");
      if (!!this.insertAdjacentText) {
        this[S._insertAdjacentText](where, text);
      } else {
        this[S._insertAdjacentNode](where, html$.Text.new(text));
      }
    }
    [S._insertAdjacentText](...args) {
      return this.insertAdjacentText.apply(this, args);
    }
    [S.$insertAdjacentHtml](where, html, opts) {
      if (where == null) dart.nullFailed(I[147], 13443, 34, "where");
      if (html == null) dart.nullFailed(I[147], 13443, 48, "html");
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
        this[S._insertAdjacentHtml](where, html);
      } else {
        this[S._insertAdjacentNode](where, this[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
      }
    }
    [S._insertAdjacentHtml](...args) {
      return this.insertAdjacentHTML.apply(this, args);
    }
    [S.$insertAdjacentElement](where, element) {
      if (where == null) dart.nullFailed(I[147], 13468, 40, "where");
      if (element == null) dart.nullFailed(I[147], 13468, 55, "element");
      if (!!this.insertAdjacentElement) {
        this[S._insertAdjacentElement](where, element);
      } else {
        this[S._insertAdjacentNode](where, element);
      }
      return element;
    }
    [S._insertAdjacentElement](...args) {
      return this.insertAdjacentElement.apply(this, args);
    }
    [S._insertAdjacentNode](where, node) {
      if (where == null) dart.nullFailed(I[147], 13480, 35, "where");
      if (node == null) dart.nullFailed(I[147], 13480, 47, "node");
      switch (where[$toLowerCase]()) {
        case "beforebegin":
        {
          dart.nullCheck(this.parentNode).insertBefore(node, this);
          break;
        }
        case "afterbegin":
        {
          let first = dart.notNull(this[S.$nodes][$length]) > 0 ? this[S.$nodes][$_get](0) : null;
          this.insertBefore(node, first);
          break;
        }
        case "beforeend":
        {
          this[S.$append](node);
          break;
        }
        case "afterend":
        {
          dart.nullCheck(this.parentNode).insertBefore(node, this[S.$nextNode]);
          break;
        }
        default:
        {
          dart.throw(new core.ArgumentError.new("Invalid position " + dart.str(where)));
        }
      }
    }
    [S.$matches](selectors) {
      if (selectors == null) dart.nullFailed(I[147], 13503, 23, "selectors");
      if (!!this.matches) {
        return this.matches(selectors);
      } else if (!!this.webkitMatchesSelector) {
        return this.webkitMatchesSelector(selectors);
      } else if (!!this.mozMatchesSelector) {
        return this.mozMatchesSelector(selectors);
      } else if (!!this.msMatchesSelector) {
        return this.msMatchesSelector(selectors);
      } else if (!!this.oMatchesSelector) {
        return this.oMatchesSelector(selectors);
      } else {
        dart.throw(new core.UnsupportedError.new("Not supported on this platform"));
      }
    }
    [S.$matchesWithAncestors](selectors) {
      if (selectors == null) dart.nullFailed(I[147], 13520, 36, "selectors");
      let elem = this;
      do {
        if (dart.test(dart.nullCheck(elem)[S.$matches](selectors))) return true;
        elem = elem[S.$parent];
      } while (elem != null);
      return false;
    }
    [S.$createShadowRoot]() {
      return (this.createShadowRoot || this.webkitCreateShadowRoot).call(this);
    }
    get [S.$shadowRoot]() {
      return this.shadowRoot || this.webkitShadowRoot;
    }
    get [S.$contentEdge]() {
      return new html$._ContentCssRect.new(this);
    }
    get [S.$paddingEdge]() {
      return new html$._PaddingCssRect.new(this);
    }
    get [S.$borderEdge]() {
      return new html$._BorderCssRect.new(this);
    }
    get [S.$marginEdge]() {
      return new html$._MarginCssRect.new(this);
    }
    get [S.$documentOffset]() {
      return this[S.$offsetTo](dart.nullCheck(html$.document.documentElement));
    }
    [S.$offsetTo](parent) {
      if (parent == null) dart.nullFailed(I[147], 13652, 26, "parent");
      return html$.Element._offsetToHelper(this, parent);
    }
    static _offsetToHelper(current, parent) {
      if (parent == null) dart.nullFailed(I[147], 13656, 58, "parent");
      let sameAsParent = current == parent;
      let foundAsParent = sameAsParent || parent.tagName === "HTML";
      if (current == null || sameAsParent) {
        if (foundAsParent) return new (T$0.PointOfnum()).new(0, 0);
        dart.throw(new core.ArgumentError.new("Specified element is not a transitive offset " + "parent of this element."));
      }
      let parentOffset = current.offsetParent;
      let p = html$.Element._offsetToHelper(parentOffset, parent);
      return new (T$0.PointOfnum()).new(dart.notNull(p.x) + dart.notNull(current[S.$offsetLeft]), dart.notNull(p.y) + dart.notNull(current[S.$offsetTop]));
    }
    [S.$createFragment](html, opts) {
      let t232;
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (treeSanitizer == null) {
        if (validator == null) {
          if (html$.Element._defaultValidator == null) {
            html$.Element._defaultValidator = new html$.NodeValidatorBuilder.common();
          }
          validator = html$.Element._defaultValidator;
        }
        if (html$.Element._defaultSanitizer == null) {
          html$.Element._defaultSanitizer = new html$._ValidatingTreeSanitizer.new(dart.nullCheck(validator));
        } else {
          dart.nullCheck(html$.Element._defaultSanitizer).validator = dart.nullCheck(validator);
        }
        treeSanitizer = html$.Element._defaultSanitizer;
      } else if (validator != null) {
        dart.throw(new core.ArgumentError.new("validator can only be passed if treeSanitizer is null"));
      }
      if (html$.Element._parseDocument == null) {
        html$.Element._parseDocument = dart.nullCheck(html$.document.implementation)[S.$createHtmlDocument]("");
        html$.Element._parseRange = dart.nullCheck(html$.Element._parseDocument).createRange();
        let base = html$.BaseElement.as(dart.nullCheck(html$.Element._parseDocument)[S.$createElement]("base"));
        base.href = dart.nullCheck(html$.document[S.$baseUri]);
        dart.nullCheck(dart.nullCheck(html$.Element._parseDocument)[S.$head])[S.$append](base);
      }
      if (dart.nullCheck(html$.Element._parseDocument).body == null) {
        dart.nullCheck(html$.Element._parseDocument).body = html$.BodyElement.as(dart.nullCheck(html$.Element._parseDocument)[S.$createElement]("body"));
      }
      let contextElement = null;
      if (html$.BodyElement.is(this)) {
        contextElement = dart.nullCheck(dart.nullCheck(html$.Element._parseDocument).body);
      } else {
        contextElement = dart.nullCheck(html$.Element._parseDocument)[S.$createElement](this.tagName);
        dart.nullCheck(dart.nullCheck(html$.Element._parseDocument).body)[S.$append](html$.Node.as(contextElement));
      }
      let fragment = null;
      if (dart.test(html$.Range.supportsCreateContextualFragment) && dart.test(this[S._canBeUsedToCreateContextualFragment])) {
        dart.nullCheck(html$.Element._parseRange).selectNodeContents(html$.Node.as(contextElement));
        fragment = dart.nullCheck(html$.Element._parseRange).createContextualFragment((t232 = html, t232 == null ? "null" : t232));
      } else {
        dart.dput(contextElement, S._innerHtml, html);
        fragment = dart.nullCheck(html$.Element._parseDocument).createDocumentFragment();
        while (dart.dload(contextElement, 'firstChild') != null) {
          fragment[S.$append](html$.Node.as(dart.dload(contextElement, 'firstChild')));
        }
      }
      if (!dart.equals(contextElement, dart.nullCheck(html$.Element._parseDocument).body)) {
        dart.dsend(contextElement, 'remove', []);
      }
      dart.nullCheck(treeSanitizer).sanitizeTree(fragment);
      html$.document.adoptNode(fragment);
      return fragment;
    }
    get [S._canBeUsedToCreateContextualFragment]() {
      return !dart.test(this[S._cannotBeUsedToCreateContextualFragment]);
    }
    get [S._cannotBeUsedToCreateContextualFragment]() {
      return html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported[$contains](this.tagName);
    }
    set [S.$innerHtml](html) {
      this[S.$setInnerHtml](html);
    }
    [S.$setInnerHtml](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      this[S.$text] = null;
      if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
        this[S._innerHtml] = html;
      } else {
        this[S.$append](this[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
      }
    }
    get [S.$innerHtml]() {
      return this[S._innerHtml];
    }
    get [S.$innerText]() {
      return this.innerText;
    }
    set [S.$innerText](value) {
      this.innerText = value;
    }
    get [S.$on]() {
      return new html$.ElementEvents.new(this);
    }
    static _hasCorruptedAttributes(element) {
      if (element == null) dart.nullFailed(I[147], 13865, 47, "element");
      return (function(element) {
        if (!(element.attributes instanceof NamedNodeMap)) {
          return true;
        }
        if (element.id == 'lastChild' || element.name == 'lastChild' || element.id == 'previousSibling' || element.name == 'previousSibling' || element.id == 'children' || element.name == 'children') {
          return true;
        }
        var childNodes = element.childNodes;
        if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) {
          return true;
        }
        if (element.children) {
          if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) {
            return true;
          }
        }
        var length = 0;
        if (element.children) {
          length = element.children.length;
        }
        for (var i = 0; i < length; i++) {
          var child = element.children[i];
          if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'previousSibling' || child.name == 'previousSibling' || child.id == 'children' || child.name == 'children') {
            return true;
          }
        }
        return false;
      })(element);
    }
    static _hasCorruptedAttributesAdditionalCheck(element) {
      if (element == null) dart.nullFailed(I[147], 13917, 62, "element");
      return !(element.attributes instanceof NamedNodeMap);
    }
    static _safeTagName(element) {
      let result = "element tag unavailable";
      try {
        if (typeof dart.dload(element, 'tagName') == 'string') {
          result = core.String.as(dart.dload(element, 'tagName'));
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return result;
    }
    get [S.$offsetParent]() {
      return this.offsetParent;
    }
    get [S.$offsetHeight]() {
      return this.offsetHeight[$round]();
    }
    get [S.$offsetLeft]() {
      return this.offsetLeft[$round]();
    }
    get [S.$offsetTop]() {
      return this.offsetTop[$round]();
    }
    get [S.$offsetWidth]() {
      return this.offsetWidth[$round]();
    }
    get [S.$scrollHeight]() {
      return this.scrollHeight[$round]();
    }
    get [S.$scrollLeft]() {
      return this.scrollLeft[$round]();
    }
    set [S.$scrollLeft](value) {
      if (value == null) dart.nullFailed(I[147], 13944, 22, "value");
      this.scrollLeft = value[$round]();
    }
    get [S.$scrollTop]() {
      return this.scrollTop[$round]();
    }
    set [S.$scrollTop](value) {
      if (value == null) dart.nullFailed(I[147], 13950, 21, "value");
      this.scrollTop = value[$round]();
    }
    get [S.$scrollWidth]() {
      return this.scrollWidth[$round]();
    }
    get [S.$contentEditable]() {
      return this.contentEditable;
    }
    set [S.$contentEditable](value) {
      this.contentEditable = value;
    }
    get [S.$dir]() {
      return this.dir;
    }
    set [S.$dir](value) {
      this.dir = value;
    }
    get [S.$draggable]() {
      return this.draggable;
    }
    set [S.$draggable](value) {
      this.draggable = value;
    }
    get [S.$hidden]() {
      return this.hidden;
    }
    set [S.$hidden](value) {
      this.hidden = value;
    }
    get [S.$inert]() {
      return this.inert;
    }
    set [S.$inert](value) {
      this.inert = value;
    }
    get [S.$inputMode]() {
      return this.inputMode;
    }
    set [S.$inputMode](value) {
      this.inputMode = value;
    }
    get [S.$isContentEditable]() {
      return this.isContentEditable;
    }
    get [S.$lang]() {
      return this.lang;
    }
    set [S.$lang](value) {
      this.lang = value;
    }
    get [S.$spellcheck]() {
      return this.spellcheck;
    }
    set [S.$spellcheck](value) {
      this.spellcheck = value;
    }
    get [S.$style]() {
      return this.style;
    }
    get [S.$tabIndex]() {
      return this.tabIndex;
    }
    set [S.$tabIndex](value) {
      this.tabIndex = value;
    }
    get [S.$title]() {
      return this.title;
    }
    set [S.$title](value) {
      this.title = value;
    }
    get [S.$translate]() {
      return this.translate;
    }
    set [S.$translate](value) {
      this.translate = value;
    }
    [S.$blur](...args) {
      return this.blur.apply(this, args);
    }
    [S.$click](...args) {
      return this.click.apply(this, args);
    }
    [S.$focus](...args) {
      return this.focus.apply(this, args);
    }
    get [S.$accessibleNode]() {
      return this.accessibleNode;
    }
    get [S.$assignedSlot]() {
      return this.assignedSlot;
    }
    get [S._attributes$1]() {
      return this.attributes;
    }
    get [S.$className]() {
      return this.className;
    }
    set [S.$className](value) {
      this.className = value;
    }
    get [S.$clientHeight]() {
      return this.clientHeight;
    }
    get [S.$clientLeft]() {
      return this.clientLeft;
    }
    get [S.$clientTop]() {
      return this.clientTop;
    }
    get [S.$clientWidth]() {
      return this.clientWidth;
    }
    get [S.$computedName]() {
      return this.computedName;
    }
    get [S.$computedRole]() {
      return this.computedRole;
    }
    get [S.$id]() {
      return this.id;
    }
    set [S.$id](value) {
      this.id = value;
    }
    get [S._innerHtml]() {
      return this.innerHTML;
    }
    set [S._innerHtml](value) {
      this.innerHTML = value;
    }
    get [S._localName]() {
      return this.localName;
    }
    get [S._namespaceUri]() {
      return this.namespaceURI;
    }
    get [S.$outerHtml]() {
      return this.outerHTML;
    }
    get [S._scrollHeight]() {
      return this.scrollHeight;
    }
    get [S._scrollLeft]() {
      return this.scrollLeft;
    }
    set [S._scrollLeft](value) {
      this.scrollLeft = value;
    }
    get [S._scrollTop]() {
      return this.scrollTop;
    }
    set [S._scrollTop](value) {
      this.scrollTop = value;
    }
    get [S._scrollWidth]() {
      return this.scrollWidth;
    }
    get [S.$slot]() {
      return this.slot;
    }
    set [S.$slot](value) {
      this.slot = value;
    }
    get [S.$styleMap]() {
      return this.styleMap;
    }
    get [S.$tagName]() {
      return this.tagName;
    }
    [S.$attachShadow](shadowRootInitDict) {
      if (shadowRootInitDict == null) dart.nullFailed(I[147], 14673, 31, "shadowRootInitDict");
      let shadowRootInitDict_1 = html_common.convertDartToNative_Dictionary(shadowRootInitDict);
      return this[S._attachShadow_1](shadowRootInitDict_1);
    }
    [S._attachShadow_1](...args) {
      return this.attachShadow.apply(this, args);
    }
    [S.$closest](...args) {
      return this.closest.apply(this, args);
    }
    [S.$getAnimations](...args) {
      return this.getAnimations.apply(this, args);
    }
    [S._getAttribute](...args) {
      return this.getAttribute.apply(this, args);
    }
    [S._getAttributeNS](...args) {
      return this.getAttributeNS.apply(this, args);
    }
    [S.$getAttributeNames](...args) {
      return this.getAttributeNames.apply(this, args);
    }
    [S.$getBoundingClientRect](...args) {
      return this.getBoundingClientRect.apply(this, args);
    }
    [S._getClientRects](...args) {
      return this.getClientRects.apply(this, args);
    }
    [S.$getDestinationInsertionPoints](...args) {
      return this.getDestinationInsertionPoints.apply(this, args);
    }
    [S.$getElementsByClassName](...args) {
      return this.getElementsByClassName.apply(this, args);
    }
    [S._getElementsByTagName](...args) {
      return this.getElementsByTagName.apply(this, args);
    }
    [S._hasAttribute](...args) {
      return this.hasAttribute.apply(this, args);
    }
    [S._hasAttributeNS](...args) {
      return this.hasAttributeNS.apply(this, args);
    }
    [S.$hasPointerCapture](...args) {
      return this.hasPointerCapture.apply(this, args);
    }
    [S.$releasePointerCapture](...args) {
      return this.releasePointerCapture.apply(this, args);
    }
    [S._removeAttribute](...args) {
      return this.removeAttribute.apply(this, args);
    }
    [S._removeAttributeNS](...args) {
      return this.removeAttributeNS.apply(this, args);
    }
    [S.$requestPointerLock](...args) {
      return this.requestPointerLock.apply(this, args);
    }
    [S.$scroll](options_OR_x = null, y = null) {
      if (options_OR_x == null && y == null) {
        this[S._scroll_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scroll_2](options_1);
        return;
      }
      if (y != null && typeof options_OR_x == 'number') {
        this[S._scroll_3](options_OR_x, y);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scroll_1](...args) {
      return this.scroll.apply(this, args);
    }
    [S._scroll_2](...args) {
      return this.scroll.apply(this, args);
    }
    [S._scroll_3](...args) {
      return this.scroll.apply(this, args);
    }
    [S.$scrollBy](options_OR_x = null, y = null) {
      if (options_OR_x == null && y == null) {
        this[S._scrollBy_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scrollBy_2](options_1);
        return;
      }
      if (y != null && typeof options_OR_x == 'number') {
        this[S._scrollBy_3](options_OR_x, y);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scrollBy_1](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S._scrollBy_2](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S._scrollBy_3](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S._scrollIntoView](...args) {
      return this.scrollIntoView.apply(this, args);
    }
    [S._scrollIntoViewIfNeeded](...args) {
      return this.scrollIntoViewIfNeeded.apply(this, args);
    }
    [S.$scrollTo](options_OR_x = null, y = null) {
      if (options_OR_x == null && y == null) {
        this[S._scrollTo_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scrollTo_2](options_1);
        return;
      }
      if (y != null && typeof options_OR_x == 'number') {
        this[S._scrollTo_3](options_OR_x, y);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scrollTo_1](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S._scrollTo_2](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S._scrollTo_3](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S._setAttribute](...args) {
      return this.setAttribute.apply(this, args);
    }
    [S._setAttributeNS](...args) {
      return this.setAttributeNS.apply(this, args);
    }
    [S.$setPointerCapture](...args) {
      return this.setPointerCapture.apply(this, args);
    }
    [S.$requestFullscreen](...args) {
      return this.webkitRequestFullscreen.apply(this, args);
    }
    [S.$after](...args) {
      return this.after.apply(this, args);
    }
    [S.$before](...args) {
      return this.before.apply(this, args);
    }
    get [S.$nextElementSibling]() {
      return this.nextElementSibling;
    }
    get [S.$previousElementSibling]() {
      return this.previousElementSibling;
    }
    get [S._childElementCount]() {
      return this.childElementCount;
    }
    get [S._firstElementChild]() {
      return this.firstElementChild;
    }
    get [S._lastElementChild]() {
      return this.lastElementChild;
    }
    [S.$querySelector](...args) {
      return this.querySelector.apply(this, args);
    }
    [S._querySelectorAll](...args) {
      return this.querySelectorAll.apply(this, args);
    }
    get [S.$onAbort]() {
      return html$.Element.abortEvent.forElement(this);
    }
    get [S.$onBeforeCopy]() {
      return html$.Element.beforeCopyEvent.forElement(this);
    }
    get [S.$onBeforeCut]() {
      return html$.Element.beforeCutEvent.forElement(this);
    }
    get [S.$onBeforePaste]() {
      return html$.Element.beforePasteEvent.forElement(this);
    }
    get [S.$onBlur]() {
      return html$.Element.blurEvent.forElement(this);
    }
    get [S.$onCanPlay]() {
      return html$.Element.canPlayEvent.forElement(this);
    }
    get [S.$onCanPlayThrough]() {
      return html$.Element.canPlayThroughEvent.forElement(this);
    }
    get [S.$onChange]() {
      return html$.Element.changeEvent.forElement(this);
    }
    get [S.$onClick]() {
      return html$.Element.clickEvent.forElement(this);
    }
    get [S.$onContextMenu]() {
      return html$.Element.contextMenuEvent.forElement(this);
    }
    get [S.$onCopy]() {
      return html$.Element.copyEvent.forElement(this);
    }
    get [S.$onCut]() {
      return html$.Element.cutEvent.forElement(this);
    }
    get [S.$onDoubleClick]() {
      return html$.Element.doubleClickEvent.forElement(this);
    }
    get [S.$onDrag]() {
      return html$.Element.dragEvent.forElement(this);
    }
    get [S.$onDragEnd]() {
      return html$.Element.dragEndEvent.forElement(this);
    }
    get [S.$onDragEnter]() {
      return html$.Element.dragEnterEvent.forElement(this);
    }
    get [S.$onDragLeave]() {
      return html$.Element.dragLeaveEvent.forElement(this);
    }
    get [S.$onDragOver]() {
      return html$.Element.dragOverEvent.forElement(this);
    }
    get [S.$onDragStart]() {
      return html$.Element.dragStartEvent.forElement(this);
    }
    get [S.$onDrop]() {
      return html$.Element.dropEvent.forElement(this);
    }
    get [S.$onDurationChange]() {
      return html$.Element.durationChangeEvent.forElement(this);
    }
    get [S.$onEmptied]() {
      return html$.Element.emptiedEvent.forElement(this);
    }
    get [S.$onEnded]() {
      return html$.Element.endedEvent.forElement(this);
    }
    get [S.$onError]() {
      return html$.Element.errorEvent.forElement(this);
    }
    get [S.$onFocus]() {
      return html$.Element.focusEvent.forElement(this);
    }
    get [S.$onInput]() {
      return html$.Element.inputEvent.forElement(this);
    }
    get [S.$onInvalid]() {
      return html$.Element.invalidEvent.forElement(this);
    }
    get [S.$onKeyDown]() {
      return html$.Element.keyDownEvent.forElement(this);
    }
    get [S.$onKeyPress]() {
      return html$.Element.keyPressEvent.forElement(this);
    }
    get [S.$onKeyUp]() {
      return html$.Element.keyUpEvent.forElement(this);
    }
    get [S.$onLoad]() {
      return html$.Element.loadEvent.forElement(this);
    }
    get [S.$onLoadedData]() {
      return html$.Element.loadedDataEvent.forElement(this);
    }
    get [S.$onLoadedMetadata]() {
      return html$.Element.loadedMetadataEvent.forElement(this);
    }
    get [S.$onMouseDown]() {
      return html$.Element.mouseDownEvent.forElement(this);
    }
    get [S.$onMouseEnter]() {
      return html$.Element.mouseEnterEvent.forElement(this);
    }
    get [S.$onMouseLeave]() {
      return html$.Element.mouseLeaveEvent.forElement(this);
    }
    get [S.$onMouseMove]() {
      return html$.Element.mouseMoveEvent.forElement(this);
    }
    get [S.$onMouseOut]() {
      return html$.Element.mouseOutEvent.forElement(this);
    }
    get [S.$onMouseOver]() {
      return html$.Element.mouseOverEvent.forElement(this);
    }
    get [S.$onMouseUp]() {
      return html$.Element.mouseUpEvent.forElement(this);
    }
    get [S.$onMouseWheel]() {
      return html$.Element.mouseWheelEvent.forElement(this);
    }
    get [S.$onPaste]() {
      return html$.Element.pasteEvent.forElement(this);
    }
    get [S.$onPause]() {
      return html$.Element.pauseEvent.forElement(this);
    }
    get [S.$onPlay]() {
      return html$.Element.playEvent.forElement(this);
    }
    get [S.$onPlaying]() {
      return html$.Element.playingEvent.forElement(this);
    }
    get [S.$onRateChange]() {
      return html$.Element.rateChangeEvent.forElement(this);
    }
    get [S.$onReset]() {
      return html$.Element.resetEvent.forElement(this);
    }
    get [S.$onResize]() {
      return html$.Element.resizeEvent.forElement(this);
    }
    get [S.$onScroll]() {
      return html$.Element.scrollEvent.forElement(this);
    }
    get [S.$onSearch]() {
      return html$.Element.searchEvent.forElement(this);
    }
    get [S.$onSeeked]() {
      return html$.Element.seekedEvent.forElement(this);
    }
    get [S.$onSeeking]() {
      return html$.Element.seekingEvent.forElement(this);
    }
    get [S.$onSelect]() {
      return html$.Element.selectEvent.forElement(this);
    }
    get [S.$onSelectStart]() {
      return html$.Element.selectStartEvent.forElement(this);
    }
    get [S.$onStalled]() {
      return html$.Element.stalledEvent.forElement(this);
    }
    get [S.$onSubmit]() {
      return html$.Element.submitEvent.forElement(this);
    }
    get [S$.$onSuspend]() {
      return html$.Element.suspendEvent.forElement(this);
    }
    get [S$.$onTimeUpdate]() {
      return html$.Element.timeUpdateEvent.forElement(this);
    }
    get [S$.$onTouchCancel]() {
      return html$.Element.touchCancelEvent.forElement(this);
    }
    get [S$.$onTouchEnd]() {
      return html$.Element.touchEndEvent.forElement(this);
    }
    get [S$.$onTouchEnter]() {
      return html$.Element.touchEnterEvent.forElement(this);
    }
    get [S$.$onTouchLeave]() {
      return html$.Element.touchLeaveEvent.forElement(this);
    }
    get [S$.$onTouchMove]() {
      return html$.Element.touchMoveEvent.forElement(this);
    }
    get [S$.$onTouchStart]() {
      return html$.Element.touchStartEvent.forElement(this);
    }
    get [S$.$onTransitionEnd]() {
      return html$.Element.transitionEndEvent.forElement(this);
    }
    get [S$.$onVolumeChange]() {
      return html$.Element.volumeChangeEvent.forElement(this);
    }
    get [S$.$onWaiting]() {
      return html$.Element.waitingEvent.forElement(this);
    }
    get [S$.$onFullscreenChange]() {
      return html$.Element.fullscreenChangeEvent.forElement(this);
    }
    get [S$.$onFullscreenError]() {
      return html$.Element.fullscreenErrorEvent.forElement(this);
    }
    get [S$.$onWheel]() {
      return html$.Element.wheelEvent.forElement(this);
    }
  };
  (html$.Element.created = function() {
    html$.Element.__proto__._created.call(this);
    ;
  }).prototype = html$.Element.prototype;
  dart.addTypeTests(html$.Element);
  dart.addTypeCaches(html$.Element);
  html$.Element[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.GlobalEventHandlers, html$.ParentNode, html$.ChildNode];
  dart.setMethodSignature(html$.Element, () => ({
    __proto__: dart.getMethods(html$.Element.__proto__),
    [S.$getAttribute]: dart.fnType(dart.nullable(core.String), [core.String]),
    [S.$getAttributeNS]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.String), core.String]),
    [S.$hasAttribute]: dart.fnType(core.bool, [core.String]),
    [S.$hasAttributeNS]: dart.fnType(core.bool, [dart.nullable(core.String), core.String]),
    [S.$removeAttribute]: dart.fnType(dart.void, [core.String]),
    [S.$removeAttributeNS]: dart.fnType(dart.void, [dart.nullable(core.String), core.String]),
    [S.$setAttribute]: dart.fnType(dart.void, [core.String, core.String]),
    [S.$setAttributeNS]: dart.fnType(dart.void, [dart.nullable(core.String), core.String, core.String]),
    [S.$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
    [S._setApplyScroll]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.ScrollState]), core.String]),
    [S.$setApplyScroll]: dart.fnType(async.Future$(html$.ScrollState), [core.String]),
    [S._setDistributeScroll]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.ScrollState]), core.String]),
    [S.$setDistributeScroll]: dart.fnType(async.Future$(html$.ScrollState), [core.String]),
    [S.$getNamespacedAttributes]: dart.fnType(core.Map$(core.String, core.String), [core.String]),
    [S.$getComputedStyle]: dart.fnType(html$.CssStyleDeclaration, [], [dart.nullable(core.String)]),
    [S.$appendText]: dart.fnType(dart.void, [core.String]),
    [S.$appendHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S.$attached]: dart.fnType(dart.void, []),
    [S.$detached]: dart.fnType(dart.void, []),
    [S.$enteredView]: dart.fnType(dart.void, []),
    [S.$getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
    [S.$leftView]: dart.fnType(dart.void, []),
    [S.$animate]: dart.fnType(html$.Animation, [core.Iterable$(core.Map$(core.String, dart.dynamic))], [dart.dynamic]),
    [S._animate]: dart.fnType(html$.Animation, [core.Object], [dart.dynamic]),
    [S.$attributeChanged]: dart.fnType(dart.void, [core.String, core.String, core.String]),
    [S.$scrollIntoView]: dart.fnType(dart.void, [], [dart.nullable(html$.ScrollAlignment)]),
    [S.$insertAdjacentText]: dart.fnType(dart.void, [core.String, core.String]),
    [S._insertAdjacentText]: dart.fnType(dart.void, [core.String, core.String]),
    [S.$insertAdjacentHtml]: dart.fnType(dart.void, [core.String, core.String], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S._insertAdjacentHtml]: dart.fnType(dart.void, [core.String, core.String]),
    [S.$insertAdjacentElement]: dart.fnType(html$.Element, [core.String, html$.Element]),
    [S._insertAdjacentElement]: dart.fnType(dart.void, [core.String, html$.Element]),
    [S._insertAdjacentNode]: dart.fnType(dart.void, [core.String, html$.Node]),
    [S.$matches]: dart.fnType(core.bool, [core.String]),
    [S.$matchesWithAncestors]: dart.fnType(core.bool, [core.String]),
    [S.$createShadowRoot]: dart.fnType(html$.ShadowRoot, []),
    [S.$offsetTo]: dart.fnType(math.Point$(core.num), [html$.Element]),
    [S.$createFragment]: dart.fnType(html$.DocumentFragment, [dart.nullable(core.String)], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S.$setInnerHtml]: dart.fnType(dart.void, [dart.nullable(core.String)], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S.$blur]: dart.fnType(dart.void, []),
    [S.$click]: dart.fnType(dart.void, []),
    [S.$focus]: dart.fnType(dart.void, []),
    [S.$attachShadow]: dart.fnType(html$.ShadowRoot, [core.Map]),
    [S._attachShadow_1]: dart.fnType(html$.ShadowRoot, [dart.dynamic]),
    [S.$closest]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S.$getAnimations]: dart.fnType(core.List$(html$.Animation), []),
    [S._getAttribute]: dart.fnType(dart.nullable(core.String), [core.String]),
    [S._getAttributeNS]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.String), core.String]),
    [S.$getAttributeNames]: dart.fnType(core.List$(core.String), []),
    [S.$getBoundingClientRect]: dart.fnType(math.Rectangle$(core.num), []),
    [S._getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
    [S.$getDestinationInsertionPoints]: dart.fnType(core.List$(html$.Node), []),
    [S.$getElementsByClassName]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S._getElementsByTagName]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S._hasAttribute]: dart.fnType(core.bool, [core.String]),
    [S._hasAttributeNS]: dart.fnType(core.bool, [dart.nullable(core.String), core.String]),
    [S.$hasPointerCapture]: dart.fnType(core.bool, [core.int]),
    [S.$releasePointerCapture]: dart.fnType(dart.void, [core.int]),
    [S._removeAttribute]: dart.fnType(dart.void, [core.String]),
    [S._removeAttributeNS]: dart.fnType(dart.void, [dart.nullable(core.String), core.String]),
    [S.$requestPointerLock]: dart.fnType(dart.void, []),
    [S.$scroll]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.num)]),
    [S._scroll_1]: dart.fnType(dart.void, []),
    [S._scroll_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scroll_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.dynamic]),
    [S.$scrollBy]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.num)]),
    [S._scrollBy_1]: dart.fnType(dart.void, []),
    [S._scrollBy_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scrollBy_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.dynamic]),
    [S._scrollIntoView]: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    [S._scrollIntoViewIfNeeded]: dart.fnType(dart.void, [], [dart.nullable(core.bool)]),
    [S.$scrollTo]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.num)]),
    [S._scrollTo_1]: dart.fnType(dart.void, []),
    [S._scrollTo_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scrollTo_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.dynamic]),
    [S._setAttribute]: dart.fnType(dart.void, [core.String, core.String]),
    [S._setAttributeNS]: dart.fnType(dart.void, [dart.nullable(core.String), core.String, core.String]),
    [S.$setPointerCapture]: dart.fnType(dart.void, [core.int]),
    [S.$requestFullscreen]: dart.fnType(dart.void, []),
    [S.$after]: dart.fnType(dart.void, [core.Object]),
    [S.$before]: dart.fnType(dart.void, [core.Object]),
    [S.$querySelector]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S._querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String])
  }));
  dart.setGetterSignature(html$.Element, () => ({
    __proto__: dart.getGetters(html$.Element.__proto__),
    [S.$attributes]: core.Map$(core.String, core.String),
    [S.$children]: core.List$(html$.Element),
    [S._children]: core.List$(html$.Node),
    [S.$classes]: html$.CssClassSet,
    [S.$dataset]: core.Map$(core.String, core.String),
    [S.$client]: math.Rectangle$(core.num),
    [S.$offset]: math.Rectangle$(core.num),
    [S.$localName]: core.String,
    [S.$namespaceUri]: dart.nullable(core.String),
    [S.$shadowRoot]: dart.nullable(html$.ShadowRoot),
    [S.$contentEdge]: html$.CssRect,
    [S.$paddingEdge]: html$.CssRect,
    [S.$borderEdge]: html$.CssRect,
    [S.$marginEdge]: html$.CssRect,
    [S.$documentOffset]: math.Point$(core.num),
    [S._canBeUsedToCreateContextualFragment]: core.bool,
    [S._cannotBeUsedToCreateContextualFragment]: core.bool,
    [S.$innerHtml]: dart.nullable(core.String),
    [S.$innerText]: core.String,
    [S.$on]: html$.ElementEvents,
    [S.$offsetParent]: dart.nullable(html$.Element),
    [S.$offsetHeight]: core.int,
    [S.$offsetLeft]: core.int,
    [S.$offsetTop]: core.int,
    [S.$offsetWidth]: core.int,
    [S.$scrollHeight]: core.int,
    [S.$scrollLeft]: core.int,
    [S.$scrollTop]: core.int,
    [S.$scrollWidth]: core.int,
    [S.$contentEditable]: core.String,
    [S.$dir]: dart.nullable(core.String),
    [S.$draggable]: core.bool,
    [S.$hidden]: core.bool,
    [S.$inert]: dart.nullable(core.bool),
    [S.$inputMode]: dart.nullable(core.String),
    [S.$isContentEditable]: dart.nullable(core.bool),
    [S.$lang]: dart.nullable(core.String),
    [S.$spellcheck]: dart.nullable(core.bool),
    [S.$style]: html$.CssStyleDeclaration,
    [S.$tabIndex]: dart.nullable(core.int),
    [S.$title]: dart.nullable(core.String),
    [S.$translate]: dart.nullable(core.bool),
    [S.$accessibleNode]: dart.nullable(html$.AccessibleNode),
    [S.$assignedSlot]: dart.nullable(html$.SlotElement),
    [S._attributes$1]: dart.nullable(html$._NamedNodeMap),
    [S.$className]: core.String,
    [S.$clientHeight]: core.int,
    [S.$clientLeft]: dart.nullable(core.int),
    [S.$clientTop]: dart.nullable(core.int),
    [S.$clientWidth]: core.int,
    [S.$computedName]: dart.nullable(core.String),
    [S.$computedRole]: dart.nullable(core.String),
    [S.$id]: core.String,
    [S._innerHtml]: dart.nullable(core.String),
    [S._localName]: dart.nullable(core.String),
    [S._namespaceUri]: dart.nullable(core.String),
    [S.$outerHtml]: dart.nullable(core.String),
    [S._scrollHeight]: dart.nullable(core.int),
    [S._scrollLeft]: core.num,
    [S._scrollTop]: core.num,
    [S._scrollWidth]: dart.nullable(core.int),
    [S.$slot]: dart.nullable(core.String),
    [S.$styleMap]: dart.nullable(html$.StylePropertyMap),
    [S.$tagName]: core.String,
    [S.$nextElementSibling]: dart.nullable(html$.Element),
    [S.$previousElementSibling]: dart.nullable(html$.Element),
    [S._childElementCount]: core.int,
    [S._firstElementChild]: dart.nullable(html$.Element),
    [S._lastElementChild]: dart.nullable(html$.Element),
    [S.$onAbort]: html$.ElementStream$(html$.Event),
    [S.$onBeforeCopy]: html$.ElementStream$(html$.Event),
    [S.$onBeforeCut]: html$.ElementStream$(html$.Event),
    [S.$onBeforePaste]: html$.ElementStream$(html$.Event),
    [S.$onBlur]: html$.ElementStream$(html$.Event),
    [S.$onCanPlay]: html$.ElementStream$(html$.Event),
    [S.$onCanPlayThrough]: html$.ElementStream$(html$.Event),
    [S.$onChange]: html$.ElementStream$(html$.Event),
    [S.$onClick]: html$.ElementStream$(html$.MouseEvent),
    [S.$onContextMenu]: html$.ElementStream$(html$.MouseEvent),
    [S.$onCopy]: html$.ElementStream$(html$.ClipboardEvent),
    [S.$onCut]: html$.ElementStream$(html$.ClipboardEvent),
    [S.$onDoubleClick]: html$.ElementStream$(html$.Event),
    [S.$onDrag]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDragEnd]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDragEnter]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDragLeave]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDragOver]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDragStart]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDrop]: html$.ElementStream$(html$.MouseEvent),
    [S.$onDurationChange]: html$.ElementStream$(html$.Event),
    [S.$onEmptied]: html$.ElementStream$(html$.Event),
    [S.$onEnded]: html$.ElementStream$(html$.Event),
    [S.$onError]: html$.ElementStream$(html$.Event),
    [S.$onFocus]: html$.ElementStream$(html$.Event),
    [S.$onInput]: html$.ElementStream$(html$.Event),
    [S.$onInvalid]: html$.ElementStream$(html$.Event),
    [S.$onKeyDown]: html$.ElementStream$(html$.KeyboardEvent),
    [S.$onKeyPress]: html$.ElementStream$(html$.KeyboardEvent),
    [S.$onKeyUp]: html$.ElementStream$(html$.KeyboardEvent),
    [S.$onLoad]: html$.ElementStream$(html$.Event),
    [S.$onLoadedData]: html$.ElementStream$(html$.Event),
    [S.$onLoadedMetadata]: html$.ElementStream$(html$.Event),
    [S.$onMouseDown]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseEnter]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseLeave]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseMove]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseOut]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseOver]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseUp]: html$.ElementStream$(html$.MouseEvent),
    [S.$onMouseWheel]: html$.ElementStream$(html$.WheelEvent),
    [S.$onPaste]: html$.ElementStream$(html$.ClipboardEvent),
    [S.$onPause]: html$.ElementStream$(html$.Event),
    [S.$onPlay]: html$.ElementStream$(html$.Event),
    [S.$onPlaying]: html$.ElementStream$(html$.Event),
    [S.$onRateChange]: html$.ElementStream$(html$.Event),
    [S.$onReset]: html$.ElementStream$(html$.Event),
    [S.$onResize]: html$.ElementStream$(html$.Event),
    [S.$onScroll]: html$.ElementStream$(html$.Event),
    [S.$onSearch]: html$.ElementStream$(html$.Event),
    [S.$onSeeked]: html$.ElementStream$(html$.Event),
    [S.$onSeeking]: html$.ElementStream$(html$.Event),
    [S.$onSelect]: html$.ElementStream$(html$.Event),
    [S.$onSelectStart]: html$.ElementStream$(html$.Event),
    [S.$onStalled]: html$.ElementStream$(html$.Event),
    [S.$onSubmit]: html$.ElementStream$(html$.Event),
    [S$.$onSuspend]: html$.ElementStream$(html$.Event),
    [S$.$onTimeUpdate]: html$.ElementStream$(html$.Event),
    [S$.$onTouchCancel]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTouchEnd]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTouchEnter]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTouchLeave]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTouchMove]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTouchStart]: html$.ElementStream$(html$.TouchEvent),
    [S$.$onTransitionEnd]: html$.ElementStream$(html$.TransitionEvent),
    [S$.$onVolumeChange]: html$.ElementStream$(html$.Event),
    [S$.$onWaiting]: html$.ElementStream$(html$.Event),
    [S$.$onFullscreenChange]: html$.ElementStream$(html$.Event),
    [S$.$onFullscreenError]: html$.ElementStream$(html$.Event),
    [S$.$onWheel]: html$.ElementStream$(html$.WheelEvent)
  }));
  dart.setSetterSignature(html$.Element, () => ({
    __proto__: dart.getSetters(html$.Element.__proto__),
    [S.$attributes]: core.Map$(core.String, core.String),
    [S.$children]: core.List$(html$.Element),
    [S.$classes]: core.Iterable$(core.String),
    [S.$dataset]: core.Map$(core.String, core.String),
    [S.$innerHtml]: dart.nullable(core.String),
    [S.$innerText]: core.String,
    [S.$scrollLeft]: core.int,
    [S.$scrollTop]: core.int,
    [S.$contentEditable]: core.String,
    [S.$dir]: dart.nullable(core.String),
    [S.$draggable]: core.bool,
    [S.$hidden]: core.bool,
    [S.$inert]: dart.nullable(core.bool),
    [S.$inputMode]: dart.nullable(core.String),
    [S.$lang]: dart.nullable(core.String),
    [S.$spellcheck]: dart.nullable(core.bool),
    [S.$tabIndex]: dart.nullable(core.int),
    [S.$title]: dart.nullable(core.String),
    [S.$translate]: dart.nullable(core.bool),
    [S.$className]: core.String,
    [S.$id]: core.String,
    [S._innerHtml]: dart.nullable(core.String),
    [S._scrollLeft]: core.num,
    [S._scrollTop]: core.num,
    [S.$slot]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Element, I[148]);
  dart.defineLazy(html$.Element, {
    /*html$.Element.mouseWheelEvent*/get mouseWheelEvent() {
      return C[225] || CT.C225;
    },
    /*html$.Element.transitionEndEvent*/get transitionEndEvent() {
      return C[227] || CT.C227;
    },
    /*html$.Element._parseDocument*/get _parseDocument() {
      return null;
    },
    set _parseDocument(_) {},
    /*html$.Element._parseRange*/get _parseRange() {
      return null;
    },
    set _parseRange(_) {},
    /*html$.Element._defaultValidator*/get _defaultValidator() {
      return null;
    },
    set _defaultValidator(_) {},
    /*html$.Element._defaultSanitizer*/get _defaultSanitizer() {
      return null;
    },
    set _defaultSanitizer(_) {},
    /*html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported*/get _tagsForWhichCreateContextualFragmentIsNotSupported() {
      return C[229] || CT.C229;
    },
    /*html$.Element.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*html$.Element.beforeCopyEvent*/get beforeCopyEvent() {
      return C[230] || CT.C230;
    },
    /*html$.Element.beforeCutEvent*/get beforeCutEvent() {
      return C[231] || CT.C231;
    },
    /*html$.Element.beforePasteEvent*/get beforePasteEvent() {
      return C[232] || CT.C232;
    },
    /*html$.Element.blurEvent*/get blurEvent() {
      return C[233] || CT.C233;
    },
    /*html$.Element.canPlayEvent*/get canPlayEvent() {
      return C[234] || CT.C234;
    },
    /*html$.Element.canPlayThroughEvent*/get canPlayThroughEvent() {
      return C[235] || CT.C235;
    },
    /*html$.Element.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    },
    /*html$.Element.clickEvent*/get clickEvent() {
      return C[237] || CT.C237;
    },
    /*html$.Element.contextMenuEvent*/get contextMenuEvent() {
      return C[238] || CT.C238;
    },
    /*html$.Element.copyEvent*/get copyEvent() {
      return C[239] || CT.C239;
    },
    /*html$.Element.cutEvent*/get cutEvent() {
      return C[240] || CT.C240;
    },
    /*html$.Element.doubleClickEvent*/get doubleClickEvent() {
      return C[241] || CT.C241;
    },
    /*html$.Element.dragEvent*/get dragEvent() {
      return C[242] || CT.C242;
    },
    /*html$.Element.dragEndEvent*/get dragEndEvent() {
      return C[243] || CT.C243;
    },
    /*html$.Element.dragEnterEvent*/get dragEnterEvent() {
      return C[244] || CT.C244;
    },
    /*html$.Element.dragLeaveEvent*/get dragLeaveEvent() {
      return C[245] || CT.C245;
    },
    /*html$.Element.dragOverEvent*/get dragOverEvent() {
      return C[246] || CT.C246;
    },
    /*html$.Element.dragStartEvent*/get dragStartEvent() {
      return C[247] || CT.C247;
    },
    /*html$.Element.dropEvent*/get dropEvent() {
      return C[248] || CT.C248;
    },
    /*html$.Element.durationChangeEvent*/get durationChangeEvent() {
      return C[249] || CT.C249;
    },
    /*html$.Element.emptiedEvent*/get emptiedEvent() {
      return C[250] || CT.C250;
    },
    /*html$.Element.endedEvent*/get endedEvent() {
      return C[251] || CT.C251;
    },
    /*html$.Element.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.Element.focusEvent*/get focusEvent() {
      return C[252] || CT.C252;
    },
    /*html$.Element.inputEvent*/get inputEvent() {
      return C[253] || CT.C253;
    },
    /*html$.Element.invalidEvent*/get invalidEvent() {
      return C[254] || CT.C254;
    },
    /*html$.Element.keyDownEvent*/get keyDownEvent() {
      return C[255] || CT.C255;
    },
    /*html$.Element.keyPressEvent*/get keyPressEvent() {
      return C[256] || CT.C256;
    },
    /*html$.Element.keyUpEvent*/get keyUpEvent() {
      return C[257] || CT.C257;
    },
    /*html$.Element.loadEvent*/get loadEvent() {
      return C[258] || CT.C258;
    },
    /*html$.Element.loadedDataEvent*/get loadedDataEvent() {
      return C[259] || CT.C259;
    },
    /*html$.Element.loadedMetadataEvent*/get loadedMetadataEvent() {
      return C[260] || CT.C260;
    },
    /*html$.Element.mouseDownEvent*/get mouseDownEvent() {
      return C[261] || CT.C261;
    },
    /*html$.Element.mouseEnterEvent*/get mouseEnterEvent() {
      return C[262] || CT.C262;
    },
    /*html$.Element.mouseLeaveEvent*/get mouseLeaveEvent() {
      return C[263] || CT.C263;
    },
    /*html$.Element.mouseMoveEvent*/get mouseMoveEvent() {
      return C[264] || CT.C264;
    },
    /*html$.Element.mouseOutEvent*/get mouseOutEvent() {
      return C[265] || CT.C265;
    },
    /*html$.Element.mouseOverEvent*/get mouseOverEvent() {
      return C[266] || CT.C266;
    },
    /*html$.Element.mouseUpEvent*/get mouseUpEvent() {
      return C[267] || CT.C267;
    },
    /*html$.Element.pasteEvent*/get pasteEvent() {
      return C[268] || CT.C268;
    },
    /*html$.Element.pauseEvent*/get pauseEvent() {
      return C[269] || CT.C269;
    },
    /*html$.Element.playEvent*/get playEvent() {
      return C[270] || CT.C270;
    },
    /*html$.Element.playingEvent*/get playingEvent() {
      return C[271] || CT.C271;
    },
    /*html$.Element.rateChangeEvent*/get rateChangeEvent() {
      return C[272] || CT.C272;
    },
    /*html$.Element.resetEvent*/get resetEvent() {
      return C[273] || CT.C273;
    },
    /*html$.Element.resizeEvent*/get resizeEvent() {
      return C[274] || CT.C274;
    },
    /*html$.Element.scrollEvent*/get scrollEvent() {
      return C[275] || CT.C275;
    },
    /*html$.Element.searchEvent*/get searchEvent() {
      return C[276] || CT.C276;
    },
    /*html$.Element.seekedEvent*/get seekedEvent() {
      return C[277] || CT.C277;
    },
    /*html$.Element.seekingEvent*/get seekingEvent() {
      return C[278] || CT.C278;
    },
    /*html$.Element.selectEvent*/get selectEvent() {
      return C[279] || CT.C279;
    },
    /*html$.Element.selectStartEvent*/get selectStartEvent() {
      return C[280] || CT.C280;
    },
    /*html$.Element.stalledEvent*/get stalledEvent() {
      return C[281] || CT.C281;
    },
    /*html$.Element.submitEvent*/get submitEvent() {
      return C[282] || CT.C282;
    },
    /*html$.Element.suspendEvent*/get suspendEvent() {
      return C[283] || CT.C283;
    },
    /*html$.Element.timeUpdateEvent*/get timeUpdateEvent() {
      return C[284] || CT.C284;
    },
    /*html$.Element.touchCancelEvent*/get touchCancelEvent() {
      return C[285] || CT.C285;
    },
    /*html$.Element.touchEndEvent*/get touchEndEvent() {
      return C[286] || CT.C286;
    },
    /*html$.Element.touchEnterEvent*/get touchEnterEvent() {
      return C[287] || CT.C287;
    },
    /*html$.Element.touchLeaveEvent*/get touchLeaveEvent() {
      return C[288] || CT.C288;
    },
    /*html$.Element.touchMoveEvent*/get touchMoveEvent() {
      return C[289] || CT.C289;
    },
    /*html$.Element.touchStartEvent*/get touchStartEvent() {
      return C[290] || CT.C290;
    },
    /*html$.Element.volumeChangeEvent*/get volumeChangeEvent() {
      return C[291] || CT.C291;
    },
    /*html$.Element.waitingEvent*/get waitingEvent() {
      return C[292] || CT.C292;
    },
    /*html$.Element.fullscreenChangeEvent*/get fullscreenChangeEvent() {
      return C[293] || CT.C293;
    },
    /*html$.Element.fullscreenErrorEvent*/get fullscreenErrorEvent() {
      return C[294] || CT.C294;
    },
    /*html$.Element.wheelEvent*/get wheelEvent() {
      return C[295] || CT.C295;
    }
  }, false);
  dart.registerExtension("Element", html$.Element);
  html$.HtmlElement = class HtmlElement extends html$.Element {
    static new() {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    get [S.$nonce]() {
      return this.nonce;
    }
    set [S.$nonce](value) {
      this.nonce = value;
    }
  };
  (html$.HtmlElement.created = function() {
    html$.HtmlElement.__proto__.created.call(this);
    ;
  }).prototype = html$.HtmlElement.prototype;
  dart.addTypeTests(html$.HtmlElement);
  dart.addTypeCaches(html$.HtmlElement);
  html$.HtmlElement[dart.implements] = () => [html$.NoncedElement];
  dart.setGetterSignature(html$.HtmlElement, () => ({
    __proto__: dart.getGetters(html$.HtmlElement.__proto__),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.HtmlElement, () => ({
    __proto__: dart.getSetters(html$.HtmlElement.__proto__),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.HtmlElement, I[148]);
  dart.registerExtension("HTMLElement", html$.HtmlElement);
  html$.ExtendableEvent = class ExtendableEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 15843, 34, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.ExtendableEvent._create_1(type, eventInitDict_1);
      }
      return html$.ExtendableEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new ExtendableEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new ExtendableEvent(type);
    }
    [S$.$waitUntil](...args) {
      return this.waitUntil.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ExtendableEvent);
  dart.addTypeCaches(html$.ExtendableEvent);
  dart.setMethodSignature(html$.ExtendableEvent, () => ({
    __proto__: dart.getMethods(html$.ExtendableEvent.__proto__),
    [S$.$waitUntil]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setLibraryUri(html$.ExtendableEvent, I[148]);
  dart.registerExtension("ExtendableEvent", html$.ExtendableEvent);
  html$.AbortPaymentEvent = class AbortPaymentEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 141, 36, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 141, 46, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.AbortPaymentEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new AbortPaymentEvent(type, eventInitDict);
    }
    [S$.$respondWith](...args) {
      return this.respondWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.AbortPaymentEvent);
  dart.addTypeCaches(html$.AbortPaymentEvent);
  dart.setMethodSignature(html$.AbortPaymentEvent, () => ({
    __proto__: dart.getMethods(html$.AbortPaymentEvent.__proto__),
    [S$.$respondWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setLibraryUri(html$.AbortPaymentEvent, I[148]);
  dart.registerExtension("AbortPaymentEvent", html$.AbortPaymentEvent);
  html$.Sensor = class Sensor extends html$.EventTarget {
    get [S$.$activated]() {
      return this.activated;
    }
    get [S$.$hasReading]() {
      return this.hasReading;
    }
    get [S$.$timestamp]() {
      return this.timestamp;
    }
    [S$.$start](...args) {
      return this.start.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    get [S.$onError]() {
      return html$.Sensor.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.Sensor);
  dart.addTypeCaches(html$.Sensor);
  dart.setMethodSignature(html$.Sensor, () => ({
    __proto__: dart.getMethods(html$.Sensor.__proto__),
    [S$.$start]: dart.fnType(dart.void, []),
    [S$.$stop]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.Sensor, () => ({
    __proto__: dart.getGetters(html$.Sensor.__proto__),
    [S$.$activated]: dart.nullable(core.bool),
    [S$.$hasReading]: dart.nullable(core.bool),
    [S$.$timestamp]: dart.nullable(core.num),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.Sensor, I[148]);
  dart.defineLazy(html$.Sensor, {
    /*html$.Sensor.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("Sensor", html$.Sensor);
  html$.OrientationSensor = class OrientationSensor extends html$.Sensor {
    get [S$.$quaternion]() {
      return this.quaternion;
    }
    [S$.$populateMatrix](...args) {
      return this.populateMatrix.apply(this, args);
    }
  };
  dart.addTypeTests(html$.OrientationSensor);
  dart.addTypeCaches(html$.OrientationSensor);
  dart.setMethodSignature(html$.OrientationSensor, () => ({
    __proto__: dart.getMethods(html$.OrientationSensor.__proto__),
    [S$.$populateMatrix]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(html$.OrientationSensor, () => ({
    __proto__: dart.getGetters(html$.OrientationSensor.__proto__),
    [S$.$quaternion]: dart.nullable(core.List$(core.num))
  }));
  dart.setLibraryUri(html$.OrientationSensor, I[148]);
  dart.registerExtension("OrientationSensor", html$.OrientationSensor);
  html$.AbsoluteOrientationSensor = class AbsoluteOrientationSensor$ extends html$.OrientationSensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.AbsoluteOrientationSensor._create_1(sensorOptions_1);
      }
      return html$.AbsoluteOrientationSensor._create_2();
    }
    static _create_1(sensorOptions) {
      return new AbsoluteOrientationSensor(sensorOptions);
    }
    static _create_2() {
      return new AbsoluteOrientationSensor();
    }
  };
  dart.addTypeTests(html$.AbsoluteOrientationSensor);
  dart.addTypeCaches(html$.AbsoluteOrientationSensor);
  dart.setLibraryUri(html$.AbsoluteOrientationSensor, I[148]);
  dart.registerExtension("AbsoluteOrientationSensor", html$.AbsoluteOrientationSensor);
  html$.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
    get onError() {
      return html$.AbstractWorker.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.AbstractWorker);
  dart.addTypeCaches(html$.AbstractWorker);
  html$.AbstractWorker[dart.implements] = () => [html$.EventTarget];
  dart.setGetterSignature(html$.AbstractWorker, () => ({
    __proto__: dart.getGetters(html$.AbstractWorker.__proto__),
    onError: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.AbstractWorker, I[148]);
  dart.defineExtensionAccessors(html$.AbstractWorker, ['onError']);
  dart.defineLazy(html$.AbstractWorker, {
    /*html$.AbstractWorker.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  html$.Accelerometer = class Accelerometer$ extends html$.Sensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.Accelerometer._create_1(sensorOptions_1);
      }
      return html$.Accelerometer._create_2();
    }
    static _create_1(sensorOptions) {
      return new Accelerometer(sensorOptions);
    }
    static _create_2() {
      return new Accelerometer();
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  dart.addTypeTests(html$.Accelerometer);
  dart.addTypeCaches(html$.Accelerometer);
  dart.setGetterSignature(html$.Accelerometer, () => ({
    __proto__: dart.getGetters(html$.Accelerometer.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.Accelerometer, I[148]);
  dart.registerExtension("Accelerometer", html$.Accelerometer);
  html$.AccessibleNode = class AccessibleNode$ extends html$.EventTarget {
    static new() {
      return html$.AccessibleNode._create_1();
    }
    static _create_1() {
      return new AccessibleNode();
    }
    get [S$.$activeDescendant]() {
      return this.activeDescendant;
    }
    set [S$.$activeDescendant](value) {
      this.activeDescendant = value;
    }
    get [S$.$atomic]() {
      return this.atomic;
    }
    set [S$.$atomic](value) {
      this.atomic = value;
    }
    get [S$.$autocomplete]() {
      return this.autocomplete;
    }
    set [S$.$autocomplete](value) {
      this.autocomplete = value;
    }
    get [S$.$busy]() {
      return this.busy;
    }
    set [S$.$busy](value) {
      this.busy = value;
    }
    get [S$.$checked]() {
      return this.checked;
    }
    set [S$.$checked](value) {
      this.checked = value;
    }
    get [S$.$colCount]() {
      return this.colCount;
    }
    set [S$.$colCount](value) {
      this.colCount = value;
    }
    get [S$.$colIndex]() {
      return this.colIndex;
    }
    set [S$.$colIndex](value) {
      this.colIndex = value;
    }
    get [S$.$colSpan]() {
      return this.colSpan;
    }
    set [S$.$colSpan](value) {
      this.colSpan = value;
    }
    get [S$.$controls]() {
      return this.controls;
    }
    set [S$.$controls](value) {
      this.controls = value;
    }
    get [S$.$current]() {
      return this.current;
    }
    set [S$.$current](value) {
      this.current = value;
    }
    get [S$.$describedBy]() {
      return this.describedBy;
    }
    set [S$.$describedBy](value) {
      this.describedBy = value;
    }
    get [S$.$details]() {
      return this.details;
    }
    set [S$.$details](value) {
      this.details = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$errorMessage]() {
      return this.errorMessage;
    }
    set [S$.$errorMessage](value) {
      this.errorMessage = value;
    }
    get [S$.$expanded]() {
      return this.expanded;
    }
    set [S$.$expanded](value) {
      this.expanded = value;
    }
    get [S$.$flowTo]() {
      return this.flowTo;
    }
    set [S$.$flowTo](value) {
      this.flowTo = value;
    }
    get [S$.$hasPopUp]() {
      return this.hasPopUp;
    }
    set [S$.$hasPopUp](value) {
      this.hasPopUp = value;
    }
    get [S.$hidden]() {
      return this.hidden;
    }
    set [S.$hidden](value) {
      this.hidden = value;
    }
    get [S$.$invalid]() {
      return this.invalid;
    }
    set [S$.$invalid](value) {
      this.invalid = value;
    }
    get [S$.$keyShortcuts]() {
      return this.keyShortcuts;
    }
    set [S$.$keyShortcuts](value) {
      this.keyShortcuts = value;
    }
    get [S$.$label]() {
      return this.label;
    }
    set [S$.$label](value) {
      this.label = value;
    }
    get [S$.$labeledBy]() {
      return this.labeledBy;
    }
    set [S$.$labeledBy](value) {
      this.labeledBy = value;
    }
    get [S$.$level]() {
      return this.level;
    }
    set [S$.$level](value) {
      this.level = value;
    }
    get [S$.$live]() {
      return this.live;
    }
    set [S$.$live](value) {
      this.live = value;
    }
    get [S$.$modal]() {
      return this.modal;
    }
    set [S$.$modal](value) {
      this.modal = value;
    }
    get [S$.$multiline]() {
      return this.multiline;
    }
    set [S$.$multiline](value) {
      this.multiline = value;
    }
    get [S$.$multiselectable]() {
      return this.multiselectable;
    }
    set [S$.$multiselectable](value) {
      this.multiselectable = value;
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    set [S$.$orientation](value) {
      this.orientation = value;
    }
    get [S$.$owns]() {
      return this.owns;
    }
    set [S$.$owns](value) {
      this.owns = value;
    }
    get [S$.$placeholder]() {
      return this.placeholder;
    }
    set [S$.$placeholder](value) {
      this.placeholder = value;
    }
    get [S$.$posInSet]() {
      return this.posInSet;
    }
    set [S$.$posInSet](value) {
      this.posInSet = value;
    }
    get [S$.$pressed]() {
      return this.pressed;
    }
    set [S$.$pressed](value) {
      this.pressed = value;
    }
    get [S$.$readOnly]() {
      return this.readOnly;
    }
    set [S$.$readOnly](value) {
      this.readOnly = value;
    }
    get [S$.$relevant]() {
      return this.relevant;
    }
    set [S$.$relevant](value) {
      this.relevant = value;
    }
    get [S$.$required]() {
      return this.required;
    }
    set [S$.$required](value) {
      this.required = value;
    }
    get [S$.$role]() {
      return this.role;
    }
    set [S$.$role](value) {
      this.role = value;
    }
    get [S$.$roleDescription]() {
      return this.roleDescription;
    }
    set [S$.$roleDescription](value) {
      this.roleDescription = value;
    }
    get [S$.$rowCount]() {
      return this.rowCount;
    }
    set [S$.$rowCount](value) {
      this.rowCount = value;
    }
    get [S$.$rowIndex]() {
      return this.rowIndex;
    }
    set [S$.$rowIndex](value) {
      this.rowIndex = value;
    }
    get [S$.$rowSpan]() {
      return this.rowSpan;
    }
    set [S$.$rowSpan](value) {
      this.rowSpan = value;
    }
    get [S$.$selected]() {
      return this.selected;
    }
    set [S$.$selected](value) {
      this.selected = value;
    }
    get [S$.$setSize]() {
      return this.setSize;
    }
    set [S$.$setSize](value) {
      this.setSize = value;
    }
    get [$sort]() {
      return this.sort;
    }
    set [$sort](value) {
      this.sort = value;
    }
    get [S$.$valueMax]() {
      return this.valueMax;
    }
    set [S$.$valueMax](value) {
      this.valueMax = value;
    }
    get [S$.$valueMin]() {
      return this.valueMin;
    }
    set [S$.$valueMin](value) {
      this.valueMin = value;
    }
    get [S$.$valueNow]() {
      return this.valueNow;
    }
    set [S$.$valueNow](value) {
      this.valueNow = value;
    }
    get [S$.$valueText]() {
      return this.valueText;
    }
    set [S$.$valueText](value) {
      this.valueText = value;
    }
    [S$.$appendChild](...args) {
      return this.appendChild.apply(this, args);
    }
    get [S$.$onAccessibleClick]() {
      return html$.AccessibleNode.accessibleClickEvent.forTarget(this);
    }
    get [S$.$onAccessibleContextMenu]() {
      return html$.AccessibleNode.accessibleContextMenuEvent.forTarget(this);
    }
    get [S$.$onAccessibleDecrement]() {
      return html$.AccessibleNode.accessibleDecrementEvent.forTarget(this);
    }
    get [S$.$onAccessibleFocus]() {
      return html$.AccessibleNode.accessibleFocusEvent.forTarget(this);
    }
    get [S$.$onAccessibleIncrement]() {
      return html$.AccessibleNode.accessibleIncrementEvent.forTarget(this);
    }
    get [S$.$onAccessibleScrollIntoView]() {
      return html$.AccessibleNode.accessibleScrollIntoViewEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.AccessibleNode);
  dart.addTypeCaches(html$.AccessibleNode);
  dart.setMethodSignature(html$.AccessibleNode, () => ({
    __proto__: dart.getMethods(html$.AccessibleNode.__proto__),
    [S$.$appendChild]: dart.fnType(dart.void, [html$.AccessibleNode])
  }));
  dart.setGetterSignature(html$.AccessibleNode, () => ({
    __proto__: dart.getGetters(html$.AccessibleNode.__proto__),
    [S$.$activeDescendant]: dart.nullable(html$.AccessibleNode),
    [S$.$atomic]: dart.nullable(core.bool),
    [S$.$autocomplete]: dart.nullable(core.String),
    [S$.$busy]: dart.nullable(core.bool),
    [S$.$checked]: dart.nullable(core.String),
    [S$.$colCount]: dart.nullable(core.int),
    [S$.$colIndex]: dart.nullable(core.int),
    [S$.$colSpan]: dart.nullable(core.int),
    [S$.$controls]: dart.nullable(html$.AccessibleNodeList),
    [S$.$current]: dart.nullable(core.String),
    [S$.$describedBy]: dart.nullable(html$.AccessibleNodeList),
    [S$.$details]: dart.nullable(html$.AccessibleNode),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$errorMessage]: dart.nullable(html$.AccessibleNode),
    [S$.$expanded]: dart.nullable(core.bool),
    [S$.$flowTo]: dart.nullable(html$.AccessibleNodeList),
    [S$.$hasPopUp]: dart.nullable(core.String),
    [S.$hidden]: dart.nullable(core.bool),
    [S$.$invalid]: dart.nullable(core.String),
    [S$.$keyShortcuts]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$.$labeledBy]: dart.nullable(html$.AccessibleNodeList),
    [S$.$level]: dart.nullable(core.int),
    [S$.$live]: dart.nullable(core.String),
    [S$.$modal]: dart.nullable(core.bool),
    [S$.$multiline]: dart.nullable(core.bool),
    [S$.$multiselectable]: dart.nullable(core.bool),
    [S$.$orientation]: dart.nullable(core.String),
    [S$.$owns]: dart.nullable(html$.AccessibleNodeList),
    [S$.$placeholder]: dart.nullable(core.String),
    [S$.$posInSet]: dart.nullable(core.int),
    [S$.$pressed]: dart.nullable(core.String),
    [S$.$readOnly]: dart.nullable(core.bool),
    [S$.$relevant]: dart.nullable(core.String),
    [S$.$required]: dart.nullable(core.bool),
    [S$.$role]: dart.nullable(core.String),
    [S$.$roleDescription]: dart.nullable(core.String),
    [S$.$rowCount]: dart.nullable(core.int),
    [S$.$rowIndex]: dart.nullable(core.int),
    [S$.$rowSpan]: dart.nullable(core.int),
    [S$.$selected]: dart.nullable(core.bool),
    [S$.$setSize]: dart.nullable(core.int),
    [$sort]: dart.nullable(core.String),
    [S$.$valueMax]: dart.nullable(core.num),
    [S$.$valueMin]: dart.nullable(core.num),
    [S$.$valueNow]: dart.nullable(core.num),
    [S$.$valueText]: dart.nullable(core.String),
    [S$.$onAccessibleClick]: async.Stream$(html$.Event),
    [S$.$onAccessibleContextMenu]: async.Stream$(html$.Event),
    [S$.$onAccessibleDecrement]: async.Stream$(html$.Event),
    [S$.$onAccessibleFocus]: async.Stream$(html$.Event),
    [S$.$onAccessibleIncrement]: async.Stream$(html$.Event),
    [S$.$onAccessibleScrollIntoView]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.AccessibleNode, () => ({
    __proto__: dart.getSetters(html$.AccessibleNode.__proto__),
    [S$.$activeDescendant]: dart.nullable(html$.AccessibleNode),
    [S$.$atomic]: dart.nullable(core.bool),
    [S$.$autocomplete]: dart.nullable(core.String),
    [S$.$busy]: dart.nullable(core.bool),
    [S$.$checked]: dart.nullable(core.String),
    [S$.$colCount]: dart.nullable(core.int),
    [S$.$colIndex]: dart.nullable(core.int),
    [S$.$colSpan]: dart.nullable(core.int),
    [S$.$controls]: dart.nullable(html$.AccessibleNodeList),
    [S$.$current]: dart.nullable(core.String),
    [S$.$describedBy]: dart.nullable(html$.AccessibleNodeList),
    [S$.$details]: dart.nullable(html$.AccessibleNode),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$errorMessage]: dart.nullable(html$.AccessibleNode),
    [S$.$expanded]: dart.nullable(core.bool),
    [S$.$flowTo]: dart.nullable(html$.AccessibleNodeList),
    [S$.$hasPopUp]: dart.nullable(core.String),
    [S.$hidden]: dart.nullable(core.bool),
    [S$.$invalid]: dart.nullable(core.String),
    [S$.$keyShortcuts]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$.$labeledBy]: dart.nullable(html$.AccessibleNodeList),
    [S$.$level]: dart.nullable(core.int),
    [S$.$live]: dart.nullable(core.String),
    [S$.$modal]: dart.nullable(core.bool),
    [S$.$multiline]: dart.nullable(core.bool),
    [S$.$multiselectable]: dart.nullable(core.bool),
    [S$.$orientation]: dart.nullable(core.String),
    [S$.$owns]: dart.nullable(html$.AccessibleNodeList),
    [S$.$placeholder]: dart.nullable(core.String),
    [S$.$posInSet]: dart.nullable(core.int),
    [S$.$pressed]: dart.nullable(core.String),
    [S$.$readOnly]: dart.nullable(core.bool),
    [S$.$relevant]: dart.nullable(core.String),
    [S$.$required]: dart.nullable(core.bool),
    [S$.$role]: dart.nullable(core.String),
    [S$.$roleDescription]: dart.nullable(core.String),
    [S$.$rowCount]: dart.nullable(core.int),
    [S$.$rowIndex]: dart.nullable(core.int),
    [S$.$rowSpan]: dart.nullable(core.int),
    [S$.$selected]: dart.nullable(core.bool),
    [S$.$setSize]: dart.nullable(core.int),
    [$sort]: dart.nullable(core.String),
    [S$.$valueMax]: dart.nullable(core.num),
    [S$.$valueMin]: dart.nullable(core.num),
    [S$.$valueNow]: dart.nullable(core.num),
    [S$.$valueText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.AccessibleNode, I[148]);
  dart.defineLazy(html$.AccessibleNode, {
    /*html$.AccessibleNode.accessibleClickEvent*/get accessibleClickEvent() {
      return C[296] || CT.C296;
    },
    /*html$.AccessibleNode.accessibleContextMenuEvent*/get accessibleContextMenuEvent() {
      return C[297] || CT.C297;
    },
    /*html$.AccessibleNode.accessibleDecrementEvent*/get accessibleDecrementEvent() {
      return C[298] || CT.C298;
    },
    /*html$.AccessibleNode.accessibleFocusEvent*/get accessibleFocusEvent() {
      return C[299] || CT.C299;
    },
    /*html$.AccessibleNode.accessibleIncrementEvent*/get accessibleIncrementEvent() {
      return C[300] || CT.C300;
    },
    /*html$.AccessibleNode.accessibleScrollIntoViewEvent*/get accessibleScrollIntoViewEvent() {
      return C[301] || CT.C301;
    }
  }, false);
  dart.registerExtension("AccessibleNode", html$.AccessibleNode);
  html$.AccessibleNodeList = class AccessibleNodeList$ extends _interceptors.Interceptor {
    static new(nodes = null) {
      if (nodes != null) {
        return html$.AccessibleNodeList._create_1(nodes);
      }
      return html$.AccessibleNodeList._create_2();
    }
    static _create_1(nodes) {
      return new AccessibleNodeList(nodes);
    }
    static _create_2() {
      return new AccessibleNodeList();
    }
    get [$length]() {
      return this.length;
    }
    set [$length](value) {
      this.length = value;
    }
    [S$.__setter__](...args) {
      return this.__setter__.apply(this, args);
    }
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [$remove](...args) {
      return this.remove.apply(this, args);
    }
  };
  dart.addTypeTests(html$.AccessibleNodeList);
  dart.addTypeCaches(html$.AccessibleNodeList);
  dart.setMethodSignature(html$.AccessibleNodeList, () => ({
    __proto__: dart.getMethods(html$.AccessibleNodeList.__proto__),
    [S$.__setter__]: dart.fnType(dart.void, [core.int, html$.AccessibleNode]),
    [$add]: dart.fnType(dart.void, [html$.AccessibleNode, dart.nullable(html$.AccessibleNode)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.AccessibleNode), [core.int]),
    [$remove]: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(html$.AccessibleNodeList, () => ({
    __proto__: dart.getGetters(html$.AccessibleNodeList.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.AccessibleNodeList, () => ({
    __proto__: dart.getSetters(html$.AccessibleNodeList.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.AccessibleNodeList, I[148]);
  dart.registerExtension("AccessibleNodeList", html$.AccessibleNodeList);
  html$.AmbientLightSensor = class AmbientLightSensor$ extends html$.Sensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.AmbientLightSensor._create_1(sensorOptions_1);
      }
      return html$.AmbientLightSensor._create_2();
    }
    static _create_1(sensorOptions) {
      return new AmbientLightSensor(sensorOptions);
    }
    static _create_2() {
      return new AmbientLightSensor();
    }
    get [S$.$illuminance]() {
      return this.illuminance;
    }
  };
  dart.addTypeTests(html$.AmbientLightSensor);
  dart.addTypeCaches(html$.AmbientLightSensor);
  dart.setGetterSignature(html$.AmbientLightSensor, () => ({
    __proto__: dart.getGetters(html$.AmbientLightSensor.__proto__),
    [S$.$illuminance]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AmbientLightSensor, I[148]);
  dart.registerExtension("AmbientLightSensor", html$.AmbientLightSensor);
  html$.AnchorElement = class AnchorElement extends html$.HtmlElement {
    static new(opts) {
      let href = opts && 'href' in opts ? opts.href : null;
      let e = html$.document.createElement("a");
      if (href != null) e.href = href;
      return e;
    }
    get [S$.$download]() {
      return this.download;
    }
    set [S$.$download](value) {
      this.download = value;
    }
    get [S$.$hreflang]() {
      return this.hreflang;
    }
    set [S$.$hreflang](value) {
      this.hreflang = value;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    set [S$.$referrerPolicy](value) {
      this.referrerPolicy = value;
    }
    get [S$.$rel]() {
      return this.rel;
    }
    set [S$.$rel](value) {
      this.rel = value;
    }
    get [S.$target]() {
      return this.target;
    }
    set [S.$target](value) {
      this.target = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$.$hash]() {
      return this.hash;
    }
    set [S$.$hash](value) {
      this.hash = value;
    }
    get [S$.$host]() {
      return this.host;
    }
    set [S$.$host](value) {
      this.host = value;
    }
    get [S$.$hostname]() {
      return this.hostname;
    }
    set [S$.$hostname](value) {
      this.hostname = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$.$password]() {
      return this.password;
    }
    set [S$.$password](value) {
      this.password = value;
    }
    get [S$.$pathname]() {
      return this.pathname;
    }
    set [S$.$pathname](value) {
      this.pathname = value;
    }
    get [S$.$port]() {
      return this.port;
    }
    set [S$.$port](value) {
      this.port = value;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    set [S$.$protocol](value) {
      this.protocol = value;
    }
    get [S$.$search]() {
      return this.search;
    }
    set [S$.$search](value) {
      this.search = value;
    }
    get [S$.$username]() {
      return this.username;
    }
    set [S$.$username](value) {
      this.username = value;
    }
    [$toString]() {
      return String(this);
    }
  };
  (html$.AnchorElement.created = function() {
    html$.AnchorElement.__proto__.created.call(this);
    ;
  }).prototype = html$.AnchorElement.prototype;
  dart.addTypeTests(html$.AnchorElement);
  dart.addTypeCaches(html$.AnchorElement);
  html$.AnchorElement[dart.implements] = () => [html$.HtmlHyperlinkElementUtils];
  dart.setGetterSignature(html$.AnchorElement, () => ({
    __proto__: dart.getGetters(html$.AnchorElement.__proto__),
    [S$.$download]: dart.nullable(core.String),
    [S$.$hreflang]: core.String,
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S.$target]: core.String,
    [S.$type]: core.String,
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.AnchorElement, () => ({
    __proto__: dart.getSetters(html$.AnchorElement.__proto__),
    [S$.$download]: dart.nullable(core.String),
    [S$.$hreflang]: core.String,
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S.$target]: core.String,
    [S.$type]: core.String,
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.AnchorElement, I[148]);
  dart.registerExtension("HTMLAnchorElement", html$.AnchorElement);
  html$.Animation = class Animation$ extends html$.EventTarget {
    static new(effect = null, timeline = null) {
      if (timeline != null) {
        return html$.Animation._create_1(effect, timeline);
      }
      if (effect != null) {
        return html$.Animation._create_2(effect);
      }
      return html$.Animation._create_3();
    }
    static _create_1(effect, timeline) {
      return new Animation(effect, timeline);
    }
    static _create_2(effect) {
      return new Animation(effect);
    }
    static _create_3() {
      return new Animation();
    }
    static get supported() {
      return !!document.body.animate;
    }
    get [S$.$currentTime]() {
      return this.currentTime;
    }
    set [S$.$currentTime](value) {
      this.currentTime = value;
    }
    get [S$.$effect]() {
      return this.effect;
    }
    set [S$.$effect](value) {
      this.effect = value;
    }
    get [S$.$finished]() {
      return js_util.promiseToFuture(html$.Animation, this.finished);
    }
    get [S.$id]() {
      return this.id;
    }
    set [S.$id](value) {
      this.id = value;
    }
    get [S$.$playState]() {
      return this.playState;
    }
    get [S$.$playbackRate]() {
      return this.playbackRate;
    }
    set [S$.$playbackRate](value) {
      this.playbackRate = value;
    }
    get [S$.$ready]() {
      return js_util.promiseToFuture(html$.Animation, this.ready);
    }
    get [S$.$startTime]() {
      return this.startTime;
    }
    set [S$.$startTime](value) {
      this.startTime = value;
    }
    get [S$.$timeline]() {
      return this.timeline;
    }
    [S$.$cancel](...args) {
      return this.cancel.apply(this, args);
    }
    [S$.$finish](...args) {
      return this.finish.apply(this, args);
    }
    [S$.$pause](...args) {
      return this.pause.apply(this, args);
    }
    [S$.$play](...args) {
      return this.play.apply(this, args);
    }
    [S$.$reverse](...args) {
      return this.reverse.apply(this, args);
    }
    get [S$.$onCancel]() {
      return html$.Animation.cancelEvent.forTarget(this);
    }
    get [S$.$onFinish]() {
      return html$.Animation.finishEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.Animation);
  dart.addTypeCaches(html$.Animation);
  dart.setMethodSignature(html$.Animation, () => ({
    __proto__: dart.getMethods(html$.Animation.__proto__),
    [S$.$cancel]: dart.fnType(dart.void, []),
    [S$.$finish]: dart.fnType(dart.void, []),
    [S$.$pause]: dart.fnType(dart.void, []),
    [S$.$play]: dart.fnType(dart.void, []),
    [S$.$reverse]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.Animation, () => ({
    __proto__: dart.getGetters(html$.Animation.__proto__),
    [S$.$currentTime]: dart.nullable(core.num),
    [S$.$effect]: dart.nullable(html$.AnimationEffectReadOnly),
    [S$.$finished]: async.Future$(html$.Animation),
    [S.$id]: dart.nullable(core.String),
    [S$.$playState]: dart.nullable(core.String),
    [S$.$playbackRate]: dart.nullable(core.num),
    [S$.$ready]: async.Future$(html$.Animation),
    [S$.$startTime]: dart.nullable(core.num),
    [S$.$timeline]: dart.nullable(html$.AnimationTimeline),
    [S$.$onCancel]: async.Stream$(html$.Event),
    [S$.$onFinish]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.Animation, () => ({
    __proto__: dart.getSetters(html$.Animation.__proto__),
    [S$.$currentTime]: dart.nullable(core.num),
    [S$.$effect]: dart.nullable(html$.AnimationEffectReadOnly),
    [S.$id]: dart.nullable(core.String),
    [S$.$playbackRate]: dart.nullable(core.num),
    [S$.$startTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.Animation, I[148]);
  dart.defineLazy(html$.Animation, {
    /*html$.Animation.cancelEvent*/get cancelEvent() {
      return C[302] || CT.C302;
    },
    /*html$.Animation.finishEvent*/get finishEvent() {
      return C[303] || CT.C303;
    }
  }, false);
  dart.registerExtension("Animation", html$.Animation);
  html$.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
    get [S$.$timing]() {
      return this.timing;
    }
    [S$.$getComputedTiming]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$._getComputedTiming_1]()));
    }
    [S$._getComputedTiming_1](...args) {
      return this.getComputedTiming.apply(this, args);
    }
  };
  dart.addTypeTests(html$.AnimationEffectReadOnly);
  dart.addTypeCaches(html$.AnimationEffectReadOnly);
  dart.setMethodSignature(html$.AnimationEffectReadOnly, () => ({
    __proto__: dart.getMethods(html$.AnimationEffectReadOnly.__proto__),
    [S$.$getComputedTiming]: dart.fnType(core.Map, []),
    [S$._getComputedTiming_1]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(html$.AnimationEffectReadOnly, () => ({
    __proto__: dart.getGetters(html$.AnimationEffectReadOnly.__proto__),
    [S$.$timing]: dart.nullable(html$.AnimationEffectTimingReadOnly)
  }));
  dart.setLibraryUri(html$.AnimationEffectReadOnly, I[148]);
  dart.registerExtension("AnimationEffectReadOnly", html$.AnimationEffectReadOnly);
  html$.AnimationEffectTimingReadOnly = class AnimationEffectTimingReadOnly extends _interceptors.Interceptor {
    get [S$.$delay]() {
      return this.delay;
    }
    get [S.$direction]() {
      return this.direction;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    get [S$.$easing]() {
      return this.easing;
    }
    get [S$.$endDelay]() {
      return this.endDelay;
    }
    get [S$.$fill]() {
      return this.fill;
    }
    get [S$.$iterationStart]() {
      return this.iterationStart;
    }
    get [S$.$iterations]() {
      return this.iterations;
    }
  };
  dart.addTypeTests(html$.AnimationEffectTimingReadOnly);
  dart.addTypeCaches(html$.AnimationEffectTimingReadOnly);
  dart.setGetterSignature(html$.AnimationEffectTimingReadOnly, () => ({
    __proto__: dart.getGetters(html$.AnimationEffectTimingReadOnly.__proto__),
    [S$.$delay]: dart.nullable(core.num),
    [S.$direction]: dart.nullable(core.String),
    [S$.$duration]: dart.nullable(core.Object),
    [S$.$easing]: dart.nullable(core.String),
    [S$.$endDelay]: dart.nullable(core.num),
    [S$.$fill]: dart.nullable(core.String),
    [S$.$iterationStart]: dart.nullable(core.num),
    [S$.$iterations]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AnimationEffectTimingReadOnly, I[148]);
  dart.registerExtension("AnimationEffectTimingReadOnly", html$.AnimationEffectTimingReadOnly);
  html$.AnimationEffectTiming = class AnimationEffectTiming extends html$.AnimationEffectTimingReadOnly {
    get [S$.$delay]() {
      return this.delay;
    }
    set [S$.$delay](value) {
      this.delay = value;
    }
    get [S.$direction]() {
      return this.direction;
    }
    set [S.$direction](value) {
      this.direction = value;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    set [S$.$duration](value) {
      this.duration = value;
    }
    get [S$.$easing]() {
      return this.easing;
    }
    set [S$.$easing](value) {
      this.easing = value;
    }
    get [S$.$endDelay]() {
      return this.endDelay;
    }
    set [S$.$endDelay](value) {
      this.endDelay = value;
    }
    get [S$.$fill]() {
      return this.fill;
    }
    set [S$.$fill](value) {
      this.fill = value;
    }
    get [S$.$iterationStart]() {
      return this.iterationStart;
    }
    set [S$.$iterationStart](value) {
      this.iterationStart = value;
    }
    get [S$.$iterations]() {
      return this.iterations;
    }
    set [S$.$iterations](value) {
      this.iterations = value;
    }
  };
  dart.addTypeTests(html$.AnimationEffectTiming);
  dart.addTypeCaches(html$.AnimationEffectTiming);
  dart.setSetterSignature(html$.AnimationEffectTiming, () => ({
    __proto__: dart.getSetters(html$.AnimationEffectTiming.__proto__),
    [S$.$delay]: dart.nullable(core.num),
    [S.$direction]: dart.nullable(core.String),
    [S$.$duration]: dart.nullable(core.Object),
    [S$.$easing]: dart.nullable(core.String),
    [S$.$endDelay]: dart.nullable(core.num),
    [S$.$fill]: dart.nullable(core.String),
    [S$.$iterationStart]: dart.nullable(core.num),
    [S$.$iterations]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AnimationEffectTiming, I[148]);
  dart.registerExtension("AnimationEffectTiming", html$.AnimationEffectTiming);
  html$.AnimationEvent = class AnimationEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 821, 33, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.AnimationEvent._create_1(type, eventInitDict_1);
      }
      return html$.AnimationEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new AnimationEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new AnimationEvent(type);
    }
    get [S$.$animationName]() {
      return this.animationName;
    }
    get [S$.$elapsedTime]() {
      return this.elapsedTime;
    }
  };
  dart.addTypeTests(html$.AnimationEvent);
  dart.addTypeCaches(html$.AnimationEvent);
  dart.setGetterSignature(html$.AnimationEvent, () => ({
    __proto__: dart.getGetters(html$.AnimationEvent.__proto__),
    [S$.$animationName]: dart.nullable(core.String),
    [S$.$elapsedTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AnimationEvent, I[148]);
  dart.registerExtension("AnimationEvent", html$.AnimationEvent);
  html$.AnimationPlaybackEvent = class AnimationPlaybackEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 848, 41, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.AnimationPlaybackEvent._create_1(type, eventInitDict_1);
      }
      return html$.AnimationPlaybackEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new AnimationPlaybackEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new AnimationPlaybackEvent(type);
    }
    get [S$.$currentTime]() {
      return this.currentTime;
    }
    get [S$.$timelineTime]() {
      return this.timelineTime;
    }
  };
  dart.addTypeTests(html$.AnimationPlaybackEvent);
  dart.addTypeCaches(html$.AnimationPlaybackEvent);
  dart.setGetterSignature(html$.AnimationPlaybackEvent, () => ({
    __proto__: dart.getGetters(html$.AnimationPlaybackEvent.__proto__),
    [S$.$currentTime]: dart.nullable(core.num),
    [S$.$timelineTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AnimationPlaybackEvent, I[148]);
  dart.registerExtension("AnimationPlaybackEvent", html$.AnimationPlaybackEvent);
  html$.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
    get [S$.$currentTime]() {
      return this.currentTime;
    }
  };
  dart.addTypeTests(html$.AnimationTimeline);
  dart.addTypeCaches(html$.AnimationTimeline);
  dart.setGetterSignature(html$.AnimationTimeline, () => ({
    __proto__: dart.getGetters(html$.AnimationTimeline.__proto__),
    [S$.$currentTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.AnimationTimeline, I[148]);
  dart.registerExtension("AnimationTimeline", html$.AnimationTimeline);
  html$.WorkletGlobalScope = class WorkletGlobalScope extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.WorkletGlobalScope);
  dart.addTypeCaches(html$.WorkletGlobalScope);
  dart.setLibraryUri(html$.WorkletGlobalScope, I[148]);
  dart.registerExtension("WorkletGlobalScope", html$.WorkletGlobalScope);
  html$.AnimationWorkletGlobalScope = class AnimationWorkletGlobalScope extends html$.WorkletGlobalScope {
    [S$.$registerAnimator](...args) {
      return this.registerAnimator.apply(this, args);
    }
  };
  dart.addTypeTests(html$.AnimationWorkletGlobalScope);
  dart.addTypeCaches(html$.AnimationWorkletGlobalScope);
  dart.setMethodSignature(html$.AnimationWorkletGlobalScope, () => ({
    __proto__: dart.getMethods(html$.AnimationWorkletGlobalScope.__proto__),
    [S$.$registerAnimator]: dart.fnType(dart.void, [core.String, core.Object])
  }));
  dart.setLibraryUri(html$.AnimationWorkletGlobalScope, I[148]);
  dart.registerExtension("AnimationWorkletGlobalScope", html$.AnimationWorkletGlobalScope);
  html$.ApplicationCache = class ApplicationCache extends html$.EventTarget {
    static get supported() {
      return !!window.applicationCache;
    }
    get [S$.$status]() {
      return this.status;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$.$swapCache](...args) {
      return this.swapCache.apply(this, args);
    }
    [$update](...args) {
      return this.update.apply(this, args);
    }
    get [S$.$onCached]() {
      return html$.ApplicationCache.cachedEvent.forTarget(this);
    }
    get [S$.$onChecking]() {
      return html$.ApplicationCache.checkingEvent.forTarget(this);
    }
    get [S$.$onDownloading]() {
      return html$.ApplicationCache.downloadingEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.ApplicationCache.errorEvent.forTarget(this);
    }
    get [S$.$onNoUpdate]() {
      return html$.ApplicationCache.noUpdateEvent.forTarget(this);
    }
    get [S$.$onObsolete]() {
      return html$.ApplicationCache.obsoleteEvent.forTarget(this);
    }
    get [S$.$onProgress]() {
      return html$.ApplicationCache.progressEvent.forTarget(this);
    }
    get [S$.$onUpdateReady]() {
      return html$.ApplicationCache.updateReadyEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.ApplicationCache);
  dart.addTypeCaches(html$.ApplicationCache);
  dart.setMethodSignature(html$.ApplicationCache, () => ({
    __proto__: dart.getMethods(html$.ApplicationCache.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$.$swapCache]: dart.fnType(dart.void, []),
    [$update]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.ApplicationCache, () => ({
    __proto__: dart.getGetters(html$.ApplicationCache.__proto__),
    [S$.$status]: dart.nullable(core.int),
    [S$.$onCached]: async.Stream$(html$.Event),
    [S$.$onChecking]: async.Stream$(html$.Event),
    [S$.$onDownloading]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onNoUpdate]: async.Stream$(html$.Event),
    [S$.$onObsolete]: async.Stream$(html$.Event),
    [S$.$onProgress]: async.Stream$(html$.ProgressEvent),
    [S$.$onUpdateReady]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.ApplicationCache, I[148]);
  dart.defineLazy(html$.ApplicationCache, {
    /*html$.ApplicationCache.cachedEvent*/get cachedEvent() {
      return C[304] || CT.C304;
    },
    /*html$.ApplicationCache.checkingEvent*/get checkingEvent() {
      return C[305] || CT.C305;
    },
    /*html$.ApplicationCache.downloadingEvent*/get downloadingEvent() {
      return C[306] || CT.C306;
    },
    /*html$.ApplicationCache.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.ApplicationCache.noUpdateEvent*/get noUpdateEvent() {
      return C[307] || CT.C307;
    },
    /*html$.ApplicationCache.obsoleteEvent*/get obsoleteEvent() {
      return C[308] || CT.C308;
    },
    /*html$.ApplicationCache.progressEvent*/get progressEvent() {
      return C[309] || CT.C309;
    },
    /*html$.ApplicationCache.updateReadyEvent*/get updateReadyEvent() {
      return C[310] || CT.C310;
    },
    /*html$.ApplicationCache.CHECKING*/get CHECKING() {
      return 2;
    },
    /*html$.ApplicationCache.DOWNLOADING*/get DOWNLOADING() {
      return 3;
    },
    /*html$.ApplicationCache.IDLE*/get IDLE() {
      return 1;
    },
    /*html$.ApplicationCache.OBSOLETE*/get OBSOLETE() {
      return 5;
    },
    /*html$.ApplicationCache.UNCACHED*/get UNCACHED() {
      return 0;
    },
    /*html$.ApplicationCache.UPDATEREADY*/get UPDATEREADY() {
      return 4;
    }
  }, false);
  dart.registerExtension("ApplicationCache", html$.ApplicationCache);
  dart.registerExtension("DOMApplicationCache", html$.ApplicationCache);
  dart.registerExtension("OfflineResourceList", html$.ApplicationCache);
  html$.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 1043, 45, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
      }
      return html$.ApplicationCacheErrorEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new ApplicationCacheErrorEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new ApplicationCacheErrorEvent(type);
    }
    get [$message]() {
      return this.message;
    }
    get [S$.$reason]() {
      return this.reason;
    }
    get [S$.$status]() {
      return this.status;
    }
    get [S$.$url]() {
      return this.url;
    }
  };
  dart.addTypeTests(html$.ApplicationCacheErrorEvent);
  dart.addTypeCaches(html$.ApplicationCacheErrorEvent);
  dart.setGetterSignature(html$.ApplicationCacheErrorEvent, () => ({
    __proto__: dart.getGetters(html$.ApplicationCacheErrorEvent.__proto__),
    [$message]: dart.nullable(core.String),
    [S$.$reason]: dart.nullable(core.String),
    [S$.$status]: dart.nullable(core.int),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.ApplicationCacheErrorEvent, I[148]);
  dart.registerExtension("ApplicationCacheErrorEvent", html$.ApplicationCacheErrorEvent);
  html$.AreaElement = class AreaElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("area");
    }
    get [S$.$alt]() {
      return this.alt;
    }
    set [S$.$alt](value) {
      this.alt = value;
    }
    get [S$.$coords]() {
      return this.coords;
    }
    set [S$.$coords](value) {
      this.coords = value;
    }
    get [S$.$download]() {
      return this.download;
    }
    set [S$.$download](value) {
      this.download = value;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    set [S$.$referrerPolicy](value) {
      this.referrerPolicy = value;
    }
    get [S$.$rel]() {
      return this.rel;
    }
    set [S$.$rel](value) {
      this.rel = value;
    }
    get [S$.$shape]() {
      return this.shape;
    }
    set [S$.$shape](value) {
      this.shape = value;
    }
    get [S.$target]() {
      return this.target;
    }
    set [S.$target](value) {
      this.target = value;
    }
    get [S$.$hash]() {
      return this.hash;
    }
    set [S$.$hash](value) {
      this.hash = value;
    }
    get [S$.$host]() {
      return this.host;
    }
    set [S$.$host](value) {
      this.host = value;
    }
    get [S$.$hostname]() {
      return this.hostname;
    }
    set [S$.$hostname](value) {
      this.hostname = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$.$password]() {
      return this.password;
    }
    set [S$.$password](value) {
      this.password = value;
    }
    get [S$.$pathname]() {
      return this.pathname;
    }
    set [S$.$pathname](value) {
      this.pathname = value;
    }
    get [S$.$port]() {
      return this.port;
    }
    set [S$.$port](value) {
      this.port = value;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    set [S$.$protocol](value) {
      this.protocol = value;
    }
    get [S$.$search]() {
      return this.search;
    }
    set [S$.$search](value) {
      this.search = value;
    }
    get [S$.$username]() {
      return this.username;
    }
    set [S$.$username](value) {
      this.username = value;
    }
    [$toString]() {
      return String(this);
    }
  };
  (html$.AreaElement.created = function() {
    html$.AreaElement.__proto__.created.call(this);
    ;
  }).prototype = html$.AreaElement.prototype;
  dart.addTypeTests(html$.AreaElement);
  dart.addTypeCaches(html$.AreaElement);
  html$.AreaElement[dart.implements] = () => [html$.HtmlHyperlinkElementUtils];
  dart.setGetterSignature(html$.AreaElement, () => ({
    __proto__: dart.getGetters(html$.AreaElement.__proto__),
    [S$.$alt]: core.String,
    [S$.$coords]: core.String,
    [S$.$download]: dart.nullable(core.String),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S$.$shape]: core.String,
    [S.$target]: core.String,
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.AreaElement, () => ({
    __proto__: dart.getSetters(html$.AreaElement.__proto__),
    [S$.$alt]: core.String,
    [S$.$coords]: core.String,
    [S$.$download]: dart.nullable(core.String),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S$.$shape]: core.String,
    [S.$target]: core.String,
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.AreaElement, I[148]);
  dart.registerExtension("HTMLAreaElement", html$.AreaElement);
  html$.MediaElement = class MediaElement extends html$.HtmlElement {
    get [S$.$audioTracks]() {
      return this.audioTracks;
    }
    get [S$.$autoplay]() {
      return this.autoplay;
    }
    set [S$.$autoplay](value) {
      this.autoplay = value;
    }
    get [S$.$buffered]() {
      return this.buffered;
    }
    get [S$.$controls]() {
      return this.controls;
    }
    set [S$.$controls](value) {
      this.controls = value;
    }
    get [S$.$controlsList]() {
      return this.controlsList;
    }
    get [S$.$crossOrigin]() {
      return this.crossOrigin;
    }
    set [S$.$crossOrigin](value) {
      this.crossOrigin = value;
    }
    get [S$.$currentSrc]() {
      return this.currentSrc;
    }
    get [S$.$currentTime]() {
      return this.currentTime;
    }
    set [S$.$currentTime](value) {
      this.currentTime = value;
    }
    get [S$.$defaultMuted]() {
      return this.defaultMuted;
    }
    set [S$.$defaultMuted](value) {
      this.defaultMuted = value;
    }
    get [S$.$defaultPlaybackRate]() {
      return this.defaultPlaybackRate;
    }
    set [S$.$defaultPlaybackRate](value) {
      this.defaultPlaybackRate = value;
    }
    get [S$.$disableRemotePlayback]() {
      return this.disableRemotePlayback;
    }
    set [S$.$disableRemotePlayback](value) {
      this.disableRemotePlayback = value;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    get [S$.$ended]() {
      return this.ended;
    }
    get [S.$error]() {
      return this.error;
    }
    get [S$.$loop]() {
      return this.loop;
    }
    set [S$.$loop](value) {
      this.loop = value;
    }
    get [S$.$mediaKeys]() {
      return this.mediaKeys;
    }
    get [S$.$muted]() {
      return this.muted;
    }
    set [S$.$muted](value) {
      this.muted = value;
    }
    get [S$.$networkState]() {
      return this.networkState;
    }
    get [S$.$paused]() {
      return this.paused;
    }
    get [S$.$playbackRate]() {
      return this.playbackRate;
    }
    set [S$.$playbackRate](value) {
      this.playbackRate = value;
    }
    get [S$.$played]() {
      return this.played;
    }
    get [S$.$preload]() {
      return this.preload;
    }
    set [S$.$preload](value) {
      this.preload = value;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$.$remote]() {
      return this.remote;
    }
    get [S$.$seekable]() {
      return this.seekable;
    }
    get [S$.$seeking]() {
      return this.seeking;
    }
    get [S$.$sinkId]() {
      return this.sinkId;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$.$srcObject]() {
      return this.srcObject;
    }
    set [S$.$srcObject](value) {
      this.srcObject = value;
    }
    get [S$.$textTracks]() {
      return this.textTracks;
    }
    get [S$.$videoTracks]() {
      return this.videoTracks;
    }
    get [S$.$volume]() {
      return this.volume;
    }
    set [S$.$volume](value) {
      this.volume = value;
    }
    get [S$.$audioDecodedByteCount]() {
      return this.webkitAudioDecodedByteCount;
    }
    get [S$.$videoDecodedByteCount]() {
      return this.webkitVideoDecodedByteCount;
    }
    [S$.$addTextTrack](...args) {
      return this.addTextTrack.apply(this, args);
    }
    [S$.$canPlayType](...args) {
      return this.canPlayType.apply(this, args);
    }
    [S$.$captureStream](...args) {
      return this.captureStream.apply(this, args);
    }
    [S$.$load](...args) {
      return this.load.apply(this, args);
    }
    [S$.$pause](...args) {
      return this.pause.apply(this, args);
    }
    [S$.$play]() {
      return js_util.promiseToFuture(dart.dynamic, this.play());
    }
    [S$.$setMediaKeys](mediaKeys) {
      return js_util.promiseToFuture(dart.dynamic, this.setMediaKeys(mediaKeys));
    }
    [S$.$setSinkId](sinkId) {
      if (sinkId == null) dart.nullFailed(I[147], 20715, 27, "sinkId");
      return js_util.promiseToFuture(dart.dynamic, this.setSinkId(sinkId));
    }
  };
  (html$.MediaElement.created = function() {
    html$.MediaElement.__proto__.created.call(this);
    ;
  }).prototype = html$.MediaElement.prototype;
  dart.addTypeTests(html$.MediaElement);
  dart.addTypeCaches(html$.MediaElement);
  dart.setMethodSignature(html$.MediaElement, () => ({
    __proto__: dart.getMethods(html$.MediaElement.__proto__),
    [S$.$addTextTrack]: dart.fnType(html$.TextTrack, [core.String], [dart.nullable(core.String), dart.nullable(core.String)]),
    [S$.$canPlayType]: dart.fnType(core.String, [dart.nullable(core.String)], [dart.nullable(core.String)]),
    [S$.$captureStream]: dart.fnType(html$.MediaStream, []),
    [S$.$load]: dart.fnType(dart.void, []),
    [S$.$pause]: dart.fnType(dart.void, []),
    [S$.$play]: dart.fnType(async.Future, []),
    [S$.$setMediaKeys]: dart.fnType(async.Future, [dart.nullable(html$.MediaKeys)]),
    [S$.$setSinkId]: dart.fnType(async.Future, [core.String])
  }));
  dart.setGetterSignature(html$.MediaElement, () => ({
    __proto__: dart.getGetters(html$.MediaElement.__proto__),
    [S$.$audioTracks]: dart.nullable(web_audio.AudioTrackList),
    [S$.$autoplay]: core.bool,
    [S$.$buffered]: html$.TimeRanges,
    [S$.$controls]: core.bool,
    [S$.$controlsList]: dart.nullable(html$.DomTokenList),
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$.$currentSrc]: core.String,
    [S$.$currentTime]: core.num,
    [S$.$defaultMuted]: dart.nullable(core.bool),
    [S$.$defaultPlaybackRate]: core.num,
    [S$.$disableRemotePlayback]: core.bool,
    [S$.$duration]: core.num,
    [S$.$ended]: core.bool,
    [S.$error]: dart.nullable(html$.MediaError),
    [S$.$loop]: core.bool,
    [S$.$mediaKeys]: dart.nullable(html$.MediaKeys),
    [S$.$muted]: core.bool,
    [S$.$networkState]: dart.nullable(core.int),
    [S$.$paused]: core.bool,
    [S$.$playbackRate]: core.num,
    [S$.$played]: html$.TimeRanges,
    [S$.$preload]: core.String,
    [S.$readyState]: core.int,
    [S$.$remote]: dart.nullable(html$.RemotePlayback),
    [S$.$seekable]: html$.TimeRanges,
    [S$.$seeking]: core.bool,
    [S$.$sinkId]: dart.nullable(core.String),
    [S$.$src]: core.String,
    [S$.$srcObject]: dart.nullable(html$.MediaStream),
    [S$.$textTracks]: dart.nullable(html$.TextTrackList),
    [S$.$videoTracks]: dart.nullable(html$.VideoTrackList),
    [S$.$volume]: core.num,
    [S$.$audioDecodedByteCount]: dart.nullable(core.int),
    [S$.$videoDecodedByteCount]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.MediaElement, () => ({
    __proto__: dart.getSetters(html$.MediaElement.__proto__),
    [S$.$autoplay]: core.bool,
    [S$.$controls]: core.bool,
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$.$currentTime]: core.num,
    [S$.$defaultMuted]: dart.nullable(core.bool),
    [S$.$defaultPlaybackRate]: core.num,
    [S$.$disableRemotePlayback]: core.bool,
    [S$.$loop]: core.bool,
    [S$.$muted]: core.bool,
    [S$.$playbackRate]: core.num,
    [S$.$preload]: core.String,
    [S$.$src]: core.String,
    [S$.$srcObject]: dart.nullable(html$.MediaStream),
    [S$.$volume]: core.num
  }));
  dart.setLibraryUri(html$.MediaElement, I[148]);
  dart.defineLazy(html$.MediaElement, {
    /*html$.MediaElement.HAVE_CURRENT_DATA*/get HAVE_CURRENT_DATA() {
      return 2;
    },
    /*html$.MediaElement.HAVE_ENOUGH_DATA*/get HAVE_ENOUGH_DATA() {
      return 4;
    },
    /*html$.MediaElement.HAVE_FUTURE_DATA*/get HAVE_FUTURE_DATA() {
      return 3;
    },
    /*html$.MediaElement.HAVE_METADATA*/get HAVE_METADATA() {
      return 1;
    },
    /*html$.MediaElement.HAVE_NOTHING*/get HAVE_NOTHING() {
      return 0;
    },
    /*html$.MediaElement.NETWORK_EMPTY*/get NETWORK_EMPTY() {
      return 0;
    },
    /*html$.MediaElement.NETWORK_IDLE*/get NETWORK_IDLE() {
      return 1;
    },
    /*html$.MediaElement.NETWORK_LOADING*/get NETWORK_LOADING() {
      return 2;
    },
    /*html$.MediaElement.NETWORK_NO_SOURCE*/get NETWORK_NO_SOURCE() {
      return 3;
    }
  }, false);
  dart.registerExtension("HTMLMediaElement", html$.MediaElement);
  html$.AudioElement = class AudioElement extends html$.MediaElement {
    static __(src = null) {
      if (src != null) {
        return html$.AudioElement._create_1(src);
      }
      return html$.AudioElement._create_2();
    }
    static _create_1(src) {
      return new Audio(src);
    }
    static _create_2() {
      return new Audio();
    }
    static new(src = null) {
      return html$.AudioElement.__(src);
    }
  };
  (html$.AudioElement.created = function() {
    html$.AudioElement.__proto__.created.call(this);
    ;
  }).prototype = html$.AudioElement.prototype;
  dart.addTypeTests(html$.AudioElement);
  dart.addTypeCaches(html$.AudioElement);
  dart.setLibraryUri(html$.AudioElement, I[148]);
  dart.registerExtension("HTMLAudioElement", html$.AudioElement);
  html$.AuthenticatorResponse = class AuthenticatorResponse extends _interceptors.Interceptor {
    get [S$.$clientDataJson]() {
      return this.clientDataJSON;
    }
  };
  dart.addTypeTests(html$.AuthenticatorResponse);
  dart.addTypeCaches(html$.AuthenticatorResponse);
  dart.setGetterSignature(html$.AuthenticatorResponse, () => ({
    __proto__: dart.getGetters(html$.AuthenticatorResponse.__proto__),
    [S$.$clientDataJson]: dart.nullable(typed_data.ByteBuffer)
  }));
  dart.setLibraryUri(html$.AuthenticatorResponse, I[148]);
  dart.registerExtension("AuthenticatorResponse", html$.AuthenticatorResponse);
  html$.AuthenticatorAssertionResponse = class AuthenticatorAssertionResponse extends html$.AuthenticatorResponse {
    get [S$.$authenticatorData]() {
      return this.authenticatorData;
    }
    get [S$.$signature]() {
      return this.signature;
    }
  };
  dart.addTypeTests(html$.AuthenticatorAssertionResponse);
  dart.addTypeCaches(html$.AuthenticatorAssertionResponse);
  dart.setGetterSignature(html$.AuthenticatorAssertionResponse, () => ({
    __proto__: dart.getGetters(html$.AuthenticatorAssertionResponse.__proto__),
    [S$.$authenticatorData]: dart.nullable(typed_data.ByteBuffer),
    [S$.$signature]: dart.nullable(typed_data.ByteBuffer)
  }));
  dart.setLibraryUri(html$.AuthenticatorAssertionResponse, I[148]);
  dart.registerExtension("AuthenticatorAssertionResponse", html$.AuthenticatorAssertionResponse);
  html$.AuthenticatorAttestationResponse = class AuthenticatorAttestationResponse extends html$.AuthenticatorResponse {
    get [S$.$attestationObject]() {
      return this.attestationObject;
    }
  };
  dart.addTypeTests(html$.AuthenticatorAttestationResponse);
  dart.addTypeCaches(html$.AuthenticatorAttestationResponse);
  dart.setGetterSignature(html$.AuthenticatorAttestationResponse, () => ({
    __proto__: dart.getGetters(html$.AuthenticatorAttestationResponse.__proto__),
    [S$.$attestationObject]: dart.nullable(typed_data.ByteBuffer)
  }));
  dart.setLibraryUri(html$.AuthenticatorAttestationResponse, I[148]);
  dart.registerExtension("AuthenticatorAttestationResponse", html$.AuthenticatorAttestationResponse);
  html$.BRElement = class BRElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("br");
    }
  };
  (html$.BRElement.created = function() {
    html$.BRElement.__proto__.created.call(this);
    ;
  }).prototype = html$.BRElement.prototype;
  dart.addTypeTests(html$.BRElement);
  dart.addTypeCaches(html$.BRElement);
  dart.setLibraryUri(html$.BRElement, I[148]);
  dart.registerExtension("HTMLBRElement", html$.BRElement);
  html$.BackgroundFetchEvent = class BackgroundFetchEvent$ extends html$.ExtendableEvent {
    static new(type, init) {
      if (type == null) dart.nullFailed(I[147], 1295, 39, "type");
      if (init == null) dart.nullFailed(I[147], 1295, 49, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.BackgroundFetchEvent._create_1(type, init_1);
    }
    static _create_1(type, init) {
      return new BackgroundFetchEvent(type, init);
    }
    get [S.$id]() {
      return this.id;
    }
  };
  dart.addTypeTests(html$.BackgroundFetchEvent);
  dart.addTypeCaches(html$.BackgroundFetchEvent);
  dart.setGetterSignature(html$.BackgroundFetchEvent, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchEvent.__proto__),
    [S.$id]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.BackgroundFetchEvent, I[148]);
  dart.registerExtension("BackgroundFetchEvent", html$.BackgroundFetchEvent);
  html$.BackgroundFetchClickEvent = class BackgroundFetchClickEvent$ extends html$.BackgroundFetchEvent {
    static new(type, init) {
      if (type == null) dart.nullFailed(I[147], 1272, 44, "type");
      if (init == null) dart.nullFailed(I[147], 1272, 54, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.BackgroundFetchClickEvent._create_1(type, init_1);
    }
    static _create_1(type, init) {
      return new BackgroundFetchClickEvent(type, init);
    }
    get [S$.$state]() {
      return this.state;
    }
  };
  dart.addTypeTests(html$.BackgroundFetchClickEvent);
  dart.addTypeCaches(html$.BackgroundFetchClickEvent);
  dart.setGetterSignature(html$.BackgroundFetchClickEvent, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchClickEvent.__proto__),
    [S$.$state]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.BackgroundFetchClickEvent, I[148]);
  dart.registerExtension("BackgroundFetchClickEvent", html$.BackgroundFetchClickEvent);
  html$.BackgroundFetchFailEvent = class BackgroundFetchFailEvent$ extends html$.BackgroundFetchEvent {
    static new(type, init) {
      if (type == null) dart.nullFailed(I[147], 1315, 43, "type");
      if (init == null) dart.nullFailed(I[147], 1315, 53, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.BackgroundFetchFailEvent._create_1(type, init_1);
    }
    static _create_1(type, init) {
      return new BackgroundFetchFailEvent(type, init);
    }
    get [S$.$fetches]() {
      return this.fetches;
    }
  };
  dart.addTypeTests(html$.BackgroundFetchFailEvent);
  dart.addTypeCaches(html$.BackgroundFetchFailEvent);
  dart.setGetterSignature(html$.BackgroundFetchFailEvent, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchFailEvent.__proto__),
    [S$.$fetches]: dart.nullable(core.List$(html$.BackgroundFetchSettledFetch))
  }));
  dart.setLibraryUri(html$.BackgroundFetchFailEvent, I[148]);
  dart.registerExtension("BackgroundFetchFailEvent", html$.BackgroundFetchFailEvent);
  html$.BackgroundFetchFetch = class BackgroundFetchFetch extends _interceptors.Interceptor {
    get [S$.$request]() {
      return this.request;
    }
  };
  dart.addTypeTests(html$.BackgroundFetchFetch);
  dart.addTypeCaches(html$.BackgroundFetchFetch);
  dart.setGetterSignature(html$.BackgroundFetchFetch, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchFetch.__proto__),
    [S$.$request]: dart.nullable(html$._Request)
  }));
  dart.setLibraryUri(html$.BackgroundFetchFetch, I[148]);
  dart.registerExtension("BackgroundFetchFetch", html$.BackgroundFetchFetch);
  html$.BackgroundFetchManager = class BackgroundFetchManager extends _interceptors.Interceptor {
    [S$.$fetch](id, requests, options = null) {
      if (id == null) dart.nullFailed(I[147], 1351, 52, "id");
      if (requests == null) dart.nullFailed(I[147], 1351, 63, "requests");
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.BackgroundFetchRegistration, this.fetch(id, requests, options_dict));
    }
    [S.$get](id) {
      if (id == null) dart.nullFailed(I[147], 1366, 50, "id");
      return js_util.promiseToFuture(html$.BackgroundFetchRegistration, this.get(id));
    }
    [S$.$getIds]() {
      return js_util.promiseToFuture(core.List, this.getIds());
    }
  };
  dart.addTypeTests(html$.BackgroundFetchManager);
  dart.addTypeCaches(html$.BackgroundFetchManager);
  dart.setMethodSignature(html$.BackgroundFetchManager, () => ({
    __proto__: dart.getMethods(html$.BackgroundFetchManager.__proto__),
    [S$.$fetch]: dart.fnType(async.Future$(html$.BackgroundFetchRegistration), [core.String, core.Object], [dart.nullable(core.Map)]),
    [S.$get]: dart.fnType(async.Future$(html$.BackgroundFetchRegistration), [core.String]),
    [S$.$getIds]: dart.fnType(async.Future$(core.List), [])
  }));
  dart.setLibraryUri(html$.BackgroundFetchManager, I[148]);
  dart.registerExtension("BackgroundFetchManager", html$.BackgroundFetchManager);
  html$.BackgroundFetchRegistration = class BackgroundFetchRegistration extends html$.EventTarget {
    get [S$.$downloadTotal]() {
      return this.downloadTotal;
    }
    get [S$.$downloaded]() {
      return this.downloaded;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S.$title]() {
      return this.title;
    }
    get [S$.$totalDownloadSize]() {
      return this.totalDownloadSize;
    }
    get [S$.$uploadTotal]() {
      return this.uploadTotal;
    }
    get [S$.$uploaded]() {
      return this.uploaded;
    }
    [S.$abort]() {
      return js_util.promiseToFuture(core.bool, this.abort());
    }
  };
  dart.addTypeTests(html$.BackgroundFetchRegistration);
  dart.addTypeCaches(html$.BackgroundFetchRegistration);
  dart.setMethodSignature(html$.BackgroundFetchRegistration, () => ({
    __proto__: dart.getMethods(html$.BackgroundFetchRegistration.__proto__),
    [S.$abort]: dart.fnType(async.Future$(core.bool), [])
  }));
  dart.setGetterSignature(html$.BackgroundFetchRegistration, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchRegistration.__proto__),
    [S$.$downloadTotal]: dart.nullable(core.int),
    [S$.$downloaded]: dart.nullable(core.int),
    [S.$id]: dart.nullable(core.String),
    [S.$title]: dart.nullable(core.String),
    [S$.$totalDownloadSize]: dart.nullable(core.int),
    [S$.$uploadTotal]: dart.nullable(core.int),
    [S$.$uploaded]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.BackgroundFetchRegistration, I[148]);
  dart.registerExtension("BackgroundFetchRegistration", html$.BackgroundFetchRegistration);
  html$.BackgroundFetchSettledFetch = class BackgroundFetchSettledFetch$ extends html$.BackgroundFetchFetch {
    static new(request, response) {
      if (request == null) dart.nullFailed(I[147], 1411, 48, "request");
      if (response == null) dart.nullFailed(I[147], 1411, 67, "response");
      return html$.BackgroundFetchSettledFetch._create_1(request, response);
    }
    static _create_1(request, response) {
      return new BackgroundFetchSettledFetch(request, response);
    }
    get [S$.$response]() {
      return this.response;
    }
  };
  dart.addTypeTests(html$.BackgroundFetchSettledFetch);
  dart.addTypeCaches(html$.BackgroundFetchSettledFetch);
  dart.setGetterSignature(html$.BackgroundFetchSettledFetch, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchSettledFetch.__proto__),
    [S$.$response]: dart.nullable(html$._Response)
  }));
  dart.setLibraryUri(html$.BackgroundFetchSettledFetch, I[148]);
  dart.registerExtension("BackgroundFetchSettledFetch", html$.BackgroundFetchSettledFetch);
  html$.BackgroundFetchedEvent = class BackgroundFetchedEvent$ extends html$.BackgroundFetchEvent {
    static new(type, init) {
      if (type == null) dart.nullFailed(I[147], 1433, 41, "type");
      if (init == null) dart.nullFailed(I[147], 1433, 51, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.BackgroundFetchedEvent._create_1(type, init_1);
    }
    static _create_1(type, init) {
      return new BackgroundFetchedEvent(type, init);
    }
    get [S$.$fetches]() {
      return this.fetches;
    }
    [S$.$updateUI](title) {
      if (title == null) dart.nullFailed(I[147], 1442, 26, "title");
      return js_util.promiseToFuture(dart.dynamic, this.updateUI(title));
    }
  };
  dart.addTypeTests(html$.BackgroundFetchedEvent);
  dart.addTypeCaches(html$.BackgroundFetchedEvent);
  dart.setMethodSignature(html$.BackgroundFetchedEvent, () => ({
    __proto__: dart.getMethods(html$.BackgroundFetchedEvent.__proto__),
    [S$.$updateUI]: dart.fnType(async.Future, [core.String])
  }));
  dart.setGetterSignature(html$.BackgroundFetchedEvent, () => ({
    __proto__: dart.getGetters(html$.BackgroundFetchedEvent.__proto__),
    [S$.$fetches]: dart.nullable(core.List$(html$.BackgroundFetchSettledFetch))
  }));
  dart.setLibraryUri(html$.BackgroundFetchedEvent, I[148]);
  dart.registerExtension("BackgroundFetchedEvent", html$.BackgroundFetchedEvent);
  html$.BarProp = class BarProp extends _interceptors.Interceptor {
    get [S$.$visible]() {
      return this.visible;
    }
  };
  dart.addTypeTests(html$.BarProp);
  dart.addTypeCaches(html$.BarProp);
  dart.setGetterSignature(html$.BarProp, () => ({
    __proto__: dart.getGetters(html$.BarProp.__proto__),
    [S$.$visible]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.BarProp, I[148]);
  dart.registerExtension("BarProp", html$.BarProp);
  html$.BarcodeDetector = class BarcodeDetector$ extends _interceptors.Interceptor {
    static new() {
      return html$.BarcodeDetector._create_1();
    }
    static _create_1() {
      return new BarcodeDetector();
    }
    [S$.$detect](image) {
      return js_util.promiseToFuture(core.List, this.detect(image));
    }
  };
  dart.addTypeTests(html$.BarcodeDetector);
  dart.addTypeCaches(html$.BarcodeDetector);
  dart.setMethodSignature(html$.BarcodeDetector, () => ({
    __proto__: dart.getMethods(html$.BarcodeDetector.__proto__),
    [S$.$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
  }));
  dart.setLibraryUri(html$.BarcodeDetector, I[148]);
  dart.registerExtension("BarcodeDetector", html$.BarcodeDetector);
  html$.BaseElement = class BaseElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("base");
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S.$target]() {
      return this.target;
    }
    set [S.$target](value) {
      this.target = value;
    }
  };
  (html$.BaseElement.created = function() {
    html$.BaseElement.__proto__.created.call(this);
    ;
  }).prototype = html$.BaseElement.prototype;
  dart.addTypeTests(html$.BaseElement);
  dart.addTypeCaches(html$.BaseElement);
  dart.setGetterSignature(html$.BaseElement, () => ({
    __proto__: dart.getGetters(html$.BaseElement.__proto__),
    [S$.$href]: core.String,
    [S.$target]: core.String
  }));
  dart.setSetterSignature(html$.BaseElement, () => ({
    __proto__: dart.getSetters(html$.BaseElement.__proto__),
    [S$.$href]: core.String,
    [S.$target]: core.String
  }));
  dart.setLibraryUri(html$.BaseElement, I[148]);
  dart.registerExtension("HTMLBaseElement", html$.BaseElement);
  html$.BatteryManager = class BatteryManager extends html$.EventTarget {
    get [S$.$charging]() {
      return this.charging;
    }
    get [S$.$chargingTime]() {
      return this.chargingTime;
    }
    get [S$.$dischargingTime]() {
      return this.dischargingTime;
    }
    get [S$.$level]() {
      return this.level;
    }
  };
  dart.addTypeTests(html$.BatteryManager);
  dart.addTypeCaches(html$.BatteryManager);
  dart.setGetterSignature(html$.BatteryManager, () => ({
    __proto__: dart.getGetters(html$.BatteryManager.__proto__),
    [S$.$charging]: dart.nullable(core.bool),
    [S$.$chargingTime]: dart.nullable(core.num),
    [S$.$dischargingTime]: dart.nullable(core.num),
    [S$.$level]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.BatteryManager, I[148]);
  dart.registerExtension("BatteryManager", html$.BatteryManager);
  html$.BeforeInstallPromptEvent = class BeforeInstallPromptEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 1541, 43, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
      }
      return html$.BeforeInstallPromptEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new BeforeInstallPromptEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new BeforeInstallPromptEvent(type);
    }
    get [S$.$platforms]() {
      return this.platforms;
    }
    get [S$.$userChoice]() {
      return html$.promiseToFutureAsMap(this.userChoice);
    }
    [S$.$prompt]() {
      return js_util.promiseToFuture(dart.dynamic, this.prompt());
    }
  };
  dart.addTypeTests(html$.BeforeInstallPromptEvent);
  dart.addTypeCaches(html$.BeforeInstallPromptEvent);
  dart.setMethodSignature(html$.BeforeInstallPromptEvent, () => ({
    __proto__: dart.getMethods(html$.BeforeInstallPromptEvent.__proto__),
    [S$.$prompt]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(html$.BeforeInstallPromptEvent, () => ({
    __proto__: dart.getGetters(html$.BeforeInstallPromptEvent.__proto__),
    [S$.$platforms]: dart.nullable(core.List$(core.String)),
    [S$.$userChoice]: async.Future$(dart.nullable(core.Map$(core.String, dart.dynamic)))
  }));
  dart.setLibraryUri(html$.BeforeInstallPromptEvent, I[148]);
  dart.registerExtension("BeforeInstallPromptEvent", html$.BeforeInstallPromptEvent);
  html$.BeforeUnloadEvent = class BeforeUnloadEvent extends html$.Event {
    get [S$.$returnValue]() {
      return this.returnValue;
    }
    set [S$.$returnValue](value) {
      this.returnValue = value;
    }
  };
  dart.addTypeTests(html$.BeforeUnloadEvent);
  dart.addTypeCaches(html$.BeforeUnloadEvent);
  dart.setGetterSignature(html$.BeforeUnloadEvent, () => ({
    __proto__: dart.getGetters(html$.BeforeUnloadEvent.__proto__),
    [S$.$returnValue]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.BeforeUnloadEvent, () => ({
    __proto__: dart.getSetters(html$.BeforeUnloadEvent.__proto__),
    [S$.$returnValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.BeforeUnloadEvent, I[148]);
  dart.registerExtension("BeforeUnloadEvent", html$.BeforeUnloadEvent);
  html$.Blob = class Blob extends _interceptors.Interceptor {
    get [S$.$size]() {
      return this.size;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$.$slice](...args) {
      return this.slice.apply(this, args);
    }
    static new(blobParts, type = null, endings = null) {
      if (blobParts == null) dart.nullFailed(I[147], 1597, 21, "blobParts");
      if (type == null && endings == null) {
        return html$.Blob.as(html$.Blob._create_1(blobParts));
      }
      let bag = html$.Blob._create_bag();
      if (type != null) html$.Blob._bag_set(bag, "type", type);
      if (endings != null) html$.Blob._bag_set(bag, "endings", endings);
      return html$.Blob.as(html$.Blob._create_2(blobParts, bag));
    }
    static _create_1(parts) {
      return new self.Blob(parts);
    }
    static _create_2(parts, bag) {
      return new self.Blob(parts, bag);
    }
    static _create_bag() {
      return {};
    }
    static _bag_set(bag, key, value) {
      bag[key] = value;
    }
  };
  dart.addTypeTests(html$.Blob);
  dart.addTypeCaches(html$.Blob);
  dart.setMethodSignature(html$.Blob, () => ({
    __proto__: dart.getMethods(html$.Blob.__proto__),
    [S$.$slice]: dart.fnType(html$.Blob, [], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.Blob, () => ({
    __proto__: dart.getGetters(html$.Blob.__proto__),
    [S$.$size]: core.int,
    [S.$type]: core.String
  }));
  dart.setLibraryUri(html$.Blob, I[148]);
  dart.registerExtension("Blob", html$.Blob);
  html$.BlobEvent = class BlobEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 1636, 28, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 1636, 38, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.BlobEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new BlobEvent(type, eventInitDict);
    }
    get [S$.$data]() {
      return this.data;
    }
    get [S$.$timecode]() {
      return this.timecode;
    }
  };
  dart.addTypeTests(html$.BlobEvent);
  dart.addTypeCaches(html$.BlobEvent);
  dart.setGetterSignature(html$.BlobEvent, () => ({
    __proto__: dart.getGetters(html$.BlobEvent.__proto__),
    [S$.$data]: dart.nullable(html$.Blob),
    [S$.$timecode]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.BlobEvent, I[148]);
  dart.registerExtension("BlobEvent", html$.BlobEvent);
  html$.BluetoothRemoteGattDescriptor = class BluetoothRemoteGattDescriptor extends _interceptors.Interceptor {
    get [S$.$characteristic]() {
      return this.characteristic;
    }
    get [S$.$uuid]() {
      return this.uuid;
    }
    get [S.$value]() {
      return this.value;
    }
    [S$.$readValue]() {
      return js_util.promiseToFuture(dart.dynamic, this.readValue());
    }
    [S$.$writeValue](value) {
      return js_util.promiseToFuture(dart.dynamic, this.writeValue(value));
    }
  };
  dart.addTypeTests(html$.BluetoothRemoteGattDescriptor);
  dart.addTypeCaches(html$.BluetoothRemoteGattDescriptor);
  dart.setMethodSignature(html$.BluetoothRemoteGattDescriptor, () => ({
    __proto__: dart.getMethods(html$.BluetoothRemoteGattDescriptor.__proto__),
    [S$.$readValue]: dart.fnType(async.Future, []),
    [S$.$writeValue]: dart.fnType(async.Future, [dart.dynamic])
  }));
  dart.setGetterSignature(html$.BluetoothRemoteGattDescriptor, () => ({
    __proto__: dart.getGetters(html$.BluetoothRemoteGattDescriptor.__proto__),
    [S$.$characteristic]: dart.nullable(html$._BluetoothRemoteGATTCharacteristic),
    [S$.$uuid]: dart.nullable(core.String),
    [S.$value]: dart.nullable(typed_data.ByteData)
  }));
  dart.setLibraryUri(html$.BluetoothRemoteGattDescriptor, I[148]);
  dart.registerExtension("BluetoothRemoteGATTDescriptor", html$.BluetoothRemoteGattDescriptor);
  html$.Body = class Body extends _interceptors.Interceptor {
    get [S$.$bodyUsed]() {
      return this.bodyUsed;
    }
    [S$.$arrayBuffer]() {
      return js_util.promiseToFuture(dart.dynamic, this.arrayBuffer());
    }
    [S$.$blob]() {
      return js_util.promiseToFuture(html$.Blob, this.blob());
    }
    [S$.$formData]() {
      return js_util.promiseToFuture(html$.FormData, this.formData());
    }
    [S$.$json]() {
      return js_util.promiseToFuture(dart.dynamic, this.json());
    }
    [S.$text]() {
      return js_util.promiseToFuture(core.String, this.text());
    }
  };
  dart.addTypeTests(html$.Body);
  dart.addTypeCaches(html$.Body);
  dart.setMethodSignature(html$.Body, () => ({
    __proto__: dart.getMethods(html$.Body.__proto__),
    [S$.$arrayBuffer]: dart.fnType(async.Future, []),
    [S$.$blob]: dart.fnType(async.Future$(html$.Blob), []),
    [S$.$formData]: dart.fnType(async.Future$(html$.FormData), []),
    [S$.$json]: dart.fnType(async.Future, []),
    [S.$text]: dart.fnType(async.Future$(core.String), [])
  }));
  dart.setGetterSignature(html$.Body, () => ({
    __proto__: dart.getGetters(html$.Body.__proto__),
    [S$.$bodyUsed]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.Body, I[148]);
  dart.registerExtension("Body", html$.Body);
  html$.BodyElement = class BodyElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("body");
    }
    get [S.$onBlur]() {
      return html$.BodyElement.blurEvent.forElement(this);
    }
    get [S.$onError]() {
      return html$.BodyElement.errorEvent.forElement(this);
    }
    get [S.$onFocus]() {
      return html$.BodyElement.focusEvent.forElement(this);
    }
    get [S$.$onHashChange]() {
      return html$.BodyElement.hashChangeEvent.forElement(this);
    }
    get [S.$onLoad]() {
      return html$.BodyElement.loadEvent.forElement(this);
    }
    get [S$.$onMessage]() {
      return html$.BodyElement.messageEvent.forElement(this);
    }
    get [S$.$onOffline]() {
      return html$.BodyElement.offlineEvent.forElement(this);
    }
    get [S$.$onOnline]() {
      return html$.BodyElement.onlineEvent.forElement(this);
    }
    get [S$.$onPopState]() {
      return html$.BodyElement.popStateEvent.forElement(this);
    }
    get [S.$onResize]() {
      return html$.BodyElement.resizeEvent.forElement(this);
    }
    get [S.$onScroll]() {
      return html$.BodyElement.scrollEvent.forElement(this);
    }
    get [S$.$onStorage]() {
      return html$.BodyElement.storageEvent.forElement(this);
    }
    get [S$.$onUnload]() {
      return html$.BodyElement.unloadEvent.forElement(this);
    }
  };
  (html$.BodyElement.created = function() {
    html$.BodyElement.__proto__.created.call(this);
    ;
  }).prototype = html$.BodyElement.prototype;
  dart.addTypeTests(html$.BodyElement);
  dart.addTypeCaches(html$.BodyElement);
  html$.BodyElement[dart.implements] = () => [html$.WindowEventHandlers];
  dart.setGetterSignature(html$.BodyElement, () => ({
    __proto__: dart.getGetters(html$.BodyElement.__proto__),
    [S$.$onHashChange]: html$.ElementStream$(html$.Event),
    [S$.$onMessage]: html$.ElementStream$(html$.MessageEvent),
    [S$.$onOffline]: html$.ElementStream$(html$.Event),
    [S$.$onOnline]: html$.ElementStream$(html$.Event),
    [S$.$onPopState]: html$.ElementStream$(html$.PopStateEvent),
    [S$.$onStorage]: html$.ElementStream$(html$.StorageEvent),
    [S$.$onUnload]: html$.ElementStream$(html$.Event)
  }));
  dart.setLibraryUri(html$.BodyElement, I[148]);
  dart.defineLazy(html$.BodyElement, {
    /*html$.BodyElement.blurEvent*/get blurEvent() {
      return C[233] || CT.C233;
    },
    /*html$.BodyElement.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.BodyElement.focusEvent*/get focusEvent() {
      return C[252] || CT.C252;
    },
    /*html$.BodyElement.hashChangeEvent*/get hashChangeEvent() {
      return C[311] || CT.C311;
    },
    /*html$.BodyElement.loadEvent*/get loadEvent() {
      return C[258] || CT.C258;
    },
    /*html$.BodyElement.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.BodyElement.offlineEvent*/get offlineEvent() {
      return C[313] || CT.C313;
    },
    /*html$.BodyElement.onlineEvent*/get onlineEvent() {
      return C[314] || CT.C314;
    },
    /*html$.BodyElement.popStateEvent*/get popStateEvent() {
      return C[315] || CT.C315;
    },
    /*html$.BodyElement.resizeEvent*/get resizeEvent() {
      return C[274] || CT.C274;
    },
    /*html$.BodyElement.scrollEvent*/get scrollEvent() {
      return C[275] || CT.C275;
    },
    /*html$.BodyElement.storageEvent*/get storageEvent() {
      return C[316] || CT.C316;
    },
    /*html$.BodyElement.unloadEvent*/get unloadEvent() {
      return C[317] || CT.C317;
    }
  }, false);
  dart.registerExtension("HTMLBodyElement", html$.BodyElement);
  html$.BroadcastChannel = class BroadcastChannel$ extends html$.EventTarget {
    static new(name) {
      if (name == null) dart.nullFailed(I[147], 1880, 35, "name");
      return html$.BroadcastChannel._create_1(name);
    }
    static _create_1(name) {
      return new BroadcastChannel(name);
    }
    get [$name]() {
      return this.name;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$.$postMessage](...args) {
      return this.postMessage.apply(this, args);
    }
    get [S$.$onMessage]() {
      return html$.BroadcastChannel.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.BroadcastChannel);
  dart.addTypeCaches(html$.BroadcastChannel);
  dart.setMethodSignature(html$.BroadcastChannel, () => ({
    __proto__: dart.getMethods(html$.BroadcastChannel.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$.$postMessage]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(html$.BroadcastChannel, () => ({
    __proto__: dart.getGetters(html$.BroadcastChannel.__proto__),
    [$name]: dart.nullable(core.String),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.BroadcastChannel, I[148]);
  dart.defineLazy(html$.BroadcastChannel, {
    /*html$.BroadcastChannel.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("BroadcastChannel", html$.BroadcastChannel);
  html$.BudgetState = class BudgetState extends _interceptors.Interceptor {
    get [S$.$budgetAt]() {
      return this.budgetAt;
    }
    get [S$.$time]() {
      return this.time;
    }
  };
  dart.addTypeTests(html$.BudgetState);
  dart.addTypeCaches(html$.BudgetState);
  dart.setGetterSignature(html$.BudgetState, () => ({
    __proto__: dart.getGetters(html$.BudgetState.__proto__),
    [S$.$budgetAt]: dart.nullable(core.num),
    [S$.$time]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.BudgetState, I[148]);
  dart.registerExtension("BudgetState", html$.BudgetState);
  html$.ButtonElement = class ButtonElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("button");
    }
    get [S$.$autofocus]() {
      return this.autofocus;
    }
    set [S$.$autofocus](value) {
      this.autofocus = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$.$formAction]() {
      return this.formAction;
    }
    set [S$.$formAction](value) {
      this.formAction = value;
    }
    get [S$.$formEnctype]() {
      return this.formEnctype;
    }
    set [S$.$formEnctype](value) {
      this.formEnctype = value;
    }
    get [S$.$formMethod]() {
      return this.formMethod;
    }
    set [S$.$formMethod](value) {
      this.formMethod = value;
    }
    get [S$.$formNoValidate]() {
      return this.formNoValidate;
    }
    set [S$.$formNoValidate](value) {
      this.formNoValidate = value;
    }
    get [S$.$formTarget]() {
      return this.formTarget;
    }
    set [S$.$formTarget](value) {
      this.formTarget = value;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
  };
  (html$.ButtonElement.created = function() {
    html$.ButtonElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ButtonElement.prototype;
  dart.addTypeTests(html$.ButtonElement);
  dart.addTypeCaches(html$.ButtonElement);
  dart.setMethodSignature(html$.ButtonElement, () => ({
    __proto__: dart.getMethods(html$.ButtonElement.__proto__),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(html$.ButtonElement, () => ({
    __proto__: dart.getGetters(html$.ButtonElement.__proto__),
    [S$.$autofocus]: core.bool,
    [S$.$disabled]: core.bool,
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$.$formAction]: dart.nullable(core.String),
    [S$.$formEnctype]: dart.nullable(core.String),
    [S$.$formMethod]: dart.nullable(core.String),
    [S$.$formNoValidate]: core.bool,
    [S$.$formTarget]: core.String,
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [$name]: core.String,
    [S.$type]: core.String,
    [S$.$validationMessage]: core.String,
    [S$.$validity]: html$.ValidityState,
    [S.$value]: core.String,
    [S$.$willValidate]: core.bool
  }));
  dart.setSetterSignature(html$.ButtonElement, () => ({
    __proto__: dart.getSetters(html$.ButtonElement.__proto__),
    [S$.$autofocus]: core.bool,
    [S$.$disabled]: core.bool,
    [S$.$formAction]: dart.nullable(core.String),
    [S$.$formEnctype]: dart.nullable(core.String),
    [S$.$formMethod]: dart.nullable(core.String),
    [S$.$formNoValidate]: core.bool,
    [S$.$formTarget]: core.String,
    [$name]: core.String,
    [S.$type]: core.String,
    [S.$value]: core.String
  }));
  dart.setLibraryUri(html$.ButtonElement, I[148]);
  dart.registerExtension("HTMLButtonElement", html$.ButtonElement);
  html$.CharacterData = class CharacterData extends html$.Node {
    get [S$.$data]() {
      return this.data;
    }
    set [S$.$data](value) {
      this.data = value;
    }
    get [$length]() {
      return this.length;
    }
    [S$.$appendData](...args) {
      return this.appendData.apply(this, args);
    }
    [S$.$deleteData](...args) {
      return this.deleteData.apply(this, args);
    }
    [S$.$insertData](...args) {
      return this.insertData.apply(this, args);
    }
    [S$.$replaceData](...args) {
      return this.replaceData.apply(this, args);
    }
    [S$.$substringData](...args) {
      return this.substringData.apply(this, args);
    }
    [S.$after](...args) {
      return this.after.apply(this, args);
    }
    [S.$before](...args) {
      return this.before.apply(this, args);
    }
    get [S.$nextElementSibling]() {
      return this.nextElementSibling;
    }
    get [S.$previousElementSibling]() {
      return this.previousElementSibling;
    }
  };
  dart.addTypeTests(html$.CharacterData);
  dart.addTypeCaches(html$.CharacterData);
  html$.CharacterData[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.ChildNode];
  dart.setMethodSignature(html$.CharacterData, () => ({
    __proto__: dart.getMethods(html$.CharacterData.__proto__),
    [S$.$appendData]: dart.fnType(dart.void, [core.String]),
    [S$.$deleteData]: dart.fnType(dart.void, [core.int, core.int]),
    [S$.$insertData]: dart.fnType(dart.void, [core.int, core.String]),
    [S$.$replaceData]: dart.fnType(dart.void, [core.int, core.int, core.String]),
    [S$.$substringData]: dart.fnType(core.String, [core.int, core.int]),
    [S.$after]: dart.fnType(dart.void, [core.Object]),
    [S.$before]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(html$.CharacterData, () => ({
    __proto__: dart.getGetters(html$.CharacterData.__proto__),
    [S$.$data]: dart.nullable(core.String),
    [$length]: dart.nullable(core.int),
    [S.$nextElementSibling]: dart.nullable(html$.Element),
    [S.$previousElementSibling]: dart.nullable(html$.Element)
  }));
  dart.setSetterSignature(html$.CharacterData, () => ({
    __proto__: dart.getSetters(html$.CharacterData.__proto__),
    [S$.$data]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CharacterData, I[148]);
  dart.registerExtension("CharacterData", html$.CharacterData);
  html$.Text = class Text extends html$.CharacterData {
    static new(data) {
      if (data == null) dart.nullFailed(I[147], 29705, 23, "data");
      return html$.document.createTextNode(data);
    }
    get [S.$assignedSlot]() {
      return this.assignedSlot;
    }
    get [S$.$wholeText]() {
      return this.wholeText;
    }
    [S.$getDestinationInsertionPoints](...args) {
      return this.getDestinationInsertionPoints.apply(this, args);
    }
    [S$.$splitText](...args) {
      return this.splitText.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Text);
  dart.addTypeCaches(html$.Text);
  dart.setMethodSignature(html$.Text, () => ({
    __proto__: dart.getMethods(html$.Text.__proto__),
    [S.$getDestinationInsertionPoints]: dart.fnType(core.List$(html$.Node), []),
    [S$.$splitText]: dart.fnType(html$.Text, [core.int])
  }));
  dart.setGetterSignature(html$.Text, () => ({
    __proto__: dart.getGetters(html$.Text.__proto__),
    [S.$assignedSlot]: dart.nullable(html$.SlotElement),
    [S$.$wholeText]: core.String
  }));
  dart.setLibraryUri(html$.Text, I[148]);
  dart.registerExtension("Text", html$.Text);
  html$.CDataSection = class CDataSection extends html$.Text {};
  dart.addTypeTests(html$.CDataSection);
  dart.addTypeCaches(html$.CDataSection);
  dart.setLibraryUri(html$.CDataSection, I[148]);
  dart.registerExtension("CDATASection", html$.CDataSection);
  html$.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
    [S.$delete](cacheName) {
      if (cacheName == null) dart.nullFailed(I[147], 2015, 24, "cacheName");
      return js_util.promiseToFuture(dart.dynamic, this.delete(cacheName));
    }
    [S$.$has](cacheName) {
      if (cacheName == null) dart.nullFailed(I[147], 2018, 21, "cacheName");
      return js_util.promiseToFuture(dart.dynamic, this.has(cacheName));
    }
    [$keys]() {
      return js_util.promiseToFuture(dart.dynamic, this.keys());
    }
    [S$.$match](request, options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.match(request, options_dict));
    }
    [S.$open](cacheName) {
      if (cacheName == null) dart.nullFailed(I[147], 2032, 22, "cacheName");
      return js_util.promiseToFuture(dart.dynamic, this.open(cacheName));
    }
  };
  dart.addTypeTests(html$.CacheStorage);
  dart.addTypeCaches(html$.CacheStorage);
  dart.setMethodSignature(html$.CacheStorage, () => ({
    __proto__: dart.getMethods(html$.CacheStorage.__proto__),
    [S.$delete]: dart.fnType(async.Future, [core.String]),
    [S$.$has]: dart.fnType(async.Future, [core.String]),
    [$keys]: dart.fnType(async.Future, []),
    [S$.$match]: dart.fnType(async.Future, [dart.dynamic], [dart.nullable(core.Map)]),
    [S.$open]: dart.fnType(async.Future, [core.String])
  }));
  dart.setLibraryUri(html$.CacheStorage, I[148]);
  dart.registerExtension("CacheStorage", html$.CacheStorage);
  html$.CanMakePaymentEvent = class CanMakePaymentEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 2046, 38, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 2046, 48, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.CanMakePaymentEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new CanMakePaymentEvent(type, eventInitDict);
    }
    get [S$.$methodData]() {
      return this.methodData;
    }
    get [S$.$modifiers]() {
      return this.modifiers;
    }
    get [S$.$paymentRequestOrigin]() {
      return this.paymentRequestOrigin;
    }
    get [S$.$topLevelOrigin]() {
      return this.topLevelOrigin;
    }
    [S$.$respondWith](...args) {
      return this.respondWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CanMakePaymentEvent);
  dart.addTypeCaches(html$.CanMakePaymentEvent);
  dart.setMethodSignature(html$.CanMakePaymentEvent, () => ({
    __proto__: dart.getMethods(html$.CanMakePaymentEvent.__proto__),
    [S$.$respondWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setGetterSignature(html$.CanMakePaymentEvent, () => ({
    __proto__: dart.getGetters(html$.CanMakePaymentEvent.__proto__),
    [S$.$methodData]: dart.nullable(core.List),
    [S$.$modifiers]: dart.nullable(core.List),
    [S$.$paymentRequestOrigin]: dart.nullable(core.String),
    [S$.$topLevelOrigin]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CanMakePaymentEvent, I[148]);
  dart.registerExtension("CanMakePaymentEvent", html$.CanMakePaymentEvent);
  html$.MediaStreamTrack = class MediaStreamTrack extends html$.EventTarget {
    get [S$.$contentHint]() {
      return this.contentHint;
    }
    set [S$.$contentHint](value) {
      this.contentHint = value;
    }
    get [S$.$enabled]() {
      return this.enabled;
    }
    set [S$.$enabled](value) {
      this.enabled = value;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$.$muted]() {
      return this.muted;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    [S$.$applyConstraints](constraints = null) {
      let constraints_dict = null;
      if (constraints != null) {
        constraints_dict = html_common.convertDartToNative_Dictionary(constraints);
      }
      return js_util.promiseToFuture(dart.dynamic, this.applyConstraints(constraints_dict));
    }
    [S$.$clone](...args) {
      return this.clone.apply(this, args);
    }
    [S$.$getCapabilities]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$._getCapabilities_1]()));
    }
    [S$._getCapabilities_1](...args) {
      return this.getCapabilities.apply(this, args);
    }
    [S$.$getConstraints]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$._getConstraints_1]()));
    }
    [S$._getConstraints_1](...args) {
      return this.getConstraints.apply(this, args);
    }
    [S$.$getSettings]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$._getSettings_1]()));
    }
    [S$._getSettings_1](...args) {
      return this.getSettings.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    get [S.$onEnded]() {
      return html$.MediaStreamTrack.endedEvent.forTarget(this);
    }
    get [S$.$onMute]() {
      return html$.MediaStreamTrack.muteEvent.forTarget(this);
    }
    get [S$.$onUnmute]() {
      return html$.MediaStreamTrack.unmuteEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MediaStreamTrack);
  dart.addTypeCaches(html$.MediaStreamTrack);
  dart.setMethodSignature(html$.MediaStreamTrack, () => ({
    __proto__: dart.getMethods(html$.MediaStreamTrack.__proto__),
    [S$.$applyConstraints]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$.$clone]: dart.fnType(html$.MediaStreamTrack, []),
    [S$.$getCapabilities]: dart.fnType(core.Map, []),
    [S$._getCapabilities_1]: dart.fnType(dart.dynamic, []),
    [S$.$getConstraints]: dart.fnType(core.Map, []),
    [S$._getConstraints_1]: dart.fnType(dart.dynamic, []),
    [S$.$getSettings]: dart.fnType(core.Map, []),
    [S$._getSettings_1]: dart.fnType(dart.dynamic, []),
    [S$.$stop]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.MediaStreamTrack, () => ({
    __proto__: dart.getGetters(html$.MediaStreamTrack.__proto__),
    [S$.$contentHint]: dart.nullable(core.String),
    [S$.$enabled]: dart.nullable(core.bool),
    [S.$id]: dart.nullable(core.String),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$.$muted]: dart.nullable(core.bool),
    [S.$readyState]: dart.nullable(core.String),
    [S.$onEnded]: async.Stream$(html$.Event),
    [S$.$onMute]: async.Stream$(html$.Event),
    [S$.$onUnmute]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.MediaStreamTrack, () => ({
    __proto__: dart.getSetters(html$.MediaStreamTrack.__proto__),
    [S$.$contentHint]: dart.nullable(core.String),
    [S$.$enabled]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.MediaStreamTrack, I[148]);
  dart.defineLazy(html$.MediaStreamTrack, {
    /*html$.MediaStreamTrack.endedEvent*/get endedEvent() {
      return C[251] || CT.C251;
    },
    /*html$.MediaStreamTrack.muteEvent*/get muteEvent() {
      return C[318] || CT.C318;
    },
    /*html$.MediaStreamTrack.unmuteEvent*/get unmuteEvent() {
      return C[319] || CT.C319;
    }
  }, false);
  dart.registerExtension("MediaStreamTrack", html$.MediaStreamTrack);
  html$.CanvasCaptureMediaStreamTrack = class CanvasCaptureMediaStreamTrack extends html$.MediaStreamTrack {
    get [S$.$canvas]() {
      return this.canvas;
    }
    [S$.$requestFrame](...args) {
      return this.requestFrame.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CanvasCaptureMediaStreamTrack);
  dart.addTypeCaches(html$.CanvasCaptureMediaStreamTrack);
  dart.setMethodSignature(html$.CanvasCaptureMediaStreamTrack, () => ({
    __proto__: dart.getMethods(html$.CanvasCaptureMediaStreamTrack.__proto__),
    [S$.$requestFrame]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.CanvasCaptureMediaStreamTrack, () => ({
    __proto__: dart.getGetters(html$.CanvasCaptureMediaStreamTrack.__proto__),
    [S$.$canvas]: dart.nullable(html$.CanvasElement)
  }));
  dart.setLibraryUri(html$.CanvasCaptureMediaStreamTrack, I[148]);
  dart.registerExtension("CanvasCaptureMediaStreamTrack", html$.CanvasCaptureMediaStreamTrack);
  html$.CanvasElement = class CanvasElement extends html$.HtmlElement {
    static new(opts) {
      let width = opts && 'width' in opts ? opts.width : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let e = html$.document.createElement("canvas");
      if (width != null) e.width = width;
      if (height != null) e.height = height;
      return e;
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    [S$.$captureStream](...args) {
      return this.captureStream.apply(this, args);
    }
    [S$.$getContext](contextId, attributes = null) {
      if (contextId == null) dart.nullFailed(I[147], 2143, 29, "contextId");
      if (attributes != null) {
        let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
        return this[S$._getContext_1](contextId, attributes_1);
      }
      return this[S$._getContext_2](contextId);
    }
    [S$._getContext_1](...args) {
      return this.getContext.apply(this, args);
    }
    [S$._getContext_2](...args) {
      return this.getContext.apply(this, args);
    }
    [S$._toDataUrl](...args) {
      return this.toDataURL.apply(this, args);
    }
    [S$.$transferControlToOffscreen](...args) {
      return this.transferControlToOffscreen.apply(this, args);
    }
    get [S$.$onWebGlContextLost]() {
      return html$.CanvasElement.webGlContextLostEvent.forElement(this);
    }
    get [S$.$onWebGlContextRestored]() {
      return html$.CanvasElement.webGlContextRestoredEvent.forElement(this);
    }
    get [S$.$context2D]() {
      return this.getContext("2d");
    }
    [S$.$getContext3d](opts) {
      let alpha = opts && 'alpha' in opts ? opts.alpha : true;
      let depth = opts && 'depth' in opts ? opts.depth : true;
      let stencil = opts && 'stencil' in opts ? opts.stencil : false;
      let antialias = opts && 'antialias' in opts ? opts.antialias : true;
      let premultipliedAlpha = opts && 'premultipliedAlpha' in opts ? opts.premultipliedAlpha : true;
      let preserveDrawingBuffer = opts && 'preserveDrawingBuffer' in opts ? opts.preserveDrawingBuffer : false;
      let options = new (T$0.IdentityMapOfString$dynamic()).from(["alpha", alpha, "depth", depth, "stencil", stencil, "antialias", antialias, "premultipliedAlpha", premultipliedAlpha, "preserveDrawingBuffer", preserveDrawingBuffer]);
      let context = this[S$.$getContext]("webgl", options);
      if (context == null) {
        context = this[S$.$getContext]("experimental-webgl", options);
      }
      return web_gl.RenderingContext.as(context);
    }
    [S$.$toDataUrl](type = "image/png", quality = null) {
      if (type == null) dart.nullFailed(I[147], 2251, 28, "type");
      return this[S$._toDataUrl](type, quality);
    }
    [S$._toBlob](...args) {
      return this.toBlob.apply(this, args);
    }
    [S$.$toBlob](type = null, $arguments = null) {
      let completer = T$0.CompleterOfBlob().new();
      this[S$._toBlob](dart.fn(value => {
        completer.complete(value);
      }, T$0.BlobNTovoid()), type, $arguments);
      return completer.future;
    }
  };
  (html$.CanvasElement.created = function() {
    html$.CanvasElement.__proto__.created.call(this);
    ;
  }).prototype = html$.CanvasElement.prototype;
  dart.addTypeTests(html$.CanvasElement);
  dart.addTypeCaches(html$.CanvasElement);
  html$.CanvasElement[dart.implements] = () => [html$.CanvasImageSource];
  dart.setMethodSignature(html$.CanvasElement, () => ({
    __proto__: dart.getMethods(html$.CanvasElement.__proto__),
    [S$.$captureStream]: dart.fnType(html$.MediaStream, [], [dart.nullable(core.num)]),
    [S$.$getContext]: dart.fnType(dart.nullable(core.Object), [core.String], [dart.nullable(core.Map)]),
    [S$._getContext_1]: dart.fnType(dart.nullable(core.Object), [dart.dynamic, dart.dynamic]),
    [S$._getContext_2]: dart.fnType(dart.nullable(core.Object), [dart.dynamic]),
    [S$._toDataUrl]: dart.fnType(core.String, [dart.nullable(core.String)], [dart.dynamic]),
    [S$.$transferControlToOffscreen]: dart.fnType(html$.OffscreenCanvas, []),
    [S$.$getContext3d]: dart.fnType(web_gl.RenderingContext, [], {alpha: dart.dynamic, antialias: dart.dynamic, depth: dart.dynamic, premultipliedAlpha: dart.dynamic, preserveDrawingBuffer: dart.dynamic, stencil: dart.dynamic}, {}),
    [S$.$toDataUrl]: dart.fnType(core.String, [], [core.String, dart.nullable(core.num)]),
    [S$._toBlob]: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.nullable(html$.Blob)])], [dart.nullable(core.String), dart.nullable(core.Object)]),
    [S$.$toBlob]: dart.fnType(async.Future$(html$.Blob), [], [dart.nullable(core.String), dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(html$.CanvasElement, () => ({
    __proto__: dart.getGetters(html$.CanvasElement.__proto__),
    [$height]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int),
    [S$.$onWebGlContextLost]: html$.ElementStream$(web_gl.ContextEvent),
    [S$.$onWebGlContextRestored]: html$.ElementStream$(web_gl.ContextEvent),
    [S$.$context2D]: html$.CanvasRenderingContext2D
  }));
  dart.setSetterSignature(html$.CanvasElement, () => ({
    __proto__: dart.getSetters(html$.CanvasElement.__proto__),
    [$height]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.CanvasElement, I[148]);
  dart.defineLazy(html$.CanvasElement, {
    /*html$.CanvasElement.webGlContextLostEvent*/get webGlContextLostEvent() {
      return C[320] || CT.C320;
    },
    /*html$.CanvasElement.webGlContextRestoredEvent*/get webGlContextRestoredEvent() {
      return C[321] || CT.C321;
    }
  }, false);
  dart.registerExtension("HTMLCanvasElement", html$.CanvasElement);
  html$.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
    [S$.$addColorStop](...args) {
      return this.addColorStop.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CanvasGradient);
  dart.addTypeCaches(html$.CanvasGradient);
  dart.setMethodSignature(html$.CanvasGradient, () => ({
    __proto__: dart.getMethods(html$.CanvasGradient.__proto__),
    [S$.$addColorStop]: dart.fnType(dart.void, [core.num, core.String])
  }));
  dart.setLibraryUri(html$.CanvasGradient, I[148]);
  dart.registerExtension("CanvasGradient", html$.CanvasGradient);
  html$.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
    [S$.$setTransform](...args) {
      return this.setTransform.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CanvasPattern);
  dart.addTypeCaches(html$.CanvasPattern);
  dart.setMethodSignature(html$.CanvasPattern, () => ({
    __proto__: dart.getMethods(html$.CanvasPattern.__proto__),
    [S$.$setTransform]: dart.fnType(dart.void, [svg$.Matrix])
  }));
  dart.setLibraryUri(html$.CanvasPattern, I[148]);
  dart.registerExtension("CanvasPattern", html$.CanvasPattern);
  html$.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
  (html$.CanvasRenderingContext.new = function() {
    ;
  }).prototype = html$.CanvasRenderingContext.prototype;
  dart.addTypeTests(html$.CanvasRenderingContext);
  dart.addTypeCaches(html$.CanvasRenderingContext);
  dart.setLibraryUri(html$.CanvasRenderingContext, I[148]);
  html$.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
    get [S$.$canvas]() {
      return this.canvas;
    }
    get [S$.$currentTransform]() {
      return this.currentTransform;
    }
    set [S$.$currentTransform](value) {
      this.currentTransform = value;
    }
    get [S.$direction]() {
      return this.direction;
    }
    set [S.$direction](value) {
      this.direction = value;
    }
    get [S$.$fillStyle]() {
      return this.fillStyle;
    }
    set [S$.$fillStyle](value) {
      this.fillStyle = value;
    }
    get [S$.$filter]() {
      return this.filter;
    }
    set [S$.$filter](value) {
      this.filter = value;
    }
    get [S$.$font]() {
      return this.font;
    }
    set [S$.$font](value) {
      this.font = value;
    }
    get [S$.$globalAlpha]() {
      return this.globalAlpha;
    }
    set [S$.$globalAlpha](value) {
      this.globalAlpha = value;
    }
    get [S$.$globalCompositeOperation]() {
      return this.globalCompositeOperation;
    }
    set [S$.$globalCompositeOperation](value) {
      this.globalCompositeOperation = value;
    }
    get [S$.$imageSmoothingEnabled]() {
      return this.imageSmoothingEnabled;
    }
    set [S$.$imageSmoothingEnabled](value) {
      this.imageSmoothingEnabled = value;
    }
    get [S$.$imageSmoothingQuality]() {
      return this.imageSmoothingQuality;
    }
    set [S$.$imageSmoothingQuality](value) {
      this.imageSmoothingQuality = value;
    }
    get [S$.$lineCap]() {
      return this.lineCap;
    }
    set [S$.$lineCap](value) {
      this.lineCap = value;
    }
    get [S$.$lineJoin]() {
      return this.lineJoin;
    }
    set [S$.$lineJoin](value) {
      this.lineJoin = value;
    }
    get [S$.$lineWidth]() {
      return this.lineWidth;
    }
    set [S$.$lineWidth](value) {
      this.lineWidth = value;
    }
    get [S$.$miterLimit]() {
      return this.miterLimit;
    }
    set [S$.$miterLimit](value) {
      this.miterLimit = value;
    }
    get [S$.$shadowBlur]() {
      return this.shadowBlur;
    }
    set [S$.$shadowBlur](value) {
      this.shadowBlur = value;
    }
    get [S$.$shadowColor]() {
      return this.shadowColor;
    }
    set [S$.$shadowColor](value) {
      this.shadowColor = value;
    }
    get [S$.$shadowOffsetX]() {
      return this.shadowOffsetX;
    }
    set [S$.$shadowOffsetX](value) {
      this.shadowOffsetX = value;
    }
    get [S$.$shadowOffsetY]() {
      return this.shadowOffsetY;
    }
    set [S$.$shadowOffsetY](value) {
      this.shadowOffsetY = value;
    }
    get [S$.$strokeStyle]() {
      return this.strokeStyle;
    }
    set [S$.$strokeStyle](value) {
      this.strokeStyle = value;
    }
    get [S$.$textAlign]() {
      return this.textAlign;
    }
    set [S$.$textAlign](value) {
      this.textAlign = value;
    }
    get [S$.$textBaseline]() {
      return this.textBaseline;
    }
    set [S$.$textBaseline](value) {
      this.textBaseline = value;
    }
    [S$.$addHitRegion](options = null) {
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$._addHitRegion_1](options_1);
        return;
      }
      this[S$._addHitRegion_2]();
      return;
    }
    [S$._addHitRegion_1](...args) {
      return this.addHitRegion.apply(this, args);
    }
    [S$._addHitRegion_2](...args) {
      return this.addHitRegion.apply(this, args);
    }
    [S$.$beginPath](...args) {
      return this.beginPath.apply(this, args);
    }
    [S$.$clearHitRegions](...args) {
      return this.clearHitRegions.apply(this, args);
    }
    [S$.$clearRect](...args) {
      return this.clearRect.apply(this, args);
    }
    [S$.$clip](...args) {
      return this.clip.apply(this, args);
    }
    [S$.$createImageData](data_OR_imagedata_OR_sw, sh_OR_sw = null, imageDataColorSettings_OR_sh = null, imageDataColorSettings = null) {
      if (html$.ImageData.is(data_OR_imagedata_OR_sw) && sh_OR_sw == null && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_1](imagedata_1));
      }
      if (sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_2](data_OR_imagedata_OR_sw, sh_OR_sw));
      }
      if (core.Map.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings == null) {
        let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_3](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
      }
      if (core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null && imageDataColorSettings == null) {
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_4](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh));
      }
      if (imageDataColorSettings != null && core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null) {
        let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_5](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh, imageDataColorSettings_1));
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$._createImageData_1](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_2](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_3](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_4](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_5](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$.$createLinearGradient](...args) {
      return this.createLinearGradient.apply(this, args);
    }
    [S$.$createPattern](...args) {
      return this.createPattern.apply(this, args);
    }
    [S$.$createRadialGradient](...args) {
      return this.createRadialGradient.apply(this, args);
    }
    [S$.$drawFocusIfNeeded](...args) {
      return this.drawFocusIfNeeded.apply(this, args);
    }
    [S$.$fill](...args) {
      return this.fill.apply(this, args);
    }
    [S$.$fillRect](...args) {
      return this.fillRect.apply(this, args);
    }
    [S$.$getContextAttributes]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$._getContextAttributes_1]()));
    }
    [S$._getContextAttributes_1](...args) {
      return this.getContextAttributes.apply(this, args);
    }
    [S$.$getImageData](sx, sy, sw, sh) {
      if (sx == null) dart.nullFailed(I[147], 2581, 30, "sx");
      if (sy == null) dart.nullFailed(I[147], 2581, 38, "sy");
      if (sw == null) dart.nullFailed(I[147], 2581, 46, "sw");
      if (sh == null) dart.nullFailed(I[147], 2581, 54, "sh");
      return html_common.convertNativeToDart_ImageData(this[S$._getImageData_1](sx, sy, sw, sh));
    }
    [S$._getImageData_1](...args) {
      return this.getImageData.apply(this, args);
    }
    [S$._getLineDash](...args) {
      return this.getLineDash.apply(this, args);
    }
    [S$.$isContextLost](...args) {
      return this.isContextLost.apply(this, args);
    }
    [S$.$isPointInPath](...args) {
      return this.isPointInPath.apply(this, args);
    }
    [S$.$isPointInStroke](...args) {
      return this.isPointInStroke.apply(this, args);
    }
    [S$.$measureText](...args) {
      return this.measureText.apply(this, args);
    }
    [S$.$putImageData](imagedata, dx, dy, dirtyX = null, dirtyY = null, dirtyWidth = null, dirtyHeight = null) {
      if (imagedata == null) dart.nullFailed(I[147], 2601, 31, "imagedata");
      if (dx == null) dart.nullFailed(I[147], 2601, 46, "dx");
      if (dy == null) dart.nullFailed(I[147], 2601, 54, "dy");
      if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
        this[S$._putImageData_1](imagedata_1, dx, dy);
        return;
      }
      if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
        this[S$._putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$._putImageData_1](...args) {
      return this.putImageData.apply(this, args);
    }
    [S$._putImageData_2](...args) {
      return this.putImageData.apply(this, args);
    }
    [S$.$removeHitRegion](...args) {
      return this.removeHitRegion.apply(this, args);
    }
    [S$.$resetTransform](...args) {
      return this.resetTransform.apply(this, args);
    }
    [S$.$restore](...args) {
      return this.restore.apply(this, args);
    }
    [S$.$rotate](...args) {
      return this.rotate.apply(this, args);
    }
    [S$.$save](...args) {
      return this.save.apply(this, args);
    }
    [S$.$scale](...args) {
      return this.scale.apply(this, args);
    }
    [S$.$scrollPathIntoView](...args) {
      return this.scrollPathIntoView.apply(this, args);
    }
    [S$.$setTransform](...args) {
      return this.setTransform.apply(this, args);
    }
    [S$.$stroke](...args) {
      return this.stroke.apply(this, args);
    }
    [S$.$strokeRect](...args) {
      return this.strokeRect.apply(this, args);
    }
    [S$.$strokeText](...args) {
      return this.strokeText.apply(this, args);
    }
    [S$.$transform](...args) {
      return this.transform.apply(this, args);
    }
    [S.$translate](...args) {
      return this.translate.apply(this, args);
    }
    [S$._arc](...args) {
      return this.arc.apply(this, args);
    }
    [S$.$arcTo](...args) {
      return this.arcTo.apply(this, args);
    }
    [S$.$bezierCurveTo](...args) {
      return this.bezierCurveTo.apply(this, args);
    }
    [S$.$closePath](...args) {
      return this.closePath.apply(this, args);
    }
    [S$.$ellipse](...args) {
      return this.ellipse.apply(this, args);
    }
    [S$.$lineTo](...args) {
      return this.lineTo.apply(this, args);
    }
    [S$.$moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$.$quadraticCurveTo](...args) {
      return this.quadraticCurveTo.apply(this, args);
    }
    [S$.$rect](...args) {
      return this.rect.apply(this, args);
    }
    [S$.$createImageDataFromImageData](imagedata) {
      if (imagedata == null) dart.nullFailed(I[147], 2679, 52, "imagedata");
      return this.createImageData(imagedata);
    }
    [S$.$setFillColorRgb](r, g, b, a = 1) {
      if (r == null) dart.nullFailed(I[147], 2686, 28, "r");
      if (g == null) dart.nullFailed(I[147], 2686, 35, "g");
      if (b == null) dart.nullFailed(I[147], 2686, 42, "b");
      if (a == null) dart.nullFailed(I[147], 2686, 50, "a");
      this.fillStyle = "rgba(" + dart.str(r) + ", " + dart.str(g) + ", " + dart.str(b) + ", " + dart.str(a) + ")";
    }
    [S$.$setFillColorHsl](h, s, l, a = 1) {
      if (h == null) dart.nullFailed(I[147], 2696, 28, "h");
      if (s == null) dart.nullFailed(I[147], 2696, 35, "s");
      if (l == null) dart.nullFailed(I[147], 2696, 42, "l");
      if (a == null) dart.nullFailed(I[147], 2696, 50, "a");
      this.fillStyle = "hsla(" + dart.str(h) + ", " + dart.str(s) + "%, " + dart.str(l) + "%, " + dart.str(a) + ")";
    }
    [S$.$setStrokeColorRgb](r, g, b, a = 1) {
      if (r == null) dart.nullFailed(I[147], 2704, 30, "r");
      if (g == null) dart.nullFailed(I[147], 2704, 37, "g");
      if (b == null) dart.nullFailed(I[147], 2704, 44, "b");
      if (a == null) dart.nullFailed(I[147], 2704, 52, "a");
      this.strokeStyle = "rgba(" + dart.str(r) + ", " + dart.str(g) + ", " + dart.str(b) + ", " + dart.str(a) + ")";
    }
    [S$.$setStrokeColorHsl](h, s, l, a = 1) {
      if (h == null) dart.nullFailed(I[147], 2714, 30, "h");
      if (s == null) dart.nullFailed(I[147], 2714, 37, "s");
      if (l == null) dart.nullFailed(I[147], 2714, 44, "l");
      if (a == null) dart.nullFailed(I[147], 2714, 52, "a");
      this.strokeStyle = "hsla(" + dart.str(h) + ", " + dart.str(s) + "%, " + dart.str(l) + "%, " + dart.str(a) + ")";
    }
    [S$.$arc](x, y, radius, startAngle, endAngle, anticlockwise = false) {
      if (x == null) dart.nullFailed(I[147], 2718, 16, "x");
      if (y == null) dart.nullFailed(I[147], 2718, 23, "y");
      if (radius == null) dart.nullFailed(I[147], 2718, 30, "radius");
      if (startAngle == null) dart.nullFailed(I[147], 2718, 42, "startAngle");
      if (endAngle == null) dart.nullFailed(I[147], 2718, 58, "endAngle");
      if (anticlockwise == null) dart.nullFailed(I[147], 2719, 13, "anticlockwise");
      this.arc(x, y, radius, startAngle, endAngle, anticlockwise);
    }
    [S$.$createPatternFromImage](image, repetitionType) {
      if (image == null) dart.nullFailed(I[147], 2726, 24, "image");
      if (repetitionType == null) dart.nullFailed(I[147], 2726, 38, "repetitionType");
      return this.createPattern(image, repetitionType);
    }
    [S$.$drawImageToRect](source, destRect, opts) {
      if (source == null) dart.nullFailed(I[147], 2769, 42, "source");
      if (destRect == null) dart.nullFailed(I[147], 2769, 60, "destRect");
      let sourceRect = opts && 'sourceRect' in opts ? opts.sourceRect : null;
      if (sourceRect == null) {
        this[S$.$drawImageScaled](source, destRect[$left], destRect[$top], destRect[$width], destRect[$height]);
      } else {
        this[S$.$drawImageScaledFromSource](source, sourceRect[$left], sourceRect[$top], sourceRect[$width], sourceRect[$height], destRect[$left], destRect[$top], destRect[$width], destRect[$height]);
      }
    }
    [S$.$drawImage](...args) {
      return this.drawImage.apply(this, args);
    }
    [S$.$drawImageScaled](...args) {
      return this.drawImage.apply(this, args);
    }
    [S$.$drawImageScaledFromSource](...args) {
      return this.drawImage.apply(this, args);
    }
    get [S$.$lineDashOffset]() {
      return this.lineDashOffset || this.webkitLineDashOffset;
    }
    set [S$.$lineDashOffset](value) {
      if (value == null) dart.nullFailed(I[147], 2906, 26, "value");
      typeof this.lineDashOffset != "undefined" ? this.lineDashOffset = value : this.webkitLineDashOffset = value;
    }
    [S$.$getLineDash]() {
      if (!!this.getLineDash) {
        return this.getLineDash();
      } else if (!!this.webkitLineDash) {
        return this.webkitLineDash;
      }
      return T$0.JSArrayOfnum().of([]);
    }
    [S$.$setLineDash](dash) {
      if (dash == null) dart.nullFailed(I[147], 2937, 30, "dash");
      if (!!this.setLineDash) {
        this.setLineDash(dash);
      } else if (!!this.webkitLineDash) {
        this.webkitLineDash = dash;
      }
    }
    [S$.$fillText](text, x, y, maxWidth = null) {
      if (text == null) dart.nullFailed(I[147], 2961, 24, "text");
      if (x == null) dart.nullFailed(I[147], 2961, 34, "x");
      if (y == null) dart.nullFailed(I[147], 2961, 41, "y");
      if (maxWidth != null) {
        this.fillText(text, x, y, maxWidth);
      } else {
        this.fillText(text, x, y);
      }
    }
    get [S$.$backingStorePixelRatio]() {
      return 1.0;
    }
  };
  dart.addTypeTests(html$.CanvasRenderingContext2D);
  dart.addTypeCaches(html$.CanvasRenderingContext2D);
  html$.CanvasRenderingContext2D[dart.implements] = () => [html$.CanvasRenderingContext];
  dart.setMethodSignature(html$.CanvasRenderingContext2D, () => ({
    __proto__: dart.getMethods(html$.CanvasRenderingContext2D.__proto__),
    [S$.$addHitRegion]: dart.fnType(dart.void, [], [dart.nullable(core.Map)]),
    [S$._addHitRegion_1]: dart.fnType(dart.void, [dart.dynamic]),
    [S$._addHitRegion_2]: dart.fnType(dart.void, []),
    [S$.$beginPath]: dart.fnType(dart.void, []),
    [S$.$clearHitRegions]: dart.fnType(dart.void, []),
    [S$.$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$clip]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$createImageData]: dart.fnType(html$.ImageData, [dart.dynamic], [dart.nullable(core.int), dart.dynamic, dart.nullable(core.Map)]),
    [S$._createImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic]),
    [S$._createImageData_2]: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
    [S$._createImageData_3]: dart.fnType(dart.dynamic, [core.int, dart.dynamic, dart.dynamic]),
    [S$._createImageData_4]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.nullable(core.int)]),
    [S$._createImageData_5]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.nullable(core.int), dart.dynamic]),
    [S$.$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
    [S$.$createPattern]: dart.fnType(dart.nullable(html$.CanvasPattern), [core.Object, core.String]),
    [S$.$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$drawFocusIfNeeded]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(html$.Element)]),
    [S$.$fill]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$getContextAttributes]: dart.fnType(core.Map, []),
    [S$._getContextAttributes_1]: dart.fnType(dart.dynamic, []),
    [S$.$getImageData]: dart.fnType(html$.ImageData, [core.int, core.int, core.int, core.int]),
    [S$._getImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$._getLineDash]: dart.fnType(core.List$(core.num), []),
    [S$.$isContextLost]: dart.fnType(core.bool, []),
    [S$.$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.nullable(core.num)]),
    [S$.$measureText]: dart.fnType(html$.TextMetrics, [core.String]),
    [S$.$putImageData]: dart.fnType(dart.void, [html$.ImageData, core.int, core.int], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int)]),
    [S$._putImageData_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$._putImageData_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$.$removeHitRegion]: dart.fnType(dart.void, [core.String]),
    [S$.$resetTransform]: dart.fnType(dart.void, []),
    [S$.$restore]: dart.fnType(dart.void, []),
    [S$.$rotate]: dart.fnType(dart.void, [core.num]),
    [S$.$save]: dart.fnType(dart.void, []),
    [S$.$scale]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$scrollPathIntoView]: dart.fnType(dart.void, [], [dart.nullable(html$.Path2D)]),
    [S$.$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$stroke]: dart.fnType(dart.void, [], [dart.nullable(html$.Path2D)]),
    [S$.$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$strokeText]: dart.fnType(dart.void, [core.String, core.num, core.num], [dart.nullable(core.num)]),
    [S$.$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S.$translate]: dart.fnType(dart.void, [core.num, core.num]),
    [S$._arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
    [S$.$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$closePath]: dart.fnType(dart.void, []),
    [S$.$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$createImageDataFromImageData]: dart.fnType(html$.ImageData, [html$.ImageData]),
    [S$.$setFillColorRgb]: dart.fnType(dart.void, [core.int, core.int, core.int], [core.num]),
    [S$.$setFillColorHsl]: dart.fnType(dart.void, [core.int, core.num, core.num], [core.num]),
    [S$.$setStrokeColorRgb]: dart.fnType(dart.void, [core.int, core.int, core.int], [core.num]),
    [S$.$setStrokeColorHsl]: dart.fnType(dart.void, [core.int, core.num, core.num], [core.num]),
    [S$.$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num], [core.bool]),
    [S$.$createPatternFromImage]: dart.fnType(html$.CanvasPattern, [html$.ImageElement, core.String]),
    [S$.$drawImageToRect]: dart.fnType(dart.void, [html$.CanvasImageSource, math.Rectangle$(core.num)], {sourceRect: dart.nullable(math.Rectangle$(core.num))}, {}),
    [S$.$drawImage]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num]),
    [S$.$drawImageScaled]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num]),
    [S$.$drawImageScaledFromSource]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$getLineDash]: dart.fnType(core.List$(core.num), []),
    [S$.$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
    [S$.$fillText]: dart.fnType(dart.void, [core.String, core.num, core.num], [dart.nullable(core.num)])
  }));
  dart.setGetterSignature(html$.CanvasRenderingContext2D, () => ({
    __proto__: dart.getGetters(html$.CanvasRenderingContext2D.__proto__),
    [S$.$canvas]: html$.CanvasElement,
    [S$.$currentTransform]: dart.nullable(svg$.Matrix),
    [S.$direction]: dart.nullable(core.String),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$font]: core.String,
    [S$.$globalAlpha]: core.num,
    [S$.$globalCompositeOperation]: core.String,
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: core.String,
    [S$.$lineJoin]: core.String,
    [S$.$lineWidth]: core.num,
    [S$.$miterLimit]: core.num,
    [S$.$shadowBlur]: core.num,
    [S$.$shadowColor]: core.String,
    [S$.$shadowOffsetX]: core.num,
    [S$.$shadowOffsetY]: core.num,
    [S$.$strokeStyle]: dart.nullable(core.Object),
    [S$.$textAlign]: core.String,
    [S$.$textBaseline]: core.String,
    [S$.$lineDashOffset]: core.num,
    [S$.$backingStorePixelRatio]: core.double
  }));
  dart.setSetterSignature(html$.CanvasRenderingContext2D, () => ({
    __proto__: dart.getSetters(html$.CanvasRenderingContext2D.__proto__),
    [S$.$currentTransform]: dart.nullable(svg$.Matrix),
    [S.$direction]: dart.nullable(core.String),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$font]: core.String,
    [S$.$globalAlpha]: core.num,
    [S$.$globalCompositeOperation]: core.String,
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: core.String,
    [S$.$lineJoin]: core.String,
    [S$.$lineWidth]: core.num,
    [S$.$miterLimit]: core.num,
    [S$.$shadowBlur]: core.num,
    [S$.$shadowColor]: core.String,
    [S$.$shadowOffsetX]: core.num,
    [S$.$shadowOffsetY]: core.num,
    [S$.$strokeStyle]: dart.nullable(core.Object),
    [S$.$textAlign]: core.String,
    [S$.$textBaseline]: core.String,
    [S$.$lineDashOffset]: core.num
  }));
  dart.setLibraryUri(html$.CanvasRenderingContext2D, I[148]);
  dart.registerExtension("CanvasRenderingContext2D", html$.CanvasRenderingContext2D);
  html$.ChildNode = class ChildNode extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.ChildNode);
  dart.addTypeCaches(html$.ChildNode);
  dart.setLibraryUri(html$.ChildNode, I[148]);
  html$.Client = class Client extends _interceptors.Interceptor {
    get [S$.$frameType]() {
      return this.frameType;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$url]() {
      return this.url;
    }
    [S$.$postMessage](...args) {
      return this.postMessage.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Client);
  dart.addTypeCaches(html$.Client);
  dart.setMethodSignature(html$.Client, () => ({
    __proto__: dart.getMethods(html$.Client.__proto__),
    [S$.$postMessage]: dart.fnType(dart.void, [core.Object], [dart.nullable(core.List$(core.Object))])
  }));
  dart.setGetterSignature(html$.Client, () => ({
    __proto__: dart.getGetters(html$.Client.__proto__),
    [S$.$frameType]: dart.nullable(core.String),
    [S.$id]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Client, I[148]);
  dart.registerExtension("Client", html$.Client);
  html$.Clients = class Clients extends _interceptors.Interceptor {
    [S$.$claim]() {
      return js_util.promiseToFuture(dart.dynamic, this.claim());
    }
    [S.$get](id) {
      if (id == null) dart.nullFailed(I[147], 3063, 21, "id");
      return js_util.promiseToFuture(dart.dynamic, this.get(id));
    }
    [S$.$matchAll](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(core.List, this.matchAll(options_dict));
    }
    [S$.$openWindow](url) {
      if (url == null) dart.nullFailed(I[147], 3074, 42, "url");
      return js_util.promiseToFuture(html$.WindowClient, this.openWindow(url));
    }
  };
  dart.addTypeTests(html$.Clients);
  dart.addTypeCaches(html$.Clients);
  dart.setMethodSignature(html$.Clients, () => ({
    __proto__: dart.getMethods(html$.Clients.__proto__),
    [S$.$claim]: dart.fnType(async.Future, []),
    [S.$get]: dart.fnType(async.Future, [core.String]),
    [S$.$matchAll]: dart.fnType(async.Future$(core.List), [], [dart.nullable(core.Map)]),
    [S$.$openWindow]: dart.fnType(async.Future$(html$.WindowClient), [core.String])
  }));
  dart.setLibraryUri(html$.Clients, I[148]);
  dart.registerExtension("Clients", html$.Clients);
  html$.ClipboardEvent = class ClipboardEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 3088, 33, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.ClipboardEvent._create_1(type, eventInitDict_1);
      }
      return html$.ClipboardEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new ClipboardEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new ClipboardEvent(type);
    }
    get [S$.$clipboardData]() {
      return this.clipboardData;
    }
  };
  dart.addTypeTests(html$.ClipboardEvent);
  dart.addTypeCaches(html$.ClipboardEvent);
  dart.setGetterSignature(html$.ClipboardEvent, () => ({
    __proto__: dart.getGetters(html$.ClipboardEvent.__proto__),
    [S$.$clipboardData]: dart.nullable(html$.DataTransfer)
  }));
  dart.setLibraryUri(html$.ClipboardEvent, I[148]);
  dart.registerExtension("ClipboardEvent", html$.ClipboardEvent);
  html$.CloseEvent = class CloseEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 3113, 29, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.CloseEvent._create_1(type, eventInitDict_1);
      }
      return html$.CloseEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new CloseEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new CloseEvent(type);
    }
    get [S$.$code]() {
      return this.code;
    }
    get [S$.$reason]() {
      return this.reason;
    }
    get [S$.$wasClean]() {
      return this.wasClean;
    }
  };
  dart.addTypeTests(html$.CloseEvent);
  dart.addTypeCaches(html$.CloseEvent);
  dart.setGetterSignature(html$.CloseEvent, () => ({
    __proto__: dart.getGetters(html$.CloseEvent.__proto__),
    [S$.$code]: dart.nullable(core.int),
    [S$.$reason]: dart.nullable(core.String),
    [S$.$wasClean]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.CloseEvent, I[148]);
  dart.registerExtension("CloseEvent", html$.CloseEvent);
  html$.Comment = class Comment extends html$.CharacterData {
    static new(data = null) {
      return html$.document.createComment(data == null ? "" : data);
    }
  };
  dart.addTypeTests(html$.Comment);
  dart.addTypeCaches(html$.Comment);
  dart.setLibraryUri(html$.Comment, I[148]);
  dart.registerExtension("Comment", html$.Comment);
  html$.UIEvent = class UIEvent$ extends html$.Event {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 30716, 26, "type");
      let view = opts && 'view' in opts ? opts.view : null;
      let detail = opts && 'detail' in opts ? opts.detail : 0;
      if (detail == null) dart.nullFailed(I[147], 30718, 11, "detail");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 30719, 12, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 30720, 12, "cancelable");
      if (view == null) {
        view = html$.window;
      }
      let e = html$.UIEvent.as(html$.document[S._createEvent]("UIEvent"));
      e[S$._initUIEvent](type, canBubble, cancelable, view, detail);
      return e;
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 30729, 28, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.UIEvent._create_1(type, eventInitDict_1);
      }
      return html$.UIEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new UIEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new UIEvent(type);
    }
    get [S$.$detail]() {
      return this.detail;
    }
    get [S$.$sourceCapabilities]() {
      return this.sourceCapabilities;
    }
    get [S$.$view]() {
      return html$._convertNativeToDart_Window(this[S$._get_view]);
    }
    get [S$._get_view]() {
      return this.view;
    }
    get [S$._which]() {
      return this.which;
    }
    [S$._initUIEvent](...args) {
      return this.initUIEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.UIEvent);
  dart.addTypeCaches(html$.UIEvent);
  dart.setMethodSignature(html$.UIEvent, () => ({
    __proto__: dart.getMethods(html$.UIEvent.__proto__),
    [S$._initUIEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, dart.nullable(html$.Window), core.int])
  }));
  dart.setGetterSignature(html$.UIEvent, () => ({
    __proto__: dart.getGetters(html$.UIEvent.__proto__),
    [S$.$detail]: dart.nullable(core.int),
    [S$.$sourceCapabilities]: dart.nullable(html$.InputDeviceCapabilities),
    [S$.$view]: dart.nullable(html$.WindowBase),
    [S$._get_view]: dart.dynamic,
    [S$._which]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.UIEvent, I[148]);
  dart.registerExtension("UIEvent", html$.UIEvent);
  html$.CompositionEvent = class CompositionEvent$ extends html$.UIEvent {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 3154, 35, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
      if (canBubble == null) dart.nullFailed(I[147], 3155, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
      if (cancelable == null) dart.nullFailed(I[147], 3156, 12, "cancelable");
      let view = opts && 'view' in opts ? opts.view : null;
      let data = opts && 'data' in opts ? opts.data : null;
      let locale = opts && 'locale' in opts ? opts.locale : null;
      if (view == null) {
        view = html$.window;
      }
      let e = html$.CompositionEvent.as(html$.document[S._createEvent]("CompositionEvent"));
      if (dart.test(html_common.Device.isFirefox)) {
        e.initCompositionEvent(type, canBubble, cancelable, view, data, locale);
      } else {
        e[S$._initCompositionEvent](type, canBubble, cancelable, view, data);
      }
      return e;
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 3177, 37, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.CompositionEvent._create_1(type, eventInitDict_1);
      }
      return html$.CompositionEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new CompositionEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new CompositionEvent(type);
    }
    get [S$.$data]() {
      return this.data;
    }
    [S$._initCompositionEvent](...args) {
      return this.initCompositionEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CompositionEvent);
  dart.addTypeCaches(html$.CompositionEvent);
  dart.setMethodSignature(html$.CompositionEvent, () => ({
    __proto__: dart.getMethods(html$.CompositionEvent.__proto__),
    [S$._initCompositionEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(html$.Window), dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.CompositionEvent, () => ({
    __proto__: dart.getGetters(html$.CompositionEvent.__proto__),
    [S$.$data]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CompositionEvent, I[148]);
  dart.registerExtension("CompositionEvent", html$.CompositionEvent);
  html$.ContentElement = class ContentElement extends html$.HtmlElement {
    static new() {
      return html$.ContentElement.as(html$.document[S.$createElement]("content"));
    }
    static get supported() {
      return html$.Element.isTagSupported("content");
    }
    get [S$.$select]() {
      return this.select;
    }
    set [S$.$select](value) {
      this.select = value;
    }
    [S$.$getDistributedNodes](...args) {
      return this.getDistributedNodes.apply(this, args);
    }
  };
  (html$.ContentElement.created = function() {
    html$.ContentElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ContentElement.prototype;
  dart.addTypeTests(html$.ContentElement);
  dart.addTypeCaches(html$.ContentElement);
  dart.setMethodSignature(html$.ContentElement, () => ({
    __proto__: dart.getMethods(html$.ContentElement.__proto__),
    [S$.$getDistributedNodes]: dart.fnType(core.List$(html$.Node), [])
  }));
  dart.setGetterSignature(html$.ContentElement, () => ({
    __proto__: dart.getGetters(html$.ContentElement.__proto__),
    [S$.$select]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.ContentElement, () => ({
    __proto__: dart.getSetters(html$.ContentElement.__proto__),
    [S$.$select]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.ContentElement, I[148]);
  dart.registerExtension("HTMLContentElement", html$.ContentElement);
  html$.CookieStore = class CookieStore extends _interceptors.Interceptor {
    [S.$getAll](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.getAll(options_dict));
    }
    [S$.$set](name, value, options = null) {
      if (name == null) dart.nullFailed(I[147], 3246, 21, "name");
      if (value == null) dart.nullFailed(I[147], 3246, 34, "value");
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.set(name, value, options_dict));
    }
  };
  dart.addTypeTests(html$.CookieStore);
  dart.addTypeCaches(html$.CookieStore);
  dart.setMethodSignature(html$.CookieStore, () => ({
    __proto__: dart.getMethods(html$.CookieStore.__proto__),
    [S.$getAll]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$.$set]: dart.fnType(async.Future, [core.String, core.String], [dart.nullable(core.Map)])
  }));
  dart.setLibraryUri(html$.CookieStore, I[148]);
  dart.registerExtension("CookieStore", html$.CookieStore);
  html$.Coordinates = class Coordinates extends _interceptors.Interceptor {
    get [S$.$accuracy]() {
      return this.accuracy;
    }
    get [S$.$altitude]() {
      return this.altitude;
    }
    get [S$.$altitudeAccuracy]() {
      return this.altitudeAccuracy;
    }
    get [S$.$heading]() {
      return this.heading;
    }
    get [S$.$latitude]() {
      return this.latitude;
    }
    get [S$.$longitude]() {
      return this.longitude;
    }
    get [S$.$speed]() {
      return this.speed;
    }
  };
  dart.addTypeTests(html$.Coordinates);
  dart.addTypeCaches(html$.Coordinates);
  dart.setGetterSignature(html$.Coordinates, () => ({
    __proto__: dart.getGetters(html$.Coordinates.__proto__),
    [S$.$accuracy]: dart.nullable(core.num),
    [S$.$altitude]: dart.nullable(core.num),
    [S$.$altitudeAccuracy]: dart.nullable(core.num),
    [S$.$heading]: dart.nullable(core.num),
    [S$.$latitude]: dart.nullable(core.num),
    [S$.$longitude]: dart.nullable(core.num),
    [S$.$speed]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.Coordinates, I[148]);
  dart.registerExtension("Coordinates", html$.Coordinates);
  html$.Credential = class Credential extends _interceptors.Interceptor {
    get [S.$id]() {
      return this.id;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.Credential);
  dart.addTypeCaches(html$.Credential);
  dart.setGetterSignature(html$.Credential, () => ({
    __proto__: dart.getGetters(html$.Credential.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Credential, I[148]);
  dart.registerExtension("Credential", html$.Credential);
  html$.CredentialUserData = class CredentialUserData extends _interceptors.Interceptor {
    get [S$.$iconUrl]() {
      return this.iconURL;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.CredentialUserData);
  dart.addTypeCaches(html$.CredentialUserData);
  dart.setGetterSignature(html$.CredentialUserData, () => ({
    __proto__: dart.getGetters(html$.CredentialUserData.__proto__),
    [S$.$iconUrl]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CredentialUserData, I[148]);
  dart.registerExtension("CredentialUserData", html$.CredentialUserData);
  html$.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
    [S$.$create](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.create(options_dict));
    }
    [S.$get](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.get(options_dict));
    }
    [S$.$preventSilentAccess]() {
      return js_util.promiseToFuture(dart.dynamic, this.preventSilentAccess());
    }
    [S$.$requireUserMediation]() {
      return js_util.promiseToFuture(dart.dynamic, this.requireUserMediation());
    }
    [S$.$store](credential) {
      if (credential == null) dart.nullFailed(I[147], 3346, 27, "credential");
      return js_util.promiseToFuture(dart.dynamic, this.store(credential));
    }
  };
  dart.addTypeTests(html$.CredentialsContainer);
  dart.addTypeCaches(html$.CredentialsContainer);
  dart.setMethodSignature(html$.CredentialsContainer, () => ({
    __proto__: dart.getMethods(html$.CredentialsContainer.__proto__),
    [S$.$create]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S.$get]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$.$preventSilentAccess]: dart.fnType(async.Future, []),
    [S$.$requireUserMediation]: dart.fnType(async.Future, []),
    [S$.$store]: dart.fnType(async.Future, [html$.Credential])
  }));
  dart.setLibraryUri(html$.CredentialsContainer, I[148]);
  dart.registerExtension("CredentialsContainer", html$.CredentialsContainer);
  html$.Crypto = class Crypto extends _interceptors.Interceptor {
    [S$.$getRandomValues](array) {
      if (array == null) dart.nullFailed(I[147], 3357, 39, "array");
      return this[S$._getRandomValues](array);
    }
    static get supported() {
      return !!(window.crypto && window.crypto.getRandomValues);
    }
    get [S$.$subtle]() {
      return this.subtle;
    }
    [S$._getRandomValues](...args) {
      return this.getRandomValues.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Crypto);
  dart.addTypeCaches(html$.Crypto);
  dart.setMethodSignature(html$.Crypto, () => ({
    __proto__: dart.getMethods(html$.Crypto.__proto__),
    [S$.$getRandomValues]: dart.fnType(typed_data.TypedData, [typed_data.TypedData]),
    [S$._getRandomValues]: dart.fnType(typed_data.TypedData, [typed_data.TypedData])
  }));
  dart.setGetterSignature(html$.Crypto, () => ({
    __proto__: dart.getGetters(html$.Crypto.__proto__),
    [S$.$subtle]: dart.nullable(html$._SubtleCrypto)
  }));
  dart.setLibraryUri(html$.Crypto, I[148]);
  dart.registerExtension("Crypto", html$.Crypto);
  html$.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
    get [S$.$algorithm]() {
      return this.algorithm;
    }
    get [S$.$extractable]() {
      return this.extractable;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$usages]() {
      return this.usages;
    }
  };
  dart.addTypeTests(html$.CryptoKey);
  dart.addTypeCaches(html$.CryptoKey);
  dart.setGetterSignature(html$.CryptoKey, () => ({
    __proto__: dart.getGetters(html$.CryptoKey.__proto__),
    [S$.$algorithm]: dart.nullable(core.Object),
    [S$.$extractable]: dart.nullable(core.bool),
    [S.$type]: dart.nullable(core.String),
    [S$.$usages]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.CryptoKey, I[148]);
  dart.registerExtension("CryptoKey", html$.CryptoKey);
  html$.Css = class Css extends _interceptors.Interceptor {
    static registerProperty(descriptor) {
      if (descriptor == null) dart.nullFailed(I[147], 3455, 36, "descriptor");
      let descriptor_1 = html_common.convertDartToNative_Dictionary(descriptor);
      dart.global.CSS.registerProperty(descriptor_1);
      return;
    }
  };
  dart.addTypeTests(html$.Css);
  dart.addTypeCaches(html$.Css);
  dart.setLibraryUri(html$.Css, I[148]);
  dart.registerExtension("CSS", html$.Css);
  html$.CssRule = class CssRule extends _interceptors.Interceptor {
    get [S$.$cssText]() {
      return this.cssText;
    }
    set [S$.$cssText](value) {
      this.cssText = value;
    }
    get [S$.$parentRule]() {
      return this.parentRule;
    }
    get [S$.$parentStyleSheet]() {
      return this.parentStyleSheet;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.CssRule);
  dart.addTypeCaches(html$.CssRule);
  dart.setGetterSignature(html$.CssRule, () => ({
    __proto__: dart.getGetters(html$.CssRule.__proto__),
    [S$.$cssText]: dart.nullable(core.String),
    [S$.$parentRule]: dart.nullable(html$.CssRule),
    [S$.$parentStyleSheet]: dart.nullable(html$.CssStyleSheet),
    [S.$type]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.CssRule, () => ({
    __proto__: dart.getSetters(html$.CssRule.__proto__),
    [S$.$cssText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssRule, I[148]);
  dart.defineLazy(html$.CssRule, {
    /*html$.CssRule.CHARSET_RULE*/get CHARSET_RULE() {
      return 2;
    },
    /*html$.CssRule.FONT_FACE_RULE*/get FONT_FACE_RULE() {
      return 5;
    },
    /*html$.CssRule.IMPORT_RULE*/get IMPORT_RULE() {
      return 3;
    },
    /*html$.CssRule.KEYFRAMES_RULE*/get KEYFRAMES_RULE() {
      return 7;
    },
    /*html$.CssRule.KEYFRAME_RULE*/get KEYFRAME_RULE() {
      return 8;
    },
    /*html$.CssRule.MEDIA_RULE*/get MEDIA_RULE() {
      return 4;
    },
    /*html$.CssRule.NAMESPACE_RULE*/get NAMESPACE_RULE() {
      return 10;
    },
    /*html$.CssRule.PAGE_RULE*/get PAGE_RULE() {
      return 6;
    },
    /*html$.CssRule.STYLE_RULE*/get STYLE_RULE() {
      return 1;
    },
    /*html$.CssRule.SUPPORTS_RULE*/get SUPPORTS_RULE() {
      return 12;
    },
    /*html$.CssRule.VIEWPORT_RULE*/get VIEWPORT_RULE() {
      return 15;
    }
  }, false);
  dart.registerExtension("CSSRule", html$.CssRule);
  html$.CssCharsetRule = class CssCharsetRule extends html$.CssRule {
    get [S$.$encoding]() {
      return this.encoding;
    }
    set [S$.$encoding](value) {
      this.encoding = value;
    }
  };
  dart.addTypeTests(html$.CssCharsetRule);
  dart.addTypeCaches(html$.CssCharsetRule);
  dart.setGetterSignature(html$.CssCharsetRule, () => ({
    __proto__: dart.getGetters(html$.CssCharsetRule.__proto__),
    [S$.$encoding]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.CssCharsetRule, () => ({
    __proto__: dart.getSetters(html$.CssCharsetRule.__proto__),
    [S$.$encoding]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssCharsetRule, I[148]);
  dart.registerExtension("CSSCharsetRule", html$.CssCharsetRule);
  html$.CssGroupingRule = class CssGroupingRule extends html$.CssRule {
    get [S$.$cssRules]() {
      return this.cssRules;
    }
    [S$.$deleteRule](...args) {
      return this.deleteRule.apply(this, args);
    }
    [S$.$insertRule](...args) {
      return this.insertRule.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssGroupingRule);
  dart.addTypeCaches(html$.CssGroupingRule);
  dart.setMethodSignature(html$.CssGroupingRule, () => ({
    __proto__: dart.getMethods(html$.CssGroupingRule.__proto__),
    [S$.$deleteRule]: dart.fnType(dart.void, [core.int]),
    [S$.$insertRule]: dart.fnType(core.int, [core.String, core.int])
  }));
  dart.setGetterSignature(html$.CssGroupingRule, () => ({
    __proto__: dart.getGetters(html$.CssGroupingRule.__proto__),
    [S$.$cssRules]: dart.nullable(core.List$(html$.CssRule))
  }));
  dart.setLibraryUri(html$.CssGroupingRule, I[148]);
  dart.registerExtension("CSSGroupingRule", html$.CssGroupingRule);
  html$.CssConditionRule = class CssConditionRule extends html$.CssGroupingRule {
    get [S$.$conditionText]() {
      return this.conditionText;
    }
  };
  dart.addTypeTests(html$.CssConditionRule);
  dart.addTypeCaches(html$.CssConditionRule);
  dart.setGetterSignature(html$.CssConditionRule, () => ({
    __proto__: dart.getGetters(html$.CssConditionRule.__proto__),
    [S$.$conditionText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssConditionRule, I[148]);
  dart.registerExtension("CSSConditionRule", html$.CssConditionRule);
  html$.CssFontFaceRule = class CssFontFaceRule extends html$.CssRule {
    get [S.$style]() {
      return this.style;
    }
  };
  dart.addTypeTests(html$.CssFontFaceRule);
  dart.addTypeCaches(html$.CssFontFaceRule);
  dart.setGetterSignature(html$.CssFontFaceRule, () => ({
    __proto__: dart.getGetters(html$.CssFontFaceRule.__proto__),
    [S.$style]: dart.nullable(html$.CssStyleDeclaration)
  }));
  dart.setLibraryUri(html$.CssFontFaceRule, I[148]);
  dart.registerExtension("CSSFontFaceRule", html$.CssFontFaceRule);
  html$.CssStyleValue = class CssStyleValue extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.CssStyleValue);
  dart.addTypeCaches(html$.CssStyleValue);
  dart.setLibraryUri(html$.CssStyleValue, I[148]);
  dart.registerExtension("CSSStyleValue", html$.CssStyleValue);
  html$.CssResourceValue = class CssResourceValue extends html$.CssStyleValue {
    get [S$.$state]() {
      return this.state;
    }
  };
  dart.addTypeTests(html$.CssResourceValue);
  dart.addTypeCaches(html$.CssResourceValue);
  dart.setGetterSignature(html$.CssResourceValue, () => ({
    __proto__: dart.getGetters(html$.CssResourceValue.__proto__),
    [S$.$state]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssResourceValue, I[148]);
  dart.registerExtension("CSSResourceValue", html$.CssResourceValue);
  html$.CssImageValue = class CssImageValue extends html$.CssResourceValue {
    get [S$.$intrinsicHeight]() {
      return this.intrinsicHeight;
    }
    get [S$.$intrinsicRatio]() {
      return this.intrinsicRatio;
    }
    get [S$.$intrinsicWidth]() {
      return this.intrinsicWidth;
    }
  };
  dart.addTypeTests(html$.CssImageValue);
  dart.addTypeCaches(html$.CssImageValue);
  dart.setGetterSignature(html$.CssImageValue, () => ({
    __proto__: dart.getGetters(html$.CssImageValue.__proto__),
    [S$.$intrinsicHeight]: dart.nullable(core.num),
    [S$.$intrinsicRatio]: dart.nullable(core.num),
    [S$.$intrinsicWidth]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.CssImageValue, I[148]);
  dart.registerExtension("CSSImageValue", html$.CssImageValue);
  html$.CssImportRule = class CssImportRule extends html$.CssRule {
    get [S$.$href]() {
      return this.href;
    }
    get [S$.$media]() {
      return this.media;
    }
    get [S$.$styleSheet]() {
      return this.styleSheet;
    }
  };
  dart.addTypeTests(html$.CssImportRule);
  dart.addTypeCaches(html$.CssImportRule);
  dart.setGetterSignature(html$.CssImportRule, () => ({
    __proto__: dart.getGetters(html$.CssImportRule.__proto__),
    [S$.$href]: dart.nullable(core.String),
    [S$.$media]: dart.nullable(html$.MediaList),
    [S$.$styleSheet]: dart.nullable(html$.CssStyleSheet)
  }));
  dart.setLibraryUri(html$.CssImportRule, I[148]);
  dart.registerExtension("CSSImportRule", html$.CssImportRule);
  html$.CssKeyframeRule = class CssKeyframeRule extends html$.CssRule {
    get [S$.$keyText]() {
      return this.keyText;
    }
    set [S$.$keyText](value) {
      this.keyText = value;
    }
    get [S.$style]() {
      return this.style;
    }
  };
  dart.addTypeTests(html$.CssKeyframeRule);
  dart.addTypeCaches(html$.CssKeyframeRule);
  dart.setGetterSignature(html$.CssKeyframeRule, () => ({
    __proto__: dart.getGetters(html$.CssKeyframeRule.__proto__),
    [S$.$keyText]: dart.nullable(core.String),
    [S.$style]: dart.nullable(html$.CssStyleDeclaration)
  }));
  dart.setSetterSignature(html$.CssKeyframeRule, () => ({
    __proto__: dart.getSetters(html$.CssKeyframeRule.__proto__),
    [S$.$keyText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssKeyframeRule, I[148]);
  dart.registerExtension("CSSKeyframeRule", html$.CssKeyframeRule);
  dart.registerExtension("MozCSSKeyframeRule", html$.CssKeyframeRule);
  dart.registerExtension("WebKitCSSKeyframeRule", html$.CssKeyframeRule);
  html$.CssKeyframesRule = class CssKeyframesRule extends html$.CssRule {
    get [S$.$cssRules]() {
      return this.cssRules;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$.$appendRule](...args) {
      return this.appendRule.apply(this, args);
    }
    [S$.$deleteRule](...args) {
      return this.deleteRule.apply(this, args);
    }
    [S$.$findRule](...args) {
      return this.findRule.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssKeyframesRule);
  dart.addTypeCaches(html$.CssKeyframesRule);
  dart.setMethodSignature(html$.CssKeyframesRule, () => ({
    __proto__: dart.getMethods(html$.CssKeyframesRule.__proto__),
    [S$.__getter__]: dart.fnType(html$.CssKeyframeRule, [core.int]),
    [S$.$appendRule]: dart.fnType(dart.void, [core.String]),
    [S$.$deleteRule]: dart.fnType(dart.void, [core.String]),
    [S$.$findRule]: dart.fnType(dart.nullable(html$.CssKeyframeRule), [core.String])
  }));
  dart.setGetterSignature(html$.CssKeyframesRule, () => ({
    __proto__: dart.getGetters(html$.CssKeyframesRule.__proto__),
    [S$.$cssRules]: dart.nullable(core.List$(html$.CssRule)),
    [$name]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.CssKeyframesRule, () => ({
    __proto__: dart.getSetters(html$.CssKeyframesRule.__proto__),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssKeyframesRule, I[148]);
  dart.registerExtension("CSSKeyframesRule", html$.CssKeyframesRule);
  dart.registerExtension("MozCSSKeyframesRule", html$.CssKeyframesRule);
  dart.registerExtension("WebKitCSSKeyframesRule", html$.CssKeyframesRule);
  html$.CssKeywordValue = class CssKeywordValue extends html$.CssStyleValue {
    static new(keyword) {
      if (keyword == null) dart.nullFailed(I[147], 3632, 34, "keyword");
      return html$.CssKeywordValue._create_1(keyword);
    }
    static _create_1(keyword) {
      return new CSSKeywordValue(keyword);
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  dart.addTypeTests(html$.CssKeywordValue);
  dart.addTypeCaches(html$.CssKeywordValue);
  dart.setGetterSignature(html$.CssKeywordValue, () => ({
    __proto__: dart.getGetters(html$.CssKeywordValue.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.CssKeywordValue, () => ({
    __proto__: dart.getSetters(html$.CssKeywordValue.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssKeywordValue, I[148]);
  dart.registerExtension("CSSKeywordValue", html$.CssKeywordValue);
  html$.CssTransformComponent = class CssTransformComponent extends _interceptors.Interceptor {
    get [S$.$is2D]() {
      return this.is2D;
    }
    set [S$.$is2D](value) {
      this.is2D = value;
    }
  };
  dart.addTypeTests(html$.CssTransformComponent);
  dart.addTypeCaches(html$.CssTransformComponent);
  dart.setGetterSignature(html$.CssTransformComponent, () => ({
    __proto__: dart.getGetters(html$.CssTransformComponent.__proto__),
    [S$.$is2D]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(html$.CssTransformComponent, () => ({
    __proto__: dart.getSetters(html$.CssTransformComponent.__proto__),
    [S$.$is2D]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.CssTransformComponent, I[148]);
  dart.registerExtension("CSSTransformComponent", html$.CssTransformComponent);
  html$.CssMatrixComponent = class CssMatrixComponent extends html$.CssTransformComponent {
    static new(matrix, options = null) {
      if (matrix == null) dart.nullFailed(I[147], 3653, 48, "matrix");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.CssMatrixComponent._create_1(matrix, options_1);
      }
      return html$.CssMatrixComponent._create_2(matrix);
    }
    static _create_1(matrix, options) {
      return new CSSMatrixComponent(matrix, options);
    }
    static _create_2(matrix) {
      return new CSSMatrixComponent(matrix);
    }
    get [S$.$matrix]() {
      return this.matrix;
    }
    set [S$.$matrix](value) {
      this.matrix = value;
    }
  };
  dart.addTypeTests(html$.CssMatrixComponent);
  dart.addTypeCaches(html$.CssMatrixComponent);
  dart.setGetterSignature(html$.CssMatrixComponent, () => ({
    __proto__: dart.getGetters(html$.CssMatrixComponent.__proto__),
    [S$.$matrix]: dart.nullable(html$.DomMatrix)
  }));
  dart.setSetterSignature(html$.CssMatrixComponent, () => ({
    __proto__: dart.getSetters(html$.CssMatrixComponent.__proto__),
    [S$.$matrix]: dart.nullable(html$.DomMatrix)
  }));
  dart.setLibraryUri(html$.CssMatrixComponent, I[148]);
  dart.registerExtension("CSSMatrixComponent", html$.CssMatrixComponent);
  html$.CssMediaRule = class CssMediaRule extends html$.CssConditionRule {
    get [S$.$media]() {
      return this.media;
    }
  };
  dart.addTypeTests(html$.CssMediaRule);
  dart.addTypeCaches(html$.CssMediaRule);
  dart.setGetterSignature(html$.CssMediaRule, () => ({
    __proto__: dart.getGetters(html$.CssMediaRule.__proto__),
    [S$.$media]: dart.nullable(html$.MediaList)
  }));
  dart.setLibraryUri(html$.CssMediaRule, I[148]);
  dart.registerExtension("CSSMediaRule", html$.CssMediaRule);
  html$.CssNamespaceRule = class CssNamespaceRule extends html$.CssRule {
    get [S.$namespaceUri]() {
      return this.namespaceURI;
    }
    get [S$.$prefix]() {
      return this.prefix;
    }
  };
  dart.addTypeTests(html$.CssNamespaceRule);
  dart.addTypeCaches(html$.CssNamespaceRule);
  dart.setGetterSignature(html$.CssNamespaceRule, () => ({
    __proto__: dart.getGetters(html$.CssNamespaceRule.__proto__),
    [S.$namespaceUri]: dart.nullable(core.String),
    [S$.$prefix]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssNamespaceRule, I[148]);
  dart.registerExtension("CSSNamespaceRule", html$.CssNamespaceRule);
  html$.CssNumericValue = class CssNumericValue extends html$.CssStyleValue {
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [S$.$div](...args) {
      return this.div.apply(this, args);
    }
    [S$.$mul](...args) {
      return this.mul.apply(this, args);
    }
    [S$.$sub](...args) {
      return this.sub.apply(this, args);
    }
    [S$.$to](...args) {
      return this.to.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssNumericValue);
  dart.addTypeCaches(html$.CssNumericValue);
  dart.setMethodSignature(html$.CssNumericValue, () => ({
    __proto__: dart.getMethods(html$.CssNumericValue.__proto__),
    [$add]: dart.fnType(html$.CssNumericValue, [html$.CssNumericValue]),
    [S$.$div]: dart.fnType(html$.CssNumericValue, [core.num]),
    [S$.$mul]: dart.fnType(html$.CssNumericValue, [core.num]),
    [S$.$sub]: dart.fnType(html$.CssNumericValue, [html$.CssNumericValue]),
    [S$.$to]: dart.fnType(html$.CssNumericValue, [core.String])
  }));
  dart.setLibraryUri(html$.CssNumericValue, I[148]);
  dart.registerExtension("CSSNumericValue", html$.CssNumericValue);
  html$.CssPageRule = class CssPageRule extends html$.CssRule {
    get [S$.$selectorText]() {
      return this.selectorText;
    }
    set [S$.$selectorText](value) {
      this.selectorText = value;
    }
    get [S.$style]() {
      return this.style;
    }
  };
  dart.addTypeTests(html$.CssPageRule);
  dart.addTypeCaches(html$.CssPageRule);
  dart.setGetterSignature(html$.CssPageRule, () => ({
    __proto__: dart.getGetters(html$.CssPageRule.__proto__),
    [S$.$selectorText]: dart.nullable(core.String),
    [S.$style]: dart.nullable(html$.CssStyleDeclaration)
  }));
  dart.setSetterSignature(html$.CssPageRule, () => ({
    __proto__: dart.getSetters(html$.CssPageRule.__proto__),
    [S$.$selectorText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssPageRule, I[148]);
  dart.registerExtension("CSSPageRule", html$.CssPageRule);
  html$.CssPerspective = class CssPerspective extends html$.CssTransformComponent {
    static new(length) {
      if (length == null) dart.nullFailed(I[147], 3749, 42, "length");
      return html$.CssPerspective._create_1(length);
    }
    static _create_1(length) {
      return new CSSPerspective(length);
    }
    get [$length]() {
      return this.length;
    }
    set [$length](value) {
      this.length = value;
    }
  };
  dart.addTypeTests(html$.CssPerspective);
  dart.addTypeCaches(html$.CssPerspective);
  dart.setGetterSignature(html$.CssPerspective, () => ({
    __proto__: dart.getGetters(html$.CssPerspective.__proto__),
    [$length]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setSetterSignature(html$.CssPerspective, () => ({
    __proto__: dart.getSetters(html$.CssPerspective.__proto__),
    [$length]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setLibraryUri(html$.CssPerspective, I[148]);
  dart.registerExtension("CSSPerspective", html$.CssPerspective);
  html$.CssPositionValue = class CssPositionValue extends html$.CssStyleValue {
    static new(x, y) {
      if (x == null) dart.nullFailed(I[147], 3770, 44, "x");
      if (y == null) dart.nullFailed(I[147], 3770, 63, "y");
      return html$.CssPositionValue._create_1(x, y);
    }
    static _create_1(x, y) {
      return new CSSPositionValue(x, y);
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
  };
  dart.addTypeTests(html$.CssPositionValue);
  dart.addTypeCaches(html$.CssPositionValue);
  dart.setGetterSignature(html$.CssPositionValue, () => ({
    __proto__: dart.getGetters(html$.CssPositionValue.__proto__),
    [S$.$x]: dart.nullable(html$.CssNumericValue),
    [S$.$y]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setSetterSignature(html$.CssPositionValue, () => ({
    __proto__: dart.getSetters(html$.CssPositionValue.__proto__),
    [S$.$x]: dart.nullable(html$.CssNumericValue),
    [S$.$y]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setLibraryUri(html$.CssPositionValue, I[148]);
  dart.registerExtension("CSSPositionValue", html$.CssPositionValue);
  html$.CssRotation = class CssRotation extends html$.CssTransformComponent {
    static new(angleValue_OR_x, y = null, z = null, angle = null) {
      if (html$.CssNumericValue.is(angleValue_OR_x) && y == null && z == null && angle == null) {
        return html$.CssRotation._create_1(angleValue_OR_x);
      }
      if (html$.CssNumericValue.is(angle) && typeof z == 'number' && typeof y == 'number' && typeof angleValue_OR_x == 'number') {
        return html$.CssRotation._create_2(angleValue_OR_x, y, z, angle);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(angleValue_OR_x) {
      return new CSSRotation(angleValue_OR_x);
    }
    static _create_2(angleValue_OR_x, y, z, angle) {
      return new CSSRotation(angleValue_OR_x, y, z, angle);
    }
    get [S$.$angle]() {
      return this.angle;
    }
    set [S$.$angle](value) {
      this.angle = value;
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
    get [S$.$z]() {
      return this.z;
    }
    set [S$.$z](value) {
      this.z = value;
    }
  };
  dart.addTypeTests(html$.CssRotation);
  dart.addTypeCaches(html$.CssRotation);
  dart.setGetterSignature(html$.CssRotation, () => ({
    __proto__: dart.getGetters(html$.CssRotation.__proto__),
    [S$.$angle]: dart.nullable(html$.CssNumericValue),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.CssRotation, () => ({
    __proto__: dart.getSetters(html$.CssRotation.__proto__),
    [S$.$angle]: dart.nullable(html$.CssNumericValue),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.CssRotation, I[148]);
  dart.registerExtension("CSSRotation", html$.CssRotation);
  html$.CssScale = class CssScale extends html$.CssTransformComponent {
    static new(x, y, z = null) {
      if (x == null) dart.nullFailed(I[147], 3899, 24, "x");
      if (y == null) dart.nullFailed(I[147], 3899, 31, "y");
      if (typeof y == 'number' && typeof x == 'number' && z == null) {
        return html$.CssScale._create_1(x, y);
      }
      if (typeof z == 'number' && typeof y == 'number' && typeof x == 'number') {
        return html$.CssScale._create_2(x, y, z);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(x, y) {
      return new CSSScale(x, y);
    }
    static _create_2(x, y, z) {
      return new CSSScale(x, y, z);
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
    get [S$.$z]() {
      return this.z;
    }
    set [S$.$z](value) {
      this.z = value;
    }
  };
  dart.addTypeTests(html$.CssScale);
  dart.addTypeCaches(html$.CssScale);
  dart.setGetterSignature(html$.CssScale, () => ({
    __proto__: dart.getGetters(html$.CssScale.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.CssScale, () => ({
    __proto__: dart.getSetters(html$.CssScale.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.CssScale, I[148]);
  dart.registerExtension("CSSScale", html$.CssScale);
  html$.CssSkew = class CssSkew extends html$.CssTransformComponent {
    static new(ax, ay) {
      if (ax == null) dart.nullFailed(I[147], 3935, 35, "ax");
      if (ay == null) dart.nullFailed(I[147], 3935, 55, "ay");
      return html$.CssSkew._create_1(ax, ay);
    }
    static _create_1(ax, ay) {
      return new CSSSkew(ax, ay);
    }
    get [S$.$ax]() {
      return this.ax;
    }
    set [S$.$ax](value) {
      this.ax = value;
    }
    get [S$.$ay]() {
      return this.ay;
    }
    set [S$.$ay](value) {
      this.ay = value;
    }
  };
  dart.addTypeTests(html$.CssSkew);
  dart.addTypeCaches(html$.CssSkew);
  dart.setGetterSignature(html$.CssSkew, () => ({
    __proto__: dart.getGetters(html$.CssSkew.__proto__),
    [S$.$ax]: dart.nullable(html$.CssNumericValue),
    [S$.$ay]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setSetterSignature(html$.CssSkew, () => ({
    __proto__: dart.getSetters(html$.CssSkew.__proto__),
    [S$.$ax]: dart.nullable(html$.CssNumericValue),
    [S$.$ay]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setLibraryUri(html$.CssSkew, I[148]);
  dart.registerExtension("CSSSkew", html$.CssSkew);
  html$.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
    get alignContent() {
      return this[S$.$getPropertyValue]("align-content");
    }
    set alignContent(value) {
      if (value == null) dart.nullFailed(I[147], 5921, 27, "value");
      this[S$.$setProperty]("align-content", value, "");
    }
    get alignItems() {
      return this[S$.$getPropertyValue]("align-items");
    }
    set alignItems(value) {
      if (value == null) dart.nullFailed(I[147], 5929, 25, "value");
      this[S$.$setProperty]("align-items", value, "");
    }
    get alignSelf() {
      return this[S$.$getPropertyValue]("align-self");
    }
    set alignSelf(value) {
      if (value == null) dart.nullFailed(I[147], 5937, 24, "value");
      this[S$.$setProperty]("align-self", value, "");
    }
    get animation() {
      return this[S$.$getPropertyValue]("animation");
    }
    set animation(value) {
      if (value == null) dart.nullFailed(I[147], 5945, 24, "value");
      this[S$.$setProperty]("animation", value, "");
    }
    get animationDelay() {
      return this[S$.$getPropertyValue]("animation-delay");
    }
    set animationDelay(value) {
      if (value == null) dart.nullFailed(I[147], 5953, 29, "value");
      this[S$.$setProperty]("animation-delay", value, "");
    }
    get animationDirection() {
      return this[S$.$getPropertyValue]("animation-direction");
    }
    set animationDirection(value) {
      if (value == null) dart.nullFailed(I[147], 5961, 33, "value");
      this[S$.$setProperty]("animation-direction", value, "");
    }
    get animationDuration() {
      return this[S$.$getPropertyValue]("animation-duration");
    }
    set animationDuration(value) {
      if (value == null) dart.nullFailed(I[147], 5969, 32, "value");
      this[S$.$setProperty]("animation-duration", value, "");
    }
    get animationFillMode() {
      return this[S$.$getPropertyValue]("animation-fill-mode");
    }
    set animationFillMode(value) {
      if (value == null) dart.nullFailed(I[147], 5977, 32, "value");
      this[S$.$setProperty]("animation-fill-mode", value, "");
    }
    get animationIterationCount() {
      return this[S$.$getPropertyValue]("animation-iteration-count");
    }
    set animationIterationCount(value) {
      if (value == null) dart.nullFailed(I[147], 5986, 38, "value");
      this[S$.$setProperty]("animation-iteration-count", value, "");
    }
    get animationName() {
      return this[S$.$getPropertyValue]("animation-name");
    }
    set animationName(value) {
      if (value == null) dart.nullFailed(I[147], 5994, 28, "value");
      this[S$.$setProperty]("animation-name", value, "");
    }
    get animationPlayState() {
      return this[S$.$getPropertyValue]("animation-play-state");
    }
    set animationPlayState(value) {
      if (value == null) dart.nullFailed(I[147], 6002, 33, "value");
      this[S$.$setProperty]("animation-play-state", value, "");
    }
    get animationTimingFunction() {
      return this[S$.$getPropertyValue]("animation-timing-function");
    }
    set animationTimingFunction(value) {
      if (value == null) dart.nullFailed(I[147], 6011, 38, "value");
      this[S$.$setProperty]("animation-timing-function", value, "");
    }
    get appRegion() {
      return this[S$.$getPropertyValue]("app-region");
    }
    set appRegion(value) {
      if (value == null) dart.nullFailed(I[147], 6019, 24, "value");
      this[S$.$setProperty]("app-region", value, "");
    }
    get appearance() {
      return this[S$.$getPropertyValue]("appearance");
    }
    set appearance(value) {
      if (value == null) dart.nullFailed(I[147], 6027, 25, "value");
      this[S$.$setProperty]("appearance", value, "");
    }
    get aspectRatio() {
      return this[S$.$getPropertyValue]("aspect-ratio");
    }
    set aspectRatio(value) {
      if (value == null) dart.nullFailed(I[147], 6035, 26, "value");
      this[S$.$setProperty]("aspect-ratio", value, "");
    }
    get backfaceVisibility() {
      return this[S$.$getPropertyValue]("backface-visibility");
    }
    set backfaceVisibility(value) {
      if (value == null) dart.nullFailed(I[147], 6043, 33, "value");
      this[S$.$setProperty]("backface-visibility", value, "");
    }
    get background() {
      return this[S$.$getPropertyValue]("background");
    }
    set background(value) {
      if (value == null) dart.nullFailed(I[147], 6051, 25, "value");
      this[S$.$setProperty]("background", value, "");
    }
    get backgroundAttachment() {
      return this[S$.$getPropertyValue]("background-attachment");
    }
    set backgroundAttachment(value) {
      if (value == null) dart.nullFailed(I[147], 6059, 35, "value");
      this[S$.$setProperty]("background-attachment", value, "");
    }
    get backgroundBlendMode() {
      return this[S$.$getPropertyValue]("background-blend-mode");
    }
    set backgroundBlendMode(value) {
      if (value == null) dart.nullFailed(I[147], 6067, 34, "value");
      this[S$.$setProperty]("background-blend-mode", value, "");
    }
    get backgroundClip() {
      return this[S$.$getPropertyValue]("background-clip");
    }
    set backgroundClip(value) {
      if (value == null) dart.nullFailed(I[147], 6075, 29, "value");
      this[S$.$setProperty]("background-clip", value, "");
    }
    get backgroundColor() {
      return this[S$.$getPropertyValue]("background-color");
    }
    set backgroundColor(value) {
      if (value == null) dart.nullFailed(I[147], 6083, 30, "value");
      this[S$.$setProperty]("background-color", value, "");
    }
    get backgroundComposite() {
      return this[S$.$getPropertyValue]("background-composite");
    }
    set backgroundComposite(value) {
      if (value == null) dart.nullFailed(I[147], 6091, 34, "value");
      this[S$.$setProperty]("background-composite", value, "");
    }
    get backgroundImage() {
      return this[S$.$getPropertyValue]("background-image");
    }
    set backgroundImage(value) {
      if (value == null) dart.nullFailed(I[147], 6099, 30, "value");
      this[S$.$setProperty]("background-image", value, "");
    }
    get backgroundOrigin() {
      return this[S$.$getPropertyValue]("background-origin");
    }
    set backgroundOrigin(value) {
      if (value == null) dart.nullFailed(I[147], 6107, 31, "value");
      this[S$.$setProperty]("background-origin", value, "");
    }
    get backgroundPosition() {
      return this[S$.$getPropertyValue]("background-position");
    }
    set backgroundPosition(value) {
      if (value == null) dart.nullFailed(I[147], 6115, 33, "value");
      this[S$.$setProperty]("background-position", value, "");
    }
    get backgroundPositionX() {
      return this[S$.$getPropertyValue]("background-position-x");
    }
    set backgroundPositionX(value) {
      if (value == null) dart.nullFailed(I[147], 6123, 34, "value");
      this[S$.$setProperty]("background-position-x", value, "");
    }
    get backgroundPositionY() {
      return this[S$.$getPropertyValue]("background-position-y");
    }
    set backgroundPositionY(value) {
      if (value == null) dart.nullFailed(I[147], 6131, 34, "value");
      this[S$.$setProperty]("background-position-y", value, "");
    }
    get backgroundRepeat() {
      return this[S$.$getPropertyValue]("background-repeat");
    }
    set backgroundRepeat(value) {
      if (value == null) dart.nullFailed(I[147], 6139, 31, "value");
      this[S$.$setProperty]("background-repeat", value, "");
    }
    get backgroundRepeatX() {
      return this[S$.$getPropertyValue]("background-repeat-x");
    }
    set backgroundRepeatX(value) {
      if (value == null) dart.nullFailed(I[147], 6147, 32, "value");
      this[S$.$setProperty]("background-repeat-x", value, "");
    }
    get backgroundRepeatY() {
      return this[S$.$getPropertyValue]("background-repeat-y");
    }
    set backgroundRepeatY(value) {
      if (value == null) dart.nullFailed(I[147], 6155, 32, "value");
      this[S$.$setProperty]("background-repeat-y", value, "");
    }
    get backgroundSize() {
      return this[S$.$getPropertyValue]("background-size");
    }
    set backgroundSize(value) {
      if (value == null) dart.nullFailed(I[147], 6163, 29, "value");
      this[S$.$setProperty]("background-size", value, "");
    }
    get border() {
      return this[S$.$getPropertyValue]("border");
    }
    set border(value) {
      if (value == null) dart.nullFailed(I[147], 6171, 21, "value");
      this[S$.$setProperty]("border", value, "");
    }
    get borderAfter() {
      return this[S$.$getPropertyValue]("border-after");
    }
    set borderAfter(value) {
      if (value == null) dart.nullFailed(I[147], 6179, 26, "value");
      this[S$.$setProperty]("border-after", value, "");
    }
    get borderAfterColor() {
      return this[S$.$getPropertyValue]("border-after-color");
    }
    set borderAfterColor(value) {
      if (value == null) dart.nullFailed(I[147], 6187, 31, "value");
      this[S$.$setProperty]("border-after-color", value, "");
    }
    get borderAfterStyle() {
      return this[S$.$getPropertyValue]("border-after-style");
    }
    set borderAfterStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6195, 31, "value");
      this[S$.$setProperty]("border-after-style", value, "");
    }
    get borderAfterWidth() {
      return this[S$.$getPropertyValue]("border-after-width");
    }
    set borderAfterWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6203, 31, "value");
      this[S$.$setProperty]("border-after-width", value, "");
    }
    get borderBefore() {
      return this[S$.$getPropertyValue]("border-before");
    }
    set borderBefore(value) {
      if (value == null) dart.nullFailed(I[147], 6211, 27, "value");
      this[S$.$setProperty]("border-before", value, "");
    }
    get borderBeforeColor() {
      return this[S$.$getPropertyValue]("border-before-color");
    }
    set borderBeforeColor(value) {
      if (value == null) dart.nullFailed(I[147], 6219, 32, "value");
      this[S$.$setProperty]("border-before-color", value, "");
    }
    get borderBeforeStyle() {
      return this[S$.$getPropertyValue]("border-before-style");
    }
    set borderBeforeStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6227, 32, "value");
      this[S$.$setProperty]("border-before-style", value, "");
    }
    get borderBeforeWidth() {
      return this[S$.$getPropertyValue]("border-before-width");
    }
    set borderBeforeWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6235, 32, "value");
      this[S$.$setProperty]("border-before-width", value, "");
    }
    get borderBottom() {
      return this[S$.$getPropertyValue]("border-bottom");
    }
    set borderBottom(value) {
      if (value == null) dart.nullFailed(I[147], 6243, 27, "value");
      this[S$.$setProperty]("border-bottom", value, "");
    }
    get borderBottomColor() {
      return this[S$.$getPropertyValue]("border-bottom-color");
    }
    set borderBottomColor(value) {
      if (value == null) dart.nullFailed(I[147], 6251, 32, "value");
      this[S$.$setProperty]("border-bottom-color", value, "");
    }
    get borderBottomLeftRadius() {
      return this[S$.$getPropertyValue]("border-bottom-left-radius");
    }
    set borderBottomLeftRadius(value) {
      if (value == null) dart.nullFailed(I[147], 6260, 37, "value");
      this[S$.$setProperty]("border-bottom-left-radius", value, "");
    }
    get borderBottomRightRadius() {
      return this[S$.$getPropertyValue]("border-bottom-right-radius");
    }
    set borderBottomRightRadius(value) {
      if (value == null) dart.nullFailed(I[147], 6269, 38, "value");
      this[S$.$setProperty]("border-bottom-right-radius", value, "");
    }
    get borderBottomStyle() {
      return this[S$.$getPropertyValue]("border-bottom-style");
    }
    set borderBottomStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6277, 32, "value");
      this[S$.$setProperty]("border-bottom-style", value, "");
    }
    get borderBottomWidth() {
      return this[S$.$getPropertyValue]("border-bottom-width");
    }
    set borderBottomWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6285, 32, "value");
      this[S$.$setProperty]("border-bottom-width", value, "");
    }
    get borderCollapse() {
      return this[S$.$getPropertyValue]("border-collapse");
    }
    set borderCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 6293, 29, "value");
      this[S$.$setProperty]("border-collapse", value, "");
    }
    get borderColor() {
      return this[S$.$getPropertyValue]("border-color");
    }
    set borderColor(value) {
      if (value == null) dart.nullFailed(I[147], 6301, 26, "value");
      this[S$.$setProperty]("border-color", value, "");
    }
    get borderEnd() {
      return this[S$.$getPropertyValue]("border-end");
    }
    set borderEnd(value) {
      if (value == null) dart.nullFailed(I[147], 6309, 24, "value");
      this[S$.$setProperty]("border-end", value, "");
    }
    get borderEndColor() {
      return this[S$.$getPropertyValue]("border-end-color");
    }
    set borderEndColor(value) {
      if (value == null) dart.nullFailed(I[147], 6317, 29, "value");
      this[S$.$setProperty]("border-end-color", value, "");
    }
    get borderEndStyle() {
      return this[S$.$getPropertyValue]("border-end-style");
    }
    set borderEndStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6325, 29, "value");
      this[S$.$setProperty]("border-end-style", value, "");
    }
    get borderEndWidth() {
      return this[S$.$getPropertyValue]("border-end-width");
    }
    set borderEndWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6333, 29, "value");
      this[S$.$setProperty]("border-end-width", value, "");
    }
    get borderFit() {
      return this[S$.$getPropertyValue]("border-fit");
    }
    set borderFit(value) {
      if (value == null) dart.nullFailed(I[147], 6341, 24, "value");
      this[S$.$setProperty]("border-fit", value, "");
    }
    get borderHorizontalSpacing() {
      return this[S$.$getPropertyValue]("border-horizontal-spacing");
    }
    set borderHorizontalSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 6350, 38, "value");
      this[S$.$setProperty]("border-horizontal-spacing", value, "");
    }
    get borderImage() {
      return this[S$.$getPropertyValue]("border-image");
    }
    set borderImage(value) {
      if (value == null) dart.nullFailed(I[147], 6358, 26, "value");
      this[S$.$setProperty]("border-image", value, "");
    }
    get borderImageOutset() {
      return this[S$.$getPropertyValue]("border-image-outset");
    }
    set borderImageOutset(value) {
      if (value == null) dart.nullFailed(I[147], 6366, 32, "value");
      this[S$.$setProperty]("border-image-outset", value, "");
    }
    get borderImageRepeat() {
      return this[S$.$getPropertyValue]("border-image-repeat");
    }
    set borderImageRepeat(value) {
      if (value == null) dart.nullFailed(I[147], 6374, 32, "value");
      this[S$.$setProperty]("border-image-repeat", value, "");
    }
    get borderImageSlice() {
      return this[S$.$getPropertyValue]("border-image-slice");
    }
    set borderImageSlice(value) {
      if (value == null) dart.nullFailed(I[147], 6382, 31, "value");
      this[S$.$setProperty]("border-image-slice", value, "");
    }
    get borderImageSource() {
      return this[S$.$getPropertyValue]("border-image-source");
    }
    set borderImageSource(value) {
      if (value == null) dart.nullFailed(I[147], 6390, 32, "value");
      this[S$.$setProperty]("border-image-source", value, "");
    }
    get borderImageWidth() {
      return this[S$.$getPropertyValue]("border-image-width");
    }
    set borderImageWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6398, 31, "value");
      this[S$.$setProperty]("border-image-width", value, "");
    }
    get borderLeft() {
      return this[S$.$getPropertyValue]("border-left");
    }
    set borderLeft(value) {
      if (value == null) dart.nullFailed(I[147], 6406, 25, "value");
      this[S$.$setProperty]("border-left", value, "");
    }
    get borderLeftColor() {
      return this[S$.$getPropertyValue]("border-left-color");
    }
    set borderLeftColor(value) {
      if (value == null) dart.nullFailed(I[147], 6414, 30, "value");
      this[S$.$setProperty]("border-left-color", value, "");
    }
    get borderLeftStyle() {
      return this[S$.$getPropertyValue]("border-left-style");
    }
    set borderLeftStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6422, 30, "value");
      this[S$.$setProperty]("border-left-style", value, "");
    }
    get borderLeftWidth() {
      return this[S$.$getPropertyValue]("border-left-width");
    }
    set borderLeftWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6430, 30, "value");
      this[S$.$setProperty]("border-left-width", value, "");
    }
    get borderRadius() {
      return this[S$.$getPropertyValue]("border-radius");
    }
    set borderRadius(value) {
      if (value == null) dart.nullFailed(I[147], 6438, 27, "value");
      this[S$.$setProperty]("border-radius", value, "");
    }
    get borderRight() {
      return this[S$.$getPropertyValue]("border-right");
    }
    set borderRight(value) {
      if (value == null) dart.nullFailed(I[147], 6446, 26, "value");
      this[S$.$setProperty]("border-right", value, "");
    }
    get borderRightColor() {
      return this[S$.$getPropertyValue]("border-right-color");
    }
    set borderRightColor(value) {
      if (value == null) dart.nullFailed(I[147], 6454, 31, "value");
      this[S$.$setProperty]("border-right-color", value, "");
    }
    get borderRightStyle() {
      return this[S$.$getPropertyValue]("border-right-style");
    }
    set borderRightStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6462, 31, "value");
      this[S$.$setProperty]("border-right-style", value, "");
    }
    get borderRightWidth() {
      return this[S$.$getPropertyValue]("border-right-width");
    }
    set borderRightWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6470, 31, "value");
      this[S$.$setProperty]("border-right-width", value, "");
    }
    get borderSpacing() {
      return this[S$.$getPropertyValue]("border-spacing");
    }
    set borderSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 6478, 28, "value");
      this[S$.$setProperty]("border-spacing", value, "");
    }
    get borderStart() {
      return this[S$.$getPropertyValue]("border-start");
    }
    set borderStart(value) {
      if (value == null) dart.nullFailed(I[147], 6486, 26, "value");
      this[S$.$setProperty]("border-start", value, "");
    }
    get borderStartColor() {
      return this[S$.$getPropertyValue]("border-start-color");
    }
    set borderStartColor(value) {
      if (value == null) dart.nullFailed(I[147], 6494, 31, "value");
      this[S$.$setProperty]("border-start-color", value, "");
    }
    get borderStartStyle() {
      return this[S$.$getPropertyValue]("border-start-style");
    }
    set borderStartStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6502, 31, "value");
      this[S$.$setProperty]("border-start-style", value, "");
    }
    get borderStartWidth() {
      return this[S$.$getPropertyValue]("border-start-width");
    }
    set borderStartWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6510, 31, "value");
      this[S$.$setProperty]("border-start-width", value, "");
    }
    get borderStyle() {
      return this[S$.$getPropertyValue]("border-style");
    }
    set borderStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6518, 26, "value");
      this[S$.$setProperty]("border-style", value, "");
    }
    get borderTop() {
      return this[S$.$getPropertyValue]("border-top");
    }
    set borderTop(value) {
      if (value == null) dart.nullFailed(I[147], 6526, 24, "value");
      this[S$.$setProperty]("border-top", value, "");
    }
    get borderTopColor() {
      return this[S$.$getPropertyValue]("border-top-color");
    }
    set borderTopColor(value) {
      if (value == null) dart.nullFailed(I[147], 6534, 29, "value");
      this[S$.$setProperty]("border-top-color", value, "");
    }
    get borderTopLeftRadius() {
      return this[S$.$getPropertyValue]("border-top-left-radius");
    }
    set borderTopLeftRadius(value) {
      if (value == null) dart.nullFailed(I[147], 6542, 34, "value");
      this[S$.$setProperty]("border-top-left-radius", value, "");
    }
    get borderTopRightRadius() {
      return this[S$.$getPropertyValue]("border-top-right-radius");
    }
    set borderTopRightRadius(value) {
      if (value == null) dart.nullFailed(I[147], 6551, 35, "value");
      this[S$.$setProperty]("border-top-right-radius", value, "");
    }
    get borderTopStyle() {
      return this[S$.$getPropertyValue]("border-top-style");
    }
    set borderTopStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6559, 29, "value");
      this[S$.$setProperty]("border-top-style", value, "");
    }
    get borderTopWidth() {
      return this[S$.$getPropertyValue]("border-top-width");
    }
    set borderTopWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6567, 29, "value");
      this[S$.$setProperty]("border-top-width", value, "");
    }
    get borderVerticalSpacing() {
      return this[S$.$getPropertyValue]("border-vertical-spacing");
    }
    set borderVerticalSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 6576, 36, "value");
      this[S$.$setProperty]("border-vertical-spacing", value, "");
    }
    get borderWidth() {
      return this[S$.$getPropertyValue]("border-width");
    }
    set borderWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6584, 26, "value");
      this[S$.$setProperty]("border-width", value, "");
    }
    get bottom() {
      return this[S$.$getPropertyValue]("bottom");
    }
    set bottom(value) {
      if (value == null) dart.nullFailed(I[147], 6592, 21, "value");
      this[S$.$setProperty]("bottom", value, "");
    }
    get boxAlign() {
      return this[S$.$getPropertyValue]("box-align");
    }
    set boxAlign(value) {
      if (value == null) dart.nullFailed(I[147], 6600, 23, "value");
      this[S$.$setProperty]("box-align", value, "");
    }
    get boxDecorationBreak() {
      return this[S$.$getPropertyValue]("box-decoration-break");
    }
    set boxDecorationBreak(value) {
      if (value == null) dart.nullFailed(I[147], 6608, 33, "value");
      this[S$.$setProperty]("box-decoration-break", value, "");
    }
    get boxDirection() {
      return this[S$.$getPropertyValue]("box-direction");
    }
    set boxDirection(value) {
      if (value == null) dart.nullFailed(I[147], 6616, 27, "value");
      this[S$.$setProperty]("box-direction", value, "");
    }
    get boxFlex() {
      return this[S$.$getPropertyValue]("box-flex");
    }
    set boxFlex(value) {
      if (value == null) dart.nullFailed(I[147], 6624, 22, "value");
      this[S$.$setProperty]("box-flex", value, "");
    }
    get boxFlexGroup() {
      return this[S$.$getPropertyValue]("box-flex-group");
    }
    set boxFlexGroup(value) {
      if (value == null) dart.nullFailed(I[147], 6632, 27, "value");
      this[S$.$setProperty]("box-flex-group", value, "");
    }
    get boxLines() {
      return this[S$.$getPropertyValue]("box-lines");
    }
    set boxLines(value) {
      if (value == null) dart.nullFailed(I[147], 6640, 23, "value");
      this[S$.$setProperty]("box-lines", value, "");
    }
    get boxOrdinalGroup() {
      return this[S$.$getPropertyValue]("box-ordinal-group");
    }
    set boxOrdinalGroup(value) {
      if (value == null) dart.nullFailed(I[147], 6648, 30, "value");
      this[S$.$setProperty]("box-ordinal-group", value, "");
    }
    get boxOrient() {
      return this[S$.$getPropertyValue]("box-orient");
    }
    set boxOrient(value) {
      if (value == null) dart.nullFailed(I[147], 6656, 24, "value");
      this[S$.$setProperty]("box-orient", value, "");
    }
    get boxPack() {
      return this[S$.$getPropertyValue]("box-pack");
    }
    set boxPack(value) {
      if (value == null) dart.nullFailed(I[147], 6664, 22, "value");
      this[S$.$setProperty]("box-pack", value, "");
    }
    get boxReflect() {
      return this[S$.$getPropertyValue]("box-reflect");
    }
    set boxReflect(value) {
      if (value == null) dart.nullFailed(I[147], 6672, 25, "value");
      this[S$.$setProperty]("box-reflect", value, "");
    }
    get boxShadow() {
      return this[S$.$getPropertyValue]("box-shadow");
    }
    set boxShadow(value) {
      if (value == null) dart.nullFailed(I[147], 6680, 24, "value");
      this[S$.$setProperty]("box-shadow", value, "");
    }
    get boxSizing() {
      return this[S$.$getPropertyValue]("box-sizing");
    }
    set boxSizing(value) {
      if (value == null) dart.nullFailed(I[147], 6688, 24, "value");
      this[S$.$setProperty]("box-sizing", value, "");
    }
    get captionSide() {
      return this[S$.$getPropertyValue]("caption-side");
    }
    set captionSide(value) {
      if (value == null) dart.nullFailed(I[147], 6696, 26, "value");
      this[S$.$setProperty]("caption-side", value, "");
    }
    get clear() {
      return this[S$.$getPropertyValue]("clear");
    }
    set clear(value) {
      if (value == null) dart.nullFailed(I[147], 6704, 20, "value");
      this[S$.$setProperty]("clear", value, "");
    }
    get clip() {
      return this[S$.$getPropertyValue]("clip");
    }
    set clip(value) {
      if (value == null) dart.nullFailed(I[147], 6712, 19, "value");
      this[S$.$setProperty]("clip", value, "");
    }
    get clipPath() {
      return this[S$.$getPropertyValue]("clip-path");
    }
    set clipPath(value) {
      if (value == null) dart.nullFailed(I[147], 6720, 23, "value");
      this[S$.$setProperty]("clip-path", value, "");
    }
    get color() {
      return this[S$.$getPropertyValue]("color");
    }
    set color(value) {
      if (value == null) dart.nullFailed(I[147], 6728, 20, "value");
      this[S$.$setProperty]("color", value, "");
    }
    get columnBreakAfter() {
      return this[S$.$getPropertyValue]("column-break-after");
    }
    set columnBreakAfter(value) {
      if (value == null) dart.nullFailed(I[147], 6736, 31, "value");
      this[S$.$setProperty]("column-break-after", value, "");
    }
    get columnBreakBefore() {
      return this[S$.$getPropertyValue]("column-break-before");
    }
    set columnBreakBefore(value) {
      if (value == null) dart.nullFailed(I[147], 6744, 32, "value");
      this[S$.$setProperty]("column-break-before", value, "");
    }
    get columnBreakInside() {
      return this[S$.$getPropertyValue]("column-break-inside");
    }
    set columnBreakInside(value) {
      if (value == null) dart.nullFailed(I[147], 6752, 32, "value");
      this[S$.$setProperty]("column-break-inside", value, "");
    }
    get columnCount() {
      return this[S$.$getPropertyValue]("column-count");
    }
    set columnCount(value) {
      if (value == null) dart.nullFailed(I[147], 6760, 26, "value");
      this[S$.$setProperty]("column-count", value, "");
    }
    get columnFill() {
      return this[S$.$getPropertyValue]("column-fill");
    }
    set columnFill(value) {
      if (value == null) dart.nullFailed(I[147], 6768, 25, "value");
      this[S$.$setProperty]("column-fill", value, "");
    }
    get columnGap() {
      return this[S$.$getPropertyValue]("column-gap");
    }
    set columnGap(value) {
      if (value == null) dart.nullFailed(I[147], 6776, 24, "value");
      this[S$.$setProperty]("column-gap", value, "");
    }
    get columnRule() {
      return this[S$.$getPropertyValue]("column-rule");
    }
    set columnRule(value) {
      if (value == null) dart.nullFailed(I[147], 6784, 25, "value");
      this[S$.$setProperty]("column-rule", value, "");
    }
    get columnRuleColor() {
      return this[S$.$getPropertyValue]("column-rule-color");
    }
    set columnRuleColor(value) {
      if (value == null) dart.nullFailed(I[147], 6792, 30, "value");
      this[S$.$setProperty]("column-rule-color", value, "");
    }
    get columnRuleStyle() {
      return this[S$.$getPropertyValue]("column-rule-style");
    }
    set columnRuleStyle(value) {
      if (value == null) dart.nullFailed(I[147], 6800, 30, "value");
      this[S$.$setProperty]("column-rule-style", value, "");
    }
    get columnRuleWidth() {
      return this[S$.$getPropertyValue]("column-rule-width");
    }
    set columnRuleWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6808, 30, "value");
      this[S$.$setProperty]("column-rule-width", value, "");
    }
    get columnSpan() {
      return this[S$.$getPropertyValue]("column-span");
    }
    set columnSpan(value) {
      if (value == null) dart.nullFailed(I[147], 6816, 25, "value");
      this[S$.$setProperty]("column-span", value, "");
    }
    get columnWidth() {
      return this[S$.$getPropertyValue]("column-width");
    }
    set columnWidth(value) {
      if (value == null) dart.nullFailed(I[147], 6824, 26, "value");
      this[S$.$setProperty]("column-width", value, "");
    }
    get columns() {
      return this[S$.$getPropertyValue]("columns");
    }
    set columns(value) {
      if (value == null) dart.nullFailed(I[147], 6832, 22, "value");
      this[S$.$setProperty]("columns", value, "");
    }
    get content() {
      return this[S$.$getPropertyValue]("content");
    }
    set content(value) {
      if (value == null) dart.nullFailed(I[147], 6840, 22, "value");
      this[S$.$setProperty]("content", value, "");
    }
    get counterIncrement() {
      return this[S$.$getPropertyValue]("counter-increment");
    }
    set counterIncrement(value) {
      if (value == null) dart.nullFailed(I[147], 6848, 31, "value");
      this[S$.$setProperty]("counter-increment", value, "");
    }
    get counterReset() {
      return this[S$.$getPropertyValue]("counter-reset");
    }
    set counterReset(value) {
      if (value == null) dart.nullFailed(I[147], 6856, 27, "value");
      this[S$.$setProperty]("counter-reset", value, "");
    }
    get cursor() {
      return this[S$.$getPropertyValue]("cursor");
    }
    set cursor(value) {
      if (value == null) dart.nullFailed(I[147], 6864, 21, "value");
      this[S$.$setProperty]("cursor", value, "");
    }
    get direction() {
      return this[S$.$getPropertyValue]("direction");
    }
    set direction(value) {
      if (value == null) dart.nullFailed(I[147], 6872, 24, "value");
      this[S$.$setProperty]("direction", value, "");
    }
    get display() {
      return this[S$.$getPropertyValue]("display");
    }
    set display(value) {
      if (value == null) dart.nullFailed(I[147], 6880, 22, "value");
      this[S$.$setProperty]("display", value, "");
    }
    get emptyCells() {
      return this[S$.$getPropertyValue]("empty-cells");
    }
    set emptyCells(value) {
      if (value == null) dart.nullFailed(I[147], 6888, 25, "value");
      this[S$.$setProperty]("empty-cells", value, "");
    }
    get filter() {
      return this[S$.$getPropertyValue]("filter");
    }
    set filter(value) {
      if (value == null) dart.nullFailed(I[147], 6896, 21, "value");
      this[S$.$setProperty]("filter", value, "");
    }
    get flex() {
      return this[S$.$getPropertyValue]("flex");
    }
    set flex(value) {
      if (value == null) dart.nullFailed(I[147], 6904, 19, "value");
      this[S$.$setProperty]("flex", value, "");
    }
    get flexBasis() {
      return this[S$.$getPropertyValue]("flex-basis");
    }
    set flexBasis(value) {
      if (value == null) dart.nullFailed(I[147], 6912, 24, "value");
      this[S$.$setProperty]("flex-basis", value, "");
    }
    get flexDirection() {
      return this[S$.$getPropertyValue]("flex-direction");
    }
    set flexDirection(value) {
      if (value == null) dart.nullFailed(I[147], 6920, 28, "value");
      this[S$.$setProperty]("flex-direction", value, "");
    }
    get flexFlow() {
      return this[S$.$getPropertyValue]("flex-flow");
    }
    set flexFlow(value) {
      if (value == null) dart.nullFailed(I[147], 6928, 23, "value");
      this[S$.$setProperty]("flex-flow", value, "");
    }
    get flexGrow() {
      return this[S$.$getPropertyValue]("flex-grow");
    }
    set flexGrow(value) {
      if (value == null) dart.nullFailed(I[147], 6936, 23, "value");
      this[S$.$setProperty]("flex-grow", value, "");
    }
    get flexShrink() {
      return this[S$.$getPropertyValue]("flex-shrink");
    }
    set flexShrink(value) {
      if (value == null) dart.nullFailed(I[147], 6944, 25, "value");
      this[S$.$setProperty]("flex-shrink", value, "");
    }
    get flexWrap() {
      return this[S$.$getPropertyValue]("flex-wrap");
    }
    set flexWrap(value) {
      if (value == null) dart.nullFailed(I[147], 6952, 23, "value");
      this[S$.$setProperty]("flex-wrap", value, "");
    }
    get float() {
      return this[S$.$getPropertyValue]("float");
    }
    set float(value) {
      if (value == null) dart.nullFailed(I[147], 6960, 20, "value");
      this[S$.$setProperty]("float", value, "");
    }
    get font() {
      return this[S$.$getPropertyValue]("font");
    }
    set font(value) {
      if (value == null) dart.nullFailed(I[147], 6968, 19, "value");
      this[S$.$setProperty]("font", value, "");
    }
    get fontFamily() {
      return this[S$.$getPropertyValue]("font-family");
    }
    set fontFamily(value) {
      if (value == null) dart.nullFailed(I[147], 6976, 25, "value");
      this[S$.$setProperty]("font-family", value, "");
    }
    get fontFeatureSettings() {
      return this[S$.$getPropertyValue]("font-feature-settings");
    }
    set fontFeatureSettings(value) {
      if (value == null) dart.nullFailed(I[147], 6984, 34, "value");
      this[S$.$setProperty]("font-feature-settings", value, "");
    }
    get fontKerning() {
      return this[S$.$getPropertyValue]("font-kerning");
    }
    set fontKerning(value) {
      if (value == null) dart.nullFailed(I[147], 6992, 26, "value");
      this[S$.$setProperty]("font-kerning", value, "");
    }
    get fontSize() {
      return this[S$.$getPropertyValue]("font-size");
    }
    set fontSize(value) {
      if (value == null) dart.nullFailed(I[147], 7000, 23, "value");
      this[S$.$setProperty]("font-size", value, "");
    }
    get fontSizeDelta() {
      return this[S$.$getPropertyValue]("font-size-delta");
    }
    set fontSizeDelta(value) {
      if (value == null) dart.nullFailed(I[147], 7008, 28, "value");
      this[S$.$setProperty]("font-size-delta", value, "");
    }
    get fontSmoothing() {
      return this[S$.$getPropertyValue]("font-smoothing");
    }
    set fontSmoothing(value) {
      if (value == null) dart.nullFailed(I[147], 7016, 28, "value");
      this[S$.$setProperty]("font-smoothing", value, "");
    }
    get fontStretch() {
      return this[S$.$getPropertyValue]("font-stretch");
    }
    set fontStretch(value) {
      if (value == null) dart.nullFailed(I[147], 7024, 26, "value");
      this[S$.$setProperty]("font-stretch", value, "");
    }
    get fontStyle() {
      return this[S$.$getPropertyValue]("font-style");
    }
    set fontStyle(value) {
      if (value == null) dart.nullFailed(I[147], 7032, 24, "value");
      this[S$.$setProperty]("font-style", value, "");
    }
    get fontVariant() {
      return this[S$.$getPropertyValue]("font-variant");
    }
    set fontVariant(value) {
      if (value == null) dart.nullFailed(I[147], 7040, 26, "value");
      this[S$.$setProperty]("font-variant", value, "");
    }
    get fontVariantLigatures() {
      return this[S$.$getPropertyValue]("font-variant-ligatures");
    }
    set fontVariantLigatures(value) {
      if (value == null) dart.nullFailed(I[147], 7048, 35, "value");
      this[S$.$setProperty]("font-variant-ligatures", value, "");
    }
    get fontWeight() {
      return this[S$.$getPropertyValue]("font-weight");
    }
    set fontWeight(value) {
      if (value == null) dart.nullFailed(I[147], 7056, 25, "value");
      this[S$.$setProperty]("font-weight", value, "");
    }
    get grid() {
      return this[S$.$getPropertyValue]("grid");
    }
    set grid(value) {
      if (value == null) dart.nullFailed(I[147], 7064, 19, "value");
      this[S$.$setProperty]("grid", value, "");
    }
    get gridArea() {
      return this[S$.$getPropertyValue]("grid-area");
    }
    set gridArea(value) {
      if (value == null) dart.nullFailed(I[147], 7072, 23, "value");
      this[S$.$setProperty]("grid-area", value, "");
    }
    get gridAutoColumns() {
      return this[S$.$getPropertyValue]("grid-auto-columns");
    }
    set gridAutoColumns(value) {
      if (value == null) dart.nullFailed(I[147], 7080, 30, "value");
      this[S$.$setProperty]("grid-auto-columns", value, "");
    }
    get gridAutoFlow() {
      return this[S$.$getPropertyValue]("grid-auto-flow");
    }
    set gridAutoFlow(value) {
      if (value == null) dart.nullFailed(I[147], 7088, 27, "value");
      this[S$.$setProperty]("grid-auto-flow", value, "");
    }
    get gridAutoRows() {
      return this[S$.$getPropertyValue]("grid-auto-rows");
    }
    set gridAutoRows(value) {
      if (value == null) dart.nullFailed(I[147], 7096, 27, "value");
      this[S$.$setProperty]("grid-auto-rows", value, "");
    }
    get gridColumn() {
      return this[S$.$getPropertyValue]("grid-column");
    }
    set gridColumn(value) {
      if (value == null) dart.nullFailed(I[147], 7104, 25, "value");
      this[S$.$setProperty]("grid-column", value, "");
    }
    get gridColumnEnd() {
      return this[S$.$getPropertyValue]("grid-column-end");
    }
    set gridColumnEnd(value) {
      if (value == null) dart.nullFailed(I[147], 7112, 28, "value");
      this[S$.$setProperty]("grid-column-end", value, "");
    }
    get gridColumnStart() {
      return this[S$.$getPropertyValue]("grid-column-start");
    }
    set gridColumnStart(value) {
      if (value == null) dart.nullFailed(I[147], 7120, 30, "value");
      this[S$.$setProperty]("grid-column-start", value, "");
    }
    get gridRow() {
      return this[S$.$getPropertyValue]("grid-row");
    }
    set gridRow(value) {
      if (value == null) dart.nullFailed(I[147], 7128, 22, "value");
      this[S$.$setProperty]("grid-row", value, "");
    }
    get gridRowEnd() {
      return this[S$.$getPropertyValue]("grid-row-end");
    }
    set gridRowEnd(value) {
      if (value == null) dart.nullFailed(I[147], 7136, 25, "value");
      this[S$.$setProperty]("grid-row-end", value, "");
    }
    get gridRowStart() {
      return this[S$.$getPropertyValue]("grid-row-start");
    }
    set gridRowStart(value) {
      if (value == null) dart.nullFailed(I[147], 7144, 27, "value");
      this[S$.$setProperty]("grid-row-start", value, "");
    }
    get gridTemplate() {
      return this[S$.$getPropertyValue]("grid-template");
    }
    set gridTemplate(value) {
      if (value == null) dart.nullFailed(I[147], 7152, 27, "value");
      this[S$.$setProperty]("grid-template", value, "");
    }
    get gridTemplateAreas() {
      return this[S$.$getPropertyValue]("grid-template-areas");
    }
    set gridTemplateAreas(value) {
      if (value == null) dart.nullFailed(I[147], 7160, 32, "value");
      this[S$.$setProperty]("grid-template-areas", value, "");
    }
    get gridTemplateColumns() {
      return this[S$.$getPropertyValue]("grid-template-columns");
    }
    set gridTemplateColumns(value) {
      if (value == null) dart.nullFailed(I[147], 7168, 34, "value");
      this[S$.$setProperty]("grid-template-columns", value, "");
    }
    get gridTemplateRows() {
      return this[S$.$getPropertyValue]("grid-template-rows");
    }
    set gridTemplateRows(value) {
      if (value == null) dart.nullFailed(I[147], 7176, 31, "value");
      this[S$.$setProperty]("grid-template-rows", value, "");
    }
    get height() {
      return this[S$.$getPropertyValue]("height");
    }
    set height(value) {
      if (value == null) dart.nullFailed(I[147], 7184, 21, "value");
      this[S$.$setProperty]("height", value, "");
    }
    get highlight() {
      return this[S$.$getPropertyValue]("highlight");
    }
    set highlight(value) {
      if (value == null) dart.nullFailed(I[147], 7192, 24, "value");
      this[S$.$setProperty]("highlight", value, "");
    }
    get hyphenateCharacter() {
      return this[S$.$getPropertyValue]("hyphenate-character");
    }
    set hyphenateCharacter(value) {
      if (value == null) dart.nullFailed(I[147], 7200, 33, "value");
      this[S$.$setProperty]("hyphenate-character", value, "");
    }
    get imageRendering() {
      return this[S$.$getPropertyValue]("image-rendering");
    }
    set imageRendering(value) {
      if (value == null) dart.nullFailed(I[147], 7208, 29, "value");
      this[S$.$setProperty]("image-rendering", value, "");
    }
    get isolation() {
      return this[S$.$getPropertyValue]("isolation");
    }
    set isolation(value) {
      if (value == null) dart.nullFailed(I[147], 7216, 24, "value");
      this[S$.$setProperty]("isolation", value, "");
    }
    get justifyContent() {
      return this[S$.$getPropertyValue]("justify-content");
    }
    set justifyContent(value) {
      if (value == null) dart.nullFailed(I[147], 7224, 29, "value");
      this[S$.$setProperty]("justify-content", value, "");
    }
    get justifySelf() {
      return this[S$.$getPropertyValue]("justify-self");
    }
    set justifySelf(value) {
      if (value == null) dart.nullFailed(I[147], 7232, 26, "value");
      this[S$.$setProperty]("justify-self", value, "");
    }
    get left() {
      return this[S$.$getPropertyValue]("left");
    }
    set left(value) {
      if (value == null) dart.nullFailed(I[147], 7240, 19, "value");
      this[S$.$setProperty]("left", value, "");
    }
    get letterSpacing() {
      return this[S$.$getPropertyValue]("letter-spacing");
    }
    set letterSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 7248, 28, "value");
      this[S$.$setProperty]("letter-spacing", value, "");
    }
    get lineBoxContain() {
      return this[S$.$getPropertyValue]("line-box-contain");
    }
    set lineBoxContain(value) {
      if (value == null) dart.nullFailed(I[147], 7256, 29, "value");
      this[S$.$setProperty]("line-box-contain", value, "");
    }
    get lineBreak() {
      return this[S$.$getPropertyValue]("line-break");
    }
    set lineBreak(value) {
      if (value == null) dart.nullFailed(I[147], 7264, 24, "value");
      this[S$.$setProperty]("line-break", value, "");
    }
    get lineClamp() {
      return this[S$.$getPropertyValue]("line-clamp");
    }
    set lineClamp(value) {
      if (value == null) dart.nullFailed(I[147], 7272, 24, "value");
      this[S$.$setProperty]("line-clamp", value, "");
    }
    get lineHeight() {
      return this[S$.$getPropertyValue]("line-height");
    }
    set lineHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7280, 25, "value");
      this[S$.$setProperty]("line-height", value, "");
    }
    get listStyle() {
      return this[S$.$getPropertyValue]("list-style");
    }
    set listStyle(value) {
      if (value == null) dart.nullFailed(I[147], 7288, 24, "value");
      this[S$.$setProperty]("list-style", value, "");
    }
    get listStyleImage() {
      return this[S$.$getPropertyValue]("list-style-image");
    }
    set listStyleImage(value) {
      if (value == null) dart.nullFailed(I[147], 7296, 29, "value");
      this[S$.$setProperty]("list-style-image", value, "");
    }
    get listStylePosition() {
      return this[S$.$getPropertyValue]("list-style-position");
    }
    set listStylePosition(value) {
      if (value == null) dart.nullFailed(I[147], 7304, 32, "value");
      this[S$.$setProperty]("list-style-position", value, "");
    }
    get listStyleType() {
      return this[S$.$getPropertyValue]("list-style-type");
    }
    set listStyleType(value) {
      if (value == null) dart.nullFailed(I[147], 7312, 28, "value");
      this[S$.$setProperty]("list-style-type", value, "");
    }
    get locale() {
      return this[S$.$getPropertyValue]("locale");
    }
    set locale(value) {
      if (value == null) dart.nullFailed(I[147], 7320, 21, "value");
      this[S$.$setProperty]("locale", value, "");
    }
    get logicalHeight() {
      return this[S$.$getPropertyValue]("logical-height");
    }
    set logicalHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7328, 28, "value");
      this[S$.$setProperty]("logical-height", value, "");
    }
    get logicalWidth() {
      return this[S$.$getPropertyValue]("logical-width");
    }
    set logicalWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7336, 27, "value");
      this[S$.$setProperty]("logical-width", value, "");
    }
    get margin() {
      return this[S$.$getPropertyValue]("margin");
    }
    set margin(value) {
      if (value == null) dart.nullFailed(I[147], 7344, 21, "value");
      this[S$.$setProperty]("margin", value, "");
    }
    get marginAfter() {
      return this[S$.$getPropertyValue]("margin-after");
    }
    set marginAfter(value) {
      if (value == null) dart.nullFailed(I[147], 7352, 26, "value");
      this[S$.$setProperty]("margin-after", value, "");
    }
    get marginAfterCollapse() {
      return this[S$.$getPropertyValue]("margin-after-collapse");
    }
    set marginAfterCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 7360, 34, "value");
      this[S$.$setProperty]("margin-after-collapse", value, "");
    }
    get marginBefore() {
      return this[S$.$getPropertyValue]("margin-before");
    }
    set marginBefore(value) {
      if (value == null) dart.nullFailed(I[147], 7368, 27, "value");
      this[S$.$setProperty]("margin-before", value, "");
    }
    get marginBeforeCollapse() {
      return this[S$.$getPropertyValue]("margin-before-collapse");
    }
    set marginBeforeCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 7376, 35, "value");
      this[S$.$setProperty]("margin-before-collapse", value, "");
    }
    get marginBottom() {
      return this[S$.$getPropertyValue]("margin-bottom");
    }
    set marginBottom(value) {
      if (value == null) dart.nullFailed(I[147], 7384, 27, "value");
      this[S$.$setProperty]("margin-bottom", value, "");
    }
    get marginBottomCollapse() {
      return this[S$.$getPropertyValue]("margin-bottom-collapse");
    }
    set marginBottomCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 7392, 35, "value");
      this[S$.$setProperty]("margin-bottom-collapse", value, "");
    }
    get marginCollapse() {
      return this[S$.$getPropertyValue]("margin-collapse");
    }
    set marginCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 7400, 29, "value");
      this[S$.$setProperty]("margin-collapse", value, "");
    }
    get marginEnd() {
      return this[S$.$getPropertyValue]("margin-end");
    }
    set marginEnd(value) {
      if (value == null) dart.nullFailed(I[147], 7408, 24, "value");
      this[S$.$setProperty]("margin-end", value, "");
    }
    get marginLeft() {
      return this[S$.$getPropertyValue]("margin-left");
    }
    set marginLeft(value) {
      if (value == null) dart.nullFailed(I[147], 7416, 25, "value");
      this[S$.$setProperty]("margin-left", value, "");
    }
    get marginRight() {
      return this[S$.$getPropertyValue]("margin-right");
    }
    set marginRight(value) {
      if (value == null) dart.nullFailed(I[147], 7424, 26, "value");
      this[S$.$setProperty]("margin-right", value, "");
    }
    get marginStart() {
      return this[S$.$getPropertyValue]("margin-start");
    }
    set marginStart(value) {
      if (value == null) dart.nullFailed(I[147], 7432, 26, "value");
      this[S$.$setProperty]("margin-start", value, "");
    }
    get marginTop() {
      return this[S$.$getPropertyValue]("margin-top");
    }
    set marginTop(value) {
      if (value == null) dart.nullFailed(I[147], 7440, 24, "value");
      this[S$.$setProperty]("margin-top", value, "");
    }
    get marginTopCollapse() {
      return this[S$.$getPropertyValue]("margin-top-collapse");
    }
    set marginTopCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 7448, 32, "value");
      this[S$.$setProperty]("margin-top-collapse", value, "");
    }
    get mask() {
      return this[S$.$getPropertyValue]("mask");
    }
    set mask(value) {
      if (value == null) dart.nullFailed(I[147], 7456, 19, "value");
      this[S$.$setProperty]("mask", value, "");
    }
    get maskBoxImage() {
      return this[S$.$getPropertyValue]("mask-box-image");
    }
    set maskBoxImage(value) {
      if (value == null) dart.nullFailed(I[147], 7464, 27, "value");
      this[S$.$setProperty]("mask-box-image", value, "");
    }
    get maskBoxImageOutset() {
      return this[S$.$getPropertyValue]("mask-box-image-outset");
    }
    set maskBoxImageOutset(value) {
      if (value == null) dart.nullFailed(I[147], 7472, 33, "value");
      this[S$.$setProperty]("mask-box-image-outset", value, "");
    }
    get maskBoxImageRepeat() {
      return this[S$.$getPropertyValue]("mask-box-image-repeat");
    }
    set maskBoxImageRepeat(value) {
      if (value == null) dart.nullFailed(I[147], 7480, 33, "value");
      this[S$.$setProperty]("mask-box-image-repeat", value, "");
    }
    get maskBoxImageSlice() {
      return this[S$.$getPropertyValue]("mask-box-image-slice");
    }
    set maskBoxImageSlice(value) {
      if (value == null) dart.nullFailed(I[147], 7488, 32, "value");
      this[S$.$setProperty]("mask-box-image-slice", value, "");
    }
    get maskBoxImageSource() {
      return this[S$.$getPropertyValue]("mask-box-image-source");
    }
    set maskBoxImageSource(value) {
      if (value == null) dart.nullFailed(I[147], 7496, 33, "value");
      this[S$.$setProperty]("mask-box-image-source", value, "");
    }
    get maskBoxImageWidth() {
      return this[S$.$getPropertyValue]("mask-box-image-width");
    }
    set maskBoxImageWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7504, 32, "value");
      this[S$.$setProperty]("mask-box-image-width", value, "");
    }
    get maskClip() {
      return this[S$.$getPropertyValue]("mask-clip");
    }
    set maskClip(value) {
      if (value == null) dart.nullFailed(I[147], 7512, 23, "value");
      this[S$.$setProperty]("mask-clip", value, "");
    }
    get maskComposite() {
      return this[S$.$getPropertyValue]("mask-composite");
    }
    set maskComposite(value) {
      if (value == null) dart.nullFailed(I[147], 7520, 28, "value");
      this[S$.$setProperty]("mask-composite", value, "");
    }
    get maskImage() {
      return this[S$.$getPropertyValue]("mask-image");
    }
    set maskImage(value) {
      if (value == null) dart.nullFailed(I[147], 7528, 24, "value");
      this[S$.$setProperty]("mask-image", value, "");
    }
    get maskOrigin() {
      return this[S$.$getPropertyValue]("mask-origin");
    }
    set maskOrigin(value) {
      if (value == null) dart.nullFailed(I[147], 7536, 25, "value");
      this[S$.$setProperty]("mask-origin", value, "");
    }
    get maskPosition() {
      return this[S$.$getPropertyValue]("mask-position");
    }
    set maskPosition(value) {
      if (value == null) dart.nullFailed(I[147], 7544, 27, "value");
      this[S$.$setProperty]("mask-position", value, "");
    }
    get maskPositionX() {
      return this[S$.$getPropertyValue]("mask-position-x");
    }
    set maskPositionX(value) {
      if (value == null) dart.nullFailed(I[147], 7552, 28, "value");
      this[S$.$setProperty]("mask-position-x", value, "");
    }
    get maskPositionY() {
      return this[S$.$getPropertyValue]("mask-position-y");
    }
    set maskPositionY(value) {
      if (value == null) dart.nullFailed(I[147], 7560, 28, "value");
      this[S$.$setProperty]("mask-position-y", value, "");
    }
    get maskRepeat() {
      return this[S$.$getPropertyValue]("mask-repeat");
    }
    set maskRepeat(value) {
      if (value == null) dart.nullFailed(I[147], 7568, 25, "value");
      this[S$.$setProperty]("mask-repeat", value, "");
    }
    get maskRepeatX() {
      return this[S$.$getPropertyValue]("mask-repeat-x");
    }
    set maskRepeatX(value) {
      if (value == null) dart.nullFailed(I[147], 7576, 26, "value");
      this[S$.$setProperty]("mask-repeat-x", value, "");
    }
    get maskRepeatY() {
      return this[S$.$getPropertyValue]("mask-repeat-y");
    }
    set maskRepeatY(value) {
      if (value == null) dart.nullFailed(I[147], 7584, 26, "value");
      this[S$.$setProperty]("mask-repeat-y", value, "");
    }
    get maskSize() {
      return this[S$.$getPropertyValue]("mask-size");
    }
    set maskSize(value) {
      if (value == null) dart.nullFailed(I[147], 7592, 23, "value");
      this[S$.$setProperty]("mask-size", value, "");
    }
    get maskSourceType() {
      return this[S$.$getPropertyValue]("mask-source-type");
    }
    set maskSourceType(value) {
      if (value == null) dart.nullFailed(I[147], 7600, 29, "value");
      this[S$.$setProperty]("mask-source-type", value, "");
    }
    get maxHeight() {
      return this[S$.$getPropertyValue]("max-height");
    }
    set maxHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7608, 24, "value");
      this[S$.$setProperty]("max-height", value, "");
    }
    get maxLogicalHeight() {
      return this[S$.$getPropertyValue]("max-logical-height");
    }
    set maxLogicalHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7616, 31, "value");
      this[S$.$setProperty]("max-logical-height", value, "");
    }
    get maxLogicalWidth() {
      return this[S$.$getPropertyValue]("max-logical-width");
    }
    set maxLogicalWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7624, 30, "value");
      this[S$.$setProperty]("max-logical-width", value, "");
    }
    get maxWidth() {
      return this[S$.$getPropertyValue]("max-width");
    }
    set maxWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7632, 23, "value");
      this[S$.$setProperty]("max-width", value, "");
    }
    get maxZoom() {
      return this[S$.$getPropertyValue]("max-zoom");
    }
    set maxZoom(value) {
      if (value == null) dart.nullFailed(I[147], 7640, 22, "value");
      this[S$.$setProperty]("max-zoom", value, "");
    }
    get minHeight() {
      return this[S$.$getPropertyValue]("min-height");
    }
    set minHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7648, 24, "value");
      this[S$.$setProperty]("min-height", value, "");
    }
    get minLogicalHeight() {
      return this[S$.$getPropertyValue]("min-logical-height");
    }
    set minLogicalHeight(value) {
      if (value == null) dart.nullFailed(I[147], 7656, 31, "value");
      this[S$.$setProperty]("min-logical-height", value, "");
    }
    get minLogicalWidth() {
      return this[S$.$getPropertyValue]("min-logical-width");
    }
    set minLogicalWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7664, 30, "value");
      this[S$.$setProperty]("min-logical-width", value, "");
    }
    get minWidth() {
      return this[S$.$getPropertyValue]("min-width");
    }
    set minWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7672, 23, "value");
      this[S$.$setProperty]("min-width", value, "");
    }
    get minZoom() {
      return this[S$.$getPropertyValue]("min-zoom");
    }
    set minZoom(value) {
      if (value == null) dart.nullFailed(I[147], 7680, 22, "value");
      this[S$.$setProperty]("min-zoom", value, "");
    }
    get mixBlendMode() {
      return this[S$.$getPropertyValue]("mix-blend-mode");
    }
    set mixBlendMode(value) {
      if (value == null) dart.nullFailed(I[147], 7688, 27, "value");
      this[S$.$setProperty]("mix-blend-mode", value, "");
    }
    get objectFit() {
      return this[S$.$getPropertyValue]("object-fit");
    }
    set objectFit(value) {
      if (value == null) dart.nullFailed(I[147], 7696, 24, "value");
      this[S$.$setProperty]("object-fit", value, "");
    }
    get objectPosition() {
      return this[S$.$getPropertyValue]("object-position");
    }
    set objectPosition(value) {
      if (value == null) dart.nullFailed(I[147], 7704, 29, "value");
      this[S$.$setProperty]("object-position", value, "");
    }
    get opacity() {
      return this[S$.$getPropertyValue]("opacity");
    }
    set opacity(value) {
      if (value == null) dart.nullFailed(I[147], 7712, 22, "value");
      this[S$.$setProperty]("opacity", value, "");
    }
    get order() {
      return this[S$.$getPropertyValue]("order");
    }
    set order(value) {
      if (value == null) dart.nullFailed(I[147], 7720, 20, "value");
      this[S$.$setProperty]("order", value, "");
    }
    get orientation() {
      return this[S$.$getPropertyValue]("orientation");
    }
    set orientation(value) {
      if (value == null) dart.nullFailed(I[147], 7728, 26, "value");
      this[S$.$setProperty]("orientation", value, "");
    }
    get orphans() {
      return this[S$.$getPropertyValue]("orphans");
    }
    set orphans(value) {
      if (value == null) dart.nullFailed(I[147], 7736, 22, "value");
      this[S$.$setProperty]("orphans", value, "");
    }
    get outline() {
      return this[S$.$getPropertyValue]("outline");
    }
    set outline(value) {
      if (value == null) dart.nullFailed(I[147], 7744, 22, "value");
      this[S$.$setProperty]("outline", value, "");
    }
    get outlineColor() {
      return this[S$.$getPropertyValue]("outline-color");
    }
    set outlineColor(value) {
      if (value == null) dart.nullFailed(I[147], 7752, 27, "value");
      this[S$.$setProperty]("outline-color", value, "");
    }
    get outlineOffset() {
      return this[S$.$getPropertyValue]("outline-offset");
    }
    set outlineOffset(value) {
      if (value == null) dart.nullFailed(I[147], 7760, 28, "value");
      this[S$.$setProperty]("outline-offset", value, "");
    }
    get outlineStyle() {
      return this[S$.$getPropertyValue]("outline-style");
    }
    set outlineStyle(value) {
      if (value == null) dart.nullFailed(I[147], 7768, 27, "value");
      this[S$.$setProperty]("outline-style", value, "");
    }
    get outlineWidth() {
      return this[S$.$getPropertyValue]("outline-width");
    }
    set outlineWidth(value) {
      if (value == null) dart.nullFailed(I[147], 7776, 27, "value");
      this[S$.$setProperty]("outline-width", value, "");
    }
    get overflow() {
      return this[S$.$getPropertyValue]("overflow");
    }
    set overflow(value) {
      if (value == null) dart.nullFailed(I[147], 7784, 23, "value");
      this[S$.$setProperty]("overflow", value, "");
    }
    get overflowWrap() {
      return this[S$.$getPropertyValue]("overflow-wrap");
    }
    set overflowWrap(value) {
      if (value == null) dart.nullFailed(I[147], 7792, 27, "value");
      this[S$.$setProperty]("overflow-wrap", value, "");
    }
    get overflowX() {
      return this[S$.$getPropertyValue]("overflow-x");
    }
    set overflowX(value) {
      if (value == null) dart.nullFailed(I[147], 7800, 24, "value");
      this[S$.$setProperty]("overflow-x", value, "");
    }
    get overflowY() {
      return this[S$.$getPropertyValue]("overflow-y");
    }
    set overflowY(value) {
      if (value == null) dart.nullFailed(I[147], 7808, 24, "value");
      this[S$.$setProperty]("overflow-y", value, "");
    }
    get padding() {
      return this[S$.$getPropertyValue]("padding");
    }
    set padding(value) {
      if (value == null) dart.nullFailed(I[147], 7816, 22, "value");
      this[S$.$setProperty]("padding", value, "");
    }
    get paddingAfter() {
      return this[S$.$getPropertyValue]("padding-after");
    }
    set paddingAfter(value) {
      if (value == null) dart.nullFailed(I[147], 7824, 27, "value");
      this[S$.$setProperty]("padding-after", value, "");
    }
    get paddingBefore() {
      return this[S$.$getPropertyValue]("padding-before");
    }
    set paddingBefore(value) {
      if (value == null) dart.nullFailed(I[147], 7832, 28, "value");
      this[S$.$setProperty]("padding-before", value, "");
    }
    get paddingBottom() {
      return this[S$.$getPropertyValue]("padding-bottom");
    }
    set paddingBottom(value) {
      if (value == null) dart.nullFailed(I[147], 7840, 28, "value");
      this[S$.$setProperty]("padding-bottom", value, "");
    }
    get paddingEnd() {
      return this[S$.$getPropertyValue]("padding-end");
    }
    set paddingEnd(value) {
      if (value == null) dart.nullFailed(I[147], 7848, 25, "value");
      this[S$.$setProperty]("padding-end", value, "");
    }
    get paddingLeft() {
      return this[S$.$getPropertyValue]("padding-left");
    }
    set paddingLeft(value) {
      if (value == null) dart.nullFailed(I[147], 7856, 26, "value");
      this[S$.$setProperty]("padding-left", value, "");
    }
    get paddingRight() {
      return this[S$.$getPropertyValue]("padding-right");
    }
    set paddingRight(value) {
      if (value == null) dart.nullFailed(I[147], 7864, 27, "value");
      this[S$.$setProperty]("padding-right", value, "");
    }
    get paddingStart() {
      return this[S$.$getPropertyValue]("padding-start");
    }
    set paddingStart(value) {
      if (value == null) dart.nullFailed(I[147], 7872, 27, "value");
      this[S$.$setProperty]("padding-start", value, "");
    }
    get paddingTop() {
      return this[S$.$getPropertyValue]("padding-top");
    }
    set paddingTop(value) {
      if (value == null) dart.nullFailed(I[147], 7880, 25, "value");
      this[S$.$setProperty]("padding-top", value, "");
    }
    get page() {
      return this[S$.$getPropertyValue]("page");
    }
    set page(value) {
      if (value == null) dart.nullFailed(I[147], 7888, 19, "value");
      this[S$.$setProperty]("page", value, "");
    }
    get pageBreakAfter() {
      return this[S$.$getPropertyValue]("page-break-after");
    }
    set pageBreakAfter(value) {
      if (value == null) dart.nullFailed(I[147], 7896, 29, "value");
      this[S$.$setProperty]("page-break-after", value, "");
    }
    get pageBreakBefore() {
      return this[S$.$getPropertyValue]("page-break-before");
    }
    set pageBreakBefore(value) {
      if (value == null) dart.nullFailed(I[147], 7904, 30, "value");
      this[S$.$setProperty]("page-break-before", value, "");
    }
    get pageBreakInside() {
      return this[S$.$getPropertyValue]("page-break-inside");
    }
    set pageBreakInside(value) {
      if (value == null) dart.nullFailed(I[147], 7912, 30, "value");
      this[S$.$setProperty]("page-break-inside", value, "");
    }
    get perspective() {
      return this[S$.$getPropertyValue]("perspective");
    }
    set perspective(value) {
      if (value == null) dart.nullFailed(I[147], 7920, 26, "value");
      this[S$.$setProperty]("perspective", value, "");
    }
    get perspectiveOrigin() {
      return this[S$.$getPropertyValue]("perspective-origin");
    }
    set perspectiveOrigin(value) {
      if (value == null) dart.nullFailed(I[147], 7928, 32, "value");
      this[S$.$setProperty]("perspective-origin", value, "");
    }
    get perspectiveOriginX() {
      return this[S$.$getPropertyValue]("perspective-origin-x");
    }
    set perspectiveOriginX(value) {
      if (value == null) dart.nullFailed(I[147], 7936, 33, "value");
      this[S$.$setProperty]("perspective-origin-x", value, "");
    }
    get perspectiveOriginY() {
      return this[S$.$getPropertyValue]("perspective-origin-y");
    }
    set perspectiveOriginY(value) {
      if (value == null) dart.nullFailed(I[147], 7944, 33, "value");
      this[S$.$setProperty]("perspective-origin-y", value, "");
    }
    get pointerEvents() {
      return this[S$.$getPropertyValue]("pointer-events");
    }
    set pointerEvents(value) {
      if (value == null) dart.nullFailed(I[147], 7952, 28, "value");
      this[S$.$setProperty]("pointer-events", value, "");
    }
    get position() {
      return this[S$.$getPropertyValue]("position");
    }
    set position(value) {
      if (value == null) dart.nullFailed(I[147], 7960, 23, "value");
      this[S$.$setProperty]("position", value, "");
    }
    get printColorAdjust() {
      return this[S$.$getPropertyValue]("print-color-adjust");
    }
    set printColorAdjust(value) {
      if (value == null) dart.nullFailed(I[147], 7968, 31, "value");
      this[S$.$setProperty]("print-color-adjust", value, "");
    }
    get quotes() {
      return this[S$.$getPropertyValue]("quotes");
    }
    set quotes(value) {
      if (value == null) dart.nullFailed(I[147], 7976, 21, "value");
      this[S$.$setProperty]("quotes", value, "");
    }
    get resize() {
      return this[S$.$getPropertyValue]("resize");
    }
    set resize(value) {
      if (value == null) dart.nullFailed(I[147], 7984, 21, "value");
      this[S$.$setProperty]("resize", value, "");
    }
    get right() {
      return this[S$.$getPropertyValue]("right");
    }
    set right(value) {
      if (value == null) dart.nullFailed(I[147], 7992, 20, "value");
      this[S$.$setProperty]("right", value, "");
    }
    get rtlOrdering() {
      return this[S$.$getPropertyValue]("rtl-ordering");
    }
    set rtlOrdering(value) {
      if (value == null) dart.nullFailed(I[147], 8000, 26, "value");
      this[S$.$setProperty]("rtl-ordering", value, "");
    }
    get rubyPosition() {
      return this[S$.$getPropertyValue]("ruby-position");
    }
    set rubyPosition(value) {
      if (value == null) dart.nullFailed(I[147], 8008, 27, "value");
      this[S$.$setProperty]("ruby-position", value, "");
    }
    get scrollBehavior() {
      return this[S$.$getPropertyValue]("scroll-behavior");
    }
    set scrollBehavior(value) {
      if (value == null) dart.nullFailed(I[147], 8016, 29, "value");
      this[S$.$setProperty]("scroll-behavior", value, "");
    }
    get shapeImageThreshold() {
      return this[S$.$getPropertyValue]("shape-image-threshold");
    }
    set shapeImageThreshold(value) {
      if (value == null) dart.nullFailed(I[147], 8024, 34, "value");
      this[S$.$setProperty]("shape-image-threshold", value, "");
    }
    get shapeMargin() {
      return this[S$.$getPropertyValue]("shape-margin");
    }
    set shapeMargin(value) {
      if (value == null) dart.nullFailed(I[147], 8032, 26, "value");
      this[S$.$setProperty]("shape-margin", value, "");
    }
    get shapeOutside() {
      return this[S$.$getPropertyValue]("shape-outside");
    }
    set shapeOutside(value) {
      if (value == null) dart.nullFailed(I[147], 8040, 27, "value");
      this[S$.$setProperty]("shape-outside", value, "");
    }
    get size() {
      return this[S$.$getPropertyValue]("size");
    }
    set size(value) {
      if (value == null) dart.nullFailed(I[147], 8048, 19, "value");
      this[S$.$setProperty]("size", value, "");
    }
    get speak() {
      return this[S$.$getPropertyValue]("speak");
    }
    set speak(value) {
      if (value == null) dart.nullFailed(I[147], 8056, 20, "value");
      this[S$.$setProperty]("speak", value, "");
    }
    get src() {
      return this[S$.$getPropertyValue]("src");
    }
    set src(value) {
      if (value == null) dart.nullFailed(I[147], 8064, 18, "value");
      this[S$.$setProperty]("src", value, "");
    }
    get tabSize() {
      return this[S$.$getPropertyValue]("tab-size");
    }
    set tabSize(value) {
      if (value == null) dart.nullFailed(I[147], 8072, 22, "value");
      this[S$.$setProperty]("tab-size", value, "");
    }
    get tableLayout() {
      return this[S$.$getPropertyValue]("table-layout");
    }
    set tableLayout(value) {
      if (value == null) dart.nullFailed(I[147], 8080, 26, "value");
      this[S$.$setProperty]("table-layout", value, "");
    }
    get tapHighlightColor() {
      return this[S$.$getPropertyValue]("tap-highlight-color");
    }
    set tapHighlightColor(value) {
      if (value == null) dart.nullFailed(I[147], 8088, 32, "value");
      this[S$.$setProperty]("tap-highlight-color", value, "");
    }
    get textAlign() {
      return this[S$.$getPropertyValue]("text-align");
    }
    set textAlign(value) {
      if (value == null) dart.nullFailed(I[147], 8096, 24, "value");
      this[S$.$setProperty]("text-align", value, "");
    }
    get textAlignLast() {
      return this[S$.$getPropertyValue]("text-align-last");
    }
    set textAlignLast(value) {
      if (value == null) dart.nullFailed(I[147], 8104, 28, "value");
      this[S$.$setProperty]("text-align-last", value, "");
    }
    get textCombine() {
      return this[S$.$getPropertyValue]("text-combine");
    }
    set textCombine(value) {
      if (value == null) dart.nullFailed(I[147], 8112, 26, "value");
      this[S$.$setProperty]("text-combine", value, "");
    }
    get textDecoration() {
      return this[S$.$getPropertyValue]("text-decoration");
    }
    set textDecoration(value) {
      if (value == null) dart.nullFailed(I[147], 8120, 29, "value");
      this[S$.$setProperty]("text-decoration", value, "");
    }
    get textDecorationColor() {
      return this[S$.$getPropertyValue]("text-decoration-color");
    }
    set textDecorationColor(value) {
      if (value == null) dart.nullFailed(I[147], 8128, 34, "value");
      this[S$.$setProperty]("text-decoration-color", value, "");
    }
    get textDecorationLine() {
      return this[S$.$getPropertyValue]("text-decoration-line");
    }
    set textDecorationLine(value) {
      if (value == null) dart.nullFailed(I[147], 8136, 33, "value");
      this[S$.$setProperty]("text-decoration-line", value, "");
    }
    get textDecorationStyle() {
      return this[S$.$getPropertyValue]("text-decoration-style");
    }
    set textDecorationStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8144, 34, "value");
      this[S$.$setProperty]("text-decoration-style", value, "");
    }
    get textDecorationsInEffect() {
      return this[S$.$getPropertyValue]("text-decorations-in-effect");
    }
    set textDecorationsInEffect(value) {
      if (value == null) dart.nullFailed(I[147], 8153, 38, "value");
      this[S$.$setProperty]("text-decorations-in-effect", value, "");
    }
    get textEmphasis() {
      return this[S$.$getPropertyValue]("text-emphasis");
    }
    set textEmphasis(value) {
      if (value == null) dart.nullFailed(I[147], 8161, 27, "value");
      this[S$.$setProperty]("text-emphasis", value, "");
    }
    get textEmphasisColor() {
      return this[S$.$getPropertyValue]("text-emphasis-color");
    }
    set textEmphasisColor(value) {
      if (value == null) dart.nullFailed(I[147], 8169, 32, "value");
      this[S$.$setProperty]("text-emphasis-color", value, "");
    }
    get textEmphasisPosition() {
      return this[S$.$getPropertyValue]("text-emphasis-position");
    }
    set textEmphasisPosition(value) {
      if (value == null) dart.nullFailed(I[147], 8177, 35, "value");
      this[S$.$setProperty]("text-emphasis-position", value, "");
    }
    get textEmphasisStyle() {
      return this[S$.$getPropertyValue]("text-emphasis-style");
    }
    set textEmphasisStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8185, 32, "value");
      this[S$.$setProperty]("text-emphasis-style", value, "");
    }
    get textFillColor() {
      return this[S$.$getPropertyValue]("text-fill-color");
    }
    set textFillColor(value) {
      if (value == null) dart.nullFailed(I[147], 8193, 28, "value");
      this[S$.$setProperty]("text-fill-color", value, "");
    }
    get textIndent() {
      return this[S$.$getPropertyValue]("text-indent");
    }
    set textIndent(value) {
      if (value == null) dart.nullFailed(I[147], 8201, 25, "value");
      this[S$.$setProperty]("text-indent", value, "");
    }
    get textJustify() {
      return this[S$.$getPropertyValue]("text-justify");
    }
    set textJustify(value) {
      if (value == null) dart.nullFailed(I[147], 8209, 26, "value");
      this[S$.$setProperty]("text-justify", value, "");
    }
    get textLineThroughColor() {
      return this[S$.$getPropertyValue]("text-line-through-color");
    }
    set textLineThroughColor(value) {
      if (value == null) dart.nullFailed(I[147], 8218, 35, "value");
      this[S$.$setProperty]("text-line-through-color", value, "");
    }
    get textLineThroughMode() {
      return this[S$.$getPropertyValue]("text-line-through-mode");
    }
    set textLineThroughMode(value) {
      if (value == null) dart.nullFailed(I[147], 8226, 34, "value");
      this[S$.$setProperty]("text-line-through-mode", value, "");
    }
    get textLineThroughStyle() {
      return this[S$.$getPropertyValue]("text-line-through-style");
    }
    set textLineThroughStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8235, 35, "value");
      this[S$.$setProperty]("text-line-through-style", value, "");
    }
    get textLineThroughWidth() {
      return this[S$.$getPropertyValue]("text-line-through-width");
    }
    set textLineThroughWidth(value) {
      if (value == null) dart.nullFailed(I[147], 8244, 35, "value");
      this[S$.$setProperty]("text-line-through-width", value, "");
    }
    get textOrientation() {
      return this[S$.$getPropertyValue]("text-orientation");
    }
    set textOrientation(value) {
      if (value == null) dart.nullFailed(I[147], 8252, 30, "value");
      this[S$.$setProperty]("text-orientation", value, "");
    }
    get textOverflow() {
      return this[S$.$getPropertyValue]("text-overflow");
    }
    set textOverflow(value) {
      if (value == null) dart.nullFailed(I[147], 8260, 27, "value");
      this[S$.$setProperty]("text-overflow", value, "");
    }
    get textOverlineColor() {
      return this[S$.$getPropertyValue]("text-overline-color");
    }
    set textOverlineColor(value) {
      if (value == null) dart.nullFailed(I[147], 8268, 32, "value");
      this[S$.$setProperty]("text-overline-color", value, "");
    }
    get textOverlineMode() {
      return this[S$.$getPropertyValue]("text-overline-mode");
    }
    set textOverlineMode(value) {
      if (value == null) dart.nullFailed(I[147], 8276, 31, "value");
      this[S$.$setProperty]("text-overline-mode", value, "");
    }
    get textOverlineStyle() {
      return this[S$.$getPropertyValue]("text-overline-style");
    }
    set textOverlineStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8284, 32, "value");
      this[S$.$setProperty]("text-overline-style", value, "");
    }
    get textOverlineWidth() {
      return this[S$.$getPropertyValue]("text-overline-width");
    }
    set textOverlineWidth(value) {
      if (value == null) dart.nullFailed(I[147], 8292, 32, "value");
      this[S$.$setProperty]("text-overline-width", value, "");
    }
    get textRendering() {
      return this[S$.$getPropertyValue]("text-rendering");
    }
    set textRendering(value) {
      if (value == null) dart.nullFailed(I[147], 8300, 28, "value");
      this[S$.$setProperty]("text-rendering", value, "");
    }
    get textSecurity() {
      return this[S$.$getPropertyValue]("text-security");
    }
    set textSecurity(value) {
      if (value == null) dart.nullFailed(I[147], 8308, 27, "value");
      this[S$.$setProperty]("text-security", value, "");
    }
    get textShadow() {
      return this[S$.$getPropertyValue]("text-shadow");
    }
    set textShadow(value) {
      if (value == null) dart.nullFailed(I[147], 8316, 25, "value");
      this[S$.$setProperty]("text-shadow", value, "");
    }
    get textStroke() {
      return this[S$.$getPropertyValue]("text-stroke");
    }
    set textStroke(value) {
      if (value == null) dart.nullFailed(I[147], 8324, 25, "value");
      this[S$.$setProperty]("text-stroke", value, "");
    }
    get textStrokeColor() {
      return this[S$.$getPropertyValue]("text-stroke-color");
    }
    set textStrokeColor(value) {
      if (value == null) dart.nullFailed(I[147], 8332, 30, "value");
      this[S$.$setProperty]("text-stroke-color", value, "");
    }
    get textStrokeWidth() {
      return this[S$.$getPropertyValue]("text-stroke-width");
    }
    set textStrokeWidth(value) {
      if (value == null) dart.nullFailed(I[147], 8340, 30, "value");
      this[S$.$setProperty]("text-stroke-width", value, "");
    }
    get textTransform() {
      return this[S$.$getPropertyValue]("text-transform");
    }
    set textTransform(value) {
      if (value == null) dart.nullFailed(I[147], 8348, 28, "value");
      this[S$.$setProperty]("text-transform", value, "");
    }
    get textUnderlineColor() {
      return this[S$.$getPropertyValue]("text-underline-color");
    }
    set textUnderlineColor(value) {
      if (value == null) dart.nullFailed(I[147], 8356, 33, "value");
      this[S$.$setProperty]("text-underline-color", value, "");
    }
    get textUnderlineMode() {
      return this[S$.$getPropertyValue]("text-underline-mode");
    }
    set textUnderlineMode(value) {
      if (value == null) dart.nullFailed(I[147], 8364, 32, "value");
      this[S$.$setProperty]("text-underline-mode", value, "");
    }
    get textUnderlinePosition() {
      return this[S$.$getPropertyValue]("text-underline-position");
    }
    set textUnderlinePosition(value) {
      if (value == null) dart.nullFailed(I[147], 8373, 36, "value");
      this[S$.$setProperty]("text-underline-position", value, "");
    }
    get textUnderlineStyle() {
      return this[S$.$getPropertyValue]("text-underline-style");
    }
    set textUnderlineStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8381, 33, "value");
      this[S$.$setProperty]("text-underline-style", value, "");
    }
    get textUnderlineWidth() {
      return this[S$.$getPropertyValue]("text-underline-width");
    }
    set textUnderlineWidth(value) {
      if (value == null) dart.nullFailed(I[147], 8389, 33, "value");
      this[S$.$setProperty]("text-underline-width", value, "");
    }
    get top() {
      return this[S$.$getPropertyValue]("top");
    }
    set top(value) {
      if (value == null) dart.nullFailed(I[147], 8397, 18, "value");
      this[S$.$setProperty]("top", value, "");
    }
    get touchAction() {
      return this[S$.$getPropertyValue]("touch-action");
    }
    set touchAction(value) {
      if (value == null) dart.nullFailed(I[147], 8405, 26, "value");
      this[S$.$setProperty]("touch-action", value, "");
    }
    get touchActionDelay() {
      return this[S$.$getPropertyValue]("touch-action-delay");
    }
    set touchActionDelay(value) {
      if (value == null) dart.nullFailed(I[147], 8413, 31, "value");
      this[S$.$setProperty]("touch-action-delay", value, "");
    }
    get transform() {
      return this[S$.$getPropertyValue]("transform");
    }
    set transform(value) {
      if (value == null) dart.nullFailed(I[147], 8421, 24, "value");
      this[S$.$setProperty]("transform", value, "");
    }
    get transformOrigin() {
      return this[S$.$getPropertyValue]("transform-origin");
    }
    set transformOrigin(value) {
      if (value == null) dart.nullFailed(I[147], 8429, 30, "value");
      this[S$.$setProperty]("transform-origin", value, "");
    }
    get transformOriginX() {
      return this[S$.$getPropertyValue]("transform-origin-x");
    }
    set transformOriginX(value) {
      if (value == null) dart.nullFailed(I[147], 8437, 31, "value");
      this[S$.$setProperty]("transform-origin-x", value, "");
    }
    get transformOriginY() {
      return this[S$.$getPropertyValue]("transform-origin-y");
    }
    set transformOriginY(value) {
      if (value == null) dart.nullFailed(I[147], 8445, 31, "value");
      this[S$.$setProperty]("transform-origin-y", value, "");
    }
    get transformOriginZ() {
      return this[S$.$getPropertyValue]("transform-origin-z");
    }
    set transformOriginZ(value) {
      if (value == null) dart.nullFailed(I[147], 8453, 31, "value");
      this[S$.$setProperty]("transform-origin-z", value, "");
    }
    get transformStyle() {
      return this[S$.$getPropertyValue]("transform-style");
    }
    set transformStyle(value) {
      if (value == null) dart.nullFailed(I[147], 8461, 29, "value");
      this[S$.$setProperty]("transform-style", value, "");
    }
    get transition() {
      return this[S$.$getPropertyValue]("transition");
    }
    set transition(value) {
      if (value == null) dart.nullFailed(I[147], 8477, 25, "value");
      this[S$.$setProperty]("transition", value, "");
    }
    get transitionDelay() {
      return this[S$.$getPropertyValue]("transition-delay");
    }
    set transitionDelay(value) {
      if (value == null) dart.nullFailed(I[147], 8485, 30, "value");
      this[S$.$setProperty]("transition-delay", value, "");
    }
    get transitionDuration() {
      return this[S$.$getPropertyValue]("transition-duration");
    }
    set transitionDuration(value) {
      if (value == null) dart.nullFailed(I[147], 8493, 33, "value");
      this[S$.$setProperty]("transition-duration", value, "");
    }
    get transitionProperty() {
      return this[S$.$getPropertyValue]("transition-property");
    }
    set transitionProperty(value) {
      if (value == null) dart.nullFailed(I[147], 8501, 33, "value");
      this[S$.$setProperty]("transition-property", value, "");
    }
    get transitionTimingFunction() {
      return this[S$.$getPropertyValue]("transition-timing-function");
    }
    set transitionTimingFunction(value) {
      if (value == null) dart.nullFailed(I[147], 8510, 39, "value");
      this[S$.$setProperty]("transition-timing-function", value, "");
    }
    get unicodeBidi() {
      return this[S$.$getPropertyValue]("unicode-bidi");
    }
    set unicodeBidi(value) {
      if (value == null) dart.nullFailed(I[147], 8518, 26, "value");
      this[S$.$setProperty]("unicode-bidi", value, "");
    }
    get unicodeRange() {
      return this[S$.$getPropertyValue]("unicode-range");
    }
    set unicodeRange(value) {
      if (value == null) dart.nullFailed(I[147], 8526, 27, "value");
      this[S$.$setProperty]("unicode-range", value, "");
    }
    get userDrag() {
      return this[S$.$getPropertyValue]("user-drag");
    }
    set userDrag(value) {
      if (value == null) dart.nullFailed(I[147], 8534, 23, "value");
      this[S$.$setProperty]("user-drag", value, "");
    }
    get userModify() {
      return this[S$.$getPropertyValue]("user-modify");
    }
    set userModify(value) {
      if (value == null) dart.nullFailed(I[147], 8542, 25, "value");
      this[S$.$setProperty]("user-modify", value, "");
    }
    get userSelect() {
      return this[S$.$getPropertyValue]("user-select");
    }
    set userSelect(value) {
      if (value == null) dart.nullFailed(I[147], 8550, 25, "value");
      this[S$.$setProperty]("user-select", value, "");
    }
    get userZoom() {
      return this[S$.$getPropertyValue]("user-zoom");
    }
    set userZoom(value) {
      if (value == null) dart.nullFailed(I[147], 8558, 23, "value");
      this[S$.$setProperty]("user-zoom", value, "");
    }
    get verticalAlign() {
      return this[S$.$getPropertyValue]("vertical-align");
    }
    set verticalAlign(value) {
      if (value == null) dart.nullFailed(I[147], 8566, 28, "value");
      this[S$.$setProperty]("vertical-align", value, "");
    }
    get visibility() {
      return this[S$.$getPropertyValue]("visibility");
    }
    set visibility(value) {
      if (value == null) dart.nullFailed(I[147], 8574, 25, "value");
      this[S$.$setProperty]("visibility", value, "");
    }
    get whiteSpace() {
      return this[S$.$getPropertyValue]("white-space");
    }
    set whiteSpace(value) {
      if (value == null) dart.nullFailed(I[147], 8582, 25, "value");
      this[S$.$setProperty]("white-space", value, "");
    }
    get widows() {
      return this[S$.$getPropertyValue]("widows");
    }
    set widows(value) {
      if (value == null) dart.nullFailed(I[147], 8590, 21, "value");
      this[S$.$setProperty]("widows", value, "");
    }
    get width() {
      return this[S$.$getPropertyValue]("width");
    }
    set width(value) {
      if (value == null) dart.nullFailed(I[147], 8598, 20, "value");
      this[S$.$setProperty]("width", value, "");
    }
    get willChange() {
      return this[S$.$getPropertyValue]("will-change");
    }
    set willChange(value) {
      if (value == null) dart.nullFailed(I[147], 8606, 25, "value");
      this[S$.$setProperty]("will-change", value, "");
    }
    get wordBreak() {
      return this[S$.$getPropertyValue]("word-break");
    }
    set wordBreak(value) {
      if (value == null) dart.nullFailed(I[147], 8614, 24, "value");
      this[S$.$setProperty]("word-break", value, "");
    }
    get wordSpacing() {
      return this[S$.$getPropertyValue]("word-spacing");
    }
    set wordSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 8622, 26, "value");
      this[S$.$setProperty]("word-spacing", value, "");
    }
    get wordWrap() {
      return this[S$.$getPropertyValue]("word-wrap");
    }
    set wordWrap(value) {
      if (value == null) dart.nullFailed(I[147], 8630, 23, "value");
      this[S$.$setProperty]("word-wrap", value, "");
    }
    get wrapFlow() {
      return this[S$.$getPropertyValue]("wrap-flow");
    }
    set wrapFlow(value) {
      if (value == null) dart.nullFailed(I[147], 8638, 23, "value");
      this[S$.$setProperty]("wrap-flow", value, "");
    }
    get wrapThrough() {
      return this[S$.$getPropertyValue]("wrap-through");
    }
    set wrapThrough(value) {
      if (value == null) dart.nullFailed(I[147], 8646, 26, "value");
      this[S$.$setProperty]("wrap-through", value, "");
    }
    get writingMode() {
      return this[S$.$getPropertyValue]("writing-mode");
    }
    set writingMode(value) {
      if (value == null) dart.nullFailed(I[147], 8654, 26, "value");
      this[S$.$setProperty]("writing-mode", value, "");
    }
    get zIndex() {
      return this[S$.$getPropertyValue]("z-index");
    }
    set zIndex(value) {
      if (value == null) dart.nullFailed(I[147], 8662, 21, "value");
      this[S$.$setProperty]("z-index", value, "");
    }
    get zoom() {
      return this[S$.$getPropertyValue]("zoom");
    }
    set zoom(value) {
      if (value == null) dart.nullFailed(I[147], 8670, 19, "value");
      this[S$.$setProperty]("zoom", value, "");
    }
  };
  (html$.CssStyleDeclarationBase.new = function() {
    ;
  }).prototype = html$.CssStyleDeclarationBase.prototype;
  dart.addTypeTests(html$.CssStyleDeclarationBase);
  dart.addTypeCaches(html$.CssStyleDeclarationBase);
  dart.setGetterSignature(html$.CssStyleDeclarationBase, () => ({
    __proto__: dart.getGetters(html$.CssStyleDeclarationBase.__proto__),
    alignContent: core.String,
    [S$0.$alignContent]: core.String,
    alignItems: core.String,
    [S$0.$alignItems]: core.String,
    alignSelf: core.String,
    [S$0.$alignSelf]: core.String,
    animation: core.String,
    [S$0.$animation]: core.String,
    animationDelay: core.String,
    [S$0.$animationDelay]: core.String,
    animationDirection: core.String,
    [S$0.$animationDirection]: core.String,
    animationDuration: core.String,
    [S$0.$animationDuration]: core.String,
    animationFillMode: core.String,
    [S$0.$animationFillMode]: core.String,
    animationIterationCount: core.String,
    [S$0.$animationIterationCount]: core.String,
    animationName: core.String,
    [S$.$animationName]: core.String,
    animationPlayState: core.String,
    [S$0.$animationPlayState]: core.String,
    animationTimingFunction: core.String,
    [S$0.$animationTimingFunction]: core.String,
    appRegion: core.String,
    [S$0.$appRegion]: core.String,
    appearance: core.String,
    [S$0.$appearance]: core.String,
    aspectRatio: core.String,
    [S$0.$aspectRatio]: core.String,
    backfaceVisibility: core.String,
    [S$0.$backfaceVisibility]: core.String,
    background: core.String,
    [S$.$background]: core.String,
    backgroundAttachment: core.String,
    [S$.$backgroundAttachment]: core.String,
    backgroundBlendMode: core.String,
    [S$0.$backgroundBlendMode]: core.String,
    backgroundClip: core.String,
    [S$0.$backgroundClip]: core.String,
    backgroundColor: core.String,
    [S$.$backgroundColor]: core.String,
    backgroundComposite: core.String,
    [S$0.$backgroundComposite]: core.String,
    backgroundImage: core.String,
    [S$.$backgroundImage]: core.String,
    backgroundOrigin: core.String,
    [S$0.$backgroundOrigin]: core.String,
    backgroundPosition: core.String,
    [S$.$backgroundPosition]: core.String,
    backgroundPositionX: core.String,
    [S$0.$backgroundPositionX]: core.String,
    backgroundPositionY: core.String,
    [S$0.$backgroundPositionY]: core.String,
    backgroundRepeat: core.String,
    [S$.$backgroundRepeat]: core.String,
    backgroundRepeatX: core.String,
    [S$0.$backgroundRepeatX]: core.String,
    backgroundRepeatY: core.String,
    [S$0.$backgroundRepeatY]: core.String,
    backgroundSize: core.String,
    [S$0.$backgroundSize]: core.String,
    border: core.String,
    [S$.$border]: core.String,
    borderAfter: core.String,
    [S$0.$borderAfter]: core.String,
    borderAfterColor: core.String,
    [S$0.$borderAfterColor]: core.String,
    borderAfterStyle: core.String,
    [S$0.$borderAfterStyle]: core.String,
    borderAfterWidth: core.String,
    [S$0.$borderAfterWidth]: core.String,
    borderBefore: core.String,
    [S$0.$borderBefore]: core.String,
    borderBeforeColor: core.String,
    [S$0.$borderBeforeColor]: core.String,
    borderBeforeStyle: core.String,
    [S$0.$borderBeforeStyle]: core.String,
    borderBeforeWidth: core.String,
    [S$0.$borderBeforeWidth]: core.String,
    borderBottom: core.String,
    [S$.$borderBottom]: core.String,
    borderBottomColor: core.String,
    [S$.$borderBottomColor]: core.String,
    borderBottomLeftRadius: core.String,
    [S$0.$borderBottomLeftRadius]: core.String,
    borderBottomRightRadius: core.String,
    [S$0.$borderBottomRightRadius]: core.String,
    borderBottomStyle: core.String,
    [S$.$borderBottomStyle]: core.String,
    borderBottomWidth: core.String,
    [S$.$borderBottomWidth]: core.String,
    borderCollapse: core.String,
    [S$.$borderCollapse]: core.String,
    borderColor: core.String,
    [S$.$borderColor]: core.String,
    borderEnd: core.String,
    [S$0.$borderEnd]: core.String,
    borderEndColor: core.String,
    [S$0.$borderEndColor]: core.String,
    borderEndStyle: core.String,
    [S$0.$borderEndStyle]: core.String,
    borderEndWidth: core.String,
    [S$0.$borderEndWidth]: core.String,
    borderFit: core.String,
    [S$0.$borderFit]: core.String,
    borderHorizontalSpacing: core.String,
    [S$0.$borderHorizontalSpacing]: core.String,
    borderImage: core.String,
    [S$0.$borderImage]: core.String,
    borderImageOutset: core.String,
    [S$0.$borderImageOutset]: core.String,
    borderImageRepeat: core.String,
    [S$0.$borderImageRepeat]: core.String,
    borderImageSlice: core.String,
    [S$0.$borderImageSlice]: core.String,
    borderImageSource: core.String,
    [S$0.$borderImageSource]: core.String,
    borderImageWidth: core.String,
    [S$0.$borderImageWidth]: core.String,
    borderLeft: core.String,
    [S$.$borderLeft]: core.String,
    borderLeftColor: core.String,
    [S$.$borderLeftColor]: core.String,
    borderLeftStyle: core.String,
    [S$.$borderLeftStyle]: core.String,
    borderLeftWidth: core.String,
    [S$.$borderLeftWidth]: core.String,
    borderRadius: core.String,
    [S$0.$borderRadius]: core.String,
    borderRight: core.String,
    [S$.$borderRight]: core.String,
    borderRightColor: core.String,
    [S$.$borderRightColor]: core.String,
    borderRightStyle: core.String,
    [S$.$borderRightStyle]: core.String,
    borderRightWidth: core.String,
    [S$0.$borderRightWidth]: core.String,
    borderSpacing: core.String,
    [S$0.$borderSpacing]: core.String,
    borderStart: core.String,
    [S$0.$borderStart]: core.String,
    borderStartColor: core.String,
    [S$0.$borderStartColor]: core.String,
    borderStartStyle: core.String,
    [S$0.$borderStartStyle]: core.String,
    borderStartWidth: core.String,
    [S$0.$borderStartWidth]: core.String,
    borderStyle: core.String,
    [S$0.$borderStyle]: core.String,
    borderTop: core.String,
    [S$0.$borderTop]: core.String,
    borderTopColor: core.String,
    [S$0.$borderTopColor]: core.String,
    borderTopLeftRadius: core.String,
    [S$0.$borderTopLeftRadius]: core.String,
    borderTopRightRadius: core.String,
    [S$0.$borderTopRightRadius]: core.String,
    borderTopStyle: core.String,
    [S$0.$borderTopStyle]: core.String,
    borderTopWidth: core.String,
    [S$0.$borderTopWidth]: core.String,
    borderVerticalSpacing: core.String,
    [S$0.$borderVerticalSpacing]: core.String,
    borderWidth: core.String,
    [S$0.$borderWidth]: core.String,
    bottom: core.String,
    [$bottom]: core.String,
    boxAlign: core.String,
    [S$0.$boxAlign]: core.String,
    boxDecorationBreak: core.String,
    [S$0.$boxDecorationBreak]: core.String,
    boxDirection: core.String,
    [S$0.$boxDirection]: core.String,
    boxFlex: core.String,
    [S$0.$boxFlex]: core.String,
    boxFlexGroup: core.String,
    [S$0.$boxFlexGroup]: core.String,
    boxLines: core.String,
    [S$0.$boxLines]: core.String,
    boxOrdinalGroup: core.String,
    [S$0.$boxOrdinalGroup]: core.String,
    boxOrient: core.String,
    [S$0.$boxOrient]: core.String,
    boxPack: core.String,
    [S$0.$boxPack]: core.String,
    boxReflect: core.String,
    [S$0.$boxReflect]: core.String,
    boxShadow: core.String,
    [S$0.$boxShadow]: core.String,
    boxSizing: core.String,
    [S$0.$boxSizing]: core.String,
    captionSide: core.String,
    [S$0.$captionSide]: core.String,
    clear: core.String,
    [$clear]: core.String,
    clip: core.String,
    [S$.$clip]: core.String,
    clipPath: core.String,
    [S$0.$clipPath]: core.String,
    color: core.String,
    [S$0.$color]: core.String,
    columnBreakAfter: core.String,
    [S$0.$columnBreakAfter]: core.String,
    columnBreakBefore: core.String,
    [S$0.$columnBreakBefore]: core.String,
    columnBreakInside: core.String,
    [S$0.$columnBreakInside]: core.String,
    columnCount: core.String,
    [S$0.$columnCount]: core.String,
    columnFill: core.String,
    [S$0.$columnFill]: core.String,
    columnGap: core.String,
    [S$0.$columnGap]: core.String,
    columnRule: core.String,
    [S$0.$columnRule]: core.String,
    columnRuleColor: core.String,
    [S$0.$columnRuleColor]: core.String,
    columnRuleStyle: core.String,
    [S$0.$columnRuleStyle]: core.String,
    columnRuleWidth: core.String,
    [S$0.$columnRuleWidth]: core.String,
    columnSpan: core.String,
    [S$0.$columnSpan]: core.String,
    columnWidth: core.String,
    [S$0.$columnWidth]: core.String,
    columns: core.String,
    [S$0.$columns]: core.String,
    content: core.String,
    [S$0.$content]: core.String,
    counterIncrement: core.String,
    [S$0.$counterIncrement]: core.String,
    counterReset: core.String,
    [S$0.$counterReset]: core.String,
    cursor: core.String,
    [S$0.$cursor]: core.String,
    direction: core.String,
    [S.$direction]: core.String,
    display: core.String,
    [S$0.$display]: core.String,
    emptyCells: core.String,
    [S$0.$emptyCells]: core.String,
    filter: core.String,
    [S$.$filter]: core.String,
    flex: core.String,
    [S$0.$flex]: core.String,
    flexBasis: core.String,
    [S$0.$flexBasis]: core.String,
    flexDirection: core.String,
    [S$0.$flexDirection]: core.String,
    flexFlow: core.String,
    [S$0.$flexFlow]: core.String,
    flexGrow: core.String,
    [S$0.$flexGrow]: core.String,
    flexShrink: core.String,
    [S$0.$flexShrink]: core.String,
    flexWrap: core.String,
    [S$0.$flexWrap]: core.String,
    float: core.String,
    [S$0.$float]: core.String,
    font: core.String,
    [S$.$font]: core.String,
    fontFamily: core.String,
    [S$0.$fontFamily]: core.String,
    fontFeatureSettings: core.String,
    [S$0.$fontFeatureSettings]: core.String,
    fontKerning: core.String,
    [S$0.$fontKerning]: core.String,
    fontSize: core.String,
    [S$0.$fontSize]: core.String,
    fontSizeDelta: core.String,
    [S$0.$fontSizeDelta]: core.String,
    fontSmoothing: core.String,
    [S$0.$fontSmoothing]: core.String,
    fontStretch: core.String,
    [S$0.$fontStretch]: core.String,
    fontStyle: core.String,
    [S$0.$fontStyle]: core.String,
    fontVariant: core.String,
    [S$0.$fontVariant]: core.String,
    fontVariantLigatures: core.String,
    [S$0.$fontVariantLigatures]: core.String,
    fontWeight: core.String,
    [S$0.$fontWeight]: core.String,
    grid: core.String,
    [S$0.$grid]: core.String,
    gridArea: core.String,
    [S$0.$gridArea]: core.String,
    gridAutoColumns: core.String,
    [S$0.$gridAutoColumns]: core.String,
    gridAutoFlow: core.String,
    [S$0.$gridAutoFlow]: core.String,
    gridAutoRows: core.String,
    [S$0.$gridAutoRows]: core.String,
    gridColumn: core.String,
    [S$0.$gridColumn]: core.String,
    gridColumnEnd: core.String,
    [S$0.$gridColumnEnd]: core.String,
    gridColumnStart: core.String,
    [S$0.$gridColumnStart]: core.String,
    gridRow: core.String,
    [S$0.$gridRow]: core.String,
    gridRowEnd: core.String,
    [S$0.$gridRowEnd]: core.String,
    gridRowStart: core.String,
    [S$0.$gridRowStart]: core.String,
    gridTemplate: core.String,
    [S$0.$gridTemplate]: core.String,
    gridTemplateAreas: core.String,
    [S$0.$gridTemplateAreas]: core.String,
    gridTemplateColumns: core.String,
    [S$0.$gridTemplateColumns]: core.String,
    gridTemplateRows: core.String,
    [S$0.$gridTemplateRows]: core.String,
    height: core.String,
    [$height]: core.String,
    highlight: core.String,
    [S$0.$highlight]: core.String,
    hyphenateCharacter: core.String,
    [S$0.$hyphenateCharacter]: core.String,
    imageRendering: core.String,
    [S$0.$imageRendering]: core.String,
    isolation: core.String,
    [S$0.$isolation]: core.String,
    justifyContent: core.String,
    [S$0.$justifyContent]: core.String,
    justifySelf: core.String,
    [S$0.$justifySelf]: core.String,
    left: core.String,
    [$left]: core.String,
    letterSpacing: core.String,
    [S$0.$letterSpacing]: core.String,
    lineBoxContain: core.String,
    [S$0.$lineBoxContain]: core.String,
    lineBreak: core.String,
    [S$0.$lineBreak]: core.String,
    lineClamp: core.String,
    [S$0.$lineClamp]: core.String,
    lineHeight: core.String,
    [S$0.$lineHeight]: core.String,
    listStyle: core.String,
    [S$0.$listStyle]: core.String,
    listStyleImage: core.String,
    [S$0.$listStyleImage]: core.String,
    listStylePosition: core.String,
    [S$0.$listStylePosition]: core.String,
    listStyleType: core.String,
    [S$0.$listStyleType]: core.String,
    locale: core.String,
    [S$0.$locale]: core.String,
    logicalHeight: core.String,
    [S$0.$logicalHeight]: core.String,
    logicalWidth: core.String,
    [S$0.$logicalWidth]: core.String,
    margin: core.String,
    [S$0.$margin]: core.String,
    marginAfter: core.String,
    [S$0.$marginAfter]: core.String,
    marginAfterCollapse: core.String,
    [S$0.$marginAfterCollapse]: core.String,
    marginBefore: core.String,
    [S$0.$marginBefore]: core.String,
    marginBeforeCollapse: core.String,
    [S$0.$marginBeforeCollapse]: core.String,
    marginBottom: core.String,
    [S$0.$marginBottom]: core.String,
    marginBottomCollapse: core.String,
    [S$0.$marginBottomCollapse]: core.String,
    marginCollapse: core.String,
    [S$0.$marginCollapse]: core.String,
    marginEnd: core.String,
    [S$0.$marginEnd]: core.String,
    marginLeft: core.String,
    [S$0.$marginLeft]: core.String,
    marginRight: core.String,
    [S$0.$marginRight]: core.String,
    marginStart: core.String,
    [S$0.$marginStart]: core.String,
    marginTop: core.String,
    [S$0.$marginTop]: core.String,
    marginTopCollapse: core.String,
    [S$0.$marginTopCollapse]: core.String,
    mask: core.String,
    [S$0.$mask]: core.String,
    maskBoxImage: core.String,
    [S$0.$maskBoxImage]: core.String,
    maskBoxImageOutset: core.String,
    [S$0.$maskBoxImageOutset]: core.String,
    maskBoxImageRepeat: core.String,
    [S$0.$maskBoxImageRepeat]: core.String,
    maskBoxImageSlice: core.String,
    [S$0.$maskBoxImageSlice]: core.String,
    maskBoxImageSource: core.String,
    [S$0.$maskBoxImageSource]: core.String,
    maskBoxImageWidth: core.String,
    [S$0.$maskBoxImageWidth]: core.String,
    maskClip: core.String,
    [S$0.$maskClip]: core.String,
    maskComposite: core.String,
    [S$0.$maskComposite]: core.String,
    maskImage: core.String,
    [S$0.$maskImage]: core.String,
    maskOrigin: core.String,
    [S$0.$maskOrigin]: core.String,
    maskPosition: core.String,
    [S$0.$maskPosition]: core.String,
    maskPositionX: core.String,
    [S$0.$maskPositionX]: core.String,
    maskPositionY: core.String,
    [S$0.$maskPositionY]: core.String,
    maskRepeat: core.String,
    [S$0.$maskRepeat]: core.String,
    maskRepeatX: core.String,
    [S$0.$maskRepeatX]: core.String,
    maskRepeatY: core.String,
    [S$0.$maskRepeatY]: core.String,
    maskSize: core.String,
    [S$0.$maskSize]: core.String,
    maskSourceType: core.String,
    [S$0.$maskSourceType]: core.String,
    maxHeight: core.String,
    [S$0.$maxHeight]: core.String,
    maxLogicalHeight: core.String,
    [S$0.$maxLogicalHeight]: core.String,
    maxLogicalWidth: core.String,
    [S$0.$maxLogicalWidth]: core.String,
    maxWidth: core.String,
    [S$0.$maxWidth]: core.String,
    maxZoom: core.String,
    [S$0.$maxZoom]: core.String,
    minHeight: core.String,
    [S$0.$minHeight]: core.String,
    minLogicalHeight: core.String,
    [S$0.$minLogicalHeight]: core.String,
    minLogicalWidth: core.String,
    [S$0.$minLogicalWidth]: core.String,
    minWidth: core.String,
    [S$0.$minWidth]: core.String,
    minZoom: core.String,
    [S$0.$minZoom]: core.String,
    mixBlendMode: core.String,
    [S$0.$mixBlendMode]: core.String,
    objectFit: core.String,
    [S$0.$objectFit]: core.String,
    objectPosition: core.String,
    [S$0.$objectPosition]: core.String,
    opacity: core.String,
    [S$0.$opacity]: core.String,
    order: core.String,
    [S$0.$order]: core.String,
    orientation: core.String,
    [S$.$orientation]: core.String,
    orphans: core.String,
    [S$0.$orphans]: core.String,
    outline: core.String,
    [S$0.$outline]: core.String,
    outlineColor: core.String,
    [S$0.$outlineColor]: core.String,
    outlineOffset: core.String,
    [S$0.$outlineOffset]: core.String,
    outlineStyle: core.String,
    [S$0.$outlineStyle]: core.String,
    outlineWidth: core.String,
    [S$0.$outlineWidth]: core.String,
    overflow: core.String,
    [S$0.$overflow]: core.String,
    overflowWrap: core.String,
    [S$0.$overflowWrap]: core.String,
    overflowX: core.String,
    [S$0.$overflowX]: core.String,
    overflowY: core.String,
    [S$0.$overflowY]: core.String,
    padding: core.String,
    [S$0.$padding]: core.String,
    paddingAfter: core.String,
    [S$0.$paddingAfter]: core.String,
    paddingBefore: core.String,
    [S$0.$paddingBefore]: core.String,
    paddingBottom: core.String,
    [S$0.$paddingBottom]: core.String,
    paddingEnd: core.String,
    [S$0.$paddingEnd]: core.String,
    paddingLeft: core.String,
    [S$0.$paddingLeft]: core.String,
    paddingRight: core.String,
    [S$0.$paddingRight]: core.String,
    paddingStart: core.String,
    [S$0.$paddingStart]: core.String,
    paddingTop: core.String,
    [S$0.$paddingTop]: core.String,
    page: core.String,
    [S$0.$page]: core.String,
    pageBreakAfter: core.String,
    [S$0.$pageBreakAfter]: core.String,
    pageBreakBefore: core.String,
    [S$0.$pageBreakBefore]: core.String,
    pageBreakInside: core.String,
    [S$0.$pageBreakInside]: core.String,
    perspective: core.String,
    [S$0.$perspective]: core.String,
    perspectiveOrigin: core.String,
    [S$0.$perspectiveOrigin]: core.String,
    perspectiveOriginX: core.String,
    [S$0.$perspectiveOriginX]: core.String,
    perspectiveOriginY: core.String,
    [S$0.$perspectiveOriginY]: core.String,
    pointerEvents: core.String,
    [S$0.$pointerEvents]: core.String,
    position: core.String,
    [S$0.$position]: core.String,
    printColorAdjust: core.String,
    [S$0.$printColorAdjust]: core.String,
    quotes: core.String,
    [S$0.$quotes]: core.String,
    resize: core.String,
    [S$0.$resize]: core.String,
    right: core.String,
    [$right]: core.String,
    rtlOrdering: core.String,
    [S$0.$rtlOrdering]: core.String,
    rubyPosition: core.String,
    [S$0.$rubyPosition]: core.String,
    scrollBehavior: core.String,
    [S$0.$scrollBehavior]: core.String,
    shapeImageThreshold: core.String,
    [S$0.$shapeImageThreshold]: core.String,
    shapeMargin: core.String,
    [S$0.$shapeMargin]: core.String,
    shapeOutside: core.String,
    [S$0.$shapeOutside]: core.String,
    size: core.String,
    [S$.$size]: core.String,
    speak: core.String,
    [S$0.$speak]: core.String,
    src: core.String,
    [S$.$src]: core.String,
    tabSize: core.String,
    [S$0.$tabSize]: core.String,
    tableLayout: core.String,
    [S$0.$tableLayout]: core.String,
    tapHighlightColor: core.String,
    [S$0.$tapHighlightColor]: core.String,
    textAlign: core.String,
    [S$.$textAlign]: core.String,
    textAlignLast: core.String,
    [S$0.$textAlignLast]: core.String,
    textCombine: core.String,
    [S$0.$textCombine]: core.String,
    textDecoration: core.String,
    [S$0.$textDecoration]: core.String,
    textDecorationColor: core.String,
    [S$0.$textDecorationColor]: core.String,
    textDecorationLine: core.String,
    [S$0.$textDecorationLine]: core.String,
    textDecorationStyle: core.String,
    [S$0.$textDecorationStyle]: core.String,
    textDecorationsInEffect: core.String,
    [S$0.$textDecorationsInEffect]: core.String,
    textEmphasis: core.String,
    [S$0.$textEmphasis]: core.String,
    textEmphasisColor: core.String,
    [S$0.$textEmphasisColor]: core.String,
    textEmphasisPosition: core.String,
    [S$0.$textEmphasisPosition]: core.String,
    textEmphasisStyle: core.String,
    [S$0.$textEmphasisStyle]: core.String,
    textFillColor: core.String,
    [S$0.$textFillColor]: core.String,
    textIndent: core.String,
    [S$0.$textIndent]: core.String,
    textJustify: core.String,
    [S$0.$textJustify]: core.String,
    textLineThroughColor: core.String,
    [S$0.$textLineThroughColor]: core.String,
    textLineThroughMode: core.String,
    [S$0.$textLineThroughMode]: core.String,
    textLineThroughStyle: core.String,
    [S$0.$textLineThroughStyle]: core.String,
    textLineThroughWidth: core.String,
    [S$0.$textLineThroughWidth]: core.String,
    textOrientation: core.String,
    [S$0.$textOrientation]: core.String,
    textOverflow: core.String,
    [S$0.$textOverflow]: core.String,
    textOverlineColor: core.String,
    [S$0.$textOverlineColor]: core.String,
    textOverlineMode: core.String,
    [S$0.$textOverlineMode]: core.String,
    textOverlineStyle: core.String,
    [S$0.$textOverlineStyle]: core.String,
    textOverlineWidth: core.String,
    [S$0.$textOverlineWidth]: core.String,
    textRendering: core.String,
    [S$0.$textRendering]: core.String,
    textSecurity: core.String,
    [S$0.$textSecurity]: core.String,
    textShadow: core.String,
    [S$0.$textShadow]: core.String,
    textStroke: core.String,
    [S$0.$textStroke]: core.String,
    textStrokeColor: core.String,
    [S$0.$textStrokeColor]: core.String,
    textStrokeWidth: core.String,
    [S$0.$textStrokeWidth]: core.String,
    textTransform: core.String,
    [S$0.$textTransform]: core.String,
    textUnderlineColor: core.String,
    [S$0.$textUnderlineColor]: core.String,
    textUnderlineMode: core.String,
    [S$0.$textUnderlineMode]: core.String,
    textUnderlinePosition: core.String,
    [S$0.$textUnderlinePosition]: core.String,
    textUnderlineStyle: core.String,
    [S$0.$textUnderlineStyle]: core.String,
    textUnderlineWidth: core.String,
    [S$0.$textUnderlineWidth]: core.String,
    top: core.String,
    [$top]: core.String,
    touchAction: core.String,
    [S$0.$touchAction]: core.String,
    touchActionDelay: core.String,
    [S$0.$touchActionDelay]: core.String,
    transform: core.String,
    [S$.$transform]: core.String,
    transformOrigin: core.String,
    [S$0.$transformOrigin]: core.String,
    transformOriginX: core.String,
    [S$0.$transformOriginX]: core.String,
    transformOriginY: core.String,
    [S$0.$transformOriginY]: core.String,
    transformOriginZ: core.String,
    [S$0.$transformOriginZ]: core.String,
    transformStyle: core.String,
    [S$0.$transformStyle]: core.String,
    transition: core.String,
    [S$0.$transition]: core.String,
    transitionDelay: core.String,
    [S$0.$transitionDelay]: core.String,
    transitionDuration: core.String,
    [S$0.$transitionDuration]: core.String,
    transitionProperty: core.String,
    [S$0.$transitionProperty]: core.String,
    transitionTimingFunction: core.String,
    [S$0.$transitionTimingFunction]: core.String,
    unicodeBidi: core.String,
    [S$0.$unicodeBidi]: core.String,
    unicodeRange: core.String,
    [S$0.$unicodeRange]: core.String,
    userDrag: core.String,
    [S$0.$userDrag]: core.String,
    userModify: core.String,
    [S$0.$userModify]: core.String,
    userSelect: core.String,
    [S$0.$userSelect]: core.String,
    userZoom: core.String,
    [S$0.$userZoom]: core.String,
    verticalAlign: core.String,
    [S$0.$verticalAlign]: core.String,
    visibility: core.String,
    [S$0.$visibility]: core.String,
    whiteSpace: core.String,
    [S$0.$whiteSpace]: core.String,
    widows: core.String,
    [S$0.$widows]: core.String,
    width: core.String,
    [$width]: core.String,
    willChange: core.String,
    [S$0.$willChange]: core.String,
    wordBreak: core.String,
    [S$0.$wordBreak]: core.String,
    wordSpacing: core.String,
    [S$0.$wordSpacing]: core.String,
    wordWrap: core.String,
    [S$0.$wordWrap]: core.String,
    wrapFlow: core.String,
    [S$0.$wrapFlow]: core.String,
    wrapThrough: core.String,
    [S$0.$wrapThrough]: core.String,
    writingMode: core.String,
    [S$0.$writingMode]: core.String,
    zIndex: core.String,
    [S$0.$zIndex]: core.String,
    zoom: core.String,
    [S$0.$zoom]: core.String
  }));
  dart.setSetterSignature(html$.CssStyleDeclarationBase, () => ({
    __proto__: dart.getSetters(html$.CssStyleDeclarationBase.__proto__),
    alignContent: core.String,
    [S$0.$alignContent]: core.String,
    alignItems: core.String,
    [S$0.$alignItems]: core.String,
    alignSelf: core.String,
    [S$0.$alignSelf]: core.String,
    animation: core.String,
    [S$0.$animation]: core.String,
    animationDelay: core.String,
    [S$0.$animationDelay]: core.String,
    animationDirection: core.String,
    [S$0.$animationDirection]: core.String,
    animationDuration: core.String,
    [S$0.$animationDuration]: core.String,
    animationFillMode: core.String,
    [S$0.$animationFillMode]: core.String,
    animationIterationCount: core.String,
    [S$0.$animationIterationCount]: core.String,
    animationName: core.String,
    [S$.$animationName]: core.String,
    animationPlayState: core.String,
    [S$0.$animationPlayState]: core.String,
    animationTimingFunction: core.String,
    [S$0.$animationTimingFunction]: core.String,
    appRegion: core.String,
    [S$0.$appRegion]: core.String,
    appearance: core.String,
    [S$0.$appearance]: core.String,
    aspectRatio: core.String,
    [S$0.$aspectRatio]: core.String,
    backfaceVisibility: core.String,
    [S$0.$backfaceVisibility]: core.String,
    background: core.String,
    [S$.$background]: core.String,
    backgroundAttachment: core.String,
    [S$.$backgroundAttachment]: core.String,
    backgroundBlendMode: core.String,
    [S$0.$backgroundBlendMode]: core.String,
    backgroundClip: core.String,
    [S$0.$backgroundClip]: core.String,
    backgroundColor: core.String,
    [S$.$backgroundColor]: core.String,
    backgroundComposite: core.String,
    [S$0.$backgroundComposite]: core.String,
    backgroundImage: core.String,
    [S$.$backgroundImage]: core.String,
    backgroundOrigin: core.String,
    [S$0.$backgroundOrigin]: core.String,
    backgroundPosition: core.String,
    [S$.$backgroundPosition]: core.String,
    backgroundPositionX: core.String,
    [S$0.$backgroundPositionX]: core.String,
    backgroundPositionY: core.String,
    [S$0.$backgroundPositionY]: core.String,
    backgroundRepeat: core.String,
    [S$.$backgroundRepeat]: core.String,
    backgroundRepeatX: core.String,
    [S$0.$backgroundRepeatX]: core.String,
    backgroundRepeatY: core.String,
    [S$0.$backgroundRepeatY]: core.String,
    backgroundSize: core.String,
    [S$0.$backgroundSize]: core.String,
    border: core.String,
    [S$.$border]: core.String,
    borderAfter: core.String,
    [S$0.$borderAfter]: core.String,
    borderAfterColor: core.String,
    [S$0.$borderAfterColor]: core.String,
    borderAfterStyle: core.String,
    [S$0.$borderAfterStyle]: core.String,
    borderAfterWidth: core.String,
    [S$0.$borderAfterWidth]: core.String,
    borderBefore: core.String,
    [S$0.$borderBefore]: core.String,
    borderBeforeColor: core.String,
    [S$0.$borderBeforeColor]: core.String,
    borderBeforeStyle: core.String,
    [S$0.$borderBeforeStyle]: core.String,
    borderBeforeWidth: core.String,
    [S$0.$borderBeforeWidth]: core.String,
    borderBottom: core.String,
    [S$.$borderBottom]: core.String,
    borderBottomColor: core.String,
    [S$.$borderBottomColor]: core.String,
    borderBottomLeftRadius: core.String,
    [S$0.$borderBottomLeftRadius]: core.String,
    borderBottomRightRadius: core.String,
    [S$0.$borderBottomRightRadius]: core.String,
    borderBottomStyle: core.String,
    [S$.$borderBottomStyle]: core.String,
    borderBottomWidth: core.String,
    [S$.$borderBottomWidth]: core.String,
    borderCollapse: core.String,
    [S$.$borderCollapse]: core.String,
    borderColor: core.String,
    [S$.$borderColor]: core.String,
    borderEnd: core.String,
    [S$0.$borderEnd]: core.String,
    borderEndColor: core.String,
    [S$0.$borderEndColor]: core.String,
    borderEndStyle: core.String,
    [S$0.$borderEndStyle]: core.String,
    borderEndWidth: core.String,
    [S$0.$borderEndWidth]: core.String,
    borderFit: core.String,
    [S$0.$borderFit]: core.String,
    borderHorizontalSpacing: core.String,
    [S$0.$borderHorizontalSpacing]: core.String,
    borderImage: core.String,
    [S$0.$borderImage]: core.String,
    borderImageOutset: core.String,
    [S$0.$borderImageOutset]: core.String,
    borderImageRepeat: core.String,
    [S$0.$borderImageRepeat]: core.String,
    borderImageSlice: core.String,
    [S$0.$borderImageSlice]: core.String,
    borderImageSource: core.String,
    [S$0.$borderImageSource]: core.String,
    borderImageWidth: core.String,
    [S$0.$borderImageWidth]: core.String,
    borderLeft: core.String,
    [S$.$borderLeft]: core.String,
    borderLeftColor: core.String,
    [S$.$borderLeftColor]: core.String,
    borderLeftStyle: core.String,
    [S$.$borderLeftStyle]: core.String,
    borderLeftWidth: core.String,
    [S$.$borderLeftWidth]: core.String,
    borderRadius: core.String,
    [S$0.$borderRadius]: core.String,
    borderRight: core.String,
    [S$.$borderRight]: core.String,
    borderRightColor: core.String,
    [S$.$borderRightColor]: core.String,
    borderRightStyle: core.String,
    [S$.$borderRightStyle]: core.String,
    borderRightWidth: core.String,
    [S$0.$borderRightWidth]: core.String,
    borderSpacing: core.String,
    [S$0.$borderSpacing]: core.String,
    borderStart: core.String,
    [S$0.$borderStart]: core.String,
    borderStartColor: core.String,
    [S$0.$borderStartColor]: core.String,
    borderStartStyle: core.String,
    [S$0.$borderStartStyle]: core.String,
    borderStartWidth: core.String,
    [S$0.$borderStartWidth]: core.String,
    borderStyle: core.String,
    [S$0.$borderStyle]: core.String,
    borderTop: core.String,
    [S$0.$borderTop]: core.String,
    borderTopColor: core.String,
    [S$0.$borderTopColor]: core.String,
    borderTopLeftRadius: core.String,
    [S$0.$borderTopLeftRadius]: core.String,
    borderTopRightRadius: core.String,
    [S$0.$borderTopRightRadius]: core.String,
    borderTopStyle: core.String,
    [S$0.$borderTopStyle]: core.String,
    borderTopWidth: core.String,
    [S$0.$borderTopWidth]: core.String,
    borderVerticalSpacing: core.String,
    [S$0.$borderVerticalSpacing]: core.String,
    borderWidth: core.String,
    [S$0.$borderWidth]: core.String,
    bottom: core.String,
    [$bottom]: core.String,
    boxAlign: core.String,
    [S$0.$boxAlign]: core.String,
    boxDecorationBreak: core.String,
    [S$0.$boxDecorationBreak]: core.String,
    boxDirection: core.String,
    [S$0.$boxDirection]: core.String,
    boxFlex: core.String,
    [S$0.$boxFlex]: core.String,
    boxFlexGroup: core.String,
    [S$0.$boxFlexGroup]: core.String,
    boxLines: core.String,
    [S$0.$boxLines]: core.String,
    boxOrdinalGroup: core.String,
    [S$0.$boxOrdinalGroup]: core.String,
    boxOrient: core.String,
    [S$0.$boxOrient]: core.String,
    boxPack: core.String,
    [S$0.$boxPack]: core.String,
    boxReflect: core.String,
    [S$0.$boxReflect]: core.String,
    boxShadow: core.String,
    [S$0.$boxShadow]: core.String,
    boxSizing: core.String,
    [S$0.$boxSizing]: core.String,
    captionSide: core.String,
    [S$0.$captionSide]: core.String,
    clear: core.String,
    [$clear]: core.String,
    clip: core.String,
    [S$.$clip]: core.String,
    clipPath: core.String,
    [S$0.$clipPath]: core.String,
    color: core.String,
    [S$0.$color]: core.String,
    columnBreakAfter: core.String,
    [S$0.$columnBreakAfter]: core.String,
    columnBreakBefore: core.String,
    [S$0.$columnBreakBefore]: core.String,
    columnBreakInside: core.String,
    [S$0.$columnBreakInside]: core.String,
    columnCount: core.String,
    [S$0.$columnCount]: core.String,
    columnFill: core.String,
    [S$0.$columnFill]: core.String,
    columnGap: core.String,
    [S$0.$columnGap]: core.String,
    columnRule: core.String,
    [S$0.$columnRule]: core.String,
    columnRuleColor: core.String,
    [S$0.$columnRuleColor]: core.String,
    columnRuleStyle: core.String,
    [S$0.$columnRuleStyle]: core.String,
    columnRuleWidth: core.String,
    [S$0.$columnRuleWidth]: core.String,
    columnSpan: core.String,
    [S$0.$columnSpan]: core.String,
    columnWidth: core.String,
    [S$0.$columnWidth]: core.String,
    columns: core.String,
    [S$0.$columns]: core.String,
    content: core.String,
    [S$0.$content]: core.String,
    counterIncrement: core.String,
    [S$0.$counterIncrement]: core.String,
    counterReset: core.String,
    [S$0.$counterReset]: core.String,
    cursor: core.String,
    [S$0.$cursor]: core.String,
    direction: core.String,
    [S.$direction]: core.String,
    display: core.String,
    [S$0.$display]: core.String,
    emptyCells: core.String,
    [S$0.$emptyCells]: core.String,
    filter: core.String,
    [S$.$filter]: core.String,
    flex: core.String,
    [S$0.$flex]: core.String,
    flexBasis: core.String,
    [S$0.$flexBasis]: core.String,
    flexDirection: core.String,
    [S$0.$flexDirection]: core.String,
    flexFlow: core.String,
    [S$0.$flexFlow]: core.String,
    flexGrow: core.String,
    [S$0.$flexGrow]: core.String,
    flexShrink: core.String,
    [S$0.$flexShrink]: core.String,
    flexWrap: core.String,
    [S$0.$flexWrap]: core.String,
    float: core.String,
    [S$0.$float]: core.String,
    font: core.String,
    [S$.$font]: core.String,
    fontFamily: core.String,
    [S$0.$fontFamily]: core.String,
    fontFeatureSettings: core.String,
    [S$0.$fontFeatureSettings]: core.String,
    fontKerning: core.String,
    [S$0.$fontKerning]: core.String,
    fontSize: core.String,
    [S$0.$fontSize]: core.String,
    fontSizeDelta: core.String,
    [S$0.$fontSizeDelta]: core.String,
    fontSmoothing: core.String,
    [S$0.$fontSmoothing]: core.String,
    fontStretch: core.String,
    [S$0.$fontStretch]: core.String,
    fontStyle: core.String,
    [S$0.$fontStyle]: core.String,
    fontVariant: core.String,
    [S$0.$fontVariant]: core.String,
    fontVariantLigatures: core.String,
    [S$0.$fontVariantLigatures]: core.String,
    fontWeight: core.String,
    [S$0.$fontWeight]: core.String,
    grid: core.String,
    [S$0.$grid]: core.String,
    gridArea: core.String,
    [S$0.$gridArea]: core.String,
    gridAutoColumns: core.String,
    [S$0.$gridAutoColumns]: core.String,
    gridAutoFlow: core.String,
    [S$0.$gridAutoFlow]: core.String,
    gridAutoRows: core.String,
    [S$0.$gridAutoRows]: core.String,
    gridColumn: core.String,
    [S$0.$gridColumn]: core.String,
    gridColumnEnd: core.String,
    [S$0.$gridColumnEnd]: core.String,
    gridColumnStart: core.String,
    [S$0.$gridColumnStart]: core.String,
    gridRow: core.String,
    [S$0.$gridRow]: core.String,
    gridRowEnd: core.String,
    [S$0.$gridRowEnd]: core.String,
    gridRowStart: core.String,
    [S$0.$gridRowStart]: core.String,
    gridTemplate: core.String,
    [S$0.$gridTemplate]: core.String,
    gridTemplateAreas: core.String,
    [S$0.$gridTemplateAreas]: core.String,
    gridTemplateColumns: core.String,
    [S$0.$gridTemplateColumns]: core.String,
    gridTemplateRows: core.String,
    [S$0.$gridTemplateRows]: core.String,
    height: core.String,
    [$height]: core.String,
    highlight: core.String,
    [S$0.$highlight]: core.String,
    hyphenateCharacter: core.String,
    [S$0.$hyphenateCharacter]: core.String,
    imageRendering: core.String,
    [S$0.$imageRendering]: core.String,
    isolation: core.String,
    [S$0.$isolation]: core.String,
    justifyContent: core.String,
    [S$0.$justifyContent]: core.String,
    justifySelf: core.String,
    [S$0.$justifySelf]: core.String,
    left: core.String,
    [$left]: core.String,
    letterSpacing: core.String,
    [S$0.$letterSpacing]: core.String,
    lineBoxContain: core.String,
    [S$0.$lineBoxContain]: core.String,
    lineBreak: core.String,
    [S$0.$lineBreak]: core.String,
    lineClamp: core.String,
    [S$0.$lineClamp]: core.String,
    lineHeight: core.String,
    [S$0.$lineHeight]: core.String,
    listStyle: core.String,
    [S$0.$listStyle]: core.String,
    listStyleImage: core.String,
    [S$0.$listStyleImage]: core.String,
    listStylePosition: core.String,
    [S$0.$listStylePosition]: core.String,
    listStyleType: core.String,
    [S$0.$listStyleType]: core.String,
    locale: core.String,
    [S$0.$locale]: core.String,
    logicalHeight: core.String,
    [S$0.$logicalHeight]: core.String,
    logicalWidth: core.String,
    [S$0.$logicalWidth]: core.String,
    margin: core.String,
    [S$0.$margin]: core.String,
    marginAfter: core.String,
    [S$0.$marginAfter]: core.String,
    marginAfterCollapse: core.String,
    [S$0.$marginAfterCollapse]: core.String,
    marginBefore: core.String,
    [S$0.$marginBefore]: core.String,
    marginBeforeCollapse: core.String,
    [S$0.$marginBeforeCollapse]: core.String,
    marginBottom: core.String,
    [S$0.$marginBottom]: core.String,
    marginBottomCollapse: core.String,
    [S$0.$marginBottomCollapse]: core.String,
    marginCollapse: core.String,
    [S$0.$marginCollapse]: core.String,
    marginEnd: core.String,
    [S$0.$marginEnd]: core.String,
    marginLeft: core.String,
    [S$0.$marginLeft]: core.String,
    marginRight: core.String,
    [S$0.$marginRight]: core.String,
    marginStart: core.String,
    [S$0.$marginStart]: core.String,
    marginTop: core.String,
    [S$0.$marginTop]: core.String,
    marginTopCollapse: core.String,
    [S$0.$marginTopCollapse]: core.String,
    mask: core.String,
    [S$0.$mask]: core.String,
    maskBoxImage: core.String,
    [S$0.$maskBoxImage]: core.String,
    maskBoxImageOutset: core.String,
    [S$0.$maskBoxImageOutset]: core.String,
    maskBoxImageRepeat: core.String,
    [S$0.$maskBoxImageRepeat]: core.String,
    maskBoxImageSlice: core.String,
    [S$0.$maskBoxImageSlice]: core.String,
    maskBoxImageSource: core.String,
    [S$0.$maskBoxImageSource]: core.String,
    maskBoxImageWidth: core.String,
    [S$0.$maskBoxImageWidth]: core.String,
    maskClip: core.String,
    [S$0.$maskClip]: core.String,
    maskComposite: core.String,
    [S$0.$maskComposite]: core.String,
    maskImage: core.String,
    [S$0.$maskImage]: core.String,
    maskOrigin: core.String,
    [S$0.$maskOrigin]: core.String,
    maskPosition: core.String,
    [S$0.$maskPosition]: core.String,
    maskPositionX: core.String,
    [S$0.$maskPositionX]: core.String,
    maskPositionY: core.String,
    [S$0.$maskPositionY]: core.String,
    maskRepeat: core.String,
    [S$0.$maskRepeat]: core.String,
    maskRepeatX: core.String,
    [S$0.$maskRepeatX]: core.String,
    maskRepeatY: core.String,
    [S$0.$maskRepeatY]: core.String,
    maskSize: core.String,
    [S$0.$maskSize]: core.String,
    maskSourceType: core.String,
    [S$0.$maskSourceType]: core.String,
    maxHeight: core.String,
    [S$0.$maxHeight]: core.String,
    maxLogicalHeight: core.String,
    [S$0.$maxLogicalHeight]: core.String,
    maxLogicalWidth: core.String,
    [S$0.$maxLogicalWidth]: core.String,
    maxWidth: core.String,
    [S$0.$maxWidth]: core.String,
    maxZoom: core.String,
    [S$0.$maxZoom]: core.String,
    minHeight: core.String,
    [S$0.$minHeight]: core.String,
    minLogicalHeight: core.String,
    [S$0.$minLogicalHeight]: core.String,
    minLogicalWidth: core.String,
    [S$0.$minLogicalWidth]: core.String,
    minWidth: core.String,
    [S$0.$minWidth]: core.String,
    minZoom: core.String,
    [S$0.$minZoom]: core.String,
    mixBlendMode: core.String,
    [S$0.$mixBlendMode]: core.String,
    objectFit: core.String,
    [S$0.$objectFit]: core.String,
    objectPosition: core.String,
    [S$0.$objectPosition]: core.String,
    opacity: core.String,
    [S$0.$opacity]: core.String,
    order: core.String,
    [S$0.$order]: core.String,
    orientation: core.String,
    [S$.$orientation]: core.String,
    orphans: core.String,
    [S$0.$orphans]: core.String,
    outline: core.String,
    [S$0.$outline]: core.String,
    outlineColor: core.String,
    [S$0.$outlineColor]: core.String,
    outlineOffset: core.String,
    [S$0.$outlineOffset]: core.String,
    outlineStyle: core.String,
    [S$0.$outlineStyle]: core.String,
    outlineWidth: core.String,
    [S$0.$outlineWidth]: core.String,
    overflow: core.String,
    [S$0.$overflow]: core.String,
    overflowWrap: core.String,
    [S$0.$overflowWrap]: core.String,
    overflowX: core.String,
    [S$0.$overflowX]: core.String,
    overflowY: core.String,
    [S$0.$overflowY]: core.String,
    padding: core.String,
    [S$0.$padding]: core.String,
    paddingAfter: core.String,
    [S$0.$paddingAfter]: core.String,
    paddingBefore: core.String,
    [S$0.$paddingBefore]: core.String,
    paddingBottom: core.String,
    [S$0.$paddingBottom]: core.String,
    paddingEnd: core.String,
    [S$0.$paddingEnd]: core.String,
    paddingLeft: core.String,
    [S$0.$paddingLeft]: core.String,
    paddingRight: core.String,
    [S$0.$paddingRight]: core.String,
    paddingStart: core.String,
    [S$0.$paddingStart]: core.String,
    paddingTop: core.String,
    [S$0.$paddingTop]: core.String,
    page: core.String,
    [S$0.$page]: core.String,
    pageBreakAfter: core.String,
    [S$0.$pageBreakAfter]: core.String,
    pageBreakBefore: core.String,
    [S$0.$pageBreakBefore]: core.String,
    pageBreakInside: core.String,
    [S$0.$pageBreakInside]: core.String,
    perspective: core.String,
    [S$0.$perspective]: core.String,
    perspectiveOrigin: core.String,
    [S$0.$perspectiveOrigin]: core.String,
    perspectiveOriginX: core.String,
    [S$0.$perspectiveOriginX]: core.String,
    perspectiveOriginY: core.String,
    [S$0.$perspectiveOriginY]: core.String,
    pointerEvents: core.String,
    [S$0.$pointerEvents]: core.String,
    position: core.String,
    [S$0.$position]: core.String,
    printColorAdjust: core.String,
    [S$0.$printColorAdjust]: core.String,
    quotes: core.String,
    [S$0.$quotes]: core.String,
    resize: core.String,
    [S$0.$resize]: core.String,
    right: core.String,
    [$right]: core.String,
    rtlOrdering: core.String,
    [S$0.$rtlOrdering]: core.String,
    rubyPosition: core.String,
    [S$0.$rubyPosition]: core.String,
    scrollBehavior: core.String,
    [S$0.$scrollBehavior]: core.String,
    shapeImageThreshold: core.String,
    [S$0.$shapeImageThreshold]: core.String,
    shapeMargin: core.String,
    [S$0.$shapeMargin]: core.String,
    shapeOutside: core.String,
    [S$0.$shapeOutside]: core.String,
    size: core.String,
    [S$.$size]: core.String,
    speak: core.String,
    [S$0.$speak]: core.String,
    src: core.String,
    [S$.$src]: core.String,
    tabSize: core.String,
    [S$0.$tabSize]: core.String,
    tableLayout: core.String,
    [S$0.$tableLayout]: core.String,
    tapHighlightColor: core.String,
    [S$0.$tapHighlightColor]: core.String,
    textAlign: core.String,
    [S$.$textAlign]: core.String,
    textAlignLast: core.String,
    [S$0.$textAlignLast]: core.String,
    textCombine: core.String,
    [S$0.$textCombine]: core.String,
    textDecoration: core.String,
    [S$0.$textDecoration]: core.String,
    textDecorationColor: core.String,
    [S$0.$textDecorationColor]: core.String,
    textDecorationLine: core.String,
    [S$0.$textDecorationLine]: core.String,
    textDecorationStyle: core.String,
    [S$0.$textDecorationStyle]: core.String,
    textDecorationsInEffect: core.String,
    [S$0.$textDecorationsInEffect]: core.String,
    textEmphasis: core.String,
    [S$0.$textEmphasis]: core.String,
    textEmphasisColor: core.String,
    [S$0.$textEmphasisColor]: core.String,
    textEmphasisPosition: core.String,
    [S$0.$textEmphasisPosition]: core.String,
    textEmphasisStyle: core.String,
    [S$0.$textEmphasisStyle]: core.String,
    textFillColor: core.String,
    [S$0.$textFillColor]: core.String,
    textIndent: core.String,
    [S$0.$textIndent]: core.String,
    textJustify: core.String,
    [S$0.$textJustify]: core.String,
    textLineThroughColor: core.String,
    [S$0.$textLineThroughColor]: core.String,
    textLineThroughMode: core.String,
    [S$0.$textLineThroughMode]: core.String,
    textLineThroughStyle: core.String,
    [S$0.$textLineThroughStyle]: core.String,
    textLineThroughWidth: core.String,
    [S$0.$textLineThroughWidth]: core.String,
    textOrientation: core.String,
    [S$0.$textOrientation]: core.String,
    textOverflow: core.String,
    [S$0.$textOverflow]: core.String,
    textOverlineColor: core.String,
    [S$0.$textOverlineColor]: core.String,
    textOverlineMode: core.String,
    [S$0.$textOverlineMode]: core.String,
    textOverlineStyle: core.String,
    [S$0.$textOverlineStyle]: core.String,
    textOverlineWidth: core.String,
    [S$0.$textOverlineWidth]: core.String,
    textRendering: core.String,
    [S$0.$textRendering]: core.String,
    textSecurity: core.String,
    [S$0.$textSecurity]: core.String,
    textShadow: core.String,
    [S$0.$textShadow]: core.String,
    textStroke: core.String,
    [S$0.$textStroke]: core.String,
    textStrokeColor: core.String,
    [S$0.$textStrokeColor]: core.String,
    textStrokeWidth: core.String,
    [S$0.$textStrokeWidth]: core.String,
    textTransform: core.String,
    [S$0.$textTransform]: core.String,
    textUnderlineColor: core.String,
    [S$0.$textUnderlineColor]: core.String,
    textUnderlineMode: core.String,
    [S$0.$textUnderlineMode]: core.String,
    textUnderlinePosition: core.String,
    [S$0.$textUnderlinePosition]: core.String,
    textUnderlineStyle: core.String,
    [S$0.$textUnderlineStyle]: core.String,
    textUnderlineWidth: core.String,
    [S$0.$textUnderlineWidth]: core.String,
    top: core.String,
    [$top]: core.String,
    touchAction: core.String,
    [S$0.$touchAction]: core.String,
    touchActionDelay: core.String,
    [S$0.$touchActionDelay]: core.String,
    transform: core.String,
    [S$.$transform]: core.String,
    transformOrigin: core.String,
    [S$0.$transformOrigin]: core.String,
    transformOriginX: core.String,
    [S$0.$transformOriginX]: core.String,
    transformOriginY: core.String,
    [S$0.$transformOriginY]: core.String,
    transformOriginZ: core.String,
    [S$0.$transformOriginZ]: core.String,
    transformStyle: core.String,
    [S$0.$transformStyle]: core.String,
    transition: core.String,
    [S$0.$transition]: core.String,
    transitionDelay: core.String,
    [S$0.$transitionDelay]: core.String,
    transitionDuration: core.String,
    [S$0.$transitionDuration]: core.String,
    transitionProperty: core.String,
    [S$0.$transitionProperty]: core.String,
    transitionTimingFunction: core.String,
    [S$0.$transitionTimingFunction]: core.String,
    unicodeBidi: core.String,
    [S$0.$unicodeBidi]: core.String,
    unicodeRange: core.String,
    [S$0.$unicodeRange]: core.String,
    userDrag: core.String,
    [S$0.$userDrag]: core.String,
    userModify: core.String,
    [S$0.$userModify]: core.String,
    userSelect: core.String,
    [S$0.$userSelect]: core.String,
    userZoom: core.String,
    [S$0.$userZoom]: core.String,
    verticalAlign: core.String,
    [S$0.$verticalAlign]: core.String,
    visibility: core.String,
    [S$0.$visibility]: core.String,
    whiteSpace: core.String,
    [S$0.$whiteSpace]: core.String,
    widows: core.String,
    [S$0.$widows]: core.String,
    width: core.String,
    [$width]: core.String,
    willChange: core.String,
    [S$0.$willChange]: core.String,
    wordBreak: core.String,
    [S$0.$wordBreak]: core.String,
    wordSpacing: core.String,
    [S$0.$wordSpacing]: core.String,
    wordWrap: core.String,
    [S$0.$wordWrap]: core.String,
    wrapFlow: core.String,
    [S$0.$wrapFlow]: core.String,
    wrapThrough: core.String,
    [S$0.$wrapThrough]: core.String,
    writingMode: core.String,
    [S$0.$writingMode]: core.String,
    zIndex: core.String,
    [S$0.$zIndex]: core.String,
    zoom: core.String,
    [S$0.$zoom]: core.String
  }));
  dart.setLibraryUri(html$.CssStyleDeclarationBase, I[148]);
  dart.defineExtensionAccessors(html$.CssStyleDeclarationBase, [
    'alignContent',
    'alignItems',
    'alignSelf',
    'animation',
    'animationDelay',
    'animationDirection',
    'animationDuration',
    'animationFillMode',
    'animationIterationCount',
    'animationName',
    'animationPlayState',
    'animationTimingFunction',
    'appRegion',
    'appearance',
    'aspectRatio',
    'backfaceVisibility',
    'background',
    'backgroundAttachment',
    'backgroundBlendMode',
    'backgroundClip',
    'backgroundColor',
    'backgroundComposite',
    'backgroundImage',
    'backgroundOrigin',
    'backgroundPosition',
    'backgroundPositionX',
    'backgroundPositionY',
    'backgroundRepeat',
    'backgroundRepeatX',
    'backgroundRepeatY',
    'backgroundSize',
    'border',
    'borderAfter',
    'borderAfterColor',
    'borderAfterStyle',
    'borderAfterWidth',
    'borderBefore',
    'borderBeforeColor',
    'borderBeforeStyle',
    'borderBeforeWidth',
    'borderBottom',
    'borderBottomColor',
    'borderBottomLeftRadius',
    'borderBottomRightRadius',
    'borderBottomStyle',
    'borderBottomWidth',
    'borderCollapse',
    'borderColor',
    'borderEnd',
    'borderEndColor',
    'borderEndStyle',
    'borderEndWidth',
    'borderFit',
    'borderHorizontalSpacing',
    'borderImage',
    'borderImageOutset',
    'borderImageRepeat',
    'borderImageSlice',
    'borderImageSource',
    'borderImageWidth',
    'borderLeft',
    'borderLeftColor',
    'borderLeftStyle',
    'borderLeftWidth',
    'borderRadius',
    'borderRight',
    'borderRightColor',
    'borderRightStyle',
    'borderRightWidth',
    'borderSpacing',
    'borderStart',
    'borderStartColor',
    'borderStartStyle',
    'borderStartWidth',
    'borderStyle',
    'borderTop',
    'borderTopColor',
    'borderTopLeftRadius',
    'borderTopRightRadius',
    'borderTopStyle',
    'borderTopWidth',
    'borderVerticalSpacing',
    'borderWidth',
    'bottom',
    'boxAlign',
    'boxDecorationBreak',
    'boxDirection',
    'boxFlex',
    'boxFlexGroup',
    'boxLines',
    'boxOrdinalGroup',
    'boxOrient',
    'boxPack',
    'boxReflect',
    'boxShadow',
    'boxSizing',
    'captionSide',
    'clear',
    'clip',
    'clipPath',
    'color',
    'columnBreakAfter',
    'columnBreakBefore',
    'columnBreakInside',
    'columnCount',
    'columnFill',
    'columnGap',
    'columnRule',
    'columnRuleColor',
    'columnRuleStyle',
    'columnRuleWidth',
    'columnSpan',
    'columnWidth',
    'columns',
    'content',
    'counterIncrement',
    'counterReset',
    'cursor',
    'direction',
    'display',
    'emptyCells',
    'filter',
    'flex',
    'flexBasis',
    'flexDirection',
    'flexFlow',
    'flexGrow',
    'flexShrink',
    'flexWrap',
    'float',
    'font',
    'fontFamily',
    'fontFeatureSettings',
    'fontKerning',
    'fontSize',
    'fontSizeDelta',
    'fontSmoothing',
    'fontStretch',
    'fontStyle',
    'fontVariant',
    'fontVariantLigatures',
    'fontWeight',
    'grid',
    'gridArea',
    'gridAutoColumns',
    'gridAutoFlow',
    'gridAutoRows',
    'gridColumn',
    'gridColumnEnd',
    'gridColumnStart',
    'gridRow',
    'gridRowEnd',
    'gridRowStart',
    'gridTemplate',
    'gridTemplateAreas',
    'gridTemplateColumns',
    'gridTemplateRows',
    'height',
    'highlight',
    'hyphenateCharacter',
    'imageRendering',
    'isolation',
    'justifyContent',
    'justifySelf',
    'left',
    'letterSpacing',
    'lineBoxContain',
    'lineBreak',
    'lineClamp',
    'lineHeight',
    'listStyle',
    'listStyleImage',
    'listStylePosition',
    'listStyleType',
    'locale',
    'logicalHeight',
    'logicalWidth',
    'margin',
    'marginAfter',
    'marginAfterCollapse',
    'marginBefore',
    'marginBeforeCollapse',
    'marginBottom',
    'marginBottomCollapse',
    'marginCollapse',
    'marginEnd',
    'marginLeft',
    'marginRight',
    'marginStart',
    'marginTop',
    'marginTopCollapse',
    'mask',
    'maskBoxImage',
    'maskBoxImageOutset',
    'maskBoxImageRepeat',
    'maskBoxImageSlice',
    'maskBoxImageSource',
    'maskBoxImageWidth',
    'maskClip',
    'maskComposite',
    'maskImage',
    'maskOrigin',
    'maskPosition',
    'maskPositionX',
    'maskPositionY',
    'maskRepeat',
    'maskRepeatX',
    'maskRepeatY',
    'maskSize',
    'maskSourceType',
    'maxHeight',
    'maxLogicalHeight',
    'maxLogicalWidth',
    'maxWidth',
    'maxZoom',
    'minHeight',
    'minLogicalHeight',
    'minLogicalWidth',
    'minWidth',
    'minZoom',
    'mixBlendMode',
    'objectFit',
    'objectPosition',
    'opacity',
    'order',
    'orientation',
    'orphans',
    'outline',
    'outlineColor',
    'outlineOffset',
    'outlineStyle',
    'outlineWidth',
    'overflow',
    'overflowWrap',
    'overflowX',
    'overflowY',
    'padding',
    'paddingAfter',
    'paddingBefore',
    'paddingBottom',
    'paddingEnd',
    'paddingLeft',
    'paddingRight',
    'paddingStart',
    'paddingTop',
    'page',
    'pageBreakAfter',
    'pageBreakBefore',
    'pageBreakInside',
    'perspective',
    'perspectiveOrigin',
    'perspectiveOriginX',
    'perspectiveOriginY',
    'pointerEvents',
    'position',
    'printColorAdjust',
    'quotes',
    'resize',
    'right',
    'rtlOrdering',
    'rubyPosition',
    'scrollBehavior',
    'shapeImageThreshold',
    'shapeMargin',
    'shapeOutside',
    'size',
    'speak',
    'src',
    'tabSize',
    'tableLayout',
    'tapHighlightColor',
    'textAlign',
    'textAlignLast',
    'textCombine',
    'textDecoration',
    'textDecorationColor',
    'textDecorationLine',
    'textDecorationStyle',
    'textDecorationsInEffect',
    'textEmphasis',
    'textEmphasisColor',
    'textEmphasisPosition',
    'textEmphasisStyle',
    'textFillColor',
    'textIndent',
    'textJustify',
    'textLineThroughColor',
    'textLineThroughMode',
    'textLineThroughStyle',
    'textLineThroughWidth',
    'textOrientation',
    'textOverflow',
    'textOverlineColor',
    'textOverlineMode',
    'textOverlineStyle',
    'textOverlineWidth',
    'textRendering',
    'textSecurity',
    'textShadow',
    'textStroke',
    'textStrokeColor',
    'textStrokeWidth',
    'textTransform',
    'textUnderlineColor',
    'textUnderlineMode',
    'textUnderlinePosition',
    'textUnderlineStyle',
    'textUnderlineWidth',
    'top',
    'touchAction',
    'touchActionDelay',
    'transform',
    'transformOrigin',
    'transformOriginX',
    'transformOriginY',
    'transformOriginZ',
    'transformStyle',
    'transition',
    'transitionDelay',
    'transitionDuration',
    'transitionProperty',
    'transitionTimingFunction',
    'unicodeBidi',
    'unicodeRange',
    'userDrag',
    'userModify',
    'userSelect',
    'userZoom',
    'verticalAlign',
    'visibility',
    'whiteSpace',
    'widows',
    'width',
    'willChange',
    'wordBreak',
    'wordSpacing',
    'wordWrap',
    'wrapFlow',
    'wrapThrough',
    'writingMode',
    'zIndex',
    'zoom'
  ]);
  const Interceptor_CssStyleDeclarationBase$36 = class Interceptor_CssStyleDeclarationBase extends _interceptors.Interceptor {};
  (Interceptor_CssStyleDeclarationBase$36.new = function() {
    Interceptor_CssStyleDeclarationBase$36.__proto__.new.call(this);
  }).prototype = Interceptor_CssStyleDeclarationBase$36.prototype;
  dart.applyMixin(Interceptor_CssStyleDeclarationBase$36, html$.CssStyleDeclarationBase);
  html$.CssStyleDeclaration = class CssStyleDeclaration extends Interceptor_CssStyleDeclarationBase$36 {
    static new() {
      return html$.CssStyleDeclaration.css("");
    }
    static css(css) {
      if (css == null) dart.nullFailed(I[147], 3963, 42, "css");
      let style = html$.DivElement.new().style;
      style.cssText = css;
      return style;
    }
    [S$.$getPropertyValue](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 3974, 34, "propertyName");
      return this[S$._getPropertyValueHelper](propertyName);
    }
    [S$._getPropertyValueHelper](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 3978, 41, "propertyName");
      return this[S$._getPropertyValue](this[S$._browserPropertyName](propertyName));
    }
    [S$.$supportsProperty](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 3990, 32, "propertyName");
      return dart.test(this[S$._supportsProperty](propertyName)) || dart.test(this[S$._supportsProperty](html$.CssStyleDeclaration._camelCase(dart.str(html_common.Device.cssPrefix) + dart.str(propertyName))));
    }
    [S$._supportsProperty](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 3995, 33, "propertyName");
      return propertyName in this;
    }
    [S$.$setProperty](propertyName, value, priority = null) {
      if (propertyName == null) dart.nullFailed(I[147], 3999, 27, "propertyName");
      return this[S$._setPropertyHelper](this[S$._browserPropertyName](propertyName), value, priority);
    }
    [S$._browserPropertyName](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 4004, 38, "propertyName");
      let name = html$.CssStyleDeclaration._readCache(propertyName);
      if (typeof name == 'string') return name;
      name = this[S$._supportedBrowserPropertyName](propertyName);
      html$.CssStyleDeclaration._writeCache(propertyName, name);
      return name;
    }
    [S$._supportedBrowserPropertyName](propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 4012, 47, "propertyName");
      if (dart.test(this[S$._supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
        return propertyName;
      }
      let prefixed = dart.str(html_common.Device.cssPrefix) + dart.str(propertyName);
      if (dart.test(this[S$._supportsProperty](prefixed))) {
        return prefixed;
      }
      return propertyName;
    }
    static _readCache(key) {
      if (key == null) dart.nullFailed(I[147], 4025, 36, "key");
      return html$.CssStyleDeclaration._propertyCache[key];
    }
    static _writeCache(key, value) {
      if (key == null) dart.nullFailed(I[147], 4027, 34, "key");
      if (value == null) dart.nullFailed(I[147], 4027, 46, "value");
      html$.CssStyleDeclaration._propertyCache[key] = value;
    }
    static _camelCase(hyphenated) {
      if (hyphenated == null) dart.nullFailed(I[147], 4031, 35, "hyphenated");
      let replacedMs = hyphenated.replace(/^-ms-/, "ms-");
      return replacedMs.replace(/-([\da-z])/ig, function(_, letter) {
        return letter.toUpperCase();
      });
    }
    [S$._setPropertyHelper](propertyName, value, priority = null) {
      if (propertyName == null) dart.nullFailed(I[147], 4040, 34, "propertyName");
      if (value == null) value = "";
      if (priority == null) priority = "";
      this.setProperty(propertyName, value, priority);
    }
    static get supportsTransitions() {
      return dart.nullCheck(html$.document.body).style[S$.$supportsProperty]("transition");
    }
    get [S$.$cssFloat]() {
      return this.cssFloat;
    }
    set [S$.$cssFloat](value) {
      this.cssFloat = value;
    }
    get [S$.$cssText]() {
      return this.cssText;
    }
    set [S$.$cssText](value) {
      this.cssText = value;
    }
    get [$length]() {
      return this.length;
    }
    get [S$.$parentRule]() {
      return this.parentRule;
    }
    [S$.$getPropertyPriority](...args) {
      return this.getPropertyPriority.apply(this, args);
    }
    [S$._getPropertyValue](...args) {
      return this.getPropertyValue.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$.$removeProperty](...args) {
      return this.removeProperty.apply(this, args);
    }
    get [S$.$background]() {
      return this[S$._background];
    }
    set [S$.$background](value) {
      this[S$._background] = value == null ? "" : value;
    }
    get [S$._background]() {
      return this.background;
    }
    set [S$._background](value) {
      this.background = value;
    }
    get [S$.$backgroundAttachment]() {
      return this[S$._backgroundAttachment];
    }
    set [S$.$backgroundAttachment](value) {
      this[S$._backgroundAttachment] = value == null ? "" : value;
    }
    get [S$._backgroundAttachment]() {
      return this.backgroundAttachment;
    }
    set [S$._backgroundAttachment](value) {
      this.backgroundAttachment = value;
    }
    get [S$.$backgroundColor]() {
      return this[S$._backgroundColor];
    }
    set [S$.$backgroundColor](value) {
      this[S$._backgroundColor] = value == null ? "" : value;
    }
    get [S$._backgroundColor]() {
      return this.backgroundColor;
    }
    set [S$._backgroundColor](value) {
      this.backgroundColor = value;
    }
    get [S$.$backgroundImage]() {
      return this[S$._backgroundImage];
    }
    set [S$.$backgroundImage](value) {
      this[S$._backgroundImage] = value == null ? "" : value;
    }
    get [S$._backgroundImage]() {
      return this.backgroundImage;
    }
    set [S$._backgroundImage](value) {
      this.backgroundImage = value;
    }
    get [S$.$backgroundPosition]() {
      return this[S$._backgroundPosition];
    }
    set [S$.$backgroundPosition](value) {
      this[S$._backgroundPosition] = value == null ? "" : value;
    }
    get [S$._backgroundPosition]() {
      return this.backgroundPosition;
    }
    set [S$._backgroundPosition](value) {
      this.backgroundPosition = value;
    }
    get [S$.$backgroundRepeat]() {
      return this[S$._backgroundRepeat];
    }
    set [S$.$backgroundRepeat](value) {
      this[S$._backgroundRepeat] = value == null ? "" : value;
    }
    get [S$._backgroundRepeat]() {
      return this.backgroundRepeat;
    }
    set [S$._backgroundRepeat](value) {
      this.backgroundRepeat = value;
    }
    get [S$.$border]() {
      return this[S$._border];
    }
    set [S$.$border](value) {
      this[S$._border] = value == null ? "" : value;
    }
    get [S$._border]() {
      return this.border;
    }
    set [S$._border](value) {
      this.border = value;
    }
    get [S$.$borderBottom]() {
      return this[S$._borderBottom];
    }
    set [S$.$borderBottom](value) {
      this[S$._borderBottom] = value == null ? "" : value;
    }
    get [S$._borderBottom]() {
      return this.borderBottom;
    }
    set [S$._borderBottom](value) {
      this.borderBottom = value;
    }
    get [S$.$borderBottomColor]() {
      return this[S$._borderBottomColor];
    }
    set [S$.$borderBottomColor](value) {
      this[S$._borderBottomColor] = value == null ? "" : value;
    }
    get [S$._borderBottomColor]() {
      return this.borderBottomColor;
    }
    set [S$._borderBottomColor](value) {
      this.borderBottomColor = value;
    }
    get [S$.$borderBottomStyle]() {
      return this[S$._borderBottomStyle];
    }
    set [S$.$borderBottomStyle](value) {
      this[S$._borderBottomStyle] = value == null ? "" : value;
    }
    get [S$._borderBottomStyle]() {
      return this.borderBottomStyle;
    }
    set [S$._borderBottomStyle](value) {
      this.borderBottomStyle = value;
    }
    get [S$.$borderBottomWidth]() {
      return this[S$._borderBottomWidth];
    }
    set [S$.$borderBottomWidth](value) {
      this[S$._borderBottomWidth] = value == null ? "" : value;
    }
    get [S$._borderBottomWidth]() {
      return this.borderBottomWidth;
    }
    set [S$._borderBottomWidth](value) {
      this.borderBottomWidth = value;
    }
    get [S$.$borderCollapse]() {
      return this[S$._borderCollapse];
    }
    set [S$.$borderCollapse](value) {
      this[S$._borderCollapse] = value == null ? "" : value;
    }
    get [S$._borderCollapse]() {
      return this.borderCollapse;
    }
    set [S$._borderCollapse](value) {
      this.borderCollapse = value;
    }
    get [S$.$borderColor]() {
      return this[S$._borderColor];
    }
    set [S$.$borderColor](value) {
      this[S$._borderColor] = value == null ? "" : value;
    }
    get [S$._borderColor]() {
      return this.borderColor;
    }
    set [S$._borderColor](value) {
      this.borderColor = value;
    }
    get [S$.$borderLeft]() {
      return this[S$._borderLeft];
    }
    set [S$.$borderLeft](value) {
      this[S$._borderLeft] = value == null ? "" : value;
    }
    get [S$._borderLeft]() {
      return this.borderLeft;
    }
    set [S$._borderLeft](value) {
      this.borderLeft = value;
    }
    get [S$.$borderLeftColor]() {
      return this[S$._borderLeftColor];
    }
    set [S$.$borderLeftColor](value) {
      this[S$._borderLeftColor] = value == null ? "" : value;
    }
    get [S$._borderLeftColor]() {
      return this.borderLeftColor;
    }
    set [S$._borderLeftColor](value) {
      this.borderLeftColor = value;
    }
    get [S$.$borderLeftStyle]() {
      return this[S$._borderLeftStyle];
    }
    set [S$.$borderLeftStyle](value) {
      this[S$._borderLeftStyle] = value == null ? "" : value;
    }
    get [S$._borderLeftStyle]() {
      return this.borderLeftStyle;
    }
    set [S$._borderLeftStyle](value) {
      this.borderLeftStyle = value;
    }
    get [S$.$borderLeftWidth]() {
      return this[S$._borderLeftWidth];
    }
    set [S$.$borderLeftWidth](value) {
      this[S$._borderLeftWidth] = value == null ? "" : value;
    }
    get [S$._borderLeftWidth]() {
      return this.borderLeftWidth;
    }
    set [S$._borderLeftWidth](value) {
      this.borderLeftWidth = value;
    }
    get [S$.$borderRight]() {
      return this[S$._borderRight];
    }
    set [S$.$borderRight](value) {
      this[S$._borderRight] = value == null ? "" : value;
    }
    get [S$._borderRight]() {
      return this.borderRight;
    }
    set [S$._borderRight](value) {
      this.borderRight = value;
    }
    get [S$.$borderRightColor]() {
      return this[S$._borderRightColor];
    }
    set [S$.$borderRightColor](value) {
      this[S$._borderRightColor] = value == null ? "" : value;
    }
    get [S$._borderRightColor]() {
      return this.borderRightColor;
    }
    set [S$._borderRightColor](value) {
      this.borderRightColor = value;
    }
    get [S$.$borderRightStyle]() {
      return this[S$._borderRightStyle];
    }
    set [S$.$borderRightStyle](value) {
      this[S$._borderRightStyle] = value == null ? "" : value;
    }
    get [S$._borderRightStyle]() {
      return this.borderRightStyle;
    }
    set [S$._borderRightStyle](value) {
      this.borderRightStyle = value;
    }
    get [S$0.$borderRightWidth]() {
      return this[S$._borderRightWidth];
    }
    set [S$0.$borderRightWidth](value) {
      this[S$._borderRightWidth] = value == null ? "" : value;
    }
    get [S$._borderRightWidth]() {
      return this.borderRightWidth;
    }
    set [S$._borderRightWidth](value) {
      this.borderRightWidth = value;
    }
    get [S$0.$borderSpacing]() {
      return this[S$0._borderSpacing];
    }
    set [S$0.$borderSpacing](value) {
      this[S$0._borderSpacing] = value == null ? "" : value;
    }
    get [S$0._borderSpacing]() {
      return this.borderSpacing;
    }
    set [S$0._borderSpacing](value) {
      this.borderSpacing = value;
    }
    get [S$0.$borderStyle]() {
      return this[S$0._borderStyle];
    }
    set [S$0.$borderStyle](value) {
      this[S$0._borderStyle] = value == null ? "" : value;
    }
    get [S$0._borderStyle]() {
      return this.borderStyle;
    }
    set [S$0._borderStyle](value) {
      this.borderStyle = value;
    }
    get [S$0.$borderTop]() {
      return this[S$0._borderTop];
    }
    set [S$0.$borderTop](value) {
      this[S$0._borderTop] = value == null ? "" : value;
    }
    get [S$0._borderTop]() {
      return this.borderTop;
    }
    set [S$0._borderTop](value) {
      this.borderTop = value;
    }
    get [S$0.$borderTopColor]() {
      return this[S$0._borderTopColor];
    }
    set [S$0.$borderTopColor](value) {
      this[S$0._borderTopColor] = value == null ? "" : value;
    }
    get [S$0._borderTopColor]() {
      return this.borderTopColor;
    }
    set [S$0._borderTopColor](value) {
      this.borderTopColor = value;
    }
    get [S$0.$borderTopStyle]() {
      return this[S$0._borderTopStyle];
    }
    set [S$0.$borderTopStyle](value) {
      this[S$0._borderTopStyle] = value == null ? "" : value;
    }
    get [S$0._borderTopStyle]() {
      return this.borderTopStyle;
    }
    set [S$0._borderTopStyle](value) {
      this.borderTopStyle = value;
    }
    get [S$0.$borderTopWidth]() {
      return this[S$0._borderTopWidth];
    }
    set [S$0.$borderTopWidth](value) {
      this[S$0._borderTopWidth] = value == null ? "" : value;
    }
    get [S$0._borderTopWidth]() {
      return this.borderTopWidth;
    }
    set [S$0._borderTopWidth](value) {
      this.borderTopWidth = value;
    }
    get [S$0.$borderWidth]() {
      return this[S$0._borderWidth];
    }
    set [S$0.$borderWidth](value) {
      this[S$0._borderWidth] = value == null ? "" : value;
    }
    get [S$0._borderWidth]() {
      return this.borderWidth;
    }
    set [S$0._borderWidth](value) {
      this.borderWidth = value;
    }
    get [$bottom]() {
      return this[S$0._bottom];
    }
    set [$bottom](value) {
      this[S$0._bottom] = value == null ? "" : value;
    }
    get [S$0._bottom]() {
      return this.bottom;
    }
    set [S$0._bottom](value) {
      this.bottom = value;
    }
    get [S$0.$captionSide]() {
      return this[S$0._captionSide];
    }
    set [S$0.$captionSide](value) {
      this[S$0._captionSide] = value == null ? "" : value;
    }
    get [S$0._captionSide]() {
      return this.captionSide;
    }
    set [S$0._captionSide](value) {
      this.captionSide = value;
    }
    get [$clear]() {
      return this[S$0._clear$3];
    }
    set [$clear](value) {
      this[S$0._clear$3] = value == null ? "" : value;
    }
    get [S$0._clear$3]() {
      return this.clear;
    }
    set [S$0._clear$3](value) {
      this.clear = value;
    }
    get [S$.$clip]() {
      return this[S$0._clip];
    }
    set [S$.$clip](value) {
      this[S$0._clip] = value == null ? "" : value;
    }
    get [S$0._clip]() {
      return this.clip;
    }
    set [S$0._clip](value) {
      this.clip = value;
    }
    get [S$0.$color]() {
      return this[S$0._color];
    }
    set [S$0.$color](value) {
      this[S$0._color] = value == null ? "" : value;
    }
    get [S$0._color]() {
      return this.color;
    }
    set [S$0._color](value) {
      this.color = value;
    }
    get [S$0.$content]() {
      return this[S$0._content];
    }
    set [S$0.$content](value) {
      this[S$0._content] = value == null ? "" : value;
    }
    get [S$0._content]() {
      return this.content;
    }
    set [S$0._content](value) {
      this.content = value;
    }
    get [S$0.$cursor]() {
      return this[S$0._cursor];
    }
    set [S$0.$cursor](value) {
      this[S$0._cursor] = value == null ? "" : value;
    }
    get [S$0._cursor]() {
      return this.cursor;
    }
    set [S$0._cursor](value) {
      this.cursor = value;
    }
    get [S.$direction]() {
      return this[S$0._direction];
    }
    set [S.$direction](value) {
      this[S$0._direction] = value == null ? "" : value;
    }
    get [S$0._direction]() {
      return this.direction;
    }
    set [S$0._direction](value) {
      this.direction = value;
    }
    get [S$0.$display]() {
      return this[S$0._display];
    }
    set [S$0.$display](value) {
      this[S$0._display] = value == null ? "" : value;
    }
    get [S$0._display]() {
      return this.display;
    }
    set [S$0._display](value) {
      this.display = value;
    }
    get [S$0.$emptyCells]() {
      return this[S$0._emptyCells];
    }
    set [S$0.$emptyCells](value) {
      this[S$0._emptyCells] = value == null ? "" : value;
    }
    get [S$0._emptyCells]() {
      return this.emptyCells;
    }
    set [S$0._emptyCells](value) {
      this.emptyCells = value;
    }
    get [S$.$font]() {
      return this[S$0._font];
    }
    set [S$.$font](value) {
      this[S$0._font] = value == null ? "" : value;
    }
    get [S$0._font]() {
      return this.font;
    }
    set [S$0._font](value) {
      this.font = value;
    }
    get [S$0.$fontFamily]() {
      return this[S$0._fontFamily];
    }
    set [S$0.$fontFamily](value) {
      this[S$0._fontFamily] = value == null ? "" : value;
    }
    get [S$0._fontFamily]() {
      return this.fontFamily;
    }
    set [S$0._fontFamily](value) {
      this.fontFamily = value;
    }
    get [S$0.$fontSize]() {
      return this[S$0._fontSize];
    }
    set [S$0.$fontSize](value) {
      this[S$0._fontSize] = value == null ? "" : value;
    }
    get [S$0._fontSize]() {
      return this.fontSize;
    }
    set [S$0._fontSize](value) {
      this.fontSize = value;
    }
    get [S$0.$fontStyle]() {
      return this[S$0._fontStyle];
    }
    set [S$0.$fontStyle](value) {
      this[S$0._fontStyle] = value == null ? "" : value;
    }
    get [S$0._fontStyle]() {
      return this.fontStyle;
    }
    set [S$0._fontStyle](value) {
      this.fontStyle = value;
    }
    get [S$0.$fontVariant]() {
      return this[S$0._fontVariant];
    }
    set [S$0.$fontVariant](value) {
      this[S$0._fontVariant] = value == null ? "" : value;
    }
    get [S$0._fontVariant]() {
      return this.fontVariant;
    }
    set [S$0._fontVariant](value) {
      this.fontVariant = value;
    }
    get [S$0.$fontWeight]() {
      return this[S$0._fontWeight];
    }
    set [S$0.$fontWeight](value) {
      this[S$0._fontWeight] = value == null ? "" : value;
    }
    get [S$0._fontWeight]() {
      return this.fontWeight;
    }
    set [S$0._fontWeight](value) {
      this.fontWeight = value;
    }
    get [$height]() {
      return this[S$0._height$1];
    }
    set [$height](value) {
      this[S$0._height$1] = value == null ? "" : value;
    }
    get [S$0._height$1]() {
      return this.height;
    }
    set [S$0._height$1](value) {
      this.height = value;
    }
    get [$left]() {
      return this[S$0._left$2];
    }
    set [$left](value) {
      this[S$0._left$2] = value == null ? "" : value;
    }
    get [S$0._left$2]() {
      return this.left;
    }
    set [S$0._left$2](value) {
      this.left = value;
    }
    get [S$0.$letterSpacing]() {
      return this[S$0._letterSpacing];
    }
    set [S$0.$letterSpacing](value) {
      this[S$0._letterSpacing] = value == null ? "" : value;
    }
    get [S$0._letterSpacing]() {
      return this.letterSpacing;
    }
    set [S$0._letterSpacing](value) {
      this.letterSpacing = value;
    }
    get [S$0.$lineHeight]() {
      return this[S$0._lineHeight];
    }
    set [S$0.$lineHeight](value) {
      this[S$0._lineHeight] = value == null ? "" : value;
    }
    get [S$0._lineHeight]() {
      return this.lineHeight;
    }
    set [S$0._lineHeight](value) {
      this.lineHeight = value;
    }
    get [S$0.$listStyle]() {
      return this[S$0._listStyle];
    }
    set [S$0.$listStyle](value) {
      this[S$0._listStyle] = value == null ? "" : value;
    }
    get [S$0._listStyle]() {
      return this.listStyle;
    }
    set [S$0._listStyle](value) {
      this.listStyle = value;
    }
    get [S$0.$listStyleImage]() {
      return this[S$0._listStyleImage];
    }
    set [S$0.$listStyleImage](value) {
      this[S$0._listStyleImage] = value == null ? "" : value;
    }
    get [S$0._listStyleImage]() {
      return this.listStyleImage;
    }
    set [S$0._listStyleImage](value) {
      this.listStyleImage = value;
    }
    get [S$0.$listStylePosition]() {
      return this[S$0._listStylePosition];
    }
    set [S$0.$listStylePosition](value) {
      this[S$0._listStylePosition] = value == null ? "" : value;
    }
    get [S$0._listStylePosition]() {
      return this.listStylePosition;
    }
    set [S$0._listStylePosition](value) {
      this.listStylePosition = value;
    }
    get [S$0.$listStyleType]() {
      return this[S$0._listStyleType];
    }
    set [S$0.$listStyleType](value) {
      this[S$0._listStyleType] = value == null ? "" : value;
    }
    get [S$0._listStyleType]() {
      return this.listStyleType;
    }
    set [S$0._listStyleType](value) {
      this.listStyleType = value;
    }
    get [S$0.$margin]() {
      return this[S$0._margin];
    }
    set [S$0.$margin](value) {
      this[S$0._margin] = value == null ? "" : value;
    }
    get [S$0._margin]() {
      return this.margin;
    }
    set [S$0._margin](value) {
      this.margin = value;
    }
    get [S$0.$marginBottom]() {
      return this[S$0._marginBottom];
    }
    set [S$0.$marginBottom](value) {
      this[S$0._marginBottom] = value == null ? "" : value;
    }
    get [S$0._marginBottom]() {
      return this.marginBottom;
    }
    set [S$0._marginBottom](value) {
      this.marginBottom = value;
    }
    get [S$0.$marginLeft]() {
      return this[S$0._marginLeft];
    }
    set [S$0.$marginLeft](value) {
      this[S$0._marginLeft] = value == null ? "" : value;
    }
    get [S$0._marginLeft]() {
      return this.marginLeft;
    }
    set [S$0._marginLeft](value) {
      this.marginLeft = value;
    }
    get [S$0.$marginRight]() {
      return this[S$0._marginRight];
    }
    set [S$0.$marginRight](value) {
      this[S$0._marginRight] = value == null ? "" : value;
    }
    get [S$0._marginRight]() {
      return this.marginRight;
    }
    set [S$0._marginRight](value) {
      this.marginRight = value;
    }
    get [S$0.$marginTop]() {
      return this[S$0._marginTop];
    }
    set [S$0.$marginTop](value) {
      this[S$0._marginTop] = value == null ? "" : value;
    }
    get [S$0._marginTop]() {
      return this.marginTop;
    }
    set [S$0._marginTop](value) {
      this.marginTop = value;
    }
    get [S$0.$maxHeight]() {
      return this[S$0._maxHeight];
    }
    set [S$0.$maxHeight](value) {
      this[S$0._maxHeight] = value == null ? "" : value;
    }
    get [S$0._maxHeight]() {
      return this.maxHeight;
    }
    set [S$0._maxHeight](value) {
      this.maxHeight = value;
    }
    get [S$0.$maxWidth]() {
      return this[S$0._maxWidth];
    }
    set [S$0.$maxWidth](value) {
      this[S$0._maxWidth] = value == null ? "" : value;
    }
    get [S$0._maxWidth]() {
      return this.maxWidth;
    }
    set [S$0._maxWidth](value) {
      this.maxWidth = value;
    }
    get [S$0.$minHeight]() {
      return this[S$0._minHeight];
    }
    set [S$0.$minHeight](value) {
      this[S$0._minHeight] = value == null ? "" : value;
    }
    get [S$0._minHeight]() {
      return this.minHeight;
    }
    set [S$0._minHeight](value) {
      this.minHeight = value;
    }
    get [S$0.$minWidth]() {
      return this[S$0._minWidth];
    }
    set [S$0.$minWidth](value) {
      this[S$0._minWidth] = value == null ? "" : value;
    }
    get [S$0._minWidth]() {
      return this.minWidth;
    }
    set [S$0._minWidth](value) {
      this.minWidth = value;
    }
    get [S$0.$outline]() {
      return this[S$0._outline];
    }
    set [S$0.$outline](value) {
      this[S$0._outline] = value == null ? "" : value;
    }
    get [S$0._outline]() {
      return this.outline;
    }
    set [S$0._outline](value) {
      this.outline = value;
    }
    get [S$0.$outlineColor]() {
      return this[S$0._outlineColor];
    }
    set [S$0.$outlineColor](value) {
      this[S$0._outlineColor] = value == null ? "" : value;
    }
    get [S$0._outlineColor]() {
      return this.outlineColor;
    }
    set [S$0._outlineColor](value) {
      this.outlineColor = value;
    }
    get [S$0.$outlineStyle]() {
      return this[S$0._outlineStyle];
    }
    set [S$0.$outlineStyle](value) {
      this[S$0._outlineStyle] = value == null ? "" : value;
    }
    get [S$0._outlineStyle]() {
      return this.outlineStyle;
    }
    set [S$0._outlineStyle](value) {
      this.outlineStyle = value;
    }
    get [S$0.$outlineWidth]() {
      return this[S$0._outlineWidth];
    }
    set [S$0.$outlineWidth](value) {
      this[S$0._outlineWidth] = value == null ? "" : value;
    }
    get [S$0._outlineWidth]() {
      return this.outlineWidth;
    }
    set [S$0._outlineWidth](value) {
      this.outlineWidth = value;
    }
    get [S$0.$overflow]() {
      return this[S$0._overflow];
    }
    set [S$0.$overflow](value) {
      this[S$0._overflow] = value == null ? "" : value;
    }
    get [S$0._overflow]() {
      return this.overflow;
    }
    set [S$0._overflow](value) {
      this.overflow = value;
    }
    get [S$0.$padding]() {
      return this[S$0._padding];
    }
    set [S$0.$padding](value) {
      this[S$0._padding] = value == null ? "" : value;
    }
    get [S$0._padding]() {
      return this.padding;
    }
    set [S$0._padding](value) {
      this.padding = value;
    }
    get [S$0.$paddingBottom]() {
      return this[S$0._paddingBottom];
    }
    set [S$0.$paddingBottom](value) {
      this[S$0._paddingBottom] = value == null ? "" : value;
    }
    get [S$0._paddingBottom]() {
      return this.paddingBottom;
    }
    set [S$0._paddingBottom](value) {
      this.paddingBottom = value;
    }
    get [S$0.$paddingLeft]() {
      return this[S$0._paddingLeft];
    }
    set [S$0.$paddingLeft](value) {
      this[S$0._paddingLeft] = value == null ? "" : value;
    }
    get [S$0._paddingLeft]() {
      return this.paddingLeft;
    }
    set [S$0._paddingLeft](value) {
      this.paddingLeft = value;
    }
    get [S$0.$paddingRight]() {
      return this[S$0._paddingRight];
    }
    set [S$0.$paddingRight](value) {
      this[S$0._paddingRight] = value == null ? "" : value;
    }
    get [S$0._paddingRight]() {
      return this.paddingRight;
    }
    set [S$0._paddingRight](value) {
      this.paddingRight = value;
    }
    get [S$0.$paddingTop]() {
      return this[S$0._paddingTop];
    }
    set [S$0.$paddingTop](value) {
      this[S$0._paddingTop] = value == null ? "" : value;
    }
    get [S$0._paddingTop]() {
      return this.paddingTop;
    }
    set [S$0._paddingTop](value) {
      this.paddingTop = value;
    }
    get [S$0.$pageBreakAfter]() {
      return this[S$0._pageBreakAfter];
    }
    set [S$0.$pageBreakAfter](value) {
      this[S$0._pageBreakAfter] = value == null ? "" : value;
    }
    get [S$0._pageBreakAfter]() {
      return this.pageBreakAfter;
    }
    set [S$0._pageBreakAfter](value) {
      this.pageBreakAfter = value;
    }
    get [S$0.$pageBreakBefore]() {
      return this[S$0._pageBreakBefore];
    }
    set [S$0.$pageBreakBefore](value) {
      this[S$0._pageBreakBefore] = value == null ? "" : value;
    }
    get [S$0._pageBreakBefore]() {
      return this.pageBreakBefore;
    }
    set [S$0._pageBreakBefore](value) {
      this.pageBreakBefore = value;
    }
    get [S$0.$pageBreakInside]() {
      return this[S$0._pageBreakInside];
    }
    set [S$0.$pageBreakInside](value) {
      this[S$0._pageBreakInside] = value == null ? "" : value;
    }
    get [S$0._pageBreakInside]() {
      return this.pageBreakInside;
    }
    set [S$0._pageBreakInside](value) {
      this.pageBreakInside = value;
    }
    get [S$0.$position]() {
      return this[S$0._position$2];
    }
    set [S$0.$position](value) {
      this[S$0._position$2] = value == null ? "" : value;
    }
    get [S$0._position$2]() {
      return this.position;
    }
    set [S$0._position$2](value) {
      this.position = value;
    }
    get [S$0.$quotes]() {
      return this[S$0._quotes];
    }
    set [S$0.$quotes](value) {
      this[S$0._quotes] = value == null ? "" : value;
    }
    get [S$0._quotes]() {
      return this.quotes;
    }
    set [S$0._quotes](value) {
      this.quotes = value;
    }
    get [$right]() {
      return this[S$0._right$2];
    }
    set [$right](value) {
      this[S$0._right$2] = value == null ? "" : value;
    }
    get [S$0._right$2]() {
      return this.right;
    }
    set [S$0._right$2](value) {
      this.right = value;
    }
    get [S$0.$tableLayout]() {
      return this[S$0._tableLayout];
    }
    set [S$0.$tableLayout](value) {
      this[S$0._tableLayout] = value == null ? "" : value;
    }
    get [S$0._tableLayout]() {
      return this.tableLayout;
    }
    set [S$0._tableLayout](value) {
      this.tableLayout = value;
    }
    get [S$.$textAlign]() {
      return this[S$0._textAlign];
    }
    set [S$.$textAlign](value) {
      this[S$0._textAlign] = value == null ? "" : value;
    }
    get [S$0._textAlign]() {
      return this.textAlign;
    }
    set [S$0._textAlign](value) {
      this.textAlign = value;
    }
    get [S$0.$textDecoration]() {
      return this[S$0._textDecoration];
    }
    set [S$0.$textDecoration](value) {
      this[S$0._textDecoration] = value == null ? "" : value;
    }
    get [S$0._textDecoration]() {
      return this.textDecoration;
    }
    set [S$0._textDecoration](value) {
      this.textDecoration = value;
    }
    get [S$0.$textIndent]() {
      return this[S$0._textIndent];
    }
    set [S$0.$textIndent](value) {
      this[S$0._textIndent] = value == null ? "" : value;
    }
    get [S$0._textIndent]() {
      return this.textIndent;
    }
    set [S$0._textIndent](value) {
      this.textIndent = value;
    }
    get [S$0.$textTransform]() {
      return this[S$0._textTransform];
    }
    set [S$0.$textTransform](value) {
      this[S$0._textTransform] = value == null ? "" : value;
    }
    get [S$0._textTransform]() {
      return this.textTransform;
    }
    set [S$0._textTransform](value) {
      this.textTransform = value;
    }
    get [$top]() {
      return this[S$0._top];
    }
    set [$top](value) {
      this[S$0._top] = value == null ? "" : value;
    }
    get [S$0._top]() {
      return this.top;
    }
    set [S$0._top](value) {
      this.top = value;
    }
    get [S$0.$unicodeBidi]() {
      return this[S$0._unicodeBidi];
    }
    set [S$0.$unicodeBidi](value) {
      this[S$0._unicodeBidi] = value == null ? "" : value;
    }
    get [S$0._unicodeBidi]() {
      return this.unicodeBidi;
    }
    set [S$0._unicodeBidi](value) {
      this.unicodeBidi = value;
    }
    get [S$0.$verticalAlign]() {
      return this[S$0._verticalAlign];
    }
    set [S$0.$verticalAlign](value) {
      this[S$0._verticalAlign] = value == null ? "" : value;
    }
    get [S$0._verticalAlign]() {
      return this.verticalAlign;
    }
    set [S$0._verticalAlign](value) {
      this.verticalAlign = value;
    }
    get [S$0.$visibility]() {
      return this[S$0._visibility];
    }
    set [S$0.$visibility](value) {
      this[S$0._visibility] = value == null ? "" : value;
    }
    get [S$0._visibility]() {
      return this.visibility;
    }
    set [S$0._visibility](value) {
      this.visibility = value;
    }
    get [S$0.$whiteSpace]() {
      return this[S$0._whiteSpace];
    }
    set [S$0.$whiteSpace](value) {
      this[S$0._whiteSpace] = value == null ? "" : value;
    }
    get [S$0._whiteSpace]() {
      return this.whiteSpace;
    }
    set [S$0._whiteSpace](value) {
      this.whiteSpace = value;
    }
    get [$width]() {
      return this[S$0._width$1];
    }
    set [$width](value) {
      this[S$0._width$1] = value == null ? "" : value;
    }
    get [S$0._width$1]() {
      return this.width;
    }
    set [S$0._width$1](value) {
      this.width = value;
    }
    get [S$0.$wordSpacing]() {
      return this[S$0._wordSpacing];
    }
    set [S$0.$wordSpacing](value) {
      this[S$0._wordSpacing] = value == null ? "" : value;
    }
    get [S$0._wordSpacing]() {
      return this.wordSpacing;
    }
    set [S$0._wordSpacing](value) {
      this.wordSpacing = value;
    }
    get [S$0.$zIndex]() {
      return this[S$0._zIndex];
    }
    set [S$0.$zIndex](value) {
      this[S$0._zIndex] = value == null ? "" : value;
    }
    get [S$0._zIndex]() {
      return this.zIndex;
    }
    set [S$0._zIndex](value) {
      this.zIndex = value;
    }
  };
  dart.addTypeTests(html$.CssStyleDeclaration);
  dart.addTypeCaches(html$.CssStyleDeclaration);
  dart.setMethodSignature(html$.CssStyleDeclaration, () => ({
    __proto__: dart.getMethods(html$.CssStyleDeclaration.__proto__),
    [S$.$getPropertyValue]: dart.fnType(core.String, [core.String]),
    [S$._getPropertyValueHelper]: dart.fnType(core.String, [core.String]),
    [S$.$supportsProperty]: dart.fnType(core.bool, [core.String]),
    [S$._supportsProperty]: dart.fnType(core.bool, [core.String]),
    [S$.$setProperty]: dart.fnType(dart.void, [core.String, dart.nullable(core.String)], [dart.nullable(core.String)]),
    [S$._browserPropertyName]: dart.fnType(core.String, [core.String]),
    [S$._supportedBrowserPropertyName]: dart.fnType(core.String, [core.String]),
    [S$._setPropertyHelper]: dart.fnType(dart.void, [core.String, dart.nullable(core.String)], [dart.nullable(core.String)]),
    [S$.$getPropertyPriority]: dart.fnType(core.String, [core.String]),
    [S$._getPropertyValue]: dart.fnType(core.String, [core.String]),
    [S$.$item]: dart.fnType(core.String, [core.int]),
    [S$.$removeProperty]: dart.fnType(core.String, [core.String])
  }));
  dart.setGetterSignature(html$.CssStyleDeclaration, () => ({
    __proto__: dart.getGetters(html$.CssStyleDeclaration.__proto__),
    [S$.$cssFloat]: dart.nullable(core.String),
    [S$.$cssText]: dart.nullable(core.String),
    [$length]: core.int,
    [S$.$parentRule]: dart.nullable(html$.CssRule),
    [S$._background]: core.String,
    [S$._backgroundAttachment]: core.String,
    [S$._backgroundColor]: core.String,
    [S$._backgroundImage]: core.String,
    [S$._backgroundPosition]: core.String,
    [S$._backgroundRepeat]: core.String,
    [S$._border]: core.String,
    [S$._borderBottom]: core.String,
    [S$._borderBottomColor]: core.String,
    [S$._borderBottomStyle]: core.String,
    [S$._borderBottomWidth]: core.String,
    [S$._borderCollapse]: core.String,
    [S$._borderColor]: core.String,
    [S$._borderLeft]: core.String,
    [S$._borderLeftColor]: core.String,
    [S$._borderLeftStyle]: core.String,
    [S$._borderLeftWidth]: core.String,
    [S$._borderRight]: core.String,
    [S$._borderRightColor]: core.String,
    [S$._borderRightStyle]: core.String,
    [S$._borderRightWidth]: core.String,
    [S$0._borderSpacing]: core.String,
    [S$0._borderStyle]: core.String,
    [S$0._borderTop]: core.String,
    [S$0._borderTopColor]: core.String,
    [S$0._borderTopStyle]: core.String,
    [S$0._borderTopWidth]: core.String,
    [S$0._borderWidth]: core.String,
    [S$0._bottom]: core.String,
    [S$0._captionSide]: core.String,
    [S$0._clear$3]: core.String,
    [S$0._clip]: core.String,
    [S$0._color]: core.String,
    [S$0._content]: core.String,
    [S$0._cursor]: core.String,
    [S$0._direction]: core.String,
    [S$0._display]: core.String,
    [S$0._emptyCells]: core.String,
    [S$0._font]: core.String,
    [S$0._fontFamily]: core.String,
    [S$0._fontSize]: core.String,
    [S$0._fontStyle]: core.String,
    [S$0._fontVariant]: core.String,
    [S$0._fontWeight]: core.String,
    [S$0._height$1]: core.String,
    [S$0._left$2]: core.String,
    [S$0._letterSpacing]: core.String,
    [S$0._lineHeight]: core.String,
    [S$0._listStyle]: core.String,
    [S$0._listStyleImage]: core.String,
    [S$0._listStylePosition]: core.String,
    [S$0._listStyleType]: core.String,
    [S$0._margin]: core.String,
    [S$0._marginBottom]: core.String,
    [S$0._marginLeft]: core.String,
    [S$0._marginRight]: core.String,
    [S$0._marginTop]: core.String,
    [S$0._maxHeight]: core.String,
    [S$0._maxWidth]: core.String,
    [S$0._minHeight]: core.String,
    [S$0._minWidth]: core.String,
    [S$0._outline]: core.String,
    [S$0._outlineColor]: core.String,
    [S$0._outlineStyle]: core.String,
    [S$0._outlineWidth]: core.String,
    [S$0._overflow]: core.String,
    [S$0._padding]: core.String,
    [S$0._paddingBottom]: core.String,
    [S$0._paddingLeft]: core.String,
    [S$0._paddingRight]: core.String,
    [S$0._paddingTop]: core.String,
    [S$0._pageBreakAfter]: core.String,
    [S$0._pageBreakBefore]: core.String,
    [S$0._pageBreakInside]: core.String,
    [S$0._position$2]: core.String,
    [S$0._quotes]: core.String,
    [S$0._right$2]: core.String,
    [S$0._tableLayout]: core.String,
    [S$0._textAlign]: core.String,
    [S$0._textDecoration]: core.String,
    [S$0._textIndent]: core.String,
    [S$0._textTransform]: core.String,
    [S$0._top]: core.String,
    [S$0._unicodeBidi]: core.String,
    [S$0._verticalAlign]: core.String,
    [S$0._visibility]: core.String,
    [S$0._whiteSpace]: core.String,
    [S$0._width$1]: core.String,
    [S$0._wordSpacing]: core.String,
    [S$0._zIndex]: core.String
  }));
  dart.setSetterSignature(html$.CssStyleDeclaration, () => ({
    __proto__: dart.getSetters(html$.CssStyleDeclaration.__proto__),
    [S$.$cssFloat]: dart.nullable(core.String),
    [S$.$cssText]: dart.nullable(core.String),
    [S$.$background]: dart.nullable(core.String),
    [S$._background]: core.String,
    [S$.$backgroundAttachment]: dart.nullable(core.String),
    [S$._backgroundAttachment]: core.String,
    [S$.$backgroundColor]: dart.nullable(core.String),
    [S$._backgroundColor]: core.String,
    [S$.$backgroundImage]: dart.nullable(core.String),
    [S$._backgroundImage]: core.String,
    [S$.$backgroundPosition]: dart.nullable(core.String),
    [S$._backgroundPosition]: core.String,
    [S$.$backgroundRepeat]: dart.nullable(core.String),
    [S$._backgroundRepeat]: core.String,
    [S$.$border]: dart.nullable(core.String),
    [S$._border]: core.String,
    [S$.$borderBottom]: dart.nullable(core.String),
    [S$._borderBottom]: core.String,
    [S$.$borderBottomColor]: dart.nullable(core.String),
    [S$._borderBottomColor]: core.String,
    [S$.$borderBottomStyle]: dart.nullable(core.String),
    [S$._borderBottomStyle]: core.String,
    [S$.$borderBottomWidth]: dart.nullable(core.String),
    [S$._borderBottomWidth]: core.String,
    [S$.$borderCollapse]: dart.nullable(core.String),
    [S$._borderCollapse]: core.String,
    [S$.$borderColor]: dart.nullable(core.String),
    [S$._borderColor]: core.String,
    [S$.$borderLeft]: dart.nullable(core.String),
    [S$._borderLeft]: core.String,
    [S$.$borderLeftColor]: dart.nullable(core.String),
    [S$._borderLeftColor]: core.String,
    [S$.$borderLeftStyle]: dart.nullable(core.String),
    [S$._borderLeftStyle]: core.String,
    [S$.$borderLeftWidth]: dart.nullable(core.String),
    [S$._borderLeftWidth]: core.String,
    [S$.$borderRight]: dart.nullable(core.String),
    [S$._borderRight]: core.String,
    [S$.$borderRightColor]: dart.nullable(core.String),
    [S$._borderRightColor]: core.String,
    [S$.$borderRightStyle]: dart.nullable(core.String),
    [S$._borderRightStyle]: core.String,
    [S$0.$borderRightWidth]: dart.nullable(core.String),
    [S$._borderRightWidth]: core.String,
    [S$0.$borderSpacing]: dart.nullable(core.String),
    [S$0._borderSpacing]: core.String,
    [S$0.$borderStyle]: dart.nullable(core.String),
    [S$0._borderStyle]: core.String,
    [S$0.$borderTop]: dart.nullable(core.String),
    [S$0._borderTop]: core.String,
    [S$0.$borderTopColor]: dart.nullable(core.String),
    [S$0._borderTopColor]: core.String,
    [S$0.$borderTopStyle]: dart.nullable(core.String),
    [S$0._borderTopStyle]: core.String,
    [S$0.$borderTopWidth]: dart.nullable(core.String),
    [S$0._borderTopWidth]: core.String,
    [S$0.$borderWidth]: dart.nullable(core.String),
    [S$0._borderWidth]: core.String,
    [$bottom]: dart.nullable(core.String),
    [S$0._bottom]: core.String,
    [S$0.$captionSide]: dart.nullable(core.String),
    [S$0._captionSide]: core.String,
    [$clear]: dart.nullable(core.String),
    [S$0._clear$3]: core.String,
    [S$.$clip]: dart.nullable(core.String),
    [S$0._clip]: core.String,
    [S$0.$color]: dart.nullable(core.String),
    [S$0._color]: core.String,
    [S$0.$content]: dart.nullable(core.String),
    [S$0._content]: core.String,
    [S$0.$cursor]: dart.nullable(core.String),
    [S$0._cursor]: core.String,
    [S.$direction]: dart.nullable(core.String),
    [S$0._direction]: core.String,
    [S$0.$display]: dart.nullable(core.String),
    [S$0._display]: core.String,
    [S$0.$emptyCells]: dart.nullable(core.String),
    [S$0._emptyCells]: core.String,
    [S$.$font]: dart.nullable(core.String),
    [S$0._font]: core.String,
    [S$0.$fontFamily]: dart.nullable(core.String),
    [S$0._fontFamily]: core.String,
    [S$0.$fontSize]: dart.nullable(core.String),
    [S$0._fontSize]: core.String,
    [S$0.$fontStyle]: dart.nullable(core.String),
    [S$0._fontStyle]: core.String,
    [S$0.$fontVariant]: dart.nullable(core.String),
    [S$0._fontVariant]: core.String,
    [S$0.$fontWeight]: dart.nullable(core.String),
    [S$0._fontWeight]: core.String,
    [$height]: dart.nullable(core.String),
    [S$0._height$1]: core.String,
    [$left]: dart.nullable(core.String),
    [S$0._left$2]: core.String,
    [S$0.$letterSpacing]: dart.nullable(core.String),
    [S$0._letterSpacing]: core.String,
    [S$0.$lineHeight]: dart.nullable(core.String),
    [S$0._lineHeight]: core.String,
    [S$0.$listStyle]: dart.nullable(core.String),
    [S$0._listStyle]: core.String,
    [S$0.$listStyleImage]: dart.nullable(core.String),
    [S$0._listStyleImage]: core.String,
    [S$0.$listStylePosition]: dart.nullable(core.String),
    [S$0._listStylePosition]: core.String,
    [S$0.$listStyleType]: dart.nullable(core.String),
    [S$0._listStyleType]: core.String,
    [S$0.$margin]: dart.nullable(core.String),
    [S$0._margin]: core.String,
    [S$0.$marginBottom]: dart.nullable(core.String),
    [S$0._marginBottom]: core.String,
    [S$0.$marginLeft]: dart.nullable(core.String),
    [S$0._marginLeft]: core.String,
    [S$0.$marginRight]: dart.nullable(core.String),
    [S$0._marginRight]: core.String,
    [S$0.$marginTop]: dart.nullable(core.String),
    [S$0._marginTop]: core.String,
    [S$0.$maxHeight]: dart.nullable(core.String),
    [S$0._maxHeight]: core.String,
    [S$0.$maxWidth]: dart.nullable(core.String),
    [S$0._maxWidth]: core.String,
    [S$0.$minHeight]: dart.nullable(core.String),
    [S$0._minHeight]: core.String,
    [S$0.$minWidth]: dart.nullable(core.String),
    [S$0._minWidth]: core.String,
    [S$0.$outline]: dart.nullable(core.String),
    [S$0._outline]: core.String,
    [S$0.$outlineColor]: dart.nullable(core.String),
    [S$0._outlineColor]: core.String,
    [S$0.$outlineStyle]: dart.nullable(core.String),
    [S$0._outlineStyle]: core.String,
    [S$0.$outlineWidth]: dart.nullable(core.String),
    [S$0._outlineWidth]: core.String,
    [S$0.$overflow]: dart.nullable(core.String),
    [S$0._overflow]: core.String,
    [S$0.$padding]: dart.nullable(core.String),
    [S$0._padding]: core.String,
    [S$0.$paddingBottom]: dart.nullable(core.String),
    [S$0._paddingBottom]: core.String,
    [S$0.$paddingLeft]: dart.nullable(core.String),
    [S$0._paddingLeft]: core.String,
    [S$0.$paddingRight]: dart.nullable(core.String),
    [S$0._paddingRight]: core.String,
    [S$0.$paddingTop]: dart.nullable(core.String),
    [S$0._paddingTop]: core.String,
    [S$0.$pageBreakAfter]: dart.nullable(core.String),
    [S$0._pageBreakAfter]: core.String,
    [S$0.$pageBreakBefore]: dart.nullable(core.String),
    [S$0._pageBreakBefore]: core.String,
    [S$0.$pageBreakInside]: dart.nullable(core.String),
    [S$0._pageBreakInside]: core.String,
    [S$0.$position]: dart.nullable(core.String),
    [S$0._position$2]: core.String,
    [S$0.$quotes]: dart.nullable(core.String),
    [S$0._quotes]: core.String,
    [$right]: dart.nullable(core.String),
    [S$0._right$2]: core.String,
    [S$0.$tableLayout]: dart.nullable(core.String),
    [S$0._tableLayout]: core.String,
    [S$.$textAlign]: dart.nullable(core.String),
    [S$0._textAlign]: core.String,
    [S$0.$textDecoration]: dart.nullable(core.String),
    [S$0._textDecoration]: core.String,
    [S$0.$textIndent]: dart.nullable(core.String),
    [S$0._textIndent]: core.String,
    [S$0.$textTransform]: dart.nullable(core.String),
    [S$0._textTransform]: core.String,
    [$top]: dart.nullable(core.String),
    [S$0._top]: core.String,
    [S$0.$unicodeBidi]: dart.nullable(core.String),
    [S$0._unicodeBidi]: core.String,
    [S$0.$verticalAlign]: dart.nullable(core.String),
    [S$0._verticalAlign]: core.String,
    [S$0.$visibility]: dart.nullable(core.String),
    [S$0._visibility]: core.String,
    [S$0.$whiteSpace]: dart.nullable(core.String),
    [S$0._whiteSpace]: core.String,
    [$width]: dart.nullable(core.String),
    [S$0._width$1]: core.String,
    [S$0.$wordSpacing]: dart.nullable(core.String),
    [S$0._wordSpacing]: core.String,
    [S$0.$zIndex]: dart.nullable(core.String),
    [S$0._zIndex]: core.String
  }));
  dart.setLibraryUri(html$.CssStyleDeclaration, I[148]);
  dart.defineLazy(html$.CssStyleDeclaration, {
    /*html$.CssStyleDeclaration._propertyCache*/get _propertyCache() {
      return {};
    }
  }, false);
  dart.registerExtension("CSSStyleDeclaration", html$.CssStyleDeclaration);
  dart.registerExtension("MSStyleCSSProperties", html$.CssStyleDeclaration);
  dart.registerExtension("CSS2Properties", html$.CssStyleDeclaration);
  const Object_CssStyleDeclarationBase$36 = class Object_CssStyleDeclarationBase extends core.Object {};
  (Object_CssStyleDeclarationBase$36.new = function() {
  }).prototype = Object_CssStyleDeclarationBase$36.prototype;
  dart.applyMixin(Object_CssStyleDeclarationBase$36, html$.CssStyleDeclarationBase);
  html$._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends Object_CssStyleDeclarationBase$36 {
    getPropertyValue(propertyName) {
      if (propertyName == null) dart.nullFailed(I[147], 5440, 34, "propertyName");
      return dart.nullCheck(this[S$0._elementCssStyleDeclarationSetIterable])[$first][S$.$getPropertyValue](propertyName);
    }
    setProperty(propertyName, value, priority = null) {
      if (propertyName == null) dart.nullFailed(I[147], 5444, 27, "propertyName");
      dart.nullCheck(this[S$0._elementCssStyleDeclarationSetIterable])[$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 5446, 19, "e");
        return e[S$.$setProperty](propertyName, value, priority);
      }, T$0.CssStyleDeclarationTovoid()));
    }
    [S$0._setAll](propertyName, value) {
      if (propertyName == null) dart.nullFailed(I[147], 5449, 23, "propertyName");
      value = value == null ? "" : value;
      for (let element of this[S$0._elementIterable]) {
        element.style[propertyName] = value;
      }
    }
    set background(value) {
      if (value == null) dart.nullFailed(I[147], 5457, 25, "value");
      this[S$0._setAll]("background", value);
    }
    get background() {
      return super.background;
    }
    set backgroundAttachment(value) {
      if (value == null) dart.nullFailed(I[147], 5462, 35, "value");
      this[S$0._setAll]("backgroundAttachment", value);
    }
    get backgroundAttachment() {
      return super.backgroundAttachment;
    }
    set backgroundColor(value) {
      if (value == null) dart.nullFailed(I[147], 5467, 30, "value");
      this[S$0._setAll]("backgroundColor", value);
    }
    get backgroundColor() {
      return super.backgroundColor;
    }
    set backgroundImage(value) {
      if (value == null) dart.nullFailed(I[147], 5472, 30, "value");
      this[S$0._setAll]("backgroundImage", value);
    }
    get backgroundImage() {
      return super.backgroundImage;
    }
    set backgroundPosition(value) {
      if (value == null) dart.nullFailed(I[147], 5477, 33, "value");
      this[S$0._setAll]("backgroundPosition", value);
    }
    get backgroundPosition() {
      return super.backgroundPosition;
    }
    set backgroundRepeat(value) {
      if (value == null) dart.nullFailed(I[147], 5482, 31, "value");
      this[S$0._setAll]("backgroundRepeat", value);
    }
    get backgroundRepeat() {
      return super.backgroundRepeat;
    }
    set border(value) {
      if (value == null) dart.nullFailed(I[147], 5487, 21, "value");
      this[S$0._setAll]("border", value);
    }
    get border() {
      return super.border;
    }
    set borderBottom(value) {
      if (value == null) dart.nullFailed(I[147], 5492, 27, "value");
      this[S$0._setAll]("borderBottom", value);
    }
    get borderBottom() {
      return super.borderBottom;
    }
    set borderBottomColor(value) {
      if (value == null) dart.nullFailed(I[147], 5497, 32, "value");
      this[S$0._setAll]("borderBottomColor", value);
    }
    get borderBottomColor() {
      return super.borderBottomColor;
    }
    set borderBottomStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5502, 32, "value");
      this[S$0._setAll]("borderBottomStyle", value);
    }
    get borderBottomStyle() {
      return super.borderBottomStyle;
    }
    set borderBottomWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5507, 32, "value");
      this[S$0._setAll]("borderBottomWidth", value);
    }
    get borderBottomWidth() {
      return super.borderBottomWidth;
    }
    set borderCollapse(value) {
      if (value == null) dart.nullFailed(I[147], 5512, 29, "value");
      this[S$0._setAll]("borderCollapse", value);
    }
    get borderCollapse() {
      return super.borderCollapse;
    }
    set borderColor(value) {
      if (value == null) dart.nullFailed(I[147], 5517, 26, "value");
      this[S$0._setAll]("borderColor", value);
    }
    get borderColor() {
      return super.borderColor;
    }
    set borderLeft(value) {
      if (value == null) dart.nullFailed(I[147], 5522, 25, "value");
      this[S$0._setAll]("borderLeft", value);
    }
    get borderLeft() {
      return super.borderLeft;
    }
    set borderLeftColor(value) {
      if (value == null) dart.nullFailed(I[147], 5527, 30, "value");
      this[S$0._setAll]("borderLeftColor", value);
    }
    get borderLeftColor() {
      return super.borderLeftColor;
    }
    set borderLeftStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5532, 30, "value");
      this[S$0._setAll]("borderLeftStyle", value);
    }
    get borderLeftStyle() {
      return super.borderLeftStyle;
    }
    set borderLeftWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5537, 30, "value");
      this[S$0._setAll]("borderLeftWidth", value);
    }
    get borderLeftWidth() {
      return super.borderLeftWidth;
    }
    set borderRight(value) {
      if (value == null) dart.nullFailed(I[147], 5542, 26, "value");
      this[S$0._setAll]("borderRight", value);
    }
    get borderRight() {
      return super.borderRight;
    }
    set borderRightColor(value) {
      if (value == null) dart.nullFailed(I[147], 5547, 31, "value");
      this[S$0._setAll]("borderRightColor", value);
    }
    get borderRightColor() {
      return super.borderRightColor;
    }
    set borderRightStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5552, 31, "value");
      this[S$0._setAll]("borderRightStyle", value);
    }
    get borderRightStyle() {
      return super.borderRightStyle;
    }
    set borderRightWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5557, 31, "value");
      this[S$0._setAll]("borderRightWidth", value);
    }
    get borderRightWidth() {
      return super.borderRightWidth;
    }
    set borderSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 5562, 28, "value");
      this[S$0._setAll]("borderSpacing", value);
    }
    get borderSpacing() {
      return super.borderSpacing;
    }
    set borderStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5567, 26, "value");
      this[S$0._setAll]("borderStyle", value);
    }
    get borderStyle() {
      return super.borderStyle;
    }
    set borderTop(value) {
      if (value == null) dart.nullFailed(I[147], 5572, 24, "value");
      this[S$0._setAll]("borderTop", value);
    }
    get borderTop() {
      return super.borderTop;
    }
    set borderTopColor(value) {
      if (value == null) dart.nullFailed(I[147], 5577, 29, "value");
      this[S$0._setAll]("borderTopColor", value);
    }
    get borderTopColor() {
      return super.borderTopColor;
    }
    set borderTopStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5582, 29, "value");
      this[S$0._setAll]("borderTopStyle", value);
    }
    get borderTopStyle() {
      return super.borderTopStyle;
    }
    set borderTopWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5587, 29, "value");
      this[S$0._setAll]("borderTopWidth", value);
    }
    get borderTopWidth() {
      return super.borderTopWidth;
    }
    set borderWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5592, 26, "value");
      this[S$0._setAll]("borderWidth", value);
    }
    get borderWidth() {
      return super.borderWidth;
    }
    set bottom(value) {
      if (value == null) dart.nullFailed(I[147], 5597, 21, "value");
      this[S$0._setAll]("bottom", value);
    }
    get bottom() {
      return super.bottom;
    }
    set captionSide(value) {
      if (value == null) dart.nullFailed(I[147], 5602, 26, "value");
      this[S$0._setAll]("captionSide", value);
    }
    get captionSide() {
      return super.captionSide;
    }
    set clear(value) {
      if (value == null) dart.nullFailed(I[147], 5607, 20, "value");
      this[S$0._setAll]("clear", value);
    }
    get clear() {
      return super.clear;
    }
    set clip(value) {
      if (value == null) dart.nullFailed(I[147], 5612, 19, "value");
      this[S$0._setAll]("clip", value);
    }
    get clip() {
      return super.clip;
    }
    set color(value) {
      if (value == null) dart.nullFailed(I[147], 5617, 20, "value");
      this[S$0._setAll]("color", value);
    }
    get color() {
      return super.color;
    }
    set content(value) {
      if (value == null) dart.nullFailed(I[147], 5622, 22, "value");
      this[S$0._setAll]("content", value);
    }
    get content() {
      return super.content;
    }
    set cursor(value) {
      if (value == null) dart.nullFailed(I[147], 5627, 21, "value");
      this[S$0._setAll]("cursor", value);
    }
    get cursor() {
      return super.cursor;
    }
    set direction(value) {
      if (value == null) dart.nullFailed(I[147], 5632, 24, "value");
      this[S$0._setAll]("direction", value);
    }
    get direction() {
      return super.direction;
    }
    set display(value) {
      if (value == null) dart.nullFailed(I[147], 5637, 22, "value");
      this[S$0._setAll]("display", value);
    }
    get display() {
      return super.display;
    }
    set emptyCells(value) {
      if (value == null) dart.nullFailed(I[147], 5642, 25, "value");
      this[S$0._setAll]("emptyCells", value);
    }
    get emptyCells() {
      return super.emptyCells;
    }
    set font(value) {
      if (value == null) dart.nullFailed(I[147], 5647, 19, "value");
      this[S$0._setAll]("font", value);
    }
    get font() {
      return super.font;
    }
    set fontFamily(value) {
      if (value == null) dart.nullFailed(I[147], 5652, 25, "value");
      this[S$0._setAll]("fontFamily", value);
    }
    get fontFamily() {
      return super.fontFamily;
    }
    set fontSize(value) {
      if (value == null) dart.nullFailed(I[147], 5657, 23, "value");
      this[S$0._setAll]("fontSize", value);
    }
    get fontSize() {
      return super.fontSize;
    }
    set fontStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5662, 24, "value");
      this[S$0._setAll]("fontStyle", value);
    }
    get fontStyle() {
      return super.fontStyle;
    }
    set fontVariant(value) {
      if (value == null) dart.nullFailed(I[147], 5667, 26, "value");
      this[S$0._setAll]("fontVariant", value);
    }
    get fontVariant() {
      return super.fontVariant;
    }
    set fontWeight(value) {
      if (value == null) dart.nullFailed(I[147], 5672, 25, "value");
      this[S$0._setAll]("fontWeight", value);
    }
    get fontWeight() {
      return super.fontWeight;
    }
    set height(value) {
      if (value == null) dart.nullFailed(I[147], 5677, 21, "value");
      this[S$0._setAll]("height", value);
    }
    get height() {
      return super.height;
    }
    set left(value) {
      if (value == null) dart.nullFailed(I[147], 5682, 19, "value");
      this[S$0._setAll]("left", value);
    }
    get left() {
      return super.left;
    }
    set letterSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 5687, 28, "value");
      this[S$0._setAll]("letterSpacing", value);
    }
    get letterSpacing() {
      return super.letterSpacing;
    }
    set lineHeight(value) {
      if (value == null) dart.nullFailed(I[147], 5692, 25, "value");
      this[S$0._setAll]("lineHeight", value);
    }
    get lineHeight() {
      return super.lineHeight;
    }
    set listStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5697, 24, "value");
      this[S$0._setAll]("listStyle", value);
    }
    get listStyle() {
      return super.listStyle;
    }
    set listStyleImage(value) {
      if (value == null) dart.nullFailed(I[147], 5702, 29, "value");
      this[S$0._setAll]("listStyleImage", value);
    }
    get listStyleImage() {
      return super.listStyleImage;
    }
    set listStylePosition(value) {
      if (value == null) dart.nullFailed(I[147], 5707, 32, "value");
      this[S$0._setAll]("listStylePosition", value);
    }
    get listStylePosition() {
      return super.listStylePosition;
    }
    set listStyleType(value) {
      if (value == null) dart.nullFailed(I[147], 5712, 28, "value");
      this[S$0._setAll]("listStyleType", value);
    }
    get listStyleType() {
      return super.listStyleType;
    }
    set margin(value) {
      if (value == null) dart.nullFailed(I[147], 5717, 21, "value");
      this[S$0._setAll]("margin", value);
    }
    get margin() {
      return super.margin;
    }
    set marginBottom(value) {
      if (value == null) dart.nullFailed(I[147], 5722, 27, "value");
      this[S$0._setAll]("marginBottom", value);
    }
    get marginBottom() {
      return super.marginBottom;
    }
    set marginLeft(value) {
      if (value == null) dart.nullFailed(I[147], 5727, 25, "value");
      this[S$0._setAll]("marginLeft", value);
    }
    get marginLeft() {
      return super.marginLeft;
    }
    set marginRight(value) {
      if (value == null) dart.nullFailed(I[147], 5732, 26, "value");
      this[S$0._setAll]("marginRight", value);
    }
    get marginRight() {
      return super.marginRight;
    }
    set marginTop(value) {
      if (value == null) dart.nullFailed(I[147], 5737, 24, "value");
      this[S$0._setAll]("marginTop", value);
    }
    get marginTop() {
      return super.marginTop;
    }
    set maxHeight(value) {
      if (value == null) dart.nullFailed(I[147], 5742, 24, "value");
      this[S$0._setAll]("maxHeight", value);
    }
    get maxHeight() {
      return super.maxHeight;
    }
    set maxWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5747, 23, "value");
      this[S$0._setAll]("maxWidth", value);
    }
    get maxWidth() {
      return super.maxWidth;
    }
    set minHeight(value) {
      if (value == null) dart.nullFailed(I[147], 5752, 24, "value");
      this[S$0._setAll]("minHeight", value);
    }
    get minHeight() {
      return super.minHeight;
    }
    set minWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5757, 23, "value");
      this[S$0._setAll]("minWidth", value);
    }
    get minWidth() {
      return super.minWidth;
    }
    set outline(value) {
      if (value == null) dart.nullFailed(I[147], 5762, 22, "value");
      this[S$0._setAll]("outline", value);
    }
    get outline() {
      return super.outline;
    }
    set outlineColor(value) {
      if (value == null) dart.nullFailed(I[147], 5767, 27, "value");
      this[S$0._setAll]("outlineColor", value);
    }
    get outlineColor() {
      return super.outlineColor;
    }
    set outlineStyle(value) {
      if (value == null) dart.nullFailed(I[147], 5772, 27, "value");
      this[S$0._setAll]("outlineStyle", value);
    }
    get outlineStyle() {
      return super.outlineStyle;
    }
    set outlineWidth(value) {
      if (value == null) dart.nullFailed(I[147], 5777, 27, "value");
      this[S$0._setAll]("outlineWidth", value);
    }
    get outlineWidth() {
      return super.outlineWidth;
    }
    set overflow(value) {
      if (value == null) dart.nullFailed(I[147], 5782, 23, "value");
      this[S$0._setAll]("overflow", value);
    }
    get overflow() {
      return super.overflow;
    }
    set padding(value) {
      if (value == null) dart.nullFailed(I[147], 5787, 22, "value");
      this[S$0._setAll]("padding", value);
    }
    get padding() {
      return super.padding;
    }
    set paddingBottom(value) {
      if (value == null) dart.nullFailed(I[147], 5792, 28, "value");
      this[S$0._setAll]("paddingBottom", value);
    }
    get paddingBottom() {
      return super.paddingBottom;
    }
    set paddingLeft(value) {
      if (value == null) dart.nullFailed(I[147], 5797, 26, "value");
      this[S$0._setAll]("paddingLeft", value);
    }
    get paddingLeft() {
      return super.paddingLeft;
    }
    set paddingRight(value) {
      if (value == null) dart.nullFailed(I[147], 5802, 27, "value");
      this[S$0._setAll]("paddingRight", value);
    }
    get paddingRight() {
      return super.paddingRight;
    }
    set paddingTop(value) {
      if (value == null) dart.nullFailed(I[147], 5807, 25, "value");
      this[S$0._setAll]("paddingTop", value);
    }
    get paddingTop() {
      return super.paddingTop;
    }
    set pageBreakAfter(value) {
      if (value == null) dart.nullFailed(I[147], 5812, 29, "value");
      this[S$0._setAll]("pageBreakAfter", value);
    }
    get pageBreakAfter() {
      return super.pageBreakAfter;
    }
    set pageBreakBefore(value) {
      if (value == null) dart.nullFailed(I[147], 5817, 30, "value");
      this[S$0._setAll]("pageBreakBefore", value);
    }
    get pageBreakBefore() {
      return super.pageBreakBefore;
    }
    set pageBreakInside(value) {
      if (value == null) dart.nullFailed(I[147], 5822, 30, "value");
      this[S$0._setAll]("pageBreakInside", value);
    }
    get pageBreakInside() {
      return super.pageBreakInside;
    }
    set position(value) {
      if (value == null) dart.nullFailed(I[147], 5827, 23, "value");
      this[S$0._setAll]("position", value);
    }
    get position() {
      return super.position;
    }
    set quotes(value) {
      if (value == null) dart.nullFailed(I[147], 5832, 21, "value");
      this[S$0._setAll]("quotes", value);
    }
    get quotes() {
      return super.quotes;
    }
    set right(value) {
      if (value == null) dart.nullFailed(I[147], 5837, 20, "value");
      this[S$0._setAll]("right", value);
    }
    get right() {
      return super.right;
    }
    set tableLayout(value) {
      if (value == null) dart.nullFailed(I[147], 5842, 26, "value");
      this[S$0._setAll]("tableLayout", value);
    }
    get tableLayout() {
      return super.tableLayout;
    }
    set textAlign(value) {
      if (value == null) dart.nullFailed(I[147], 5847, 24, "value");
      this[S$0._setAll]("textAlign", value);
    }
    get textAlign() {
      return super.textAlign;
    }
    set textDecoration(value) {
      if (value == null) dart.nullFailed(I[147], 5852, 29, "value");
      this[S$0._setAll]("textDecoration", value);
    }
    get textDecoration() {
      return super.textDecoration;
    }
    set textIndent(value) {
      if (value == null) dart.nullFailed(I[147], 5857, 25, "value");
      this[S$0._setAll]("textIndent", value);
    }
    get textIndent() {
      return super.textIndent;
    }
    set textTransform(value) {
      if (value == null) dart.nullFailed(I[147], 5862, 28, "value");
      this[S$0._setAll]("textTransform", value);
    }
    get textTransform() {
      return super.textTransform;
    }
    set top(value) {
      if (value == null) dart.nullFailed(I[147], 5867, 18, "value");
      this[S$0._setAll]("top", value);
    }
    get top() {
      return super.top;
    }
    set unicodeBidi(value) {
      if (value == null) dart.nullFailed(I[147], 5872, 26, "value");
      this[S$0._setAll]("unicodeBidi", value);
    }
    get unicodeBidi() {
      return super.unicodeBidi;
    }
    set verticalAlign(value) {
      if (value == null) dart.nullFailed(I[147], 5877, 28, "value");
      this[S$0._setAll]("verticalAlign", value);
    }
    get verticalAlign() {
      return super.verticalAlign;
    }
    set visibility(value) {
      if (value == null) dart.nullFailed(I[147], 5882, 25, "value");
      this[S$0._setAll]("visibility", value);
    }
    get visibility() {
      return super.visibility;
    }
    set whiteSpace(value) {
      if (value == null) dart.nullFailed(I[147], 5887, 25, "value");
      this[S$0._setAll]("whiteSpace", value);
    }
    get whiteSpace() {
      return super.whiteSpace;
    }
    set width(value) {
      if (value == null) dart.nullFailed(I[147], 5892, 20, "value");
      this[S$0._setAll]("width", value);
    }
    get width() {
      return super.width;
    }
    set wordSpacing(value) {
      if (value == null) dart.nullFailed(I[147], 5897, 26, "value");
      this[S$0._setAll]("wordSpacing", value);
    }
    get wordSpacing() {
      return super.wordSpacing;
    }
    set zIndex(value) {
      if (value == null) dart.nullFailed(I[147], 5902, 21, "value");
      this[S$0._setAll]("zIndex", value);
    }
    get zIndex() {
      return super.zIndex;
    }
  };
  (html$._CssStyleDeclarationSet.new = function(_elementIterable) {
    if (_elementIterable == null) dart.nullFailed(I[147], 5435, 32, "_elementIterable");
    this[S$0._elementCssStyleDeclarationSetIterable] = null;
    this[S$0._elementIterable] = _elementIterable;
    this[S$0._elementCssStyleDeclarationSetIterable] = core.List.from(this[S$0._elementIterable])[$map](html$.CssStyleDeclaration, dart.fn(e => html$.CssStyleDeclaration.as(dart.dload(e, 'style')), T$0.dynamicToCssStyleDeclaration()));
  }).prototype = html$._CssStyleDeclarationSet.prototype;
  dart.addTypeTests(html$._CssStyleDeclarationSet);
  dart.addTypeCaches(html$._CssStyleDeclarationSet);
  dart.setMethodSignature(html$._CssStyleDeclarationSet, () => ({
    __proto__: dart.getMethods(html$._CssStyleDeclarationSet.__proto__),
    getPropertyValue: dart.fnType(core.String, [core.String]),
    [S$.$getPropertyValue]: dart.fnType(core.String, [core.String]),
    setProperty: dart.fnType(dart.void, [core.String, dart.nullable(core.String)], [dart.nullable(core.String)]),
    [S$.$setProperty]: dart.fnType(dart.void, [core.String, dart.nullable(core.String)], [dart.nullable(core.String)]),
    [S$0._setAll]: dart.fnType(dart.void, [core.String, dart.nullable(core.String)])
  }));
  dart.setLibraryUri(html$._CssStyleDeclarationSet, I[148]);
  dart.setFieldSignature(html$._CssStyleDeclarationSet, () => ({
    __proto__: dart.getFields(html$._CssStyleDeclarationSet.__proto__),
    [S$0._elementIterable]: dart.finalFieldType(core.Iterable$(html$.Element)),
    [S$0._elementCssStyleDeclarationSetIterable]: dart.fieldType(dart.nullable(core.Iterable$(html$.CssStyleDeclaration)))
  }));
  dart.defineExtensionMethods(html$._CssStyleDeclarationSet, ['getPropertyValue', 'setProperty']);
  dart.defineExtensionAccessors(html$._CssStyleDeclarationSet, [
    'background',
    'backgroundAttachment',
    'backgroundColor',
    'backgroundImage',
    'backgroundPosition',
    'backgroundRepeat',
    'border',
    'borderBottom',
    'borderBottomColor',
    'borderBottomStyle',
    'borderBottomWidth',
    'borderCollapse',
    'borderColor',
    'borderLeft',
    'borderLeftColor',
    'borderLeftStyle',
    'borderLeftWidth',
    'borderRight',
    'borderRightColor',
    'borderRightStyle',
    'borderRightWidth',
    'borderSpacing',
    'borderStyle',
    'borderTop',
    'borderTopColor',
    'borderTopStyle',
    'borderTopWidth',
    'borderWidth',
    'bottom',
    'captionSide',
    'clear',
    'clip',
    'color',
    'content',
    'cursor',
    'direction',
    'display',
    'emptyCells',
    'font',
    'fontFamily',
    'fontSize',
    'fontStyle',
    'fontVariant',
    'fontWeight',
    'height',
    'left',
    'letterSpacing',
    'lineHeight',
    'listStyle',
    'listStyleImage',
    'listStylePosition',
    'listStyleType',
    'margin',
    'marginBottom',
    'marginLeft',
    'marginRight',
    'marginTop',
    'maxHeight',
    'maxWidth',
    'minHeight',
    'minWidth',
    'outline',
    'outlineColor',
    'outlineStyle',
    'outlineWidth',
    'overflow',
    'padding',
    'paddingBottom',
    'paddingLeft',
    'paddingRight',
    'paddingTop',
    'pageBreakAfter',
    'pageBreakBefore',
    'pageBreakInside',
    'position',
    'quotes',
    'right',
    'tableLayout',
    'textAlign',
    'textDecoration',
    'textIndent',
    'textTransform',
    'top',
    'unicodeBidi',
    'verticalAlign',
    'visibility',
    'whiteSpace',
    'width',
    'wordSpacing',
    'zIndex'
  ]);
  html$.CssStyleRule = class CssStyleRule extends html$.CssRule {
    get [S$.$selectorText]() {
      return this.selectorText;
    }
    set [S$.$selectorText](value) {
      this.selectorText = value;
    }
    get [S.$style]() {
      return this.style;
    }
  };
  dart.addTypeTests(html$.CssStyleRule);
  dart.addTypeCaches(html$.CssStyleRule);
  dart.setGetterSignature(html$.CssStyleRule, () => ({
    __proto__: dart.getGetters(html$.CssStyleRule.__proto__),
    [S$.$selectorText]: core.String,
    [S.$style]: html$.CssStyleDeclaration
  }));
  dart.setSetterSignature(html$.CssStyleRule, () => ({
    __proto__: dart.getSetters(html$.CssStyleRule.__proto__),
    [S$.$selectorText]: core.String
  }));
  dart.setLibraryUri(html$.CssStyleRule, I[148]);
  dart.registerExtension("CSSStyleRule", html$.CssStyleRule);
  html$.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    get [S$.$media]() {
      return this.media;
    }
    get [S$0.$ownerNode]() {
      return this.ownerNode;
    }
    get [S$.$parentStyleSheet]() {
      return this.parentStyleSheet;
    }
    get [S.$title]() {
      return this.title;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.StyleSheet);
  dart.addTypeCaches(html$.StyleSheet);
  dart.setGetterSignature(html$.StyleSheet, () => ({
    __proto__: dart.getGetters(html$.StyleSheet.__proto__),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$href]: dart.nullable(core.String),
    [S$.$media]: dart.nullable(html$.MediaList),
    [S$0.$ownerNode]: dart.nullable(html$.Node),
    [S$.$parentStyleSheet]: dart.nullable(html$.StyleSheet),
    [S.$title]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.StyleSheet, () => ({
    __proto__: dart.getSetters(html$.StyleSheet.__proto__),
    [S$.$disabled]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.StyleSheet, I[148]);
  dart.registerExtension("StyleSheet", html$.StyleSheet);
  html$.CssStyleSheet = class CssStyleSheet extends html$.StyleSheet {
    get [S$.$cssRules]() {
      return this.cssRules;
    }
    get [S$0.$ownerRule]() {
      return this.ownerRule;
    }
    get [S$0.$rules]() {
      return this.rules;
    }
    [S$0.$addRule](...args) {
      return this.addRule.apply(this, args);
    }
    [S$.$deleteRule](...args) {
      return this.deleteRule.apply(this, args);
    }
    [S$.$insertRule](...args) {
      return this.insertRule.apply(this, args);
    }
    [S$0.$removeRule](...args) {
      return this.removeRule.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssStyleSheet);
  dart.addTypeCaches(html$.CssStyleSheet);
  dart.setMethodSignature(html$.CssStyleSheet, () => ({
    __proto__: dart.getMethods(html$.CssStyleSheet.__proto__),
    [S$0.$addRule]: dart.fnType(core.int, [dart.nullable(core.String), dart.nullable(core.String)], [dart.nullable(core.int)]),
    [S$.$deleteRule]: dart.fnType(dart.void, [core.int]),
    [S$.$insertRule]: dart.fnType(core.int, [core.String], [dart.nullable(core.int)]),
    [S$0.$removeRule]: dart.fnType(dart.void, [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.CssStyleSheet, () => ({
    __proto__: dart.getGetters(html$.CssStyleSheet.__proto__),
    [S$.$cssRules]: core.List$(html$.CssRule),
    [S$0.$ownerRule]: dart.nullable(html$.CssRule),
    [S$0.$rules]: dart.nullable(core.List$(html$.CssRule))
  }));
  dart.setLibraryUri(html$.CssStyleSheet, I[148]);
  dart.registerExtension("CSSStyleSheet", html$.CssStyleSheet);
  html$.CssSupportsRule = class CssSupportsRule extends html$.CssConditionRule {};
  dart.addTypeTests(html$.CssSupportsRule);
  dart.addTypeCaches(html$.CssSupportsRule);
  dart.setLibraryUri(html$.CssSupportsRule, I[148]);
  dart.registerExtension("CSSSupportsRule", html$.CssSupportsRule);
  html$.CssTransformValue = class CssTransformValue extends html$.CssStyleValue {
    static new(transformComponents = null) {
      if (transformComponents == null) {
        return html$.CssTransformValue._create_1();
      }
      if (T$0.ListOfCssTransformComponent().is(transformComponents)) {
        return html$.CssTransformValue._create_2(transformComponents);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1() {
      return new CSSTransformValue();
    }
    static _create_2(transformComponents) {
      return new CSSTransformValue(transformComponents);
    }
    get [S$.$is2D]() {
      return this.is2D;
    }
    get [$length]() {
      return this.length;
    }
    [S$0.$componentAtIndex](...args) {
      return this.componentAtIndex.apply(this, args);
    }
    [S$0.$toMatrix](...args) {
      return this.toMatrix.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssTransformValue);
  dart.addTypeCaches(html$.CssTransformValue);
  dart.setMethodSignature(html$.CssTransformValue, () => ({
    __proto__: dart.getMethods(html$.CssTransformValue.__proto__),
    [S$0.$componentAtIndex]: dart.fnType(html$.CssTransformComponent, [core.int]),
    [S$0.$toMatrix]: dart.fnType(html$.DomMatrix, [])
  }));
  dart.setGetterSignature(html$.CssTransformValue, () => ({
    __proto__: dart.getGetters(html$.CssTransformValue.__proto__),
    [S$.$is2D]: dart.nullable(core.bool),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.CssTransformValue, I[148]);
  dart.registerExtension("CSSTransformValue", html$.CssTransformValue);
  html$.CssTranslation = class CssTranslation extends html$.CssTransformComponent {
    static new(x, y, z = null) {
      if (x == null) dart.nullFailed(I[147], 8804, 42, "x");
      if (y == null) dart.nullFailed(I[147], 8804, 61, "y");
      if (html$.CssNumericValue.is(y) && html$.CssNumericValue.is(x) && z == null) {
        return html$.CssTranslation._create_1(x, y);
      }
      if (html$.CssNumericValue.is(z) && html$.CssNumericValue.is(y) && html$.CssNumericValue.is(x)) {
        return html$.CssTranslation._create_2(x, y, z);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(x, y) {
      return new CSSTranslation(x, y);
    }
    static _create_2(x, y, z) {
      return new CSSTranslation(x, y, z);
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
    get [S$.$z]() {
      return this.z;
    }
    set [S$.$z](value) {
      this.z = value;
    }
  };
  dart.addTypeTests(html$.CssTranslation);
  dart.addTypeCaches(html$.CssTranslation);
  dart.setGetterSignature(html$.CssTranslation, () => ({
    __proto__: dart.getGetters(html$.CssTranslation.__proto__),
    [S$.$x]: dart.nullable(html$.CssNumericValue),
    [S$.$y]: dart.nullable(html$.CssNumericValue),
    [S$.$z]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setSetterSignature(html$.CssTranslation, () => ({
    __proto__: dart.getSetters(html$.CssTranslation.__proto__),
    [S$.$x]: dart.nullable(html$.CssNumericValue),
    [S$.$y]: dart.nullable(html$.CssNumericValue),
    [S$.$z]: dart.nullable(html$.CssNumericValue)
  }));
  dart.setLibraryUri(html$.CssTranslation, I[148]);
  dart.registerExtension("CSSTranslation", html$.CssTranslation);
  html$.CssUnitValue = class CssUnitValue extends html$.CssNumericValue {
    static new(value, unit) {
      if (value == null) dart.nullFailed(I[147], 8844, 28, "value");
      if (unit == null) dart.nullFailed(I[147], 8844, 42, "unit");
      return html$.CssUnitValue._create_1(value, unit);
    }
    static _create_1(value, unit) {
      return new CSSUnitValue(value, unit);
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$0.$unit]() {
      return this.unit;
    }
    set [S$0.$unit](value) {
      this.unit = value;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  dart.addTypeTests(html$.CssUnitValue);
  dart.addTypeCaches(html$.CssUnitValue);
  dart.setGetterSignature(html$.CssUnitValue, () => ({
    __proto__: dart.getGetters(html$.CssUnitValue.__proto__),
    [S.$type]: dart.nullable(core.String),
    [S$0.$unit]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.CssUnitValue, () => ({
    __proto__: dart.getSetters(html$.CssUnitValue.__proto__),
    [S$0.$unit]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.CssUnitValue, I[148]);
  dart.registerExtension("CSSUnitValue", html$.CssUnitValue);
  html$.CssUnparsedValue = class CssUnparsedValue extends html$.CssStyleValue {
    get [$length]() {
      return this.length;
    }
    [S$0.$fragmentAtIndex](...args) {
      return this.fragmentAtIndex.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CssUnparsedValue);
  dart.addTypeCaches(html$.CssUnparsedValue);
  dart.setMethodSignature(html$.CssUnparsedValue, () => ({
    __proto__: dart.getMethods(html$.CssUnparsedValue.__proto__),
    [S$0.$fragmentAtIndex]: dart.fnType(dart.nullable(core.Object), [core.int])
  }));
  dart.setGetterSignature(html$.CssUnparsedValue, () => ({
    __proto__: dart.getGetters(html$.CssUnparsedValue.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.CssUnparsedValue, I[148]);
  dart.registerExtension("CSSUnparsedValue", html$.CssUnparsedValue);
  html$.CssVariableReferenceValue = class CssVariableReferenceValue extends _interceptors.Interceptor {
    get [S$0.$fallback]() {
      return this.fallback;
    }
    get [S$0.$variable]() {
      return this.variable;
    }
  };
  dart.addTypeTests(html$.CssVariableReferenceValue);
  dart.addTypeCaches(html$.CssVariableReferenceValue);
  dart.setGetterSignature(html$.CssVariableReferenceValue, () => ({
    __proto__: dart.getGetters(html$.CssVariableReferenceValue.__proto__),
    [S$0.$fallback]: dart.nullable(html$.CssUnparsedValue),
    [S$0.$variable]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssVariableReferenceValue, I[148]);
  dart.registerExtension("CSSVariableReferenceValue", html$.CssVariableReferenceValue);
  html$.CssViewportRule = class CssViewportRule extends html$.CssRule {
    get [S.$style]() {
      return this.style;
    }
  };
  dart.addTypeTests(html$.CssViewportRule);
  dart.addTypeCaches(html$.CssViewportRule);
  dart.setGetterSignature(html$.CssViewportRule, () => ({
    __proto__: dart.getGetters(html$.CssViewportRule.__proto__),
    [S.$style]: dart.nullable(html$.CssStyleDeclaration)
  }));
  dart.setLibraryUri(html$.CssViewportRule, I[148]);
  dart.registerExtension("CSSViewportRule", html$.CssViewportRule);
  html$.CssurlImageValue = class CssurlImageValue extends html$.CssImageValue {
    static new(url) {
      if (url == null) dart.nullFailed(I[147], 8914, 35, "url");
      return html$.CssurlImageValue._create_1(url);
    }
    static _create_1(url) {
      return new CSSURLImageValue(url);
    }
    get [S$.$url]() {
      return this.url;
    }
  };
  dart.addTypeTests(html$.CssurlImageValue);
  dart.addTypeCaches(html$.CssurlImageValue);
  dart.setGetterSignature(html$.CssurlImageValue, () => ({
    __proto__: dart.getGetters(html$.CssurlImageValue.__proto__),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.CssurlImageValue, I[148]);
  dart.registerExtension("CSSURLImageValue", html$.CssurlImageValue);
  html$.CustomElementRegistry = class CustomElementRegistry extends _interceptors.Interceptor {
    [S$0.$define](name, constructor, options = null) {
      if (name == null) dart.nullFailed(I[147], 8942, 22, "name");
      if (constructor == null) dart.nullFailed(I[147], 8942, 35, "constructor");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0._define_1](name, constructor, options_1);
        return;
      }
      this[S$0._define_2](name, constructor);
      return;
    }
    [S$0._define_1](...args) {
      return this.define.apply(this, args);
    }
    [S$0._define_2](...args) {
      return this.define.apply(this, args);
    }
    [S.$get](...args) {
      return this.get.apply(this, args);
    }
    [S$0.$whenDefined](name) {
      if (name == null) dart.nullFailed(I[147], 8959, 29, "name");
      return js_util.promiseToFuture(dart.dynamic, this.whenDefined(name));
    }
  };
  dart.addTypeTests(html$.CustomElementRegistry);
  dart.addTypeCaches(html$.CustomElementRegistry);
  dart.setMethodSignature(html$.CustomElementRegistry, () => ({
    __proto__: dart.getMethods(html$.CustomElementRegistry.__proto__),
    [S$0.$define]: dart.fnType(dart.void, [core.String, core.Object], [dart.nullable(core.Map)]),
    [S$0._define_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$0._define_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
    [S.$get]: dart.fnType(dart.nullable(core.Object), [core.String]),
    [S$0.$whenDefined]: dart.fnType(async.Future, [core.String])
  }));
  dart.setLibraryUri(html$.CustomElementRegistry, I[148]);
  dart.registerExtension("CustomElementRegistry", html$.CustomElementRegistry);
  html$.CustomEvent = class CustomEvent$ extends html$.Event {
    get [S$0._dartDetail]() {
      return this._dartDetail;
    }
    set [S$0._dartDetail](value) {
      this._dartDetail = value;
    }
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 8973, 30, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 8974, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 8974, 35, "cancelable");
      let detail = opts && 'detail' in opts ? opts.detail : null;
      let e = html$.CustomEvent.as(html$.document[S._createEvent]("CustomEvent"));
      e[S$0._dartDetail] = detail;
      if (core.List.is(detail) || core.Map.is(detail) || typeof detail == 'string' || typeof detail == 'number') {
        try {
          detail = html_common.convertDartToNative_SerializedScriptValue(detail);
          e[S$0._initCustomEvent](type, canBubble, cancelable, detail);
        } catch (e$) {
          let _ = dart.getThrown(e$);
          if (core.Object.is(_)) {
            e[S$0._initCustomEvent](type, canBubble, cancelable, null);
          } else
            throw e$;
        }
      } else {
        e[S$0._initCustomEvent](type, canBubble, cancelable, null);
      }
      return e;
    }
    get [S$.$detail]() {
      if (this[S$0._dartDetail] != null) {
        return this[S$0._dartDetail];
      }
      return this[S$0._detail];
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 9002, 32, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.CustomEvent._create_1(type, eventInitDict_1);
      }
      return html$.CustomEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new CustomEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new CustomEvent(type);
    }
    get [S$0._detail]() {
      return html_common.convertNativeToDart_SerializedScriptValue(this[S$0._get__detail]);
    }
    get [S$0._get__detail]() {
      return this.detail;
    }
    [S$0._initCustomEvent](...args) {
      return this.initCustomEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.CustomEvent);
  dart.addTypeCaches(html$.CustomEvent);
  dart.setMethodSignature(html$.CustomEvent, () => ({
    __proto__: dart.getMethods(html$.CustomEvent.__proto__),
    [S$0._initCustomEvent]: dart.fnType(dart.void, [core.String], [dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(html$.CustomEvent, () => ({
    __proto__: dart.getGetters(html$.CustomEvent.__proto__),
    [S$.$detail]: dart.dynamic,
    [S$0._detail]: dart.dynamic,
    [S$0._get__detail]: dart.dynamic
  }));
  dart.setLibraryUri(html$.CustomEvent, I[148]);
  dart.setFieldSignature(html$.CustomEvent, () => ({
    __proto__: dart.getFields(html$.CustomEvent.__proto__),
    [S$0._dartDetail]: dart.fieldType(dart.dynamic)
  }));
  dart.registerExtension("CustomEvent", html$.CustomEvent);
  html$.DListElement = class DListElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("dl");
    }
  };
  (html$.DListElement.created = function() {
    html$.DListElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DListElement.prototype;
  dart.addTypeTests(html$.DListElement);
  dart.addTypeCaches(html$.DListElement);
  dart.setLibraryUri(html$.DListElement, I[148]);
  dart.registerExtension("HTMLDListElement", html$.DListElement);
  html$.DataElement = class DataElement extends html$.HtmlElement {
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.DataElement.created = function() {
    html$.DataElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DataElement.prototype;
  dart.addTypeTests(html$.DataElement);
  dart.addTypeCaches(html$.DataElement);
  dart.setGetterSignature(html$.DataElement, () => ({
    __proto__: dart.getGetters(html$.DataElement.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.DataElement, () => ({
    __proto__: dart.getSetters(html$.DataElement.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DataElement, I[148]);
  dart.registerExtension("HTMLDataElement", html$.DataElement);
  html$.DataListElement = class DataListElement extends html$.HtmlElement {
    static new() {
      return html$.DataListElement.as(html$.document[S.$createElement]("datalist"));
    }
    static get supported() {
      return html$.Element.isTagSupported("datalist");
    }
    get [S$0.$options]() {
      return this.options;
    }
  };
  (html$.DataListElement.created = function() {
    html$.DataListElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DataListElement.prototype;
  dart.addTypeTests(html$.DataListElement);
  dart.addTypeCaches(html$.DataListElement);
  dart.setGetterSignature(html$.DataListElement, () => ({
    __proto__: dart.getGetters(html$.DataListElement.__proto__),
    [S$0.$options]: dart.nullable(core.List$(html$.Node))
  }));
  dart.setLibraryUri(html$.DataListElement, I[148]);
  dart.registerExtension("HTMLDataListElement", html$.DataListElement);
  html$.DataTransfer = class DataTransfer$ extends _interceptors.Interceptor {
    static new() {
      return html$.DataTransfer._create_1();
    }
    static _create_1() {
      return new DataTransfer();
    }
    get [S$0.$dropEffect]() {
      return this.dropEffect;
    }
    set [S$0.$dropEffect](value) {
      this.dropEffect = value;
    }
    get [S$0.$effectAllowed]() {
      return this.effectAllowed;
    }
    set [S$0.$effectAllowed](value) {
      this.effectAllowed = value;
    }
    get [S$0.$files]() {
      return this.files;
    }
    get [S$0.$items]() {
      return this.items;
    }
    get [S$0.$types]() {
      return this.types;
    }
    [S$0.$clearData](...args) {
      return this.clearData.apply(this, args);
    }
    [S$0.$getData](...args) {
      return this.getData.apply(this, args);
    }
    [S$0.$setData](...args) {
      return this.setData.apply(this, args);
    }
    [S$0.$setDragImage](...args) {
      return this.setDragImage.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DataTransfer);
  dart.addTypeCaches(html$.DataTransfer);
  dart.setMethodSignature(html$.DataTransfer, () => ({
    __proto__: dart.getMethods(html$.DataTransfer.__proto__),
    [S$0.$clearData]: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    [S$0.$getData]: dart.fnType(core.String, [core.String]),
    [S$0.$setData]: dart.fnType(dart.void, [core.String, core.String]),
    [S$0.$setDragImage]: dart.fnType(dart.void, [html$.Element, core.int, core.int])
  }));
  dart.setGetterSignature(html$.DataTransfer, () => ({
    __proto__: dart.getGetters(html$.DataTransfer.__proto__),
    [S$0.$dropEffect]: dart.nullable(core.String),
    [S$0.$effectAllowed]: dart.nullable(core.String),
    [S$0.$files]: dart.nullable(core.List$(html$.File)),
    [S$0.$items]: dart.nullable(html$.DataTransferItemList),
    [S$0.$types]: dart.nullable(core.List$(core.String))
  }));
  dart.setSetterSignature(html$.DataTransfer, () => ({
    __proto__: dart.getSetters(html$.DataTransfer.__proto__),
    [S$0.$dropEffect]: dart.nullable(core.String),
    [S$0.$effectAllowed]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DataTransfer, I[148]);
  dart.registerExtension("DataTransfer", html$.DataTransfer);
  html$.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
    [S$0.$getAsEntry]() {
      let entry = dart.nullCast(this[S$0._webkitGetAsEntry](), html$.Entry);
      if (dart.nullCheck(entry.isFile))
        _js_helper.applyExtension("FileEntry", entry);
      else if (dart.nullCheck(entry.isDirectory))
        _js_helper.applyExtension("DirectoryEntry", entry);
      else
        _js_helper.applyExtension("Entry", entry);
      return entry;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$0.$getAsFile](...args) {
      return this.getAsFile.apply(this, args);
    }
    [S$0._webkitGetAsEntry](...args) {
      return this.webkitGetAsEntry.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DataTransferItem);
  dart.addTypeCaches(html$.DataTransferItem);
  dart.setMethodSignature(html$.DataTransferItem, () => ({
    __proto__: dart.getMethods(html$.DataTransferItem.__proto__),
    [S$0.$getAsEntry]: dart.fnType(html$.Entry, []),
    [S$0.$getAsFile]: dart.fnType(dart.nullable(html$.File), []),
    [S$0._webkitGetAsEntry]: dart.fnType(dart.nullable(html$.Entry), [])
  }));
  dart.setGetterSignature(html$.DataTransferItem, () => ({
    __proto__: dart.getGetters(html$.DataTransferItem.__proto__),
    [S$.$kind]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DataTransferItem, I[148]);
  dart.registerExtension("DataTransferItem", html$.DataTransferItem);
  html$.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
    get [$length]() {
      return this.length;
    }
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [S$0.$addData](...args) {
      return this.add.apply(this, args);
    }
    [S$0.$addFile](...args) {
      return this.add.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [$remove](...args) {
      return this.remove.apply(this, args);
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 9201, 36, "index");
      return this[index];
    }
  };
  dart.addTypeTests(html$.DataTransferItemList);
  dart.addTypeCaches(html$.DataTransferItemList);
  dart.setMethodSignature(html$.DataTransferItemList, () => ({
    __proto__: dart.getMethods(html$.DataTransferItemList.__proto__),
    [$add]: dart.fnType(dart.nullable(html$.DataTransferItem), [dart.dynamic], [dart.nullable(core.String)]),
    [S$0.$addData]: dart.fnType(dart.nullable(html$.DataTransferItem), [core.String, core.String]),
    [S$0.$addFile]: dart.fnType(dart.nullable(html$.DataTransferItem), [html$.File]),
    [$clear]: dart.fnType(dart.void, []),
    [S$.$item]: dart.fnType(html$.DataTransferItem, [core.int]),
    [$remove]: dart.fnType(dart.void, [core.int]),
    [$_get]: dart.fnType(html$.DataTransferItem, [core.int])
  }));
  dart.setGetterSignature(html$.DataTransferItemList, () => ({
    __proto__: dart.getGetters(html$.DataTransferItemList.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.DataTransferItemList, I[148]);
  dart.registerExtension("DataTransferItemList", html$.DataTransferItemList);
  html$.WorkerGlobalScope = class WorkerGlobalScope extends html$.EventTarget {
    get [S$0.$addressSpace]() {
      return this.addressSpace;
    }
    get [S$0.$caches]() {
      return this.caches;
    }
    get [S$0.$crypto]() {
      return this.crypto;
    }
    get [S$0.$indexedDB]() {
      return this.indexedDB;
    }
    get [S$0.$isSecureContext]() {
      return this.isSecureContext;
    }
    get [S$0.$location]() {
      return this.location;
    }
    get [S$0.$navigator]() {
      return this.navigator;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$0.$performance]() {
      return this.performance;
    }
    get [S$0.$self]() {
      return this.self;
    }
    [S$.$fetch](input, init = null) {
      let init_dict = null;
      if (init != null) {
        init_dict = html_common.convertDartToNative_Dictionary(init);
      }
      return js_util.promiseToFuture(dart.dynamic, this.fetch(input, init_dict));
    }
    [S$0.$importScripts](...args) {
      return this.importScripts.apply(this, args);
    }
    [S$0.$atob](...args) {
      return this.atob.apply(this, args);
    }
    [S$0.$btoa](...args) {
      return this.btoa.apply(this, args);
    }
    [S$0._setInterval_String](...args) {
      return this.setInterval.apply(this, args);
    }
    [S$0._setTimeout_String](...args) {
      return this.setTimeout.apply(this, args);
    }
    [S$0._clearInterval](...args) {
      return this.clearInterval.apply(this, args);
    }
    [S$0._clearTimeout](...args) {
      return this.clearTimeout.apply(this, args);
    }
    [S$0._setInterval](...args) {
      return this.setInterval.apply(this, args);
    }
    [S$0._setTimeout](...args) {
      return this.setTimeout.apply(this, args);
    }
    get [S.$onError]() {
      return html$.WorkerGlobalScope.errorEvent.forTarget(this);
    }
    static get instance() {
      return html$._workerSelf;
    }
  };
  dart.addTypeTests(html$.WorkerGlobalScope);
  dart.addTypeCaches(html$.WorkerGlobalScope);
  html$.WorkerGlobalScope[dart.implements] = () => [html$._WindowTimers, html$.WindowBase64];
  dart.setMethodSignature(html$.WorkerGlobalScope, () => ({
    __proto__: dart.getMethods(html$.WorkerGlobalScope.__proto__),
    [S$.$fetch]: dart.fnType(async.Future, [dart.dynamic], [dart.nullable(core.Map)]),
    [S$0.$importScripts]: dart.fnType(dart.void, [core.String]),
    [S$0.$atob]: dart.fnType(core.String, [core.String]),
    [S$0.$btoa]: dart.fnType(core.String, [core.String]),
    [S$0._setInterval_String]: dart.fnType(core.int, [core.String], [dart.nullable(core.int), dart.nullable(core.Object)]),
    [S$0._setTimeout_String]: dart.fnType(core.int, [core.String], [dart.nullable(core.int), dart.nullable(core.Object)]),
    [S$0._clearInterval]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$0._clearTimeout]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$0._setInterval]: dart.fnType(core.int, [core.Object], [dart.nullable(core.int)]),
    [S$0._setTimeout]: dart.fnType(core.int, [core.Object], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.WorkerGlobalScope, () => ({
    __proto__: dart.getGetters(html$.WorkerGlobalScope.__proto__),
    [S$0.$addressSpace]: dart.nullable(core.String),
    [S$0.$caches]: dart.nullable(html$.CacheStorage),
    [S$0.$crypto]: dart.nullable(html$.Crypto),
    [S$0.$indexedDB]: dart.nullable(indexed_db.IdbFactory),
    [S$0.$isSecureContext]: dart.nullable(core.bool),
    [S$0.$location]: html$._WorkerLocation,
    [S$0.$navigator]: html$._WorkerNavigator,
    [S$.$origin]: dart.nullable(core.String),
    [S$0.$performance]: dart.nullable(html$.WorkerPerformance),
    [S$0.$self]: html$.WorkerGlobalScope,
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.WorkerGlobalScope, I[148]);
  dart.defineLazy(html$.WorkerGlobalScope, {
    /*html$.WorkerGlobalScope.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("WorkerGlobalScope", html$.WorkerGlobalScope);
  html$.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html$.WorkerGlobalScope {
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$.$postMessage](message, transfer = null) {
      if (transfer != null) {
        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
        this[S$0._postMessage_1](message_1, transfer);
        return;
      }
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[S$0._postMessage_2](message_1);
      return;
    }
    [S$0._postMessage_1](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._postMessage_2](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._webkitRequestFileSystem](...args) {
      return this.webkitRequestFileSystem.apply(this, args);
    }
    [S$0.$requestFileSystemSync](...args) {
      return this.webkitRequestFileSystemSync.apply(this, args);
    }
    [S$0.$resolveLocalFileSystemSyncUrl](...args) {
      return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
    }
    [S$0._webkitResolveLocalFileSystemUrl](...args) {
      return this.webkitResolveLocalFileSystemURL.apply(this, args);
    }
    get [S$.$onMessage]() {
      return html$.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
    }
    static get instance() {
      return html$.DedicatedWorkerGlobalScope.as(html$._workerSelf);
    }
  };
  dart.addTypeTests(html$.DedicatedWorkerGlobalScope);
  dart.addTypeCaches(html$.DedicatedWorkerGlobalScope);
  dart.setMethodSignature(html$.DedicatedWorkerGlobalScope, () => ({
    __proto__: dart.getMethods(html$.DedicatedWorkerGlobalScope.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
    [S$0._postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S$0._webkitRequestFileSystem]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(dart.fnType(dart.void, [html$.FileSystem])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$requestFileSystemSync]: dart.fnType(html$._DOMFileSystemSync, [core.int, core.int]),
    [S$0.$resolveLocalFileSystemSyncUrl]: dart.fnType(html$._EntrySync, [core.String]),
    [S$0._webkitResolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))])
  }));
  dart.setGetterSignature(html$.DedicatedWorkerGlobalScope, () => ({
    __proto__: dart.getGetters(html$.DedicatedWorkerGlobalScope.__proto__),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.DedicatedWorkerGlobalScope, I[148]);
  dart.defineLazy(html$.DedicatedWorkerGlobalScope, {
    /*html$.DedicatedWorkerGlobalScope.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.DedicatedWorkerGlobalScope.PERSISTENT*/get PERSISTENT() {
      return 1;
    },
    /*html$.DedicatedWorkerGlobalScope.TEMPORARY*/get TEMPORARY() {
      return 0;
    }
  }, false);
  dart.registerExtension("DedicatedWorkerGlobalScope", html$.DedicatedWorkerGlobalScope);
  html$.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
    [S$0.$queryUsageAndQuota](...args) {
      return this.queryUsageAndQuota.apply(this, args);
    }
    [S$0.$requestQuota](...args) {
      return this.requestQuota.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DeprecatedStorageInfo);
  dart.addTypeCaches(html$.DeprecatedStorageInfo);
  dart.setMethodSignature(html$.DeprecatedStorageInfo, () => ({
    __proto__: dart.getMethods(html$.DeprecatedStorageInfo.__proto__),
    [S$0.$queryUsageAndQuota]: dart.fnType(dart.void, [core.int], [dart.nullable(dart.fnType(dart.void, [core.int, core.int])), dart.nullable(dart.fnType(dart.void, [html$.DomError]))]),
    [S$0.$requestQuota]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(dart.fnType(dart.void, [core.int])), dart.nullable(dart.fnType(dart.void, [html$.DomError]))])
  }));
  dart.setLibraryUri(html$.DeprecatedStorageInfo, I[148]);
  dart.defineLazy(html$.DeprecatedStorageInfo, {
    /*html$.DeprecatedStorageInfo.PERSISTENT*/get PERSISTENT() {
      return 1;
    },
    /*html$.DeprecatedStorageInfo.TEMPORARY*/get TEMPORARY() {
      return 0;
    }
  }, false);
  dart.registerExtension("DeprecatedStorageInfo", html$.DeprecatedStorageInfo);
  html$.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
    [S$0.$queryUsageAndQuota](...args) {
      return this.queryUsageAndQuota.apply(this, args);
    }
    [S$0.$requestQuota](...args) {
      return this.requestQuota.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DeprecatedStorageQuota);
  dart.addTypeCaches(html$.DeprecatedStorageQuota);
  dart.setMethodSignature(html$.DeprecatedStorageQuota, () => ({
    __proto__: dart.getMethods(html$.DeprecatedStorageQuota.__proto__),
    [S$0.$queryUsageAndQuota]: dart.fnType(dart.void, [dart.fnType(dart.void, [core.int, core.int])], [dart.nullable(dart.fnType(dart.void, [html$.DomError]))]),
    [S$0.$requestQuota]: dart.fnType(dart.void, [core.int], [dart.nullable(dart.fnType(dart.void, [core.int])), dart.nullable(dart.fnType(dart.void, [html$.DomError]))])
  }));
  dart.setLibraryUri(html$.DeprecatedStorageQuota, I[148]);
  dart.registerExtension("DeprecatedStorageQuota", html$.DeprecatedStorageQuota);
  html$.ReportBody = class ReportBody extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.ReportBody);
  dart.addTypeCaches(html$.ReportBody);
  dart.setLibraryUri(html$.ReportBody, I[148]);
  dart.registerExtension("ReportBody", html$.ReportBody);
  html$.DeprecationReport = class DeprecationReport extends html$.ReportBody {
    get [S$0.$lineNumber]() {
      return this.lineNumber;
    }
    get [$message]() {
      return this.message;
    }
    get [S$0.$sourceFile]() {
      return this.sourceFile;
    }
  };
  dart.addTypeTests(html$.DeprecationReport);
  dart.addTypeCaches(html$.DeprecationReport);
  dart.setGetterSignature(html$.DeprecationReport, () => ({
    __proto__: dart.getGetters(html$.DeprecationReport.__proto__),
    [S$0.$lineNumber]: dart.nullable(core.int),
    [$message]: dart.nullable(core.String),
    [S$0.$sourceFile]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DeprecationReport, I[148]);
  dart.registerExtension("DeprecationReport", html$.DeprecationReport);
  html$.DetailsElement = class DetailsElement extends html$.HtmlElement {
    static new() {
      return html$.DetailsElement.as(html$.document[S.$createElement]("details"));
    }
    static get supported() {
      return html$.Element.isTagSupported("details");
    }
    get [S.$open]() {
      return this.open;
    }
    set [S.$open](value) {
      this.open = value;
    }
  };
  (html$.DetailsElement.created = function() {
    html$.DetailsElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DetailsElement.prototype;
  dart.addTypeTests(html$.DetailsElement);
  dart.addTypeCaches(html$.DetailsElement);
  dart.setGetterSignature(html$.DetailsElement, () => ({
    __proto__: dart.getGetters(html$.DetailsElement.__proto__),
    [S.$open]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(html$.DetailsElement, () => ({
    __proto__: dart.getSetters(html$.DetailsElement.__proto__),
    [S.$open]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.DetailsElement, I[148]);
  dart.registerExtension("HTMLDetailsElement", html$.DetailsElement);
  html$.DetectedBarcode = class DetectedBarcode$ extends _interceptors.Interceptor {
    static new() {
      return html$.DetectedBarcode._create_1();
    }
    static _create_1() {
      return new DetectedBarcode();
    }
    get [$boundingBox]() {
      return this.boundingBox;
    }
    get [S$0.$cornerPoints]() {
      return this.cornerPoints;
    }
    get [S$0.$rawValue]() {
      return this.rawValue;
    }
  };
  dart.addTypeTests(html$.DetectedBarcode);
  dart.addTypeCaches(html$.DetectedBarcode);
  dart.setGetterSignature(html$.DetectedBarcode, () => ({
    __proto__: dart.getGetters(html$.DetectedBarcode.__proto__),
    [$boundingBox]: dart.nullable(math.Rectangle$(core.num)),
    [S$0.$cornerPoints]: dart.nullable(core.List),
    [S$0.$rawValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DetectedBarcode, I[148]);
  dart.registerExtension("DetectedBarcode", html$.DetectedBarcode);
  html$.DetectedFace = class DetectedFace$ extends _interceptors.Interceptor {
    static new() {
      return html$.DetectedFace._create_1();
    }
    static _create_1() {
      return new DetectedFace();
    }
    get [$boundingBox]() {
      return this.boundingBox;
    }
    get [S$0.$landmarks]() {
      return this.landmarks;
    }
  };
  dart.addTypeTests(html$.DetectedFace);
  dart.addTypeCaches(html$.DetectedFace);
  dart.setGetterSignature(html$.DetectedFace, () => ({
    __proto__: dart.getGetters(html$.DetectedFace.__proto__),
    [$boundingBox]: dart.nullable(math.Rectangle$(core.num)),
    [S$0.$landmarks]: dart.nullable(core.List)
  }));
  dart.setLibraryUri(html$.DetectedFace, I[148]);
  dart.registerExtension("DetectedFace", html$.DetectedFace);
  html$.DetectedText = class DetectedText$ extends _interceptors.Interceptor {
    static new() {
      return html$.DetectedText._create_1();
    }
    static _create_1() {
      return new DetectedText();
    }
    get [$boundingBox]() {
      return this.boundingBox;
    }
    get [S$0.$cornerPoints]() {
      return this.cornerPoints;
    }
    get [S$0.$rawValue]() {
      return this.rawValue;
    }
  };
  dart.addTypeTests(html$.DetectedText);
  dart.addTypeCaches(html$.DetectedText);
  dart.setGetterSignature(html$.DetectedText, () => ({
    __proto__: dart.getGetters(html$.DetectedText.__proto__),
    [$boundingBox]: dart.nullable(math.Rectangle$(core.num)),
    [S$0.$cornerPoints]: dart.nullable(core.List),
    [S$0.$rawValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DetectedText, I[148]);
  dart.registerExtension("DetectedText", html$.DetectedText);
  html$.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  dart.addTypeTests(html$.DeviceAcceleration);
  dart.addTypeCaches(html$.DeviceAcceleration);
  dart.setGetterSignature(html$.DeviceAcceleration, () => ({
    __proto__: dart.getGetters(html$.DeviceAcceleration.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DeviceAcceleration, I[148]);
  dart.registerExtension("DeviceAcceleration", html$.DeviceAcceleration);
  html$.DeviceMotionEvent = class DeviceMotionEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 9480, 36, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.DeviceMotionEvent._create_1(type, eventInitDict_1);
      }
      return html$.DeviceMotionEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new DeviceMotionEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new DeviceMotionEvent(type);
    }
    get [S$0.$acceleration]() {
      return this.acceleration;
    }
    get [S$0.$accelerationIncludingGravity]() {
      return this.accelerationIncludingGravity;
    }
    get [S$0.$interval]() {
      return this.interval;
    }
    get [S$0.$rotationRate]() {
      return this.rotationRate;
    }
  };
  dart.addTypeTests(html$.DeviceMotionEvent);
  dart.addTypeCaches(html$.DeviceMotionEvent);
  dart.setGetterSignature(html$.DeviceMotionEvent, () => ({
    __proto__: dart.getGetters(html$.DeviceMotionEvent.__proto__),
    [S$0.$acceleration]: dart.nullable(html$.DeviceAcceleration),
    [S$0.$accelerationIncludingGravity]: dart.nullable(html$.DeviceAcceleration),
    [S$0.$interval]: dart.nullable(core.num),
    [S$0.$rotationRate]: dart.nullable(html$.DeviceRotationRate)
  }));
  dart.setLibraryUri(html$.DeviceMotionEvent, I[148]);
  dart.registerExtension("DeviceMotionEvent", html$.DeviceMotionEvent);
  html$.DeviceOrientationEvent = class DeviceOrientationEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 9511, 41, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.DeviceOrientationEvent._create_1(type, eventInitDict_1);
      }
      return html$.DeviceOrientationEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new DeviceOrientationEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new DeviceOrientationEvent(type);
    }
    get [S$0.$absolute]() {
      return this.absolute;
    }
    get [S$0.$alpha]() {
      return this.alpha;
    }
    get [S$0.$beta]() {
      return this.beta;
    }
    get [S$0.$gamma]() {
      return this.gamma;
    }
  };
  dart.addTypeTests(html$.DeviceOrientationEvent);
  dart.addTypeCaches(html$.DeviceOrientationEvent);
  dart.setGetterSignature(html$.DeviceOrientationEvent, () => ({
    __proto__: dart.getGetters(html$.DeviceOrientationEvent.__proto__),
    [S$0.$absolute]: dart.nullable(core.bool),
    [S$0.$alpha]: dart.nullable(core.num),
    [S$0.$beta]: dart.nullable(core.num),
    [S$0.$gamma]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DeviceOrientationEvent, I[148]);
  dart.registerExtension("DeviceOrientationEvent", html$.DeviceOrientationEvent);
  html$.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
    get [S$0.$alpha]() {
      return this.alpha;
    }
    get [S$0.$beta]() {
      return this.beta;
    }
    get [S$0.$gamma]() {
      return this.gamma;
    }
  };
  dart.addTypeTests(html$.DeviceRotationRate);
  dart.addTypeCaches(html$.DeviceRotationRate);
  dart.setGetterSignature(html$.DeviceRotationRate, () => ({
    __proto__: dart.getGetters(html$.DeviceRotationRate.__proto__),
    [S$0.$alpha]: dart.nullable(core.num),
    [S$0.$beta]: dart.nullable(core.num),
    [S$0.$gamma]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DeviceRotationRate, I[148]);
  dart.registerExtension("DeviceRotationRate", html$.DeviceRotationRate);
  html$.DialogElement = class DialogElement extends html$.HtmlElement {
    get [S.$open]() {
      return this.open;
    }
    set [S.$open](value) {
      this.open = value;
    }
    get [S$.$returnValue]() {
      return this.returnValue;
    }
    set [S$.$returnValue](value) {
      this.returnValue = value;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$0.$show](...args) {
      return this.show.apply(this, args);
    }
    [S$0.$showModal](...args) {
      return this.showModal.apply(this, args);
    }
  };
  (html$.DialogElement.created = function() {
    html$.DialogElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DialogElement.prototype;
  dart.addTypeTests(html$.DialogElement);
  dart.addTypeCaches(html$.DialogElement);
  dart.setMethodSignature(html$.DialogElement, () => ({
    __proto__: dart.getMethods(html$.DialogElement.__proto__),
    [S.$close]: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    [S$0.$show]: dart.fnType(dart.void, []),
    [S$0.$showModal]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.DialogElement, () => ({
    __proto__: dart.getGetters(html$.DialogElement.__proto__),
    [S.$open]: dart.nullable(core.bool),
    [S$.$returnValue]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.DialogElement, () => ({
    __proto__: dart.getSetters(html$.DialogElement.__proto__),
    [S.$open]: dart.nullable(core.bool),
    [S$.$returnValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DialogElement, I[148]);
  dart.registerExtension("HTMLDialogElement", html$.DialogElement);
  html$.Entry = class Entry extends _interceptors.Interceptor {
    get [S$0.$filesystem]() {
      return this.filesystem;
    }
    get [S$0.$fullPath]() {
      return this.fullPath;
    }
    get [S$0.$isDirectory]() {
      return this.isDirectory;
    }
    get [S$0.$isFile]() {
      return this.isFile;
    }
    get [$name]() {
      return this.name;
    }
    [S$0._copyTo](...args) {
      return this.copyTo.apply(this, args);
    }
    [S$0.$copyTo](parent, opts) {
      if (parent == null) dart.nullFailed(I[147], 15347, 39, "parent");
      let name = opts && 'name' in opts ? opts.name : null;
      let completer = T$0.CompleterOfEntry().new();
      this[S$0._copyTo](parent, name, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 15349, 28, "value");
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 15351, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0._getMetadata](...args) {
      return this.getMetadata.apply(this, args);
    }
    [S$0.$getMetadata]() {
      let completer = T$0.CompleterOfMetadata().new();
      this[S$0._getMetadata](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 15364, 19, "value");
        _js_helper.applyExtension("Metadata", value);
        completer.complete(value);
      }, T$0.MetadataTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 15367, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0._getParent](...args) {
      return this.getParent.apply(this, args);
    }
    [S$0.$getParent]() {
      let completer = T$0.CompleterOfEntry().new();
      this[S$0._getParent](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 15380, 17, "value");
        _js_helper.applyExtension("Entry", value);
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 15383, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0._moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$.$moveTo](parent, opts) {
      if (parent == null) dart.nullFailed(I[147], 15396, 39, "parent");
      let name = opts && 'name' in opts ? opts.name : null;
      let completer = T$0.CompleterOfEntry().new();
      this[S$0._moveTo](parent, name, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 15398, 28, "value");
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 15400, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0._remove$1](...args) {
      return this.remove.apply(this, args);
    }
    [$remove]() {
      let completer = async.Completer.new();
      this[S$0._remove$1](dart.fn(() => {
        completer.complete();
      }, T$.VoidTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 15415, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0.$toUrl](...args) {
      return this.toURL.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Entry);
  dart.addTypeCaches(html$.Entry);
  dart.setMethodSignature(html$.Entry, () => ({
    __proto__: dart.getMethods(html$.Entry.__proto__),
    [S$0._copyTo]: dart.fnType(dart.void, [html$.DirectoryEntry], [dart.nullable(core.String), dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$copyTo]: dart.fnType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: dart.nullable(core.String)}, {}),
    [S$0._getMetadata]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.Metadata])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$getMetadata]: dart.fnType(async.Future$(html$.Metadata), []),
    [S$0._getParent]: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$getParent]: dart.fnType(async.Future$(html$.Entry), []),
    [S$0._moveTo]: dart.fnType(dart.void, [html$.DirectoryEntry], [dart.nullable(core.String), dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$.$moveTo]: dart.fnType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: dart.nullable(core.String)}, {}),
    [S$0._remove$1]: dart.fnType(dart.void, [dart.fnType(dart.void, [])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [$remove]: dart.fnType(async.Future, []),
    [S$0.$toUrl]: dart.fnType(core.String, [])
  }));
  dart.setGetterSignature(html$.Entry, () => ({
    __proto__: dart.getGetters(html$.Entry.__proto__),
    [S$0.$filesystem]: dart.nullable(html$.FileSystem),
    [S$0.$fullPath]: dart.nullable(core.String),
    [S$0.$isDirectory]: dart.nullable(core.bool),
    [S$0.$isFile]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Entry, I[148]);
  dart.registerExtension("Entry", html$.Entry);
  html$.DirectoryEntry = class DirectoryEntry extends html$.Entry {
    [S$0.$createDirectory](path, opts) {
      if (path == null) dart.nullFailed(I[147], 9594, 40, "path");
      let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
      if (exclusive == null) dart.nullFailed(I[147], 9594, 52, "exclusive");
      return this[S$0._getDirectory](path, {options: new _js_helper.LinkedMap.from(["create", true, "exclusive", exclusive])});
    }
    [S$0.$createReader]() {
      let reader = this[S$0._createReader]();
      _js_helper.applyExtension("DirectoryReader", reader);
      return reader;
    }
    [S$0.$getDirectory](path) {
      if (path == null) dart.nullFailed(I[147], 9610, 37, "path");
      return this[S$0._getDirectory](path);
    }
    [S$0.$createFile](path, opts) {
      if (path == null) dart.nullFailed(I[147], 9619, 35, "path");
      let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
      if (exclusive == null) dart.nullFailed(I[147], 9619, 47, "exclusive");
      return this[S$0._getFile](path, {options: new _js_helper.LinkedMap.from(["create", true, "exclusive", exclusive])});
    }
    [S$0.$getFile](path) {
      if (path == null) dart.nullFailed(I[147], 9628, 32, "path");
      return this[S$0._getFile](path);
    }
    [S$0._createReader](...args) {
      return this.createReader.apply(this, args);
    }
    [S$0.__getDirectory](path, options = null, successCallback = null, errorCallback = null) {
      if (errorCallback != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getDirectory_1](path, options_1, successCallback, errorCallback);
        return;
      }
      if (successCallback != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getDirectory_2](path, options_1, successCallback);
        return;
      }
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getDirectory_3](path, options_1);
        return;
      }
      this[S$0.__getDirectory_4](path);
      return;
    }
    [S$0.__getDirectory_1](...args) {
      return this.getDirectory.apply(this, args);
    }
    [S$0.__getDirectory_2](...args) {
      return this.getDirectory.apply(this, args);
    }
    [S$0.__getDirectory_3](...args) {
      return this.getDirectory.apply(this, args);
    }
    [S$0.__getDirectory_4](...args) {
      return this.getDirectory.apply(this, args);
    }
    [S$0._getDirectory](path, opts) {
      let options = opts && 'options' in opts ? opts.options : null;
      let completer = T$0.CompleterOfEntry().new();
      this[S$0.__getDirectory](path, options, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 9676, 36, "value");
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 9678, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0.__getFile](path, options = null, successCallback = null, errorCallback = null) {
      if (errorCallback != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getFile_1](path, options_1, successCallback, errorCallback);
        return;
      }
      if (successCallback != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getFile_2](path, options_1, successCallback);
        return;
      }
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$0.__getFile_3](path, options_1);
        return;
      }
      this[S$0.__getFile_4](path);
      return;
    }
    [S$0.__getFile_1](...args) {
      return this.getFile.apply(this, args);
    }
    [S$0.__getFile_2](...args) {
      return this.getFile.apply(this, args);
    }
    [S$0.__getFile_3](...args) {
      return this.getFile.apply(this, args);
    }
    [S$0.__getFile_4](...args) {
      return this.getFile.apply(this, args);
    }
    [S$0._getFile](path, opts) {
      let options = opts && 'options' in opts ? opts.options : null;
      let completer = T$0.CompleterOfEntry().new();
      this[S$0.__getFile](path, options, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 9720, 31, "value");
        _js_helper.applyExtension("FileEntry", value);
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 9723, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0._removeRecursively](...args) {
      return this.removeRecursively.apply(this, args);
    }
    [S$0.$removeRecursively]() {
      let completer = async.Completer.new();
      this[S$0._removeRecursively](dart.fn(() => {
        completer.complete();
      }, T$.VoidTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 9738, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(html$.DirectoryEntry);
  dart.addTypeCaches(html$.DirectoryEntry);
  dart.setMethodSignature(html$.DirectoryEntry, () => ({
    __proto__: dart.getMethods(html$.DirectoryEntry.__proto__),
    [S$0.$createDirectory]: dart.fnType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}, {}),
    [S$0.$createReader]: dart.fnType(html$.DirectoryReader, []),
    [S$0.$getDirectory]: dart.fnType(async.Future$(html$.Entry), [core.String]),
    [S$0.$createFile]: dart.fnType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}, {}),
    [S$0.$getFile]: dart.fnType(async.Future$(html$.Entry), [core.String]),
    [S$0._createReader]: dart.fnType(html$.DirectoryReader, []),
    [S$0.__getDirectory]: dart.fnType(dart.void, [dart.nullable(core.String)], [dart.nullable(core.Map), dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.__getDirectory_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.__getDirectory_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.Entry]))]),
    [S$0.__getDirectory_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
    [S$0.__getDirectory_4]: dart.fnType(dart.void, [dart.dynamic]),
    [S$0._getDirectory]: dart.fnType(async.Future$(html$.Entry), [dart.nullable(core.String)], {options: dart.nullable(core.Map)}, {}),
    [S$0.__getFile]: dart.fnType(dart.void, [dart.nullable(core.String)], [dart.nullable(core.Map), dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.__getFile_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.Entry])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.__getFile_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.Entry]))]),
    [S$0.__getFile_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
    [S$0.__getFile_4]: dart.fnType(dart.void, [dart.dynamic]),
    [S$0._getFile]: dart.fnType(async.Future$(html$.Entry), [dart.nullable(core.String)], {options: dart.nullable(core.Map)}, {}),
    [S$0._removeRecursively]: dart.fnType(dart.void, [dart.fnType(dart.void, [])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$removeRecursively]: dart.fnType(async.Future, [])
  }));
  dart.setLibraryUri(html$.DirectoryEntry, I[148]);
  dart.registerExtension("DirectoryEntry", html$.DirectoryEntry);
  html$.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
    [S$0._readEntries](...args) {
      return this.readEntries.apply(this, args);
    }
    [S$0.$readEntries]() {
      let completer = T$0.CompleterOfListOfEntry().new();
      this[S$0._readEntries](dart.fn(values => {
        if (values == null) dart.nullFailed(I[147], 9761, 19, "values");
        values[$forEach](dart.fn(value => {
          _js_helper.applyExtension("Entry", value);
          let entry = html$.Entry.as(value);
          if (dart.nullCheck(entry.isFile))
            _js_helper.applyExtension("FileEntry", entry);
          else if (dart.nullCheck(entry.isDirectory)) _js_helper.applyExtension("DirectoryEntry", entry);
        }, T$.dynamicTovoid()));
        completer.complete(T$0.ListOfEntry().from(values));
      }, T$0.ListTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 9770, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(html$.DirectoryReader);
  dart.addTypeCaches(html$.DirectoryReader);
  dart.setMethodSignature(html$.DirectoryReader, () => ({
    __proto__: dart.getMethods(html$.DirectoryReader.__proto__),
    [S$0._readEntries]: dart.fnType(dart.void, [dart.fnType(dart.void, [core.List])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$readEntries]: dart.fnType(async.Future$(core.List$(html$.Entry)), [])
  }));
  dart.setLibraryUri(html$.DirectoryReader, I[148]);
  dart.registerExtension("DirectoryReader", html$.DirectoryReader);
  html$.DivElement = class DivElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("div");
    }
  };
  (html$.DivElement.created = function() {
    html$.DivElement.__proto__.created.call(this);
    ;
  }).prototype = html$.DivElement.prototype;
  dart.addTypeTests(html$.DivElement);
  dart.addTypeCaches(html$.DivElement);
  dart.setLibraryUri(html$.DivElement, I[148]);
  dart.registerExtension("HTMLDivElement", html$.DivElement);
  html$.Document = class Document$ extends html$.Node {
    static new() {
      return html$.Document._create_1();
    }
    static _create_1() {
      return new Document();
    }
    get [S$0.$addressSpace]() {
      return this.addressSpace;
    }
    get [S$0._body]() {
      return this.body;
    }
    set [S$0._body](value) {
      this.body = value;
    }
    get [S$0.$contentType]() {
      return this.contentType;
    }
    get [S$0.$cookie]() {
      return this.cookie;
    }
    set [S$0.$cookie](value) {
      this.cookie = value;
    }
    get [S$0.$currentScript]() {
      return this.currentScript;
    }
    get [S$0.$window]() {
      return html$._convertNativeToDart_Window(this[S$0._get_window]);
    }
    get [S$0._get_window]() {
      return this.defaultView;
    }
    get [S$0.$documentElement]() {
      return this.documentElement;
    }
    get [S$0.$domain]() {
      return this.domain;
    }
    get [S$0.$fullscreenEnabled]() {
      return this.fullscreenEnabled;
    }
    get [S$0._head$1]() {
      return this.head;
    }
    get [S.$hidden]() {
      return this.hidden;
    }
    get [S$0.$implementation]() {
      return this.implementation;
    }
    get [S$0._lastModified]() {
      return this.lastModified;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$0._preferredStylesheetSet]() {
      return this.preferredStylesheetSet;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$1._referrer]() {
      return this.referrer;
    }
    get [S$1.$rootElement]() {
      return this.rootElement;
    }
    get [S$1.$rootScroller]() {
      return this.rootScroller;
    }
    set [S$1.$rootScroller](value) {
      this.rootScroller = value;
    }
    get [S$1.$scrollingElement]() {
      return this.scrollingElement;
    }
    get [S$1._selectedStylesheetSet]() {
      return this.selectedStylesheetSet;
    }
    set [S$1._selectedStylesheetSet](value) {
      this.selectedStylesheetSet = value;
    }
    get [S$1.$suborigin]() {
      return this.suborigin;
    }
    get [S$.$timeline]() {
      return this.timeline;
    }
    get [S$1._title]() {
      return this.title;
    }
    set [S$1._title](value) {
      this.title = value;
    }
    get [S$1._visibilityState]() {
      return this.visibilityState;
    }
    get [S$1._webkitFullscreenElement]() {
      return this.webkitFullscreenElement;
    }
    get [S$1._webkitFullscreenEnabled]() {
      return this.webkitFullscreenEnabled;
    }
    get [S$1._webkitHidden]() {
      return this.webkitHidden;
    }
    get [S$1._webkitVisibilityState]() {
      return this.webkitVisibilityState;
    }
    [S$1.$adoptNode](...args) {
      return this.adoptNode.apply(this, args);
    }
    [S$1._caretRangeFromPoint](...args) {
      return this.caretRangeFromPoint.apply(this, args);
    }
    [S$1.$createDocumentFragment](...args) {
      return this.createDocumentFragment.apply(this, args);
    }
    [S$1._createElement](...args) {
      return this.createElement.apply(this, args);
    }
    [S$1._createElementNS](...args) {
      return this.createElementNS.apply(this, args);
    }
    [S._createEvent](...args) {
      return this.createEvent.apply(this, args);
    }
    [S$1.$createRange](...args) {
      return this.createRange.apply(this, args);
    }
    [S$1._createTextNode](...args) {
      return this.createTextNode.apply(this, args);
    }
    [S$1._createTouch](view, target, identifier, pageX, pageY, screenX, screenY, radiusX = null, radiusY = null, rotationAngle = null, force = null) {
      if (view == null) dart.nullFailed(I[147], 10002, 29, "view");
      if (target == null) dart.nullFailed(I[147], 10002, 47, "target");
      if (identifier == null) dart.nullFailed(I[147], 10002, 59, "identifier");
      if (pageX == null) dart.nullFailed(I[147], 10002, 75, "pageX");
      if (pageY == null) dart.nullFailed(I[147], 10003, 11, "pageY");
      if (screenX == null) dart.nullFailed(I[147], 10003, 22, "screenX");
      if (screenY == null) dart.nullFailed(I[147], 10003, 35, "screenY");
      if (force != null) {
        let target_1 = html$._convertDartToNative_EventTarget(target);
        return this[S$1._createTouch_1](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
      }
      if (rotationAngle != null) {
        let target_1 = html$._convertDartToNative_EventTarget(target);
        return this[S$1._createTouch_2](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle);
      }
      if (radiusY != null) {
        let target_1 = html$._convertDartToNative_EventTarget(target);
        return this[S$1._createTouch_3](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY);
      }
      if (radiusX != null) {
        let target_1 = html$._convertDartToNative_EventTarget(target);
        return this[S$1._createTouch_4](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX);
      }
      let target_1 = html$._convertDartToNative_EventTarget(target);
      return this[S$1._createTouch_5](view, target_1, identifier, pageX, pageY, screenX, screenY);
    }
    [S$1._createTouch_1](...args) {
      return this.createTouch.apply(this, args);
    }
    [S$1._createTouch_2](...args) {
      return this.createTouch.apply(this, args);
    }
    [S$1._createTouch_3](...args) {
      return this.createTouch.apply(this, args);
    }
    [S$1._createTouch_4](...args) {
      return this.createTouch.apply(this, args);
    }
    [S$1._createTouch_5](...args) {
      return this.createTouch.apply(this, args);
    }
    [S$1._createTouchList](...args) {
      return this.createTouchList.apply(this, args);
    }
    [S$1.$execCommand](...args) {
      return this.execCommand.apply(this, args);
    }
    [S$1.$exitFullscreen](...args) {
      return this.exitFullscreen.apply(this, args);
    }
    [S$1.$exitPointerLock](...args) {
      return this.exitPointerLock.apply(this, args);
    }
    [S.$getAnimations](...args) {
      return this.getAnimations.apply(this, args);
    }
    [S.$getElementsByClassName](...args) {
      return this.getElementsByClassName.apply(this, args);
    }
    [S$1.$getElementsByName](...args) {
      return this.getElementsByName.apply(this, args);
    }
    [S$1.$getElementsByTagName](...args) {
      return this.getElementsByTagName.apply(this, args);
    }
    [S$1.$importNode](...args) {
      return this.importNode.apply(this, args);
    }
    [S$1.$queryCommandEnabled](...args) {
      return this.queryCommandEnabled.apply(this, args);
    }
    [S$1.$queryCommandIndeterm](...args) {
      return this.queryCommandIndeterm.apply(this, args);
    }
    [S$1.$queryCommandState](...args) {
      return this.queryCommandState.apply(this, args);
    }
    [S$1.$queryCommandSupported](...args) {
      return this.queryCommandSupported.apply(this, args);
    }
    [S$1.$queryCommandValue](...args) {
      return this.queryCommandValue.apply(this, args);
    }
    [S$1.$registerElement2](type, options = null) {
      if (type == null) dart.nullFailed(I[147], 10081, 36, "type");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S$1._registerElement2_1](type, options_1);
      }
      return this[S$1._registerElement2_2](type);
    }
    [S$1._registerElement2_1](...args) {
      return this.registerElement.apply(this, args);
    }
    [S$1._registerElement2_2](...args) {
      return this.registerElement.apply(this, args);
    }
    [S$1._webkitExitFullscreen](...args) {
      return this.webkitExitFullscreen.apply(this, args);
    }
    [S$1.$getElementById](...args) {
      return this.getElementById.apply(this, args);
    }
    get [S$1.$activeElement]() {
      return this.activeElement;
    }
    get [S$1.$fullscreenElement]() {
      return this.fullscreenElement;
    }
    get [S$1.$pointerLockElement]() {
      return this.pointerLockElement;
    }
    get [S$1._styleSheets]() {
      return this.styleSheets;
    }
    [S$1._elementFromPoint](...args) {
      return this.elementFromPoint.apply(this, args);
    }
    [S$1.$elementsFromPoint](...args) {
      return this.elementsFromPoint.apply(this, args);
    }
    get [S$1.$fonts]() {
      return this.fonts;
    }
    get [S._childElementCount]() {
      return this.childElementCount;
    }
    get [S._children]() {
      return this.children;
    }
    get [S._firstElementChild]() {
      return this.firstElementChild;
    }
    get [S._lastElementChild]() {
      return this.lastElementChild;
    }
    [S.$querySelector](...args) {
      return this.querySelector.apply(this, args);
    }
    [S._querySelectorAll](...args) {
      return this.querySelectorAll.apply(this, args);
    }
    get [S.$onAbort]() {
      return html$.Element.abortEvent.forTarget(this);
    }
    get [S.$onBeforeCopy]() {
      return html$.Element.beforeCopyEvent.forTarget(this);
    }
    get [S.$onBeforeCut]() {
      return html$.Element.beforeCutEvent.forTarget(this);
    }
    get [S.$onBeforePaste]() {
      return html$.Element.beforePasteEvent.forTarget(this);
    }
    get [S.$onBlur]() {
      return html$.Element.blurEvent.forTarget(this);
    }
    get [S.$onCanPlay]() {
      return html$.Element.canPlayEvent.forTarget(this);
    }
    get [S.$onCanPlayThrough]() {
      return html$.Element.canPlayThroughEvent.forTarget(this);
    }
    get [S.$onChange]() {
      return html$.Element.changeEvent.forTarget(this);
    }
    get [S.$onClick]() {
      return html$.Element.clickEvent.forTarget(this);
    }
    get [S.$onContextMenu]() {
      return html$.Element.contextMenuEvent.forTarget(this);
    }
    get [S.$onCopy]() {
      return html$.Element.copyEvent.forTarget(this);
    }
    get [S.$onCut]() {
      return html$.Element.cutEvent.forTarget(this);
    }
    get [S.$onDoubleClick]() {
      return html$.Element.doubleClickEvent.forTarget(this);
    }
    get [S.$onDrag]() {
      return html$.Element.dragEvent.forTarget(this);
    }
    get [S.$onDragEnd]() {
      return html$.Element.dragEndEvent.forTarget(this);
    }
    get [S.$onDragEnter]() {
      return html$.Element.dragEnterEvent.forTarget(this);
    }
    get [S.$onDragLeave]() {
      return html$.Element.dragLeaveEvent.forTarget(this);
    }
    get [S.$onDragOver]() {
      return html$.Element.dragOverEvent.forTarget(this);
    }
    get [S.$onDragStart]() {
      return html$.Element.dragStartEvent.forTarget(this);
    }
    get [S.$onDrop]() {
      return html$.Element.dropEvent.forTarget(this);
    }
    get [S.$onDurationChange]() {
      return html$.Element.durationChangeEvent.forTarget(this);
    }
    get [S.$onEmptied]() {
      return html$.Element.emptiedEvent.forTarget(this);
    }
    get [S.$onEnded]() {
      return html$.Element.endedEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.Element.errorEvent.forTarget(this);
    }
    get [S.$onFocus]() {
      return html$.Element.focusEvent.forTarget(this);
    }
    get [S.$onInput]() {
      return html$.Element.inputEvent.forTarget(this);
    }
    get [S.$onInvalid]() {
      return html$.Element.invalidEvent.forTarget(this);
    }
    get [S.$onKeyDown]() {
      return html$.Element.keyDownEvent.forTarget(this);
    }
    get [S.$onKeyPress]() {
      return html$.Element.keyPressEvent.forTarget(this);
    }
    get [S.$onKeyUp]() {
      return html$.Element.keyUpEvent.forTarget(this);
    }
    get [S.$onLoad]() {
      return html$.Element.loadEvent.forTarget(this);
    }
    get [S.$onLoadedData]() {
      return html$.Element.loadedDataEvent.forTarget(this);
    }
    get [S.$onLoadedMetadata]() {
      return html$.Element.loadedMetadataEvent.forTarget(this);
    }
    get [S.$onMouseDown]() {
      return html$.Element.mouseDownEvent.forTarget(this);
    }
    get [S.$onMouseEnter]() {
      return html$.Element.mouseEnterEvent.forTarget(this);
    }
    get [S.$onMouseLeave]() {
      return html$.Element.mouseLeaveEvent.forTarget(this);
    }
    get [S.$onMouseMove]() {
      return html$.Element.mouseMoveEvent.forTarget(this);
    }
    get [S.$onMouseOut]() {
      return html$.Element.mouseOutEvent.forTarget(this);
    }
    get [S.$onMouseOver]() {
      return html$.Element.mouseOverEvent.forTarget(this);
    }
    get [S.$onMouseUp]() {
      return html$.Element.mouseUpEvent.forTarget(this);
    }
    get [S.$onMouseWheel]() {
      return html$.Element.mouseWheelEvent.forTarget(this);
    }
    get [S.$onPaste]() {
      return html$.Element.pasteEvent.forTarget(this);
    }
    get [S.$onPause]() {
      return html$.Element.pauseEvent.forTarget(this);
    }
    get [S.$onPlay]() {
      return html$.Element.playEvent.forTarget(this);
    }
    get [S.$onPlaying]() {
      return html$.Element.playingEvent.forTarget(this);
    }
    get [S$1.$onPointerLockChange]() {
      return html$.Document.pointerLockChangeEvent.forTarget(this);
    }
    get [S$1.$onPointerLockError]() {
      return html$.Document.pointerLockErrorEvent.forTarget(this);
    }
    get [S.$onRateChange]() {
      return html$.Element.rateChangeEvent.forTarget(this);
    }
    get [S$1.$onReadyStateChange]() {
      return html$.Document.readyStateChangeEvent.forTarget(this);
    }
    get [S.$onReset]() {
      return html$.Element.resetEvent.forTarget(this);
    }
    get [S.$onResize]() {
      return html$.Element.resizeEvent.forTarget(this);
    }
    get [S.$onScroll]() {
      return html$.Element.scrollEvent.forTarget(this);
    }
    get [S.$onSearch]() {
      return html$.Element.searchEvent.forTarget(this);
    }
    get [S$1.$onSecurityPolicyViolation]() {
      return html$.Document.securityPolicyViolationEvent.forTarget(this);
    }
    get [S.$onSeeked]() {
      return html$.Element.seekedEvent.forTarget(this);
    }
    get [S.$onSeeking]() {
      return html$.Element.seekingEvent.forTarget(this);
    }
    get [S.$onSelect]() {
      return html$.Element.selectEvent.forTarget(this);
    }
    get [S$1.$onSelectionChange]() {
      return html$.Document.selectionChangeEvent.forTarget(this);
    }
    get [S.$onSelectStart]() {
      return html$.Element.selectStartEvent.forTarget(this);
    }
    get [S.$onStalled]() {
      return html$.Element.stalledEvent.forTarget(this);
    }
    get [S.$onSubmit]() {
      return html$.Element.submitEvent.forTarget(this);
    }
    get [S$.$onSuspend]() {
      return html$.Element.suspendEvent.forTarget(this);
    }
    get [S$.$onTimeUpdate]() {
      return html$.Element.timeUpdateEvent.forTarget(this);
    }
    get [S$.$onTouchCancel]() {
      return html$.Element.touchCancelEvent.forTarget(this);
    }
    get [S$.$onTouchEnd]() {
      return html$.Element.touchEndEvent.forTarget(this);
    }
    get [S$.$onTouchMove]() {
      return html$.Element.touchMoveEvent.forTarget(this);
    }
    get [S$.$onTouchStart]() {
      return html$.Element.touchStartEvent.forTarget(this);
    }
    get [S$.$onVolumeChange]() {
      return html$.Element.volumeChangeEvent.forTarget(this);
    }
    get [S$.$onWaiting]() {
      return html$.Element.waitingEvent.forTarget(this);
    }
    get [S$.$onFullscreenChange]() {
      return html$.Element.fullscreenChangeEvent.forTarget(this);
    }
    get [S$.$onFullscreenError]() {
      return html$.Element.fullscreenErrorEvent.forTarget(this);
    }
    [S.$querySelectorAll](T, selectors) {
      if (selectors == null) dart.nullFailed(I[147], 10387, 61, "selectors");
      return new (html$._FrozenElementList$(T))._wrap(this[S._querySelectorAll](selectors));
    }
    get [S$1.$supportsRegisterElement]() {
      return "registerElement" in this;
    }
    get [S$1.$supportsRegister]() {
      return this[S$1.$supportsRegisterElement];
    }
    [S$1.$registerElement](tag, customElementClass, opts) {
      if (tag == null) dart.nullFailed(I[147], 10399, 31, "tag");
      if (customElementClass == null) dart.nullFailed(I[147], 10399, 41, "customElementClass");
      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
      this[S$1.$registerElement2](tag, new _js_helper.LinkedMap.from(["prototype", customElementClass, "extends", extendsTag]));
    }
    [S.$createElement](tagName, typeExtension = null) {
      if (tagName == null) dart.nullFailed(I[147], 10406, 32, "tagName");
      return html$.Element.as(typeExtension == null ? this[S$1._createElement_2](tagName) : this[S$1._createElement](tagName, typeExtension));
    }
    [S$1._createElement_2](tagName) {
      if (tagName == null) dart.nullFailed(I[147], 10414, 27, "tagName");
      return this.createElement(tagName);
    }
    [S$1._createElementNS_2](namespaceURI, qualifiedName) {
      if (namespaceURI == null) dart.nullFailed(I[147], 10419, 29, "namespaceURI");
      if (qualifiedName == null) dart.nullFailed(I[147], 10419, 50, "qualifiedName");
      return this.createElementNS(namespaceURI, qualifiedName);
    }
    [S$1.$createElementNS](namespaceURI, qualifiedName, typeExtension = null) {
      if (namespaceURI == null) dart.nullFailed(I[147], 10422, 34, "namespaceURI");
      if (qualifiedName == null) dart.nullFailed(I[147], 10422, 55, "qualifiedName");
      return html$.Element.as(typeExtension == null ? this[S$1._createElementNS_2](namespaceURI, qualifiedName) : this[S$1._createElementNS](namespaceURI, qualifiedName, typeExtension));
    }
    [S$1._createNodeIterator](root, whatToShow = null, filter = null) {
      if (root == null) dart.nullFailed(I[147], 10429, 41, "root");
      return this.createNodeIterator(root, whatToShow, filter, false);
    }
    [S$1._createTreeWalker](root, whatToShow = null, filter = null) {
      if (root == null) dart.nullFailed(I[147], 10434, 37, "root");
      return this.createTreeWalker(root, whatToShow, filter, false);
    }
    get [S$1.$visibilityState]() {
      return this.visibilityState || this.mozVisibilityState || this.msVisibilityState || this.webkitVisibilityState;
    }
  };
  dart.addTypeTests(html$.Document);
  dart.addTypeCaches(html$.Document);
  dart.setMethodSignature(html$.Document, () => ({
    __proto__: dart.getMethods(html$.Document.__proto__),
    [S$1.$adoptNode]: dart.fnType(html$.Node, [html$.Node]),
    [S$1._caretRangeFromPoint]: dart.fnType(html$.Range, [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$1.$createDocumentFragment]: dart.fnType(html$.DocumentFragment, []),
    [S$1._createElement]: dart.fnType(html$.Element, [core.String], [dart.dynamic]),
    [S$1._createElementNS]: dart.fnType(html$.Element, [dart.nullable(core.String), core.String], [dart.dynamic]),
    [S._createEvent]: dart.fnType(html$.Event, [core.String]),
    [S$1.$createRange]: dart.fnType(html$.Range, []),
    [S$1._createTextNode]: dart.fnType(html$.Text, [core.String]),
    [S$1._createTouch]: dart.fnType(html$.Touch, [html$.Window, html$.EventTarget, core.int, core.num, core.num, core.num, core.num], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1._createTouch_1]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1._createTouch_2]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1._createTouch_3]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1._createTouch_4]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1._createTouch_5]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1._createTouchList]: dart.fnType(html$.TouchList, [html$.Touch]),
    [S$1.$execCommand]: dart.fnType(core.bool, [core.String], [dart.nullable(core.bool), dart.nullable(core.String)]),
    [S$1.$exitFullscreen]: dart.fnType(dart.void, []),
    [S$1.$exitPointerLock]: dart.fnType(dart.void, []),
    [S.$getAnimations]: dart.fnType(core.List$(html$.Animation), []),
    [S.$getElementsByClassName]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S$1.$getElementsByName]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S$1.$getElementsByTagName]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S$1.$importNode]: dart.fnType(html$.Node, [html$.Node], [dart.nullable(core.bool)]),
    [S$1.$queryCommandEnabled]: dart.fnType(core.bool, [core.String]),
    [S$1.$queryCommandIndeterm]: dart.fnType(core.bool, [core.String]),
    [S$1.$queryCommandState]: dart.fnType(core.bool, [core.String]),
    [S$1.$queryCommandSupported]: dart.fnType(core.bool, [core.String]),
    [S$1.$queryCommandValue]: dart.fnType(core.String, [core.String]),
    [S$1.$registerElement2]: dart.fnType(core.Function, [core.String], [dart.nullable(core.Map)]),
    [S$1._registerElement2_1]: dart.fnType(core.Function, [dart.dynamic, dart.dynamic]),
    [S$1._registerElement2_2]: dart.fnType(core.Function, [dart.dynamic]),
    [S$1._webkitExitFullscreen]: dart.fnType(dart.void, []),
    [S$1.$getElementById]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S$1._elementFromPoint]: dart.fnType(dart.nullable(html$.Element), [core.int, core.int]),
    [S$1.$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
    [S.$querySelector]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S._querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String]),
    [S.$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
    [S$1.$registerElement]: dart.fnType(dart.void, [core.String, core.Type], {extendsTag: dart.nullable(core.String)}, {}),
    [S.$createElement]: dart.fnType(html$.Element, [core.String], [dart.nullable(core.String)]),
    [S$1._createElement_2]: dart.fnType(dart.dynamic, [core.String]),
    [S$1._createElementNS_2]: dart.fnType(dart.dynamic, [core.String, core.String]),
    [S$1.$createElementNS]: dart.fnType(html$.Element, [core.String, core.String], [dart.nullable(core.String)]),
    [S$1._createNodeIterator]: dart.fnType(html$.NodeIterator, [html$.Node], [dart.nullable(core.int), dart.nullable(html$.NodeFilter)]),
    [S$1._createTreeWalker]: dart.fnType(html$.TreeWalker, [html$.Node], [dart.nullable(core.int), dart.nullable(html$.NodeFilter)])
  }));
  dart.setGetterSignature(html$.Document, () => ({
    __proto__: dart.getGetters(html$.Document.__proto__),
    [S$0.$addressSpace]: dart.nullable(core.String),
    [S$0._body]: dart.nullable(html$.HtmlElement),
    [S$0.$contentType]: dart.nullable(core.String),
    [S$0.$cookie]: dart.nullable(core.String),
    [S$0.$currentScript]: dart.nullable(html$.ScriptElement),
    [S$0.$window]: dart.nullable(html$.WindowBase),
    [S$0._get_window]: dart.dynamic,
    [S$0.$documentElement]: dart.nullable(html$.Element),
    [S$0.$domain]: dart.nullable(core.String),
    [S$0.$fullscreenEnabled]: dart.nullable(core.bool),
    [S$0._head$1]: dart.nullable(html$.HeadElement),
    [S.$hidden]: dart.nullable(core.bool),
    [S$0.$implementation]: dart.nullable(html$.DomImplementation),
    [S$0._lastModified]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$0._preferredStylesheetSet]: dart.nullable(core.String),
    [S.$readyState]: dart.nullable(core.String),
    [S$1._referrer]: core.String,
    [S$1.$rootElement]: dart.nullable(svg$.SvgSvgElement),
    [S$1.$rootScroller]: dart.nullable(html$.Element),
    [S$1.$scrollingElement]: dart.nullable(html$.Element),
    [S$1._selectedStylesheetSet]: dart.nullable(core.String),
    [S$1.$suborigin]: dart.nullable(core.String),
    [S$.$timeline]: dart.nullable(html$.DocumentTimeline),
    [S$1._title]: core.String,
    [S$1._visibilityState]: dart.nullable(core.String),
    [S$1._webkitFullscreenElement]: dart.nullable(html$.Element),
    [S$1._webkitFullscreenEnabled]: dart.nullable(core.bool),
    [S$1._webkitHidden]: dart.nullable(core.bool),
    [S$1._webkitVisibilityState]: dart.nullable(core.String),
    [S$1.$activeElement]: dart.nullable(html$.Element),
    [S$1.$fullscreenElement]: dart.nullable(html$.Element),
    [S$1.$pointerLockElement]: dart.nullable(html$.Element),
    [S$1._styleSheets]: dart.nullable(core.List$(html$.StyleSheet)),
    [S$1.$fonts]: dart.nullable(html$.FontFaceSet),
    [S._childElementCount]: core.int,
    [S._children]: dart.nullable(core.List$(html$.Node)),
    [S._firstElementChild]: dart.nullable(html$.Element),
    [S._lastElementChild]: dart.nullable(html$.Element),
    [S.$onAbort]: async.Stream$(html$.Event),
    [S.$onBeforeCopy]: async.Stream$(html$.Event),
    [S.$onBeforeCut]: async.Stream$(html$.Event),
    [S.$onBeforePaste]: async.Stream$(html$.Event),
    [S.$onBlur]: async.Stream$(html$.Event),
    [S.$onCanPlay]: async.Stream$(html$.Event),
    [S.$onCanPlayThrough]: async.Stream$(html$.Event),
    [S.$onChange]: async.Stream$(html$.Event),
    [S.$onClick]: async.Stream$(html$.MouseEvent),
    [S.$onContextMenu]: async.Stream$(html$.MouseEvent),
    [S.$onCopy]: async.Stream$(html$.ClipboardEvent),
    [S.$onCut]: async.Stream$(html$.ClipboardEvent),
    [S.$onDoubleClick]: async.Stream$(html$.Event),
    [S.$onDrag]: async.Stream$(html$.MouseEvent),
    [S.$onDragEnd]: async.Stream$(html$.MouseEvent),
    [S.$onDragEnter]: async.Stream$(html$.MouseEvent),
    [S.$onDragLeave]: async.Stream$(html$.MouseEvent),
    [S.$onDragOver]: async.Stream$(html$.MouseEvent),
    [S.$onDragStart]: async.Stream$(html$.MouseEvent),
    [S.$onDrop]: async.Stream$(html$.MouseEvent),
    [S.$onDurationChange]: async.Stream$(html$.Event),
    [S.$onEmptied]: async.Stream$(html$.Event),
    [S.$onEnded]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S.$onFocus]: async.Stream$(html$.Event),
    [S.$onInput]: async.Stream$(html$.Event),
    [S.$onInvalid]: async.Stream$(html$.Event),
    [S.$onKeyDown]: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyPress]: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyUp]: async.Stream$(html$.KeyboardEvent),
    [S.$onLoad]: async.Stream$(html$.Event),
    [S.$onLoadedData]: async.Stream$(html$.Event),
    [S.$onLoadedMetadata]: async.Stream$(html$.Event),
    [S.$onMouseDown]: async.Stream$(html$.MouseEvent),
    [S.$onMouseEnter]: async.Stream$(html$.MouseEvent),
    [S.$onMouseLeave]: async.Stream$(html$.MouseEvent),
    [S.$onMouseMove]: async.Stream$(html$.MouseEvent),
    [S.$onMouseOut]: async.Stream$(html$.MouseEvent),
    [S.$onMouseOver]: async.Stream$(html$.MouseEvent),
    [S.$onMouseUp]: async.Stream$(html$.MouseEvent),
    [S.$onMouseWheel]: async.Stream$(html$.WheelEvent),
    [S.$onPaste]: async.Stream$(html$.ClipboardEvent),
    [S.$onPause]: async.Stream$(html$.Event),
    [S.$onPlay]: async.Stream$(html$.Event),
    [S.$onPlaying]: async.Stream$(html$.Event),
    [S$1.$onPointerLockChange]: async.Stream$(html$.Event),
    [S$1.$onPointerLockError]: async.Stream$(html$.Event),
    [S.$onRateChange]: async.Stream$(html$.Event),
    [S$1.$onReadyStateChange]: async.Stream$(html$.Event),
    [S.$onReset]: async.Stream$(html$.Event),
    [S.$onResize]: async.Stream$(html$.Event),
    [S.$onScroll]: async.Stream$(html$.Event),
    [S.$onSearch]: async.Stream$(html$.Event),
    [S$1.$onSecurityPolicyViolation]: async.Stream$(html$.SecurityPolicyViolationEvent),
    [S.$onSeeked]: async.Stream$(html$.Event),
    [S.$onSeeking]: async.Stream$(html$.Event),
    [S.$onSelect]: async.Stream$(html$.Event),
    [S$1.$onSelectionChange]: async.Stream$(html$.Event),
    [S.$onSelectStart]: async.Stream$(html$.Event),
    [S.$onStalled]: async.Stream$(html$.Event),
    [S.$onSubmit]: async.Stream$(html$.Event),
    [S$.$onSuspend]: async.Stream$(html$.Event),
    [S$.$onTimeUpdate]: async.Stream$(html$.Event),
    [S$.$onTouchCancel]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchEnd]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchMove]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchStart]: async.Stream$(html$.TouchEvent),
    [S$.$onVolumeChange]: async.Stream$(html$.Event),
    [S$.$onWaiting]: async.Stream$(html$.Event),
    [S$.$onFullscreenChange]: async.Stream$(html$.Event),
    [S$.$onFullscreenError]: async.Stream$(html$.Event),
    [S$1.$supportsRegisterElement]: core.bool,
    [S$1.$supportsRegister]: core.bool,
    [S$1.$visibilityState]: core.String
  }));
  dart.setSetterSignature(html$.Document, () => ({
    __proto__: dart.getSetters(html$.Document.__proto__),
    [S$0._body]: dart.nullable(html$.HtmlElement),
    [S$0.$cookie]: dart.nullable(core.String),
    [S$1.$rootScroller]: dart.nullable(html$.Element),
    [S$1._selectedStylesheetSet]: dart.nullable(core.String),
    [S$1._title]: core.String
  }));
  dart.setLibraryUri(html$.Document, I[148]);
  dart.defineLazy(html$.Document, {
    /*html$.Document.pointerLockChangeEvent*/get pointerLockChangeEvent() {
      return C[322] || CT.C322;
    },
    /*html$.Document.pointerLockErrorEvent*/get pointerLockErrorEvent() {
      return C[323] || CT.C323;
    },
    /*html$.Document.readyStateChangeEvent*/get readyStateChangeEvent() {
      return C[324] || CT.C324;
    },
    /*html$.Document.securityPolicyViolationEvent*/get securityPolicyViolationEvent() {
      return C[325] || CT.C325;
    },
    /*html$.Document.selectionChangeEvent*/get selectionChangeEvent() {
      return C[326] || CT.C326;
    }
  }, false);
  dart.registerExtension("Document", html$.Document);
  html$.DocumentFragment = class DocumentFragment extends html$.Node {
    get [S$1._docChildren]() {
      return this._docChildren;
    }
    set [S$1._docChildren](value) {
      this._docChildren = value;
    }
    static new() {
      return html$.document.createDocumentFragment();
    }
    static html(html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      return dart.nullCheck(html$.document.body)[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    }
    static svg(svgContent, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      return svg$.SvgSvgElement.new()[S.$createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
    }
    get [S._children]() {
      return dart.throw(new core.UnimplementedError.new("Use _docChildren instead"));
    }
    get [S.$children]() {
      if (this[S$1._docChildren] == null) {
        this[S$1._docChildren] = new html_common.FilteredElementList.new(this);
      }
      return dart.nullCheck(this[S$1._docChildren]);
    }
    set [S.$children](value) {
      if (value == null) dart.nullFailed(I[147], 10487, 30, "value");
      let copy = value[$toList]();
      let children = this[S.$children];
      children[$clear]();
      children[$addAll](copy);
    }
    [S.$querySelectorAll](T, selectors) {
      if (selectors == null) dart.nullFailed(I[147], 10506, 61, "selectors");
      return new (html$._FrozenElementList$(T))._wrap(this[S._querySelectorAll](selectors));
    }
    get [S.$innerHtml]() {
      let e = html$.DivElement.new();
      e[S.$append](this[S$.$clone](true));
      return e[S.$innerHtml];
    }
    set [S.$innerHtml](value) {
      this[S.$setInnerHtml](value);
    }
    [S.$setInnerHtml](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      this[S.$nodes][$clear]();
      this[S.$append](dart.nullCheck(html$.document.body)[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
    }
    [S.$appendText](text) {
      if (text == null) dart.nullFailed(I[147], 10533, 26, "text");
      this[S.$append](html$.Text.new(text));
    }
    [S.$appendHtml](text, opts) {
      if (text == null) dart.nullFailed(I[147], 10541, 26, "text");
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      this[S.$append](html$.DocumentFragment.html(text, {validator: validator, treeSanitizer: treeSanitizer}));
    }
    [S$1.$getElementById](...args) {
      return this.getElementById.apply(this, args);
    }
    get [S._childElementCount]() {
      return this.childElementCount;
    }
    get [S._firstElementChild]() {
      return this.firstElementChild;
    }
    get [S._lastElementChild]() {
      return this.lastElementChild;
    }
    [S.$querySelector](...args) {
      return this.querySelector.apply(this, args);
    }
    [S._querySelectorAll](...args) {
      return this.querySelectorAll.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DocumentFragment);
  dart.addTypeCaches(html$.DocumentFragment);
  html$.DocumentFragment[dart.implements] = () => [html$.NonElementParentNode, html$.ParentNode];
  dart.setMethodSignature(html$.DocumentFragment, () => ({
    __proto__: dart.getMethods(html$.DocumentFragment.__proto__),
    [S.$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
    [S.$setInnerHtml]: dart.fnType(dart.void, [dart.nullable(core.String)], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S.$appendText]: dart.fnType(dart.void, [core.String]),
    [S.$appendHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: dart.nullable(html$.NodeTreeSanitizer), validator: dart.nullable(html$.NodeValidator)}, {}),
    [S$1.$getElementById]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S.$querySelector]: dart.fnType(dart.nullable(html$.Element), [core.String]),
    [S._querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String])
  }));
  dart.setGetterSignature(html$.DocumentFragment, () => ({
    __proto__: dart.getGetters(html$.DocumentFragment.__proto__),
    [S._children]: html$.HtmlCollection,
    [S.$children]: core.List$(html$.Element),
    [S.$innerHtml]: dart.nullable(core.String),
    [S._childElementCount]: core.int,
    [S._firstElementChild]: dart.nullable(html$.Element),
    [S._lastElementChild]: dart.nullable(html$.Element)
  }));
  dart.setSetterSignature(html$.DocumentFragment, () => ({
    __proto__: dart.getSetters(html$.DocumentFragment.__proto__),
    [S.$children]: core.List$(html$.Element),
    [S.$innerHtml]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DocumentFragment, I[148]);
  dart.setFieldSignature(html$.DocumentFragment, () => ({
    __proto__: dart.getFields(html$.DocumentFragment.__proto__),
    [S$1._docChildren]: dart.fieldType(dart.nullable(core.List$(html$.Element)))
  }));
  dart.registerExtension("DocumentFragment", html$.DocumentFragment);
  html$.DocumentOrShadowRoot = class DocumentOrShadowRoot extends _interceptors.Interceptor {
    get [S$1.$activeElement]() {
      return this.activeElement;
    }
    get [S$1.$fullscreenElement]() {
      return this.fullscreenElement;
    }
    get [S$1.$pointerLockElement]() {
      return this.pointerLockElement;
    }
    get [S$1.$styleSheets]() {
      return this.styleSheets;
    }
    [S$1.$elementFromPoint](...args) {
      return this.elementFromPoint.apply(this, args);
    }
    [S$1.$elementsFromPoint](...args) {
      return this.elementsFromPoint.apply(this, args);
    }
    [S$1.$getSelection](...args) {
      return this.getSelection.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DocumentOrShadowRoot);
  dart.addTypeCaches(html$.DocumentOrShadowRoot);
  dart.setMethodSignature(html$.DocumentOrShadowRoot, () => ({
    __proto__: dart.getMethods(html$.DocumentOrShadowRoot.__proto__),
    [S$1.$elementFromPoint]: dart.fnType(dart.nullable(html$.Element), [core.int, core.int]),
    [S$1.$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
    [S$1.$getSelection]: dart.fnType(dart.nullable(html$.Selection), [])
  }));
  dart.setGetterSignature(html$.DocumentOrShadowRoot, () => ({
    __proto__: dart.getGetters(html$.DocumentOrShadowRoot.__proto__),
    [S$1.$activeElement]: dart.nullable(html$.Element),
    [S$1.$fullscreenElement]: dart.nullable(html$.Element),
    [S$1.$pointerLockElement]: dart.nullable(html$.Element),
    [S$1.$styleSheets]: dart.nullable(core.List$(html$.StyleSheet))
  }));
  dart.setLibraryUri(html$.DocumentOrShadowRoot, I[148]);
  dart.registerExtension("DocumentOrShadowRoot", html$.DocumentOrShadowRoot);
  html$.DocumentTimeline = class DocumentTimeline$ extends html$.AnimationTimeline {
    static new(options = null) {
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.DocumentTimeline._create_1(options_1);
      }
      return html$.DocumentTimeline._create_2();
    }
    static _create_1(options) {
      return new DocumentTimeline(options);
    }
    static _create_2() {
      return new DocumentTimeline();
    }
  };
  dart.addTypeTests(html$.DocumentTimeline);
  dart.addTypeCaches(html$.DocumentTimeline);
  dart.setLibraryUri(html$.DocumentTimeline, I[148]);
  dart.registerExtension("DocumentTimeline", html$.DocumentTimeline);
  html$.DomError = class DomError extends _interceptors.Interceptor {
    static new(name, message = null) {
      if (name == null) dart.nullFailed(I[147], 10647, 27, "name");
      if (message != null) {
        return html$.DomError._create_1(name, message);
      }
      return html$.DomError._create_2(name);
    }
    static _create_1(name, message) {
      return new DOMError(name, message);
    }
    static _create_2(name) {
      return new DOMError(name);
    }
    get [$message]() {
      return this.message;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.DomError);
  dart.addTypeCaches(html$.DomError);
  dart.setGetterSignature(html$.DomError, () => ({
    __proto__: dart.getGetters(html$.DomError.__proto__),
    [$message]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DomError, I[148]);
  dart.registerExtension("DOMError", html$.DomError);
  html$.DomException = class DomException extends _interceptors.Interceptor {
    get [$name]() {
      let errorName = this.name;
      if (dart.test(html_common.Device.isWebKit) && errorName[$_equals]("SECURITY_ERR")) return "SecurityError";
      if (dart.test(html_common.Device.isWebKit) && errorName[$_equals]("SYNTAX_ERR")) return "SyntaxError";
      return core.String.as(errorName);
    }
    get [$message]() {
      return this.message;
    }
    [$toString]() {
      return String(this);
    }
  };
  dart.addTypeTests(html$.DomException);
  dart.addTypeCaches(html$.DomException);
  dart.setGetterSignature(html$.DomException, () => ({
    __proto__: dart.getGetters(html$.DomException.__proto__),
    [$name]: core.String,
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DomException, I[148]);
  dart.defineLazy(html$.DomException, {
    /*html$.DomException.INDEX_SIZE*/get INDEX_SIZE() {
      return "IndexSizeError";
    },
    /*html$.DomException.HIERARCHY_REQUEST*/get HIERARCHY_REQUEST() {
      return "HierarchyRequestError";
    },
    /*html$.DomException.WRONG_DOCUMENT*/get WRONG_DOCUMENT() {
      return "WrongDocumentError";
    },
    /*html$.DomException.INVALID_CHARACTER*/get INVALID_CHARACTER() {
      return "InvalidCharacterError";
    },
    /*html$.DomException.NO_MODIFICATION_ALLOWED*/get NO_MODIFICATION_ALLOWED() {
      return "NoModificationAllowedError";
    },
    /*html$.DomException.NOT_FOUND*/get NOT_FOUND() {
      return "NotFoundError";
    },
    /*html$.DomException.NOT_SUPPORTED*/get NOT_SUPPORTED() {
      return "NotSupportedError";
    },
    /*html$.DomException.INVALID_STATE*/get INVALID_STATE() {
      return "InvalidStateError";
    },
    /*html$.DomException.SYNTAX*/get SYNTAX() {
      return "SyntaxError";
    },
    /*html$.DomException.INVALID_MODIFICATION*/get INVALID_MODIFICATION() {
      return "InvalidModificationError";
    },
    /*html$.DomException.NAMESPACE*/get NAMESPACE() {
      return "NamespaceError";
    },
    /*html$.DomException.INVALID_ACCESS*/get INVALID_ACCESS() {
      return "InvalidAccessError";
    },
    /*html$.DomException.TYPE_MISMATCH*/get TYPE_MISMATCH() {
      return "TypeMismatchError";
    },
    /*html$.DomException.SECURITY*/get SECURITY() {
      return "SecurityError";
    },
    /*html$.DomException.NETWORK*/get NETWORK() {
      return "NetworkError";
    },
    /*html$.DomException.ABORT*/get ABORT() {
      return "AbortError";
    },
    /*html$.DomException.URL_MISMATCH*/get URL_MISMATCH() {
      return "URLMismatchError";
    },
    /*html$.DomException.QUOTA_EXCEEDED*/get QUOTA_EXCEEDED() {
      return "QuotaExceededError";
    },
    /*html$.DomException.TIMEOUT*/get TIMEOUT() {
      return "TimeoutError";
    },
    /*html$.DomException.INVALID_NODE_TYPE*/get INVALID_NODE_TYPE() {
      return "InvalidNodeTypeError";
    },
    /*html$.DomException.DATA_CLONE*/get DATA_CLONE() {
      return "DataCloneError";
    },
    /*html$.DomException.ENCODING*/get ENCODING() {
      return "EncodingError";
    },
    /*html$.DomException.NOT_READABLE*/get NOT_READABLE() {
      return "NotReadableError";
    },
    /*html$.DomException.UNKNOWN*/get UNKNOWN() {
      return "UnknownError";
    },
    /*html$.DomException.CONSTRAINT*/get CONSTRAINT() {
      return "ConstraintError";
    },
    /*html$.DomException.TRANSACTION_INACTIVE*/get TRANSACTION_INACTIVE() {
      return "TransactionInactiveError";
    },
    /*html$.DomException.READ_ONLY*/get READ_ONLY() {
      return "ReadOnlyError";
    },
    /*html$.DomException.VERSION*/get VERSION() {
      return "VersionError";
    },
    /*html$.DomException.OPERATION*/get OPERATION() {
      return "OperationError";
    },
    /*html$.DomException.NOT_ALLOWED*/get NOT_ALLOWED() {
      return "NotAllowedError";
    },
    /*html$.DomException.TYPE_ERROR*/get TYPE_ERROR() {
      return "TypeError";
    }
  }, false);
  dart.registerExtension("DOMException", html$.DomException);
  html$.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
    [S$1.$createDocument](...args) {
      return this.createDocument.apply(this, args);
    }
    [S$1.$createDocumentType](...args) {
      return this.createDocumentType.apply(this, args);
    }
    [S.$createHtmlDocument](...args) {
      return this.createHTMLDocument.apply(this, args);
    }
    [S$1.$hasFeature](...args) {
      return this.hasFeature.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomImplementation);
  dart.addTypeCaches(html$.DomImplementation);
  dart.setMethodSignature(html$.DomImplementation, () => ({
    __proto__: dart.getMethods(html$.DomImplementation.__proto__),
    [S$1.$createDocument]: dart.fnType(html$.XmlDocument, [dart.nullable(core.String), core.String, dart.nullable(html$._DocumentType)]),
    [S$1.$createDocumentType]: dart.fnType(html$._DocumentType, [core.String, core.String, core.String]),
    [S.$createHtmlDocument]: dart.fnType(html$.HtmlDocument, [], [dart.nullable(core.String)]),
    [S$1.$hasFeature]: dart.fnType(core.bool, [])
  }));
  dart.setLibraryUri(html$.DomImplementation, I[148]);
  dart.registerExtension("DOMImplementation", html$.DomImplementation);
  html$.DomIterator = class DomIterator extends _interceptors.Interceptor {
    [S.$next](...args) {
      return this.next.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomIterator);
  dart.addTypeCaches(html$.DomIterator);
  dart.setMethodSignature(html$.DomIterator, () => ({
    __proto__: dart.getMethods(html$.DomIterator.__proto__),
    [S.$next]: dart.fnType(dart.nullable(core.Object), [], [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(html$.DomIterator, I[148]);
  dart.registerExtension("Iterator", html$.DomIterator);
  html$.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
    static new(init = null) {
      if (init != null) {
        return html$.DomMatrixReadOnly._create_1(init);
      }
      return html$.DomMatrixReadOnly._create_2();
    }
    static _create_1(init) {
      return new DOMMatrixReadOnly(init);
    }
    static _create_2() {
      return new DOMMatrixReadOnly();
    }
    get [S$1.$a]() {
      return this.a;
    }
    get [S$1.$b]() {
      return this.b;
    }
    get [S$1.$c]() {
      return this.c;
    }
    get [S$1.$d]() {
      return this.d;
    }
    get [S$1.$e]() {
      return this.e;
    }
    get [S$1.$f]() {
      return this.f;
    }
    get [S$.$is2D]() {
      return this.is2D;
    }
    get [S$1.$isIdentity]() {
      return this.isIdentity;
    }
    get [S$1.$m11]() {
      return this.m11;
    }
    get [S$1.$m12]() {
      return this.m12;
    }
    get [S$1.$m13]() {
      return this.m13;
    }
    get [S$1.$m14]() {
      return this.m14;
    }
    get [S$1.$m21]() {
      return this.m21;
    }
    get [S$1.$m22]() {
      return this.m22;
    }
    get [S$1.$m23]() {
      return this.m23;
    }
    get [S$1.$m24]() {
      return this.m24;
    }
    get [S$1.$m31]() {
      return this.m31;
    }
    get [S$1.$m32]() {
      return this.m32;
    }
    get [S$1.$m33]() {
      return this.m33;
    }
    get [S$1.$m34]() {
      return this.m34;
    }
    get [S$1.$m41]() {
      return this.m41;
    }
    get [S$1.$m42]() {
      return this.m42;
    }
    get [S$1.$m43]() {
      return this.m43;
    }
    get [S$1.$m44]() {
      return this.m44;
    }
    [S$1.$flipX](...args) {
      return this.flipX.apply(this, args);
    }
    [S$1.$flipY](...args) {
      return this.flipY.apply(this, args);
    }
    static fromMatrix(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMMatrixReadOnly.fromMatrix(other_1);
      }
      return dart.global.DOMMatrixReadOnly.fromMatrix();
    }
    [S$1.$inverse](...args) {
      return this.inverse.apply(this, args);
    }
    [S$1.$multiply](other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return this[S$1._multiply_1](other_1);
      }
      return this[S$1._multiply_2]();
    }
    [S$1._multiply_1](...args) {
      return this.multiply.apply(this, args);
    }
    [S$1._multiply_2](...args) {
      return this.multiply.apply(this, args);
    }
    [S$.$rotate](...args) {
      return this.rotate.apply(this, args);
    }
    [S$1.$rotateAxisAngle](...args) {
      return this.rotateAxisAngle.apply(this, args);
    }
    [S$1.$rotateFromVector](...args) {
      return this.rotateFromVector.apply(this, args);
    }
    [S$.$scale](...args) {
      return this.scale.apply(this, args);
    }
    [S$1.$scale3d](...args) {
      return this.scale3d.apply(this, args);
    }
    [S$1.$skewX](...args) {
      return this.skewX.apply(this, args);
    }
    [S$1.$skewY](...args) {
      return this.skewY.apply(this, args);
    }
    [S$1.$toFloat32Array](...args) {
      return this.toFloat32Array.apply(this, args);
    }
    [S$1.$toFloat64Array](...args) {
      return this.toFloat64Array.apply(this, args);
    }
    [S$1.$transformPoint](point = null) {
      if (point != null) {
        let point_1 = html_common.convertDartToNative_Dictionary(point);
        return this[S$1._transformPoint_1](point_1);
      }
      return this[S$1._transformPoint_2]();
    }
    [S$1._transformPoint_1](...args) {
      return this.transformPoint.apply(this, args);
    }
    [S$1._transformPoint_2](...args) {
      return this.transformPoint.apply(this, args);
    }
    [S.$translate](...args) {
      return this.translate.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomMatrixReadOnly);
  dart.addTypeCaches(html$.DomMatrixReadOnly);
  dart.setMethodSignature(html$.DomMatrixReadOnly, () => ({
    __proto__: dart.getMethods(html$.DomMatrixReadOnly.__proto__),
    [S$1.$flipX]: dart.fnType(html$.DomMatrix, []),
    [S$1.$flipY]: dart.fnType(html$.DomMatrix, []),
    [S$1.$inverse]: dart.fnType(html$.DomMatrix, []),
    [S$1.$multiply]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.Map)]),
    [S$1._multiply_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
    [S$1._multiply_2]: dart.fnType(html$.DomMatrix, []),
    [S$.$rotate]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$rotateAxisAngle]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$rotateFromVector]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num)]),
    [S$.$scale]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$scale3d]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$skewX]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num)]),
    [S$1.$skewY]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num)]),
    [S$1.$toFloat32Array]: dart.fnType(typed_data.Float32List, []),
    [S$1.$toFloat64Array]: dart.fnType(typed_data.Float64List, []),
    [S$1.$transformPoint]: dart.fnType(html$.DomPoint, [], [dart.nullable(core.Map)]),
    [S$1._transformPoint_1]: dart.fnType(html$.DomPoint, [dart.dynamic]),
    [S$1._transformPoint_2]: dart.fnType(html$.DomPoint, []),
    [S.$translate]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)])
  }));
  dart.setGetterSignature(html$.DomMatrixReadOnly, () => ({
    __proto__: dart.getGetters(html$.DomMatrixReadOnly.__proto__),
    [S$1.$a]: dart.nullable(core.num),
    [S$1.$b]: dart.nullable(core.num),
    [S$1.$c]: dart.nullable(core.num),
    [S$1.$d]: dart.nullable(core.num),
    [S$1.$e]: dart.nullable(core.num),
    [S$1.$f]: dart.nullable(core.num),
    [S$.$is2D]: dart.nullable(core.bool),
    [S$1.$isIdentity]: dart.nullable(core.bool),
    [S$1.$m11]: dart.nullable(core.num),
    [S$1.$m12]: dart.nullable(core.num),
    [S$1.$m13]: dart.nullable(core.num),
    [S$1.$m14]: dart.nullable(core.num),
    [S$1.$m21]: dart.nullable(core.num),
    [S$1.$m22]: dart.nullable(core.num),
    [S$1.$m23]: dart.nullable(core.num),
    [S$1.$m24]: dart.nullable(core.num),
    [S$1.$m31]: dart.nullable(core.num),
    [S$1.$m32]: dart.nullable(core.num),
    [S$1.$m33]: dart.nullable(core.num),
    [S$1.$m34]: dart.nullable(core.num),
    [S$1.$m41]: dart.nullable(core.num),
    [S$1.$m42]: dart.nullable(core.num),
    [S$1.$m43]: dart.nullable(core.num),
    [S$1.$m44]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DomMatrixReadOnly, I[148]);
  dart.registerExtension("DOMMatrixReadOnly", html$.DomMatrixReadOnly);
  html$.DomMatrix = class DomMatrix extends html$.DomMatrixReadOnly {
    static new(init = null) {
      if (init != null) {
        return html$.DomMatrix._create_1(init);
      }
      return html$.DomMatrix._create_2();
    }
    static _create_1(init) {
      return new DOMMatrix(init);
    }
    static _create_2() {
      return new DOMMatrix();
    }
    get [S$1.$a]() {
      return this.a;
    }
    set [S$1.$a](value) {
      this.a = value;
    }
    get [S$1.$b]() {
      return this.b;
    }
    set [S$1.$b](value) {
      this.b = value;
    }
    get [S$1.$c]() {
      return this.c;
    }
    set [S$1.$c](value) {
      this.c = value;
    }
    get [S$1.$d]() {
      return this.d;
    }
    set [S$1.$d](value) {
      this.d = value;
    }
    get [S$1.$e]() {
      return this.e;
    }
    set [S$1.$e](value) {
      this.e = value;
    }
    get [S$1.$f]() {
      return this.f;
    }
    set [S$1.$f](value) {
      this.f = value;
    }
    get [S$1.$m11]() {
      return this.m11;
    }
    set [S$1.$m11](value) {
      this.m11 = value;
    }
    get [S$1.$m12]() {
      return this.m12;
    }
    set [S$1.$m12](value) {
      this.m12 = value;
    }
    get [S$1.$m13]() {
      return this.m13;
    }
    set [S$1.$m13](value) {
      this.m13 = value;
    }
    get [S$1.$m14]() {
      return this.m14;
    }
    set [S$1.$m14](value) {
      this.m14 = value;
    }
    get [S$1.$m21]() {
      return this.m21;
    }
    set [S$1.$m21](value) {
      this.m21 = value;
    }
    get [S$1.$m22]() {
      return this.m22;
    }
    set [S$1.$m22](value) {
      this.m22 = value;
    }
    get [S$1.$m23]() {
      return this.m23;
    }
    set [S$1.$m23](value) {
      this.m23 = value;
    }
    get [S$1.$m24]() {
      return this.m24;
    }
    set [S$1.$m24](value) {
      this.m24 = value;
    }
    get [S$1.$m31]() {
      return this.m31;
    }
    set [S$1.$m31](value) {
      this.m31 = value;
    }
    get [S$1.$m32]() {
      return this.m32;
    }
    set [S$1.$m32](value) {
      this.m32 = value;
    }
    get [S$1.$m33]() {
      return this.m33;
    }
    set [S$1.$m33](value) {
      this.m33 = value;
    }
    get [S$1.$m34]() {
      return this.m34;
    }
    set [S$1.$m34](value) {
      this.m34 = value;
    }
    get [S$1.$m41]() {
      return this.m41;
    }
    set [S$1.$m41](value) {
      this.m41 = value;
    }
    get [S$1.$m42]() {
      return this.m42;
    }
    set [S$1.$m42](value) {
      this.m42 = value;
    }
    get [S$1.$m43]() {
      return this.m43;
    }
    set [S$1.$m43](value) {
      this.m43 = value;
    }
    get [S$1.$m44]() {
      return this.m44;
    }
    set [S$1.$m44](value) {
      this.m44 = value;
    }
    static fromMatrix(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMMatrix.fromMatrix(other_1);
      }
      return dart.global.DOMMatrix.fromMatrix();
    }
    [S$1.$invertSelf](...args) {
      return this.invertSelf.apply(this, args);
    }
    [S$1.$multiplySelf](other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return this[S$1._multiplySelf_1](other_1);
      }
      return this[S$1._multiplySelf_2]();
    }
    [S$1._multiplySelf_1](...args) {
      return this.multiplySelf.apply(this, args);
    }
    [S$1._multiplySelf_2](...args) {
      return this.multiplySelf.apply(this, args);
    }
    [S$1.$preMultiplySelf](other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return this[S$1._preMultiplySelf_1](other_1);
      }
      return this[S$1._preMultiplySelf_2]();
    }
    [S$1._preMultiplySelf_1](...args) {
      return this.preMultiplySelf.apply(this, args);
    }
    [S$1._preMultiplySelf_2](...args) {
      return this.preMultiplySelf.apply(this, args);
    }
    [S$1.$rotateAxisAngleSelf](...args) {
      return this.rotateAxisAngleSelf.apply(this, args);
    }
    [S$1.$rotateFromVectorSelf](...args) {
      return this.rotateFromVectorSelf.apply(this, args);
    }
    [S$1.$rotateSelf](...args) {
      return this.rotateSelf.apply(this, args);
    }
    [S$1.$scale3dSelf](...args) {
      return this.scale3dSelf.apply(this, args);
    }
    [S$1.$scaleSelf](...args) {
      return this.scaleSelf.apply(this, args);
    }
    [S$1.$setMatrixValue](...args) {
      return this.setMatrixValue.apply(this, args);
    }
    [S$1.$skewXSelf](...args) {
      return this.skewXSelf.apply(this, args);
    }
    [S$1.$skewYSelf](...args) {
      return this.skewYSelf.apply(this, args);
    }
    [S$1.$translateSelf](...args) {
      return this.translateSelf.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomMatrix);
  dart.addTypeCaches(html$.DomMatrix);
  dart.setMethodSignature(html$.DomMatrix, () => ({
    __proto__: dart.getMethods(html$.DomMatrix.__proto__),
    [S$1.$invertSelf]: dart.fnType(html$.DomMatrix, []),
    [S$1.$multiplySelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.Map)]),
    [S$1._multiplySelf_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
    [S$1._multiplySelf_2]: dart.fnType(html$.DomMatrix, []),
    [S$1.$preMultiplySelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.Map)]),
    [S$1._preMultiplySelf_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
    [S$1._preMultiplySelf_2]: dart.fnType(html$.DomMatrix, []),
    [S$1.$rotateAxisAngleSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$rotateFromVectorSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$rotateSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$scale3dSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$scaleSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$1.$setMatrixValue]: dart.fnType(html$.DomMatrix, [core.String]),
    [S$1.$skewXSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num)]),
    [S$1.$skewYSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num)]),
    [S$1.$translateSelf]: dart.fnType(html$.DomMatrix, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)])
  }));
  dart.setSetterSignature(html$.DomMatrix, () => ({
    __proto__: dart.getSetters(html$.DomMatrix.__proto__),
    [S$1.$a]: dart.nullable(core.num),
    [S$1.$b]: dart.nullable(core.num),
    [S$1.$c]: dart.nullable(core.num),
    [S$1.$d]: dart.nullable(core.num),
    [S$1.$e]: dart.nullable(core.num),
    [S$1.$f]: dart.nullable(core.num),
    [S$1.$m11]: dart.nullable(core.num),
    [S$1.$m12]: dart.nullable(core.num),
    [S$1.$m13]: dart.nullable(core.num),
    [S$1.$m14]: dart.nullable(core.num),
    [S$1.$m21]: dart.nullable(core.num),
    [S$1.$m22]: dart.nullable(core.num),
    [S$1.$m23]: dart.nullable(core.num),
    [S$1.$m24]: dart.nullable(core.num),
    [S$1.$m31]: dart.nullable(core.num),
    [S$1.$m32]: dart.nullable(core.num),
    [S$1.$m33]: dart.nullable(core.num),
    [S$1.$m34]: dart.nullable(core.num),
    [S$1.$m41]: dart.nullable(core.num),
    [S$1.$m42]: dart.nullable(core.num),
    [S$1.$m43]: dart.nullable(core.num),
    [S$1.$m44]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DomMatrix, I[148]);
  dart.registerExtension("DOMMatrix", html$.DomMatrix);
  html$.DomParser = class DomParser extends _interceptors.Interceptor {
    static new() {
      return html$.DomParser._create_1();
    }
    static _create_1() {
      return new DOMParser();
    }
    [S$1.$parseFromString](...args) {
      return this.parseFromString.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomParser);
  dart.addTypeCaches(html$.DomParser);
  dart.setMethodSignature(html$.DomParser, () => ({
    __proto__: dart.getMethods(html$.DomParser.__proto__),
    [S$1.$parseFromString]: dart.fnType(html$.Document, [core.String, core.String])
  }));
  dart.setLibraryUri(html$.DomParser, I[148]);
  dart.registerExtension("DOMParser", html$.DomParser);
  html$.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
    static new(x = null, y = null, z = null, w = null) {
      if (w != null) {
        return html$.DomPointReadOnly._create_1(x, y, z, w);
      }
      if (z != null) {
        return html$.DomPointReadOnly._create_2(x, y, z);
      }
      if (y != null) {
        return html$.DomPointReadOnly._create_3(x, y);
      }
      if (x != null) {
        return html$.DomPointReadOnly._create_4(x);
      }
      return html$.DomPointReadOnly._create_5();
    }
    static _create_1(x, y, z, w) {
      return new DOMPointReadOnly(x, y, z, w);
    }
    static _create_2(x, y, z) {
      return new DOMPointReadOnly(x, y, z);
    }
    static _create_3(x, y) {
      return new DOMPointReadOnly(x, y);
    }
    static _create_4(x) {
      return new DOMPointReadOnly(x);
    }
    static _create_5() {
      return new DOMPointReadOnly();
    }
    get [S$1.$w]() {
      return this.w;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
    static fromPoint(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMPointReadOnly.fromPoint(other_1);
      }
      return dart.global.DOMPointReadOnly.fromPoint();
    }
    [S$1.$matrixTransform](matrix = null) {
      if (matrix != null) {
        let matrix_1 = html_common.convertDartToNative_Dictionary(matrix);
        return this[S$1._matrixTransform_1](matrix_1);
      }
      return this[S$1._matrixTransform_2]();
    }
    [S$1._matrixTransform_1](...args) {
      return this.matrixTransform.apply(this, args);
    }
    [S$1._matrixTransform_2](...args) {
      return this.matrixTransform.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomPointReadOnly);
  dart.addTypeCaches(html$.DomPointReadOnly);
  dart.setMethodSignature(html$.DomPointReadOnly, () => ({
    __proto__: dart.getMethods(html$.DomPointReadOnly.__proto__),
    [S$1.$matrixTransform]: dart.fnType(html$.DomPoint, [], [dart.nullable(core.Map)]),
    [S$1._matrixTransform_1]: dart.fnType(html$.DomPoint, [dart.dynamic]),
    [S$1._matrixTransform_2]: dart.fnType(html$.DomPoint, [])
  }));
  dart.setGetterSignature(html$.DomPointReadOnly, () => ({
    __proto__: dart.getGetters(html$.DomPointReadOnly.__proto__),
    [S$1.$w]: dart.nullable(core.num),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DomPointReadOnly, I[148]);
  dart.registerExtension("DOMPointReadOnly", html$.DomPointReadOnly);
  html$.DomPoint = class DomPoint extends html$.DomPointReadOnly {
    static new(x = null, y = null, z = null, w = null) {
      if (w != null) {
        return html$.DomPoint._create_1(x, y, z, w);
      }
      if (z != null) {
        return html$.DomPoint._create_2(x, y, z);
      }
      if (y != null) {
        return html$.DomPoint._create_3(x, y);
      }
      if (x != null) {
        return html$.DomPoint._create_4(x);
      }
      return html$.DomPoint._create_5();
    }
    static _create_1(x, y, z, w) {
      return new DOMPoint(x, y, z, w);
    }
    static _create_2(x, y, z) {
      return new DOMPoint(x, y, z);
    }
    static _create_3(x, y) {
      return new DOMPoint(x, y);
    }
    static _create_4(x) {
      return new DOMPoint(x);
    }
    static _create_5() {
      return new DOMPoint();
    }
    static get supported() {
      return !!window.DOMPoint || !!window.WebKitPoint;
    }
    get [S$1.$w]() {
      return this.w;
    }
    set [S$1.$w](value) {
      this.w = value;
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
    get [S$.$z]() {
      return this.z;
    }
    set [S$.$z](value) {
      this.z = value;
    }
    static fromPoint(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMPoint.fromPoint(other_1);
      }
      return dart.global.DOMPoint.fromPoint();
    }
  };
  dart.addTypeTests(html$.DomPoint);
  dart.addTypeCaches(html$.DomPoint);
  dart.setSetterSignature(html$.DomPoint, () => ({
    __proto__: dart.getSetters(html$.DomPoint.__proto__),
    [S$1.$w]: dart.nullable(core.num),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DomPoint, I[148]);
  dart.registerExtension("DOMPoint", html$.DomPoint);
  html$.DomQuad = class DomQuad extends _interceptors.Interceptor {
    static new(p1 = null, p2 = null, p3 = null, p4 = null) {
      if (p4 != null) {
        let p1_1 = html_common.convertDartToNative_Dictionary(p1);
        let p2_2 = html_common.convertDartToNative_Dictionary(p2);
        let p3_3 = html_common.convertDartToNative_Dictionary(p3);
        let p4_4 = html_common.convertDartToNative_Dictionary(p4);
        return html$.DomQuad._create_1(p1_1, p2_2, p3_3, p4_4);
      }
      if (p3 != null) {
        let p1_1 = html_common.convertDartToNative_Dictionary(p1);
        let p2_2 = html_common.convertDartToNative_Dictionary(p2);
        let p3_3 = html_common.convertDartToNative_Dictionary(p3);
        return html$.DomQuad._create_2(p1_1, p2_2, p3_3);
      }
      if (p2 != null) {
        let p1_1 = html_common.convertDartToNative_Dictionary(p1);
        let p2_2 = html_common.convertDartToNative_Dictionary(p2);
        return html$.DomQuad._create_3(p1_1, p2_2);
      }
      if (p1 != null) {
        let p1_1 = html_common.convertDartToNative_Dictionary(p1);
        return html$.DomQuad._create_4(p1_1);
      }
      return html$.DomQuad._create_5();
    }
    static _create_1(p1, p2, p3, p4) {
      return new DOMQuad(p1, p2, p3, p4);
    }
    static _create_2(p1, p2, p3) {
      return new DOMQuad(p1, p2, p3);
    }
    static _create_3(p1, p2) {
      return new DOMQuad(p1, p2);
    }
    static _create_4(p1) {
      return new DOMQuad(p1);
    }
    static _create_5() {
      return new DOMQuad();
    }
    get [S$1.$p1]() {
      return this.p1;
    }
    get [S$1.$p2]() {
      return this.p2;
    }
    get [S$1.$p3]() {
      return this.p3;
    }
    get [S$1.$p4]() {
      return this.p4;
    }
    static fromQuad(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMQuad.fromQuad(other_1);
      }
      return dart.global.DOMQuad.fromQuad();
    }
    static fromRect(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMQuad.fromRect(other_1);
      }
      return dart.global.DOMQuad.fromRect();
    }
    [S$1.$getBounds](...args) {
      return this.getBounds.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomQuad);
  dart.addTypeCaches(html$.DomQuad);
  dart.setMethodSignature(html$.DomQuad, () => ({
    __proto__: dart.getMethods(html$.DomQuad.__proto__),
    [S$1.$getBounds]: dart.fnType(math.Rectangle$(core.num), [])
  }));
  dart.setGetterSignature(html$.DomQuad, () => ({
    __proto__: dart.getGetters(html$.DomQuad.__proto__),
    [S$1.$p1]: dart.nullable(html$.DomPoint),
    [S$1.$p2]: dart.nullable(html$.DomPoint),
    [S$1.$p3]: dart.nullable(html$.DomPoint),
    [S$1.$p4]: dart.nullable(html$.DomPoint)
  }));
  dart.setLibraryUri(html$.DomQuad, I[148]);
  dart.registerExtension("DOMQuad", html$.DomQuad);
  const _is_ImmutableListMixin_default = Symbol('_is_ImmutableListMixin_default');
  html$.ImmutableListMixin$ = dart.generic(E => {
    var FixedSizeListIteratorOfE = () => (FixedSizeListIteratorOfE = dart.constFn(html$.FixedSizeListIterator$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    class ImmutableListMixin extends core.Object {
      get iterator() {
        return new (FixedSizeListIteratorOfE()).new(this);
      }
      [Symbol.iterator]() {
        return new dart.JsIterator(this[$iterator]);
      }
      add(value) {
        E.as(value);
        dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
      }
      addAll(iterable) {
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 37959, 27, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
      }
      sort(compare = null) {
        dart.throw(new core.UnsupportedError.new("Cannot sort immutable List."));
      }
      shuffle(random = null) {
        dart.throw(new core.UnsupportedError.new("Cannot shuffle immutable List."));
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[147], 37971, 19, "index");
        E.as(element);
        dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
      }
      insertAll(index, iterable) {
        if (index == null) dart.nullFailed(I[147], 37975, 22, "index");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 37975, 41, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
      }
      setAll(index, iterable) {
        if (index == null) dart.nullFailed(I[147], 37979, 19, "index");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 37979, 38, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
      }
      removeAt(pos) {
        if (pos == null) dart.nullFailed(I[147], 37983, 18, "pos");
        dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
      }
      removeLast() {
        dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
      }
      remove(object) {
        dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
      }
      removeWhere(test) {
        if (test == null) dart.nullFailed(I[147], 37995, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
      }
      retainWhere(test) {
        if (test == null) dart.nullFailed(I[147], 37999, 25, "test");
        dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[147], 38003, 21, "start");
        if (end == null) dart.nullFailed(I[147], 38003, 32, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 38003, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[147], 38003, 64, "skipCount");
        dart.throw(new core.UnsupportedError.new("Cannot setRange on immutable List."));
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[147], 38007, 24, "start");
        if (end == null) dart.nullFailed(I[147], 38007, 35, "end");
        dart.throw(new core.UnsupportedError.new("Cannot removeRange on immutable List."));
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[147], 38011, 25, "start");
        if (end == null) dart.nullFailed(I[147], 38011, 36, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 38011, 53, "iterable");
        dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
      }
      fillRange(start, end, fillValue = null) {
        if (start == null) dart.nullFailed(I[147], 38015, 22, "start");
        if (end == null) dart.nullFailed(I[147], 38015, 33, "end");
        EN().as(fillValue);
        dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
      }
    }
    (ImmutableListMixin.new = function() {
      ;
    }).prototype = ImmutableListMixin.prototype;
    ImmutableListMixin.prototype[dart.isList] = true;
    dart.addTypeTests(ImmutableListMixin);
    ImmutableListMixin.prototype[_is_ImmutableListMixin_default] = true;
    dart.addTypeCaches(ImmutableListMixin);
    ImmutableListMixin[dart.implements] = () => [core.List$(E)];
    dart.setMethodSignature(ImmutableListMixin, () => ({
      __proto__: dart.getMethods(ImmutableListMixin.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$add]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      sort: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      [$sort]: dart.fnType(dart.void, [], [dart.nullable(dart.fnType(core.int, [E, E]))]),
      shuffle: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      [$shuffle]: dart.fnType(dart.void, [], [dart.nullable(math.Random)]),
      insert: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insert]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      insertAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$insertAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      setAll: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$setAll]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      removeAt: dart.fnType(E, [core.int]),
      [$removeAt]: dart.fnType(E, [core.int]),
      removeLast: dart.fnType(E, []),
      [$removeLast]: dart.fnType(E, []),
      remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      [$remove]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
      removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
      setRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      [$setRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)], [core.int]),
      removeRange: dart.fnType(dart.void, [core.int, core.int]),
      [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
      replaceRange: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(core.Object)]),
      fillRange: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)]),
      [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(ImmutableListMixin, () => ({
      __proto__: dart.getGetters(ImmutableListMixin.__proto__),
      iterator: core.Iterator$(E),
      [$iterator]: core.Iterator$(E)
    }));
    dart.setLibraryUri(ImmutableListMixin, I[148]);
    dart.defineExtensionMethods(ImmutableListMixin, [
      'add',
      'addAll',
      'sort',
      'shuffle',
      'insert',
      'insertAll',
      'setAll',
      'removeAt',
      'removeLast',
      'remove',
      'removeWhere',
      'retainWhere',
      'setRange',
      'removeRange',
      'replaceRange',
      'fillRange'
    ]);
    dart.defineExtensionAccessors(ImmutableListMixin, ['iterator']);
    return ImmutableListMixin;
  });
  html$.ImmutableListMixin = html$.ImmutableListMixin$();
  dart.addTypeTests(html$.ImmutableListMixin, _is_ImmutableListMixin_default);
  const Interceptor_ListMixin$36 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36.new = function() {
    Interceptor_ListMixin$36.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36.prototype;
  dart.applyMixin(Interceptor_ListMixin$36, collection.ListMixin$(math.Rectangle$(core.num)));
  const Interceptor_ImmutableListMixin$36 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36 {};
  (Interceptor_ImmutableListMixin$36.new = function() {
    Interceptor_ImmutableListMixin$36.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36, html$.ImmutableListMixin$(math.Rectangle$(core.num)));
  html$.DomRectList = class DomRectList extends Interceptor_ImmutableListMixin$36 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 11383, 29, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 11389, 25, "index");
      T$0.RectangleOfnum().as(value);
      if (value == null) dart.nullFailed(I[147], 11389, 42, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 11395, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 11423, 27, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.DomRectList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.DomRectList);
  dart.addTypeCaches(html$.DomRectList);
  html$.DomRectList[dart.implements] = () => [core.List$(math.Rectangle$(core.num)), _js_helper.JavaScriptIndexingBehavior$(math.Rectangle$(core.num))];
  dart.setMethodSignature(html$.DomRectList, () => ({
    __proto__: dart.getMethods(html$.DomRectList.__proto__),
    [$_get]: dart.fnType(math.Rectangle$(core.num), [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(math.Rectangle$(core.num)), [core.int])
  }));
  dart.setGetterSignature(html$.DomRectList, () => ({
    __proto__: dart.getGetters(html$.DomRectList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.DomRectList, () => ({
    __proto__: dart.getSetters(html$.DomRectList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.DomRectList, I[148]);
  dart.registerExtension("ClientRectList", html$.DomRectList);
  dart.registerExtension("DOMRectList", html$.DomRectList);
  html$.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
    [$toString]() {
      return "Rectangle (" + dart.str(this[$left]) + ", " + dart.str(this[$top]) + ") " + dart.str(this[$width]) + " x " + dart.str(this[$height]);
    }
    [$_equals](other) {
      if (other == null) return false;
      return T$0.RectangleOfnum().is(other) && this[$left] == other[$left] && this[$top] == other[$top] && this[$width] == other[$width] && this[$height] == other[$height];
    }
    get [$hashCode]() {
      return html$._JenkinsSmiHash.hash4(dart.hashCode(this[$left]), dart.hashCode(this[$top]), dart.hashCode(this[$width]), dart.hashCode(this[$height]));
    }
    [$intersection](other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 11458, 37, "other");
      let x0 = math.max(core.num, this[$left], other[$left]);
      let x1 = math.min(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      if (x0 <= x1) {
        let y0 = math.max(core.num, this[$top], other[$top]);
        let y1 = math.min(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
        if (y0 <= y1) {
          return new (T$0.RectangleOfnum()).new(x0, y0, x1 - x0, y1 - y0);
        }
      }
      return null;
    }
    [$intersects](other) {
      if (other == null) dart.nullFailed(I[147], 11476, 34, "other");
      return dart.notNull(this[$left]) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(this[$top]) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    [$boundingBox](other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 11486, 35, "other");
      let right = math.max(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      let bottom = math.max(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      let left = math.min(core.num, this[$left], other[$left]);
      let top = math.min(core.num, this[$top], other[$top]);
      return new (T$0.RectangleOfnum()).new(left, top, right - left, bottom - top);
    }
    [$containsRectangle](another) {
      if (another == null) dart.nullFailed(I[147], 11499, 41, "another");
      return dart.notNull(this[$left]) <= dart.notNull(another[$left]) && dart.notNull(this[$left]) + dart.notNull(this[$width]) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this[$top]) <= dart.notNull(another[$top]) && dart.notNull(this[$top]) + dart.notNull(this[$height]) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
    }
    [$containsPoint](another) {
      if (another == null) dart.nullFailed(I[147], 11509, 33, "another");
      return dart.notNull(another.x) >= dart.notNull(this[$left]) && dart.notNull(another.x) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(another.y) >= dart.notNull(this[$top]) && dart.notNull(another.y) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    get [$topLeft]() {
      return new (T$0.PointOfnum()).new(this[$left], this[$top]);
    }
    get [$topRight]() {
      return new (T$0.PointOfnum()).new(dart.notNull(this[$left]) + dart.notNull(this[$width]), this[$top]);
    }
    get [$bottomRight]() {
      return new (T$0.PointOfnum()).new(dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(this[$top]) + dart.notNull(this[$height]));
    }
    get [$bottomLeft]() {
      return new (T$0.PointOfnum()).new(this[$left], dart.notNull(this[$top]) + dart.notNull(this[$height]));
    }
    static new(x = null, y = null, width = null, height = null) {
      if (height != null) {
        return html$.DomRectReadOnly._create_1(x, y, width, height);
      }
      if (width != null) {
        return html$.DomRectReadOnly._create_2(x, y, width);
      }
      if (y != null) {
        return html$.DomRectReadOnly._create_3(x, y);
      }
      if (x != null) {
        return html$.DomRectReadOnly._create_4(x);
      }
      return html$.DomRectReadOnly._create_5();
    }
    static _create_1(x, y, width, height) {
      return new DOMRectReadOnly(x, y, width, height);
    }
    static _create_2(x, y, width) {
      return new DOMRectReadOnly(x, y, width);
    }
    static _create_3(x, y) {
      return new DOMRectReadOnly(x, y);
    }
    static _create_4(x) {
      return new DOMRectReadOnly(x);
    }
    static _create_5() {
      return new DOMRectReadOnly();
    }
    get [S$0._bottom]() {
      return this.bottom;
    }
    get [$bottom]() {
      return dart.nullCheck(this[S$0._bottom]);
    }
    get [S$0._height$1]() {
      return this.height;
    }
    get [$height]() {
      return dart.nullCheck(this[S$0._height$1]);
    }
    get [S$0._left$2]() {
      return this.left;
    }
    get [$left]() {
      return dart.nullCheck(this[S$0._left$2]);
    }
    get [S$0._right$2]() {
      return this.right;
    }
    get [$right]() {
      return dart.nullCheck(this[S$0._right$2]);
    }
    get [S$0._top]() {
      return this.top;
    }
    get [$top]() {
      return dart.nullCheck(this[S$0._top]);
    }
    get [S$0._width$1]() {
      return this.width;
    }
    get [$width]() {
      return dart.nullCheck(this[S$0._width$1]);
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    static fromRect(other = null) {
      if (other != null) {
        let other_1 = html_common.convertDartToNative_Dictionary(other);
        return dart.global.DOMRectReadOnly.fromRect(other_1);
      }
      return dart.global.DOMRectReadOnly.fromRect();
    }
  };
  dart.addTypeTests(html$.DomRectReadOnly);
  dart.addTypeCaches(html$.DomRectReadOnly);
  html$.DomRectReadOnly[dart.implements] = () => [math.Rectangle$(core.num)];
  dart.setMethodSignature(html$.DomRectReadOnly, () => ({
    __proto__: dart.getMethods(html$.DomRectReadOnly.__proto__),
    [$intersection]: dart.fnType(dart.nullable(math.Rectangle$(core.num)), [dart.nullable(core.Object)]),
    [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$boundingBox]: dart.fnType(math.Rectangle$(core.num), [dart.nullable(core.Object)]),
    [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
  }));
  dart.setGetterSignature(html$.DomRectReadOnly, () => ({
    __proto__: dart.getGetters(html$.DomRectReadOnly.__proto__),
    [$topLeft]: math.Point$(core.num),
    [$topRight]: math.Point$(core.num),
    [$bottomRight]: math.Point$(core.num),
    [$bottomLeft]: math.Point$(core.num),
    [S$0._bottom]: dart.nullable(core.num),
    [$bottom]: core.num,
    [S$0._height$1]: dart.nullable(core.num),
    [$height]: core.num,
    [S$0._left$2]: dart.nullable(core.num),
    [$left]: core.num,
    [S$0._right$2]: dart.nullable(core.num),
    [$right]: core.num,
    [S$0._top]: dart.nullable(core.num),
    [$top]: core.num,
    [S$0._width$1]: dart.nullable(core.num),
    [$width]: core.num,
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.DomRectReadOnly, I[148]);
  dart.registerExtension("DOMRectReadOnly", html$.DomRectReadOnly);
  const Interceptor_ListMixin$36$ = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$.new = function() {
    Interceptor_ListMixin$36$.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$, collection.ListMixin$(core.String));
  const Interceptor_ImmutableListMixin$36$ = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$ {};
  (Interceptor_ImmutableListMixin$36$.new = function() {
    Interceptor_ImmutableListMixin$36$.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$, html$.ImmutableListMixin$(core.String));
  html$.DomStringList = class DomStringList extends Interceptor_ImmutableListMixin$36$ {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 11634, 26, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 11640, 25, "index");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 11640, 39, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 11646, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 11674, 24, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.DomStringList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.DomStringList);
  dart.addTypeCaches(html$.DomStringList);
  html$.DomStringList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(core.String), core.List$(core.String)];
  dart.setMethodSignature(html$.DomStringList, () => ({
    __proto__: dart.getMethods(html$.DomStringList.__proto__),
    [$_get]: dart.fnType(core.String, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(core.String), [core.int])
  }));
  dart.setGetterSignature(html$.DomStringList, () => ({
    __proto__: dart.getGetters(html$.DomStringList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.DomStringList, () => ({
    __proto__: dart.getSetters(html$.DomStringList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.DomStringList, I[148]);
  dart.registerExtension("DOMStringList", html$.DomStringList);
  html$.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
    [S$1.__delete__](...args) {
      return this.__delete__.apply(this, args);
    }
    [S$.__setter__](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomStringMap);
  dart.addTypeCaches(html$.DomStringMap);
  dart.setMethodSignature(html$.DomStringMap, () => ({
    __proto__: dart.getMethods(html$.DomStringMap.__proto__),
    [S$1.__delete__]: dart.fnType(dart.void, [core.String]),
    [S$.__setter__]: dart.fnType(dart.void, [core.String, core.String]),
    [S$.$item]: dart.fnType(core.String, [core.String])
  }));
  dart.setLibraryUri(html$.DomStringMap, I[148]);
  dart.registerExtension("DOMStringMap", html$.DomStringMap);
  html$.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
    get [$length]() {
      return this.length;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [$contains](...args) {
      return this.contains.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [$remove](...args) {
      return this.remove.apply(this, args);
    }
    [S$1.$replace](...args) {
      return this.replace.apply(this, args);
    }
    [S$1.$supports](...args) {
      return this.supports.apply(this, args);
    }
    [S$1.$toggle](...args) {
      return this.toggle.apply(this, args);
    }
  };
  dart.addTypeTests(html$.DomTokenList);
  dart.addTypeCaches(html$.DomTokenList);
  dart.setMethodSignature(html$.DomTokenList, () => ({
    __proto__: dart.getMethods(html$.DomTokenList.__proto__),
    [$add]: dart.fnType(dart.void, [core.String]),
    [$contains]: dart.fnType(core.bool, [core.String]),
    [S$.$item]: dart.fnType(dart.nullable(core.String), [core.int]),
    [$remove]: dart.fnType(dart.void, [core.String]),
    [S$1.$replace]: dart.fnType(dart.void, [core.String, core.String]),
    [S$1.$supports]: dart.fnType(core.bool, [core.String]),
    [S$1.$toggle]: dart.fnType(core.bool, [core.String], [dart.nullable(core.bool)])
  }));
  dart.setGetterSignature(html$.DomTokenList, () => ({
    __proto__: dart.getGetters(html$.DomTokenList.__proto__),
    [$length]: core.int,
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.DomTokenList, () => ({
    __proto__: dart.getSetters(html$.DomTokenList.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.DomTokenList, I[148]);
  dart.registerExtension("DOMTokenList", html$.DomTokenList);
  html$._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html$.Element) {
    contains(element) {
      return this[S$1._childElements][$contains](element);
    }
    get isEmpty() {
      return this[S$1._element$2][S._firstElementChild] == null;
    }
    get length() {
      return this[S$1._childElements][$length];
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[147], 11751, 27, "index");
      return html$.Element.as(this[S$1._childElements][$_get](index));
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 11755, 25, "index");
      html$.Element.as(value);
      if (value == null) dart.nullFailed(I[147], 11755, 40, "value");
      this[S$1._element$2][S$._replaceChild](value, this[S$1._childElements][$_get](index));
      return value$;
    }
    set length(newLength) {
      if (newLength == null) dart.nullFailed(I[147], 11759, 18, "newLength");
      dart.throw(new core.UnsupportedError.new("Cannot resize element lists"));
    }
    add(value) {
      html$.Element.as(value);
      if (value == null) dart.nullFailed(I[147], 11764, 23, "value");
      this[S$1._element$2][S.$append](value);
      return value;
    }
    get iterator() {
      return this.toList()[$iterator];
    }
    addAll(iterable) {
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 11771, 33, "iterable");
      html$._ChildrenElementList._addAll(this[S$1._element$2], iterable);
    }
    static _addAll(_element, iterable) {
      if (_element == null) dart.nullFailed(I[147], 11775, 31, "_element");
      if (iterable == null) dart.nullFailed(I[147], 11775, 59, "iterable");
      if (html$._ChildNodeListLazy.is(iterable)) {
        iterable = T$0.ListOfElement().from(iterable);
      }
      for (let element of iterable) {
        _element[S.$append](element);
      }
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot sort element lists"));
    }
    shuffle(random = null) {
      dart.throw(new core.UnsupportedError.new("Cannot shuffle element lists"));
    }
    removeWhere(test) {
      if (test == null) dart.nullFailed(I[147], 11793, 25, "test");
      this[S$1._filter$2](test, false);
    }
    retainWhere(test) {
      if (test == null) dart.nullFailed(I[147], 11797, 25, "test");
      this[S$1._filter$2](test, true);
    }
    [S$1._filter$2](test, retainMatching) {
      if (test == null) dart.nullFailed(I[147], 11801, 21, "test");
      if (retainMatching == null) dart.nullFailed(I[147], 11801, 49, "retainMatching");
      let removed = null;
      if (dart.test(retainMatching)) {
        removed = this[S$1._element$2][S.$children][$where](dart.fn(e => {
          if (e == null) dart.nullFailed(I[147], 11804, 42, "e");
          return !dart.test(test(e));
        }, T$0.ElementTobool()));
      } else {
        removed = this[S$1._element$2][S.$children][$where](test);
      }
      for (let e of core.Iterable.as(removed))
        dart.dsend(e, 'remove', []);
    }
    fillRange(start, end, fillValue = null) {
      if (start == null) dart.nullFailed(I[147], 11811, 22, "start");
      if (end == null) dart.nullFailed(I[147], 11811, 33, "end");
      T$0.ElementN().as(fillValue);
      dart.throw(new core.UnimplementedError.new());
    }
    replaceRange(start, end, iterable) {
      if (start == null) dart.nullFailed(I[147], 11815, 25, "start");
      if (end == null) dart.nullFailed(I[147], 11815, 36, "end");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 11815, 59, "iterable");
      dart.throw(new core.UnimplementedError.new());
    }
    removeRange(start, end) {
      if (start == null) dart.nullFailed(I[147], 11819, 24, "start");
      if (end == null) dart.nullFailed(I[147], 11819, 35, "end");
      dart.throw(new core.UnimplementedError.new());
    }
    setRange(start, end, iterable, skipCount = 0) {
      if (start == null) dart.nullFailed(I[147], 11823, 21, "start");
      if (end == null) dart.nullFailed(I[147], 11823, 32, "end");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 11823, 55, "iterable");
      if (skipCount == null) dart.nullFailed(I[147], 11824, 12, "skipCount");
      dart.throw(new core.UnimplementedError.new());
    }
    remove(object) {
      return html$._ChildrenElementList._remove(this[S$1._element$2], object);
    }
    static _remove(_element, object) {
      if (_element == null) dart.nullFailed(I[147], 11832, 31, "_element");
      if (html$.Element.is(object)) {
        let element = object;
        if (element.parentNode == _element) {
          _element[S$._removeChild](element);
          return true;
        }
      }
      return false;
    }
    insert(index, element) {
      if (index == null) dart.nullFailed(I[147], 11843, 19, "index");
      html$.Element.as(element);
      if (element == null) dart.nullFailed(I[147], 11843, 34, "element");
      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
        dart.throw(new core.RangeError.range(index, 0, this.length));
      }
      if (index == this.length) {
        this[S$1._element$2][S.$append](element);
      } else {
        this[S$1._element$2].insertBefore(element, this._get(index));
      }
    }
    insertAll(index, iterable) {
      if (index == null) dart.nullFailed(I[147], 11854, 22, "index");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 11854, 47, "iterable");
      dart.throw(new core.UnimplementedError.new());
    }
    setAll(index, iterable) {
      if (index == null) dart.nullFailed(I[147], 11858, 19, "index");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 11858, 44, "iterable");
      dart.throw(new core.UnimplementedError.new());
    }
    clear() {
      this[S$1._element$2][S$._clearChildren]();
    }
    removeAt(index) {
      if (index == null) dart.nullFailed(I[147], 11866, 24, "index");
      let result = this._get(index);
      if (result != null) {
        this[S$1._element$2][S$._removeChild](result);
      }
      return result;
    }
    removeLast() {
      let result = this.last;
      this[S$1._element$2][S$._removeChild](result);
      return result;
    }
    get first() {
      return html$._ChildrenElementList._first(this[S$1._element$2]);
    }
    set first(value) {
      super.first = value;
    }
    static _first(_element) {
      if (_element == null) dart.nullFailed(I[147], 11884, 33, "_element");
      let result = _element[S._firstElementChild];
      if (result == null) dart.throw(new core.StateError.new("No elements"));
      return result;
    }
    get last() {
      let result = this[S$1._element$2][S._lastElementChild];
      if (result == null) dart.throw(new core.StateError.new("No elements"));
      return result;
    }
    set last(value) {
      super.last = value;
    }
    get single() {
      if (dart.notNull(this.length) > 1) dart.throw(new core.StateError.new("More than one element"));
      return this.first;
    }
    get rawList() {
      return this[S$1._childElements];
    }
  };
  (html$._ChildrenElementList._wrap = function(element) {
    if (element == null) dart.nullFailed(I[147], 11737, 38, "element");
    this[S$1._childElements] = html$.HtmlCollection.as(element[S._children]);
    this[S$1._element$2] = element;
    ;
  }).prototype = html$._ChildrenElementList.prototype;
  dart.addTypeTests(html$._ChildrenElementList);
  dart.addTypeCaches(html$._ChildrenElementList);
  html$._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
  dart.setMethodSignature(html$._ChildrenElementList, () => ({
    __proto__: dart.getMethods(html$._ChildrenElementList.__proto__),
    _get: dart.fnType(html$.Element, [core.int]),
    [$_get]: dart.fnType(html$.Element, [core.int]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    add: dart.fnType(html$.Element, [dart.nullable(core.Object)]),
    [$add]: dart.fnType(html$.Element, [dart.nullable(core.Object)]),
    [S$1._filter$2]: dart.fnType(dart.void, [dart.fnType(core.bool, [html$.Element]), core.bool])
  }));
  dart.setGetterSignature(html$._ChildrenElementList, () => ({
    __proto__: dart.getGetters(html$._ChildrenElementList.__proto__),
    length: core.int,
    [$length]: core.int,
    rawList: core.List$(html$.Node)
  }));
  dart.setSetterSignature(html$._ChildrenElementList, () => ({
    __proto__: dart.getSetters(html$._ChildrenElementList.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._ChildrenElementList, I[148]);
  dart.setFieldSignature(html$._ChildrenElementList, () => ({
    __proto__: dart.getFields(html$._ChildrenElementList.__proto__),
    [S$1._element$2]: dart.finalFieldType(html$.Element),
    [S$1._childElements]: dart.finalFieldType(html$.HtmlCollection)
  }));
  dart.defineExtensionMethods(html$._ChildrenElementList, [
    'contains',
    '_get',
    '_set',
    'add',
    'addAll',
    'sort',
    'shuffle',
    'removeWhere',
    'retainWhere',
    'fillRange',
    'replaceRange',
    'removeRange',
    'setRange',
    'remove',
    'insert',
    'insertAll',
    'setAll',
    'clear',
    'removeAt',
    'removeLast'
  ]);
  dart.defineExtensionAccessors(html$._ChildrenElementList, [
    'isEmpty',
    'length',
    'iterator',
    'first',
    'last',
    'single'
  ]);
  const _is_ElementList_default = Symbol('_is_ElementList_default');
  html$.ElementList$ = dart.generic(T => {
    class ElementList extends collection.ListBase$(T) {}
    (ElementList.new = function() {
      ;
    }).prototype = ElementList.prototype;
    dart.addTypeTests(ElementList);
    ElementList.prototype[_is_ElementList_default] = true;
    dart.addTypeCaches(ElementList);
    dart.setLibraryUri(ElementList, I[148]);
    return ElementList;
  });
  html$.ElementList = html$.ElementList$();
  dart.addTypeTests(html$.ElementList, _is_ElementList_default);
  const _is__FrozenElementList_default = Symbol('_is__FrozenElementList_default');
  html$._FrozenElementList$ = dart.generic(E => {
    var ETovoid = () => (ETovoid = dart.constFn(dart.fnType(dart.void, [E])))();
    class _FrozenElementList extends collection.ListBase$(E) {
      get length() {
        return this[S$1._nodeList][$length];
      }
      _get(index) {
        if (index == null) dart.nullFailed(I[147], 12297, 21, "index");
        return E.as(this[S$1._nodeList][$_get](index));
      }
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[147], 12299, 25, "index");
        E.as(value);
        if (value == null) dart.nullFailed(I[147], 12299, 34, "value");
        dart.throw(new core.UnsupportedError.new("Cannot modify list"));
        return value$;
      }
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[147], 12303, 18, "newLength");
        dart.throw(new core.UnsupportedError.new("Cannot modify list"));
      }
      sort(compare = null) {
        dart.throw(new core.UnsupportedError.new("Cannot sort list"));
      }
      shuffle(random = null) {
        dart.throw(new core.UnsupportedError.new("Cannot shuffle list"));
      }
      get first() {
        return E.as(this[S$1._nodeList][$first]);
      }
      set first(value) {
        super.first = value;
      }
      get last() {
        return E.as(this[S$1._nodeList][$last]);
      }
      set last(value) {
        super.last = value;
      }
      get single() {
        return E.as(this[S$1._nodeList][$single]);
      }
      get classes() {
        return html$._MultiElementCssClassSet.new(this);
      }
      get style() {
        return new html$._CssStyleDeclarationSet.new(this);
      }
      set classes(value) {
        if (value == null) dart.nullFailed(I[147], 12325, 32, "value");
        this.forEach(dart.fn(e => {
          if (e == null) dart.nullFailed(I[147], 12332, 14, "e");
          return e[S.$classes] = value;
        }, ETovoid()));
      }
      get contentEdge() {
        return new html$._ContentCssListRect.new(this);
      }
      get paddingEdge() {
        return this.first[S.$paddingEdge];
      }
      get borderEdge() {
        return this.first[S.$borderEdge];
      }
      get marginEdge() {
        return this.first[S.$marginEdge];
      }
      get rawList() {
        return this[S$1._nodeList];
      }
      get onAbort() {
        return html$.Element.abortEvent[S$1._forElementList](this);
      }
      get onBeforeCopy() {
        return html$.Element.beforeCopyEvent[S$1._forElementList](this);
      }
      get onBeforeCut() {
        return html$.Element.beforeCutEvent[S$1._forElementList](this);
      }
      get onBeforePaste() {
        return html$.Element.beforePasteEvent[S$1._forElementList](this);
      }
      get onBlur() {
        return html$.Element.blurEvent[S$1._forElementList](this);
      }
      get onCanPlay() {
        return html$.Element.canPlayEvent[S$1._forElementList](this);
      }
      get onCanPlayThrough() {
        return html$.Element.canPlayThroughEvent[S$1._forElementList](this);
      }
      get onChange() {
        return html$.Element.changeEvent[S$1._forElementList](this);
      }
      get onClick() {
        return html$.Element.clickEvent[S$1._forElementList](this);
      }
      get onContextMenu() {
        return html$.Element.contextMenuEvent[S$1._forElementList](this);
      }
      get onCopy() {
        return html$.Element.copyEvent[S$1._forElementList](this);
      }
      get onCut() {
        return html$.Element.cutEvent[S$1._forElementList](this);
      }
      get onDoubleClick() {
        return html$.Element.doubleClickEvent[S$1._forElementList](this);
      }
      get onDrag() {
        return html$.Element.dragEvent[S$1._forElementList](this);
      }
      get onDragEnd() {
        return html$.Element.dragEndEvent[S$1._forElementList](this);
      }
      get onDragEnter() {
        return html$.Element.dragEnterEvent[S$1._forElementList](this);
      }
      get onDragLeave() {
        return html$.Element.dragLeaveEvent[S$1._forElementList](this);
      }
      get onDragOver() {
        return html$.Element.dragOverEvent[S$1._forElementList](this);
      }
      get onDragStart() {
        return html$.Element.dragStartEvent[S$1._forElementList](this);
      }
      get onDrop() {
        return html$.Element.dropEvent[S$1._forElementList](this);
      }
      get onDurationChange() {
        return html$.Element.durationChangeEvent[S$1._forElementList](this);
      }
      get onEmptied() {
        return html$.Element.emptiedEvent[S$1._forElementList](this);
      }
      get onEnded() {
        return html$.Element.endedEvent[S$1._forElementList](this);
      }
      get onError() {
        return html$.Element.errorEvent[S$1._forElementList](this);
      }
      get onFocus() {
        return html$.Element.focusEvent[S$1._forElementList](this);
      }
      get onInput() {
        return html$.Element.inputEvent[S$1._forElementList](this);
      }
      get onInvalid() {
        return html$.Element.invalidEvent[S$1._forElementList](this);
      }
      get onKeyDown() {
        return html$.Element.keyDownEvent[S$1._forElementList](this);
      }
      get onKeyPress() {
        return html$.Element.keyPressEvent[S$1._forElementList](this);
      }
      get onKeyUp() {
        return html$.Element.keyUpEvent[S$1._forElementList](this);
      }
      get onLoad() {
        return html$.Element.loadEvent[S$1._forElementList](this);
      }
      get onLoadedData() {
        return html$.Element.loadedDataEvent[S$1._forElementList](this);
      }
      get onLoadedMetadata() {
        return html$.Element.loadedMetadataEvent[S$1._forElementList](this);
      }
      get onMouseDown() {
        return html$.Element.mouseDownEvent[S$1._forElementList](this);
      }
      get onMouseEnter() {
        return html$.Element.mouseEnterEvent[S$1._forElementList](this);
      }
      get onMouseLeave() {
        return html$.Element.mouseLeaveEvent[S$1._forElementList](this);
      }
      get onMouseMove() {
        return html$.Element.mouseMoveEvent[S$1._forElementList](this);
      }
      get onMouseOut() {
        return html$.Element.mouseOutEvent[S$1._forElementList](this);
      }
      get onMouseOver() {
        return html$.Element.mouseOverEvent[S$1._forElementList](this);
      }
      get onMouseUp() {
        return html$.Element.mouseUpEvent[S$1._forElementList](this);
      }
      get onMouseWheel() {
        return html$.Element.mouseWheelEvent[S$1._forElementList](this);
      }
      get onPaste() {
        return html$.Element.pasteEvent[S$1._forElementList](this);
      }
      get onPause() {
        return html$.Element.pauseEvent[S$1._forElementList](this);
      }
      get onPlay() {
        return html$.Element.playEvent[S$1._forElementList](this);
      }
      get onPlaying() {
        return html$.Element.playingEvent[S$1._forElementList](this);
      }
      get onRateChange() {
        return html$.Element.rateChangeEvent[S$1._forElementList](this);
      }
      get onReset() {
        return html$.Element.resetEvent[S$1._forElementList](this);
      }
      get onResize() {
        return html$.Element.resizeEvent[S$1._forElementList](this);
      }
      get onScroll() {
        return html$.Element.scrollEvent[S$1._forElementList](this);
      }
      get onSearch() {
        return html$.Element.searchEvent[S$1._forElementList](this);
      }
      get onSeeked() {
        return html$.Element.seekedEvent[S$1._forElementList](this);
      }
      get onSeeking() {
        return html$.Element.seekingEvent[S$1._forElementList](this);
      }
      get onSelect() {
        return html$.Element.selectEvent[S$1._forElementList](this);
      }
      get onSelectStart() {
        return html$.Element.selectStartEvent[S$1._forElementList](this);
      }
      get onStalled() {
        return html$.Element.stalledEvent[S$1._forElementList](this);
      }
      get onSubmit() {
        return html$.Element.submitEvent[S$1._forElementList](this);
      }
      get onSuspend() {
        return html$.Element.suspendEvent[S$1._forElementList](this);
      }
      get onTimeUpdate() {
        return html$.Element.timeUpdateEvent[S$1._forElementList](this);
      }
      get onTouchCancel() {
        return html$.Element.touchCancelEvent[S$1._forElementList](this);
      }
      get onTouchEnd() {
        return html$.Element.touchEndEvent[S$1._forElementList](this);
      }
      get onTouchEnter() {
        return html$.Element.touchEnterEvent[S$1._forElementList](this);
      }
      get onTouchLeave() {
        return html$.Element.touchLeaveEvent[S$1._forElementList](this);
      }
      get onTouchMove() {
        return html$.Element.touchMoveEvent[S$1._forElementList](this);
      }
      get onTouchStart() {
        return html$.Element.touchStartEvent[S$1._forElementList](this);
      }
      get onTransitionEnd() {
        return html$.Element.transitionEndEvent[S$1._forElementList](this);
      }
      get onVolumeChange() {
        return html$.Element.volumeChangeEvent[S$1._forElementList](this);
      }
      get onWaiting() {
        return html$.Element.waitingEvent[S$1._forElementList](this);
      }
      get onFullscreenChange() {
        return html$.Element.fullscreenChangeEvent[S$1._forElementList](this);
      }
      get onFullscreenError() {
        return html$.Element.fullscreenErrorEvent[S$1._forElementList](this);
      }
      get onWheel() {
        return html$.Element.wheelEvent[S$1._forElementList](this);
      }
    }
    (_FrozenElementList._wrap = function(_nodeList) {
      if (_nodeList == null) dart.nullFailed(I[147], 12290, 33, "_nodeList");
      this[S$1._nodeList] = _nodeList;
      if (!dart.test(this[S$1._nodeList][$every](dart.fn(element => {
        if (element == null) dart.nullFailed(I[147], 12291, 34, "element");
        return E.is(element);
      }, T$0.NodeTobool())))) dart.assertFailed("Query expects only HTML elements of type " + dart.str(dart.wrapType(E)) + " but found " + dart.str(this[S$1._nodeList][$firstWhere](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 12292, 93, "e");
        return !E.is(e);
      }, T$0.NodeTobool()))), I[147], 12291, 12, "this._nodeList.every((element) => element is E)");
    }).prototype = _FrozenElementList.prototype;
    dart.addTypeTests(_FrozenElementList);
    _FrozenElementList.prototype[_is__FrozenElementList_default] = true;
    dart.addTypeCaches(_FrozenElementList);
    _FrozenElementList[dart.implements] = () => [html$.ElementList$(E), html_common.NodeListWrapper];
    dart.setMethodSignature(_FrozenElementList, () => ({
      __proto__: dart.getMethods(_FrozenElementList.__proto__),
      _get: dart.fnType(E, [core.int]),
      [$_get]: dart.fnType(E, [core.int]),
      _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_FrozenElementList, () => ({
      __proto__: dart.getGetters(_FrozenElementList.__proto__),
      length: core.int,
      [$length]: core.int,
      classes: html$.CssClassSet,
      style: html$.CssStyleDeclarationBase,
      contentEdge: html$.CssRect,
      paddingEdge: html$.CssRect,
      borderEdge: html$.CssRect,
      marginEdge: html$.CssRect,
      rawList: core.List$(html$.Node),
      onAbort: html$.ElementStream$(html$.Event),
      onBeforeCopy: html$.ElementStream$(html$.Event),
      onBeforeCut: html$.ElementStream$(html$.Event),
      onBeforePaste: html$.ElementStream$(html$.Event),
      onBlur: html$.ElementStream$(html$.Event),
      onCanPlay: html$.ElementStream$(html$.Event),
      onCanPlayThrough: html$.ElementStream$(html$.Event),
      onChange: html$.ElementStream$(html$.Event),
      onClick: html$.ElementStream$(html$.MouseEvent),
      onContextMenu: html$.ElementStream$(html$.MouseEvent),
      onCopy: html$.ElementStream$(html$.ClipboardEvent),
      onCut: html$.ElementStream$(html$.ClipboardEvent),
      onDoubleClick: html$.ElementStream$(html$.Event),
      onDrag: html$.ElementStream$(html$.MouseEvent),
      onDragEnd: html$.ElementStream$(html$.MouseEvent),
      onDragEnter: html$.ElementStream$(html$.MouseEvent),
      onDragLeave: html$.ElementStream$(html$.MouseEvent),
      onDragOver: html$.ElementStream$(html$.MouseEvent),
      onDragStart: html$.ElementStream$(html$.MouseEvent),
      onDrop: html$.ElementStream$(html$.MouseEvent),
      onDurationChange: html$.ElementStream$(html$.Event),
      onEmptied: html$.ElementStream$(html$.Event),
      onEnded: html$.ElementStream$(html$.Event),
      onError: html$.ElementStream$(html$.Event),
      onFocus: html$.ElementStream$(html$.Event),
      onInput: html$.ElementStream$(html$.Event),
      onInvalid: html$.ElementStream$(html$.Event),
      onKeyDown: html$.ElementStream$(html$.KeyboardEvent),
      onKeyPress: html$.ElementStream$(html$.KeyboardEvent),
      onKeyUp: html$.ElementStream$(html$.KeyboardEvent),
      onLoad: html$.ElementStream$(html$.Event),
      onLoadedData: html$.ElementStream$(html$.Event),
      onLoadedMetadata: html$.ElementStream$(html$.Event),
      onMouseDown: html$.ElementStream$(html$.MouseEvent),
      onMouseEnter: html$.ElementStream$(html$.MouseEvent),
      onMouseLeave: html$.ElementStream$(html$.MouseEvent),
      onMouseMove: html$.ElementStream$(html$.MouseEvent),
      onMouseOut: html$.ElementStream$(html$.MouseEvent),
      onMouseOver: html$.ElementStream$(html$.MouseEvent),
      onMouseUp: html$.ElementStream$(html$.MouseEvent),
      onMouseWheel: html$.ElementStream$(html$.WheelEvent),
      onPaste: html$.ElementStream$(html$.ClipboardEvent),
      onPause: html$.ElementStream$(html$.Event),
      onPlay: html$.ElementStream$(html$.Event),
      onPlaying: html$.ElementStream$(html$.Event),
      onRateChange: html$.ElementStream$(html$.Event),
      onReset: html$.ElementStream$(html$.Event),
      onResize: html$.ElementStream$(html$.Event),
      onScroll: html$.ElementStream$(html$.Event),
      onSearch: html$.ElementStream$(html$.Event),
      onSeeked: html$.ElementStream$(html$.Event),
      onSeeking: html$.ElementStream$(html$.Event),
      onSelect: html$.ElementStream$(html$.Event),
      onSelectStart: html$.ElementStream$(html$.Event),
      onStalled: html$.ElementStream$(html$.Event),
      onSubmit: html$.ElementStream$(html$.Event),
      onSuspend: html$.ElementStream$(html$.Event),
      onTimeUpdate: html$.ElementStream$(html$.Event),
      onTouchCancel: html$.ElementStream$(html$.TouchEvent),
      onTouchEnd: html$.ElementStream$(html$.TouchEvent),
      onTouchEnter: html$.ElementStream$(html$.TouchEvent),
      onTouchLeave: html$.ElementStream$(html$.TouchEvent),
      onTouchMove: html$.ElementStream$(html$.TouchEvent),
      onTouchStart: html$.ElementStream$(html$.TouchEvent),
      onTransitionEnd: html$.ElementStream$(html$.TransitionEvent),
      onVolumeChange: html$.ElementStream$(html$.Event),
      onWaiting: html$.ElementStream$(html$.Event),
      onFullscreenChange: html$.ElementStream$(html$.Event),
      onFullscreenError: html$.ElementStream$(html$.Event),
      onWheel: html$.ElementStream$(html$.WheelEvent)
    }));
    dart.setSetterSignature(_FrozenElementList, () => ({
      __proto__: dart.getSetters(_FrozenElementList.__proto__),
      length: core.int,
      [$length]: core.int,
      classes: core.Iterable$(core.String)
    }));
    dart.setLibraryUri(_FrozenElementList, I[148]);
    dart.setFieldSignature(_FrozenElementList, () => ({
      __proto__: dart.getFields(_FrozenElementList.__proto__),
      [S$1._nodeList]: dart.finalFieldType(core.List$(html$.Node))
    }));
    dart.defineExtensionMethods(_FrozenElementList, ['_get', '_set', 'sort', 'shuffle']);
    dart.defineExtensionAccessors(_FrozenElementList, ['length', 'first', 'last', 'single']);
    return _FrozenElementList;
  });
  html$._FrozenElementList = html$._FrozenElementList$();
  dart.addTypeTests(html$._FrozenElementList, _is__FrozenElementList_default);
  html$._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
    static createElement_tag(tag, typeExtension) {
      if (tag == null) dart.nullFailed(I[147], 15231, 43, "tag");
      if (typeExtension != null) {
        return document.createElement(tag, typeExtension);
      }
      return document.createElement(tag);
    }
  };
  (html$._ElementFactoryProvider.new = function() {
    ;
  }).prototype = html$._ElementFactoryProvider.prototype;
  dart.addTypeTests(html$._ElementFactoryProvider);
  dart.addTypeCaches(html$._ElementFactoryProvider);
  dart.setLibraryUri(html$._ElementFactoryProvider, I[148]);
  html$.ScrollAlignment = class ScrollAlignment extends core.Object {
    get [S$1._value$7]() {
      return this[S$1._value$6];
    }
    set [S$1._value$7](value) {
      super[S$1._value$7] = value;
    }
    toString() {
      return "ScrollAlignment." + dart.str(this[S$1._value$7]);
    }
  };
  (html$.ScrollAlignment._internal = function(_value) {
    this[S$1._value$6] = _value;
    ;
  }).prototype = html$.ScrollAlignment.prototype;
  dart.addTypeTests(html$.ScrollAlignment);
  dart.addTypeCaches(html$.ScrollAlignment);
  dart.setLibraryUri(html$.ScrollAlignment, I[148]);
  dart.setFieldSignature(html$.ScrollAlignment, () => ({
    __proto__: dart.getFields(html$.ScrollAlignment.__proto__),
    [S$1._value$7]: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(html$.ScrollAlignment, ['toString']);
  dart.defineLazy(html$.ScrollAlignment, {
    /*html$.ScrollAlignment.TOP*/get TOP() {
      return C[327] || CT.C327;
    },
    /*html$.ScrollAlignment.CENTER*/get CENTER() {
      return C[328] || CT.C328;
    },
    /*html$.ScrollAlignment.BOTTOM*/get BOTTOM() {
      return C[329] || CT.C329;
    }
  }, false);
  html$.EmbedElement = class EmbedElement extends html$.HtmlElement {
    static new() {
      return html$.EmbedElement.as(html$.document[S.$createElement]("embed"));
    }
    static get supported() {
      return html$.Element.isTagSupported("embed");
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$.__setter__](...args) {
      return this.__setter__.apply(this, args);
    }
  };
  (html$.EmbedElement.created = function() {
    html$.EmbedElement.__proto__.created.call(this);
    ;
  }).prototype = html$.EmbedElement.prototype;
  dart.addTypeTests(html$.EmbedElement);
  dart.addTypeCaches(html$.EmbedElement);
  dart.setMethodSignature(html$.EmbedElement, () => ({
    __proto__: dart.getMethods(html$.EmbedElement.__proto__),
    [S$.__getter__]: dart.fnType(html$.Node, [core.String]),
    [S$.__setter__]: dart.fnType(dart.void, [core.String, html$.Node])
  }));
  dart.setGetterSignature(html$.EmbedElement, () => ({
    __proto__: dart.getGetters(html$.EmbedElement.__proto__),
    [$height]: core.String,
    [$name]: dart.nullable(core.String),
    [S$.$src]: core.String,
    [S.$type]: core.String,
    [$width]: core.String
  }));
  dart.setSetterSignature(html$.EmbedElement, () => ({
    __proto__: dart.getSetters(html$.EmbedElement.__proto__),
    [$height]: core.String,
    [$name]: dart.nullable(core.String),
    [S$.$src]: core.String,
    [S.$type]: core.String,
    [$width]: core.String
  }));
  dart.setLibraryUri(html$.EmbedElement, I[148]);
  dart.registerExtension("HTMLEmbedElement", html$.EmbedElement);
  html$.ErrorEvent = class ErrorEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 15450, 29, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.ErrorEvent._create_1(type, eventInitDict_1);
      }
      return html$.ErrorEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new ErrorEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new ErrorEvent(type);
    }
    get [S$1.$colno]() {
      return this.colno;
    }
    get [S.$error]() {
      return this.error;
    }
    get [S$1.$filename]() {
      return this.filename;
    }
    get [S$1.$lineno]() {
      return this.lineno;
    }
    get [$message]() {
      return this.message;
    }
  };
  dart.addTypeTests(html$.ErrorEvent);
  dart.addTypeCaches(html$.ErrorEvent);
  dart.setGetterSignature(html$.ErrorEvent, () => ({
    __proto__: dart.getGetters(html$.ErrorEvent.__proto__),
    [S$1.$colno]: dart.nullable(core.int),
    [S.$error]: dart.nullable(core.Object),
    [S$1.$filename]: dart.nullable(core.String),
    [S$1.$lineno]: dart.nullable(core.int),
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.ErrorEvent, I[148]);
  dart.registerExtension("ErrorEvent", html$.ErrorEvent);
  html$.EventSource = class EventSource$ extends html$.EventTarget {
    static new(url, opts) {
      if (url == null) dart.nullFailed(I[147], 15622, 30, "url");
      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : false;
      let parsedOptions = new (T$0.IdentityMapOfString$dynamic()).from(["withCredentials", withCredentials]);
      return html$.EventSource._factoryEventSource(url, parsedOptions);
    }
    static _factoryEventSource(url, eventSourceInitDict = null) {
      if (url == null) dart.nullFailed(I[147], 15660, 49, "url");
      if (eventSourceInitDict != null) {
        let eventSourceInitDict_1 = html_common.convertDartToNative_Dictionary(eventSourceInitDict);
        return html$.EventSource._create_1(url, eventSourceInitDict_1);
      }
      return html$.EventSource._create_2(url);
    }
    static _create_1(url, eventSourceInitDict) {
      return new EventSource(url, eventSourceInitDict);
    }
    static _create_2(url) {
      return new EventSource(url);
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$.$url]() {
      return this.url;
    }
    get [S$1.$withCredentials]() {
      return this.withCredentials;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    get [S.$onError]() {
      return html$.EventSource.errorEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.EventSource.messageEvent.forTarget(this);
    }
    get [S$1.$onOpen]() {
      return html$.EventSource.openEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.EventSource);
  dart.addTypeCaches(html$.EventSource);
  dart.setMethodSignature(html$.EventSource, () => ({
    __proto__: dart.getMethods(html$.EventSource.__proto__),
    [S.$close]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.EventSource, () => ({
    __proto__: dart.getGetters(html$.EventSource.__proto__),
    [S.$readyState]: dart.nullable(core.int),
    [S$.$url]: dart.nullable(core.String),
    [S$1.$withCredentials]: dart.nullable(core.bool),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent),
    [S$1.$onOpen]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.EventSource, I[148]);
  dart.defineLazy(html$.EventSource, {
    /*html$.EventSource.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.EventSource.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.EventSource.openEvent*/get openEvent() {
      return C[330] || CT.C330;
    },
    /*html$.EventSource.CLOSED*/get CLOSED() {
      return 2;
    },
    /*html$.EventSource.CONNECTING*/get CONNECTING() {
      return 0;
    },
    /*html$.EventSource.OPEN*/get OPEN() {
      return 1;
    }
  }, false);
  dart.registerExtension("EventSource", html$.EventSource);
  html$.Events = class Events extends core.Object {
    _get(type) {
      if (type == null) dart.nullFailed(I[147], 15744, 36, "type");
      return new (T$0._EventStreamOfEvent()).new(this[S$1._ptr], type, false);
    }
  };
  (html$.Events.new = function(_ptr) {
    if (_ptr == null) dart.nullFailed(I[147], 15742, 15, "_ptr");
    this[S$1._ptr] = _ptr;
    ;
  }).prototype = html$.Events.prototype;
  dart.addTypeTests(html$.Events);
  dart.addTypeCaches(html$.Events);
  dart.setMethodSignature(html$.Events, () => ({
    __proto__: dart.getMethods(html$.Events.__proto__),
    _get: dart.fnType(async.Stream$(html$.Event), [core.String])
  }));
  dart.setLibraryUri(html$.Events, I[148]);
  dart.setFieldSignature(html$.Events, () => ({
    __proto__: dart.getFields(html$.Events.__proto__),
    [S$1._ptr]: dart.finalFieldType(html$.EventTarget)
  }));
  html$.ElementEvents = class ElementEvents extends html$.Events {
    _get(type) {
      if (type == null) dart.nullFailed(I[147], 15769, 36, "type");
      if (dart.test(html$.ElementEvents.webkitEvents[$keys][$contains](type[$toLowerCase]()))) {
        if (dart.test(html_common.Device.isWebKit)) {
          return new (T$0._ElementEventStreamImplOfEvent()).new(this[S$1._ptr], html$.ElementEvents.webkitEvents[$_get](type[$toLowerCase]()), false);
        }
      }
      return new (T$0._ElementEventStreamImplOfEvent()).new(this[S$1._ptr], type, false);
    }
  };
  (html$.ElementEvents.new = function(ptr) {
    if (ptr == null) dart.nullFailed(I[147], 15767, 25, "ptr");
    html$.ElementEvents.__proto__.new.call(this, ptr);
    ;
  }).prototype = html$.ElementEvents.prototype;
  dart.addTypeTests(html$.ElementEvents);
  dart.addTypeCaches(html$.ElementEvents);
  dart.setLibraryUri(html$.ElementEvents, I[148]);
  dart.defineLazy(html$.ElementEvents, {
    /*html$.ElementEvents.webkitEvents*/get webkitEvents() {
      return new (T$.IdentityMapOfString$String()).from(["animationend", "webkitAnimationEnd", "animationiteration", "webkitAnimationIteration", "animationstart", "webkitAnimationStart", "fullscreenchange", "webkitfullscreenchange", "fullscreenerror", "webkitfullscreenerror", "keyadded", "webkitkeyadded", "keyerror", "webkitkeyerror", "keymessage", "webkitkeymessage", "needkey", "webkitneedkey", "pointerlockchange", "webkitpointerlockchange", "pointerlockerror", "webkitpointerlockerror", "resourcetimingbufferfull", "webkitresourcetimingbufferfull", "transitionend", "webkitTransitionEnd", "speechchange", "webkitSpeechChange"]);
    }
  }, false);
  html$.ExtendableMessageEvent = class ExtendableMessageEvent extends html$.ExtendableEvent {
    get [S$.$data]() {
      return this.data;
    }
    get [S$1.$lastEventId]() {
      return this.lastEventId;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$1.$ports]() {
      return this.ports;
    }
    get [S.$source]() {
      return this.source;
    }
  };
  dart.addTypeTests(html$.ExtendableMessageEvent);
  dart.addTypeCaches(html$.ExtendableMessageEvent);
  dart.setGetterSignature(html$.ExtendableMessageEvent, () => ({
    __proto__: dart.getGetters(html$.ExtendableMessageEvent.__proto__),
    [S$.$data]: dart.nullable(core.Object),
    [S$1.$lastEventId]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$1.$ports]: dart.nullable(core.List$(html$.MessagePort)),
    [S.$source]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.ExtendableMessageEvent, I[148]);
  dart.registerExtension("ExtendableMessageEvent", html$.ExtendableMessageEvent);
  html$.External = class External extends _interceptors.Interceptor {
    [S$1.$AddSearchProvider](...args) {
      return this.AddSearchProvider.apply(this, args);
    }
    [S$1.$IsSearchProviderInstalled](...args) {
      return this.IsSearchProviderInstalled.apply(this, args);
    }
  };
  dart.addTypeTests(html$.External);
  dart.addTypeCaches(html$.External);
  dart.setMethodSignature(html$.External, () => ({
    __proto__: dart.getMethods(html$.External.__proto__),
    [S$1.$AddSearchProvider]: dart.fnType(dart.void, []),
    [S$1.$IsSearchProviderInstalled]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(html$.External, I[148]);
  dart.registerExtension("External", html$.External);
  html$.FaceDetector = class FaceDetector$ extends _interceptors.Interceptor {
    static new(faceDetectorOptions = null) {
      if (faceDetectorOptions != null) {
        let faceDetectorOptions_1 = html_common.convertDartToNative_Dictionary(faceDetectorOptions);
        return html$.FaceDetector._create_1(faceDetectorOptions_1);
      }
      return html$.FaceDetector._create_2();
    }
    static _create_1(faceDetectorOptions) {
      return new FaceDetector(faceDetectorOptions);
    }
    static _create_2() {
      return new FaceDetector();
    }
    [S$.$detect](image) {
      return js_util.promiseToFuture(core.List, this.detect(image));
    }
  };
  dart.addTypeTests(html$.FaceDetector);
  dart.addTypeCaches(html$.FaceDetector);
  dart.setMethodSignature(html$.FaceDetector, () => ({
    __proto__: dart.getMethods(html$.FaceDetector.__proto__),
    [S$.$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
  }));
  dart.setLibraryUri(html$.FaceDetector, I[148]);
  dart.registerExtension("FaceDetector", html$.FaceDetector);
  html$.FederatedCredential = class FederatedCredential$ extends html$.Credential {
    static new(data) {
      if (data == null) dart.nullFailed(I[147], 15934, 35, "data");
      let data_1 = html_common.convertDartToNative_Dictionary(data);
      return html$.FederatedCredential._create_1(data_1);
    }
    static _create_1(data) {
      return new FederatedCredential(data);
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    get [S$1.$provider]() {
      return this.provider;
    }
    get [S$.$iconUrl]() {
      return this.iconURL;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.FederatedCredential);
  dart.addTypeCaches(html$.FederatedCredential);
  html$.FederatedCredential[dart.implements] = () => [html$.CredentialUserData];
  dart.setGetterSignature(html$.FederatedCredential, () => ({
    __proto__: dart.getGetters(html$.FederatedCredential.__proto__),
    [S$.$protocol]: dart.nullable(core.String),
    [S$1.$provider]: dart.nullable(core.String),
    [S$.$iconUrl]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.FederatedCredential, I[148]);
  dart.registerExtension("FederatedCredential", html$.FederatedCredential);
  html$.FetchEvent = class FetchEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 15963, 29, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 15963, 39, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.FetchEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new FetchEvent(type, eventInitDict);
    }
    get [S$1.$clientId]() {
      return this.clientId;
    }
    get [S$1.$isReload]() {
      return this.isReload;
    }
    get [S$1.$preloadResponse]() {
      return js_util.promiseToFuture(dart.dynamic, this.preloadResponse);
    }
    get [S$.$request]() {
      return this.request;
    }
    [S$.$respondWith](...args) {
      return this.respondWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.FetchEvent);
  dart.addTypeCaches(html$.FetchEvent);
  dart.setMethodSignature(html$.FetchEvent, () => ({
    __proto__: dart.getMethods(html$.FetchEvent.__proto__),
    [S$.$respondWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setGetterSignature(html$.FetchEvent, () => ({
    __proto__: dart.getGetters(html$.FetchEvent.__proto__),
    [S$1.$clientId]: dart.nullable(core.String),
    [S$1.$isReload]: dart.nullable(core.bool),
    [S$1.$preloadResponse]: async.Future,
    [S$.$request]: dart.nullable(html$._Request)
  }));
  dart.setLibraryUri(html$.FetchEvent, I[148]);
  dart.registerExtension("FetchEvent", html$.FetchEvent);
  html$.FieldSetElement = class FieldSetElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("fieldset");
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$1.$elements]() {
      return this.elements;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
  };
  (html$.FieldSetElement.created = function() {
    html$.FieldSetElement.__proto__.created.call(this);
    ;
  }).prototype = html$.FieldSetElement.prototype;
  dart.addTypeTests(html$.FieldSetElement);
  dart.addTypeCaches(html$.FieldSetElement);
  dart.setMethodSignature(html$.FieldSetElement, () => ({
    __proto__: dart.getMethods(html$.FieldSetElement.__proto__),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(html$.FieldSetElement, () => ({
    __proto__: dart.getGetters(html$.FieldSetElement.__proto__),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$1.$elements]: dart.nullable(core.List$(html$.Node)),
    [S$.$form]: dart.nullable(html$.FormElement),
    [$name]: core.String,
    [S.$type]: core.String,
    [S$.$validationMessage]: core.String,
    [S$.$validity]: html$.ValidityState,
    [S$.$willValidate]: core.bool
  }));
  dart.setSetterSignature(html$.FieldSetElement, () => ({
    __proto__: dart.getSetters(html$.FieldSetElement.__proto__),
    [S$.$disabled]: dart.nullable(core.bool),
    [$name]: core.String
  }));
  dart.setLibraryUri(html$.FieldSetElement, I[148]);
  dart.registerExtension("HTMLFieldSetElement", html$.FieldSetElement);
  html$.File = class File$ extends html$.Blob {
    static new(fileBits, fileName, options = null) {
      if (fileBits == null) dart.nullFailed(I[147], 16044, 29, "fileBits");
      if (fileName == null) dart.nullFailed(I[147], 16044, 46, "fileName");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.File._create_1(fileBits, fileName, options_1);
      }
      return html$.File._create_2(fileBits, fileName);
    }
    static _create_1(fileBits, fileName, options) {
      return new File(fileBits, fileName, options);
    }
    static _create_2(fileBits, fileName) {
      return new File(fileBits, fileName);
    }
    get [S$1.$lastModified]() {
      return this.lastModified;
    }
    get [S$1.$lastModifiedDate]() {
      return html_common.convertNativeToDart_DateTime(this[S$1._get_lastModifiedDate]);
    }
    get [S$1._get_lastModifiedDate]() {
      return this.lastModifiedDate;
    }
    get [$name]() {
      return this.name;
    }
    get [S$1.$relativePath]() {
      return this.webkitRelativePath;
    }
  };
  dart.addTypeTests(html$.File);
  dart.addTypeCaches(html$.File);
  dart.setGetterSignature(html$.File, () => ({
    __proto__: dart.getGetters(html$.File.__proto__),
    [S$1.$lastModified]: dart.nullable(core.int),
    [S$1.$lastModifiedDate]: core.DateTime,
    [S$1._get_lastModifiedDate]: dart.dynamic,
    [$name]: core.String,
    [S$1.$relativePath]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.File, I[148]);
  dart.registerExtension("File", html$.File);
  html$.FileEntry = class FileEntry extends html$.Entry {
    [S$1._createWriter](...args) {
      return this.createWriter.apply(this, args);
    }
    [S$1.$createWriter]() {
      let completer = T$0.CompleterOfFileWriter().new();
      this[S$1._createWriter](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 16096, 20, "value");
        _js_helper.applyExtension("FileWriter", value);
        completer.complete(value);
      }, T$0.FileWriterTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 16099, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$1._file$1](...args) {
      return this.file.apply(this, args);
    }
    [S$1.$file]() {
      let completer = T$0.CompleterOfFile().new();
      this[S$1._file$1](dart.fn(value => {
        _js_helper.applyExtension("File", value);
        completer.complete(value);
      }, T$0.FileNTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 16115, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(html$.FileEntry);
  dart.addTypeCaches(html$.FileEntry);
  dart.setMethodSignature(html$.FileEntry, () => ({
    __proto__: dart.getMethods(html$.FileEntry.__proto__),
    [S$1._createWriter]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.FileWriter])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$1.$createWriter]: dart.fnType(async.Future$(html$.FileWriter), []),
    [S$1._file$1]: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.nullable(html$.File)])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$1.$file]: dart.fnType(async.Future$(html$.File), [])
  }));
  dart.setLibraryUri(html$.FileEntry, I[148]);
  dart.registerExtension("FileEntry", html$.FileEntry);
  const Interceptor_ListMixin$36$0 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$0.new = function() {
    Interceptor_ListMixin$36$0.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$0.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$0, collection.ListMixin$(html$.File));
  const Interceptor_ImmutableListMixin$36$0 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$0 {};
  (Interceptor_ImmutableListMixin$36$0.new = function() {
    Interceptor_ImmutableListMixin$36$0.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$0.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$0, html$.ImmutableListMixin$(html$.File));
  html$.FileList = class FileList extends Interceptor_ImmutableListMixin$36$0 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 16136, 24, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 16142, 25, "index");
      html$.File.as(value);
      if (value == null) dart.nullFailed(I[147], 16142, 37, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 16148, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 16176, 22, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.FileList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.FileList);
  dart.addTypeCaches(html$.FileList);
  html$.FileList[dart.implements] = () => [core.List$(html$.File), _js_helper.JavaScriptIndexingBehavior$(html$.File)];
  dart.setMethodSignature(html$.FileList, () => ({
    __proto__: dart.getMethods(html$.FileList.__proto__),
    [$_get]: dart.fnType(html$.File, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.File), [core.int])
  }));
  dart.setGetterSignature(html$.FileList, () => ({
    __proto__: dart.getGetters(html$.FileList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.FileList, () => ({
    __proto__: dart.getSetters(html$.FileList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.FileList, I[148]);
  dart.registerExtension("FileList", html$.FileList);
  html$.FileReader = class FileReader$ extends html$.EventTarget {
    get [S.$result]() {
      let res = this.result;
      if (typed_data.ByteBuffer.is(res)) {
        return typed_data.Uint8List.view(res);
      }
      return res;
    }
    static new() {
      return html$.FileReader._create_1();
    }
    static _create_1() {
      return new FileReader();
    }
    get [S.$error]() {
      return this.error;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$1.$readAsArrayBuffer](...args) {
      return this.readAsArrayBuffer.apply(this, args);
    }
    [S$1.$readAsDataUrl](...args) {
      return this.readAsDataURL.apply(this, args);
    }
    [S$1.$readAsText](...args) {
      return this.readAsText.apply(this, args);
    }
    get [S.$onAbort]() {
      return html$.FileReader.abortEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.FileReader.errorEvent.forTarget(this);
    }
    get [S.$onLoad]() {
      return html$.FileReader.loadEvent.forTarget(this);
    }
    get [S$1.$onLoadEnd]() {
      return html$.FileReader.loadEndEvent.forTarget(this);
    }
    get [S$1.$onLoadStart]() {
      return html$.FileReader.loadStartEvent.forTarget(this);
    }
    get [S$.$onProgress]() {
      return html$.FileReader.progressEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.FileReader);
  dart.addTypeCaches(html$.FileReader);
  dart.setMethodSignature(html$.FileReader, () => ({
    __proto__: dart.getMethods(html$.FileReader.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$1.$readAsArrayBuffer]: dart.fnType(dart.void, [html$.Blob]),
    [S$1.$readAsDataUrl]: dart.fnType(dart.void, [html$.Blob]),
    [S$1.$readAsText]: dart.fnType(dart.void, [html$.Blob], [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.FileReader, () => ({
    __proto__: dart.getGetters(html$.FileReader.__proto__),
    [S.$result]: dart.nullable(core.Object),
    [S.$error]: dart.nullable(html$.DomException),
    [S.$readyState]: core.int,
    [S.$onAbort]: async.Stream$(html$.ProgressEvent),
    [S.$onError]: async.Stream$(html$.ProgressEvent),
    [S.$onLoad]: async.Stream$(html$.ProgressEvent),
    [S$1.$onLoadEnd]: async.Stream$(html$.ProgressEvent),
    [S$1.$onLoadStart]: async.Stream$(html$.ProgressEvent),
    [S$.$onProgress]: async.Stream$(html$.ProgressEvent)
  }));
  dart.setLibraryUri(html$.FileReader, I[148]);
  dart.defineLazy(html$.FileReader, {
    /*html$.FileReader.abortEvent*/get abortEvent() {
      return C[331] || CT.C331;
    },
    /*html$.FileReader.errorEvent*/get errorEvent() {
      return C[332] || CT.C332;
    },
    /*html$.FileReader.loadEvent*/get loadEvent() {
      return C[333] || CT.C333;
    },
    /*html$.FileReader.loadEndEvent*/get loadEndEvent() {
      return C[334] || CT.C334;
    },
    /*html$.FileReader.loadStartEvent*/get loadStartEvent() {
      return C[335] || CT.C335;
    },
    /*html$.FileReader.progressEvent*/get progressEvent() {
      return C[309] || CT.C309;
    },
    /*html$.FileReader.DONE*/get DONE() {
      return 2;
    },
    /*html$.FileReader.EMPTY*/get EMPTY() {
      return 0;
    },
    /*html$.FileReader.LOADING*/get LOADING() {
      return 1;
    }
  }, false);
  dart.registerExtension("FileReader", html$.FileReader);
  html$.FileSystem = class FileSystem extends _interceptors.Interceptor {
    static get supported() {
      return !!window.webkitRequestFileSystem;
    }
    get [$name]() {
      return this.name;
    }
    get [S$1.$root]() {
      return this.root;
    }
  };
  dart.addTypeTests(html$.FileSystem);
  dart.addTypeCaches(html$.FileSystem);
  dart.setGetterSignature(html$.FileSystem, () => ({
    __proto__: dart.getGetters(html$.FileSystem.__proto__),
    [$name]: dart.nullable(core.String),
    [S$1.$root]: dart.nullable(html$.DirectoryEntry)
  }));
  dart.setLibraryUri(html$.FileSystem, I[148]);
  dart.registerExtension("DOMFileSystem", html$.FileSystem);
  html$.FileWriter = class FileWriter extends html$.EventTarget {
    get [S.$error]() {
      return this.error;
    }
    get [$length]() {
      return this.length;
    }
    get [S$0.$position]() {
      return this.position;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$1.$seek](...args) {
      return this.seek.apply(this, args);
    }
    [$truncate](...args) {
      return this.truncate.apply(this, args);
    }
    [S$1.$write](...args) {
      return this.write.apply(this, args);
    }
    get [S.$onAbort]() {
      return html$.FileWriter.abortEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.FileWriter.errorEvent.forTarget(this);
    }
    get [S$.$onProgress]() {
      return html$.FileWriter.progressEvent.forTarget(this);
    }
    get [S$1.$onWrite]() {
      return html$.FileWriter.writeEvent.forTarget(this);
    }
    get [S$1.$onWriteEnd]() {
      return html$.FileWriter.writeEndEvent.forTarget(this);
    }
    get [S$1.$onWriteStart]() {
      return html$.FileWriter.writeStartEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.FileWriter);
  dart.addTypeCaches(html$.FileWriter);
  dart.setMethodSignature(html$.FileWriter, () => ({
    __proto__: dart.getMethods(html$.FileWriter.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$1.$seek]: dart.fnType(dart.void, [core.int]),
    [$truncate]: dart.fnType(dart.void, [core.int]),
    [S$1.$write]: dart.fnType(dart.void, [html$.Blob])
  }));
  dart.setGetterSignature(html$.FileWriter, () => ({
    __proto__: dart.getGetters(html$.FileWriter.__proto__),
    [S.$error]: dart.nullable(html$.DomException),
    [$length]: dart.nullable(core.int),
    [S$0.$position]: dart.nullable(core.int),
    [S.$readyState]: dart.nullable(core.int),
    [S.$onAbort]: async.Stream$(html$.ProgressEvent),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onProgress]: async.Stream$(html$.ProgressEvent),
    [S$1.$onWrite]: async.Stream$(html$.ProgressEvent),
    [S$1.$onWriteEnd]: async.Stream$(html$.ProgressEvent),
    [S$1.$onWriteStart]: async.Stream$(html$.ProgressEvent)
  }));
  dart.setLibraryUri(html$.FileWriter, I[148]);
  dart.defineLazy(html$.FileWriter, {
    /*html$.FileWriter.abortEvent*/get abortEvent() {
      return C[331] || CT.C331;
    },
    /*html$.FileWriter.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.FileWriter.progressEvent*/get progressEvent() {
      return C[309] || CT.C309;
    },
    /*html$.FileWriter.writeEvent*/get writeEvent() {
      return C[336] || CT.C336;
    },
    /*html$.FileWriter.writeEndEvent*/get writeEndEvent() {
      return C[337] || CT.C337;
    },
    /*html$.FileWriter.writeStartEvent*/get writeStartEvent() {
      return C[338] || CT.C338;
    },
    /*html$.FileWriter.DONE*/get DONE() {
      return 2;
    },
    /*html$.FileWriter.INIT*/get INIT() {
      return 0;
    },
    /*html$.FileWriter.WRITING*/get WRITING() {
      return 1;
    }
  }, false);
  dart.registerExtension("FileWriter", html$.FileWriter);
  html$.FocusEvent = class FocusEvent$ extends html$.UIEvent {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 16445, 29, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.FocusEvent._create_1(type, eventInitDict_1);
      }
      return html$.FocusEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new FocusEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new FocusEvent(type);
    }
    get [S$1.$relatedTarget]() {
      return html$._convertNativeToDart_EventTarget(this[S$1._get_relatedTarget]);
    }
    get [S$1._get_relatedTarget]() {
      return this.relatedTarget;
    }
  };
  dart.addTypeTests(html$.FocusEvent);
  dart.addTypeCaches(html$.FocusEvent);
  dart.setGetterSignature(html$.FocusEvent, () => ({
    __proto__: dart.getGetters(html$.FocusEvent.__proto__),
    [S$1.$relatedTarget]: dart.nullable(html$.EventTarget),
    [S$1._get_relatedTarget]: dart.dynamic
  }));
  dart.setLibraryUri(html$.FocusEvent, I[148]);
  dart.registerExtension("FocusEvent", html$.FocusEvent);
  html$.FontFace = class FontFace$ extends _interceptors.Interceptor {
    static new(family, source, descriptors = null) {
      if (family == null) dart.nullFailed(I[147], 16474, 27, "family");
      if (source == null) dart.nullFailed(I[147], 16474, 42, "source");
      if (descriptors != null) {
        let descriptors_1 = html_common.convertDartToNative_Dictionary(descriptors);
        return html$.FontFace._create_1(family, source, descriptors_1);
      }
      return html$.FontFace._create_2(family, source);
    }
    static _create_1(family, source, descriptors) {
      return new FontFace(family, source, descriptors);
    }
    static _create_2(family, source) {
      return new FontFace(family, source);
    }
    get [S$0.$display]() {
      return this.display;
    }
    set [S$0.$display](value) {
      this.display = value;
    }
    get [S$1.$family]() {
      return this.family;
    }
    set [S$1.$family](value) {
      this.family = value;
    }
    get [S$1.$featureSettings]() {
      return this.featureSettings;
    }
    set [S$1.$featureSettings](value) {
      this.featureSettings = value;
    }
    get [S$1.$loaded]() {
      return js_util.promiseToFuture(html$.FontFace, this.loaded);
    }
    get [S$.$status]() {
      return this.status;
    }
    get [S$1.$stretch]() {
      return this.stretch;
    }
    set [S$1.$stretch](value) {
      this.stretch = value;
    }
    get [S.$style]() {
      return this.style;
    }
    set [S.$style](value) {
      this.style = value;
    }
    get [S$0.$unicodeRange]() {
      return this.unicodeRange;
    }
    set [S$0.$unicodeRange](value) {
      this.unicodeRange = value;
    }
    get [S$1.$variant]() {
      return this.variant;
    }
    set [S$1.$variant](value) {
      this.variant = value;
    }
    get [S$1.$weight]() {
      return this.weight;
    }
    set [S$1.$weight](value) {
      this.weight = value;
    }
    [S$.$load]() {
      return js_util.promiseToFuture(html$.FontFace, this.load());
    }
  };
  dart.addTypeTests(html$.FontFace);
  dart.addTypeCaches(html$.FontFace);
  dart.setMethodSignature(html$.FontFace, () => ({
    __proto__: dart.getMethods(html$.FontFace.__proto__),
    [S$.$load]: dart.fnType(async.Future$(html$.FontFace), [])
  }));
  dart.setGetterSignature(html$.FontFace, () => ({
    __proto__: dart.getGetters(html$.FontFace.__proto__),
    [S$0.$display]: dart.nullable(core.String),
    [S$1.$family]: dart.nullable(core.String),
    [S$1.$featureSettings]: dart.nullable(core.String),
    [S$1.$loaded]: async.Future$(html$.FontFace),
    [S$.$status]: dart.nullable(core.String),
    [S$1.$stretch]: dart.nullable(core.String),
    [S.$style]: dart.nullable(core.String),
    [S$0.$unicodeRange]: dart.nullable(core.String),
    [S$1.$variant]: dart.nullable(core.String),
    [S$1.$weight]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.FontFace, () => ({
    __proto__: dart.getSetters(html$.FontFace.__proto__),
    [S$0.$display]: dart.nullable(core.String),
    [S$1.$family]: dart.nullable(core.String),
    [S$1.$featureSettings]: dart.nullable(core.String),
    [S$1.$stretch]: dart.nullable(core.String),
    [S.$style]: dart.nullable(core.String),
    [S$0.$unicodeRange]: dart.nullable(core.String),
    [S$1.$variant]: dart.nullable(core.String),
    [S$1.$weight]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.FontFace, I[148]);
  dart.registerExtension("FontFace", html$.FontFace);
  html$.FontFaceSet = class FontFaceSet extends html$.EventTarget {
    get [S$.$status]() {
      return this.status;
    }
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [S$1.$check](...args) {
      return this.check.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S.$delete](...args) {
      return this.delete.apply(this, args);
    }
    [$forEach](...args) {
      return this.forEach.apply(this, args);
    }
    [S$.$has](...args) {
      return this.has.apply(this, args);
    }
    get [S$1.$onLoading]() {
      return html$.FontFaceSet.loadingEvent.forTarget(this);
    }
    get [S$1.$onLoadingDone]() {
      return html$.FontFaceSet.loadingDoneEvent.forTarget(this);
    }
    get [S$1.$onLoadingError]() {
      return html$.FontFaceSet.loadingErrorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.FontFaceSet);
  dart.addTypeCaches(html$.FontFaceSet);
  dart.setMethodSignature(html$.FontFaceSet, () => ({
    __proto__: dart.getMethods(html$.FontFaceSet.__proto__),
    [$add]: dart.fnType(html$.FontFaceSet, [html$.FontFace]),
    [S$1.$check]: dart.fnType(core.bool, [core.String], [dart.nullable(core.String)]),
    [$clear]: dart.fnType(dart.void, []),
    [S.$delete]: dart.fnType(core.bool, [html$.FontFace]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.FontFace, html$.FontFace, html$.FontFaceSet])], [dart.nullable(core.Object)]),
    [S$.$has]: dart.fnType(core.bool, [html$.FontFace])
  }));
  dart.setGetterSignature(html$.FontFaceSet, () => ({
    __proto__: dart.getGetters(html$.FontFaceSet.__proto__),
    [S$.$status]: dart.nullable(core.String),
    [S$1.$onLoading]: async.Stream$(html$.FontFaceSetLoadEvent),
    [S$1.$onLoadingDone]: async.Stream$(html$.FontFaceSetLoadEvent),
    [S$1.$onLoadingError]: async.Stream$(html$.FontFaceSetLoadEvent)
  }));
  dart.setLibraryUri(html$.FontFaceSet, I[148]);
  dart.defineLazy(html$.FontFaceSet, {
    /*html$.FontFaceSet.loadingEvent*/get loadingEvent() {
      return C[339] || CT.C339;
    },
    /*html$.FontFaceSet.loadingDoneEvent*/get loadingDoneEvent() {
      return C[340] || CT.C340;
    },
    /*html$.FontFaceSet.loadingErrorEvent*/get loadingErrorEvent() {
      return C[341] || CT.C341;
    }
  }, false);
  dart.registerExtension("FontFaceSet", html$.FontFaceSet);
  html$.FontFaceSetLoadEvent = class FontFaceSetLoadEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 16579, 39, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.FontFaceSetLoadEvent._create_1(type, eventInitDict_1);
      }
      return html$.FontFaceSetLoadEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new FontFaceSetLoadEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new FontFaceSetLoadEvent(type);
    }
    get [S$1.$fontfaces]() {
      return this.fontfaces;
    }
  };
  dart.addTypeTests(html$.FontFaceSetLoadEvent);
  dart.addTypeCaches(html$.FontFaceSetLoadEvent);
  dart.setGetterSignature(html$.FontFaceSetLoadEvent, () => ({
    __proto__: dart.getGetters(html$.FontFaceSetLoadEvent.__proto__),
    [S$1.$fontfaces]: dart.nullable(core.List$(html$.FontFace))
  }));
  dart.setLibraryUri(html$.FontFaceSetLoadEvent, I[148]);
  dart.registerExtension("FontFaceSetLoadEvent", html$.FontFaceSetLoadEvent);
  html$.FontFaceSource = class FontFaceSource extends _interceptors.Interceptor {
    get [S$1.$fonts]() {
      return this.fonts;
    }
  };
  dart.addTypeTests(html$.FontFaceSource);
  dart.addTypeCaches(html$.FontFaceSource);
  dart.setGetterSignature(html$.FontFaceSource, () => ({
    __proto__: dart.getGetters(html$.FontFaceSource.__proto__),
    [S$1.$fonts]: dart.nullable(html$.FontFaceSet)
  }));
  dart.setLibraryUri(html$.FontFaceSource, I[148]);
  dart.registerExtension("FontFaceSource", html$.FontFaceSource);
  html$.ForeignFetchEvent = class ForeignFetchEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 16620, 36, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 16620, 46, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ForeignFetchEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new ForeignFetchEvent(type, eventInitDict);
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$.$request]() {
      return this.request;
    }
    [S$.$respondWith](...args) {
      return this.respondWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ForeignFetchEvent);
  dart.addTypeCaches(html$.ForeignFetchEvent);
  dart.setMethodSignature(html$.ForeignFetchEvent, () => ({
    __proto__: dart.getMethods(html$.ForeignFetchEvent.__proto__),
    [S$.$respondWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setGetterSignature(html$.ForeignFetchEvent, () => ({
    __proto__: dart.getGetters(html$.ForeignFetchEvent.__proto__),
    [S$.$origin]: dart.nullable(core.String),
    [S$.$request]: dart.nullable(html$._Request)
  }));
  dart.setLibraryUri(html$.ForeignFetchEvent, I[148]);
  dart.registerExtension("ForeignFetchEvent", html$.ForeignFetchEvent);
  html$.FormData = class FormData$ extends _interceptors.Interceptor {
    static new(form = null) {
      if (form != null) {
        return html$.FormData._create_1(form);
      }
      return html$.FormData._create_2();
    }
    static _create_1(form) {
      return new FormData(form);
    }
    static _create_2() {
      return new FormData();
    }
    static get supported() {
      return !!window.FormData;
    }
    [S.$append](...args) {
      return this.append.apply(this, args);
    }
    [S$1.$appendBlob](...args) {
      return this.append.apply(this, args);
    }
    [S.$delete](...args) {
      return this.delete.apply(this, args);
    }
    [S.$get](...args) {
      return this.get.apply(this, args);
    }
    [S.$getAll](...args) {
      return this.getAll.apply(this, args);
    }
    [S$.$has](...args) {
      return this.has.apply(this, args);
    }
    [S$.$set](...args) {
      return this.set.apply(this, args);
    }
  };
  dart.addTypeTests(html$.FormData);
  dart.addTypeCaches(html$.FormData);
  dart.setMethodSignature(html$.FormData, () => ({
    __proto__: dart.getMethods(html$.FormData.__proto__),
    [S.$append]: dart.fnType(dart.void, [core.String, core.String]),
    [S$1.$appendBlob]: dart.fnType(dart.void, [core.String, html$.Blob], [dart.nullable(core.String)]),
    [S.$delete]: dart.fnType(dart.void, [core.String]),
    [S.$get]: dart.fnType(dart.nullable(core.Object), [core.String]),
    [S.$getAll]: dart.fnType(core.List$(core.Object), [core.String]),
    [S$.$has]: dart.fnType(core.bool, [core.String]),
    [S$.$set]: dart.fnType(dart.void, [core.String, dart.dynamic], [dart.nullable(core.String)])
  }));
  dart.setLibraryUri(html$.FormData, I[148]);
  dart.registerExtension("FormData", html$.FormData);
  html$.FormElement = class FormElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("form");
    }
    get [S$1.$acceptCharset]() {
      return this.acceptCharset;
    }
    set [S$1.$acceptCharset](value) {
      this.acceptCharset = value;
    }
    get [S$1.$action]() {
      return this.action;
    }
    set [S$1.$action](value) {
      this.action = value;
    }
    get [S$.$autocomplete]() {
      return this.autocomplete;
    }
    set [S$.$autocomplete](value) {
      this.autocomplete = value;
    }
    get [S$.$encoding]() {
      return this.encoding;
    }
    set [S$.$encoding](value) {
      this.encoding = value;
    }
    get [S$1.$enctype]() {
      return this.enctype;
    }
    set [S$1.$enctype](value) {
      this.enctype = value;
    }
    get [$length]() {
      return this.length;
    }
    get [S$1.$method]() {
      return this.method;
    }
    set [S$1.$method](value) {
      this.method = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$1.$noValidate]() {
      return this.noValidate;
    }
    set [S$1.$noValidate](value) {
      this.noValidate = value;
    }
    get [S.$target]() {
      return this.target;
    }
    set [S.$target](value) {
      this.target = value;
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$1.$requestAutocomplete](details) {
      let details_1 = html_common.convertDartToNative_Dictionary(details);
      this[S$1._requestAutocomplete_1](details_1);
      return;
    }
    [S$1._requestAutocomplete_1](...args) {
      return this.requestAutocomplete.apply(this, args);
    }
    [S$1.$reset](...args) {
      return this.reset.apply(this, args);
    }
    [S$1.$submit](...args) {
      return this.submit.apply(this, args);
    }
  };
  (html$.FormElement.created = function() {
    html$.FormElement.__proto__.created.call(this);
    ;
  }).prototype = html$.FormElement.prototype;
  dart.addTypeTests(html$.FormElement);
  dart.addTypeCaches(html$.FormElement);
  dart.setMethodSignature(html$.FormElement, () => ({
    __proto__: dart.getMethods(html$.FormElement.__proto__),
    [S$.__getter__]: dart.fnType(dart.nullable(core.Object), [core.String]),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$item]: dart.fnType(html$.Element, [core.int]),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$1.$requestAutocomplete]: dart.fnType(dart.void, [dart.nullable(core.Map)]),
    [S$1._requestAutocomplete_1]: dart.fnType(dart.void, [dart.dynamic]),
    [S$1.$reset]: dart.fnType(dart.void, []),
    [S$1.$submit]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.FormElement, () => ({
    __proto__: dart.getGetters(html$.FormElement.__proto__),
    [S$1.$acceptCharset]: dart.nullable(core.String),
    [S$1.$action]: dart.nullable(core.String),
    [S$.$autocomplete]: dart.nullable(core.String),
    [S$.$encoding]: dart.nullable(core.String),
    [S$1.$enctype]: dart.nullable(core.String),
    [$length]: dart.nullable(core.int),
    [S$1.$method]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$1.$noValidate]: dart.nullable(core.bool),
    [S.$target]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.FormElement, () => ({
    __proto__: dart.getSetters(html$.FormElement.__proto__),
    [S$1.$acceptCharset]: dart.nullable(core.String),
    [S$1.$action]: dart.nullable(core.String),
    [S$.$autocomplete]: dart.nullable(core.String),
    [S$.$encoding]: dart.nullable(core.String),
    [S$1.$enctype]: dart.nullable(core.String),
    [S$1.$method]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$1.$noValidate]: dart.nullable(core.bool),
    [S.$target]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.FormElement, I[148]);
  dart.registerExtension("HTMLFormElement", html$.FormElement);
  html$.Gamepad = class Gamepad extends _interceptors.Interceptor {
    get [S$1.$axes]() {
      return this.axes;
    }
    get [S$1.$buttons]() {
      return this.buttons;
    }
    get [S$1.$connected]() {
      return this.connected;
    }
    get [S$1.$displayId]() {
      return this.displayId;
    }
    get [S$1.$hand]() {
      return this.hand;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S.$index]() {
      return this.index;
    }
    get [S$1.$mapping]() {
      return this.mapping;
    }
    get [S$1.$pose]() {
      return this.pose;
    }
    get [S$.$timestamp]() {
      return this.timestamp;
    }
  };
  dart.addTypeTests(html$.Gamepad);
  dart.addTypeCaches(html$.Gamepad);
  dart.setGetterSignature(html$.Gamepad, () => ({
    __proto__: dart.getGetters(html$.Gamepad.__proto__),
    [S$1.$axes]: dart.nullable(core.List$(core.num)),
    [S$1.$buttons]: dart.nullable(core.List$(html$.GamepadButton)),
    [S$1.$connected]: dart.nullable(core.bool),
    [S$1.$displayId]: dart.nullable(core.int),
    [S$1.$hand]: dart.nullable(core.String),
    [S.$id]: dart.nullable(core.String),
    [S.$index]: dart.nullable(core.int),
    [S$1.$mapping]: dart.nullable(core.String),
    [S$1.$pose]: dart.nullable(html$.GamepadPose),
    [S$.$timestamp]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.Gamepad, I[148]);
  dart.registerExtension("Gamepad", html$.Gamepad);
  html$.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
    get [S$.$pressed]() {
      return this.pressed;
    }
    get [S$1.$touched]() {
      return this.touched;
    }
    get [S.$value]() {
      return this.value;
    }
  };
  dart.addTypeTests(html$.GamepadButton);
  dart.addTypeCaches(html$.GamepadButton);
  dart.setGetterSignature(html$.GamepadButton, () => ({
    __proto__: dart.getGetters(html$.GamepadButton.__proto__),
    [S$.$pressed]: dart.nullable(core.bool),
    [S$1.$touched]: dart.nullable(core.bool),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.GamepadButton, I[148]);
  dart.registerExtension("GamepadButton", html$.GamepadButton);
  html$.GamepadEvent = class GamepadEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 16832, 31, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.GamepadEvent._create_1(type, eventInitDict_1);
      }
      return html$.GamepadEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new GamepadEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new GamepadEvent(type);
    }
    get [S$1.$gamepad]() {
      return this.gamepad;
    }
  };
  dart.addTypeTests(html$.GamepadEvent);
  dart.addTypeCaches(html$.GamepadEvent);
  dart.setGetterSignature(html$.GamepadEvent, () => ({
    __proto__: dart.getGetters(html$.GamepadEvent.__proto__),
    [S$1.$gamepad]: dart.nullable(html$.Gamepad)
  }));
  dart.setLibraryUri(html$.GamepadEvent, I[148]);
  dart.registerExtension("GamepadEvent", html$.GamepadEvent);
  html$.GamepadPose = class GamepadPose extends _interceptors.Interceptor {
    get [S$1.$angularAcceleration]() {
      return this.angularAcceleration;
    }
    get [S$1.$angularVelocity]() {
      return this.angularVelocity;
    }
    get [S$1.$hasOrientation]() {
      return this.hasOrientation;
    }
    get [S$1.$hasPosition]() {
      return this.hasPosition;
    }
    get [S$1.$linearAcceleration]() {
      return this.linearAcceleration;
    }
    get [S$1.$linearVelocity]() {
      return this.linearVelocity;
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    get [S$0.$position]() {
      return this.position;
    }
  };
  dart.addTypeTests(html$.GamepadPose);
  dart.addTypeCaches(html$.GamepadPose);
  dart.setGetterSignature(html$.GamepadPose, () => ({
    __proto__: dart.getGetters(html$.GamepadPose.__proto__),
    [S$1.$angularAcceleration]: dart.nullable(typed_data.Float32List),
    [S$1.$angularVelocity]: dart.nullable(typed_data.Float32List),
    [S$1.$hasOrientation]: dart.nullable(core.bool),
    [S$1.$hasPosition]: dart.nullable(core.bool),
    [S$1.$linearAcceleration]: dart.nullable(typed_data.Float32List),
    [S$1.$linearVelocity]: dart.nullable(typed_data.Float32List),
    [S$.$orientation]: dart.nullable(typed_data.Float32List),
    [S$0.$position]: dart.nullable(typed_data.Float32List)
  }));
  dart.setLibraryUri(html$.GamepadPose, I[148]);
  dart.registerExtension("GamepadPose", html$.GamepadPose);
  html$.Geolocation = class Geolocation extends _interceptors.Interceptor {
    [S$1.$getCurrentPosition](opts) {
      let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
      let options = new _js_helper.LinkedMap.new();
      if (enableHighAccuracy != null) {
        options[$_set]("enableHighAccuracy", enableHighAccuracy);
      }
      if (timeout != null) {
        options[$_set]("timeout", timeout.inMilliseconds);
      }
      if (maximumAge != null) {
        options[$_set]("maximumAge", maximumAge.inMilliseconds);
      }
      let completer = T$0.CompleterOfGeoposition().new();
      try {
        this[S$1._getCurrentPosition](dart.fn(position => {
          if (position == null) dart.nullFailed(I[147], 16894, 28, "position");
          completer.complete(this[S$1._ensurePosition](position));
        }, T$0.GeopositionTovoid()), dart.fn(error => {
          if (error == null) dart.nullFailed(I[147], 16896, 11, "error");
          completer.completeError(error);
        }, T$0.PositionErrorTovoid()), options);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let stacktrace = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          completer.completeError(e, stacktrace);
        } else
          throw e$;
      }
      return completer.future;
    }
    [S$1.$watchPosition](opts) {
      let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
      let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
      let options = new _js_helper.LinkedMap.new();
      if (enableHighAccuracy != null) {
        options[$_set]("enableHighAccuracy", enableHighAccuracy);
      }
      if (timeout != null) {
        options[$_set]("timeout", timeout.inMilliseconds);
      }
      if (maximumAge != null) {
        options[$_set]("maximumAge", maximumAge.inMilliseconds);
      }
      let watchId = null;
      let controller = T$0.StreamControllerOfGeoposition().new({sync: true, onCancel: dart.fn(() => {
          if (!(watchId != null)) dart.assertFailed(null, I[147], 16923, 22, "watchId != null");
          this[S$1._clearWatch](dart.nullCheck(watchId));
        }, T$.VoidToNull())});
      controller.onListen = dart.fn(() => {
        if (!(watchId == null)) dart.assertFailed(null, I[147], 16927, 14, "watchId == null");
        watchId = this[S$1._watchPosition](dart.fn(position => {
          if (position == null) dart.nullFailed(I[147], 16928, 33, "position");
          controller.add(this[S$1._ensurePosition](position));
        }, T$0.GeopositionTovoid()), dart.fn(error => {
          if (error == null) dart.nullFailed(I[147], 16930, 11, "error");
          controller.addError(error);
        }, T$0.PositionErrorTovoid()), options);
      }, T$.VoidTovoid());
      return controller.stream;
    }
    [S$1._ensurePosition](domPosition) {
      try {
        if (html$.Geoposition.is(domPosition)) {
          return domPosition;
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return new html$._GeopositionWrapper.new(domPosition);
    }
    [S$1._clearWatch](...args) {
      return this.clearWatch.apply(this, args);
    }
    [S$1._getCurrentPosition](successCallback, errorCallback = null, options = null) {
      if (successCallback == null) dart.nullFailed(I[147], 16956, 46, "successCallback");
      if (options != null) {
        let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
        let options_2 = html_common.convertDartToNative_Dictionary(options);
        this[S$1._getCurrentPosition_1](successCallback_1, errorCallback, options_2);
        return;
      }
      if (errorCallback != null) {
        let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
        this[S$1._getCurrentPosition_2](successCallback_1, errorCallback);
        return;
      }
      let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
      this[S$1._getCurrentPosition_3](successCallback_1);
      return;
    }
    [S$1._getCurrentPosition_1](...args) {
      return this.getCurrentPosition.apply(this, args);
    }
    [S$1._getCurrentPosition_2](...args) {
      return this.getCurrentPosition.apply(this, args);
    }
    [S$1._getCurrentPosition_3](...args) {
      return this.getCurrentPosition.apply(this, args);
    }
    [S$1._watchPosition](successCallback, errorCallback = null, options = null) {
      if (successCallback == null) dart.nullFailed(I[147], 16983, 40, "successCallback");
      if (options != null) {
        let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
        let options_2 = html_common.convertDartToNative_Dictionary(options);
        return this[S$1._watchPosition_1](successCallback_1, errorCallback, options_2);
      }
      if (errorCallback != null) {
        let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
        return this[S$1._watchPosition_2](successCallback_1, errorCallback);
      }
      let successCallback_1 = _js_helper.convertDartClosureToJS(T$0.GeopositionTovoid(), successCallback, 1);
      return this[S$1._watchPosition_3](successCallback_1);
    }
    [S$1._watchPosition_1](...args) {
      return this.watchPosition.apply(this, args);
    }
    [S$1._watchPosition_2](...args) {
      return this.watchPosition.apply(this, args);
    }
    [S$1._watchPosition_3](...args) {
      return this.watchPosition.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Geolocation);
  dart.addTypeCaches(html$.Geolocation);
  dart.setMethodSignature(html$.Geolocation, () => ({
    __proto__: dart.getMethods(html$.Geolocation.__proto__),
    [S$1.$getCurrentPosition]: dart.fnType(async.Future$(html$.Geoposition), [], {enableHighAccuracy: dart.nullable(core.bool), maximumAge: dart.nullable(core.Duration), timeout: dart.nullable(core.Duration)}, {}),
    [S$1.$watchPosition]: dart.fnType(async.Stream$(html$.Geoposition), [], {enableHighAccuracy: dart.nullable(core.bool), maximumAge: dart.nullable(core.Duration), timeout: dart.nullable(core.Duration)}, {}),
    [S$1._ensurePosition]: dart.fnType(html$.Geoposition, [dart.dynamic]),
    [S$1._clearWatch]: dart.fnType(dart.void, [core.int]),
    [S$1._getCurrentPosition]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.Geoposition])], [dart.nullable(dart.fnType(dart.void, [html$.PositionError])), dart.nullable(core.Map)]),
    [S$1._getCurrentPosition_1]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.PositionError])), dart.dynamic]),
    [S$1._getCurrentPosition_2]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.PositionError]))]),
    [S$1._getCurrentPosition_3]: dart.fnType(dart.void, [dart.dynamic]),
    [S$1._watchPosition]: dart.fnType(core.int, [dart.fnType(dart.void, [html$.Geoposition])], [dart.nullable(dart.fnType(dart.void, [html$.PositionError])), dart.nullable(core.Map)]),
    [S$1._watchPosition_1]: dart.fnType(core.int, [dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.PositionError])), dart.dynamic]),
    [S$1._watchPosition_2]: dart.fnType(core.int, [dart.dynamic, dart.nullable(dart.fnType(dart.void, [html$.PositionError]))]),
    [S$1._watchPosition_3]: dart.fnType(core.int, [dart.dynamic])
  }));
  dart.setLibraryUri(html$.Geolocation, I[148]);
  dart.registerExtension("Geolocation", html$.Geolocation);
  html$._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
    get coords() {
      return this[S$1._ptr].coords;
    }
    get timestamp() {
      return this[S$1._ptr].timestamp;
    }
  };
  (html$._GeopositionWrapper.new = function(_ptr) {
    this[S$1._ptr] = _ptr;
    ;
  }).prototype = html$._GeopositionWrapper.prototype;
  dart.addTypeTests(html$._GeopositionWrapper);
  dart.addTypeCaches(html$._GeopositionWrapper);
  html$._GeopositionWrapper[dart.implements] = () => [html$.Geoposition];
  dart.setGetterSignature(html$._GeopositionWrapper, () => ({
    __proto__: dart.getGetters(html$._GeopositionWrapper.__proto__),
    coords: html$.Coordinates,
    [S$.$coords]: html$.Coordinates,
    timestamp: core.int,
    [S$.$timestamp]: core.int
  }));
  dart.setLibraryUri(html$._GeopositionWrapper, I[148]);
  dart.setFieldSignature(html$._GeopositionWrapper, () => ({
    __proto__: dart.getFields(html$._GeopositionWrapper.__proto__),
    [S$1._ptr]: dart.fieldType(dart.dynamic)
  }));
  dart.defineExtensionAccessors(html$._GeopositionWrapper, ['coords', 'timestamp']);
  html$.Geoposition = class Geoposition extends _interceptors.Interceptor {
    get [S$.$coords]() {
      return this.coords;
    }
    get [S$.$timestamp]() {
      return this.timestamp;
    }
  };
  dart.addTypeTests(html$.Geoposition);
  dart.addTypeCaches(html$.Geoposition);
  dart.setGetterSignature(html$.Geoposition, () => ({
    __proto__: dart.getGetters(html$.Geoposition.__proto__),
    [S$.$coords]: dart.nullable(html$.Coordinates),
    [S$.$timestamp]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.Geoposition, I[148]);
  dart.registerExtension("Position", html$.Geoposition);
  html$.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
    get onAbort() {
      return html$.GlobalEventHandlers.abortEvent.forTarget(this);
    }
    get onBlur() {
      return html$.GlobalEventHandlers.blurEvent.forTarget(this);
    }
    get onCanPlay() {
      return html$.GlobalEventHandlers.canPlayEvent.forTarget(this);
    }
    get onCanPlayThrough() {
      return html$.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
    }
    get onChange() {
      return html$.GlobalEventHandlers.changeEvent.forTarget(this);
    }
    get onClick() {
      return html$.GlobalEventHandlers.clickEvent.forTarget(this);
    }
    get onContextMenu() {
      return html$.GlobalEventHandlers.contextMenuEvent.forTarget(this);
    }
    get onDoubleClick() {
      return html$.GlobalEventHandlers.doubleClickEvent.forTarget(this);
    }
    get onDrag() {
      return html$.GlobalEventHandlers.dragEvent.forTarget(this);
    }
    get onDragEnd() {
      return html$.GlobalEventHandlers.dragEndEvent.forTarget(this);
    }
    get onDragEnter() {
      return html$.GlobalEventHandlers.dragEnterEvent.forTarget(this);
    }
    get onDragLeave() {
      return html$.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
    }
    get onDragOver() {
      return html$.GlobalEventHandlers.dragOverEvent.forTarget(this);
    }
    get onDragStart() {
      return html$.GlobalEventHandlers.dragStartEvent.forTarget(this);
    }
    get onDrop() {
      return html$.GlobalEventHandlers.dropEvent.forTarget(this);
    }
    get onDurationChange() {
      return html$.GlobalEventHandlers.durationChangeEvent.forTarget(this);
    }
    get onEmptied() {
      return html$.GlobalEventHandlers.emptiedEvent.forTarget(this);
    }
    get onEnded() {
      return html$.GlobalEventHandlers.endedEvent.forTarget(this);
    }
    get onError() {
      return html$.GlobalEventHandlers.errorEvent.forTarget(this);
    }
    get onFocus() {
      return html$.GlobalEventHandlers.focusEvent.forTarget(this);
    }
    get onInput() {
      return html$.GlobalEventHandlers.inputEvent.forTarget(this);
    }
    get onInvalid() {
      return html$.GlobalEventHandlers.invalidEvent.forTarget(this);
    }
    get onKeyDown() {
      return html$.GlobalEventHandlers.keyDownEvent.forTarget(this);
    }
    get onKeyPress() {
      return html$.GlobalEventHandlers.keyPressEvent.forTarget(this);
    }
    get onKeyUp() {
      return html$.GlobalEventHandlers.keyUpEvent.forTarget(this);
    }
    get onLoad() {
      return html$.GlobalEventHandlers.loadEvent.forTarget(this);
    }
    get onLoadedData() {
      return html$.GlobalEventHandlers.loadedDataEvent.forTarget(this);
    }
    get onLoadedMetadata() {
      return html$.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
    }
    get onMouseDown() {
      return html$.GlobalEventHandlers.mouseDownEvent.forTarget(this);
    }
    get onMouseEnter() {
      return html$.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
    }
    get onMouseLeave() {
      return html$.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
    }
    get onMouseMove() {
      return html$.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
    }
    get onMouseOut() {
      return html$.GlobalEventHandlers.mouseOutEvent.forTarget(this);
    }
    get onMouseOver() {
      return html$.GlobalEventHandlers.mouseOverEvent.forTarget(this);
    }
    get onMouseUp() {
      return html$.GlobalEventHandlers.mouseUpEvent.forTarget(this);
    }
    get onMouseWheel() {
      return html$.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
    }
    get onPause() {
      return html$.GlobalEventHandlers.pauseEvent.forTarget(this);
    }
    get onPlay() {
      return html$.GlobalEventHandlers.playEvent.forTarget(this);
    }
    get onPlaying() {
      return html$.GlobalEventHandlers.playingEvent.forTarget(this);
    }
    get onRateChange() {
      return html$.GlobalEventHandlers.rateChangeEvent.forTarget(this);
    }
    get onReset() {
      return html$.GlobalEventHandlers.resetEvent.forTarget(this);
    }
    get onResize() {
      return html$.GlobalEventHandlers.resizeEvent.forTarget(this);
    }
    get onScroll() {
      return html$.GlobalEventHandlers.scrollEvent.forTarget(this);
    }
    get onSeeked() {
      return html$.GlobalEventHandlers.seekedEvent.forTarget(this);
    }
    get onSeeking() {
      return html$.GlobalEventHandlers.seekingEvent.forTarget(this);
    }
    get onSelect() {
      return html$.GlobalEventHandlers.selectEvent.forTarget(this);
    }
    get onStalled() {
      return html$.GlobalEventHandlers.stalledEvent.forTarget(this);
    }
    get onSubmit() {
      return html$.GlobalEventHandlers.submitEvent.forTarget(this);
    }
    get onSuspend() {
      return html$.GlobalEventHandlers.suspendEvent.forTarget(this);
    }
    get onTimeUpdate() {
      return html$.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
    }
    get onTouchCancel() {
      return html$.GlobalEventHandlers.touchCancelEvent.forTarget(this);
    }
    get onTouchEnd() {
      return html$.GlobalEventHandlers.touchEndEvent.forTarget(this);
    }
    get onTouchMove() {
      return html$.GlobalEventHandlers.touchMoveEvent.forTarget(this);
    }
    get onTouchStart() {
      return html$.GlobalEventHandlers.touchStartEvent.forTarget(this);
    }
    get onVolumeChange() {
      return html$.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
    }
    get onWaiting() {
      return html$.GlobalEventHandlers.waitingEvent.forTarget(this);
    }
    get onWheel() {
      return html$.GlobalEventHandlers.wheelEvent.forTarget(this);
    }
  };
  (html$.GlobalEventHandlers[dart.mixinNew] = function() {
  }).prototype = html$.GlobalEventHandlers.prototype;
  dart.addTypeTests(html$.GlobalEventHandlers);
  dart.addTypeCaches(html$.GlobalEventHandlers);
  html$.GlobalEventHandlers[dart.implements] = () => [html$.EventTarget];
  dart.setGetterSignature(html$.GlobalEventHandlers, () => ({
    __proto__: dart.getGetters(html$.GlobalEventHandlers.__proto__),
    onAbort: async.Stream$(html$.Event),
    [S.$onAbort]: async.Stream$(html$.Event),
    onBlur: async.Stream$(html$.Event),
    [S.$onBlur]: async.Stream$(html$.Event),
    onCanPlay: async.Stream$(html$.Event),
    [S.$onCanPlay]: async.Stream$(html$.Event),
    onCanPlayThrough: async.Stream$(html$.Event),
    [S.$onCanPlayThrough]: async.Stream$(html$.Event),
    onChange: async.Stream$(html$.Event),
    [S.$onChange]: async.Stream$(html$.Event),
    onClick: async.Stream$(html$.MouseEvent),
    [S.$onClick]: async.Stream$(html$.MouseEvent),
    onContextMenu: async.Stream$(html$.MouseEvent),
    [S.$onContextMenu]: async.Stream$(html$.MouseEvent),
    onDoubleClick: async.Stream$(html$.Event),
    [S.$onDoubleClick]: async.Stream$(html$.Event),
    onDrag: async.Stream$(html$.MouseEvent),
    [S.$onDrag]: async.Stream$(html$.MouseEvent),
    onDragEnd: async.Stream$(html$.MouseEvent),
    [S.$onDragEnd]: async.Stream$(html$.MouseEvent),
    onDragEnter: async.Stream$(html$.MouseEvent),
    [S.$onDragEnter]: async.Stream$(html$.MouseEvent),
    onDragLeave: async.Stream$(html$.MouseEvent),
    [S.$onDragLeave]: async.Stream$(html$.MouseEvent),
    onDragOver: async.Stream$(html$.MouseEvent),
    [S.$onDragOver]: async.Stream$(html$.MouseEvent),
    onDragStart: async.Stream$(html$.MouseEvent),
    [S.$onDragStart]: async.Stream$(html$.MouseEvent),
    onDrop: async.Stream$(html$.MouseEvent),
    [S.$onDrop]: async.Stream$(html$.MouseEvent),
    onDurationChange: async.Stream$(html$.Event),
    [S.$onDurationChange]: async.Stream$(html$.Event),
    onEmptied: async.Stream$(html$.Event),
    [S.$onEmptied]: async.Stream$(html$.Event),
    onEnded: async.Stream$(html$.Event),
    [S.$onEnded]: async.Stream$(html$.Event),
    onError: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    onFocus: async.Stream$(html$.Event),
    [S.$onFocus]: async.Stream$(html$.Event),
    onInput: async.Stream$(html$.Event),
    [S.$onInput]: async.Stream$(html$.Event),
    onInvalid: async.Stream$(html$.Event),
    [S.$onInvalid]: async.Stream$(html$.Event),
    onKeyDown: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyDown]: async.Stream$(html$.KeyboardEvent),
    onKeyPress: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyPress]: async.Stream$(html$.KeyboardEvent),
    onKeyUp: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyUp]: async.Stream$(html$.KeyboardEvent),
    onLoad: async.Stream$(html$.Event),
    [S.$onLoad]: async.Stream$(html$.Event),
    onLoadedData: async.Stream$(html$.Event),
    [S.$onLoadedData]: async.Stream$(html$.Event),
    onLoadedMetadata: async.Stream$(html$.Event),
    [S.$onLoadedMetadata]: async.Stream$(html$.Event),
    onMouseDown: async.Stream$(html$.MouseEvent),
    [S.$onMouseDown]: async.Stream$(html$.MouseEvent),
    onMouseEnter: async.Stream$(html$.MouseEvent),
    [S.$onMouseEnter]: async.Stream$(html$.MouseEvent),
    onMouseLeave: async.Stream$(html$.MouseEvent),
    [S.$onMouseLeave]: async.Stream$(html$.MouseEvent),
    onMouseMove: async.Stream$(html$.MouseEvent),
    [S.$onMouseMove]: async.Stream$(html$.MouseEvent),
    onMouseOut: async.Stream$(html$.MouseEvent),
    [S.$onMouseOut]: async.Stream$(html$.MouseEvent),
    onMouseOver: async.Stream$(html$.MouseEvent),
    [S.$onMouseOver]: async.Stream$(html$.MouseEvent),
    onMouseUp: async.Stream$(html$.MouseEvent),
    [S.$onMouseUp]: async.Stream$(html$.MouseEvent),
    onMouseWheel: async.Stream$(html$.WheelEvent),
    [S.$onMouseWheel]: async.Stream$(html$.WheelEvent),
    onPause: async.Stream$(html$.Event),
    [S.$onPause]: async.Stream$(html$.Event),
    onPlay: async.Stream$(html$.Event),
    [S.$onPlay]: async.Stream$(html$.Event),
    onPlaying: async.Stream$(html$.Event),
    [S.$onPlaying]: async.Stream$(html$.Event),
    onRateChange: async.Stream$(html$.Event),
    [S.$onRateChange]: async.Stream$(html$.Event),
    onReset: async.Stream$(html$.Event),
    [S.$onReset]: async.Stream$(html$.Event),
    onResize: async.Stream$(html$.Event),
    [S.$onResize]: async.Stream$(html$.Event),
    onScroll: async.Stream$(html$.Event),
    [S.$onScroll]: async.Stream$(html$.Event),
    onSeeked: async.Stream$(html$.Event),
    [S.$onSeeked]: async.Stream$(html$.Event),
    onSeeking: async.Stream$(html$.Event),
    [S.$onSeeking]: async.Stream$(html$.Event),
    onSelect: async.Stream$(html$.Event),
    [S.$onSelect]: async.Stream$(html$.Event),
    onStalled: async.Stream$(html$.Event),
    [S.$onStalled]: async.Stream$(html$.Event),
    onSubmit: async.Stream$(html$.Event),
    [S.$onSubmit]: async.Stream$(html$.Event),
    onSuspend: async.Stream$(html$.Event),
    [S$.$onSuspend]: async.Stream$(html$.Event),
    onTimeUpdate: async.Stream$(html$.Event),
    [S$.$onTimeUpdate]: async.Stream$(html$.Event),
    onTouchCancel: async.Stream$(html$.TouchEvent),
    [S$.$onTouchCancel]: async.Stream$(html$.TouchEvent),
    onTouchEnd: async.Stream$(html$.TouchEvent),
    [S$.$onTouchEnd]: async.Stream$(html$.TouchEvent),
    onTouchMove: async.Stream$(html$.TouchEvent),
    [S$.$onTouchMove]: async.Stream$(html$.TouchEvent),
    onTouchStart: async.Stream$(html$.TouchEvent),
    [S$.$onTouchStart]: async.Stream$(html$.TouchEvent),
    onVolumeChange: async.Stream$(html$.Event),
    [S$.$onVolumeChange]: async.Stream$(html$.Event),
    onWaiting: async.Stream$(html$.Event),
    [S$.$onWaiting]: async.Stream$(html$.Event),
    onWheel: async.Stream$(html$.WheelEvent),
    [S$.$onWheel]: async.Stream$(html$.WheelEvent)
  }));
  dart.setLibraryUri(html$.GlobalEventHandlers, I[148]);
  dart.defineExtensionAccessors(html$.GlobalEventHandlers, [
    'onAbort',
    'onBlur',
    'onCanPlay',
    'onCanPlayThrough',
    'onChange',
    'onClick',
    'onContextMenu',
    'onDoubleClick',
    'onDrag',
    'onDragEnd',
    'onDragEnter',
    'onDragLeave',
    'onDragOver',
    'onDragStart',
    'onDrop',
    'onDurationChange',
    'onEmptied',
    'onEnded',
    'onError',
    'onFocus',
    'onInput',
    'onInvalid',
    'onKeyDown',
    'onKeyPress',
    'onKeyUp',
    'onLoad',
    'onLoadedData',
    'onLoadedMetadata',
    'onMouseDown',
    'onMouseEnter',
    'onMouseLeave',
    'onMouseMove',
    'onMouseOut',
    'onMouseOver',
    'onMouseUp',
    'onMouseWheel',
    'onPause',
    'onPlay',
    'onPlaying',
    'onRateChange',
    'onReset',
    'onResize',
    'onScroll',
    'onSeeked',
    'onSeeking',
    'onSelect',
    'onStalled',
    'onSubmit',
    'onSuspend',
    'onTimeUpdate',
    'onTouchCancel',
    'onTouchEnd',
    'onTouchMove',
    'onTouchStart',
    'onVolumeChange',
    'onWaiting',
    'onWheel'
  ]);
  dart.defineLazy(html$.GlobalEventHandlers, {
    /*html$.GlobalEventHandlers.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*html$.GlobalEventHandlers.blurEvent*/get blurEvent() {
      return C[233] || CT.C233;
    },
    /*html$.GlobalEventHandlers.canPlayEvent*/get canPlayEvent() {
      return C[234] || CT.C234;
    },
    /*html$.GlobalEventHandlers.canPlayThroughEvent*/get canPlayThroughEvent() {
      return C[235] || CT.C235;
    },
    /*html$.GlobalEventHandlers.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    },
    /*html$.GlobalEventHandlers.clickEvent*/get clickEvent() {
      return C[237] || CT.C237;
    },
    /*html$.GlobalEventHandlers.contextMenuEvent*/get contextMenuEvent() {
      return C[238] || CT.C238;
    },
    /*html$.GlobalEventHandlers.doubleClickEvent*/get doubleClickEvent() {
      return C[241] || CT.C241;
    },
    /*html$.GlobalEventHandlers.dragEvent*/get dragEvent() {
      return C[242] || CT.C242;
    },
    /*html$.GlobalEventHandlers.dragEndEvent*/get dragEndEvent() {
      return C[243] || CT.C243;
    },
    /*html$.GlobalEventHandlers.dragEnterEvent*/get dragEnterEvent() {
      return C[244] || CT.C244;
    },
    /*html$.GlobalEventHandlers.dragLeaveEvent*/get dragLeaveEvent() {
      return C[245] || CT.C245;
    },
    /*html$.GlobalEventHandlers.dragOverEvent*/get dragOverEvent() {
      return C[246] || CT.C246;
    },
    /*html$.GlobalEventHandlers.dragStartEvent*/get dragStartEvent() {
      return C[247] || CT.C247;
    },
    /*html$.GlobalEventHandlers.dropEvent*/get dropEvent() {
      return C[248] || CT.C248;
    },
    /*html$.GlobalEventHandlers.durationChangeEvent*/get durationChangeEvent() {
      return C[249] || CT.C249;
    },
    /*html$.GlobalEventHandlers.emptiedEvent*/get emptiedEvent() {
      return C[250] || CT.C250;
    },
    /*html$.GlobalEventHandlers.endedEvent*/get endedEvent() {
      return C[251] || CT.C251;
    },
    /*html$.GlobalEventHandlers.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.GlobalEventHandlers.focusEvent*/get focusEvent() {
      return C[252] || CT.C252;
    },
    /*html$.GlobalEventHandlers.inputEvent*/get inputEvent() {
      return C[253] || CT.C253;
    },
    /*html$.GlobalEventHandlers.invalidEvent*/get invalidEvent() {
      return C[254] || CT.C254;
    },
    /*html$.GlobalEventHandlers.keyDownEvent*/get keyDownEvent() {
      return C[255] || CT.C255;
    },
    /*html$.GlobalEventHandlers.keyPressEvent*/get keyPressEvent() {
      return C[256] || CT.C256;
    },
    /*html$.GlobalEventHandlers.keyUpEvent*/get keyUpEvent() {
      return C[257] || CT.C257;
    },
    /*html$.GlobalEventHandlers.loadEvent*/get loadEvent() {
      return C[258] || CT.C258;
    },
    /*html$.GlobalEventHandlers.loadedDataEvent*/get loadedDataEvent() {
      return C[259] || CT.C259;
    },
    /*html$.GlobalEventHandlers.loadedMetadataEvent*/get loadedMetadataEvent() {
      return C[260] || CT.C260;
    },
    /*html$.GlobalEventHandlers.mouseDownEvent*/get mouseDownEvent() {
      return C[261] || CT.C261;
    },
    /*html$.GlobalEventHandlers.mouseEnterEvent*/get mouseEnterEvent() {
      return C[262] || CT.C262;
    },
    /*html$.GlobalEventHandlers.mouseLeaveEvent*/get mouseLeaveEvent() {
      return C[263] || CT.C263;
    },
    /*html$.GlobalEventHandlers.mouseMoveEvent*/get mouseMoveEvent() {
      return C[264] || CT.C264;
    },
    /*html$.GlobalEventHandlers.mouseOutEvent*/get mouseOutEvent() {
      return C[265] || CT.C265;
    },
    /*html$.GlobalEventHandlers.mouseOverEvent*/get mouseOverEvent() {
      return C[266] || CT.C266;
    },
    /*html$.GlobalEventHandlers.mouseUpEvent*/get mouseUpEvent() {
      return C[267] || CT.C267;
    },
    /*html$.GlobalEventHandlers.mouseWheelEvent*/get mouseWheelEvent() {
      return C[342] || CT.C342;
    },
    /*html$.GlobalEventHandlers.pauseEvent*/get pauseEvent() {
      return C[269] || CT.C269;
    },
    /*html$.GlobalEventHandlers.playEvent*/get playEvent() {
      return C[270] || CT.C270;
    },
    /*html$.GlobalEventHandlers.playingEvent*/get playingEvent() {
      return C[271] || CT.C271;
    },
    /*html$.GlobalEventHandlers.rateChangeEvent*/get rateChangeEvent() {
      return C[272] || CT.C272;
    },
    /*html$.GlobalEventHandlers.resetEvent*/get resetEvent() {
      return C[273] || CT.C273;
    },
    /*html$.GlobalEventHandlers.resizeEvent*/get resizeEvent() {
      return C[274] || CT.C274;
    },
    /*html$.GlobalEventHandlers.scrollEvent*/get scrollEvent() {
      return C[275] || CT.C275;
    },
    /*html$.GlobalEventHandlers.seekedEvent*/get seekedEvent() {
      return C[277] || CT.C277;
    },
    /*html$.GlobalEventHandlers.seekingEvent*/get seekingEvent() {
      return C[278] || CT.C278;
    },
    /*html$.GlobalEventHandlers.selectEvent*/get selectEvent() {
      return C[279] || CT.C279;
    },
    /*html$.GlobalEventHandlers.stalledEvent*/get stalledEvent() {
      return C[281] || CT.C281;
    },
    /*html$.GlobalEventHandlers.submitEvent*/get submitEvent() {
      return C[282] || CT.C282;
    },
    /*html$.GlobalEventHandlers.suspendEvent*/get suspendEvent() {
      return C[283] || CT.C283;
    },
    /*html$.GlobalEventHandlers.timeUpdateEvent*/get timeUpdateEvent() {
      return C[284] || CT.C284;
    },
    /*html$.GlobalEventHandlers.touchCancelEvent*/get touchCancelEvent() {
      return C[285] || CT.C285;
    },
    /*html$.GlobalEventHandlers.touchEndEvent*/get touchEndEvent() {
      return C[286] || CT.C286;
    },
    /*html$.GlobalEventHandlers.touchMoveEvent*/get touchMoveEvent() {
      return C[289] || CT.C289;
    },
    /*html$.GlobalEventHandlers.touchStartEvent*/get touchStartEvent() {
      return C[290] || CT.C290;
    },
    /*html$.GlobalEventHandlers.volumeChangeEvent*/get volumeChangeEvent() {
      return C[291] || CT.C291;
    },
    /*html$.GlobalEventHandlers.waitingEvent*/get waitingEvent() {
      return C[292] || CT.C292;
    },
    /*html$.GlobalEventHandlers.wheelEvent*/get wheelEvent() {
      return C[295] || CT.C295;
    }
  }, false);
  html$.Gyroscope = class Gyroscope$ extends html$.Sensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.Gyroscope._create_1(sensorOptions_1);
      }
      return html$.Gyroscope._create_2();
    }
    static _create_1(sensorOptions) {
      return new Gyroscope(sensorOptions);
    }
    static _create_2() {
      return new Gyroscope();
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  dart.addTypeTests(html$.Gyroscope);
  dart.addTypeCaches(html$.Gyroscope);
  dart.setGetterSignature(html$.Gyroscope, () => ({
    __proto__: dart.getGetters(html$.Gyroscope.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.Gyroscope, I[148]);
  dart.registerExtension("Gyroscope", html$.Gyroscope);
  html$.HRElement = class HRElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("hr");
    }
    get [S$0.$color]() {
      return this.color;
    }
    set [S$0.$color](value) {
      this.color = value;
    }
  };
  (html$.HRElement.created = function() {
    html$.HRElement.__proto__.created.call(this);
    ;
  }).prototype = html$.HRElement.prototype;
  dart.addTypeTests(html$.HRElement);
  dart.addTypeCaches(html$.HRElement);
  dart.setGetterSignature(html$.HRElement, () => ({
    __proto__: dart.getGetters(html$.HRElement.__proto__),
    [S$0.$color]: core.String
  }));
  dart.setSetterSignature(html$.HRElement, () => ({
    __proto__: dart.getSetters(html$.HRElement.__proto__),
    [S$0.$color]: core.String
  }));
  dart.setLibraryUri(html$.HRElement, I[148]);
  dart.registerExtension("HTMLHRElement", html$.HRElement);
  html$.HashChangeEvent = class HashChangeEvent$ extends html$.Event {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 17412, 34, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 17413, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 17414, 12, "cancelable");
      let oldUrl = opts && 'oldUrl' in opts ? opts.oldUrl : null;
      let newUrl = opts && 'newUrl' in opts ? opts.newUrl : null;
      let options = new (T$.IdentityMapOfString$ObjectN()).from(["canBubble", canBubble, "cancelable", cancelable, "oldURL", oldUrl, "newURL", newUrl]);
      return new HashChangeEvent(type, html_common.convertDartToNative_Dictionary(options));
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 17427, 36, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.HashChangeEvent._create_1(type, eventInitDict_1);
      }
      return html$.HashChangeEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new HashChangeEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new HashChangeEvent(type);
    }
    static get supported() {
      return html_common.Device.isEventTypeSupported("HashChangeEvent");
    }
    get [S$1.$newUrl]() {
      return this.newURL;
    }
    get [S$1.$oldUrl]() {
      return this.oldURL;
    }
  };
  dart.addTypeTests(html$.HashChangeEvent);
  dart.addTypeCaches(html$.HashChangeEvent);
  dart.setGetterSignature(html$.HashChangeEvent, () => ({
    __proto__: dart.getGetters(html$.HashChangeEvent.__proto__),
    [S$1.$newUrl]: dart.nullable(core.String),
    [S$1.$oldUrl]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.HashChangeEvent, I[148]);
  dart.registerExtension("HashChangeEvent", html$.HashChangeEvent);
  html$.HeadElement = class HeadElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("head");
    }
  };
  (html$.HeadElement.created = function() {
    html$.HeadElement.__proto__.created.call(this);
    ;
  }).prototype = html$.HeadElement.prototype;
  dart.addTypeTests(html$.HeadElement);
  dart.addTypeCaches(html$.HeadElement);
  dart.setLibraryUri(html$.HeadElement, I[148]);
  dart.registerExtension("HTMLHeadElement", html$.HeadElement);
  html$.Headers = class Headers$ extends _interceptors.Interceptor {
    static new(init = null) {
      if (init != null) {
        return html$.Headers._create_1(init);
      }
      return html$.Headers._create_2();
    }
    static _create_1(init) {
      return new Headers(init);
    }
    static _create_2() {
      return new Headers();
    }
  };
  dart.addTypeTests(html$.Headers);
  dart.addTypeCaches(html$.Headers);
  dart.setLibraryUri(html$.Headers, I[148]);
  dart.registerExtension("Headers", html$.Headers);
  html$.HeadingElement = class HeadingElement extends html$.HtmlElement {
    static h1() {
      return html$.document.createElement("h1");
    }
    static h2() {
      return html$.document.createElement("h2");
    }
    static h3() {
      return html$.document.createElement("h3");
    }
    static h4() {
      return html$.document.createElement("h4");
    }
    static h5() {
      return html$.document.createElement("h5");
    }
    static h6() {
      return html$.document.createElement("h6");
    }
  };
  (html$.HeadingElement.created = function() {
    html$.HeadingElement.__proto__.created.call(this);
    ;
  }).prototype = html$.HeadingElement.prototype;
  dart.addTypeTests(html$.HeadingElement);
  dart.addTypeCaches(html$.HeadingElement);
  dart.setLibraryUri(html$.HeadingElement, I[148]);
  dart.registerExtension("HTMLHeadingElement", html$.HeadingElement);
  html$.History = class History extends _interceptors.Interceptor {
    static get supportsState() {
      return !!window.history.pushState;
    }
    get [$length]() {
      return this.length;
    }
    get [S$1.$scrollRestoration]() {
      return this.scrollRestoration;
    }
    set [S$1.$scrollRestoration](value) {
      this.scrollRestoration = value;
    }
    get [S$.$state]() {
      return html_common.convertNativeToDart_SerializedScriptValue(this[S$1._get_state]);
    }
    get [S$1._get_state]() {
      return this.state;
    }
    [S$1.$back](...args) {
      return this.back.apply(this, args);
    }
    [S$1.$forward](...args) {
      return this.forward.apply(this, args);
    }
    [S$1.$go](...args) {
      return this.go.apply(this, args);
    }
    [S$1.$pushState](data, title, url) {
      if (title == null) dart.nullFailed(I[147], 17588, 57, "title");
      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
      this[S$1._pushState_1](data_1, title, url);
      return;
    }
    [S$1._pushState_1](...args) {
      return this.pushState.apply(this, args);
    }
    [S$1.$replaceState](data, title, url) {
      if (title == null) dart.nullFailed(I[147], 17605, 60, "title");
      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
      this[S$1._replaceState_1](data_1, title, url);
      return;
    }
    [S$1._replaceState_1](...args) {
      return this.replaceState.apply(this, args);
    }
  };
  dart.addTypeTests(html$.History);
  dart.addTypeCaches(html$.History);
  html$.History[dart.implements] = () => [html$.HistoryBase];
  dart.setMethodSignature(html$.History, () => ({
    __proto__: dart.getMethods(html$.History.__proto__),
    [S$1.$back]: dart.fnType(dart.void, []),
    [S$1.$forward]: dart.fnType(dart.void, []),
    [S$1.$go]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$1.$pushState]: dart.fnType(dart.void, [dart.dynamic, core.String, dart.nullable(core.String)]),
    [S$1._pushState_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$1.$replaceState]: dart.fnType(dart.void, [dart.dynamic, core.String, dart.nullable(core.String)]),
    [S$1._replaceState_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])
  }));
  dart.setGetterSignature(html$.History, () => ({
    __proto__: dart.getGetters(html$.History.__proto__),
    [$length]: core.int,
    [S$1.$scrollRestoration]: dart.nullable(core.String),
    [S$.$state]: dart.dynamic,
    [S$1._get_state]: dart.dynamic
  }));
  dart.setSetterSignature(html$.History, () => ({
    __proto__: dart.getSetters(html$.History.__proto__),
    [S$1.$scrollRestoration]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.History, I[148]);
  dart.registerExtension("History", html$.History);
  const Interceptor_ListMixin$36$1 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$1.new = function() {
    Interceptor_ListMixin$36$1.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$1.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$1, collection.ListMixin$(html$.Node));
  const Interceptor_ImmutableListMixin$36$1 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$1 {};
  (Interceptor_ImmutableListMixin$36$1.new = function() {
    Interceptor_ImmutableListMixin$36$1.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$1.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$1, html$.ImmutableListMixin$(html$.Node));
  html$.HtmlCollection = class HtmlCollection extends Interceptor_ImmutableListMixin$36$1 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 17633, 24, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 17639, 25, "index");
      html$.Node.as(value);
      if (value == null) dart.nullFailed(I[147], 17639, 37, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 17645, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 17673, 22, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
  };
  html$.HtmlCollection.prototype[dart.isList] = true;
  dart.addTypeTests(html$.HtmlCollection);
  dart.addTypeCaches(html$.HtmlCollection);
  html$.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
  dart.setMethodSignature(html$.HtmlCollection, () => ({
    __proto__: dart.getMethods(html$.HtmlCollection.__proto__),
    [$_get]: dart.fnType(html$.Node, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.Node), [dart.nullable(core.int)]),
    [S$1.$namedItem]: dart.fnType(dart.nullable(core.Object), [core.String])
  }));
  dart.setGetterSignature(html$.HtmlCollection, () => ({
    __proto__: dart.getGetters(html$.HtmlCollection.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.HtmlCollection, () => ({
    __proto__: dart.getSetters(html$.HtmlCollection.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.HtmlCollection, I[148]);
  dart.registerExtension("HTMLCollection", html$.HtmlCollection);
  html$.HtmlDocument = class HtmlDocument extends html$.Document {
    get [S$1.$body]() {
      return this.body;
    }
    set [S$1.$body](value) {
      this.body = value;
    }
    [S$1.$caretRangeFromPoint](x, y) {
      return this[S$1._caretRangeFromPoint](x, y);
    }
    [S$1.$elementFromPoint](x, y) {
      if (x == null) dart.nullFailed(I[147], 17702, 33, "x");
      if (y == null) dart.nullFailed(I[147], 17702, 40, "y");
      return this[S$1._elementFromPoint](x, y);
    }
    get [S.$head]() {
      return this[S$0._head$1];
    }
    get [S$1.$lastModified]() {
      return this[S$0._lastModified];
    }
    get [S$1.$preferredStylesheetSet]() {
      return this[S$0._preferredStylesheetSet];
    }
    get [S$1.$referrer]() {
      return this[S$1._referrer];
    }
    get [S$1.$selectedStylesheetSet]() {
      return this[S$1._selectedStylesheetSet];
    }
    set [S$1.$selectedStylesheetSet](value) {
      this[S$1._selectedStylesheetSet] = value;
    }
    get [S$1.$styleSheets]() {
      return this[S$1._styleSheets];
    }
    get [S.$title]() {
      return this[S$1._title];
    }
    set [S.$title](value) {
      if (value == null) dart.nullFailed(I[147], 17723, 20, "value");
      this[S$1._title] = value;
    }
    [S$1.$exitFullscreen]() {
      this[S$1._webkitExitFullscreen]();
    }
    [S$1.$registerElement2](tag, options = null) {
      if (tag == null) dart.nullFailed(I[147], 17786, 36, "tag");
      return html$._registerCustomElement(window, this, tag, options);
    }
    [S$1.$register](tag, customElementClass, opts) {
      if (tag == null) dart.nullFailed(I[147], 17792, 24, "tag");
      if (customElementClass == null) dart.nullFailed(I[147], 17792, 34, "customElementClass");
      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
      return this[S$1.$registerElement](tag, customElementClass, {extendsTag: extendsTag});
    }
    static _determineVisibilityChangeEventType(e) {
      if (e == null) dart.nullFailed(I[147], 17809, 65, "e");
      if (typeof e.hidden !== "undefined") {
        return "visibilitychange";
      } else if (typeof e.mozHidden !== "undefined") {
        return "mozvisibilitychange";
      } else if (typeof e.msHidden !== "undefined") {
        return "msvisibilitychange";
      } else if (typeof e.webkitHidden !== "undefined") {
        return "webkitvisibilitychange";
      }
      return "visibilitychange";
    }
    get [S$1.$onVisibilityChange]() {
      return html$.HtmlDocument.visibilityChangeEvent.forTarget(this);
    }
    [S$1.$createElementUpgrader](type, opts) {
      if (type == null) dart.nullFailed(I[147], 17836, 46, "type");
      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
      return new html$._JSElementUpgrader.new(this, type, extendsTag);
    }
  };
  dart.addTypeTests(html$.HtmlDocument);
  dart.addTypeCaches(html$.HtmlDocument);
  dart.setMethodSignature(html$.HtmlDocument, () => ({
    __proto__: dart.getMethods(html$.HtmlDocument.__proto__),
    [S$1.$caretRangeFromPoint]: dart.fnType(html$.Range, [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$1.$elementFromPoint]: dart.fnType(dart.nullable(html$.Element), [core.int, core.int]),
    [S$1.$register]: dart.fnType(dart.void, [core.String, core.Type], {extendsTag: dart.nullable(core.String)}, {}),
    [S$1.$createElementUpgrader]: dart.fnType(html$.ElementUpgrader, [core.Type], {extendsTag: dart.nullable(core.String)}, {})
  }));
  dart.setGetterSignature(html$.HtmlDocument, () => ({
    __proto__: dart.getGetters(html$.HtmlDocument.__proto__),
    [S$1.$body]: dart.nullable(html$.BodyElement),
    [S.$head]: dart.nullable(html$.HeadElement),
    [S$1.$lastModified]: dart.nullable(core.String),
    [S$1.$preferredStylesheetSet]: dart.nullable(core.String),
    [S$1.$referrer]: core.String,
    [S$1.$selectedStylesheetSet]: dart.nullable(core.String),
    [S$1.$styleSheets]: dart.nullable(core.List$(html$.StyleSheet)),
    [S.$title]: core.String,
    [S$1.$onVisibilityChange]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.HtmlDocument, () => ({
    __proto__: dart.getSetters(html$.HtmlDocument.__proto__),
    [S$1.$body]: dart.nullable(html$.BodyElement),
    [S$1.$selectedStylesheetSet]: dart.nullable(core.String),
    [S.$title]: core.String
  }));
  dart.setLibraryUri(html$.HtmlDocument, I[148]);
  dart.defineLazy(html$.HtmlDocument, {
    /*html$.HtmlDocument.visibilityChangeEvent*/get visibilityChangeEvent() {
      return C[343] || CT.C343;
    }
  }, false);
  dart.registerExtension("HTMLDocument", html$.HtmlDocument);
  html$.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html$.HtmlCollection {
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
  };
  dart.addTypeTests(html$.HtmlFormControlsCollection);
  dart.addTypeCaches(html$.HtmlFormControlsCollection);
  dart.setLibraryUri(html$.HtmlFormControlsCollection, I[148]);
  dart.registerExtension("HTMLFormControlsCollection", html$.HtmlFormControlsCollection);
  html$.HtmlHtmlElement = class HtmlHtmlElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("html");
    }
  };
  (html$.HtmlHtmlElement.created = function() {
    html$.HtmlHtmlElement.__proto__.created.call(this);
    ;
  }).prototype = html$.HtmlHtmlElement.prototype;
  dart.addTypeTests(html$.HtmlHtmlElement);
  dart.addTypeCaches(html$.HtmlHtmlElement);
  dart.setLibraryUri(html$.HtmlHtmlElement, I[148]);
  dart.registerExtension("HTMLHtmlElement", html$.HtmlHtmlElement);
  html$.HtmlHyperlinkElementUtils = class HtmlHyperlinkElementUtils extends _interceptors.Interceptor {
    get [S$.$hash]() {
      return this.hash;
    }
    set [S$.$hash](value) {
      this.hash = value;
    }
    get [S$.$host]() {
      return this.host;
    }
    set [S$.$host](value) {
      this.host = value;
    }
    get [S$.$hostname]() {
      return this.hostname;
    }
    set [S$.$hostname](value) {
      this.hostname = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$.$password]() {
      return this.password;
    }
    set [S$.$password](value) {
      this.password = value;
    }
    get [S$.$pathname]() {
      return this.pathname;
    }
    set [S$.$pathname](value) {
      this.pathname = value;
    }
    get [S$.$port]() {
      return this.port;
    }
    set [S$.$port](value) {
      this.port = value;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    set [S$.$protocol](value) {
      this.protocol = value;
    }
    get [S$.$search]() {
      return this.search;
    }
    set [S$.$search](value) {
      this.search = value;
    }
    get [S$.$username]() {
      return this.username;
    }
    set [S$.$username](value) {
      this.username = value;
    }
  };
  dart.addTypeTests(html$.HtmlHyperlinkElementUtils);
  dart.addTypeCaches(html$.HtmlHyperlinkElementUtils);
  dart.setGetterSignature(html$.HtmlHyperlinkElementUtils, () => ({
    __proto__: dart.getGetters(html$.HtmlHyperlinkElementUtils.__proto__),
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.HtmlHyperlinkElementUtils, () => ({
    __proto__: dart.getSetters(html$.HtmlHyperlinkElementUtils.__proto__),
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.HtmlHyperlinkElementUtils, I[148]);
  dart.registerExtension("HTMLHyperlinkElementUtils", html$.HtmlHyperlinkElementUtils);
  html$.HtmlOptionsCollection = class HtmlOptionsCollection extends html$.HtmlCollection {
    [S$1._item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$.HtmlOptionsCollection);
  dart.addTypeCaches(html$.HtmlOptionsCollection);
  dart.setMethodSignature(html$.HtmlOptionsCollection, () => ({
    __proto__: dart.getMethods(html$.HtmlOptionsCollection.__proto__),
    [S$1._item]: dart.fnType(dart.nullable(html$.Element), [core.int])
  }));
  dart.setLibraryUri(html$.HtmlOptionsCollection, I[148]);
  dart.registerExtension("HTMLOptionsCollection", html$.HtmlOptionsCollection);
  html$.HttpRequestEventTarget = class HttpRequestEventTarget extends html$.EventTarget {
    get [S.$onAbort]() {
      return html$.HttpRequestEventTarget.abortEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.HttpRequestEventTarget.errorEvent.forTarget(this);
    }
    get [S.$onLoad]() {
      return html$.HttpRequestEventTarget.loadEvent.forTarget(this);
    }
    get [S$1.$onLoadEnd]() {
      return html$.HttpRequestEventTarget.loadEndEvent.forTarget(this);
    }
    get [S$1.$onLoadStart]() {
      return html$.HttpRequestEventTarget.loadStartEvent.forTarget(this);
    }
    get [S$.$onProgress]() {
      return html$.HttpRequestEventTarget.progressEvent.forTarget(this);
    }
    get [S$1.$onTimeout]() {
      return html$.HttpRequestEventTarget.timeoutEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.HttpRequestEventTarget);
  dart.addTypeCaches(html$.HttpRequestEventTarget);
  dart.setGetterSignature(html$.HttpRequestEventTarget, () => ({
    __proto__: dart.getGetters(html$.HttpRequestEventTarget.__proto__),
    [S.$onAbort]: async.Stream$(html$.ProgressEvent),
    [S.$onError]: async.Stream$(html$.ProgressEvent),
    [S.$onLoad]: async.Stream$(html$.ProgressEvent),
    [S$1.$onLoadEnd]: async.Stream$(html$.ProgressEvent),
    [S$1.$onLoadStart]: async.Stream$(html$.ProgressEvent),
    [S$.$onProgress]: async.Stream$(html$.ProgressEvent),
    [S$1.$onTimeout]: async.Stream$(html$.ProgressEvent)
  }));
  dart.setLibraryUri(html$.HttpRequestEventTarget, I[148]);
  dart.defineLazy(html$.HttpRequestEventTarget, {
    /*html$.HttpRequestEventTarget.abortEvent*/get abortEvent() {
      return C[331] || CT.C331;
    },
    /*html$.HttpRequestEventTarget.errorEvent*/get errorEvent() {
      return C[332] || CT.C332;
    },
    /*html$.HttpRequestEventTarget.loadEvent*/get loadEvent() {
      return C[333] || CT.C333;
    },
    /*html$.HttpRequestEventTarget.loadEndEvent*/get loadEndEvent() {
      return C[334] || CT.C334;
    },
    /*html$.HttpRequestEventTarget.loadStartEvent*/get loadStartEvent() {
      return C[335] || CT.C335;
    },
    /*html$.HttpRequestEventTarget.progressEvent*/get progressEvent() {
      return C[309] || CT.C309;
    },
    /*html$.HttpRequestEventTarget.timeoutEvent*/get timeoutEvent() {
      return C[345] || CT.C345;
    }
  }, false);
  dart.registerExtension("XMLHttpRequestEventTarget", html$.HttpRequestEventTarget);
  html$.HttpRequest = class HttpRequest extends html$.HttpRequestEventTarget {
    static getString(url, opts) {
      if (url == null) dart.nullFailed(I[147], 18008, 42, "url");
      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
      return html$.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String, dart.fn(xhr => {
        if (xhr == null) dart.nullFailed(I[147], 18012, 28, "xhr");
        return dart.nullCheck(xhr.responseText);
      }, T$0.HttpRequestToString()));
    }
    static postFormData(url, data, opts) {
      if (url == null) dart.nullFailed(I[147], 18040, 50, "url");
      if (data == null) dart.nullFailed(I[147], 18040, 75, "data");
      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
      let responseType = opts && 'responseType' in opts ? opts.responseType : null;
      let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
      let parts = [];
      data[$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[147], 18046, 19, "key");
        if (value == null) dart.nullFailed(I[147], 18046, 24, "value");
        parts[$add](dart.str(core.Uri.encodeQueryComponent(key)) + "=" + dart.str(core.Uri.encodeQueryComponent(value)));
      }, T$0.StringAndStringTovoid()));
      let formData = parts[$join]("&");
      if (requestHeaders == null) {
        requestHeaders = new (T$.IdentityMapOfString$String()).new();
      }
      requestHeaders[$putIfAbsent]("Content-Type", dart.fn(() => "application/x-www-form-urlencoded; charset=UTF-8", T$.VoidToString()));
      return html$.HttpRequest.request(url, {method: "POST", withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
    }
    static request(url, opts) {
      if (url == null) dart.nullFailed(I[147], 18121, 45, "url");
      let method = opts && 'method' in opts ? opts.method : null;
      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
      let responseType = opts && 'responseType' in opts ? opts.responseType : null;
      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
      let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
      let sendData = opts && 'sendData' in opts ? opts.sendData : null;
      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
      let completer = T$0.CompleterOfHttpRequest().new();
      let xhr = html$.HttpRequest.new();
      if (method == null) {
        method = "GET";
      }
      xhr.open(method, url, {async: true});
      if (withCredentials != null) {
        xhr.withCredentials = withCredentials;
      }
      if (responseType != null) {
        xhr.responseType = responseType;
      }
      if (mimeType != null) {
        xhr.overrideMimeType(mimeType);
      }
      if (requestHeaders != null) {
        requestHeaders[$forEach](dart.fn((header, value) => {
          if (header == null) dart.nullFailed(I[147], 18150, 31, "header");
          if (value == null) dart.nullFailed(I[147], 18150, 39, "value");
          xhr.setRequestHeader(header, value);
        }, T$0.StringAndStringTovoid()));
      }
      if (onProgress != null) {
        xhr[S$.$onProgress].listen(onProgress);
      }
      xhr[S.$onLoad].listen(dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 18159, 24, "e");
        let status = dart.nullCheck(xhr.status);
        let accepted = status >= 200 && status < 300;
        let fileUri = status === 0;
        let notModified = status === 304;
        let unknownRedirect = status > 307 && status < 400;
        if (accepted || fileUri || notModified || unknownRedirect) {
          completer.complete(xhr);
        } else {
          completer.completeError(e);
        }
      }, T$0.ProgressEventTovoid()));
      xhr[S.$onError].listen(dart.bind(completer, 'completeError'));
      if (sendData != null) {
        xhr.send(sendData);
      } else {
        xhr.send();
      }
      return completer.future;
    }
    static get supportsProgressEvent() {
      let xhr = html$.HttpRequest.new();
      return "onprogress" in xhr;
    }
    static get supportsCrossOrigin() {
      let xhr = html$.HttpRequest.new();
      return "withCredentials" in xhr;
    }
    static get supportsLoadEndEvent() {
      let xhr = html$.HttpRequest.new();
      return "onloadend" in xhr;
    }
    static get supportsOverrideMimeType() {
      let xhr = html$.HttpRequest.new();
      return "overrideMimeType" in xhr;
    }
    static requestCrossOrigin(url, opts) {
      if (url == null) dart.nullFailed(I[147], 18232, 51, "url");
      let method = opts && 'method' in opts ? opts.method : null;
      let sendData = opts && 'sendData' in opts ? opts.sendData : null;
      if (dart.test(html$.HttpRequest.supportsCrossOrigin)) {
        return html$.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String, dart.fn(xhr => {
          if (xhr == null) dart.nullFailed(I[147], 18235, 69, "xhr");
          return dart.nullCheck(xhr.responseText);
        }, T$0.HttpRequestToString()));
      }
      let completer = T$0.CompleterOfString().new();
      if (method == null) {
        method = "GET";
      }
      let xhr = new XDomainRequest();
      xhr.open(method, url);
      xhr.onload = _js_helper.convertDartClosureToJS(T$.dynamicToNull(), dart.fn(e => {
        let response = xhr.responseText;
        completer.complete(T$0.FutureOrNOfString().as(response));
      }, T$.dynamicToNull()), 1);
      xhr.onerror = _js_helper.convertDartClosureToJS(T$.dynamicToNull(), dart.fn(e => {
        completer.completeError(core.Object.as(e));
      }, T$.dynamicToNull()), 1);
      xhr.onprogress = {};
      xhr.ontimeout = {};
      xhr.timeout = Number.MAX_VALUE;
      if (sendData != null) {
        xhr.send(sendData);
      } else {
        xhr.send();
      }
      return completer.future;
    }
    get [S$1.$responseHeaders]() {
      let headers = new (T$.IdentityMapOfString$String()).new();
      let headersString = this.getAllResponseHeaders();
      if (headersString == null) {
        return headers;
      }
      let headersList = headersString[$split]("\r\n");
      for (let header of headersList) {
        if (header[$isEmpty]) {
          continue;
        }
        let splitIdx = header[$indexOf](": ");
        if (splitIdx === -1) {
          continue;
        }
        let key = header[$substring](0, splitIdx)[$toLowerCase]();
        let value = header[$substring](splitIdx + 2);
        if (dart.test(headers[$containsKey](key))) {
          headers[$_set](key, dart.str(headers[$_get](key)) + ", " + value);
        } else {
          headers[$_set](key, value);
        }
      }
      return headers;
    }
    [S.$open](...args) {
      return this.open.apply(this, args);
    }
    static new() {
      return html$.HttpRequest._create_1();
    }
    static _create_1() {
      return new XMLHttpRequest();
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$.$response]() {
      return html$._convertNativeToDart_XHR_Response(this[S$1._get_response]);
    }
    get [S$1._get_response]() {
      return this.response;
    }
    get [S$1.$responseText]() {
      return this.responseText;
    }
    get [S$1.$responseType]() {
      return this.responseType;
    }
    set [S$1.$responseType](value) {
      this.responseType = value;
    }
    get [S$1.$responseUrl]() {
      return this.responseURL;
    }
    get [S$1.$responseXml]() {
      return this.responseXML;
    }
    get [S$.$status]() {
      return this.status;
    }
    get [S$1.$statusText]() {
      return this.statusText;
    }
    get [S$1.$timeout]() {
      return this.timeout;
    }
    set [S$1.$timeout](value) {
      this.timeout = value;
    }
    get [S$1.$upload]() {
      return this.upload;
    }
    get [S$1.$withCredentials]() {
      return this.withCredentials;
    }
    set [S$1.$withCredentials](value) {
      this.withCredentials = value;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$1.$getAllResponseHeaders](...args) {
      return this.getAllResponseHeaders.apply(this, args);
    }
    [S$1.$getResponseHeader](...args) {
      return this.getResponseHeader.apply(this, args);
    }
    [S$1.$overrideMimeType](...args) {
      return this.overrideMimeType.apply(this, args);
    }
    [S$1.$send](...args) {
      return this.send.apply(this, args);
    }
    [S$1.$setRequestHeader](...args) {
      return this.setRequestHeader.apply(this, args);
    }
    get [S$1.$onReadyStateChange]() {
      return html$.HttpRequest.readyStateChangeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.HttpRequest);
  dart.addTypeCaches(html$.HttpRequest);
  dart.setMethodSignature(html$.HttpRequest, () => ({
    __proto__: dart.getMethods(html$.HttpRequest.__proto__),
    [S.$open]: dart.fnType(dart.void, [core.String, core.String], {async: dart.nullable(core.bool), password: dart.nullable(core.String), user: dart.nullable(core.String)}, {}),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$1.$getAllResponseHeaders]: dart.fnType(core.String, []),
    [S$1.$getResponseHeader]: dart.fnType(dart.nullable(core.String), [core.String]),
    [S$1.$overrideMimeType]: dart.fnType(dart.void, [core.String]),
    [S$1.$send]: dart.fnType(dart.void, [], [dart.dynamic]),
    [S$1.$setRequestHeader]: dart.fnType(dart.void, [core.String, core.String])
  }));
  dart.setGetterSignature(html$.HttpRequest, () => ({
    __proto__: dart.getGetters(html$.HttpRequest.__proto__),
    [S$1.$responseHeaders]: core.Map$(core.String, core.String),
    [S.$readyState]: core.int,
    [S$.$response]: dart.dynamic,
    [S$1._get_response]: dart.dynamic,
    [S$1.$responseText]: dart.nullable(core.String),
    [S$1.$responseType]: core.String,
    [S$1.$responseUrl]: dart.nullable(core.String),
    [S$1.$responseXml]: dart.nullable(html$.Document),
    [S$.$status]: dart.nullable(core.int),
    [S$1.$statusText]: dart.nullable(core.String),
    [S$1.$timeout]: dart.nullable(core.int),
    [S$1.$upload]: html$.HttpRequestUpload,
    [S$1.$withCredentials]: dart.nullable(core.bool),
    [S$1.$onReadyStateChange]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.HttpRequest, () => ({
    __proto__: dart.getSetters(html$.HttpRequest.__proto__),
    [S$1.$responseType]: core.String,
    [S$1.$timeout]: dart.nullable(core.int),
    [S$1.$withCredentials]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.HttpRequest, I[148]);
  dart.defineLazy(html$.HttpRequest, {
    /*html$.HttpRequest.readyStateChangeEvent*/get readyStateChangeEvent() {
      return C[324] || CT.C324;
    },
    /*html$.HttpRequest.DONE*/get DONE() {
      return 4;
    },
    /*html$.HttpRequest.HEADERS_RECEIVED*/get HEADERS_RECEIVED() {
      return 2;
    },
    /*html$.HttpRequest.LOADING*/get LOADING() {
      return 3;
    },
    /*html$.HttpRequest.OPENED*/get OPENED() {
      return 1;
    },
    /*html$.HttpRequest.UNSENT*/get UNSENT() {
      return 0;
    }
  }, false);
  dart.registerExtension("XMLHttpRequest", html$.HttpRequest);
  html$.HttpRequestUpload = class HttpRequestUpload extends html$.HttpRequestEventTarget {};
  dart.addTypeTests(html$.HttpRequestUpload);
  dart.addTypeCaches(html$.HttpRequestUpload);
  dart.setLibraryUri(html$.HttpRequestUpload, I[148]);
  dart.registerExtension("XMLHttpRequestUpload", html$.HttpRequestUpload);
  html$.IFrameElement = class IFrameElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("iframe");
    }
    get [S$1.$allow]() {
      return this.allow;
    }
    set [S$1.$allow](value) {
      this.allow = value;
    }
    get [S$1.$allowFullscreen]() {
      return this.allowFullscreen;
    }
    set [S$1.$allowFullscreen](value) {
      this.allowFullscreen = value;
    }
    get [S$1.$allowPaymentRequest]() {
      return this.allowPaymentRequest;
    }
    set [S$1.$allowPaymentRequest](value) {
      this.allowPaymentRequest = value;
    }
    get [S$1.$contentWindow]() {
      return html$._convertNativeToDart_Window(this[S$1._get_contentWindow]);
    }
    get [S$1._get_contentWindow]() {
      return this.contentWindow;
    }
    get [S$1.$csp]() {
      return this.csp;
    }
    set [S$1.$csp](value) {
      this.csp = value;
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    set [S$.$referrerPolicy](value) {
      this.referrerPolicy = value;
    }
    get [S$1.$sandbox]() {
      return this.sandbox;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$1.$srcdoc]() {
      return this.srcdoc;
    }
    set [S$1.$srcdoc](value) {
      this.srcdoc = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
  };
  (html$.IFrameElement.created = function() {
    html$.IFrameElement.__proto__.created.call(this);
    ;
  }).prototype = html$.IFrameElement.prototype;
  dart.addTypeTests(html$.IFrameElement);
  dart.addTypeCaches(html$.IFrameElement);
  dart.setGetterSignature(html$.IFrameElement, () => ({
    __proto__: dart.getGetters(html$.IFrameElement.__proto__),
    [S$1.$allow]: dart.nullable(core.String),
    [S$1.$allowFullscreen]: dart.nullable(core.bool),
    [S$1.$allowPaymentRequest]: dart.nullable(core.bool),
    [S$1.$contentWindow]: dart.nullable(html$.WindowBase),
    [S$1._get_contentWindow]: dart.dynamic,
    [S$1.$csp]: dart.nullable(core.String),
    [$height]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$1.$sandbox]: dart.nullable(html$.DomTokenList),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$srcdoc]: dart.nullable(core.String),
    [$width]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.IFrameElement, () => ({
    __proto__: dart.getSetters(html$.IFrameElement.__proto__),
    [S$1.$allow]: dart.nullable(core.String),
    [S$1.$allowFullscreen]: dart.nullable(core.bool),
    [S$1.$allowPaymentRequest]: dart.nullable(core.bool),
    [S$1.$csp]: dart.nullable(core.String),
    [$height]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$srcdoc]: dart.nullable(core.String),
    [$width]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.IFrameElement, I[148]);
  dart.registerExtension("HTMLIFrameElement", html$.IFrameElement);
  html$.IdleDeadline = class IdleDeadline extends _interceptors.Interceptor {
    get [S$1.$didTimeout]() {
      return this.didTimeout;
    }
    [S$1.$timeRemaining](...args) {
      return this.timeRemaining.apply(this, args);
    }
  };
  dart.addTypeTests(html$.IdleDeadline);
  dart.addTypeCaches(html$.IdleDeadline);
  dart.setMethodSignature(html$.IdleDeadline, () => ({
    __proto__: dart.getMethods(html$.IdleDeadline.__proto__),
    [S$1.$timeRemaining]: dart.fnType(core.double, [])
  }));
  dart.setGetterSignature(html$.IdleDeadline, () => ({
    __proto__: dart.getGetters(html$.IdleDeadline.__proto__),
    [S$1.$didTimeout]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.IdleDeadline, I[148]);
  dart.registerExtension("IdleDeadline", html$.IdleDeadline);
  html$.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ImageBitmap);
  dart.addTypeCaches(html$.ImageBitmap);
  dart.setMethodSignature(html$.ImageBitmap, () => ({
    __proto__: dart.getMethods(html$.ImageBitmap.__proto__),
    [S.$close]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.ImageBitmap, () => ({
    __proto__: dart.getGetters(html$.ImageBitmap.__proto__),
    [$height]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.ImageBitmap, I[148]);
  dart.registerExtension("ImageBitmap", html$.ImageBitmap);
  html$.ImageBitmapRenderingContext = class ImageBitmapRenderingContext extends _interceptors.Interceptor {
    get [S$.$canvas]() {
      return this.canvas;
    }
    [S$1.$transferFromImageBitmap](...args) {
      return this.transferFromImageBitmap.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ImageBitmapRenderingContext);
  dart.addTypeCaches(html$.ImageBitmapRenderingContext);
  dart.setMethodSignature(html$.ImageBitmapRenderingContext, () => ({
    __proto__: dart.getMethods(html$.ImageBitmapRenderingContext.__proto__),
    [S$1.$transferFromImageBitmap]: dart.fnType(dart.void, [dart.nullable(html$.ImageBitmap)])
  }));
  dart.setGetterSignature(html$.ImageBitmapRenderingContext, () => ({
    __proto__: dart.getGetters(html$.ImageBitmapRenderingContext.__proto__),
    [S$.$canvas]: dart.nullable(html$.CanvasElement)
  }));
  dart.setLibraryUri(html$.ImageBitmapRenderingContext, I[148]);
  dart.registerExtension("ImageBitmapRenderingContext", html$.ImageBitmapRenderingContext);
  html$.ImageCapture = class ImageCapture$ extends _interceptors.Interceptor {
    static new(track) {
      if (track == null) dart.nullFailed(I[147], 18865, 41, "track");
      return html$.ImageCapture._create_1(track);
    }
    static _create_1(track) {
      return new ImageCapture(track);
    }
    get [S$1.$track]() {
      return this.track;
    }
    [S$1.$getPhotoCapabilities]() {
      return js_util.promiseToFuture(html$.PhotoCapabilities, this.getPhotoCapabilities());
    }
    [S$1.$getPhotoSettings]() {
      return html$.promiseToFutureAsMap(this.getPhotoSettings());
    }
    [S$1.$grabFrame]() {
      return js_util.promiseToFuture(html$.ImageBitmap, this.grabFrame());
    }
    [S$1.$setOptions](photoSettings) {
      if (photoSettings == null) dart.nullFailed(I[147], 18883, 25, "photoSettings");
      let photoSettings_dict = html_common.convertDartToNative_Dictionary(photoSettings);
      return js_util.promiseToFuture(dart.dynamic, this.setOptions(photoSettings_dict));
    }
    [S$1.$takePhoto](photoSettings = null) {
      let photoSettings_dict = null;
      if (photoSettings != null) {
        photoSettings_dict = html_common.convertDartToNative_Dictionary(photoSettings);
      }
      return js_util.promiseToFuture(html$.Blob, this.takePhoto(photoSettings_dict));
    }
  };
  dart.addTypeTests(html$.ImageCapture);
  dart.addTypeCaches(html$.ImageCapture);
  dart.setMethodSignature(html$.ImageCapture, () => ({
    __proto__: dart.getMethods(html$.ImageCapture.__proto__),
    [S$1.$getPhotoCapabilities]: dart.fnType(async.Future$(html$.PhotoCapabilities), []),
    [S$1.$getPhotoSettings]: dart.fnType(async.Future$(dart.nullable(core.Map$(core.String, dart.dynamic))), []),
    [S$1.$grabFrame]: dart.fnType(async.Future$(html$.ImageBitmap), []),
    [S$1.$setOptions]: dart.fnType(async.Future, [core.Map]),
    [S$1.$takePhoto]: dart.fnType(async.Future$(html$.Blob), [], [dart.nullable(core.Map)])
  }));
  dart.setGetterSignature(html$.ImageCapture, () => ({
    __proto__: dart.getGetters(html$.ImageCapture.__proto__),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack)
  }));
  dart.setLibraryUri(html$.ImageCapture, I[148]);
  dart.registerExtension("ImageCapture", html$.ImageCapture);
  html$.ImageData = class ImageData$ extends _interceptors.Interceptor {
    static new(data_OR_sw, sh_OR_sw, sh = null) {
      if (sh_OR_sw == null) dart.nullFailed(I[147], 18908, 37, "sh_OR_sw");
      if (core.int.is(sh_OR_sw) && core.int.is(data_OR_sw) && sh == null) {
        return html$.ImageData._create_1(data_OR_sw, sh_OR_sw);
      }
      if (core.int.is(sh_OR_sw) && typed_data.Uint8ClampedList.is(data_OR_sw) && sh == null) {
        return html$.ImageData._create_2(data_OR_sw, sh_OR_sw);
      }
      if (core.int.is(sh) && core.int.is(sh_OR_sw) && typed_data.Uint8ClampedList.is(data_OR_sw)) {
        return html$.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(data_OR_sw, sh_OR_sw) {
      return new ImageData(data_OR_sw, sh_OR_sw);
    }
    static _create_2(data_OR_sw, sh_OR_sw) {
      return new ImageData(data_OR_sw, sh_OR_sw);
    }
    static _create_3(data_OR_sw, sh_OR_sw, sh) {
      return new ImageData(data_OR_sw, sh_OR_sw, sh);
    }
    get [S$.$data]() {
      return this.data;
    }
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
  };
  dart.addTypeTests(html$.ImageData);
  dart.addTypeCaches(html$.ImageData);
  dart.setGetterSignature(html$.ImageData, () => ({
    __proto__: dart.getGetters(html$.ImageData.__proto__),
    [S$.$data]: typed_data.Uint8ClampedList,
    [$height]: core.int,
    [$width]: core.int
  }));
  dart.setLibraryUri(html$.ImageData, I[148]);
  dart.registerExtension("ImageData", html$.ImageData);
  html$.ImageElement = class ImageElement extends html$.HtmlElement {
    static new(opts) {
      let src = opts && 'src' in opts ? opts.src : null;
      let width = opts && 'width' in opts ? opts.width : null;
      let height = opts && 'height' in opts ? opts.height : null;
      let e = html$.document.createElement("img");
      if (src != null) e.src = src;
      if (width != null) e.width = width;
      if (height != null) e.height = height;
      return e;
    }
    get [S$.$alt]() {
      return this.alt;
    }
    set [S$.$alt](value) {
      this.alt = value;
    }
    get [S$1.$async]() {
      return this.async;
    }
    set [S$1.$async](value) {
      this.async = value;
    }
    get [S$1.$complete]() {
      return this.complete;
    }
    get [S$.$crossOrigin]() {
      return this.crossOrigin;
    }
    set [S$.$crossOrigin](value) {
      this.crossOrigin = value;
    }
    get [S$.$currentSrc]() {
      return this.currentSrc;
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [S$1.$isMap]() {
      return this.isMap;
    }
    set [S$1.$isMap](value) {
      this.isMap = value;
    }
    get [S$1.$naturalHeight]() {
      return this.naturalHeight;
    }
    get [S$1.$naturalWidth]() {
      return this.naturalWidth;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    set [S$.$referrerPolicy](value) {
      this.referrerPolicy = value;
    }
    get [S$1.$sizes]() {
      return this.sizes;
    }
    set [S$1.$sizes](value) {
      this.sizes = value;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$1.$srcset]() {
      return this.srcset;
    }
    set [S$1.$srcset](value) {
      this.srcset = value;
    }
    get [S$1.$useMap]() {
      return this.useMap;
    }
    set [S$1.$useMap](value) {
      this.useMap = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    [S$1.$decode]() {
      return js_util.promiseToFuture(dart.dynamic, this.decode());
    }
  };
  (html$.ImageElement.created = function() {
    html$.ImageElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ImageElement.prototype;
  dart.addTypeTests(html$.ImageElement);
  dart.addTypeCaches(html$.ImageElement);
  html$.ImageElement[dart.implements] = () => [html$.CanvasImageSource];
  dart.setMethodSignature(html$.ImageElement, () => ({
    __proto__: dart.getMethods(html$.ImageElement.__proto__),
    [S$1.$decode]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(html$.ImageElement, () => ({
    __proto__: dart.getGetters(html$.ImageElement.__proto__),
    [S$.$alt]: dart.nullable(core.String),
    [S$1.$async]: dart.nullable(core.String),
    [S$1.$complete]: dart.nullable(core.bool),
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$.$currentSrc]: dart.nullable(core.String),
    [$height]: dart.nullable(core.int),
    [S$1.$isMap]: dart.nullable(core.bool),
    [S$1.$naturalHeight]: core.int,
    [S$1.$naturalWidth]: core.int,
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$1.$sizes]: dart.nullable(core.String),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$srcset]: dart.nullable(core.String),
    [S$1.$useMap]: dart.nullable(core.String),
    [$width]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.ImageElement, () => ({
    __proto__: dart.getSetters(html$.ImageElement.__proto__),
    [S$.$alt]: dart.nullable(core.String),
    [S$1.$async]: dart.nullable(core.String),
    [S$.$crossOrigin]: dart.nullable(core.String),
    [$height]: dart.nullable(core.int),
    [S$1.$isMap]: dart.nullable(core.bool),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$1.$sizes]: dart.nullable(core.String),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$srcset]: dart.nullable(core.String),
    [S$1.$useMap]: dart.nullable(core.String),
    [$width]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.ImageElement, I[148]);
  dart.registerExtension("HTMLImageElement", html$.ImageElement);
  html$.InputDeviceCapabilities = class InputDeviceCapabilities$ extends _interceptors.Interceptor {
    static new(deviceInitDict = null) {
      if (deviceInitDict != null) {
        let deviceInitDict_1 = html_common.convertDartToNative_Dictionary(deviceInitDict);
        return html$.InputDeviceCapabilities._create_1(deviceInitDict_1);
      }
      return html$.InputDeviceCapabilities._create_2();
    }
    static _create_1(deviceInitDict) {
      return new InputDeviceCapabilities(deviceInitDict);
    }
    static _create_2() {
      return new InputDeviceCapabilities();
    }
    get [S$1.$firesTouchEvents]() {
      return this.firesTouchEvents;
    }
  };
  dart.addTypeTests(html$.InputDeviceCapabilities);
  dart.addTypeCaches(html$.InputDeviceCapabilities);
  dart.setGetterSignature(html$.InputDeviceCapabilities, () => ({
    __proto__: dart.getGetters(html$.InputDeviceCapabilities.__proto__),
    [S$1.$firesTouchEvents]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.InputDeviceCapabilities, I[148]);
  dart.registerExtension("InputDeviceCapabilities", html$.InputDeviceCapabilities);
  html$.InputElement = class InputElement extends html$.HtmlElement {
    static new(opts) {
      let type = opts && 'type' in opts ? opts.type : null;
      let e = html$.InputElement.as(html$.document[S.$createElement]("input"));
      if (type != null) {
        try {
          e.type = type;
        } catch (e$) {
          let _ = dart.getThrown(e$);
          if (core.Object.is(_)) {
          } else
            throw e$;
        }
      }
      return e;
    }
    get [S$1.$accept]() {
      return this.accept;
    }
    set [S$1.$accept](value) {
      this.accept = value;
    }
    get [S$.$alt]() {
      return this.alt;
    }
    set [S$.$alt](value) {
      this.alt = value;
    }
    get [S$1.$autocapitalize]() {
      return this.autocapitalize;
    }
    set [S$1.$autocapitalize](value) {
      this.autocapitalize = value;
    }
    get [S$.$autocomplete]() {
      return this.autocomplete;
    }
    set [S$.$autocomplete](value) {
      this.autocomplete = value;
    }
    get [S$.$autofocus]() {
      return this.autofocus;
    }
    set [S$.$autofocus](value) {
      this.autofocus = value;
    }
    get [S$1.$capture]() {
      return this.capture;
    }
    set [S$1.$capture](value) {
      this.capture = value;
    }
    get [S$.$checked]() {
      return this.checked;
    }
    set [S$.$checked](value) {
      this.checked = value;
    }
    get [S$1.$defaultChecked]() {
      return this.defaultChecked;
    }
    set [S$1.$defaultChecked](value) {
      this.defaultChecked = value;
    }
    get [S$1.$defaultValue]() {
      return this.defaultValue;
    }
    set [S$1.$defaultValue](value) {
      this.defaultValue = value;
    }
    get [S$1.$dirName]() {
      return this.dirName;
    }
    set [S$1.$dirName](value) {
      this.dirName = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$0.$files]() {
      return this.files;
    }
    set [S$0.$files](value) {
      this.files = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$.$formAction]() {
      return this.formAction;
    }
    set [S$.$formAction](value) {
      this.formAction = value;
    }
    get [S$.$formEnctype]() {
      return this.formEnctype;
    }
    set [S$.$formEnctype](value) {
      this.formEnctype = value;
    }
    get [S$.$formMethod]() {
      return this.formMethod;
    }
    set [S$.$formMethod](value) {
      this.formMethod = value;
    }
    get [S$.$formNoValidate]() {
      return this.formNoValidate;
    }
    set [S$.$formNoValidate](value) {
      this.formNoValidate = value;
    }
    get [S$.$formTarget]() {
      return this.formTarget;
    }
    set [S$.$formTarget](value) {
      this.formTarget = value;
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [S$1.$incremental]() {
      return this.incremental;
    }
    set [S$1.$incremental](value) {
      this.incremental = value;
    }
    get [S$1.$indeterminate]() {
      return this.indeterminate;
    }
    set [S$1.$indeterminate](value) {
      this.indeterminate = value;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [S$1.$list]() {
      return this.list;
    }
    get [S$1.$max]() {
      return this.max;
    }
    set [S$1.$max](value) {
      this.max = value;
    }
    get [S$1.$maxLength]() {
      return this.maxLength;
    }
    set [S$1.$maxLength](value) {
      this.maxLength = value;
    }
    get [S$1.$min]() {
      return this.min;
    }
    set [S$1.$min](value) {
      this.min = value;
    }
    get [S$1.$minLength]() {
      return this.minLength;
    }
    set [S$1.$minLength](value) {
      this.minLength = value;
    }
    get [S$1.$multiple]() {
      return this.multiple;
    }
    set [S$1.$multiple](value) {
      this.multiple = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$1.$pattern]() {
      return this.pattern;
    }
    set [S$1.$pattern](value) {
      this.pattern = value;
    }
    get [S$.$placeholder]() {
      return this.placeholder;
    }
    set [S$.$placeholder](value) {
      this.placeholder = value;
    }
    get [S$.$readOnly]() {
      return this.readOnly;
    }
    set [S$.$readOnly](value) {
      this.readOnly = value;
    }
    get [S$.$required]() {
      return this.required;
    }
    set [S$.$required](value) {
      this.required = value;
    }
    get [S$1.$selectionDirection]() {
      return this.selectionDirection;
    }
    set [S$1.$selectionDirection](value) {
      this.selectionDirection = value;
    }
    get [S$1.$selectionEnd]() {
      return this.selectionEnd;
    }
    set [S$1.$selectionEnd](value) {
      this.selectionEnd = value;
    }
    get [S$1.$selectionStart]() {
      return this.selectionStart;
    }
    set [S$1.$selectionStart](value) {
      this.selectionStart = value;
    }
    get [S$.$size]() {
      return this.size;
    }
    set [S$.$size](value) {
      this.size = value;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$1.$step]() {
      return this.step;
    }
    set [S$1.$step](value) {
      this.step = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$1.$valueAsDate]() {
      return html_common.convertNativeToDart_DateTime(this[S$1._get_valueAsDate]);
    }
    get [S$1._get_valueAsDate]() {
      return this.valueAsDate;
    }
    set [S$1.$valueAsDate](value) {
      this[S$1._set_valueAsDate] = html_common.convertDartToNative_DateTime(dart.nullCheck(value));
    }
    set [S$1._set_valueAsDate](value) {
      this.valueAsDate = value;
    }
    get [S$1.$valueAsNumber]() {
      return this.valueAsNumber;
    }
    set [S$1.$valueAsNumber](value) {
      this.valueAsNumber = value;
    }
    get [$entries]() {
      return this.webkitEntries;
    }
    get [S$1.$directory]() {
      return this.webkitdirectory;
    }
    set [S$1.$directory](value) {
      this.webkitdirectory = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$select](...args) {
      return this.select.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
    [S$1.$setRangeText](...args) {
      return this.setRangeText.apply(this, args);
    }
    [S$1.$setSelectionRange](...args) {
      return this.setSelectionRange.apply(this, args);
    }
    [S$1.$stepDown](...args) {
      return this.stepDown.apply(this, args);
    }
    [S$1.$stepUp](...args) {
      return this.stepUp.apply(this, args);
    }
  };
  (html$.InputElement.created = function() {
    html$.InputElement.__proto__.created.call(this);
    ;
  }).prototype = html$.InputElement.prototype;
  dart.addTypeTests(html$.InputElement);
  dart.addTypeCaches(html$.InputElement);
  html$.InputElement[dart.implements] = () => [html$.HiddenInputElement, html$.SearchInputElement, html$.TextInputElement, html$.UrlInputElement, html$.TelephoneInputElement, html$.EmailInputElement, html$.PasswordInputElement, 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];
  dart.setMethodSignature(html$.InputElement, () => ({
    __proto__: dart.getMethods(html$.InputElement.__proto__),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$select]: dart.fnType(dart.void, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String]),
    [S$1.$setRangeText]: dart.fnType(dart.void, [core.String], {end: dart.nullable(core.int), selectionMode: dart.nullable(core.String), start: dart.nullable(core.int)}, {}),
    [S$1.$setSelectionRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.String)]),
    [S$1.$stepDown]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$1.$stepUp]: dart.fnType(dart.void, [], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.InputElement, () => ({
    __proto__: dart.getGetters(html$.InputElement.__proto__),
    [S$1.$accept]: dart.nullable(core.String),
    [S$.$alt]: dart.nullable(core.String),
    [S$1.$autocapitalize]: dart.nullable(core.String),
    [S$.$autocomplete]: core.String,
    [S$.$autofocus]: core.bool,
    [S$1.$capture]: dart.nullable(core.String),
    [S$.$checked]: dart.nullable(core.bool),
    [S$1.$defaultChecked]: dart.nullable(core.bool),
    [S$1.$defaultValue]: dart.nullable(core.String),
    [S$1.$dirName]: dart.nullable(core.String),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$0.$files]: dart.nullable(core.List$(html$.File)),
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$.$formAction]: core.String,
    [S$.$formEnctype]: core.String,
    [S$.$formMethod]: core.String,
    [S$.$formNoValidate]: core.bool,
    [S$.$formTarget]: core.String,
    [$height]: dart.nullable(core.int),
    [S$1.$incremental]: dart.nullable(core.bool),
    [S$1.$indeterminate]: dart.nullable(core.bool),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [S$1.$list]: dart.nullable(html$.HtmlElement),
    [S$1.$max]: dart.nullable(core.String),
    [S$1.$maxLength]: dart.nullable(core.int),
    [S$1.$min]: dart.nullable(core.String),
    [S$1.$minLength]: dart.nullable(core.int),
    [S$1.$multiple]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S$1.$pattern]: core.String,
    [S$.$placeholder]: core.String,
    [S$.$readOnly]: dart.nullable(core.bool),
    [S$.$required]: core.bool,
    [S$1.$selectionDirection]: dart.nullable(core.String),
    [S$1.$selectionEnd]: dart.nullable(core.int),
    [S$1.$selectionStart]: dart.nullable(core.int),
    [S$.$size]: dart.nullable(core.int),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$step]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String),
    [S$.$validationMessage]: core.String,
    [S$.$validity]: html$.ValidityState,
    [S.$value]: dart.nullable(core.String),
    [S$1.$valueAsDate]: core.DateTime,
    [S$1._get_valueAsDate]: dart.dynamic,
    [S$1.$valueAsNumber]: dart.nullable(core.num),
    [$entries]: dart.nullable(core.List$(html$.Entry)),
    [S$1.$directory]: dart.nullable(core.bool),
    [$width]: dart.nullable(core.int),
    [S$.$willValidate]: core.bool
  }));
  dart.setSetterSignature(html$.InputElement, () => ({
    __proto__: dart.getSetters(html$.InputElement.__proto__),
    [S$1.$accept]: dart.nullable(core.String),
    [S$.$alt]: dart.nullable(core.String),
    [S$1.$autocapitalize]: dart.nullable(core.String),
    [S$.$autocomplete]: core.String,
    [S$.$autofocus]: core.bool,
    [S$1.$capture]: dart.nullable(core.String),
    [S$.$checked]: dart.nullable(core.bool),
    [S$1.$defaultChecked]: dart.nullable(core.bool),
    [S$1.$defaultValue]: dart.nullable(core.String),
    [S$1.$dirName]: dart.nullable(core.String),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$0.$files]: dart.nullable(core.List$(html$.File)),
    [S$.$formAction]: core.String,
    [S$.$formEnctype]: core.String,
    [S$.$formMethod]: core.String,
    [S$.$formNoValidate]: core.bool,
    [S$.$formTarget]: core.String,
    [$height]: dart.nullable(core.int),
    [S$1.$incremental]: dart.nullable(core.bool),
    [S$1.$indeterminate]: dart.nullable(core.bool),
    [S$1.$max]: dart.nullable(core.String),
    [S$1.$maxLength]: dart.nullable(core.int),
    [S$1.$min]: dart.nullable(core.String),
    [S$1.$minLength]: dart.nullable(core.int),
    [S$1.$multiple]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S$1.$pattern]: core.String,
    [S$.$placeholder]: core.String,
    [S$.$readOnly]: dart.nullable(core.bool),
    [S$.$required]: core.bool,
    [S$1.$selectionDirection]: dart.nullable(core.String),
    [S$1.$selectionEnd]: dart.nullable(core.int),
    [S$1.$selectionStart]: dart.nullable(core.int),
    [S$.$size]: dart.nullable(core.int),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$step]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.String),
    [S$1.$valueAsDate]: dart.nullable(core.DateTime),
    [S$1._set_valueAsDate]: dart.dynamic,
    [S$1.$valueAsNumber]: dart.nullable(core.num),
    [S$1.$directory]: dart.nullable(core.bool),
    [$width]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.InputElement, I[148]);
  dart.registerExtension("HTMLInputElement", html$.InputElement);
  html$.InputElementBase = class InputElementBase extends core.Object {};
  (html$.InputElementBase.new = function() {
    ;
  }).prototype = html$.InputElementBase.prototype;
  dart.addTypeTests(html$.InputElementBase);
  dart.addTypeCaches(html$.InputElementBase);
  html$.InputElementBase[dart.implements] = () => [html$.Element];
  dart.setLibraryUri(html$.InputElementBase, I[148]);
  html$.HiddenInputElement = class HiddenInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "hidden"});
    }
  };
  (html$.HiddenInputElement[dart.mixinNew] = function() {
  }).prototype = html$.HiddenInputElement.prototype;
  dart.addTypeTests(html$.HiddenInputElement);
  dart.addTypeCaches(html$.HiddenInputElement);
  html$.HiddenInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.HiddenInputElement, I[148]);
  html$.TextInputElementBase = class TextInputElementBase extends core.Object {};
  (html$.TextInputElementBase.new = function() {
    ;
  }).prototype = html$.TextInputElementBase.prototype;
  dart.addTypeTests(html$.TextInputElementBase);
  dart.addTypeCaches(html$.TextInputElementBase);
  html$.TextInputElementBase[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.TextInputElementBase, I[148]);
  html$.SearchInputElement = class SearchInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "search"});
    }
    static get supported() {
      return html$.InputElement.new({type: "search"}).type === "search";
    }
  };
  (html$.SearchInputElement[dart.mixinNew] = function() {
  }).prototype = html$.SearchInputElement.prototype;
  dart.addTypeTests(html$.SearchInputElement);
  dart.addTypeCaches(html$.SearchInputElement);
  html$.SearchInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.SearchInputElement, I[148]);
  html$.TextInputElement = class TextInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "text"});
    }
  };
  (html$.TextInputElement[dart.mixinNew] = function() {
  }).prototype = html$.TextInputElement.prototype;
  dart.addTypeTests(html$.TextInputElement);
  dart.addTypeCaches(html$.TextInputElement);
  html$.TextInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.TextInputElement, I[148]);
  html$.UrlInputElement = class UrlInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "url"});
    }
    static get supported() {
      return html$.InputElement.new({type: "url"}).type === "url";
    }
  };
  (html$.UrlInputElement[dart.mixinNew] = function() {
  }).prototype = html$.UrlInputElement.prototype;
  dart.addTypeTests(html$.UrlInputElement);
  dart.addTypeCaches(html$.UrlInputElement);
  html$.UrlInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.UrlInputElement, I[148]);
  html$.TelephoneInputElement = class TelephoneInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "tel"});
    }
    static get supported() {
      return html$.InputElement.new({type: "tel"}).type === "tel";
    }
  };
  (html$.TelephoneInputElement[dart.mixinNew] = function() {
  }).prototype = html$.TelephoneInputElement.prototype;
  dart.addTypeTests(html$.TelephoneInputElement);
  dart.addTypeCaches(html$.TelephoneInputElement);
  html$.TelephoneInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.TelephoneInputElement, I[148]);
  html$.EmailInputElement = class EmailInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "email"});
    }
    static get supported() {
      return html$.InputElement.new({type: "email"}).type === "email";
    }
  };
  (html$.EmailInputElement[dart.mixinNew] = function() {
  }).prototype = html$.EmailInputElement.prototype;
  dart.addTypeTests(html$.EmailInputElement);
  dart.addTypeCaches(html$.EmailInputElement);
  html$.EmailInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.EmailInputElement, I[148]);
  html$.PasswordInputElement = class PasswordInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "password"});
    }
  };
  (html$.PasswordInputElement[dart.mixinNew] = function() {
  }).prototype = html$.PasswordInputElement.prototype;
  dart.addTypeTests(html$.PasswordInputElement);
  dart.addTypeCaches(html$.PasswordInputElement);
  html$.PasswordInputElement[dart.implements] = () => [html$.TextInputElementBase];
  dart.setLibraryUri(html$.PasswordInputElement, I[148]);
  html$.RangeInputElementBase = class RangeInputElementBase extends core.Object {};
  (html$.RangeInputElementBase.new = function() {
    ;
  }).prototype = html$.RangeInputElementBase.prototype;
  dart.addTypeTests(html$.RangeInputElementBase);
  dart.addTypeCaches(html$.RangeInputElementBase);
  html$.RangeInputElementBase[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.RangeInputElementBase, I[148]);
  html$.DateInputElement = class DateInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "date"});
    }
    static get supported() {
      return html$.InputElement.new({type: "date"}).type === "date";
    }
  };
  (html$.DateInputElement[dart.mixinNew] = function() {
  }).prototype = html$.DateInputElement.prototype;
  dart.addTypeTests(html$.DateInputElement);
  dart.addTypeCaches(html$.DateInputElement);
  html$.DateInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.DateInputElement, I[148]);
  html$.MonthInputElement = class MonthInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "month"});
    }
    static get supported() {
      return html$.InputElement.new({type: "month"}).type === "month";
    }
  };
  (html$.MonthInputElement[dart.mixinNew] = function() {
  }).prototype = html$.MonthInputElement.prototype;
  dart.addTypeTests(html$.MonthInputElement);
  dart.addTypeCaches(html$.MonthInputElement);
  html$.MonthInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.MonthInputElement, I[148]);
  html$.WeekInputElement = class WeekInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "week"});
    }
    static get supported() {
      return html$.InputElement.new({type: "week"}).type === "week";
    }
  };
  (html$.WeekInputElement[dart.mixinNew] = function() {
  }).prototype = html$.WeekInputElement.prototype;
  dart.addTypeTests(html$.WeekInputElement);
  dart.addTypeCaches(html$.WeekInputElement);
  html$.WeekInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.WeekInputElement, I[148]);
  html$.TimeInputElement = class TimeInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "time"});
    }
    static get supported() {
      return html$.InputElement.new({type: "time"}).type === "time";
    }
  };
  (html$.TimeInputElement[dart.mixinNew] = function() {
  }).prototype = html$.TimeInputElement.prototype;
  dart.addTypeTests(html$.TimeInputElement);
  dart.addTypeCaches(html$.TimeInputElement);
  html$.TimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.TimeInputElement, I[148]);
  html$.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "datetime-local"});
    }
    static get supported() {
      return html$.InputElement.new({type: "datetime-local"}).type === "datetime-local";
    }
  };
  (html$.LocalDateTimeInputElement[dart.mixinNew] = function() {
  }).prototype = html$.LocalDateTimeInputElement.prototype;
  dart.addTypeTests(html$.LocalDateTimeInputElement);
  dart.addTypeCaches(html$.LocalDateTimeInputElement);
  html$.LocalDateTimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.LocalDateTimeInputElement, I[148]);
  html$.NumberInputElement = class NumberInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "number"});
    }
    static get supported() {
      return html$.InputElement.new({type: "number"}).type === "number";
    }
  };
  (html$.NumberInputElement[dart.mixinNew] = function() {
  }).prototype = html$.NumberInputElement.prototype;
  dart.addTypeTests(html$.NumberInputElement);
  dart.addTypeCaches(html$.NumberInputElement);
  html$.NumberInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.NumberInputElement, I[148]);
  html$.RangeInputElement = class RangeInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "range"});
    }
    static get supported() {
      return html$.InputElement.new({type: "range"}).type === "range";
    }
  };
  (html$.RangeInputElement[dart.mixinNew] = function() {
  }).prototype = html$.RangeInputElement.prototype;
  dart.addTypeTests(html$.RangeInputElement);
  dart.addTypeCaches(html$.RangeInputElement);
  html$.RangeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
  dart.setLibraryUri(html$.RangeInputElement, I[148]);
  html$.CheckboxInputElement = class CheckboxInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "checkbox"});
    }
  };
  (html$.CheckboxInputElement[dart.mixinNew] = function() {
  }).prototype = html$.CheckboxInputElement.prototype;
  dart.addTypeTests(html$.CheckboxInputElement);
  dart.addTypeCaches(html$.CheckboxInputElement);
  html$.CheckboxInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.CheckboxInputElement, I[148]);
  html$.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "radio"});
    }
  };
  (html$.RadioButtonInputElement[dart.mixinNew] = function() {
  }).prototype = html$.RadioButtonInputElement.prototype;
  dart.addTypeTests(html$.RadioButtonInputElement);
  dart.addTypeCaches(html$.RadioButtonInputElement);
  html$.RadioButtonInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.RadioButtonInputElement, I[148]);
  html$.FileUploadInputElement = class FileUploadInputElement extends core.Object {
    get files() {
      return this[S$1.files];
    }
    set files(value) {
      this[S$1.files] = value;
    }
    static new() {
      return html$.InputElement.new({type: "file"});
    }
  };
  (html$.FileUploadInputElement[dart.mixinNew] = function() {
    this[S$1.files] = null;
  }).prototype = html$.FileUploadInputElement.prototype;
  dart.addTypeTests(html$.FileUploadInputElement);
  dart.addTypeCaches(html$.FileUploadInputElement);
  html$.FileUploadInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.FileUploadInputElement, I[148]);
  dart.setFieldSignature(html$.FileUploadInputElement, () => ({
    __proto__: dart.getFields(html$.FileUploadInputElement.__proto__),
    files: dart.fieldType(dart.nullable(core.List$(html$.File)))
  }));
  dart.defineExtensionAccessors(html$.FileUploadInputElement, ['files']);
  html$.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "submit"});
    }
  };
  (html$.SubmitButtonInputElement[dart.mixinNew] = function() {
  }).prototype = html$.SubmitButtonInputElement.prototype;
  dart.addTypeTests(html$.SubmitButtonInputElement);
  dart.addTypeCaches(html$.SubmitButtonInputElement);
  html$.SubmitButtonInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.SubmitButtonInputElement, I[148]);
  html$.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "image"});
    }
  };
  (html$.ImageButtonInputElement[dart.mixinNew] = function() {
  }).prototype = html$.ImageButtonInputElement.prototype;
  dart.addTypeTests(html$.ImageButtonInputElement);
  dart.addTypeCaches(html$.ImageButtonInputElement);
  html$.ImageButtonInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.ImageButtonInputElement, I[148]);
  html$.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "reset"});
    }
  };
  (html$.ResetButtonInputElement[dart.mixinNew] = function() {
  }).prototype = html$.ResetButtonInputElement.prototype;
  dart.addTypeTests(html$.ResetButtonInputElement);
  dart.addTypeCaches(html$.ResetButtonInputElement);
  html$.ResetButtonInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.ResetButtonInputElement, I[148]);
  html$.ButtonInputElement = class ButtonInputElement extends core.Object {
    static new() {
      return html$.InputElement.new({type: "button"});
    }
  };
  (html$.ButtonInputElement[dart.mixinNew] = function() {
  }).prototype = html$.ButtonInputElement.prototype;
  dart.addTypeTests(html$.ButtonInputElement);
  dart.addTypeCaches(html$.ButtonInputElement);
  html$.ButtonInputElement[dart.implements] = () => [html$.InputElementBase];
  dart.setLibraryUri(html$.ButtonInputElement, I[148]);
  html$.InstallEvent = class InstallEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 19853, 31, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.InstallEvent._create_1(type, eventInitDict_1);
      }
      return html$.InstallEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new InstallEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new InstallEvent(type);
    }
    [S$1.$registerForeignFetch](options) {
      if (options == null) dart.nullFailed(I[147], 19865, 33, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[S$1._registerForeignFetch_1](options_1);
      return;
    }
    [S$1._registerForeignFetch_1](...args) {
      return this.registerForeignFetch.apply(this, args);
    }
  };
  dart.addTypeTests(html$.InstallEvent);
  dart.addTypeCaches(html$.InstallEvent);
  dart.setMethodSignature(html$.InstallEvent, () => ({
    __proto__: dart.getMethods(html$.InstallEvent.__proto__),
    [S$1.$registerForeignFetch]: dart.fnType(dart.void, [core.Map]),
    [S$1._registerForeignFetch_1]: dart.fnType(dart.void, [dart.dynamic])
  }));
  dart.setLibraryUri(html$.InstallEvent, I[148]);
  dart.registerExtension("InstallEvent", html$.InstallEvent);
  html$.IntersectionObserver = class IntersectionObserver$ extends _interceptors.Interceptor {
    static new(callback, options = null) {
      if (callback == null) dart.nullFailed(I[147], 19885, 61, "callback");
      if (options != null) {
        let callback_1 = _js_helper.convertDartClosureToJS(T$0.ListAndIntersectionObserverTovoid(), callback, 2);
        let options_2 = html_common.convertDartToNative_Dictionary(options);
        return html$.IntersectionObserver._create_1(callback_1, options_2);
      }
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.ListAndIntersectionObserverTovoid(), callback, 2);
      return html$.IntersectionObserver._create_2(callback_1);
    }
    static _create_1(callback, options) {
      return new IntersectionObserver(callback, options);
    }
    static _create_2(callback) {
      return new IntersectionObserver(callback);
    }
    get [S$1.$root]() {
      return this.root;
    }
    get [S$1.$rootMargin]() {
      return this.rootMargin;
    }
    get [S$1.$thresholds]() {
      return this.thresholds;
    }
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S.$observe](...args) {
      return this.observe.apply(this, args);
    }
    [S$1.$takeRecords](...args) {
      return this.takeRecords.apply(this, args);
    }
    [S.$unobserve](...args) {
      return this.unobserve.apply(this, args);
    }
  };
  dart.addTypeTests(html$.IntersectionObserver);
  dart.addTypeCaches(html$.IntersectionObserver);
  dart.setMethodSignature(html$.IntersectionObserver, () => ({
    __proto__: dart.getMethods(html$.IntersectionObserver.__proto__),
    [S$1.$disconnect]: dart.fnType(dart.void, []),
    [S.$observe]: dart.fnType(dart.void, [html$.Element]),
    [S$1.$takeRecords]: dart.fnType(core.List$(html$.IntersectionObserverEntry), []),
    [S.$unobserve]: dart.fnType(dart.void, [html$.Element])
  }));
  dart.setGetterSignature(html$.IntersectionObserver, () => ({
    __proto__: dart.getGetters(html$.IntersectionObserver.__proto__),
    [S$1.$root]: dart.nullable(html$.Element),
    [S$1.$rootMargin]: dart.nullable(core.String),
    [S$1.$thresholds]: dart.nullable(core.List$(core.num))
  }));
  dart.setLibraryUri(html$.IntersectionObserver, I[148]);
  dart.registerExtension("IntersectionObserver", html$.IntersectionObserver);
  html$.IntersectionObserverEntry = class IntersectionObserverEntry extends _interceptors.Interceptor {
    get [S$1.$boundingClientRect]() {
      return this.boundingClientRect;
    }
    get [S$1.$intersectionRatio]() {
      return this.intersectionRatio;
    }
    get [S$1.$intersectionRect]() {
      return this.intersectionRect;
    }
    get [S$1.$isIntersecting]() {
      return this.isIntersecting;
    }
    get [S$1.$rootBounds]() {
      return this.rootBounds;
    }
    get [S.$target]() {
      return this.target;
    }
    get [S$.$time]() {
      return this.time;
    }
  };
  dart.addTypeTests(html$.IntersectionObserverEntry);
  dart.addTypeCaches(html$.IntersectionObserverEntry);
  dart.setGetterSignature(html$.IntersectionObserverEntry, () => ({
    __proto__: dart.getGetters(html$.IntersectionObserverEntry.__proto__),
    [S$1.$boundingClientRect]: dart.nullable(html$.DomRectReadOnly),
    [S$1.$intersectionRatio]: dart.nullable(core.num),
    [S$1.$intersectionRect]: dart.nullable(html$.DomRectReadOnly),
    [S$1.$isIntersecting]: dart.nullable(core.bool),
    [S$1.$rootBounds]: dart.nullable(html$.DomRectReadOnly),
    [S.$target]: dart.nullable(html$.Element),
    [S$.$time]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.IntersectionObserverEntry, I[148]);
  dart.registerExtension("IntersectionObserverEntry", html$.IntersectionObserverEntry);
  html$.InterventionReport = class InterventionReport extends html$.ReportBody {
    get [S$0.$lineNumber]() {
      return this.lineNumber;
    }
    get [$message]() {
      return this.message;
    }
    get [S$0.$sourceFile]() {
      return this.sourceFile;
    }
  };
  dart.addTypeTests(html$.InterventionReport);
  dart.addTypeCaches(html$.InterventionReport);
  dart.setGetterSignature(html$.InterventionReport, () => ({
    __proto__: dart.getGetters(html$.InterventionReport.__proto__),
    [S$0.$lineNumber]: dart.nullable(core.int),
    [$message]: dart.nullable(core.String),
    [S$0.$sourceFile]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.InterventionReport, I[148]);
  dart.registerExtension("InterventionReport", html$.InterventionReport);
  html$.KeyboardEvent = class KeyboardEvent$ extends html$.UIEvent {
    static new(type, opts) {
      let t238;
      if (type == null) dart.nullFailed(I[147], 19992, 32, "type");
      let view = opts && 'view' in opts ? opts.view : null;
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 19994, 12, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 19995, 12, "cancelable");
      let location = opts && 'location' in opts ? opts.location : null;
      let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : null;
      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
      if (ctrlKey == null) dart.nullFailed(I[147], 19998, 12, "ctrlKey");
      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
      if (altKey == null) dart.nullFailed(I[147], 19999, 12, "altKey");
      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
      if (shiftKey == null) dart.nullFailed(I[147], 20000, 12, "shiftKey");
      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
      if (metaKey == null) dart.nullFailed(I[147], 20001, 12, "metaKey");
      if (view == null) {
        view = html$.window;
      }
      location == null ? location = (t238 = keyLocation, t238 == null ? 1 : t238) : null;
      let e = html$.KeyboardEvent.as(html$.document[S._createEvent]("KeyboardEvent"));
      e[S$1._initKeyboardEvent](type, canBubble, cancelable, view, "", location, ctrlKey, altKey, shiftKey, metaKey);
      return e;
    }
    [S$1._initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey) {
      if (type == null) dart.nullFailed(I[147], 20013, 14, "type");
      if (canBubble == null) dart.nullFailed(I[147], 20014, 12, "canBubble");
      if (cancelable == null) dart.nullFailed(I[147], 20015, 12, "cancelable");
      if (keyIdentifier == null) dart.nullFailed(I[147], 20017, 14, "keyIdentifier");
      if (ctrlKey == null) dart.nullFailed(I[147], 20019, 12, "ctrlKey");
      if (altKey == null) dart.nullFailed(I[147], 20020, 12, "altKey");
      if (shiftKey == null) dart.nullFailed(I[147], 20021, 12, "shiftKey");
      if (metaKey == null) dart.nullFailed(I[147], 20022, 12, "metaKey");
      if (typeof this.initKeyEvent == "function") {
        this.initKeyEvent(type, canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey, 0, 0);
      } else {
        this.initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
      }
    }
    get [S$1.$keyCode]() {
      return this.keyCode;
    }
    get [S$1.$charCode]() {
      return this.charCode;
    }
    get [S$1.$which]() {
      return this[S$._which];
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 20055, 34, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.KeyboardEvent._create_1(type, eventInitDict_1);
      }
      return html$.KeyboardEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new KeyboardEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new KeyboardEvent(type);
    }
    get [S$1.$altKey]() {
      return this.altKey;
    }
    get [S$1._charCode]() {
      return this.charCode;
    }
    get [S$.$code]() {
      return this.code;
    }
    get [S$1.$ctrlKey]() {
      return this.ctrlKey;
    }
    get [S$1.$isComposing]() {
      return this.isComposing;
    }
    get [S.$key]() {
      return this.key;
    }
    get [S$1._keyCode]() {
      return this.keyCode;
    }
    get [S$0.$location]() {
      return this.location;
    }
    get [S$1.$metaKey]() {
      return this.metaKey;
    }
    get [S$1.$repeat]() {
      return this.repeat;
    }
    get [S$1.$shiftKey]() {
      return this.shiftKey;
    }
    [S$1.$getModifierState](...args) {
      return this.getModifierState.apply(this, args);
    }
  };
  dart.addTypeTests(html$.KeyboardEvent);
  dart.addTypeCaches(html$.KeyboardEvent);
  dart.setMethodSignature(html$.KeyboardEvent, () => ({
    __proto__: dart.getMethods(html$.KeyboardEvent.__proto__),
    [S$1._initKeyboardEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, dart.nullable(html$.Window), core.String, dart.nullable(core.int), core.bool, core.bool, core.bool, core.bool]),
    [S$1.$getModifierState]: dart.fnType(core.bool, [core.String])
  }));
  dart.setGetterSignature(html$.KeyboardEvent, () => ({
    __proto__: dart.getGetters(html$.KeyboardEvent.__proto__),
    [S$1.$keyCode]: core.int,
    [S$1.$charCode]: core.int,
    [S$1.$which]: dart.nullable(core.int),
    [S$1.$altKey]: core.bool,
    [S$1._charCode]: core.int,
    [S$.$code]: dart.nullable(core.String),
    [S$1.$ctrlKey]: core.bool,
    [S$1.$isComposing]: dart.nullable(core.bool),
    [S.$key]: dart.nullable(core.String),
    [S$1._keyCode]: core.int,
    [S$0.$location]: core.int,
    [S$1.$metaKey]: core.bool,
    [S$1.$repeat]: dart.nullable(core.bool),
    [S$1.$shiftKey]: core.bool
  }));
  dart.setLibraryUri(html$.KeyboardEvent, I[148]);
  dart.defineLazy(html$.KeyboardEvent, {
    /*html$.KeyboardEvent.DOM_KEY_LOCATION_LEFT*/get DOM_KEY_LOCATION_LEFT() {
      return 1;
    },
    /*html$.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD*/get DOM_KEY_LOCATION_NUMPAD() {
      return 3;
    },
    /*html$.KeyboardEvent.DOM_KEY_LOCATION_RIGHT*/get DOM_KEY_LOCATION_RIGHT() {
      return 2;
    },
    /*html$.KeyboardEvent.DOM_KEY_LOCATION_STANDARD*/get DOM_KEY_LOCATION_STANDARD() {
      return 0;
    }
  }, false);
  dart.registerExtension("KeyboardEvent", html$.KeyboardEvent);
  html$.KeyframeEffectReadOnly = class KeyframeEffectReadOnly$ extends html$.AnimationEffectReadOnly {
    static new(target, effect, options = null) {
      if (options != null) {
        return html$.KeyframeEffectReadOnly._create_1(target, effect, options);
      }
      return html$.KeyframeEffectReadOnly._create_2(target, effect);
    }
    static _create_1(target, effect, options) {
      return new KeyframeEffectReadOnly(target, effect, options);
    }
    static _create_2(target, effect) {
      return new KeyframeEffectReadOnly(target, effect);
    }
  };
  dart.addTypeTests(html$.KeyframeEffectReadOnly);
  dart.addTypeCaches(html$.KeyframeEffectReadOnly);
  dart.setLibraryUri(html$.KeyframeEffectReadOnly, I[148]);
  dart.registerExtension("KeyframeEffectReadOnly", html$.KeyframeEffectReadOnly);
  html$.KeyframeEffect = class KeyframeEffect$ extends html$.KeyframeEffectReadOnly {
    static new(target, effect, options = null) {
      if (options != null) {
        return html$.KeyframeEffect._create_1(target, effect, options);
      }
      return html$.KeyframeEffect._create_2(target, effect);
    }
    static _create_1(target, effect, options) {
      return new KeyframeEffect(target, effect, options);
    }
    static _create_2(target, effect) {
      return new KeyframeEffect(target, effect);
    }
  };
  dart.addTypeTests(html$.KeyframeEffect);
  dart.addTypeCaches(html$.KeyframeEffect);
  dart.setLibraryUri(html$.KeyframeEffect, I[148]);
  dart.registerExtension("KeyframeEffect", html$.KeyframeEffect);
  html$.LIElement = class LIElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("li");
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.LIElement.created = function() {
    html$.LIElement.__proto__.created.call(this);
    ;
  }).prototype = html$.LIElement.prototype;
  dart.addTypeTests(html$.LIElement);
  dart.addTypeCaches(html$.LIElement);
  dart.setGetterSignature(html$.LIElement, () => ({
    __proto__: dart.getGetters(html$.LIElement.__proto__),
    [S.$value]: core.int
  }));
  dart.setSetterSignature(html$.LIElement, () => ({
    __proto__: dart.getSetters(html$.LIElement.__proto__),
    [S.$value]: core.int
  }));
  dart.setLibraryUri(html$.LIElement, I[148]);
  dart.registerExtension("HTMLLIElement", html$.LIElement);
  html$.LabelElement = class LabelElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("label");
    }
    get [S$1.$control]() {
      return this.control;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$1.$htmlFor]() {
      return this.htmlFor;
    }
    set [S$1.$htmlFor](value) {
      this.htmlFor = value;
    }
  };
  (html$.LabelElement.created = function() {
    html$.LabelElement.__proto__.created.call(this);
    ;
  }).prototype = html$.LabelElement.prototype;
  dart.addTypeTests(html$.LabelElement);
  dart.addTypeCaches(html$.LabelElement);
  dart.setGetterSignature(html$.LabelElement, () => ({
    __proto__: dart.getGetters(html$.LabelElement.__proto__),
    [S$1.$control]: dart.nullable(html$.HtmlElement),
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$1.$htmlFor]: core.String
  }));
  dart.setSetterSignature(html$.LabelElement, () => ({
    __proto__: dart.getSetters(html$.LabelElement.__proto__),
    [S$1.$htmlFor]: core.String
  }));
  dart.setLibraryUri(html$.LabelElement, I[148]);
  dart.registerExtension("HTMLLabelElement", html$.LabelElement);
  html$.LegendElement = class LegendElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("legend");
    }
    get [S$.$form]() {
      return this.form;
    }
  };
  (html$.LegendElement.created = function() {
    html$.LegendElement.__proto__.created.call(this);
    ;
  }).prototype = html$.LegendElement.prototype;
  dart.addTypeTests(html$.LegendElement);
  dart.addTypeCaches(html$.LegendElement);
  dart.setGetterSignature(html$.LegendElement, () => ({
    __proto__: dart.getGetters(html$.LegendElement.__proto__),
    [S$.$form]: dart.nullable(html$.FormElement)
  }));
  dart.setLibraryUri(html$.LegendElement, I[148]);
  dart.registerExtension("HTMLLegendElement", html$.LegendElement);
  html$.LinearAccelerationSensor = class LinearAccelerationSensor$ extends html$.Accelerometer {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.LinearAccelerationSensor._create_1(sensorOptions_1);
      }
      return html$.LinearAccelerationSensor._create_2();
    }
    static _create_1(sensorOptions) {
      return new LinearAccelerationSensor(sensorOptions);
    }
    static _create_2() {
      return new LinearAccelerationSensor();
    }
  };
  dart.addTypeTests(html$.LinearAccelerationSensor);
  dart.addTypeCaches(html$.LinearAccelerationSensor);
  dart.setLibraryUri(html$.LinearAccelerationSensor, I[148]);
  dart.registerExtension("LinearAccelerationSensor", html$.LinearAccelerationSensor);
  html$.LinkElement = class LinkElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("link");
    }
    get [S$1.$as]() {
      return this.as;
    }
    set [S$1.$as](value) {
      this.as = value;
    }
    get [S$.$crossOrigin]() {
      return this.crossOrigin;
    }
    set [S$.$crossOrigin](value) {
      this.crossOrigin = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$hreflang]() {
      return this.hreflang;
    }
    set [S$.$hreflang](value) {
      this.hreflang = value;
    }
    get [S$1.$import]() {
      return this.import;
    }
    get [S$1.$integrity]() {
      return this.integrity;
    }
    set [S$1.$integrity](value) {
      this.integrity = value;
    }
    get [S$.$media]() {
      return this.media;
    }
    set [S$.$media](value) {
      this.media = value;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    set [S$.$referrerPolicy](value) {
      this.referrerPolicy = value;
    }
    get [S$.$rel]() {
      return this.rel;
    }
    set [S$.$rel](value) {
      this.rel = value;
    }
    get [S$1.$relList]() {
      return this.relList;
    }
    get [S$1.$scope]() {
      return this.scope;
    }
    set [S$1.$scope](value) {
      this.scope = value;
    }
    get [S$1.$sheet]() {
      return this.sheet;
    }
    get [S$1.$sizes]() {
      return this.sizes;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$1.$supportsImport]() {
      return "import" in this;
    }
  };
  (html$.LinkElement.created = function() {
    html$.LinkElement.__proto__.created.call(this);
    ;
  }).prototype = html$.LinkElement.prototype;
  dart.addTypeTests(html$.LinkElement);
  dart.addTypeCaches(html$.LinkElement);
  dart.setGetterSignature(html$.LinkElement, () => ({
    __proto__: dart.getGetters(html$.LinkElement.__proto__),
    [S$1.$as]: dart.nullable(core.String),
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$href]: core.String,
    [S$.$hreflang]: core.String,
    [S$1.$import]: dart.nullable(html$.Document),
    [S$1.$integrity]: dart.nullable(core.String),
    [S$.$media]: core.String,
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S$1.$relList]: dart.nullable(html$.DomTokenList),
    [S$1.$scope]: dart.nullable(core.String),
    [S$1.$sheet]: dart.nullable(html$.StyleSheet),
    [S$1.$sizes]: dart.nullable(html$.DomTokenList),
    [S.$type]: core.String,
    [S$1.$supportsImport]: core.bool
  }));
  dart.setSetterSignature(html$.LinkElement, () => ({
    __proto__: dart.getSetters(html$.LinkElement.__proto__),
    [S$1.$as]: dart.nullable(core.String),
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$href]: core.String,
    [S$.$hreflang]: core.String,
    [S$1.$integrity]: dart.nullable(core.String),
    [S$.$media]: core.String,
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$rel]: core.String,
    [S$1.$scope]: dart.nullable(core.String),
    [S.$type]: core.String
  }));
  dart.setLibraryUri(html$.LinkElement, I[148]);
  dart.registerExtension("HTMLLinkElement", html$.LinkElement);
  html$.Location = class Location extends _interceptors.Interceptor {
    get [S$1.$ancestorOrigins]() {
      return this.ancestorOrigins;
    }
    get [S$.$hash]() {
      return this.hash;
    }
    set [S$.$hash](value) {
      this.hash = value;
    }
    get [S$.$host]() {
      return this.host;
    }
    set [S$.$host](value) {
      this.host = value;
    }
    get [S$.$hostname]() {
      return this.hostname;
    }
    set [S$.$hostname](value) {
      this.hostname = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$pathname]() {
      return this.pathname;
    }
    set [S$.$pathname](value) {
      this.pathname = value;
    }
    get [S$.$port]() {
      return this.port;
    }
    set [S$.$port](value) {
      this.port = value;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    set [S$.$protocol](value) {
      this.protocol = value;
    }
    get [S$.$search]() {
      return this.search;
    }
    set [S$.$search](value) {
      this.search = value;
    }
    get [S$1.$trustedHref]() {
      return this.trustedHref;
    }
    set [S$1.$trustedHref](value) {
      this.trustedHref = value;
    }
    [S$1.$assign](...args) {
      return this.assign.apply(this, args);
    }
    [S$1.$reload](...args) {
      return this.reload.apply(this, args);
    }
    [S$1.$replace](...args) {
      return this.replace.apply(this, args);
    }
    get [S$.$origin]() {
      if ("origin" in this) {
        return this.origin;
      }
      return dart.str(this.protocol) + "//" + dart.str(this.host);
    }
    [$toString]() {
      return String(this);
    }
  };
  dart.addTypeTests(html$.Location);
  dart.addTypeCaches(html$.Location);
  html$.Location[dart.implements] = () => [html$.LocationBase];
  dart.setMethodSignature(html$.Location, () => ({
    __proto__: dart.getMethods(html$.Location.__proto__),
    [S$1.$assign]: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    [S$1.$reload]: dart.fnType(dart.void, []),
    [S$1.$replace]: dart.fnType(dart.void, [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.Location, () => ({
    __proto__: dart.getGetters(html$.Location.__proto__),
    [S$1.$ancestorOrigins]: dart.nullable(core.List$(core.String)),
    [S$.$hash]: core.String,
    [S$.$host]: core.String,
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: core.String,
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: core.String,
    [S$.$protocol]: core.String,
    [S$.$search]: dart.nullable(core.String),
    [S$1.$trustedHref]: dart.nullable(html$.TrustedUrl),
    [S$.$origin]: core.String
  }));
  dart.setSetterSignature(html$.Location, () => ({
    __proto__: dart.getSetters(html$.Location.__proto__),
    [S$.$hash]: core.String,
    [S$.$host]: core.String,
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: core.String,
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: core.String,
    [S$.$protocol]: core.String,
    [S$.$search]: dart.nullable(core.String),
    [S$1.$trustedHref]: dart.nullable(html$.TrustedUrl)
  }));
  dart.setLibraryUri(html$.Location, I[148]);
  dart.registerExtension("Location", html$.Location);
  html$.Magnetometer = class Magnetometer$ extends html$.Sensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.Magnetometer._create_1(sensorOptions_1);
      }
      return html$.Magnetometer._create_2();
    }
    static _create_1(sensorOptions) {
      return new Magnetometer(sensorOptions);
    }
    static _create_2() {
      return new Magnetometer();
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  dart.addTypeTests(html$.Magnetometer);
  dart.addTypeCaches(html$.Magnetometer);
  dart.setGetterSignature(html$.Magnetometer, () => ({
    __proto__: dart.getGetters(html$.Magnetometer.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.Magnetometer, I[148]);
  dart.registerExtension("Magnetometer", html$.Magnetometer);
  html$.MapElement = class MapElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("map");
    }
    get [S$1.$areas]() {
      return this.areas;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
  };
  (html$.MapElement.created = function() {
    html$.MapElement.__proto__.created.call(this);
    ;
  }).prototype = html$.MapElement.prototype;
  dart.addTypeTests(html$.MapElement);
  dart.addTypeCaches(html$.MapElement);
  dart.setGetterSignature(html$.MapElement, () => ({
    __proto__: dart.getGetters(html$.MapElement.__proto__),
    [S$1.$areas]: core.List$(html$.Node),
    [$name]: core.String
  }));
  dart.setSetterSignature(html$.MapElement, () => ({
    __proto__: dart.getSetters(html$.MapElement.__proto__),
    [$name]: core.String
  }));
  dart.setLibraryUri(html$.MapElement, I[148]);
  dart.registerExtension("HTMLMapElement", html$.MapElement);
  html$.MediaCapabilities = class MediaCapabilities extends _interceptors.Interceptor {
    [S$1.$decodingInfo](configuration) {
      if (configuration == null) dart.nullFailed(I[147], 20477, 50, "configuration");
      let configuration_dict = html_common.convertDartToNative_Dictionary(configuration);
      return js_util.promiseToFuture(html$.MediaCapabilitiesInfo, this.decodingInfo(configuration_dict));
    }
    [S$1.$encodingInfo](configuration) {
      if (configuration == null) dart.nullFailed(I[147], 20486, 50, "configuration");
      let configuration_dict = html_common.convertDartToNative_Dictionary(configuration);
      return js_util.promiseToFuture(html$.MediaCapabilitiesInfo, this.encodingInfo(configuration_dict));
    }
  };
  dart.addTypeTests(html$.MediaCapabilities);
  dart.addTypeCaches(html$.MediaCapabilities);
  dart.setMethodSignature(html$.MediaCapabilities, () => ({
    __proto__: dart.getMethods(html$.MediaCapabilities.__proto__),
    [S$1.$decodingInfo]: dart.fnType(async.Future$(html$.MediaCapabilitiesInfo), [core.Map]),
    [S$1.$encodingInfo]: dart.fnType(async.Future$(html$.MediaCapabilitiesInfo), [core.Map])
  }));
  dart.setLibraryUri(html$.MediaCapabilities, I[148]);
  dart.registerExtension("MediaCapabilities", html$.MediaCapabilities);
  html$.MediaCapabilitiesInfo = class MediaCapabilitiesInfo extends _interceptors.Interceptor {
    get [S$1.$powerEfficient]() {
      return this.powerEfficient;
    }
    get [S$1.$smooth]() {
      return this.smooth;
    }
    get [S$1.$supported]() {
      return this.supported;
    }
  };
  dart.addTypeTests(html$.MediaCapabilitiesInfo);
  dart.addTypeCaches(html$.MediaCapabilitiesInfo);
  dart.setGetterSignature(html$.MediaCapabilitiesInfo, () => ({
    __proto__: dart.getGetters(html$.MediaCapabilitiesInfo.__proto__),
    [S$1.$powerEfficient]: dart.nullable(core.bool),
    [S$1.$smooth]: dart.nullable(core.bool),
    [S$1.$supported]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.MediaCapabilitiesInfo, I[148]);
  dart.registerExtension("MediaCapabilitiesInfo", html$.MediaCapabilitiesInfo);
  html$.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
    get [S$1.$deviceId]() {
      return this.deviceId;
    }
    get [S$1.$groupId]() {
      return this.groupId;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S$.$label]() {
      return this.label;
    }
  };
  dart.addTypeTests(html$.MediaDeviceInfo);
  dart.addTypeCaches(html$.MediaDeviceInfo);
  dart.setGetterSignature(html$.MediaDeviceInfo, () => ({
    __proto__: dart.getGetters(html$.MediaDeviceInfo.__proto__),
    [S$1.$deviceId]: dart.nullable(core.String),
    [S$1.$groupId]: dart.nullable(core.String),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaDeviceInfo, I[148]);
  dart.registerExtension("MediaDeviceInfo", html$.MediaDeviceInfo);
  html$.MediaDevices = class MediaDevices extends html$.EventTarget {
    [S$1.$enumerateDevices]() {
      return js_util.promiseToFuture(core.List, this.enumerateDevices());
    }
    [S$1.$getSupportedConstraints]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$1._getSupportedConstraints_1]()));
    }
    [S$1._getSupportedConstraints_1](...args) {
      return this.getSupportedConstraints.apply(this, args);
    }
    [S$1.$getUserMedia](constraints = null) {
      let constraints_dict = null;
      if (constraints != null) {
        constraints_dict = html_common.convertDartToNative_Dictionary(constraints);
      }
      return js_util.promiseToFuture(html$.MediaStream, this.getUserMedia(constraints_dict));
    }
  };
  dart.addTypeTests(html$.MediaDevices);
  dart.addTypeCaches(html$.MediaDevices);
  dart.setMethodSignature(html$.MediaDevices, () => ({
    __proto__: dart.getMethods(html$.MediaDevices.__proto__),
    [S$1.$enumerateDevices]: dart.fnType(async.Future$(core.List), []),
    [S$1.$getSupportedConstraints]: dart.fnType(core.Map, []),
    [S$1._getSupportedConstraints_1]: dart.fnType(dart.dynamic, []),
    [S$1.$getUserMedia]: dart.fnType(async.Future$(html$.MediaStream), [], [dart.nullable(core.Map)])
  }));
  dart.setLibraryUri(html$.MediaDevices, I[148]);
  dart.registerExtension("MediaDevices", html$.MediaDevices);
  html$.MediaEncryptedEvent = class MediaEncryptedEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 20729, 38, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MediaEncryptedEvent._create_1(type, eventInitDict_1);
      }
      return html$.MediaEncryptedEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MediaEncryptedEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MediaEncryptedEvent(type);
    }
    get [S$1.$initData]() {
      return this.initData;
    }
    get [S$1.$initDataType]() {
      return this.initDataType;
    }
  };
  dart.addTypeTests(html$.MediaEncryptedEvent);
  dart.addTypeCaches(html$.MediaEncryptedEvent);
  dart.setGetterSignature(html$.MediaEncryptedEvent, () => ({
    __proto__: dart.getGetters(html$.MediaEncryptedEvent.__proto__),
    [S$1.$initData]: dart.nullable(typed_data.ByteBuffer),
    [S$1.$initDataType]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaEncryptedEvent, I[148]);
  dart.registerExtension("MediaEncryptedEvent", html$.MediaEncryptedEvent);
  html$.MediaError = class MediaError extends _interceptors.Interceptor {
    get [S$.$code]() {
      return this.code;
    }
    get [$message]() {
      return this.message;
    }
  };
  dart.addTypeTests(html$.MediaError);
  dart.addTypeCaches(html$.MediaError);
  dart.setGetterSignature(html$.MediaError, () => ({
    __proto__: dart.getGetters(html$.MediaError.__proto__),
    [S$.$code]: core.int,
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaError, I[148]);
  dart.defineLazy(html$.MediaError, {
    /*html$.MediaError.MEDIA_ERR_ABORTED*/get MEDIA_ERR_ABORTED() {
      return 1;
    },
    /*html$.MediaError.MEDIA_ERR_DECODE*/get MEDIA_ERR_DECODE() {
      return 3;
    },
    /*html$.MediaError.MEDIA_ERR_NETWORK*/get MEDIA_ERR_NETWORK() {
      return 2;
    },
    /*html$.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED*/get MEDIA_ERR_SRC_NOT_SUPPORTED() {
      return 4;
    }
  }, false);
  dart.registerExtension("MediaError", html$.MediaError);
  html$.MediaKeyMessageEvent = class MediaKeyMessageEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 20783, 39, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 20783, 49, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new MediaKeyMessageEvent(type, eventInitDict);
    }
    get [$message]() {
      return this.message;
    }
    get [S$1.$messageType]() {
      return this.messageType;
    }
  };
  dart.addTypeTests(html$.MediaKeyMessageEvent);
  dart.addTypeCaches(html$.MediaKeyMessageEvent);
  dart.setGetterSignature(html$.MediaKeyMessageEvent, () => ({
    __proto__: dart.getGetters(html$.MediaKeyMessageEvent.__proto__),
    [$message]: dart.nullable(typed_data.ByteBuffer),
    [S$1.$messageType]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaKeyMessageEvent, I[148]);
  dart.registerExtension("MediaKeyMessageEvent", html$.MediaKeyMessageEvent);
  html$.MediaKeySession = class MediaKeySession extends html$.EventTarget {
    get [S$1.$closed]() {
      return js_util.promiseToFuture(dart.void, this.closed);
    }
    get [S$1.$expiration]() {
      return this.expiration;
    }
    get [S$1.$keyStatuses]() {
      return this.keyStatuses;
    }
    get [S$1.$sessionId]() {
      return this.sessionId;
    }
    [S.$close]() {
      return js_util.promiseToFuture(dart.dynamic, this.close());
    }
    [S$1.$generateRequest](initDataType, initData) {
      if (initDataType == null) dart.nullFailed(I[147], 20821, 33, "initDataType");
      return js_util.promiseToFuture(dart.dynamic, this.generateRequest(initDataType, initData));
    }
    [S$.$load](sessionId) {
      if (sessionId == null) dart.nullFailed(I[147], 20825, 22, "sessionId");
      return js_util.promiseToFuture(dart.dynamic, this.load(sessionId));
    }
    [$remove]() {
      return js_util.promiseToFuture(dart.dynamic, this.remove());
    }
    [S$1._update$1](...args) {
      return this.update.apply(this, args);
    }
    get [S$.$onMessage]() {
      return html$.MediaKeySession.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MediaKeySession);
  dart.addTypeCaches(html$.MediaKeySession);
  dart.setMethodSignature(html$.MediaKeySession, () => ({
    __proto__: dart.getMethods(html$.MediaKeySession.__proto__),
    [S.$close]: dart.fnType(async.Future, []),
    [S$1.$generateRequest]: dart.fnType(async.Future, [core.String, dart.dynamic]),
    [S$.$load]: dart.fnType(async.Future, [core.String]),
    [$remove]: dart.fnType(async.Future, []),
    [S$1._update$1]: dart.fnType(async.Future, [dart.dynamic])
  }));
  dart.setGetterSignature(html$.MediaKeySession, () => ({
    __proto__: dart.getGetters(html$.MediaKeySession.__proto__),
    [S$1.$closed]: async.Future$(dart.void),
    [S$1.$expiration]: dart.nullable(core.num),
    [S$1.$keyStatuses]: dart.nullable(html$.MediaKeyStatusMap),
    [S$1.$sessionId]: dart.nullable(core.String),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.MediaKeySession, I[148]);
  dart.defineLazy(html$.MediaKeySession, {
    /*html$.MediaKeySession.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("MediaKeySession", html$.MediaKeySession);
  html$.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
    get [S$.$size]() {
      return this.size;
    }
    [S.$get](...args) {
      return this.get.apply(this, args);
    }
    [S$.$has](...args) {
      return this.has.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MediaKeyStatusMap);
  dart.addTypeCaches(html$.MediaKeyStatusMap);
  dart.setMethodSignature(html$.MediaKeyStatusMap, () => ({
    __proto__: dart.getMethods(html$.MediaKeyStatusMap.__proto__),
    [S.$get]: dart.fnType(dart.nullable(core.Object), [dart.dynamic]),
    [S$.$has]: dart.fnType(core.bool, [dart.dynamic])
  }));
  dart.setGetterSignature(html$.MediaKeyStatusMap, () => ({
    __proto__: dart.getGetters(html$.MediaKeyStatusMap.__proto__),
    [S$.$size]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.MediaKeyStatusMap, I[148]);
  dart.registerExtension("MediaKeyStatusMap", html$.MediaKeyStatusMap);
  html$.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
    get [S$1.$keySystem]() {
      return this.keySystem;
    }
    [S$1.$createMediaKeys]() {
      return js_util.promiseToFuture(dart.dynamic, this.createMediaKeys());
    }
    [S$1.$getConfiguration]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$1._getConfiguration_1]()));
    }
    [S$1._getConfiguration_1](...args) {
      return this.getConfiguration.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MediaKeySystemAccess);
  dart.addTypeCaches(html$.MediaKeySystemAccess);
  dart.setMethodSignature(html$.MediaKeySystemAccess, () => ({
    __proto__: dart.getMethods(html$.MediaKeySystemAccess.__proto__),
    [S$1.$createMediaKeys]: dart.fnType(async.Future, []),
    [S$1.$getConfiguration]: dart.fnType(core.Map, []),
    [S$1._getConfiguration_1]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(html$.MediaKeySystemAccess, () => ({
    __proto__: dart.getGetters(html$.MediaKeySystemAccess.__proto__),
    [S$1.$keySystem]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaKeySystemAccess, I[148]);
  dart.registerExtension("MediaKeySystemAccess", html$.MediaKeySystemAccess);
  html$.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
    [S$1._createSession](...args) {
      return this.createSession.apply(this, args);
    }
    [S$1.$getStatusForPolicy](policy) {
      if (policy == null) dart.nullFailed(I[147], 20889, 45, "policy");
      return js_util.promiseToFuture(dart.dynamic, this.getStatusForPolicy(policy));
    }
    [S$1.$setServerCertificate](serverCertificate) {
      return js_util.promiseToFuture(dart.dynamic, this.setServerCertificate(serverCertificate));
    }
  };
  dart.addTypeTests(html$.MediaKeys);
  dart.addTypeCaches(html$.MediaKeys);
  dart.setMethodSignature(html$.MediaKeys, () => ({
    __proto__: dart.getMethods(html$.MediaKeys.__proto__),
    [S$1._createSession]: dart.fnType(html$.MediaKeySession, [], [dart.nullable(core.String)]),
    [S$1.$getStatusForPolicy]: dart.fnType(async.Future, [html$.MediaKeysPolicy]),
    [S$1.$setServerCertificate]: dart.fnType(async.Future, [dart.dynamic])
  }));
  dart.setLibraryUri(html$.MediaKeys, I[148]);
  dart.registerExtension("MediaKeys", html$.MediaKeys);
  html$.MediaKeysPolicy = class MediaKeysPolicy$ extends _interceptors.Interceptor {
    static new(init) {
      if (init == null) dart.nullFailed(I[147], 20907, 31, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.MediaKeysPolicy._create_1(init_1);
    }
    static _create_1(init) {
      return new MediaKeysPolicy(init);
    }
    get [S$1.$minHdcpVersion]() {
      return this.minHdcpVersion;
    }
  };
  dart.addTypeTests(html$.MediaKeysPolicy);
  dart.addTypeCaches(html$.MediaKeysPolicy);
  dart.setGetterSignature(html$.MediaKeysPolicy, () => ({
    __proto__: dart.getGetters(html$.MediaKeysPolicy.__proto__),
    [S$1.$minHdcpVersion]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaKeysPolicy, I[148]);
  dart.registerExtension("MediaKeysPolicy", html$.MediaKeysPolicy);
  html$.MediaList = class MediaList extends _interceptors.Interceptor {
    get [$length]() {
      return this.length;
    }
    get [S$1.$mediaText]() {
      return this.mediaText;
    }
    set [S$1.$mediaText](value) {
      this.mediaText = value;
    }
    [S$1.$appendMedium](...args) {
      return this.appendMedium.apply(this, args);
    }
    [S$1.$deleteMedium](...args) {
      return this.deleteMedium.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MediaList);
  dart.addTypeCaches(html$.MediaList);
  dart.setMethodSignature(html$.MediaList, () => ({
    __proto__: dart.getMethods(html$.MediaList.__proto__),
    [S$1.$appendMedium]: dart.fnType(dart.void, [core.String]),
    [S$1.$deleteMedium]: dart.fnType(dart.void, [core.String]),
    [S$.$item]: dart.fnType(dart.nullable(core.String), [core.int])
  }));
  dart.setGetterSignature(html$.MediaList, () => ({
    __proto__: dart.getGetters(html$.MediaList.__proto__),
    [$length]: dart.nullable(core.int),
    [S$1.$mediaText]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.MediaList, () => ({
    __proto__: dart.getSetters(html$.MediaList.__proto__),
    [S$1.$mediaText]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaList, I[148]);
  dart.registerExtension("MediaList", html$.MediaList);
  html$.MediaMetadata = class MediaMetadata$ extends _interceptors.Interceptor {
    static new(metadata = null) {
      if (metadata != null) {
        let metadata_1 = html_common.convertDartToNative_Dictionary(metadata);
        return html$.MediaMetadata._create_1(metadata_1);
      }
      return html$.MediaMetadata._create_2();
    }
    static _create_1(metadata) {
      return new MediaMetadata(metadata);
    }
    static _create_2() {
      return new MediaMetadata();
    }
    get [S$1.$album]() {
      return this.album;
    }
    set [S$1.$album](value) {
      this.album = value;
    }
    get [S$1.$artist]() {
      return this.artist;
    }
    set [S$1.$artist](value) {
      this.artist = value;
    }
    get [S$1.$artwork]() {
      return this.artwork;
    }
    set [S$1.$artwork](value) {
      this.artwork = value;
    }
    get [S.$title]() {
      return this.title;
    }
    set [S.$title](value) {
      this.title = value;
    }
  };
  dart.addTypeTests(html$.MediaMetadata);
  dart.addTypeCaches(html$.MediaMetadata);
  dart.setGetterSignature(html$.MediaMetadata, () => ({
    __proto__: dart.getGetters(html$.MediaMetadata.__proto__),
    [S$1.$album]: dart.nullable(core.String),
    [S$1.$artist]: dart.nullable(core.String),
    [S$1.$artwork]: dart.nullable(core.List),
    [S.$title]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.MediaMetadata, () => ({
    __proto__: dart.getSetters(html$.MediaMetadata.__proto__),
    [S$1.$album]: dart.nullable(core.String),
    [S$1.$artist]: dart.nullable(core.String),
    [S$1.$artwork]: dart.nullable(core.List),
    [S.$title]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaMetadata, I[148]);
  dart.registerExtension("MediaMetadata", html$.MediaMetadata);
  html$.MediaQueryList = class MediaQueryList extends html$.EventTarget {
    get [S.$matches]() {
      return this.matches;
    }
    get [S$.$media]() {
      return this.media;
    }
    [S$1.$addListener](...args) {
      return this.addListener.apply(this, args);
    }
    [S$1.$removeListener](...args) {
      return this.removeListener.apply(this, args);
    }
    get [S.$onChange]() {
      return html$.MediaQueryList.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MediaQueryList);
  dart.addTypeCaches(html$.MediaQueryList);
  dart.setMethodSignature(html$.MediaQueryList, () => ({
    __proto__: dart.getMethods(html$.MediaQueryList.__proto__),
    [S$1.$addListener]: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))]),
    [S$1.$removeListener]: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))])
  }));
  dart.setGetterSignature(html$.MediaQueryList, () => ({
    __proto__: dart.getGetters(html$.MediaQueryList.__proto__),
    [S.$matches]: core.bool,
    [S$.$media]: core.String,
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.MediaQueryList, I[148]);
  dart.defineLazy(html$.MediaQueryList, {
    /*html$.MediaQueryList.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("MediaQueryList", html$.MediaQueryList);
  html$.MediaQueryListEvent = class MediaQueryListEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 21015, 38, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MediaQueryListEvent._create_1(type, eventInitDict_1);
      }
      return html$.MediaQueryListEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MediaQueryListEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MediaQueryListEvent(type);
    }
    get [S.$matches]() {
      return this.matches;
    }
    get [S$.$media]() {
      return this.media;
    }
  };
  dart.addTypeTests(html$.MediaQueryListEvent);
  dart.addTypeCaches(html$.MediaQueryListEvent);
  dart.setGetterSignature(html$.MediaQueryListEvent, () => ({
    __proto__: dart.getGetters(html$.MediaQueryListEvent.__proto__),
    [S.$matches]: dart.nullable(core.bool),
    [S$.$media]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaQueryListEvent, I[148]);
  dart.registerExtension("MediaQueryListEvent", html$.MediaQueryListEvent);
  html$.MediaRecorder = class MediaRecorder$ extends html$.EventTarget {
    static new(stream, options = null) {
      if (stream == null) dart.nullFailed(I[147], 21051, 37, "stream");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.MediaRecorder._create_1(stream, options_1);
      }
      return html$.MediaRecorder._create_2(stream);
    }
    static _create_1(stream, options) {
      return new MediaRecorder(stream, options);
    }
    static _create_2(stream) {
      return new MediaRecorder(stream);
    }
    get [S$1.$audioBitsPerSecond]() {
      return this.audioBitsPerSecond;
    }
    get [S$1.$mimeType]() {
      return this.mimeType;
    }
    get [S$.$state]() {
      return this.state;
    }
    get [S$1.$stream]() {
      return this.stream;
    }
    get [S$1.$videoBitsPerSecond]() {
      return this.videoBitsPerSecond;
    }
    [S$.$pause](...args) {
      return this.pause.apply(this, args);
    }
    [S$1.$requestData](...args) {
      return this.requestData.apply(this, args);
    }
    [S$1.$resume](...args) {
      return this.resume.apply(this, args);
    }
    [S$.$start](...args) {
      return this.start.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    get [S.$onError]() {
      return html$.MediaRecorder.errorEvent.forTarget(this);
    }
    get [S.$onPause]() {
      return html$.MediaRecorder.pauseEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MediaRecorder);
  dart.addTypeCaches(html$.MediaRecorder);
  dart.setMethodSignature(html$.MediaRecorder, () => ({
    __proto__: dart.getMethods(html$.MediaRecorder.__proto__),
    [S$.$pause]: dart.fnType(dart.void, []),
    [S$1.$requestData]: dart.fnType(dart.void, []),
    [S$1.$resume]: dart.fnType(dart.void, []),
    [S$.$start]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$.$stop]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.MediaRecorder, () => ({
    __proto__: dart.getGetters(html$.MediaRecorder.__proto__),
    [S$1.$audioBitsPerSecond]: dart.nullable(core.int),
    [S$1.$mimeType]: dart.nullable(core.String),
    [S$.$state]: dart.nullable(core.String),
    [S$1.$stream]: dart.nullable(html$.MediaStream),
    [S$1.$videoBitsPerSecond]: dart.nullable(core.int),
    [S.$onError]: async.Stream$(html$.Event),
    [S.$onPause]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.MediaRecorder, I[148]);
  dart.defineLazy(html$.MediaRecorder, {
    /*html$.MediaRecorder.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.MediaRecorder.pauseEvent*/get pauseEvent() {
      return C[269] || CT.C269;
    }
  }, false);
  dart.registerExtension("MediaRecorder", html$.MediaRecorder);
  html$.MediaSession = class MediaSession extends _interceptors.Interceptor {
    get [S$1.$metadata]() {
      return this.metadata;
    }
    set [S$1.$metadata](value) {
      this.metadata = value;
    }
    get [S$1.$playbackState]() {
      return this.playbackState;
    }
    set [S$1.$playbackState](value) {
      this.playbackState = value;
    }
    [S$1.$setActionHandler](...args) {
      return this.setActionHandler.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MediaSession);
  dart.addTypeCaches(html$.MediaSession);
  dart.setMethodSignature(html$.MediaSession, () => ({
    __proto__: dart.getMethods(html$.MediaSession.__proto__),
    [S$1.$setActionHandler]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.void, []))])
  }));
  dart.setGetterSignature(html$.MediaSession, () => ({
    __proto__: dart.getGetters(html$.MediaSession.__proto__),
    [S$1.$metadata]: dart.nullable(html$.MediaMetadata),
    [S$1.$playbackState]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.MediaSession, () => ({
    __proto__: dart.getSetters(html$.MediaSession.__proto__),
    [S$1.$metadata]: dart.nullable(html$.MediaMetadata),
    [S$1.$playbackState]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MediaSession, I[148]);
  dart.registerExtension("MediaSession", html$.MediaSession);
  html$.MediaSettingsRange = class MediaSettingsRange extends _interceptors.Interceptor {
    get [S$1.$max]() {
      return this.max;
    }
    get [S$1.$min]() {
      return this.min;
    }
    get [S$1.$step]() {
      return this.step;
    }
  };
  dart.addTypeTests(html$.MediaSettingsRange);
  dart.addTypeCaches(html$.MediaSettingsRange);
  dart.setGetterSignature(html$.MediaSettingsRange, () => ({
    __proto__: dart.getGetters(html$.MediaSettingsRange.__proto__),
    [S$1.$max]: dart.nullable(core.num),
    [S$1.$min]: dart.nullable(core.num),
    [S$1.$step]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.MediaSettingsRange, I[148]);
  dart.registerExtension("MediaSettingsRange", html$.MediaSettingsRange);
  html$.MediaSource = class MediaSource$ extends html$.EventTarget {
    static new() {
      return html$.MediaSource._create_1();
    }
    static _create_1() {
      return new MediaSource();
    }
    static get supported() {
      return !!window.MediaSource;
    }
    get [S$1.$activeSourceBuffers]() {
      return this.activeSourceBuffers;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    set [S$.$duration](value) {
      this.duration = value;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$1.$sourceBuffers]() {
      return this.sourceBuffers;
    }
    [S$1.$addSourceBuffer](...args) {
      return this.addSourceBuffer.apply(this, args);
    }
    [S$1.$clearLiveSeekableRange](...args) {
      return this.clearLiveSeekableRange.apply(this, args);
    }
    [S$1.$endOfStream](...args) {
      return this.endOfStream.apply(this, args);
    }
    [S$1.$removeSourceBuffer](...args) {
      return this.removeSourceBuffer.apply(this, args);
    }
    [S$1.$setLiveSeekableRange](...args) {
      return this.setLiveSeekableRange.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MediaSource);
  dart.addTypeCaches(html$.MediaSource);
  dart.setMethodSignature(html$.MediaSource, () => ({
    __proto__: dart.getMethods(html$.MediaSource.__proto__),
    [S$1.$addSourceBuffer]: dart.fnType(html$.SourceBuffer, [core.String]),
    [S$1.$clearLiveSeekableRange]: dart.fnType(dart.void, []),
    [S$1.$endOfStream]: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    [S$1.$removeSourceBuffer]: dart.fnType(dart.void, [html$.SourceBuffer]),
    [S$1.$setLiveSeekableRange]: dart.fnType(dart.void, [core.num, core.num])
  }));
  dart.setGetterSignature(html$.MediaSource, () => ({
    __proto__: dart.getGetters(html$.MediaSource.__proto__),
    [S$1.$activeSourceBuffers]: dart.nullable(html$.SourceBufferList),
    [S$.$duration]: dart.nullable(core.num),
    [S.$readyState]: dart.nullable(core.String),
    [S$1.$sourceBuffers]: dart.nullable(html$.SourceBufferList)
  }));
  dart.setSetterSignature(html$.MediaSource, () => ({
    __proto__: dart.getSetters(html$.MediaSource.__proto__),
    [S$.$duration]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.MediaSource, I[148]);
  dart.registerExtension("MediaSource", html$.MediaSource);
  html$.MediaStream = class MediaStream$ extends html$.EventTarget {
    static new(stream_OR_tracks = null) {
      if (stream_OR_tracks == null) {
        return html$.MediaStream._create_1();
      }
      if (html$.MediaStream.is(stream_OR_tracks)) {
        return html$.MediaStream._create_2(stream_OR_tracks);
      }
      if (T$0.ListOfMediaStreamTrack().is(stream_OR_tracks)) {
        return html$.MediaStream._create_3(stream_OR_tracks);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1() {
      return new MediaStream();
    }
    static _create_2(stream_OR_tracks) {
      return new MediaStream(stream_OR_tracks);
    }
    static _create_3(stream_OR_tracks) {
      return new MediaStream(stream_OR_tracks);
    }
    get [S$1.$active]() {
      return this.active;
    }
    get [S.$id]() {
      return this.id;
    }
    [S$1.$addTrack](...args) {
      return this.addTrack.apply(this, args);
    }
    [S$.$clone](...args) {
      return this.clone.apply(this, args);
    }
    [S$1.$getAudioTracks](...args) {
      return this.getAudioTracks.apply(this, args);
    }
    [S$1.$getTrackById](...args) {
      return this.getTrackById.apply(this, args);
    }
    [S$1.$getTracks](...args) {
      return this.getTracks.apply(this, args);
    }
    [S$1.$getVideoTracks](...args) {
      return this.getVideoTracks.apply(this, args);
    }
    [S$1.$removeTrack](...args) {
      return this.removeTrack.apply(this, args);
    }
    get [S$1.$onAddTrack]() {
      return html$.MediaStream.addTrackEvent.forTarget(this);
    }
    get [S$1.$onRemoveTrack]() {
      return html$.MediaStream.removeTrackEvent.forTarget(this);
    }
    static get supported() {
      return !!(html$.window.navigator.getUserMedia || html$.window.navigator.webkitGetUserMedia || html$.window.navigator.mozGetUserMedia || html$.window.navigator.msGetUserMedia);
    }
  };
  dart.addTypeTests(html$.MediaStream);
  dart.addTypeCaches(html$.MediaStream);
  dart.setMethodSignature(html$.MediaStream, () => ({
    __proto__: dart.getMethods(html$.MediaStream.__proto__),
    [S$1.$addTrack]: dart.fnType(dart.void, [html$.MediaStreamTrack]),
    [S$.$clone]: dart.fnType(html$.MediaStream, []),
    [S$1.$getAudioTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
    [S$1.$getTrackById]: dart.fnType(dart.nullable(html$.MediaStreamTrack), [core.String]),
    [S$1.$getTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
    [S$1.$getVideoTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
    [S$1.$removeTrack]: dart.fnType(dart.void, [html$.MediaStreamTrack])
  }));
  dart.setGetterSignature(html$.MediaStream, () => ({
    __proto__: dart.getGetters(html$.MediaStream.__proto__),
    [S$1.$active]: dart.nullable(core.bool),
    [S.$id]: dart.nullable(core.String),
    [S$1.$onAddTrack]: async.Stream$(html$.Event),
    [S$1.$onRemoveTrack]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.MediaStream, I[148]);
  dart.defineLazy(html$.MediaStream, {
    /*html$.MediaStream.addTrackEvent*/get addTrackEvent() {
      return C[346] || CT.C346;
    },
    /*html$.MediaStream.removeTrackEvent*/get removeTrackEvent() {
      return C[347] || CT.C347;
    }
  }, false);
  dart.registerExtension("MediaStream", html$.MediaStream);
  html$.MediaStreamEvent = class MediaStreamEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 21282, 35, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MediaStreamEvent._create_1(type, eventInitDict_1);
      }
      return html$.MediaStreamEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MediaStreamEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MediaStreamEvent(type);
    }
    static get supported() {
      return html_common.Device.isEventTypeSupported("MediaStreamEvent");
    }
    get [S$1.$stream]() {
      return this.stream;
    }
  };
  dart.addTypeTests(html$.MediaStreamEvent);
  dart.addTypeCaches(html$.MediaStreamEvent);
  dart.setGetterSignature(html$.MediaStreamEvent, () => ({
    __proto__: dart.getGetters(html$.MediaStreamEvent.__proto__),
    [S$1.$stream]: dart.nullable(html$.MediaStream)
  }));
  dart.setLibraryUri(html$.MediaStreamEvent, I[148]);
  dart.registerExtension("MediaStreamEvent", html$.MediaStreamEvent);
  html$.MediaStreamTrackEvent = class MediaStreamTrackEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 21411, 40, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 21411, 50, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MediaStreamTrackEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new MediaStreamTrackEvent(type, eventInitDict);
    }
    static get supported() {
      return html_common.Device.isEventTypeSupported("MediaStreamTrackEvent");
    }
    get [S$1.$track]() {
      return this.track;
    }
  };
  dart.addTypeTests(html$.MediaStreamTrackEvent);
  dart.addTypeCaches(html$.MediaStreamTrackEvent);
  dart.setGetterSignature(html$.MediaStreamTrackEvent, () => ({
    __proto__: dart.getGetters(html$.MediaStreamTrackEvent.__proto__),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack)
  }));
  dart.setLibraryUri(html$.MediaStreamTrackEvent, I[148]);
  dart.registerExtension("MediaStreamTrackEvent", html$.MediaStreamTrackEvent);
  html$.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
    get [S$1.$jsHeapSizeLimit]() {
      return this.jsHeapSizeLimit;
    }
    get [S$1.$totalJSHeapSize]() {
      return this.totalJSHeapSize;
    }
    get [S$1.$usedJSHeapSize]() {
      return this.usedJSHeapSize;
    }
  };
  dart.addTypeTests(html$.MemoryInfo);
  dart.addTypeCaches(html$.MemoryInfo);
  dart.setGetterSignature(html$.MemoryInfo, () => ({
    __proto__: dart.getGetters(html$.MemoryInfo.__proto__),
    [S$1.$jsHeapSizeLimit]: dart.nullable(core.int),
    [S$1.$totalJSHeapSize]: dart.nullable(core.int),
    [S$1.$usedJSHeapSize]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.MemoryInfo, I[148]);
  dart.registerExtension("MemoryInfo", html$.MemoryInfo);
  html$.MenuElement = class MenuElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("menu");
    }
  };
  (html$.MenuElement.created = function() {
    html$.MenuElement.__proto__.created.call(this);
    ;
  }).prototype = html$.MenuElement.prototype;
  dart.addTypeTests(html$.MenuElement);
  dart.addTypeCaches(html$.MenuElement);
  dart.setLibraryUri(html$.MenuElement, I[148]);
  dart.registerExtension("HTMLMenuElement", html$.MenuElement);
  html$.MessageChannel = class MessageChannel$ extends _interceptors.Interceptor {
    static new() {
      return html$.MessageChannel._create_1();
    }
    static _create_1() {
      return new MessageChannel();
    }
    get [S$1.$port1]() {
      return this.port1;
    }
    get [S$1.$port2]() {
      return this.port2;
    }
  };
  dart.addTypeTests(html$.MessageChannel);
  dart.addTypeCaches(html$.MessageChannel);
  dart.setGetterSignature(html$.MessageChannel, () => ({
    __proto__: dart.getGetters(html$.MessageChannel.__proto__),
    [S$1.$port1]: html$.MessagePort,
    [S$1.$port2]: html$.MessagePort
  }));
  dart.setLibraryUri(html$.MessageChannel, I[148]);
  dart.registerExtension("MessageChannel", html$.MessageChannel);
  html$.MessageEvent = class MessageEvent$ extends html$.Event {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 21514, 31, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
      if (canBubble == null) dart.nullFailed(I[147], 21515, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
      if (cancelable == null) dart.nullFailed(I[147], 21516, 12, "cancelable");
      let data = opts && 'data' in opts ? opts.data : null;
      let origin = opts && 'origin' in opts ? opts.origin : null;
      let lastEventId = opts && 'lastEventId' in opts ? opts.lastEventId : null;
      let source = opts && 'source' in opts ? opts.source : null;
      let messagePorts = opts && 'messagePorts' in opts ? opts.messagePorts : C[348] || CT.C348;
      if (messagePorts == null) dart.nullFailed(I[147], 21521, 25, "messagePorts");
      if (source == null) {
        source = html$.window;
      }
      if (!dart.test(html_common.Device.isIE)) {
        return new MessageEvent(type, {bubbles: canBubble, cancelable: cancelable, data: data, origin: origin, lastEventId: lastEventId, source: source, ports: messagePorts});
      }
      let event = html$.MessageEvent.as(html$.document[S._createEvent]("MessageEvent"));
      event[S$1._initMessageEvent](type, canBubble, cancelable, data, origin, lastEventId, source, messagePorts);
      return event;
    }
    get [S$.$data]() {
      return html_common.convertNativeToDart_SerializedScriptValue(this[S$1._get_data]);
    }
    get [S$1._get_data]() {
      return this.data;
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 21556, 33, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MessageEvent._create_1(type, eventInitDict_1);
      }
      return html$.MessageEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MessageEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MessageEvent(type);
    }
    get [S$1.$lastEventId]() {
      return this.lastEventId;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$1.$ports]() {
      return this.ports;
    }
    get [S.$source]() {
      return html$._convertNativeToDart_EventTarget(this[S$1._get_source]);
    }
    get [S$1._get_source]() {
      return this.source;
    }
    get [S$1.$suborigin]() {
      return this.suborigin;
    }
    [S$1._initMessageEvent](typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, portsArg) {
      let sourceArg_1 = html$._convertDartToNative_EventTarget(sourceArg);
      this[S$1._initMessageEvent_1](typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg_1, portsArg);
      return;
    }
    [S$1._initMessageEvent_1](...args) {
      return this.initMessageEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MessageEvent);
  dart.addTypeCaches(html$.MessageEvent);
  dart.setMethodSignature(html$.MessageEvent, () => ({
    __proto__: dart.getMethods(html$.MessageEvent.__proto__),
    [S$1._initMessageEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.Object), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(html$.EventTarget), dart.nullable(core.List$(html$.MessagePort))]),
    [S$1._initMessageEvent_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.nullable(core.List$(html$.MessagePort))])
  }));
  dart.setGetterSignature(html$.MessageEvent, () => ({
    __proto__: dart.getGetters(html$.MessageEvent.__proto__),
    [S$.$data]: dart.dynamic,
    [S$1._get_data]: dart.dynamic,
    [S$1.$lastEventId]: core.String,
    [S$.$origin]: core.String,
    [S$1.$ports]: core.List$(html$.MessagePort),
    [S.$source]: dart.nullable(html$.EventTarget),
    [S$1._get_source]: dart.dynamic,
    [S$1.$suborigin]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MessageEvent, I[148]);
  dart.registerExtension("MessageEvent", html$.MessageEvent);
  html$.MessagePort = class MessagePort extends html$.EventTarget {
    [S.$addEventListener](type, listener, useCapture = null) {
      if (type == null) dart.nullFailed(I[147], 21613, 32, "type");
      if (type === "message") {
        this[S$1._start$4]();
      }
      super[S.$addEventListener](type, listener, useCapture);
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$.$postMessage](message, transfer = null) {
      if (transfer != null) {
        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
        this[S$0._postMessage_1](message_1, transfer);
        return;
      }
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[S$0._postMessage_2](message_1);
      return;
    }
    [S$0._postMessage_1](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._postMessage_2](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$1._start$4](...args) {
      return this.start.apply(this, args);
    }
    get [S$.$onMessage]() {
      return html$.MessagePort.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MessagePort);
  dart.addTypeCaches(html$.MessagePort);
  dart.setMethodSignature(html$.MessagePort, () => ({
    __proto__: dart.getMethods(html$.MessagePort.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
    [S$0._postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S$1._start$4]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.MessagePort, () => ({
    __proto__: dart.getGetters(html$.MessagePort.__proto__),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.MessagePort, I[148]);
  dart.defineLazy(html$.MessagePort, {
    /*html$.MessagePort.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("MessagePort", html$.MessagePort);
  html$.MetaElement = class MetaElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("meta");
    }
    get [S$0.$content]() {
      return this.content;
    }
    set [S$0.$content](value) {
      this.content = value;
    }
    get [S$1.$httpEquiv]() {
      return this.httpEquiv;
    }
    set [S$1.$httpEquiv](value) {
      this.httpEquiv = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
  };
  (html$.MetaElement.created = function() {
    html$.MetaElement.__proto__.created.call(this);
    ;
  }).prototype = html$.MetaElement.prototype;
  dart.addTypeTests(html$.MetaElement);
  dart.addTypeCaches(html$.MetaElement);
  dart.setGetterSignature(html$.MetaElement, () => ({
    __proto__: dart.getGetters(html$.MetaElement.__proto__),
    [S$0.$content]: core.String,
    [S$1.$httpEquiv]: dart.nullable(core.String),
    [$name]: core.String
  }));
  dart.setSetterSignature(html$.MetaElement, () => ({
    __proto__: dart.getSetters(html$.MetaElement.__proto__),
    [S$0.$content]: core.String,
    [S$1.$httpEquiv]: dart.nullable(core.String),
    [$name]: core.String
  }));
  dart.setLibraryUri(html$.MetaElement, I[148]);
  dart.registerExtension("HTMLMetaElement", html$.MetaElement);
  html$.Metadata = class Metadata extends _interceptors.Interceptor {
    get [S$1.$modificationTime]() {
      return html_common.convertNativeToDart_DateTime(this[S$1._get_modificationTime]);
    }
    get [S$1._get_modificationTime]() {
      return this.modificationTime;
    }
    get [S$.$size]() {
      return this.size;
    }
  };
  dart.addTypeTests(html$.Metadata);
  dart.addTypeCaches(html$.Metadata);
  dart.setGetterSignature(html$.Metadata, () => ({
    __proto__: dart.getGetters(html$.Metadata.__proto__),
    [S$1.$modificationTime]: core.DateTime,
    [S$1._get_modificationTime]: dart.dynamic,
    [S$.$size]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.Metadata, I[148]);
  dart.registerExtension("Metadata", html$.Metadata);
  html$.MeterElement = class MeterElement extends html$.HtmlElement {
    static new() {
      return html$.MeterElement.as(html$.document[S.$createElement]("meter"));
    }
    static get supported() {
      return html$.Element.isTagSupported("meter");
    }
    get [S$1.$high]() {
      return this.high;
    }
    set [S$1.$high](value) {
      this.high = value;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [S$1.$low]() {
      return this.low;
    }
    set [S$1.$low](value) {
      this.low = value;
    }
    get [S$1.$max]() {
      return this.max;
    }
    set [S$1.$max](value) {
      this.max = value;
    }
    get [S$1.$min]() {
      return this.min;
    }
    set [S$1.$min](value) {
      this.min = value;
    }
    get [S$1.$optimum]() {
      return this.optimum;
    }
    set [S$1.$optimum](value) {
      this.optimum = value;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.MeterElement.created = function() {
    html$.MeterElement.__proto__.created.call(this);
    ;
  }).prototype = html$.MeterElement.prototype;
  dart.addTypeTests(html$.MeterElement);
  dart.addTypeCaches(html$.MeterElement);
  dart.setGetterSignature(html$.MeterElement, () => ({
    __proto__: dart.getGetters(html$.MeterElement.__proto__),
    [S$1.$high]: dart.nullable(core.num),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [S$1.$low]: dart.nullable(core.num),
    [S$1.$max]: dart.nullable(core.num),
    [S$1.$min]: dart.nullable(core.num),
    [S$1.$optimum]: dart.nullable(core.num),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.MeterElement, () => ({
    __proto__: dart.getSetters(html$.MeterElement.__proto__),
    [S$1.$high]: dart.nullable(core.num),
    [S$1.$low]: dart.nullable(core.num),
    [S$1.$max]: dart.nullable(core.num),
    [S$1.$min]: dart.nullable(core.num),
    [S$1.$optimum]: dart.nullable(core.num),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.MeterElement, I[148]);
  dart.registerExtension("HTMLMeterElement", html$.MeterElement);
  html$.MidiAccess = class MidiAccess extends html$.EventTarget {
    get [S$1.$inputs]() {
      return this.inputs;
    }
    get [S$1.$outputs]() {
      return this.outputs;
    }
    get [S$1.$sysexEnabled]() {
      return this.sysexEnabled;
    }
  };
  dart.addTypeTests(html$.MidiAccess);
  dart.addTypeCaches(html$.MidiAccess);
  dart.setGetterSignature(html$.MidiAccess, () => ({
    __proto__: dart.getGetters(html$.MidiAccess.__proto__),
    [S$1.$inputs]: dart.nullable(html$.MidiInputMap),
    [S$1.$outputs]: dart.nullable(html$.MidiOutputMap),
    [S$1.$sysexEnabled]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.MidiAccess, I[148]);
  dart.registerExtension("MIDIAccess", html$.MidiAccess);
  html$.MidiConnectionEvent = class MidiConnectionEvent extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 21807, 38, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MidiConnectionEvent._create_1(type, eventInitDict_1);
      }
      return html$.MidiConnectionEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MIDIConnectionEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MIDIConnectionEvent(type);
    }
    get [S$.$port]() {
      return this.port;
    }
  };
  dart.addTypeTests(html$.MidiConnectionEvent);
  dart.addTypeCaches(html$.MidiConnectionEvent);
  dart.setGetterSignature(html$.MidiConnectionEvent, () => ({
    __proto__: dart.getGetters(html$.MidiConnectionEvent.__proto__),
    [S$.$port]: dart.nullable(html$.MidiPort)
  }));
  dart.setLibraryUri(html$.MidiConnectionEvent, I[148]);
  dart.registerExtension("MIDIConnectionEvent", html$.MidiConnectionEvent);
  html$.MidiPort = class MidiPort extends html$.EventTarget {
    get [S$1.$connection]() {
      return this.connection;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$1.$manufacturer]() {
      return this.manufacturer;
    }
    get [$name]() {
      return this.name;
    }
    get [S$.$state]() {
      return this.state;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S.$version]() {
      return this.version;
    }
    [S.$close]() {
      return js_util.promiseToFuture(dart.dynamic, this.close());
    }
    [S.$open]() {
      return js_util.promiseToFuture(dart.dynamic, this.open());
    }
  };
  dart.addTypeTests(html$.MidiPort);
  dart.addTypeCaches(html$.MidiPort);
  dart.setMethodSignature(html$.MidiPort, () => ({
    __proto__: dart.getMethods(html$.MidiPort.__proto__),
    [S.$close]: dart.fnType(async.Future, []),
    [S.$open]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(html$.MidiPort, () => ({
    __proto__: dart.getGetters(html$.MidiPort.__proto__),
    [S$1.$connection]: dart.nullable(core.String),
    [S.$id]: dart.nullable(core.String),
    [S$1.$manufacturer]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$.$state]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String),
    [S.$version]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MidiPort, I[148]);
  dart.registerExtension("MIDIPort", html$.MidiPort);
  html$.MidiInput = class MidiInput extends html$.MidiPort {
    get [S$1.$onMidiMessage]() {
      return html$.MidiInput.midiMessageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.MidiInput);
  dart.addTypeCaches(html$.MidiInput);
  dart.setGetterSignature(html$.MidiInput, () => ({
    __proto__: dart.getGetters(html$.MidiInput.__proto__),
    [S$1.$onMidiMessage]: async.Stream$(html$.MidiMessageEvent)
  }));
  dart.setLibraryUri(html$.MidiInput, I[148]);
  dart.defineLazy(html$.MidiInput, {
    /*html$.MidiInput.midiMessageEvent*/get midiMessageEvent() {
      return C[349] || CT.C349;
    }
  }, false);
  dart.registerExtension("MIDIInput", html$.MidiInput);
  const Interceptor_MapMixin$36 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
  (Interceptor_MapMixin$36.new = function() {
    Interceptor_MapMixin$36.__proto__.new.call(this);
  }).prototype = Interceptor_MapMixin$36.prototype;
  dart.applyMixin(Interceptor_MapMixin$36, collection.MapMixin$(core.String, dart.dynamic));
  html$.MidiInputMap = class MidiInputMap extends Interceptor_MapMixin$36 {
    [S$1._getItem](key) {
      if (key == null) dart.nullFailed(I[147], 21859, 24, "key");
      return html_common.convertNativeToDart_Dictionary(this.get(key));
    }
    [$addAll](other) {
      T$0.MapOfString$dynamic().as(other);
      if (other == null) dart.nullFailed(I[147], 21862, 36, "other");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$containsValue](value) {
      return this[$values][$any](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 21866, 52, "e");
        return dart.equals(e, value);
      }, T$0.MapTobool()));
    }
    [$containsKey](key) {
      return this[S$1._getItem](core.String.as(key)) != null;
    }
    [$_get](key) {
      return this[S$1._getItem](core.String.as(key));
    }
    [$forEach](f) {
      if (f == null) dart.nullFailed(I[147], 21872, 21, "f");
      let entries = this.entries();
      while (true) {
        let entry = entries.next();
        if (entry.done) return;
        f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
      }
    }
    get [$keys]() {
      let keys = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 21884, 14, "k");
        return keys[$add](k);
      }, T$0.StringAnddynamicTovoid()));
      return keys;
    }
    get [$values]() {
      let values = T$0.JSArrayOfMap().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 21890, 14, "k");
        return values[$add](core.Map.as(v));
      }, T$0.StringAnddynamicTovoid()));
      return values;
    }
    get [$length]() {
      return this.size;
    }
    get [$isEmpty]() {
      return this[$length] === 0;
    }
    get [$isNotEmpty]() {
      return !dart.test(this[$isEmpty]);
    }
    [$_set](key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 21900, 28, "key");
      dart.throw(new core.UnsupportedError.new("Not supported"));
      return value$;
    }
    [$putIfAbsent](key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 21904, 30, "key");
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 21904, 43, "ifAbsent");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$remove](key) {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$clear]() {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
  };
  dart.addTypeTests(html$.MidiInputMap);
  dart.addTypeCaches(html$.MidiInputMap);
  dart.setMethodSignature(html$.MidiInputMap, () => ({
    __proto__: dart.getMethods(html$.MidiInputMap.__proto__),
    [S$1._getItem]: dart.fnType(dart.nullable(core.Map), [core.String]),
    [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
    [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
    [$_get]: dart.fnType(dart.nullable(core.Map), [dart.dynamic]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$remove]: dart.fnType(core.String, [dart.dynamic]),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.MidiInputMap, () => ({
    __proto__: dart.getGetters(html$.MidiInputMap.__proto__),
    [$keys]: core.Iterable$(core.String),
    [$values]: core.Iterable$(core.Map)
  }));
  dart.setLibraryUri(html$.MidiInputMap, I[148]);
  dart.registerExtension("MIDIInputMap", html$.MidiInputMap);
  html$.MidiMessageEvent = class MidiMessageEvent extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 21927, 35, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MidiMessageEvent._create_1(type, eventInitDict_1);
      }
      return html$.MidiMessageEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MIDIMessageEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MIDIMessageEvent(type);
    }
    get [S$.$data]() {
      return this.data;
    }
  };
  dart.addTypeTests(html$.MidiMessageEvent);
  dart.addTypeCaches(html$.MidiMessageEvent);
  dart.setGetterSignature(html$.MidiMessageEvent, () => ({
    __proto__: dart.getGetters(html$.MidiMessageEvent.__proto__),
    [S$.$data]: dart.nullable(typed_data.Uint8List)
  }));
  dart.setLibraryUri(html$.MidiMessageEvent, I[148]);
  dart.registerExtension("MIDIMessageEvent", html$.MidiMessageEvent);
  html$.MidiOutput = class MidiOutput extends html$.MidiPort {
    [S$1.$send](...args) {
      return this.send.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MidiOutput);
  dart.addTypeCaches(html$.MidiOutput);
  dart.setMethodSignature(html$.MidiOutput, () => ({
    __proto__: dart.getMethods(html$.MidiOutput.__proto__),
    [S$1.$send]: dart.fnType(dart.void, [typed_data.Uint8List], [dart.nullable(core.num)])
  }));
  dart.setLibraryUri(html$.MidiOutput, I[148]);
  dart.registerExtension("MIDIOutput", html$.MidiOutput);
  const Interceptor_MapMixin$36$ = class Interceptor_MapMixin extends _interceptors.Interceptor {};
  (Interceptor_MapMixin$36$.new = function() {
    Interceptor_MapMixin$36$.__proto__.new.call(this);
  }).prototype = Interceptor_MapMixin$36$.prototype;
  dart.applyMixin(Interceptor_MapMixin$36$, collection.MapMixin$(core.String, dart.dynamic));
  html$.MidiOutputMap = class MidiOutputMap extends Interceptor_MapMixin$36$ {
    [S$1._getItem](key) {
      if (key == null) dart.nullFailed(I[147], 21965, 24, "key");
      return html_common.convertNativeToDart_Dictionary(this.get(key));
    }
    [$addAll](other) {
      T$0.MapOfString$dynamic().as(other);
      if (other == null) dart.nullFailed(I[147], 21968, 36, "other");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$containsValue](value) {
      return this[$values][$any](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 21972, 52, "e");
        return dart.equals(e, value);
      }, T$0.MapTobool()));
    }
    [$containsKey](key) {
      return this[S$1._getItem](core.String.as(key)) != null;
    }
    [$_get](key) {
      return this[S$1._getItem](core.String.as(key));
    }
    [$forEach](f) {
      if (f == null) dart.nullFailed(I[147], 21978, 21, "f");
      let entries = this.entries();
      while (true) {
        let entry = entries.next();
        if (entry.done) return;
        f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
      }
    }
    get [$keys]() {
      let keys = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 21990, 14, "k");
        return keys[$add](k);
      }, T$0.StringAnddynamicTovoid()));
      return keys;
    }
    get [$values]() {
      let values = T$0.JSArrayOfMap().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 21996, 14, "k");
        return values[$add](core.Map.as(v));
      }, T$0.StringAnddynamicTovoid()));
      return values;
    }
    get [$length]() {
      return this.size;
    }
    get [$isEmpty]() {
      return this[$length] === 0;
    }
    get [$isNotEmpty]() {
      return !dart.test(this[$isEmpty]);
    }
    [$_set](key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 22006, 28, "key");
      dart.throw(new core.UnsupportedError.new("Not supported"));
      return value$;
    }
    [$putIfAbsent](key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 22010, 30, "key");
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 22010, 43, "ifAbsent");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$remove](key) {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$clear]() {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
  };
  dart.addTypeTests(html$.MidiOutputMap);
  dart.addTypeCaches(html$.MidiOutputMap);
  dart.setMethodSignature(html$.MidiOutputMap, () => ({
    __proto__: dart.getMethods(html$.MidiOutputMap.__proto__),
    [S$1._getItem]: dart.fnType(dart.nullable(core.Map), [core.String]),
    [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
    [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
    [$_get]: dart.fnType(dart.nullable(core.Map), [dart.dynamic]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$remove]: dart.fnType(core.String, [dart.dynamic]),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.MidiOutputMap, () => ({
    __proto__: dart.getGetters(html$.MidiOutputMap.__proto__),
    [$keys]: core.Iterable$(core.String),
    [$values]: core.Iterable$(core.Map)
  }));
  dart.setLibraryUri(html$.MidiOutputMap, I[148]);
  dart.registerExtension("MIDIOutputMap", html$.MidiOutputMap);
  html$.MimeType = class MimeType extends _interceptors.Interceptor {
    get [S$1.$description]() {
      return this.description;
    }
    get [S$1.$enabledPlugin]() {
      return this.enabledPlugin;
    }
    get [S$1.$suffixes]() {
      return this.suffixes;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.MimeType);
  dart.addTypeCaches(html$.MimeType);
  dart.setGetterSignature(html$.MimeType, () => ({
    __proto__: dart.getGetters(html$.MimeType.__proto__),
    [S$1.$description]: dart.nullable(core.String),
    [S$1.$enabledPlugin]: dart.nullable(html$.Plugin),
    [S$1.$suffixes]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MimeType, I[148]);
  dart.registerExtension("MimeType", html$.MimeType);
  const Interceptor_ListMixin$36$2 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$2.new = function() {
    Interceptor_ListMixin$36$2.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$2.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$2, collection.ListMixin$(html$.MimeType));
  const Interceptor_ImmutableListMixin$36$2 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$2 {};
  (Interceptor_ImmutableListMixin$36$2.new = function() {
    Interceptor_ImmutableListMixin$36$2.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$2.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$2, html$.ImmutableListMixin$(html$.MimeType));
  html$.MimeTypeArray = class MimeTypeArray extends Interceptor_ImmutableListMixin$36$2 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 22085, 28, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 22091, 25, "index");
      html$.MimeType.as(value);
      if (value == null) dart.nullFailed(I[147], 22091, 41, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 22097, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 22125, 26, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
  };
  html$.MimeTypeArray.prototype[dart.isList] = true;
  dart.addTypeTests(html$.MimeTypeArray);
  dart.addTypeCaches(html$.MimeTypeArray);
  html$.MimeTypeArray[dart.implements] = () => [core.List$(html$.MimeType), _js_helper.JavaScriptIndexingBehavior$(html$.MimeType)];
  dart.setMethodSignature(html$.MimeTypeArray, () => ({
    __proto__: dart.getMethods(html$.MimeTypeArray.__proto__),
    [$_get]: dart.fnType(html$.MimeType, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.MimeType), [core.int]),
    [S$1.$namedItem]: dart.fnType(dart.nullable(html$.MimeType), [core.String])
  }));
  dart.setGetterSignature(html$.MimeTypeArray, () => ({
    __proto__: dart.getGetters(html$.MimeTypeArray.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.MimeTypeArray, () => ({
    __proto__: dart.getSetters(html$.MimeTypeArray.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.MimeTypeArray, I[148]);
  dart.registerExtension("MimeTypeArray", html$.MimeTypeArray);
  html$.ModElement = class ModElement extends html$.HtmlElement {
    get [S$1.$cite]() {
      return this.cite;
    }
    set [S$1.$cite](value) {
      this.cite = value;
    }
    get [S$1.$dateTime]() {
      return this.dateTime;
    }
    set [S$1.$dateTime](value) {
      this.dateTime = value;
    }
  };
  (html$.ModElement.created = function() {
    html$.ModElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ModElement.prototype;
  dart.addTypeTests(html$.ModElement);
  dart.addTypeCaches(html$.ModElement);
  dart.setGetterSignature(html$.ModElement, () => ({
    __proto__: dart.getGetters(html$.ModElement.__proto__),
    [S$1.$cite]: core.String,
    [S$1.$dateTime]: core.String
  }));
  dart.setSetterSignature(html$.ModElement, () => ({
    __proto__: dart.getSetters(html$.ModElement.__proto__),
    [S$1.$cite]: core.String,
    [S$1.$dateTime]: core.String
  }));
  dart.setLibraryUri(html$.ModElement, I[148]);
  dart.registerExtension("HTMLModElement", html$.ModElement);
  html$.MouseEvent = class MouseEvent$ extends html$.UIEvent {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 22171, 29, "type");
      let view = opts && 'view' in opts ? opts.view : null;
      let detail = opts && 'detail' in opts ? opts.detail : 0;
      if (detail == null) dart.nullFailed(I[147], 22173, 11, "detail");
      let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
      if (screenX == null) dart.nullFailed(I[147], 22174, 11, "screenX");
      let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
      if (screenY == null) dart.nullFailed(I[147], 22175, 11, "screenY");
      let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
      if (clientX == null) dart.nullFailed(I[147], 22176, 11, "clientX");
      let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
      if (clientY == null) dart.nullFailed(I[147], 22177, 11, "clientY");
      let button = opts && 'button' in opts ? opts.button : 0;
      if (button == null) dart.nullFailed(I[147], 22178, 11, "button");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 22179, 12, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 22180, 12, "cancelable");
      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
      if (ctrlKey == null) dart.nullFailed(I[147], 22181, 12, "ctrlKey");
      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
      if (altKey == null) dart.nullFailed(I[147], 22182, 12, "altKey");
      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
      if (shiftKey == null) dart.nullFailed(I[147], 22183, 12, "shiftKey");
      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
      if (metaKey == null) dart.nullFailed(I[147], 22184, 12, "metaKey");
      let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
      if (view == null) {
        view = html$.window;
      }
      let event = html$.MouseEvent.as(html$.document[S._createEvent]("MouseEvent"));
      event[S$1._initMouseEvent](type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
      return event;
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 22209, 31, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.MouseEvent._create_1(type, eventInitDict_1);
      }
      return html$.MouseEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MouseEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MouseEvent(type);
    }
    get [S$1.$altKey]() {
      return this.altKey;
    }
    get [S$1.$button]() {
      return this.button;
    }
    get [S$1.$buttons]() {
      return this.buttons;
    }
    get [S$1._clientX]() {
      return this.clientX;
    }
    get [S$1._clientY]() {
      return this.clientY;
    }
    get [S$1.$ctrlKey]() {
      return this.ctrlKey;
    }
    get [S$1.$fromElement]() {
      return this.fromElement;
    }
    get [S$1._layerX]() {
      return this.layerX;
    }
    get [S$1._layerY]() {
      return this.layerY;
    }
    get [S$1.$metaKey]() {
      return this.metaKey;
    }
    get [S$1._movementX]() {
      return this.movementX;
    }
    get [S$1._movementY]() {
      return this.movementY;
    }
    get [S$1._pageX]() {
      return this.pageX;
    }
    get [S$1._pageY]() {
      return this.pageY;
    }
    get [S$1.$region]() {
      return this.region;
    }
    get [S$1.$relatedTarget]() {
      return html$._convertNativeToDart_EventTarget(this[S$1._get_relatedTarget]);
    }
    get [S$1._get_relatedTarget]() {
      return this.relatedTarget;
    }
    get [S$1._screenX]() {
      return this.screenX;
    }
    get [S$1._screenY]() {
      return this.screenY;
    }
    get [S$1.$shiftKey]() {
      return this.shiftKey;
    }
    get [S$1.$toElement]() {
      return this.toElement;
    }
    [S$1.$getModifierState](...args) {
      return this.getModifierState.apply(this, args);
    }
    [S$1._initMouseEvent](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
      let relatedTarget_1 = html$._convertDartToNative_EventTarget(relatedTarget);
      this[S$1._initMouseEvent_1](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
      return;
    }
    [S$1._initMouseEvent_1](...args) {
      return this.initMouseEvent.apply(this, args);
    }
    get [S.$client]() {
      return new (T$0.PointOfnum()).new(this[S$1._clientX], this[S$1._clientY]);
    }
    get [S$1.$movement]() {
      return new (T$0.PointOfnum()).new(dart.nullCheck(this[S$1._movementX]), dart.nullCheck(this[S$1._movementY]));
    }
    get [S.$offset]() {
      if (!!this.offsetX) {
        let x = this.offsetX;
        let y = this.offsetY;
        return new (T$0.PointOfnum()).new(core.num.as(x), core.num.as(y));
      } else {
        if (!html$.Element.is(this[S.$target])) {
          dart.throw(new core.UnsupportedError.new("offsetX is only supported on elements"));
        }
        let target = html$.Element.as(this[S.$target]);
        let point = this[S.$client]['-'](target.getBoundingClientRect()[$topLeft]);
        return new (T$0.PointOfnum()).new(point.x[$toInt](), point.y[$toInt]());
      }
    }
    get [S$1.$screen]() {
      return new (T$0.PointOfnum()).new(this[S$1._screenX], this[S$1._screenY]);
    }
    get [S$1.$layer]() {
      return new (T$0.PointOfnum()).new(dart.nullCheck(this[S$1._layerX]), dart.nullCheck(this[S$1._layerY]));
    }
    get [S$0.$page]() {
      return new (T$0.PointOfnum()).new(dart.nullCheck(this[S$1._pageX]), dart.nullCheck(this[S$1._pageY]));
    }
    get [S$1.$dataTransfer]() {
      return this.dataTransfer;
    }
  };
  dart.addTypeTests(html$.MouseEvent);
  dart.addTypeCaches(html$.MouseEvent);
  dart.setMethodSignature(html$.MouseEvent, () => ({
    __proto__: dart.getMethods(html$.MouseEvent.__proto__),
    [S$1.$getModifierState]: dart.fnType(core.bool, [core.String]),
    [S$1._initMouseEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(html$.Window), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.int), dart.nullable(html$.EventTarget)]),
    [S$1._initMouseEvent_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.nullable(html$.Window), dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
  }));
  dart.setGetterSignature(html$.MouseEvent, () => ({
    __proto__: dart.getGetters(html$.MouseEvent.__proto__),
    [S$1.$altKey]: core.bool,
    [S$1.$button]: core.int,
    [S$1.$buttons]: dart.nullable(core.int),
    [S$1._clientX]: core.num,
    [S$1._clientY]: core.num,
    [S$1.$ctrlKey]: core.bool,
    [S$1.$fromElement]: dart.nullable(html$.Node),
    [S$1._layerX]: dart.nullable(core.int),
    [S$1._layerY]: dart.nullable(core.int),
    [S$1.$metaKey]: core.bool,
    [S$1._movementX]: dart.nullable(core.int),
    [S$1._movementY]: dart.nullable(core.int),
    [S$1._pageX]: dart.nullable(core.num),
    [S$1._pageY]: dart.nullable(core.num),
    [S$1.$region]: dart.nullable(core.String),
    [S$1.$relatedTarget]: dart.nullable(html$.EventTarget),
    [S$1._get_relatedTarget]: dart.dynamic,
    [S$1._screenX]: core.num,
    [S$1._screenY]: core.num,
    [S$1.$shiftKey]: core.bool,
    [S$1.$toElement]: dart.nullable(html$.Node),
    [S.$client]: math.Point$(core.num),
    [S$1.$movement]: math.Point$(core.num),
    [S.$offset]: math.Point$(core.num),
    [S$1.$screen]: math.Point$(core.num),
    [S$1.$layer]: math.Point$(core.num),
    [S$0.$page]: math.Point$(core.num),
    [S$1.$dataTransfer]: html$.DataTransfer
  }));
  dart.setLibraryUri(html$.MouseEvent, I[148]);
  dart.registerExtension("MouseEvent", html$.MouseEvent);
  dart.registerExtension("DragEvent", html$.MouseEvent);
  html$.MutationEvent = class MutationEvent extends html$.Event {
    get [S$1.$attrChange]() {
      return this.attrChange;
    }
    get [S$1.$attrName]() {
      return this.attrName;
    }
    get [S$1.$newValue]() {
      return this.newValue;
    }
    get [S$1.$prevValue]() {
      return this.prevValue;
    }
    get [S$1.$relatedNode]() {
      return this.relatedNode;
    }
    [S$1.$initMutationEvent](...args) {
      return this.initMutationEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.MutationEvent);
  dart.addTypeCaches(html$.MutationEvent);
  dart.setMethodSignature(html$.MutationEvent, () => ({
    __proto__: dart.getMethods(html$.MutationEvent.__proto__),
    [S$1.$initMutationEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(html$.Node), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.MutationEvent, () => ({
    __proto__: dart.getGetters(html$.MutationEvent.__proto__),
    [S$1.$attrChange]: dart.nullable(core.int),
    [S$1.$attrName]: dart.nullable(core.String),
    [S$1.$newValue]: dart.nullable(core.String),
    [S$1.$prevValue]: dart.nullable(core.String),
    [S$1.$relatedNode]: dart.nullable(html$.Node)
  }));
  dart.setLibraryUri(html$.MutationEvent, I[148]);
  dart.defineLazy(html$.MutationEvent, {
    /*html$.MutationEvent.ADDITION*/get ADDITION() {
      return 2;
    },
    /*html$.MutationEvent.MODIFICATION*/get MODIFICATION() {
      return 1;
    },
    /*html$.MutationEvent.REMOVAL*/get REMOVAL() {
      return 3;
    }
  }, false);
  dart.registerExtension("MutationEvent", html$.MutationEvent);
  html$.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S$1._observe](target, options = null) {
      if (target == null) dart.nullFailed(I[147], 22443, 22, "target");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        this[S$1._observe_1$1](target, options_1);
        return;
      }
      this[S$1._observe_2](target);
      return;
    }
    [S$1._observe_1$1](...args) {
      return this.observe.apply(this, args);
    }
    [S$1._observe_2](...args) {
      return this.observe.apply(this, args);
    }
    [S$1.$takeRecords](...args) {
      return this.takeRecords.apply(this, args);
    }
    static get supported() {
      return !!(window.MutationObserver || window.WebKitMutationObserver);
    }
    [S.$observe](target, opts) {
      if (target == null) dart.nullFailed(I[147], 22479, 21, "target");
      let childList = opts && 'childList' in opts ? opts.childList : null;
      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
      let characterData = opts && 'characterData' in opts ? opts.characterData : null;
      let subtree = opts && 'subtree' in opts ? opts.subtree : null;
      let attributeOldValue = opts && 'attributeOldValue' in opts ? opts.attributeOldValue : null;
      let characterDataOldValue = opts && 'characterDataOldValue' in opts ? opts.characterDataOldValue : null;
      let attributeFilter = opts && 'attributeFilter' in opts ? opts.attributeFilter : null;
      let parsedOptions = html$.MutationObserver._createDict();
      function override(key, value) {
        if (value != null) html$.MutationObserver._add(parsedOptions, core.String.as(key), value);
      }
      dart.fn(override, T$.dynamicAnddynamicToNull());
      override("childList", childList);
      override("attributes", attributes);
      override("characterData", characterData);
      override("subtree", subtree);
      override("attributeOldValue", attributeOldValue);
      override("characterDataOldValue", characterDataOldValue);
      if (attributeFilter != null) {
        override("attributeFilter", html$.MutationObserver._fixupList(attributeFilter));
      }
      this[S$1._call](target, parsedOptions);
    }
    static _createDict() {
      return {};
    }
    static _add(m, key, value) {
      if (key == null) dart.nullFailed(I[147], 22519, 25, "key");
      m[key] = value;
    }
    static _fixupList(list) {
      return list;
    }
    [S$1._call](...args) {
      return this.observe.apply(this, args);
    }
    static new(callback) {
      if (callback == null) dart.nullFailed(I[147], 22529, 45, "callback");
      0;
      return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(T$0.ListAndMutationObserverToNvoid(), html$._wrapBinaryZone(core.List, html$.MutationObserver, callback), 2));
    }
  };
  dart.addTypeTests(html$.MutationObserver);
  dart.addTypeCaches(html$.MutationObserver);
  dart.setMethodSignature(html$.MutationObserver, () => ({
    __proto__: dart.getMethods(html$.MutationObserver.__proto__),
    [S$1.$disconnect]: dart.fnType(dart.void, []),
    [S$1._observe]: dart.fnType(dart.void, [html$.Node], [dart.nullable(core.Map)]),
    [S$1._observe_1$1]: dart.fnType(dart.void, [html$.Node, dart.dynamic]),
    [S$1._observe_2]: dart.fnType(dart.void, [html$.Node]),
    [S$1.$takeRecords]: dart.fnType(core.List$(html$.MutationRecord), []),
    [S.$observe]: dart.fnType(dart.void, [html$.Node], {attributeFilter: dart.nullable(core.List$(core.String)), attributeOldValue: dart.nullable(core.bool), attributes: dart.nullable(core.bool), characterData: dart.nullable(core.bool), characterDataOldValue: dart.nullable(core.bool), childList: dart.nullable(core.bool), subtree: dart.nullable(core.bool)}, {}),
    [S$1._call]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic])
  }));
  dart.setLibraryUri(html$.MutationObserver, I[148]);
  dart.defineLazy(html$.MutationObserver, {
    /*html$.MutationObserver._boolKeys*/get _boolKeys() {
      return C[350] || CT.C350;
    }
  }, false);
  dart.registerExtension("MutationObserver", html$.MutationObserver);
  dart.registerExtension("WebKitMutationObserver", html$.MutationObserver);
  html$.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
    get [S$1.$addedNodes]() {
      return this.addedNodes;
    }
    get [S$1.$attributeName]() {
      return this.attributeName;
    }
    get [S$1.$attributeNamespace]() {
      return this.attributeNamespace;
    }
    get [S$1.$nextSibling]() {
      return this.nextSibling;
    }
    get [S$1.$oldValue]() {
      return this.oldValue;
    }
    get [S$1.$previousSibling]() {
      return this.previousSibling;
    }
    get [S$1.$removedNodes]() {
      return this.removedNodes;
    }
    get [S.$target]() {
      return this.target;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.MutationRecord);
  dart.addTypeCaches(html$.MutationRecord);
  dart.setGetterSignature(html$.MutationRecord, () => ({
    __proto__: dart.getGetters(html$.MutationRecord.__proto__),
    [S$1.$addedNodes]: dart.nullable(core.List$(html$.Node)),
    [S$1.$attributeName]: dart.nullable(core.String),
    [S$1.$attributeNamespace]: dart.nullable(core.String),
    [S$1.$nextSibling]: dart.nullable(html$.Node),
    [S$1.$oldValue]: dart.nullable(core.String),
    [S$1.$previousSibling]: dart.nullable(html$.Node),
    [S$1.$removedNodes]: dart.nullable(core.List$(html$.Node)),
    [S.$target]: dart.nullable(html$.Node),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.MutationRecord, I[148]);
  dart.registerExtension("MutationRecord", html$.MutationRecord);
  html$.NavigationPreloadManager = class NavigationPreloadManager extends _interceptors.Interceptor {
    [S$1.$disable]() {
      return js_util.promiseToFuture(dart.dynamic, this.disable());
    }
    [S$1.$enable]() {
      return js_util.promiseToFuture(dart.dynamic, this.enable());
    }
    [S$1.$getState]() {
      return html$.promiseToFutureAsMap(this.getState());
    }
  };
  dart.addTypeTests(html$.NavigationPreloadManager);
  dart.addTypeCaches(html$.NavigationPreloadManager);
  dart.setMethodSignature(html$.NavigationPreloadManager, () => ({
    __proto__: dart.getMethods(html$.NavigationPreloadManager.__proto__),
    [S$1.$disable]: dart.fnType(async.Future, []),
    [S$1.$enable]: dart.fnType(async.Future, []),
    [S$1.$getState]: dart.fnType(async.Future$(dart.nullable(core.Map$(core.String, dart.dynamic))), [])
  }));
  dart.setLibraryUri(html$.NavigationPreloadManager, I[148]);
  dart.registerExtension("NavigationPreloadManager", html$.NavigationPreloadManager);
  html$.NavigatorConcurrentHardware = class NavigatorConcurrentHardware extends _interceptors.Interceptor {
    get [S$2.$hardwareConcurrency]() {
      return this.hardwareConcurrency;
    }
  };
  dart.addTypeTests(html$.NavigatorConcurrentHardware);
  dart.addTypeCaches(html$.NavigatorConcurrentHardware);
  dart.setGetterSignature(html$.NavigatorConcurrentHardware, () => ({
    __proto__: dart.getGetters(html$.NavigatorConcurrentHardware.__proto__),
    [S$2.$hardwareConcurrency]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.NavigatorConcurrentHardware, I[148]);
  dart.registerExtension("NavigatorConcurrentHardware", html$.NavigatorConcurrentHardware);
  html$.Navigator = class Navigator extends html$.NavigatorConcurrentHardware {
    [S$1.$getGamepads]() {
      let gamepadList = this[S$1._getGamepads]();
      let jsProto = gamepadList.prototype;
      if (jsProto == null) {
        gamepadList.prototype = Object.create(null);
      }
      _js_helper.applyExtension("GamepadList", gamepadList);
      return gamepadList;
    }
    get [S$1.$language]() {
      return this.language || this.userLanguage;
    }
    [S$1.$getUserMedia](opts) {
      let audio = opts && 'audio' in opts ? opts.audio : false;
      let video = opts && 'video' in opts ? opts.video : false;
      let completer = T$0.CompleterOfMediaStream().new();
      let options = new (T$0.IdentityMapOfString$dynamic()).from(["audio", audio, "video", video]);
      this[S$1._ensureGetUserMedia]();
      this[S$1._getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
        if (stream == null) dart.nullFailed(I[147], 22660, 10, "stream");
        completer.complete(stream);
      }, T$0.MediaStreamTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 22662, 9, "error");
        completer.completeError(error);
      }, T$0.NavigatorUserMediaErrorTovoid()));
      return completer.future;
    }
    [S$1._ensureGetUserMedia]() {
      if (!this.getUserMedia) {
        this.getUserMedia = this.getUserMedia || this.webkitGetUserMedia || this.mozGetUserMedia || this.msGetUserMedia;
      }
    }
    [S$1._getUserMedia](...args) {
      return this.getUserMedia.apply(this, args);
    }
    get [S$1.$budget]() {
      return this.budget;
    }
    get [S$1.$clipboard]() {
      return this.clipboard;
    }
    get [S$1.$connection]() {
      return this.connection;
    }
    get [S$1.$credentials]() {
      return this.credentials;
    }
    get [S$1.$deviceMemory]() {
      return this.deviceMemory;
    }
    get [S$1.$doNotTrack]() {
      return this.doNotTrack;
    }
    get [S$1.$geolocation]() {
      return this.geolocation;
    }
    get [S$2.$maxTouchPoints]() {
      return this.maxTouchPoints;
    }
    get [S$2.$mediaCapabilities]() {
      return this.mediaCapabilities;
    }
    get [S$2.$mediaDevices]() {
      return this.mediaDevices;
    }
    get [S$2.$mediaSession]() {
      return this.mediaSession;
    }
    get [S$2.$mimeTypes]() {
      return this.mimeTypes;
    }
    get [S$2.$nfc]() {
      return this.nfc;
    }
    get [S$2.$permissions]() {
      return this.permissions;
    }
    get [S$2.$presentation]() {
      return this.presentation;
    }
    get [S$2.$productSub]() {
      return this.productSub;
    }
    get [S$2.$serviceWorker]() {
      return this.serviceWorker;
    }
    get [S$2.$storage]() {
      return this.storage;
    }
    get [S$2.$vendor]() {
      return this.vendor;
    }
    get [S$2.$vendorSub]() {
      return this.vendorSub;
    }
    get [S$2.$vr]() {
      return this.vr;
    }
    get [S$2.$persistentStorage]() {
      return this.webkitPersistentStorage;
    }
    get [S$2.$temporaryStorage]() {
      return this.webkitTemporaryStorage;
    }
    [S$2.$cancelKeyboardLock](...args) {
      return this.cancelKeyboardLock.apply(this, args);
    }
    [S$2.$getBattery]() {
      return js_util.promiseToFuture(dart.dynamic, this.getBattery());
    }
    [S$1._getGamepads](...args) {
      return this.getGamepads.apply(this, args);
    }
    [S$2.$getInstalledRelatedApps]() {
      return js_util.promiseToFuture(html$.RelatedApplication, this.getInstalledRelatedApps());
    }
    [S$2.$getVRDisplays]() {
      return js_util.promiseToFuture(dart.dynamic, this.getVRDisplays());
    }
    [S$2.$registerProtocolHandler](...args) {
      return this.registerProtocolHandler.apply(this, args);
    }
    [S$2.$requestKeyboardLock](keyCodes = null) {
      if (keyCodes != null) {
        let keyCodes_1 = html_common.convertDartToNative_StringArray(keyCodes);
        return this[S$2._requestKeyboardLock_1](keyCodes_1);
      }
      return this[S$2._requestKeyboardLock_2]();
    }
    [S$2._requestKeyboardLock_1](keyCodes) {
      if (keyCodes == null) dart.nullFailed(I[147], 22776, 38, "keyCodes");
      return js_util.promiseToFuture(dart.dynamic, this.requestKeyboardLock(keyCodes));
    }
    [S$2._requestKeyboardLock_2]() {
      return js_util.promiseToFuture(dart.dynamic, this.requestKeyboardLock());
    }
    [S$2.$requestMidiAccess](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.requestMIDIAccess(options_dict));
    }
    [S$2.$requestMediaKeySystemAccess](keySystem, supportedConfigurations) {
      if (keySystem == null) dart.nullFailed(I[147], 22793, 18, "keySystem");
      if (supportedConfigurations == null) dart.nullFailed(I[147], 22793, 39, "supportedConfigurations");
      return js_util.promiseToFuture(dart.dynamic, this.requestMediaKeySystemAccess(keySystem, supportedConfigurations));
    }
    [S$2.$sendBeacon](...args) {
      return this.sendBeacon.apply(this, args);
    }
    [S$2.$share](data = null) {
      let data_dict = null;
      if (data != null) {
        data_dict = html_common.convertDartToNative_Dictionary(data);
      }
      return js_util.promiseToFuture(dart.dynamic, this.share(data_dict));
    }
    get [S$2.$webdriver]() {
      return this.webdriver;
    }
    get [S$2.$cookieEnabled]() {
      return this.cookieEnabled;
    }
    get [S$2.$appCodeName]() {
      return this.appCodeName;
    }
    get [S$2.$appName]() {
      return this.appName;
    }
    get [S$2.$appVersion]() {
      return this.appVersion;
    }
    get [S$2.$dartEnabled]() {
      return this.dartEnabled;
    }
    get [S$2.$platform]() {
      return this.platform;
    }
    get [S$2.$product]() {
      return this.product;
    }
    get [S$2.$userAgent]() {
      return this.userAgent;
    }
    get [S$2.$languages]() {
      return this.languages;
    }
    get [S$2.$onLine]() {
      return this.onLine;
    }
  };
  dart.addTypeTests(html$.Navigator);
  dart.addTypeCaches(html$.Navigator);
  html$.Navigator[dart.implements] = () => [html$.NavigatorCookies, html$.NavigatorLanguage, html$.NavigatorOnLine, html$.NavigatorAutomationInformation, html$.NavigatorID];
  dart.setMethodSignature(html$.Navigator, () => ({
    __proto__: dart.getMethods(html$.Navigator.__proto__),
    [S$1.$getGamepads]: dart.fnType(core.List$(dart.nullable(html$.Gamepad)), []),
    [S$1.$getUserMedia]: dart.fnType(async.Future$(html$.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}, {}),
    [S$1._ensureGetUserMedia]: dart.fnType(dart.dynamic, []),
    [S$1._getUserMedia]: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.void, [html$.MediaStream]), dart.fnType(dart.void, [html$.NavigatorUserMediaError])]),
    [S$2.$cancelKeyboardLock]: dart.fnType(dart.void, []),
    [S$2.$getBattery]: dart.fnType(async.Future, []),
    [S$1._getGamepads]: dart.fnType(core.List$(dart.nullable(html$.Gamepad)), []),
    [S$2.$getInstalledRelatedApps]: dart.fnType(async.Future$(html$.RelatedApplication), []),
    [S$2.$getVRDisplays]: dart.fnType(async.Future, []),
    [S$2.$registerProtocolHandler]: dart.fnType(dart.void, [core.String, core.String, core.String]),
    [S$2.$requestKeyboardLock]: dart.fnType(async.Future, [], [dart.nullable(core.List$(core.String))]),
    [S$2._requestKeyboardLock_1]: dart.fnType(async.Future, [core.List]),
    [S$2._requestKeyboardLock_2]: dart.fnType(async.Future, []),
    [S$2.$requestMidiAccess]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$2.$requestMediaKeySystemAccess]: dart.fnType(async.Future, [core.String, core.List$(core.Map)]),
    [S$2.$sendBeacon]: dart.fnType(core.bool, [core.String, dart.nullable(core.Object)]),
    [S$2.$share]: dart.fnType(async.Future, [], [dart.nullable(core.Map)])
  }));
  dart.setGetterSignature(html$.Navigator, () => ({
    __proto__: dart.getGetters(html$.Navigator.__proto__),
    [S$1.$language]: core.String,
    [S$1.$budget]: dart.nullable(html$._BudgetService),
    [S$1.$clipboard]: dart.nullable(html$._Clipboard),
    [S$1.$connection]: dart.nullable(html$.NetworkInformation),
    [S$1.$credentials]: dart.nullable(html$.CredentialsContainer),
    [S$1.$deviceMemory]: dart.nullable(core.num),
    [S$1.$doNotTrack]: dart.nullable(core.String),
    [S$1.$geolocation]: html$.Geolocation,
    [S$2.$maxTouchPoints]: dart.nullable(core.int),
    [S$2.$mediaCapabilities]: dart.nullable(html$.MediaCapabilities),
    [S$2.$mediaDevices]: dart.nullable(html$.MediaDevices),
    [S$2.$mediaSession]: dart.nullable(html$.MediaSession),
    [S$2.$mimeTypes]: dart.nullable(html$.MimeTypeArray),
    [S$2.$nfc]: dart.nullable(html$._NFC),
    [S$2.$permissions]: dart.nullable(html$.Permissions),
    [S$2.$presentation]: dart.nullable(html$.Presentation),
    [S$2.$productSub]: dart.nullable(core.String),
    [S$2.$serviceWorker]: dart.nullable(html$.ServiceWorkerContainer),
    [S$2.$storage]: dart.nullable(html$.StorageManager),
    [S$2.$vendor]: core.String,
    [S$2.$vendorSub]: core.String,
    [S$2.$vr]: dart.nullable(html$.VR),
    [S$2.$persistentStorage]: dart.nullable(html$.DeprecatedStorageQuota),
    [S$2.$temporaryStorage]: dart.nullable(html$.DeprecatedStorageQuota),
    [S$2.$webdriver]: dart.nullable(core.bool),
    [S$2.$cookieEnabled]: dart.nullable(core.bool),
    [S$2.$appCodeName]: core.String,
    [S$2.$appName]: core.String,
    [S$2.$appVersion]: core.String,
    [S$2.$dartEnabled]: dart.nullable(core.bool),
    [S$2.$platform]: dart.nullable(core.String),
    [S$2.$product]: core.String,
    [S$2.$userAgent]: core.String,
    [S$2.$languages]: dart.nullable(core.List$(core.String)),
    [S$2.$onLine]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.Navigator, I[148]);
  dart.registerExtension("Navigator", html$.Navigator);
  html$.NavigatorAutomationInformation = class NavigatorAutomationInformation extends _interceptors.Interceptor {
    get [S$2.$webdriver]() {
      return this.webdriver;
    }
  };
  dart.addTypeTests(html$.NavigatorAutomationInformation);
  dart.addTypeCaches(html$.NavigatorAutomationInformation);
  dart.setGetterSignature(html$.NavigatorAutomationInformation, () => ({
    __proto__: dart.getGetters(html$.NavigatorAutomationInformation.__proto__),
    [S$2.$webdriver]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.NavigatorAutomationInformation, I[148]);
  dart.registerExtension("NavigatorAutomationInformation", html$.NavigatorAutomationInformation);
  html$.NavigatorCookies = class NavigatorCookies extends _interceptors.Interceptor {
    get [S$2.$cookieEnabled]() {
      return this.cookieEnabled;
    }
  };
  dart.addTypeTests(html$.NavigatorCookies);
  dart.addTypeCaches(html$.NavigatorCookies);
  dart.setGetterSignature(html$.NavigatorCookies, () => ({
    __proto__: dart.getGetters(html$.NavigatorCookies.__proto__),
    [S$2.$cookieEnabled]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.NavigatorCookies, I[148]);
  dart.registerExtension("NavigatorCookies", html$.NavigatorCookies);
  html$.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
    get appCodeName() {
      return this.appCodeName;
    }
    get appName() {
      return this.appName;
    }
    get appVersion() {
      return this.appVersion;
    }
    get dartEnabled() {
      return this.dartEnabled;
    }
    get platform() {
      return this.platform;
    }
    get product() {
      return this.product;
    }
    get userAgent() {
      return this.userAgent;
    }
  };
  dart.addTypeTests(html$.NavigatorID);
  dart.addTypeCaches(html$.NavigatorID);
  dart.setGetterSignature(html$.NavigatorID, () => ({
    __proto__: dart.getGetters(html$.NavigatorID.__proto__),
    appCodeName: core.String,
    [S$2.$appCodeName]: core.String,
    appName: core.String,
    [S$2.$appName]: core.String,
    appVersion: core.String,
    [S$2.$appVersion]: core.String,
    dartEnabled: dart.nullable(core.bool),
    [S$2.$dartEnabled]: dart.nullable(core.bool),
    platform: dart.nullable(core.String),
    [S$2.$platform]: dart.nullable(core.String),
    product: core.String,
    [S$2.$product]: core.String,
    userAgent: core.String,
    [S$2.$userAgent]: core.String
  }));
  dart.setLibraryUri(html$.NavigatorID, I[148]);
  dart.defineExtensionAccessors(html$.NavigatorID, [
    'appCodeName',
    'appName',
    'appVersion',
    'dartEnabled',
    'platform',
    'product',
    'userAgent'
  ]);
  html$.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
    get language() {
      return this.language;
    }
    get languages() {
      return this.languages;
    }
  };
  dart.addTypeTests(html$.NavigatorLanguage);
  dart.addTypeCaches(html$.NavigatorLanguage);
  dart.setGetterSignature(html$.NavigatorLanguage, () => ({
    __proto__: dart.getGetters(html$.NavigatorLanguage.__proto__),
    language: dart.nullable(core.String),
    [S$1.$language]: dart.nullable(core.String),
    languages: dart.nullable(core.List$(core.String)),
    [S$2.$languages]: dart.nullable(core.List$(core.String))
  }));
  dart.setLibraryUri(html$.NavigatorLanguage, I[148]);
  dart.defineExtensionAccessors(html$.NavigatorLanguage, ['language', 'languages']);
  html$.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
    get onLine() {
      return this.onLine;
    }
  };
  dart.addTypeTests(html$.NavigatorOnLine);
  dart.addTypeCaches(html$.NavigatorOnLine);
  dart.setGetterSignature(html$.NavigatorOnLine, () => ({
    __proto__: dart.getGetters(html$.NavigatorOnLine.__proto__),
    onLine: dart.nullable(core.bool),
    [S$2.$onLine]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.NavigatorOnLine, I[148]);
  dart.defineExtensionAccessors(html$.NavigatorOnLine, ['onLine']);
  html$.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
    get [S$2.$constraintName]() {
      return this.constraintName;
    }
    get [$message]() {
      return this.message;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.NavigatorUserMediaError);
  dart.addTypeCaches(html$.NavigatorUserMediaError);
  dart.setGetterSignature(html$.NavigatorUserMediaError, () => ({
    __proto__: dart.getGetters(html$.NavigatorUserMediaError.__proto__),
    [S$2.$constraintName]: dart.nullable(core.String),
    [$message]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.NavigatorUserMediaError, I[148]);
  dart.registerExtension("NavigatorUserMediaError", html$.NavigatorUserMediaError);
  html$.NetworkInformation = class NetworkInformation extends html$.EventTarget {
    get [S$2.$downlink]() {
      return this.downlink;
    }
    get [S$2.$downlinkMax]() {
      return this.downlinkMax;
    }
    get [S$2.$effectiveType]() {
      return this.effectiveType;
    }
    get [S$2.$rtt]() {
      return this.rtt;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S.$onChange]() {
      return html$.NetworkInformation.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.NetworkInformation);
  dart.addTypeCaches(html$.NetworkInformation);
  dart.setGetterSignature(html$.NetworkInformation, () => ({
    __proto__: dart.getGetters(html$.NetworkInformation.__proto__),
    [S$2.$downlink]: dart.nullable(core.num),
    [S$2.$downlinkMax]: dart.nullable(core.num),
    [S$2.$effectiveType]: dart.nullable(core.String),
    [S$2.$rtt]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.String),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.NetworkInformation, I[148]);
  dart.defineLazy(html$.NetworkInformation, {
    /*html$.NetworkInformation.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("NetworkInformation", html$.NetworkInformation);
  html$._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html$.Node) {
    get first() {
      let result = this[S$._this].firstChild;
      if (result == null) dart.throw(new core.StateError.new("No elements"));
      return result;
    }
    set first(value) {
      super.first = value;
    }
    get last() {
      let result = this[S$._this].lastChild;
      if (result == null) dart.throw(new core.StateError.new("No elements"));
      return result;
    }
    set last(value) {
      super.last = value;
    }
    get single() {
      let l = this.length;
      if (l === 0) dart.throw(new core.StateError.new("No elements"));
      if (dart.notNull(l) > 1) dart.throw(new core.StateError.new("More than one element"));
      return dart.nullCheck(this[S$._this].firstChild);
    }
    add(value) {
      html$.Node.as(value);
      if (value == null) dart.nullFailed(I[147], 23025, 17, "value");
      this[S$._this][S.$append](value);
    }
    addAll(iterable) {
      T$0.IterableOfNode().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 23029, 30, "iterable");
      if (html$._ChildNodeListLazy.is(iterable)) {
        let otherList = iterable;
        if (otherList[S$._this] != this[S$._this]) {
          for (let i = 0, len = otherList.length; i < dart.notNull(len); i = i + 1) {
            this[S$._this][S.$append](dart.nullCheck(otherList[S$._this].firstChild));
          }
        }
        return;
      }
      for (let node of iterable) {
        this[S$._this][S.$append](node);
      }
    }
    insert(index, node) {
      if (index == null) dart.nullFailed(I[147], 23045, 19, "index");
      html$.Node.as(node);
      if (node == null) dart.nullFailed(I[147], 23045, 31, "node");
      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
        dart.throw(new core.RangeError.range(index, 0, this.length));
      }
      if (index == this.length) {
        this[S$._this][S.$append](node);
      } else {
        this[S$._this].insertBefore(node, this._get(index));
      }
    }
    insertAll(index, iterable) {
      if (index == null) dart.nullFailed(I[147], 23056, 22, "index");
      T$0.IterableOfNode().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 23056, 44, "iterable");
      if (index == this.length) {
        this.addAll(iterable);
      } else {
        let item = this._get(index);
        this[S$._this][S$.$insertAllBefore](iterable, item);
      }
    }
    setAll(index, iterable) {
      if (index == null) dart.nullFailed(I[147], 23065, 19, "index");
      T$0.IterableOfNode().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 23065, 41, "iterable");
      dart.throw(new core.UnsupportedError.new("Cannot setAll on Node list"));
    }
    removeLast() {
      let result = this.last;
      if (result != null) {
        this[S$._this][S$._removeChild](result);
      }
      return result;
    }
    removeAt(index) {
      if (index == null) dart.nullFailed(I[147], 23077, 21, "index");
      let result = this._get(index);
      if (result != null) {
        this[S$._this][S$._removeChild](result);
      }
      return result;
    }
    remove(object) {
      if (!html$.Node.is(object)) return false;
      let node = object;
      if (this[S$._this] != node.parentNode) return false;
      this[S$._this][S$._removeChild](node);
      return true;
    }
    [S$1._filter$2](test, removeMatching) {
      if (test == null) dart.nullFailed(I[147], 23093, 21, "test");
      if (removeMatching == null) dart.nullFailed(I[147], 23093, 43, "removeMatching");
      let child = this[S$._this].firstChild;
      while (child != null) {
        let nextChild = child[S.$nextNode];
        if (test(child) == removeMatching) {
          this[S$._this][S$._removeChild](child);
        }
        child = nextChild;
      }
    }
    removeWhere(test) {
      if (test == null) dart.nullFailed(I[147], 23107, 25, "test");
      this[S$1._filter$2](test, true);
    }
    retainWhere(test) {
      if (test == null) dart.nullFailed(I[147], 23111, 25, "test");
      this[S$1._filter$2](test, false);
    }
    clear() {
      this[S$._this][S$._clearChildren]();
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 23119, 25, "index");
      html$.Node.as(value);
      if (value == null) dart.nullFailed(I[147], 23119, 37, "value");
      this[S$._this][S$._replaceChild](value, this._get(index));
      return value$;
    }
    get iterator() {
      return this[S$._this].childNodes[$iterator];
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot sort Node list"));
    }
    shuffle(random = null) {
      dart.throw(new core.UnsupportedError.new("Cannot shuffle Node list"));
    }
    setRange(start, end, iterable, skipCount = 0) {
      if (start == null) dart.nullFailed(I[147], 23138, 21, "start");
      if (end == null) dart.nullFailed(I[147], 23138, 32, "end");
      T$0.IterableOfNode().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 23138, 52, "iterable");
      if (skipCount == null) dart.nullFailed(I[147], 23139, 12, "skipCount");
      dart.throw(new core.UnsupportedError.new("Cannot setRange on Node list"));
    }
    fillRange(start, end, fill = null) {
      if (start == null) dart.nullFailed(I[147], 23143, 22, "start");
      if (end == null) dart.nullFailed(I[147], 23143, 33, "end");
      T$0.NodeN$1().as(fill);
      dart.throw(new core.UnsupportedError.new("Cannot fillRange on Node list"));
    }
    removeRange(start, end) {
      if (start == null) dart.nullFailed(I[147], 23147, 24, "start");
      if (end == null) dart.nullFailed(I[147], 23147, 35, "end");
      dart.throw(new core.UnsupportedError.new("Cannot removeRange on Node list"));
    }
    get length() {
      return this[S$._this].childNodes[$length];
    }
    set length(value) {
      if (value == null) dart.nullFailed(I[147], 23156, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot set length on immutable List."));
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[147], 23160, 24, "index");
      return this[S$._this].childNodes[$_get](index);
    }
    get rawList() {
      return this[S$._this].childNodes;
    }
  };
  (html$._ChildNodeListLazy.new = function(_this) {
    if (_this == null) dart.nullFailed(I[147], 23004, 27, "_this");
    this[S$._this] = _this;
    ;
  }).prototype = html$._ChildNodeListLazy.prototype;
  dart.addTypeTests(html$._ChildNodeListLazy);
  dart.addTypeCaches(html$._ChildNodeListLazy);
  html$._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
  dart.setMethodSignature(html$._ChildNodeListLazy, () => ({
    __proto__: dart.getMethods(html$._ChildNodeListLazy.__proto__),
    [S$1._filter$2]: dart.fnType(dart.void, [dart.fnType(core.bool, [html$.Node]), core.bool]),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    _get: dart.fnType(html$.Node, [core.int]),
    [$_get]: dart.fnType(html$.Node, [core.int])
  }));
  dart.setGetterSignature(html$._ChildNodeListLazy, () => ({
    __proto__: dart.getGetters(html$._ChildNodeListLazy.__proto__),
    length: core.int,
    [$length]: core.int,
    rawList: core.List$(html$.Node)
  }));
  dart.setSetterSignature(html$._ChildNodeListLazy, () => ({
    __proto__: dart.getSetters(html$._ChildNodeListLazy.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._ChildNodeListLazy, I[148]);
  dart.setFieldSignature(html$._ChildNodeListLazy, () => ({
    __proto__: dart.getFields(html$._ChildNodeListLazy.__proto__),
    [S$._this]: dart.finalFieldType(html$.Node)
  }));
  dart.defineExtensionMethods(html$._ChildNodeListLazy, [
    'add',
    'addAll',
    'insert',
    'insertAll',
    'setAll',
    'removeLast',
    'removeAt',
    'remove',
    'removeWhere',
    'retainWhere',
    'clear',
    '_set',
    'sort',
    'shuffle',
    'setRange',
    'fillRange',
    'removeRange',
    '_get'
  ]);
  dart.defineExtensionAccessors(html$._ChildNodeListLazy, [
    'first',
    'last',
    'single',
    'iterator',
    'length'
  ]);
  html$.NodeFilter = class NodeFilter extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.NodeFilter);
  dart.addTypeCaches(html$.NodeFilter);
  dart.setLibraryUri(html$.NodeFilter, I[148]);
  dart.defineLazy(html$.NodeFilter, {
    /*html$.NodeFilter.FILTER_ACCEPT*/get FILTER_ACCEPT() {
      return 1;
    },
    /*html$.NodeFilter.FILTER_REJECT*/get FILTER_REJECT() {
      return 2;
    },
    /*html$.NodeFilter.FILTER_SKIP*/get FILTER_SKIP() {
      return 3;
    },
    /*html$.NodeFilter.SHOW_ALL*/get SHOW_ALL() {
      return 4294967295.0;
    },
    /*html$.NodeFilter.SHOW_COMMENT*/get SHOW_COMMENT() {
      return 128;
    },
    /*html$.NodeFilter.SHOW_DOCUMENT*/get SHOW_DOCUMENT() {
      return 256;
    },
    /*html$.NodeFilter.SHOW_DOCUMENT_FRAGMENT*/get SHOW_DOCUMENT_FRAGMENT() {
      return 1024;
    },
    /*html$.NodeFilter.SHOW_DOCUMENT_TYPE*/get SHOW_DOCUMENT_TYPE() {
      return 512;
    },
    /*html$.NodeFilter.SHOW_ELEMENT*/get SHOW_ELEMENT() {
      return 1;
    },
    /*html$.NodeFilter.SHOW_PROCESSING_INSTRUCTION*/get SHOW_PROCESSING_INSTRUCTION() {
      return 64;
    },
    /*html$.NodeFilter.SHOW_TEXT*/get SHOW_TEXT() {
      return 4;
    }
  }, false);
  dart.registerExtension("NodeFilter", html$.NodeFilter);
  html$.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
    static new(root, whatToShow) {
      if (root == null) dart.nullFailed(I[147], 23569, 29, "root");
      if (whatToShow == null) dart.nullFailed(I[147], 23569, 39, "whatToShow");
      return html$.document[S$1._createNodeIterator](root, whatToShow, null);
    }
    get [S$2.$pointerBeforeReferenceNode]() {
      return this.pointerBeforeReferenceNode;
    }
    get [S$2.$referenceNode]() {
      return this.referenceNode;
    }
    get [S$1.$root]() {
      return this.root;
    }
    get [S$2.$whatToShow]() {
      return this.whatToShow;
    }
    [S$2.$detach](...args) {
      return this.detach.apply(this, args);
    }
    [S.$nextNode](...args) {
      return this.nextNode.apply(this, args);
    }
    [S$.$previousNode](...args) {
      return this.previousNode.apply(this, args);
    }
  };
  dart.addTypeTests(html$.NodeIterator);
  dart.addTypeCaches(html$.NodeIterator);
  dart.setMethodSignature(html$.NodeIterator, () => ({
    __proto__: dart.getMethods(html$.NodeIterator.__proto__),
    [S$2.$detach]: dart.fnType(dart.void, []),
    [S.$nextNode]: dart.fnType(dart.nullable(html$.Node), []),
    [S$.$previousNode]: dart.fnType(dart.nullable(html$.Node), [])
  }));
  dart.setGetterSignature(html$.NodeIterator, () => ({
    __proto__: dart.getGetters(html$.NodeIterator.__proto__),
    [S$2.$pointerBeforeReferenceNode]: dart.nullable(core.bool),
    [S$2.$referenceNode]: dart.nullable(html$.Node),
    [S$1.$root]: html$.Node,
    [S$2.$whatToShow]: core.int
  }));
  dart.setLibraryUri(html$.NodeIterator, I[148]);
  dart.registerExtension("NodeIterator", html$.NodeIterator);
  const Interceptor_ListMixin$36$3 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$3.new = function() {
    Interceptor_ListMixin$36$3.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$3.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$3, collection.ListMixin$(html$.Node));
  const Interceptor_ImmutableListMixin$36$3 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$3 {};
  (Interceptor_ImmutableListMixin$36$3.new = function() {
    Interceptor_ImmutableListMixin$36$3.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$3.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$3, html$.ImmutableListMixin$(html$.Node));
  html$.NodeList = class NodeList extends Interceptor_ImmutableListMixin$36$3 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 23606, 24, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 23612, 25, "index");
      html$.Node.as(value);
      if (value == null) dart.nullFailed(I[147], 23612, 37, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 23618, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 23646, 22, "index");
      return this[$_get](index);
    }
    [S$1._item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.NodeList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.NodeList);
  dart.addTypeCaches(html$.NodeList);
  html$.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
  dart.setMethodSignature(html$.NodeList, () => ({
    __proto__: dart.getMethods(html$.NodeList.__proto__),
    [$_get]: dart.fnType(html$.Node, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$1._item]: dart.fnType(dart.nullable(html$.Node), [core.int])
  }));
  dart.setGetterSignature(html$.NodeList, () => ({
    __proto__: dart.getGetters(html$.NodeList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.NodeList, () => ({
    __proto__: dart.getSetters(html$.NodeList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.NodeList, I[148]);
  dart.registerExtension("NodeList", html$.NodeList);
  dart.registerExtension("RadioNodeList", html$.NodeList);
  html$.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
    get [S.$nextElementSibling]() {
      return this.nextElementSibling;
    }
    get [S.$previousElementSibling]() {
      return this.previousElementSibling;
    }
  };
  dart.addTypeTests(html$.NonDocumentTypeChildNode);
  dart.addTypeCaches(html$.NonDocumentTypeChildNode);
  dart.setGetterSignature(html$.NonDocumentTypeChildNode, () => ({
    __proto__: dart.getGetters(html$.NonDocumentTypeChildNode.__proto__),
    [S.$nextElementSibling]: dart.nullable(html$.Element),
    [S.$previousElementSibling]: dart.nullable(html$.Element)
  }));
  dart.setLibraryUri(html$.NonDocumentTypeChildNode, I[148]);
  dart.registerExtension("NonDocumentTypeChildNode", html$.NonDocumentTypeChildNode);
  html$.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
    [S$1.$getElementById](...args) {
      return this.getElementById.apply(this, args);
    }
  };
  dart.addTypeTests(html$.NonElementParentNode);
  dart.addTypeCaches(html$.NonElementParentNode);
  dart.setMethodSignature(html$.NonElementParentNode, () => ({
    __proto__: dart.getMethods(html$.NonElementParentNode.__proto__),
    [S$1.$getElementById]: dart.fnType(dart.nullable(html$.Element), [core.String])
  }));
  dart.setLibraryUri(html$.NonElementParentNode, I[148]);
  dart.registerExtension("NonElementParentNode", html$.NonElementParentNode);
  html$.NoncedElement = class NoncedElement extends _interceptors.Interceptor {
    get [S.$nonce]() {
      return this.nonce;
    }
    set [S.$nonce](value) {
      this.nonce = value;
    }
  };
  dart.addTypeTests(html$.NoncedElement);
  dart.addTypeCaches(html$.NoncedElement);
  dart.setGetterSignature(html$.NoncedElement, () => ({
    __proto__: dart.getGetters(html$.NoncedElement.__proto__),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.NoncedElement, () => ({
    __proto__: dart.getSetters(html$.NoncedElement.__proto__),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.NoncedElement, I[148]);
  dart.registerExtension("NoncedElement", html$.NoncedElement);
  html$.Notification = class Notification$ extends html$.EventTarget {
    static new(title, opts) {
      if (title == null) dart.nullFailed(I[147], 23701, 31, "title");
      let dir = opts && 'dir' in opts ? opts.dir : null;
      let body = opts && 'body' in opts ? opts.body : null;
      let lang = opts && 'lang' in opts ? opts.lang : null;
      let tag = opts && 'tag' in opts ? opts.tag : null;
      let icon = opts && 'icon' in opts ? opts.icon : null;
      let parsedOptions = new _js_helper.LinkedMap.new();
      if (dir != null) parsedOptions[$_set]("dir", dir);
      if (body != null) parsedOptions[$_set]("body", body);
      if (lang != null) parsedOptions[$_set]("lang", lang);
      if (tag != null) parsedOptions[$_set]("tag", tag);
      if (icon != null) parsedOptions[$_set]("icon", icon);
      return html$.Notification._factoryNotification(title, parsedOptions);
    }
    static _factoryNotification(title, options = null) {
      if (title == null) dart.nullFailed(I[147], 23752, 51, "title");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.Notification._create_1(title, options_1);
      }
      return html$.Notification._create_2(title);
    }
    static _create_1(title, options) {
      return new Notification(title, options);
    }
    static _create_2(title) {
      return new Notification(title);
    }
    static get supported() {
      return !!window.Notification;
    }
    get [S$2.$actions]() {
      return this.actions;
    }
    get [S$2.$badge]() {
      return this.badge;
    }
    get [S$1.$body]() {
      return this.body;
    }
    get [S$.$data]() {
      return this.data;
    }
    get [S.$dir]() {
      return this.dir;
    }
    get [S$2.$icon]() {
      return this.icon;
    }
    get [S$2.$image]() {
      return this.image;
    }
    get [S.$lang]() {
      return this.lang;
    }
    get [S$2.$renotify]() {
      return this.renotify;
    }
    get [S$2.$requireInteraction]() {
      return this.requireInteraction;
    }
    get [S$2.$silent]() {
      return this.silent;
    }
    get [S$2.$tag]() {
      return this.tag;
    }
    get [S$.$timestamp]() {
      return this.timestamp;
    }
    get [S.$title]() {
      return this.title;
    }
    get [S$2.$vibrate]() {
      return this.vibrate;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    static requestPermission() {
      let completer = T$0.CompleterOfString().new();
      dart.global.Notification.requestPermission(dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 23813, 25, "value");
        completer.complete(value);
      }, T$.StringTovoid()));
      return completer.future;
    }
    get [S.$onClick]() {
      return html$.Notification.clickEvent.forTarget(this);
    }
    get [S.$onClose]() {
      return html$.Notification.closeEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.Notification.errorEvent.forTarget(this);
    }
    get [S$2.$onShow]() {
      return html$.Notification.showEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.Notification);
  dart.addTypeCaches(html$.Notification);
  dart.setMethodSignature(html$.Notification, () => ({
    __proto__: dart.getMethods(html$.Notification.__proto__),
    [S.$close]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.Notification, () => ({
    __proto__: dart.getGetters(html$.Notification.__proto__),
    [S$2.$actions]: dart.nullable(core.List),
    [S$2.$badge]: dart.nullable(core.String),
    [S$1.$body]: dart.nullable(core.String),
    [S$.$data]: dart.nullable(core.Object),
    [S.$dir]: dart.nullable(core.String),
    [S$2.$icon]: dart.nullable(core.String),
    [S$2.$image]: dart.nullable(core.String),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$renotify]: dart.nullable(core.bool),
    [S$2.$requireInteraction]: dart.nullable(core.bool),
    [S$2.$silent]: dart.nullable(core.bool),
    [S$2.$tag]: dart.nullable(core.String),
    [S$.$timestamp]: dart.nullable(core.int),
    [S.$title]: dart.nullable(core.String),
    [S$2.$vibrate]: dart.nullable(core.List$(core.int)),
    [S.$onClick]: async.Stream$(html$.Event),
    [S.$onClose]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S$2.$onShow]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.Notification, I[148]);
  dart.defineLazy(html$.Notification, {
    /*html$.Notification.clickEvent*/get clickEvent() {
      return C[351] || CT.C351;
    },
    /*html$.Notification.closeEvent*/get closeEvent() {
      return C[215] || CT.C215;
    },
    /*html$.Notification.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.Notification.showEvent*/get showEvent() {
      return C[352] || CT.C352;
    }
  }, false);
  dart.registerExtension("Notification", html$.Notification);
  html$.NotificationEvent = class NotificationEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 23842, 36, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 23842, 46, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.NotificationEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new NotificationEvent(type, eventInitDict);
    }
    get [S$1.$action]() {
      return this.action;
    }
    get [S$2.$notification]() {
      return this.notification;
    }
    get [S$2.$reply]() {
      return this.reply;
    }
  };
  dart.addTypeTests(html$.NotificationEvent);
  dart.addTypeCaches(html$.NotificationEvent);
  dart.setGetterSignature(html$.NotificationEvent, () => ({
    __proto__: dart.getGetters(html$.NotificationEvent.__proto__),
    [S$1.$action]: dart.nullable(core.String),
    [S$2.$notification]: dart.nullable(html$.Notification),
    [S$2.$reply]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.NotificationEvent, I[148]);
  dart.registerExtension("NotificationEvent", html$.NotificationEvent);
  html$.OListElement = class OListElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("ol");
    }
    get [$reversed]() {
      return this.reversed;
    }
    set [$reversed](value) {
      this.reversed = value;
    }
    get [S$.$start]() {
      return this.start;
    }
    set [S$.$start](value) {
      this.start = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  (html$.OListElement.created = function() {
    html$.OListElement.__proto__.created.call(this);
    ;
  }).prototype = html$.OListElement.prototype;
  dart.addTypeTests(html$.OListElement);
  dart.addTypeCaches(html$.OListElement);
  dart.setGetterSignature(html$.OListElement, () => ({
    __proto__: dart.getGetters(html$.OListElement.__proto__),
    [$reversed]: dart.nullable(core.bool),
    [S$.$start]: core.int,
    [S.$type]: core.String
  }));
  dart.setSetterSignature(html$.OListElement, () => ({
    __proto__: dart.getSetters(html$.OListElement.__proto__),
    [$reversed]: dart.nullable(core.bool),
    [S$.$start]: core.int,
    [S.$type]: core.String
  }));
  dart.setLibraryUri(html$.OListElement, I[148]);
  dart.registerExtension("HTMLOListElement", html$.OListElement);
  html$.ObjectElement = class ObjectElement extends html$.HtmlElement {
    static new() {
      return html$.ObjectElement.as(html$.document[S.$createElement]("object"));
    }
    static get supported() {
      return html$.Element.isTagSupported("object");
    }
    get [S$1.$contentWindow]() {
      return html$._convertNativeToDart_Window(this[S$1._get_contentWindow]);
    }
    get [S$1._get_contentWindow]() {
      return this.contentWindow;
    }
    get [S$.$data]() {
      return this.data;
    }
    set [S$.$data](value) {
      this.data = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$1.$useMap]() {
      return this.useMap;
    }
    set [S$1.$useMap](value) {
      this.useMap = value;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$.__setter__](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
  };
  (html$.ObjectElement.created = function() {
    html$.ObjectElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ObjectElement.prototype;
  dart.addTypeTests(html$.ObjectElement);
  dart.addTypeCaches(html$.ObjectElement);
  dart.setMethodSignature(html$.ObjectElement, () => ({
    __proto__: dart.getMethods(html$.ObjectElement.__proto__),
    [S$.__getter__]: dart.fnType(html$.Node, [core.String]),
    [S$.__setter__]: dart.fnType(dart.void, [core.String, html$.Node]),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(html$.ObjectElement, () => ({
    __proto__: dart.getGetters(html$.ObjectElement.__proto__),
    [S$1.$contentWindow]: dart.nullable(html$.WindowBase),
    [S$1._get_contentWindow]: dart.dynamic,
    [S$.$data]: core.String,
    [S$.$form]: dart.nullable(html$.FormElement),
    [$height]: core.String,
    [$name]: core.String,
    [S.$type]: core.String,
    [S$1.$useMap]: core.String,
    [S$.$validationMessage]: core.String,
    [S$.$validity]: html$.ValidityState,
    [$width]: core.String,
    [S$.$willValidate]: core.bool
  }));
  dart.setSetterSignature(html$.ObjectElement, () => ({
    __proto__: dart.getSetters(html$.ObjectElement.__proto__),
    [S$.$data]: core.String,
    [$height]: core.String,
    [$name]: core.String,
    [S.$type]: core.String,
    [S$1.$useMap]: core.String,
    [$width]: core.String
  }));
  dart.setLibraryUri(html$.ObjectElement, I[148]);
  dart.registerExtension("HTMLObjectElement", html$.ObjectElement);
  html$.OffscreenCanvas = class OffscreenCanvas$ extends html$.EventTarget {
    static new(width, height) {
      if (width == null) dart.nullFailed(I[147], 23983, 31, "width");
      if (height == null) dart.nullFailed(I[147], 23983, 42, "height");
      return html$.OffscreenCanvas._create_1(width, height);
    }
    static _create_1(width, height) {
      return new OffscreenCanvas(width, height);
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    [S$2.$convertToBlob](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.Blob, this.convertToBlob(options_dict));
    }
    [S$.$getContext](contextType, attributes = null) {
      if (contextType == null) dart.nullFailed(I[147], 24006, 29, "contextType");
      if (attributes != null) {
        let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
        return this[S$._getContext_1](contextType, attributes_1);
      }
      return this[S$._getContext_2](contextType);
    }
    [S$._getContext_1](...args) {
      return this.getContext.apply(this, args);
    }
    [S$._getContext_2](...args) {
      return this.getContext.apply(this, args);
    }
    [S$2.$transferToImageBitmap](...args) {
      return this.transferToImageBitmap.apply(this, args);
    }
  };
  dart.addTypeTests(html$.OffscreenCanvas);
  dart.addTypeCaches(html$.OffscreenCanvas);
  dart.setMethodSignature(html$.OffscreenCanvas, () => ({
    __proto__: dart.getMethods(html$.OffscreenCanvas.__proto__),
    [S$2.$convertToBlob]: dart.fnType(async.Future$(html$.Blob), [], [dart.nullable(core.Map)]),
    [S$.$getContext]: dart.fnType(dart.nullable(core.Object), [core.String], [dart.nullable(core.Map)]),
    [S$._getContext_1]: dart.fnType(dart.nullable(core.Object), [dart.dynamic, dart.dynamic]),
    [S$._getContext_2]: dart.fnType(dart.nullable(core.Object), [dart.dynamic]),
    [S$2.$transferToImageBitmap]: dart.fnType(html$.ImageBitmap, [])
  }));
  dart.setGetterSignature(html$.OffscreenCanvas, () => ({
    __proto__: dart.getGetters(html$.OffscreenCanvas.__proto__),
    [$height]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.OffscreenCanvas, () => ({
    __proto__: dart.getSetters(html$.OffscreenCanvas.__proto__),
    [$height]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.OffscreenCanvas, I[148]);
  dart.registerExtension("OffscreenCanvas", html$.OffscreenCanvas);
  html$.OffscreenCanvasRenderingContext2D = class OffscreenCanvasRenderingContext2D extends _interceptors.Interceptor {
    get [S$.$canvas]() {
      return this.canvas;
    }
    get [S.$direction]() {
      return this.direction;
    }
    set [S.$direction](value) {
      this.direction = value;
    }
    get [S$.$fillStyle]() {
      return this.fillStyle;
    }
    set [S$.$fillStyle](value) {
      this.fillStyle = value;
    }
    get [S$.$filter]() {
      return this.filter;
    }
    set [S$.$filter](value) {
      this.filter = value;
    }
    get [S$.$font]() {
      return this.font;
    }
    set [S$.$font](value) {
      this.font = value;
    }
    get [S$.$globalAlpha]() {
      return this.globalAlpha;
    }
    set [S$.$globalAlpha](value) {
      this.globalAlpha = value;
    }
    get [S$.$globalCompositeOperation]() {
      return this.globalCompositeOperation;
    }
    set [S$.$globalCompositeOperation](value) {
      this.globalCompositeOperation = value;
    }
    get [S$.$imageSmoothingEnabled]() {
      return this.imageSmoothingEnabled;
    }
    set [S$.$imageSmoothingEnabled](value) {
      this.imageSmoothingEnabled = value;
    }
    get [S$.$imageSmoothingQuality]() {
      return this.imageSmoothingQuality;
    }
    set [S$.$imageSmoothingQuality](value) {
      this.imageSmoothingQuality = value;
    }
    get [S$.$lineCap]() {
      return this.lineCap;
    }
    set [S$.$lineCap](value) {
      this.lineCap = value;
    }
    get [S$.$lineDashOffset]() {
      return this.lineDashOffset;
    }
    set [S$.$lineDashOffset](value) {
      this.lineDashOffset = value;
    }
    get [S$.$lineJoin]() {
      return this.lineJoin;
    }
    set [S$.$lineJoin](value) {
      this.lineJoin = value;
    }
    get [S$.$lineWidth]() {
      return this.lineWidth;
    }
    set [S$.$lineWidth](value) {
      this.lineWidth = value;
    }
    get [S$.$miterLimit]() {
      return this.miterLimit;
    }
    set [S$.$miterLimit](value) {
      this.miterLimit = value;
    }
    get [S$.$shadowBlur]() {
      return this.shadowBlur;
    }
    set [S$.$shadowBlur](value) {
      this.shadowBlur = value;
    }
    get [S$.$shadowColor]() {
      return this.shadowColor;
    }
    set [S$.$shadowColor](value) {
      this.shadowColor = value;
    }
    get [S$.$shadowOffsetX]() {
      return this.shadowOffsetX;
    }
    set [S$.$shadowOffsetX](value) {
      this.shadowOffsetX = value;
    }
    get [S$.$shadowOffsetY]() {
      return this.shadowOffsetY;
    }
    set [S$.$shadowOffsetY](value) {
      this.shadowOffsetY = value;
    }
    get [S$.$strokeStyle]() {
      return this.strokeStyle;
    }
    set [S$.$strokeStyle](value) {
      this.strokeStyle = value;
    }
    get [S$.$textAlign]() {
      return this.textAlign;
    }
    set [S$.$textAlign](value) {
      this.textAlign = value;
    }
    get [S$.$textBaseline]() {
      return this.textBaseline;
    }
    set [S$.$textBaseline](value) {
      this.textBaseline = value;
    }
    [S$.$beginPath](...args) {
      return this.beginPath.apply(this, args);
    }
    [S$.$clearRect](...args) {
      return this.clearRect.apply(this, args);
    }
    [S$.$clip](...args) {
      return this.clip.apply(this, args);
    }
    [S$2.$commit]() {
      return js_util.promiseToFuture(dart.dynamic, this.commit());
    }
    [S$.$createImageData](data_OR_imagedata_OR_sw, sh_OR_sw = null, imageDataColorSettings_OR_sh = null, imageDataColorSettings = null) {
      if (html$.ImageData.is(data_OR_imagedata_OR_sw) && sh_OR_sw == null && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_1](imagedata_1));
      }
      if (sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_2](data_OR_imagedata_OR_sw, sh_OR_sw));
      }
      if (core.Map.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings == null) {
        let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_3](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
      }
      if (imageDataColorSettings != null && core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null) {
        let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings);
        return html_common.convertNativeToDart_ImageData(this[S$._createImageData_4](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh, imageDataColorSettings_1));
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$._createImageData_1](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_2](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_3](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$._createImageData_4](...args) {
      return this.createImageData.apply(this, args);
    }
    [S$.$createLinearGradient](...args) {
      return this.createLinearGradient.apply(this, args);
    }
    [S$.$createPattern](...args) {
      return this.createPattern.apply(this, args);
    }
    [S$.$createRadialGradient](...args) {
      return this.createRadialGradient.apply(this, args);
    }
    [S$.$drawImage](...args) {
      return this.drawImage.apply(this, args);
    }
    [S$.$fill](...args) {
      return this.fill.apply(this, args);
    }
    [S$.$fillRect](...args) {
      return this.fillRect.apply(this, args);
    }
    [S$.$fillText](...args) {
      return this.fillText.apply(this, args);
    }
    [S$.$getImageData](sx, sy, sw, sh) {
      if (sx == null) dart.nullFailed(I[147], 24196, 30, "sx");
      if (sy == null) dart.nullFailed(I[147], 24196, 38, "sy");
      if (sw == null) dart.nullFailed(I[147], 24196, 46, "sw");
      if (sh == null) dart.nullFailed(I[147], 24196, 54, "sh");
      return html_common.convertNativeToDart_ImageData(this[S$._getImageData_1](sx, sy, sw, sh));
    }
    [S$._getImageData_1](...args) {
      return this.getImageData.apply(this, args);
    }
    [S$.$getLineDash](...args) {
      return this.getLineDash.apply(this, args);
    }
    [S$.$isPointInPath](...args) {
      return this.isPointInPath.apply(this, args);
    }
    [S$.$isPointInStroke](...args) {
      return this.isPointInStroke.apply(this, args);
    }
    [S$.$measureText](...args) {
      return this.measureText.apply(this, args);
    }
    [S$.$putImageData](imagedata, dx, dy, dirtyX = null, dirtyY = null, dirtyWidth = null, dirtyHeight = null) {
      if (imagedata == null) dart.nullFailed(I[147], 24212, 31, "imagedata");
      if (dx == null) dart.nullFailed(I[147], 24212, 46, "dx");
      if (dy == null) dart.nullFailed(I[147], 24212, 54, "dy");
      if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
        this[S$._putImageData_1](imagedata_1, dx, dy);
        return;
      }
      if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
        this[S$._putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$._putImageData_1](...args) {
      return this.putImageData.apply(this, args);
    }
    [S$._putImageData_2](...args) {
      return this.putImageData.apply(this, args);
    }
    [S$.$resetTransform](...args) {
      return this.resetTransform.apply(this, args);
    }
    [S$.$restore](...args) {
      return this.restore.apply(this, args);
    }
    [S$.$rotate](...args) {
      return this.rotate.apply(this, args);
    }
    [S$.$save](...args) {
      return this.save.apply(this, args);
    }
    [S$.$scale](...args) {
      return this.scale.apply(this, args);
    }
    [S$.$setLineDash](...args) {
      return this.setLineDash.apply(this, args);
    }
    [S$.$setTransform](...args) {
      return this.setTransform.apply(this, args);
    }
    [S$.$stroke](...args) {
      return this.stroke.apply(this, args);
    }
    [S$.$strokeRect](...args) {
      return this.strokeRect.apply(this, args);
    }
    [S$.$strokeText](...args) {
      return this.strokeText.apply(this, args);
    }
    [S$.$transform](...args) {
      return this.transform.apply(this, args);
    }
    [S.$translate](...args) {
      return this.translate.apply(this, args);
    }
    [S$.$arc](...args) {
      return this.arc.apply(this, args);
    }
    [S$.$arcTo](...args) {
      return this.arcTo.apply(this, args);
    }
    [S$.$bezierCurveTo](...args) {
      return this.bezierCurveTo.apply(this, args);
    }
    [S$.$closePath](...args) {
      return this.closePath.apply(this, args);
    }
    [S$.$ellipse](...args) {
      return this.ellipse.apply(this, args);
    }
    [S$.$lineTo](...args) {
      return this.lineTo.apply(this, args);
    }
    [S$.$moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$.$quadraticCurveTo](...args) {
      return this.quadraticCurveTo.apply(this, args);
    }
    [S$.$rect](...args) {
      return this.rect.apply(this, args);
    }
  };
  dart.addTypeTests(html$.OffscreenCanvasRenderingContext2D);
  dart.addTypeCaches(html$.OffscreenCanvasRenderingContext2D);
  html$.OffscreenCanvasRenderingContext2D[dart.implements] = () => [html$._CanvasPath];
  dart.setMethodSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
    __proto__: dart.getMethods(html$.OffscreenCanvasRenderingContext2D.__proto__),
    [S$.$beginPath]: dart.fnType(dart.void, []),
    [S$.$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$clip]: dart.fnType(dart.void, [], [dart.nullable(html$.Path2D)]),
    [S$2.$commit]: dart.fnType(async.Future, []),
    [S$.$createImageData]: dart.fnType(html$.ImageData, [dart.dynamic], [dart.nullable(core.int), dart.dynamic, dart.nullable(core.Map)]),
    [S$._createImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic]),
    [S$._createImageData_2]: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
    [S$._createImageData_3]: dart.fnType(dart.dynamic, [core.int, dart.dynamic, dart.dynamic]),
    [S$._createImageData_4]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.nullable(core.int), dart.dynamic]),
    [S$.$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
    [S$.$createPattern]: dart.fnType(dart.nullable(html$.CanvasPattern), [dart.dynamic, core.String]),
    [S$.$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$drawImage]: dart.fnType(dart.void, [dart.dynamic, core.num, core.num], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$.$fill]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$fillText]: dart.fnType(dart.void, [core.String, core.num, core.num], [dart.nullable(core.num)]),
    [S$.$getImageData]: dart.fnType(html$.ImageData, [core.int, core.int, core.int, core.int]),
    [S$._getImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$.$getLineDash]: dart.fnType(core.List$(core.num), []),
    [S$.$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.nullable(core.num)]),
    [S$.$measureText]: dart.fnType(html$.TextMetrics, [core.String]),
    [S$.$putImageData]: dart.fnType(dart.void, [html$.ImageData, core.int, core.int], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int)]),
    [S$._putImageData_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$._putImageData_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$.$resetTransform]: dart.fnType(dart.void, []),
    [S$.$restore]: dart.fnType(dart.void, []),
    [S$.$rotate]: dart.fnType(dart.void, [core.num]),
    [S$.$save]: dart.fnType(dart.void, []),
    [S$.$scale]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
    [S$.$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$stroke]: dart.fnType(dart.void, [], [dart.nullable(html$.Path2D)]),
    [S$.$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$strokeText]: dart.fnType(dart.void, [core.String, core.num, core.num], [dart.nullable(core.num)]),
    [S$.$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S.$translate]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
    [S$.$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$closePath]: dart.fnType(dart.void, []),
    [S$.$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
  }));
  dart.setGetterSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
    __proto__: dart.getGetters(html$.OffscreenCanvasRenderingContext2D.__proto__),
    [S$.$canvas]: dart.nullable(html$.OffscreenCanvas),
    [S.$direction]: dart.nullable(core.String),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$font]: dart.nullable(core.String),
    [S$.$globalAlpha]: dart.nullable(core.num),
    [S$.$globalCompositeOperation]: dart.nullable(core.String),
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: dart.nullable(core.String),
    [S$.$lineDashOffset]: dart.nullable(core.num),
    [S$.$lineJoin]: dart.nullable(core.String),
    [S$.$lineWidth]: dart.nullable(core.num),
    [S$.$miterLimit]: dart.nullable(core.num),
    [S$.$shadowBlur]: dart.nullable(core.num),
    [S$.$shadowColor]: dart.nullable(core.String),
    [S$.$shadowOffsetX]: dart.nullable(core.num),
    [S$.$shadowOffsetY]: dart.nullable(core.num),
    [S$.$strokeStyle]: dart.nullable(core.Object),
    [S$.$textAlign]: dart.nullable(core.String),
    [S$.$textBaseline]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
    __proto__: dart.getSetters(html$.OffscreenCanvasRenderingContext2D.__proto__),
    [S.$direction]: dart.nullable(core.String),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$font]: dart.nullable(core.String),
    [S$.$globalAlpha]: dart.nullable(core.num),
    [S$.$globalCompositeOperation]: dart.nullable(core.String),
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: dart.nullable(core.String),
    [S$.$lineDashOffset]: dart.nullable(core.num),
    [S$.$lineJoin]: dart.nullable(core.String),
    [S$.$lineWidth]: dart.nullable(core.num),
    [S$.$miterLimit]: dart.nullable(core.num),
    [S$.$shadowBlur]: dart.nullable(core.num),
    [S$.$shadowColor]: dart.nullable(core.String),
    [S$.$shadowOffsetX]: dart.nullable(core.num),
    [S$.$shadowOffsetY]: dart.nullable(core.num),
    [S$.$strokeStyle]: dart.nullable(core.Object),
    [S$.$textAlign]: dart.nullable(core.String),
    [S$.$textBaseline]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.OffscreenCanvasRenderingContext2D, I[148]);
  dart.registerExtension("OffscreenCanvasRenderingContext2D", html$.OffscreenCanvasRenderingContext2D);
  html$.OptGroupElement = class OptGroupElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("optgroup");
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$label]() {
      return this.label;
    }
    set [S$.$label](value) {
      this.label = value;
    }
  };
  (html$.OptGroupElement.created = function() {
    html$.OptGroupElement.__proto__.created.call(this);
    ;
  }).prototype = html$.OptGroupElement.prototype;
  dart.addTypeTests(html$.OptGroupElement);
  dart.addTypeCaches(html$.OptGroupElement);
  dart.setGetterSignature(html$.OptGroupElement, () => ({
    __proto__: dart.getGetters(html$.OptGroupElement.__proto__),
    [S$.$disabled]: core.bool,
    [S$.$label]: core.String
  }));
  dart.setSetterSignature(html$.OptGroupElement, () => ({
    __proto__: dart.getSetters(html$.OptGroupElement.__proto__),
    [S$.$disabled]: core.bool,
    [S$.$label]: core.String
  }));
  dart.setLibraryUri(html$.OptGroupElement, I[148]);
  dart.registerExtension("HTMLOptGroupElement", html$.OptGroupElement);
  html$.OptionElement = class OptionElement extends html$.HtmlElement {
    static new(opts) {
      let data = opts && 'data' in opts ? opts.data : "";
      if (data == null) dart.nullFailed(I[147], 24325, 15, "data");
      let value = opts && 'value' in opts ? opts.value : "";
      if (value == null) dart.nullFailed(I[147], 24325, 32, "value");
      let selected = opts && 'selected' in opts ? opts.selected : false;
      if (selected == null) dart.nullFailed(I[147], 24325, 48, "selected");
      return html$.OptionElement.__(data, value, null, selected);
    }
    static __(data = null, value = null, defaultSelected = null, selected = null) {
      if (selected != null) {
        return html$.OptionElement._create_1(data, value, defaultSelected, selected);
      }
      if (defaultSelected != null) {
        return html$.OptionElement._create_2(data, value, defaultSelected);
      }
      if (value != null) {
        return html$.OptionElement._create_3(data, value);
      }
      if (data != null) {
        return html$.OptionElement._create_4(data);
      }
      return html$.OptionElement._create_5();
    }
    static _create_1(data, value, defaultSelected, selected) {
      return new Option(data, value, defaultSelected, selected);
    }
    static _create_2(data, value, defaultSelected) {
      return new Option(data, value, defaultSelected);
    }
    static _create_3(data, value) {
      return new Option(data, value);
    }
    static _create_4(data) {
      return new Option(data);
    }
    static _create_5() {
      return new Option();
    }
    get [S$2.$defaultSelected]() {
      return this.defaultSelected;
    }
    set [S$2.$defaultSelected](value) {
      this.defaultSelected = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S.$index]() {
      return this.index;
    }
    get [S$.$label]() {
      return this.label;
    }
    set [S$.$label](value) {
      this.label = value;
    }
    get [S$.$selected]() {
      return this.selected;
    }
    set [S$.$selected](value) {
      this.selected = value;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.OptionElement.created = function() {
    html$.OptionElement.__proto__.created.call(this);
    ;
  }).prototype = html$.OptionElement.prototype;
  dart.addTypeTests(html$.OptionElement);
  dart.addTypeCaches(html$.OptionElement);
  dart.setGetterSignature(html$.OptionElement, () => ({
    __proto__: dart.getGetters(html$.OptionElement.__proto__),
    [S$2.$defaultSelected]: core.bool,
    [S$.$disabled]: core.bool,
    [S$.$form]: dart.nullable(html$.FormElement),
    [S.$index]: core.int,
    [S$.$label]: dart.nullable(core.String),
    [S$.$selected]: core.bool,
    [S.$value]: core.String
  }));
  dart.setSetterSignature(html$.OptionElement, () => ({
    __proto__: dart.getSetters(html$.OptionElement.__proto__),
    [S$2.$defaultSelected]: core.bool,
    [S$.$disabled]: core.bool,
    [S$.$label]: dart.nullable(core.String),
    [S$.$selected]: core.bool,
    [S.$value]: core.String
  }));
  dart.setLibraryUri(html$.OptionElement, I[148]);
  dart.registerExtension("HTMLOptionElement", html$.OptionElement);
  html$.OutputElement = class OutputElement extends html$.HtmlElement {
    static new() {
      return html$.OutputElement.as(html$.document[S.$createElement]("output"));
    }
    static get supported() {
      return html$.Element.isTagSupported("output");
    }
    get [S$1.$defaultValue]() {
      return this.defaultValue;
    }
    set [S$1.$defaultValue](value) {
      this.defaultValue = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$1.$htmlFor]() {
      return this.htmlFor;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
  };
  (html$.OutputElement.created = function() {
    html$.OutputElement.__proto__.created.call(this);
    ;
  }).prototype = html$.OutputElement.prototype;
  dart.addTypeTests(html$.OutputElement);
  dart.addTypeCaches(html$.OutputElement);
  dart.setMethodSignature(html$.OutputElement, () => ({
    __proto__: dart.getMethods(html$.OutputElement.__proto__),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(html$.OutputElement, () => ({
    __proto__: dart.getGetters(html$.OutputElement.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.String),
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$1.$htmlFor]: dart.nullable(html$.DomTokenList),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [$name]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String),
    [S$.$validationMessage]: dart.nullable(core.String),
    [S$.$validity]: dart.nullable(html$.ValidityState),
    [S.$value]: dart.nullable(core.String),
    [S$.$willValidate]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(html$.OutputElement, () => ({
    __proto__: dart.getSetters(html$.OutputElement.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.OutputElement, I[148]);
  dart.registerExtension("HTMLOutputElement", html$.OutputElement);
  html$.OverconstrainedError = class OverconstrainedError$ extends _interceptors.Interceptor {
    static new(constraint, message) {
      if (constraint == null) dart.nullFailed(I[147], 24476, 39, "constraint");
      if (message == null) dart.nullFailed(I[147], 24476, 58, "message");
      return html$.OverconstrainedError._create_1(constraint, message);
    }
    static _create_1(constraint, message) {
      return new OverconstrainedError(constraint, message);
    }
    get [S$2.$constraint]() {
      return this.constraint;
    }
    get [$message]() {
      return this.message;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.OverconstrainedError);
  dart.addTypeCaches(html$.OverconstrainedError);
  dart.setGetterSignature(html$.OverconstrainedError, () => ({
    __proto__: dart.getGetters(html$.OverconstrainedError.__proto__),
    [S$2.$constraint]: dart.nullable(core.String),
    [$message]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.OverconstrainedError, I[148]);
  dart.registerExtension("OverconstrainedError", html$.OverconstrainedError);
  html$.PageTransitionEvent = class PageTransitionEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 24502, 38, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.PageTransitionEvent._create_1(type, eventInitDict_1);
      }
      return html$.PageTransitionEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new PageTransitionEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new PageTransitionEvent(type);
    }
    get [S$2.$persisted]() {
      return this.persisted;
    }
  };
  dart.addTypeTests(html$.PageTransitionEvent);
  dart.addTypeCaches(html$.PageTransitionEvent);
  dart.setGetterSignature(html$.PageTransitionEvent, () => ({
    __proto__: dart.getGetters(html$.PageTransitionEvent.__proto__),
    [S$2.$persisted]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.PageTransitionEvent, I[148]);
  dart.registerExtension("PageTransitionEvent", html$.PageTransitionEvent);
  html$.PaintRenderingContext2D = class PaintRenderingContext2D extends _interceptors.Interceptor {
    get [S$.$currentTransform]() {
      return this.currentTransform;
    }
    set [S$.$currentTransform](value) {
      this.currentTransform = value;
    }
    get [S$.$fillStyle]() {
      return this.fillStyle;
    }
    set [S$.$fillStyle](value) {
      this.fillStyle = value;
    }
    get [S$.$filter]() {
      return this.filter;
    }
    set [S$.$filter](value) {
      this.filter = value;
    }
    get [S$.$globalAlpha]() {
      return this.globalAlpha;
    }
    set [S$.$globalAlpha](value) {
      this.globalAlpha = value;
    }
    get [S$.$globalCompositeOperation]() {
      return this.globalCompositeOperation;
    }
    set [S$.$globalCompositeOperation](value) {
      this.globalCompositeOperation = value;
    }
    get [S$.$imageSmoothingEnabled]() {
      return this.imageSmoothingEnabled;
    }
    set [S$.$imageSmoothingEnabled](value) {
      this.imageSmoothingEnabled = value;
    }
    get [S$.$imageSmoothingQuality]() {
      return this.imageSmoothingQuality;
    }
    set [S$.$imageSmoothingQuality](value) {
      this.imageSmoothingQuality = value;
    }
    get [S$.$lineCap]() {
      return this.lineCap;
    }
    set [S$.$lineCap](value) {
      this.lineCap = value;
    }
    get [S$.$lineDashOffset]() {
      return this.lineDashOffset;
    }
    set [S$.$lineDashOffset](value) {
      this.lineDashOffset = value;
    }
    get [S$.$lineJoin]() {
      return this.lineJoin;
    }
    set [S$.$lineJoin](value) {
      this.lineJoin = value;
    }
    get [S$.$lineWidth]() {
      return this.lineWidth;
    }
    set [S$.$lineWidth](value) {
      this.lineWidth = value;
    }
    get [S$.$miterLimit]() {
      return this.miterLimit;
    }
    set [S$.$miterLimit](value) {
      this.miterLimit = value;
    }
    get [S$.$shadowBlur]() {
      return this.shadowBlur;
    }
    set [S$.$shadowBlur](value) {
      this.shadowBlur = value;
    }
    get [S$.$shadowColor]() {
      return this.shadowColor;
    }
    set [S$.$shadowColor](value) {
      this.shadowColor = value;
    }
    get [S$.$shadowOffsetX]() {
      return this.shadowOffsetX;
    }
    set [S$.$shadowOffsetX](value) {
      this.shadowOffsetX = value;
    }
    get [S$.$shadowOffsetY]() {
      return this.shadowOffsetY;
    }
    set [S$.$shadowOffsetY](value) {
      this.shadowOffsetY = value;
    }
    get [S$.$strokeStyle]() {
      return this.strokeStyle;
    }
    set [S$.$strokeStyle](value) {
      this.strokeStyle = value;
    }
    [S$.$beginPath](...args) {
      return this.beginPath.apply(this, args);
    }
    [S$.$clearRect](...args) {
      return this.clearRect.apply(this, args);
    }
    [S$.$clip](...args) {
      return this.clip.apply(this, args);
    }
    [S$.$createLinearGradient](...args) {
      return this.createLinearGradient.apply(this, args);
    }
    [S$.$createPattern](...args) {
      return this.createPattern.apply(this, args);
    }
    [S$.$createRadialGradient](...args) {
      return this.createRadialGradient.apply(this, args);
    }
    [S$.$drawImage](...args) {
      return this.drawImage.apply(this, args);
    }
    [S$.$fill](...args) {
      return this.fill.apply(this, args);
    }
    [S$.$fillRect](...args) {
      return this.fillRect.apply(this, args);
    }
    [S$.$getLineDash](...args) {
      return this.getLineDash.apply(this, args);
    }
    [S$.$isPointInPath](...args) {
      return this.isPointInPath.apply(this, args);
    }
    [S$.$isPointInStroke](...args) {
      return this.isPointInStroke.apply(this, args);
    }
    [S$.$resetTransform](...args) {
      return this.resetTransform.apply(this, args);
    }
    [S$.$restore](...args) {
      return this.restore.apply(this, args);
    }
    [S$.$rotate](...args) {
      return this.rotate.apply(this, args);
    }
    [S$.$save](...args) {
      return this.save.apply(this, args);
    }
    [S$.$scale](...args) {
      return this.scale.apply(this, args);
    }
    [S$.$setLineDash](...args) {
      return this.setLineDash.apply(this, args);
    }
    [S$.$setTransform](...args) {
      return this.setTransform.apply(this, args);
    }
    [S$.$stroke](...args) {
      return this.stroke.apply(this, args);
    }
    [S$.$strokeRect](...args) {
      return this.strokeRect.apply(this, args);
    }
    [S$.$transform](...args) {
      return this.transform.apply(this, args);
    }
    [S.$translate](...args) {
      return this.translate.apply(this, args);
    }
    [S$.$arc](...args) {
      return this.arc.apply(this, args);
    }
    [S$.$arcTo](...args) {
      return this.arcTo.apply(this, args);
    }
    [S$.$bezierCurveTo](...args) {
      return this.bezierCurveTo.apply(this, args);
    }
    [S$.$closePath](...args) {
      return this.closePath.apply(this, args);
    }
    [S$.$ellipse](...args) {
      return this.ellipse.apply(this, args);
    }
    [S$.$lineTo](...args) {
      return this.lineTo.apply(this, args);
    }
    [S$.$moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$.$quadraticCurveTo](...args) {
      return this.quadraticCurveTo.apply(this, args);
    }
    [S$.$rect](...args) {
      return this.rect.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PaintRenderingContext2D);
  dart.addTypeCaches(html$.PaintRenderingContext2D);
  html$.PaintRenderingContext2D[dart.implements] = () => [html$._CanvasPath];
  dart.setMethodSignature(html$.PaintRenderingContext2D, () => ({
    __proto__: dart.getMethods(html$.PaintRenderingContext2D.__proto__),
    [S$.$beginPath]: dart.fnType(dart.void, []),
    [S$.$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$clip]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
    [S$.$createPattern]: dart.fnType(dart.nullable(html$.CanvasPattern), [dart.dynamic, core.String]),
    [S$.$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$drawImage]: dart.fnType(dart.void, [dart.dynamic, core.num, core.num], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)]),
    [S$.$fill]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$getLineDash]: dart.fnType(core.List$(core.num), []),
    [S$.$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, dart.nullable(core.String)]),
    [S$.$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.nullable(core.num)]),
    [S$.$resetTransform]: dart.fnType(dart.void, []),
    [S$.$restore]: dart.fnType(dart.void, []),
    [S$.$rotate]: dart.fnType(dart.void, [core.num]),
    [S$.$save]: dart.fnType(dart.void, []),
    [S$.$scale]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
    [S$.$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$stroke]: dart.fnType(dart.void, [], [dart.nullable(html$.Path2D)]),
    [S$.$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S.$translate]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
    [S$.$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$closePath]: dart.fnType(dart.void, []),
    [S$.$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
  }));
  dart.setGetterSignature(html$.PaintRenderingContext2D, () => ({
    __proto__: dart.getGetters(html$.PaintRenderingContext2D.__proto__),
    [S$.$currentTransform]: dart.nullable(svg$.Matrix),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$globalAlpha]: dart.nullable(core.num),
    [S$.$globalCompositeOperation]: dart.nullable(core.String),
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: dart.nullable(core.String),
    [S$.$lineDashOffset]: dart.nullable(core.num),
    [S$.$lineJoin]: dart.nullable(core.String),
    [S$.$lineWidth]: dart.nullable(core.num),
    [S$.$miterLimit]: dart.nullable(core.num),
    [S$.$shadowBlur]: dart.nullable(core.num),
    [S$.$shadowColor]: dart.nullable(core.String),
    [S$.$shadowOffsetX]: dart.nullable(core.num),
    [S$.$shadowOffsetY]: dart.nullable(core.num),
    [S$.$strokeStyle]: dart.nullable(core.Object)
  }));
  dart.setSetterSignature(html$.PaintRenderingContext2D, () => ({
    __proto__: dart.getSetters(html$.PaintRenderingContext2D.__proto__),
    [S$.$currentTransform]: dart.nullable(svg$.Matrix),
    [S$.$fillStyle]: dart.nullable(core.Object),
    [S$.$filter]: dart.nullable(core.String),
    [S$.$globalAlpha]: dart.nullable(core.num),
    [S$.$globalCompositeOperation]: dart.nullable(core.String),
    [S$.$imageSmoothingEnabled]: dart.nullable(core.bool),
    [S$.$imageSmoothingQuality]: dart.nullable(core.String),
    [S$.$lineCap]: dart.nullable(core.String),
    [S$.$lineDashOffset]: dart.nullable(core.num),
    [S$.$lineJoin]: dart.nullable(core.String),
    [S$.$lineWidth]: dart.nullable(core.num),
    [S$.$miterLimit]: dart.nullable(core.num),
    [S$.$shadowBlur]: dart.nullable(core.num),
    [S$.$shadowColor]: dart.nullable(core.String),
    [S$.$shadowOffsetX]: dart.nullable(core.num),
    [S$.$shadowOffsetY]: dart.nullable(core.num),
    [S$.$strokeStyle]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.PaintRenderingContext2D, I[148]);
  dart.registerExtension("PaintRenderingContext2D", html$.PaintRenderingContext2D);
  html$.PaintSize = class PaintSize extends _interceptors.Interceptor {
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
  };
  dart.addTypeTests(html$.PaintSize);
  dart.addTypeCaches(html$.PaintSize);
  dart.setGetterSignature(html$.PaintSize, () => ({
    __proto__: dart.getGetters(html$.PaintSize.__proto__),
    [$height]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.PaintSize, I[148]);
  dart.registerExtension("PaintSize", html$.PaintSize);
  html$.PaintWorkletGlobalScope = class PaintWorkletGlobalScope extends html$.WorkletGlobalScope {
    get [S$2.$devicePixelRatio]() {
      return this.devicePixelRatio;
    }
    [S$2.$registerPaint](...args) {
      return this.registerPaint.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PaintWorkletGlobalScope);
  dart.addTypeCaches(html$.PaintWorkletGlobalScope);
  dart.setMethodSignature(html$.PaintWorkletGlobalScope, () => ({
    __proto__: dart.getMethods(html$.PaintWorkletGlobalScope.__proto__),
    [S$2.$registerPaint]: dart.fnType(dart.void, [core.String, core.Object])
  }));
  dart.setGetterSignature(html$.PaintWorkletGlobalScope, () => ({
    __proto__: dart.getGetters(html$.PaintWorkletGlobalScope.__proto__),
    [S$2.$devicePixelRatio]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.PaintWorkletGlobalScope, I[148]);
  dart.registerExtension("PaintWorkletGlobalScope", html$.PaintWorkletGlobalScope);
  html$.ParagraphElement = class ParagraphElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("p");
    }
  };
  (html$.ParagraphElement.created = function() {
    html$.ParagraphElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ParagraphElement.prototype;
  dart.addTypeTests(html$.ParagraphElement);
  dart.addTypeCaches(html$.ParagraphElement);
  dart.setLibraryUri(html$.ParagraphElement, I[148]);
  dart.registerExtension("HTMLParagraphElement", html$.ParagraphElement);
  html$.ParamElement = class ParamElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("param");
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.ParamElement.created = function() {
    html$.ParamElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ParamElement.prototype;
  dart.addTypeTests(html$.ParamElement);
  dart.addTypeCaches(html$.ParamElement);
  dart.setGetterSignature(html$.ParamElement, () => ({
    __proto__: dart.getGetters(html$.ParamElement.__proto__),
    [$name]: core.String,
    [S.$value]: core.String
  }));
  dart.setSetterSignature(html$.ParamElement, () => ({
    __proto__: dart.getSetters(html$.ParamElement.__proto__),
    [$name]: core.String,
    [S.$value]: core.String
  }));
  dart.setLibraryUri(html$.ParamElement, I[148]);
  dart.registerExtension("HTMLParamElement", html$.ParamElement);
  html$.ParentNode = class ParentNode extends _interceptors.Interceptor {
    get [S._childElementCount]() {
      return this._childElementCount;
    }
    get [S._children]() {
      return this._children;
    }
    get [S._firstElementChild]() {
      return this._firstElementChild;
    }
    get [S._lastElementChild]() {
      return this._lastElementChild;
    }
  };
  dart.addTypeTests(html$.ParentNode);
  dart.addTypeCaches(html$.ParentNode);
  dart.setGetterSignature(html$.ParentNode, () => ({
    __proto__: dart.getGetters(html$.ParentNode.__proto__),
    [S._childElementCount]: core.int,
    [S._children]: dart.nullable(core.List$(html$.Node)),
    [S._firstElementChild]: dart.nullable(html$.Element),
    [S._lastElementChild]: dart.nullable(html$.Element)
  }));
  dart.setLibraryUri(html$.ParentNode, I[148]);
  html$.PasswordCredential = class PasswordCredential$ extends html$.Credential {
    static new(data_OR_form) {
      if (core.Map.is(data_OR_form)) {
        let data_1 = html_common.convertDartToNative_Dictionary(data_OR_form);
        return html$.PasswordCredential._create_1(data_1);
      }
      if (html$.FormElement.is(data_OR_form)) {
        return html$.PasswordCredential._create_2(data_OR_form);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(data_OR_form) {
      return new PasswordCredential(data_OR_form);
    }
    static _create_2(data_OR_form) {
      return new PasswordCredential(data_OR_form);
    }
    get [S$2.$additionalData]() {
      return this.additionalData;
    }
    set [S$2.$additionalData](value) {
      this.additionalData = value;
    }
    get [S$2.$idName]() {
      return this.idName;
    }
    set [S$2.$idName](value) {
      this.idName = value;
    }
    get [S$.$password]() {
      return this.password;
    }
    get [S$2.$passwordName]() {
      return this.passwordName;
    }
    set [S$2.$passwordName](value) {
      this.passwordName = value;
    }
    get [S$.$iconUrl]() {
      return this.iconURL;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.PasswordCredential);
  dart.addTypeCaches(html$.PasswordCredential);
  html$.PasswordCredential[dart.implements] = () => [html$.CredentialUserData];
  dart.setGetterSignature(html$.PasswordCredential, () => ({
    __proto__: dart.getGetters(html$.PasswordCredential.__proto__),
    [S$2.$additionalData]: dart.nullable(core.Object),
    [S$2.$idName]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$2.$passwordName]: dart.nullable(core.String),
    [S$.$iconUrl]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.PasswordCredential, () => ({
    __proto__: dart.getSetters(html$.PasswordCredential.__proto__),
    [S$2.$additionalData]: dart.nullable(core.Object),
    [S$2.$idName]: dart.nullable(core.String),
    [S$2.$passwordName]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PasswordCredential, I[148]);
  dart.registerExtension("PasswordCredential", html$.PasswordCredential);
  html$.Path2D = class Path2D$ extends _interceptors.Interceptor {
    static new(path_OR_text = null) {
      if (path_OR_text == null) {
        return html$.Path2D._create_1();
      }
      if (html$.Path2D.is(path_OR_text)) {
        return html$.Path2D._create_2(path_OR_text);
      }
      if (typeof path_OR_text == 'string') {
        return html$.Path2D._create_3(path_OR_text);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1() {
      return new Path2D();
    }
    static _create_2(path_OR_text) {
      return new Path2D(path_OR_text);
    }
    static _create_3(path_OR_text) {
      return new Path2D(path_OR_text);
    }
    [S$2.$addPath](...args) {
      return this.addPath.apply(this, args);
    }
    [S$.$arc](...args) {
      return this.arc.apply(this, args);
    }
    [S$.$arcTo](...args) {
      return this.arcTo.apply(this, args);
    }
    [S$.$bezierCurveTo](...args) {
      return this.bezierCurveTo.apply(this, args);
    }
    [S$.$closePath](...args) {
      return this.closePath.apply(this, args);
    }
    [S$.$ellipse](...args) {
      return this.ellipse.apply(this, args);
    }
    [S$.$lineTo](...args) {
      return this.lineTo.apply(this, args);
    }
    [S$.$moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$.$quadraticCurveTo](...args) {
      return this.quadraticCurveTo.apply(this, args);
    }
    [S$.$rect](...args) {
      return this.rect.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Path2D);
  dart.addTypeCaches(html$.Path2D);
  html$.Path2D[dart.implements] = () => [html$._CanvasPath];
  dart.setMethodSignature(html$.Path2D, () => ({
    __proto__: dart.getMethods(html$.Path2D.__proto__),
    [S$2.$addPath]: dart.fnType(dart.void, [html$.Path2D], [dart.nullable(svg$.Matrix)]),
    [S$.$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
    [S$.$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$.$closePath]: dart.fnType(dart.void, []),
    [S$.$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, dart.nullable(core.bool)]),
    [S$.$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
    [S$.$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$.$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
  }));
  dart.setLibraryUri(html$.Path2D, I[148]);
  dart.registerExtension("Path2D", html$.Path2D);
  html$.PaymentAddress = class PaymentAddress extends _interceptors.Interceptor {
    get [S$2.$addressLine]() {
      return this.addressLine;
    }
    get [S$2.$city]() {
      return this.city;
    }
    get [S$2.$country]() {
      return this.country;
    }
    get [S$2.$dependentLocality]() {
      return this.dependentLocality;
    }
    get [S$2.$languageCode]() {
      return this.languageCode;
    }
    get [S$2.$organization]() {
      return this.organization;
    }
    get [S$2.$phone]() {
      return this.phone;
    }
    get [S$2.$postalCode]() {
      return this.postalCode;
    }
    get [S$2.$recipient]() {
      return this.recipient;
    }
    get [S$1.$region]() {
      return this.region;
    }
    get [S$2.$sortingCode]() {
      return this.sortingCode;
    }
  };
  dart.addTypeTests(html$.PaymentAddress);
  dart.addTypeCaches(html$.PaymentAddress);
  dart.setGetterSignature(html$.PaymentAddress, () => ({
    __proto__: dart.getGetters(html$.PaymentAddress.__proto__),
    [S$2.$addressLine]: dart.nullable(core.List$(core.String)),
    [S$2.$city]: dart.nullable(core.String),
    [S$2.$country]: dart.nullable(core.String),
    [S$2.$dependentLocality]: dart.nullable(core.String),
    [S$2.$languageCode]: dart.nullable(core.String),
    [S$2.$organization]: dart.nullable(core.String),
    [S$2.$phone]: dart.nullable(core.String),
    [S$2.$postalCode]: dart.nullable(core.String),
    [S$2.$recipient]: dart.nullable(core.String),
    [S$1.$region]: dart.nullable(core.String),
    [S$2.$sortingCode]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PaymentAddress, I[148]);
  dart.registerExtension("PaymentAddress", html$.PaymentAddress);
  html$.PaymentInstruments = class PaymentInstruments extends _interceptors.Interceptor {
    [$clear]() {
      return js_util.promiseToFuture(dart.dynamic, this.clear());
    }
    [S.$delete](instrumentKey) {
      if (instrumentKey == null) dart.nullFailed(I[147], 24930, 30, "instrumentKey");
      return js_util.promiseToFuture(core.bool, this.delete(instrumentKey));
    }
    [S.$get](instrumentKey) {
      if (instrumentKey == null) dart.nullFailed(I[147], 24933, 44, "instrumentKey");
      return html$.promiseToFutureAsMap(this.get(instrumentKey));
    }
    [S$.$has](instrumentKey) {
      if (instrumentKey == null) dart.nullFailed(I[147], 24936, 21, "instrumentKey");
      return js_util.promiseToFuture(dart.dynamic, this.has(instrumentKey));
    }
    [$keys]() {
      return js_util.promiseToFuture(core.List, this.keys());
    }
    [S$.$set](instrumentKey, details) {
      if (instrumentKey == null) dart.nullFailed(I[147], 24942, 21, "instrumentKey");
      if (details == null) dart.nullFailed(I[147], 24942, 40, "details");
      let details_dict = html_common.convertDartToNative_Dictionary(details);
      return js_util.promiseToFuture(dart.dynamic, this.set(instrumentKey, details_dict));
    }
  };
  dart.addTypeTests(html$.PaymentInstruments);
  dart.addTypeCaches(html$.PaymentInstruments);
  dart.setMethodSignature(html$.PaymentInstruments, () => ({
    __proto__: dart.getMethods(html$.PaymentInstruments.__proto__),
    [$clear]: dart.fnType(async.Future, []),
    [S.$delete]: dart.fnType(async.Future$(core.bool), [core.String]),
    [S.$get]: dart.fnType(async.Future$(dart.nullable(core.Map$(core.String, dart.dynamic))), [core.String]),
    [S$.$has]: dart.fnType(async.Future, [core.String]),
    [$keys]: dart.fnType(async.Future$(core.List), []),
    [S$.$set]: dart.fnType(async.Future, [core.String, core.Map])
  }));
  dart.setLibraryUri(html$.PaymentInstruments, I[148]);
  dart.registerExtension("PaymentInstruments", html$.PaymentInstruments);
  html$.PaymentManager = class PaymentManager extends _interceptors.Interceptor {
    get [S$2.$instruments]() {
      return this.instruments;
    }
    get [S$2.$userHint]() {
      return this.userHint;
    }
    set [S$2.$userHint](value) {
      this.userHint = value;
    }
  };
  dart.addTypeTests(html$.PaymentManager);
  dart.addTypeCaches(html$.PaymentManager);
  dart.setGetterSignature(html$.PaymentManager, () => ({
    __proto__: dart.getGetters(html$.PaymentManager.__proto__),
    [S$2.$instruments]: dart.nullable(html$.PaymentInstruments),
    [S$2.$userHint]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.PaymentManager, () => ({
    __proto__: dart.getSetters(html$.PaymentManager.__proto__),
    [S$2.$userHint]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PaymentManager, I[148]);
  dart.registerExtension("PaymentManager", html$.PaymentManager);
  html$.PaymentRequest = class PaymentRequest$ extends html$.EventTarget {
    static new(methodData, details, options = null) {
      if (methodData == null) dart.nullFailed(I[147], 24971, 36, "methodData");
      if (details == null) dart.nullFailed(I[147], 24971, 52, "details");
      let methodData_1 = [];
      for (let i of methodData) {
        methodData_1[$add](html_common.convertDartToNative_Dictionary(i));
      }
      if (options != null) {
        let details_1 = html_common.convertDartToNative_Dictionary(details);
        let options_2 = html_common.convertDartToNative_Dictionary(options);
        return html$.PaymentRequest._create_1(methodData_1, details_1, options_2);
      }
      let details_1 = html_common.convertDartToNative_Dictionary(details);
      return html$.PaymentRequest._create_2(methodData_1, details_1);
    }
    static _create_1(methodData, details, options) {
      return new PaymentRequest(methodData, details, options);
    }
    static _create_2(methodData, details) {
      return new PaymentRequest(methodData, details);
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$2.$shippingAddress]() {
      return this.shippingAddress;
    }
    get [S$2.$shippingOption]() {
      return this.shippingOption;
    }
    get [S$2.$shippingType]() {
      return this.shippingType;
    }
    [S.$abort]() {
      return js_util.promiseToFuture(dart.dynamic, this.abort());
    }
    [S$2.$canMakePayment]() {
      return js_util.promiseToFuture(core.bool, this.canMakePayment());
    }
    [S$0.$show]() {
      return js_util.promiseToFuture(html$.PaymentResponse, this.show());
    }
  };
  dart.addTypeTests(html$.PaymentRequest);
  dart.addTypeCaches(html$.PaymentRequest);
  dart.setMethodSignature(html$.PaymentRequest, () => ({
    __proto__: dart.getMethods(html$.PaymentRequest.__proto__),
    [S.$abort]: dart.fnType(async.Future, []),
    [S$2.$canMakePayment]: dart.fnType(async.Future$(core.bool), []),
    [S$0.$show]: dart.fnType(async.Future$(html$.PaymentResponse), [])
  }));
  dart.setGetterSignature(html$.PaymentRequest, () => ({
    __proto__: dart.getGetters(html$.PaymentRequest.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$2.$shippingAddress]: dart.nullable(html$.PaymentAddress),
    [S$2.$shippingOption]: dart.nullable(core.String),
    [S$2.$shippingType]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PaymentRequest, I[148]);
  dart.registerExtension("PaymentRequest", html$.PaymentRequest);
  html$.PaymentRequestEvent = class PaymentRequestEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 25027, 38, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 25027, 48, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PaymentRequestEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new PaymentRequestEvent(type, eventInitDict);
    }
    get [S$2.$instrumentKey]() {
      return this.instrumentKey;
    }
    get [S$.$methodData]() {
      return this.methodData;
    }
    get [S$.$modifiers]() {
      return this.modifiers;
    }
    get [S$2.$paymentRequestId]() {
      return this.paymentRequestId;
    }
    get [S$.$paymentRequestOrigin]() {
      return this.paymentRequestOrigin;
    }
    get [S$.$topLevelOrigin]() {
      return this.topLevelOrigin;
    }
    get [S$2.$total]() {
      return this.total;
    }
    [S$.$openWindow](url) {
      if (url == null) dart.nullFailed(I[147], 25051, 42, "url");
      return js_util.promiseToFuture(html$.WindowClient, this.openWindow(url));
    }
    [S$.$respondWith](...args) {
      return this.respondWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PaymentRequestEvent);
  dart.addTypeCaches(html$.PaymentRequestEvent);
  dart.setMethodSignature(html$.PaymentRequestEvent, () => ({
    __proto__: dart.getMethods(html$.PaymentRequestEvent.__proto__),
    [S$.$openWindow]: dart.fnType(async.Future$(html$.WindowClient), [core.String]),
    [S$.$respondWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setGetterSignature(html$.PaymentRequestEvent, () => ({
    __proto__: dart.getGetters(html$.PaymentRequestEvent.__proto__),
    [S$2.$instrumentKey]: dart.nullable(core.String),
    [S$.$methodData]: dart.nullable(core.List),
    [S$.$modifiers]: dart.nullable(core.List),
    [S$2.$paymentRequestId]: dart.nullable(core.String),
    [S$.$paymentRequestOrigin]: dart.nullable(core.String),
    [S$.$topLevelOrigin]: dart.nullable(core.String),
    [S$2.$total]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.PaymentRequestEvent, I[148]);
  dart.registerExtension("PaymentRequestEvent", html$.PaymentRequestEvent);
  html$.PaymentRequestUpdateEvent = class PaymentRequestUpdateEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 25067, 44, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.PaymentRequestUpdateEvent._create_1(type, eventInitDict_1);
      }
      return html$.PaymentRequestUpdateEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new PaymentRequestUpdateEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new PaymentRequestUpdateEvent(type);
    }
    [S$2.$updateWith](...args) {
      return this.updateWith.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PaymentRequestUpdateEvent);
  dart.addTypeCaches(html$.PaymentRequestUpdateEvent);
  dart.setMethodSignature(html$.PaymentRequestUpdateEvent, () => ({
    __proto__: dart.getMethods(html$.PaymentRequestUpdateEvent.__proto__),
    [S$2.$updateWith]: dart.fnType(dart.void, [async.Future])
  }));
  dart.setLibraryUri(html$.PaymentRequestUpdateEvent, I[148]);
  dart.registerExtension("PaymentRequestUpdateEvent", html$.PaymentRequestUpdateEvent);
  html$.PaymentResponse = class PaymentResponse extends _interceptors.Interceptor {
    get [S$.$details]() {
      return this.details;
    }
    get [S$2.$methodName]() {
      return this.methodName;
    }
    get [S$2.$payerEmail]() {
      return this.payerEmail;
    }
    get [S$2.$payerName]() {
      return this.payerName;
    }
    get [S$2.$payerPhone]() {
      return this.payerPhone;
    }
    get [S$2.$requestId]() {
      return this.requestId;
    }
    get [S$2.$shippingAddress]() {
      return this.shippingAddress;
    }
    get [S$2.$shippingOption]() {
      return this.shippingOption;
    }
    [S$1.$complete](paymentResult = null) {
      return js_util.promiseToFuture(dart.dynamic, this.complete(paymentResult));
    }
  };
  dart.addTypeTests(html$.PaymentResponse);
  dart.addTypeCaches(html$.PaymentResponse);
  dart.setMethodSignature(html$.PaymentResponse, () => ({
    __proto__: dart.getMethods(html$.PaymentResponse.__proto__),
    [S$1.$complete]: dart.fnType(async.Future, [], [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.PaymentResponse, () => ({
    __proto__: dart.getGetters(html$.PaymentResponse.__proto__),
    [S$.$details]: dart.nullable(core.Object),
    [S$2.$methodName]: dart.nullable(core.String),
    [S$2.$payerEmail]: dart.nullable(core.String),
    [S$2.$payerName]: dart.nullable(core.String),
    [S$2.$payerPhone]: dart.nullable(core.String),
    [S$2.$requestId]: dart.nullable(core.String),
    [S$2.$shippingAddress]: dart.nullable(html$.PaymentAddress),
    [S$2.$shippingOption]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PaymentResponse, I[148]);
  dart.registerExtension("PaymentResponse", html$.PaymentResponse);
  html$.Performance = class Performance extends html$.EventTarget {
    static get supported() {
      return !!window.performance;
    }
    get [S$2.$memory]() {
      return this.memory;
    }
    get [S$2.$navigation]() {
      return this.navigation;
    }
    get [S$2.$timeOrigin]() {
      return this.timeOrigin;
    }
    get [S$.$timing]() {
      return this.timing;
    }
    [S$2.$clearMarks](...args) {
      return this.clearMarks.apply(this, args);
    }
    [S$2.$clearMeasures](...args) {
      return this.clearMeasures.apply(this, args);
    }
    [S$2.$clearResourceTimings](...args) {
      return this.clearResourceTimings.apply(this, args);
    }
    [S$2.$getEntries](...args) {
      return this.getEntries.apply(this, args);
    }
    [S$2.$getEntriesByName](...args) {
      return this.getEntriesByName.apply(this, args);
    }
    [S$2.$getEntriesByType](...args) {
      return this.getEntriesByType.apply(this, args);
    }
    [S$2.$mark](...args) {
      return this.mark.apply(this, args);
    }
    [S$2.$measure](...args) {
      return this.measure.apply(this, args);
    }
    [S$2.$now](...args) {
      return this.now.apply(this, args);
    }
    [S$2.$setResourceTimingBufferSize](...args) {
      return this.setResourceTimingBufferSize.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Performance);
  dart.addTypeCaches(html$.Performance);
  dart.setMethodSignature(html$.Performance, () => ({
    __proto__: dart.getMethods(html$.Performance.__proto__),
    [S$2.$clearMarks]: dart.fnType(dart.void, [dart.nullable(core.String)]),
    [S$2.$clearMeasures]: dart.fnType(dart.void, [dart.nullable(core.String)]),
    [S$2.$clearResourceTimings]: dart.fnType(dart.void, []),
    [S$2.$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
    [S$2.$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, dart.nullable(core.String)]),
    [S$2.$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String]),
    [S$2.$mark]: dart.fnType(dart.void, [core.String]),
    [S$2.$measure]: dart.fnType(dart.void, [core.String, dart.nullable(core.String), dart.nullable(core.String)]),
    [S$2.$now]: dart.fnType(core.double, []),
    [S$2.$setResourceTimingBufferSize]: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(html$.Performance, () => ({
    __proto__: dart.getGetters(html$.Performance.__proto__),
    [S$2.$memory]: dart.nullable(html$.MemoryInfo),
    [S$2.$navigation]: html$.PerformanceNavigation,
    [S$2.$timeOrigin]: dart.nullable(core.num),
    [S$.$timing]: html$.PerformanceTiming
  }));
  dart.setLibraryUri(html$.Performance, I[148]);
  dart.registerExtension("Performance", html$.Performance);
  html$.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
    get [S$.$duration]() {
      return this.duration;
    }
    get [S$2.$entryType]() {
      return this.entryType;
    }
    get [$name]() {
      return this.name;
    }
    get [S$.$startTime]() {
      return this.startTime;
    }
  };
  dart.addTypeTests(html$.PerformanceEntry);
  dart.addTypeCaches(html$.PerformanceEntry);
  dart.setGetterSignature(html$.PerformanceEntry, () => ({
    __proto__: dart.getGetters(html$.PerformanceEntry.__proto__),
    [S$.$duration]: core.num,
    [S$2.$entryType]: core.String,
    [$name]: core.String,
    [S$.$startTime]: core.num
  }));
  dart.setLibraryUri(html$.PerformanceEntry, I[148]);
  dart.registerExtension("PerformanceEntry", html$.PerformanceEntry);
  html$.PerformanceLongTaskTiming = class PerformanceLongTaskTiming extends html$.PerformanceEntry {
    get [S$2.$attribution]() {
      return this.attribution;
    }
  };
  dart.addTypeTests(html$.PerformanceLongTaskTiming);
  dart.addTypeCaches(html$.PerformanceLongTaskTiming);
  dart.setGetterSignature(html$.PerformanceLongTaskTiming, () => ({
    __proto__: dart.getGetters(html$.PerformanceLongTaskTiming.__proto__),
    [S$2.$attribution]: dart.nullable(core.List$(html$.TaskAttributionTiming))
  }));
  dart.setLibraryUri(html$.PerformanceLongTaskTiming, I[148]);
  dart.registerExtension("PerformanceLongTaskTiming", html$.PerformanceLongTaskTiming);
  html$.PerformanceMark = class PerformanceMark extends html$.PerformanceEntry {};
  dart.addTypeTests(html$.PerformanceMark);
  dart.addTypeCaches(html$.PerformanceMark);
  dart.setLibraryUri(html$.PerformanceMark, I[148]);
  dart.registerExtension("PerformanceMark", html$.PerformanceMark);
  html$.PerformanceMeasure = class PerformanceMeasure extends html$.PerformanceEntry {};
  dart.addTypeTests(html$.PerformanceMeasure);
  dart.addTypeCaches(html$.PerformanceMeasure);
  dart.setLibraryUri(html$.PerformanceMeasure, I[148]);
  dart.registerExtension("PerformanceMeasure", html$.PerformanceMeasure);
  html$.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
    get [S$2.$redirectCount]() {
      return this.redirectCount;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.PerformanceNavigation);
  dart.addTypeCaches(html$.PerformanceNavigation);
  dart.setGetterSignature(html$.PerformanceNavigation, () => ({
    __proto__: dart.getGetters(html$.PerformanceNavigation.__proto__),
    [S$2.$redirectCount]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.PerformanceNavigation, I[148]);
  dart.defineLazy(html$.PerformanceNavigation, {
    /*html$.PerformanceNavigation.TYPE_BACK_FORWARD*/get TYPE_BACK_FORWARD() {
      return 2;
    },
    /*html$.PerformanceNavigation.TYPE_NAVIGATE*/get TYPE_NAVIGATE() {
      return 0;
    },
    /*html$.PerformanceNavigation.TYPE_RELOAD*/get TYPE_RELOAD() {
      return 1;
    },
    /*html$.PerformanceNavigation.TYPE_RESERVED*/get TYPE_RESERVED() {
      return 255;
    }
  }, false);
  dart.registerExtension("PerformanceNavigation", html$.PerformanceNavigation);
  html$.PerformanceResourceTiming = class PerformanceResourceTiming extends html$.PerformanceEntry {
    get [S$2.$connectEnd]() {
      return this.connectEnd;
    }
    get [S$2.$connectStart]() {
      return this.connectStart;
    }
    get [S$2.$decodedBodySize]() {
      return this.decodedBodySize;
    }
    get [S$2.$domainLookupEnd]() {
      return this.domainLookupEnd;
    }
    get [S$2.$domainLookupStart]() {
      return this.domainLookupStart;
    }
    get [S$2.$encodedBodySize]() {
      return this.encodedBodySize;
    }
    get [S$2.$fetchStart]() {
      return this.fetchStart;
    }
    get [S$2.$initiatorType]() {
      return this.initiatorType;
    }
    get [S$2.$nextHopProtocol]() {
      return this.nextHopProtocol;
    }
    get [S$2.$redirectEnd]() {
      return this.redirectEnd;
    }
    get [S$2.$redirectStart]() {
      return this.redirectStart;
    }
    get [S$2.$requestStart]() {
      return this.requestStart;
    }
    get [S$2.$responseEnd]() {
      return this.responseEnd;
    }
    get [S$2.$responseStart]() {
      return this.responseStart;
    }
    get [S$2.$secureConnectionStart]() {
      return this.secureConnectionStart;
    }
    get [S$2.$serverTiming]() {
      return this.serverTiming;
    }
    get [S$2.$transferSize]() {
      return this.transferSize;
    }
    get [S$2.$workerStart]() {
      return this.workerStart;
    }
  };
  dart.addTypeTests(html$.PerformanceResourceTiming);
  dart.addTypeCaches(html$.PerformanceResourceTiming);
  dart.setGetterSignature(html$.PerformanceResourceTiming, () => ({
    __proto__: dart.getGetters(html$.PerformanceResourceTiming.__proto__),
    [S$2.$connectEnd]: core.num,
    [S$2.$connectStart]: core.num,
    [S$2.$decodedBodySize]: dart.nullable(core.int),
    [S$2.$domainLookupEnd]: dart.nullable(core.num),
    [S$2.$domainLookupStart]: dart.nullable(core.num),
    [S$2.$encodedBodySize]: dart.nullable(core.int),
    [S$2.$fetchStart]: dart.nullable(core.num),
    [S$2.$initiatorType]: dart.nullable(core.String),
    [S$2.$nextHopProtocol]: dart.nullable(core.String),
    [S$2.$redirectEnd]: dart.nullable(core.num),
    [S$2.$redirectStart]: dart.nullable(core.num),
    [S$2.$requestStart]: dart.nullable(core.num),
    [S$2.$responseEnd]: dart.nullable(core.num),
    [S$2.$responseStart]: dart.nullable(core.num),
    [S$2.$secureConnectionStart]: dart.nullable(core.num),
    [S$2.$serverTiming]: dart.nullable(core.List$(html$.PerformanceServerTiming)),
    [S$2.$transferSize]: dart.nullable(core.int),
    [S$2.$workerStart]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.PerformanceResourceTiming, I[148]);
  dart.registerExtension("PerformanceResourceTiming", html$.PerformanceResourceTiming);
  html$.PerformanceNavigationTiming = class PerformanceNavigationTiming extends html$.PerformanceResourceTiming {
    get [S$2.$domComplete]() {
      return this.domComplete;
    }
    get [S$2.$domContentLoadedEventEnd]() {
      return this.domContentLoadedEventEnd;
    }
    get [S$2.$domContentLoadedEventStart]() {
      return this.domContentLoadedEventStart;
    }
    get [S$2.$domInteractive]() {
      return this.domInteractive;
    }
    get [S$2.$loadEventEnd]() {
      return this.loadEventEnd;
    }
    get [S$2.$loadEventStart]() {
      return this.loadEventStart;
    }
    get [S$2.$redirectCount]() {
      return this.redirectCount;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$2.$unloadEventEnd]() {
      return this.unloadEventEnd;
    }
    get [S$2.$unloadEventStart]() {
      return this.unloadEventStart;
    }
  };
  dart.addTypeTests(html$.PerformanceNavigationTiming);
  dart.addTypeCaches(html$.PerformanceNavigationTiming);
  dart.setGetterSignature(html$.PerformanceNavigationTiming, () => ({
    __proto__: dart.getGetters(html$.PerformanceNavigationTiming.__proto__),
    [S$2.$domComplete]: dart.nullable(core.num),
    [S$2.$domContentLoadedEventEnd]: dart.nullable(core.num),
    [S$2.$domContentLoadedEventStart]: dart.nullable(core.num),
    [S$2.$domInteractive]: dart.nullable(core.num),
    [S$2.$loadEventEnd]: dart.nullable(core.num),
    [S$2.$loadEventStart]: dart.nullable(core.num),
    [S$2.$redirectCount]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.String),
    [S$2.$unloadEventEnd]: dart.nullable(core.num),
    [S$2.$unloadEventStart]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.PerformanceNavigationTiming, I[148]);
  dart.registerExtension("PerformanceNavigationTiming", html$.PerformanceNavigationTiming);
  html$.PerformanceObserver = class PerformanceObserver$ extends _interceptors.Interceptor {
    static new(callback) {
      if (callback == null) dart.nullFailed(I[147], 25280, 59, "callback");
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.PerformanceObserverEntryListAndPerformanceObserverTovoid(), callback, 2);
      return html$.PerformanceObserver._create_1(callback_1);
    }
    static _create_1(callback) {
      return new PerformanceObserver(callback);
    }
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S.$observe](options) {
      if (options == null) dart.nullFailed(I[147], 25289, 20, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[S$1._observe_1$1](options_1);
      return;
    }
    [S$1._observe_1$1](...args) {
      return this.observe.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PerformanceObserver);
  dart.addTypeCaches(html$.PerformanceObserver);
  dart.setMethodSignature(html$.PerformanceObserver, () => ({
    __proto__: dart.getMethods(html$.PerformanceObserver.__proto__),
    [S$1.$disconnect]: dart.fnType(dart.void, []),
    [S.$observe]: dart.fnType(dart.void, [core.Map]),
    [S$1._observe_1$1]: dart.fnType(dart.void, [dart.dynamic])
  }));
  dart.setLibraryUri(html$.PerformanceObserver, I[148]);
  dart.registerExtension("PerformanceObserver", html$.PerformanceObserver);
  html$.PerformanceObserverEntryList = class PerformanceObserverEntryList extends _interceptors.Interceptor {
    [S$2.$getEntries](...args) {
      return this.getEntries.apply(this, args);
    }
    [S$2.$getEntriesByName](...args) {
      return this.getEntriesByName.apply(this, args);
    }
    [S$2.$getEntriesByType](...args) {
      return this.getEntriesByType.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PerformanceObserverEntryList);
  dart.addTypeCaches(html$.PerformanceObserverEntryList);
  dart.setMethodSignature(html$.PerformanceObserverEntryList, () => ({
    __proto__: dart.getMethods(html$.PerformanceObserverEntryList.__proto__),
    [S$2.$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
    [S$2.$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, dart.nullable(core.String)]),
    [S$2.$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String])
  }));
  dart.setLibraryUri(html$.PerformanceObserverEntryList, I[148]);
  dart.registerExtension("PerformanceObserverEntryList", html$.PerformanceObserverEntryList);
  html$.PerformancePaintTiming = class PerformancePaintTiming extends html$.PerformanceEntry {};
  dart.addTypeTests(html$.PerformancePaintTiming);
  dart.addTypeCaches(html$.PerformancePaintTiming);
  dart.setLibraryUri(html$.PerformancePaintTiming, I[148]);
  dart.registerExtension("PerformancePaintTiming", html$.PerformancePaintTiming);
  html$.PerformanceServerTiming = class PerformanceServerTiming extends _interceptors.Interceptor {
    get [S$1.$description]() {
      return this.description;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    get [$name]() {
      return this.name;
    }
  };
  dart.addTypeTests(html$.PerformanceServerTiming);
  dart.addTypeCaches(html$.PerformanceServerTiming);
  dart.setGetterSignature(html$.PerformanceServerTiming, () => ({
    __proto__: dart.getGetters(html$.PerformanceServerTiming.__proto__),
    [S$1.$description]: dart.nullable(core.String),
    [S$.$duration]: dart.nullable(core.num),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PerformanceServerTiming, I[148]);
  dart.registerExtension("PerformanceServerTiming", html$.PerformanceServerTiming);
  html$.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
    get [S$2.$connectEnd]() {
      return this.connectEnd;
    }
    get [S$2.$connectStart]() {
      return this.connectStart;
    }
    get [S$2.$domComplete]() {
      return this.domComplete;
    }
    get [S$2.$domContentLoadedEventEnd]() {
      return this.domContentLoadedEventEnd;
    }
    get [S$2.$domContentLoadedEventStart]() {
      return this.domContentLoadedEventStart;
    }
    get [S$2.$domInteractive]() {
      return this.domInteractive;
    }
    get [S$2.$domLoading]() {
      return this.domLoading;
    }
    get [S$2.$domainLookupEnd]() {
      return this.domainLookupEnd;
    }
    get [S$2.$domainLookupStart]() {
      return this.domainLookupStart;
    }
    get [S$2.$fetchStart]() {
      return this.fetchStart;
    }
    get [S$2.$loadEventEnd]() {
      return this.loadEventEnd;
    }
    get [S$2.$loadEventStart]() {
      return this.loadEventStart;
    }
    get [S$2.$navigationStart]() {
      return this.navigationStart;
    }
    get [S$2.$redirectEnd]() {
      return this.redirectEnd;
    }
    get [S$2.$redirectStart]() {
      return this.redirectStart;
    }
    get [S$2.$requestStart]() {
      return this.requestStart;
    }
    get [S$2.$responseEnd]() {
      return this.responseEnd;
    }
    get [S$2.$responseStart]() {
      return this.responseStart;
    }
    get [S$2.$secureConnectionStart]() {
      return this.secureConnectionStart;
    }
    get [S$2.$unloadEventEnd]() {
      return this.unloadEventEnd;
    }
    get [S$2.$unloadEventStart]() {
      return this.unloadEventStart;
    }
  };
  dart.addTypeTests(html$.PerformanceTiming);
  dart.addTypeCaches(html$.PerformanceTiming);
  dart.setGetterSignature(html$.PerformanceTiming, () => ({
    __proto__: dart.getGetters(html$.PerformanceTiming.__proto__),
    [S$2.$connectEnd]: core.int,
    [S$2.$connectStart]: core.int,
    [S$2.$domComplete]: core.int,
    [S$2.$domContentLoadedEventEnd]: core.int,
    [S$2.$domContentLoadedEventStart]: core.int,
    [S$2.$domInteractive]: core.int,
    [S$2.$domLoading]: core.int,
    [S$2.$domainLookupEnd]: core.int,
    [S$2.$domainLookupStart]: core.int,
    [S$2.$fetchStart]: core.int,
    [S$2.$loadEventEnd]: core.int,
    [S$2.$loadEventStart]: core.int,
    [S$2.$navigationStart]: core.int,
    [S$2.$redirectEnd]: core.int,
    [S$2.$redirectStart]: core.int,
    [S$2.$requestStart]: core.int,
    [S$2.$responseEnd]: core.int,
    [S$2.$responseStart]: core.int,
    [S$2.$secureConnectionStart]: core.int,
    [S$2.$unloadEventEnd]: core.int,
    [S$2.$unloadEventStart]: core.int
  }));
  dart.setLibraryUri(html$.PerformanceTiming, I[148]);
  dart.registerExtension("PerformanceTiming", html$.PerformanceTiming);
  html$.PermissionStatus = class PermissionStatus extends html$.EventTarget {
    get [S$.$state]() {
      return this.state;
    }
    get [S.$onChange]() {
      return html$.PermissionStatus.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.PermissionStatus);
  dart.addTypeCaches(html$.PermissionStatus);
  dart.setGetterSignature(html$.PermissionStatus, () => ({
    __proto__: dart.getGetters(html$.PermissionStatus.__proto__),
    [S$.$state]: dart.nullable(core.String),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.PermissionStatus, I[148]);
  dart.defineLazy(html$.PermissionStatus, {
    /*html$.PermissionStatus.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("PermissionStatus", html$.PermissionStatus);
  html$.Permissions = class Permissions extends _interceptors.Interceptor {
    [S$2.$query](permission) {
      if (permission == null) dart.nullFailed(I[147], 25482, 38, "permission");
      let permission_dict = html_common.convertDartToNative_Dictionary(permission);
      return js_util.promiseToFuture(html$.PermissionStatus, this.query(permission_dict));
    }
    [S$.$request](permissions) {
      if (permissions == null) dart.nullFailed(I[147], 25488, 40, "permissions");
      let permissions_dict = html_common.convertDartToNative_Dictionary(permissions);
      return js_util.promiseToFuture(html$.PermissionStatus, this.request(permissions_dict));
    }
    [S$2.$requestAll](permissions) {
      if (permissions == null) dart.nullFailed(I[147], 25494, 49, "permissions");
      return js_util.promiseToFuture(html$.PermissionStatus, this.requestAll(permissions));
    }
    [S$2.$revoke](permission) {
      if (permission == null) dart.nullFailed(I[147], 25498, 39, "permission");
      let permission_dict = html_common.convertDartToNative_Dictionary(permission);
      return js_util.promiseToFuture(html$.PermissionStatus, this.revoke(permission_dict));
    }
  };
  dart.addTypeTests(html$.Permissions);
  dart.addTypeCaches(html$.Permissions);
  dart.setMethodSignature(html$.Permissions, () => ({
    __proto__: dart.getMethods(html$.Permissions.__proto__),
    [S$2.$query]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map]),
    [S$.$request]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map]),
    [S$2.$requestAll]: dart.fnType(async.Future$(html$.PermissionStatus), [core.List$(core.Map)]),
    [S$2.$revoke]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map])
  }));
  dart.setLibraryUri(html$.Permissions, I[148]);
  dart.registerExtension("Permissions", html$.Permissions);
  html$.PhotoCapabilities = class PhotoCapabilities extends _interceptors.Interceptor {
    get [S$2.$fillLightMode]() {
      return this.fillLightMode;
    }
    get [S$2.$imageHeight]() {
      return this.imageHeight;
    }
    get [S$2.$imageWidth]() {
      return this.imageWidth;
    }
    get [S$2.$redEyeReduction]() {
      return this.redEyeReduction;
    }
  };
  dart.addTypeTests(html$.PhotoCapabilities);
  dart.addTypeCaches(html$.PhotoCapabilities);
  dart.setGetterSignature(html$.PhotoCapabilities, () => ({
    __proto__: dart.getGetters(html$.PhotoCapabilities.__proto__),
    [S$2.$fillLightMode]: dart.nullable(core.List),
    [S$2.$imageHeight]: dart.nullable(html$.MediaSettingsRange),
    [S$2.$imageWidth]: dart.nullable(html$.MediaSettingsRange),
    [S$2.$redEyeReduction]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PhotoCapabilities, I[148]);
  dart.registerExtension("PhotoCapabilities", html$.PhotoCapabilities);
  html$.PictureElement = class PictureElement extends html$.HtmlElement {};
  (html$.PictureElement.created = function() {
    html$.PictureElement.__proto__.created.call(this);
    ;
  }).prototype = html$.PictureElement.prototype;
  dart.addTypeTests(html$.PictureElement);
  dart.addTypeCaches(html$.PictureElement);
  dart.setLibraryUri(html$.PictureElement, I[148]);
  dart.registerExtension("HTMLPictureElement", html$.PictureElement);
  html$.Plugin = class Plugin extends _interceptors.Interceptor {
    get [S$1.$description]() {
      return this.description;
    }
    get [S$1.$filename]() {
      return this.filename;
    }
    get [$length]() {
      return this.length;
    }
    get [$name]() {
      return this.name;
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Plugin);
  dart.addTypeCaches(html$.Plugin);
  dart.setMethodSignature(html$.Plugin, () => ({
    __proto__: dart.getMethods(html$.Plugin.__proto__),
    [S$.$item]: dart.fnType(dart.nullable(html$.MimeType), [core.int]),
    [S$1.$namedItem]: dart.fnType(dart.nullable(html$.MimeType), [core.String])
  }));
  dart.setGetterSignature(html$.Plugin, () => ({
    __proto__: dart.getGetters(html$.Plugin.__proto__),
    [S$1.$description]: dart.nullable(core.String),
    [S$1.$filename]: dart.nullable(core.String),
    [$length]: dart.nullable(core.int),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Plugin, I[148]);
  dart.registerExtension("Plugin", html$.Plugin);
  const Interceptor_ListMixin$36$4 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$4.new = function() {
    Interceptor_ListMixin$36$4.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$4.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$4, collection.ListMixin$(html$.Plugin));
  const Interceptor_ImmutableListMixin$36$4 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$4 {};
  (Interceptor_ImmutableListMixin$36$4.new = function() {
    Interceptor_ImmutableListMixin$36$4.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$4.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$4, html$.ImmutableListMixin$(html$.Plugin));
  html$.PluginArray = class PluginArray extends Interceptor_ImmutableListMixin$36$4 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 25578, 26, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 25584, 25, "index");
      html$.Plugin.as(value);
      if (value == null) dart.nullFailed(I[147], 25584, 39, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 25590, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 25618, 24, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
    [S$2.$refresh](...args) {
      return this.refresh.apply(this, args);
    }
  };
  html$.PluginArray.prototype[dart.isList] = true;
  dart.addTypeTests(html$.PluginArray);
  dart.addTypeCaches(html$.PluginArray);
  html$.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Plugin), core.List$(html$.Plugin)];
  dart.setMethodSignature(html$.PluginArray, () => ({
    __proto__: dart.getMethods(html$.PluginArray.__proto__),
    [$_get]: dart.fnType(html$.Plugin, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.Plugin), [core.int]),
    [S$1.$namedItem]: dart.fnType(dart.nullable(html$.Plugin), [core.String]),
    [S$2.$refresh]: dart.fnType(dart.void, [dart.nullable(core.bool)])
  }));
  dart.setGetterSignature(html$.PluginArray, () => ({
    __proto__: dart.getGetters(html$.PluginArray.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.PluginArray, () => ({
    __proto__: dart.getSetters(html$.PluginArray.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.PluginArray, I[148]);
  dart.registerExtension("PluginArray", html$.PluginArray);
  html$.PointerEvent = class PointerEvent$ extends html$.MouseEvent {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 25640, 31, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.PointerEvent._create_1(type, eventInitDict_1);
      }
      return html$.PointerEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new PointerEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new PointerEvent(type);
    }
    get [$height]() {
      return this.height;
    }
    get [S$2.$isPrimary]() {
      return this.isPrimary;
    }
    get [S$2.$pointerId]() {
      return this.pointerId;
    }
    get [S$2.$pointerType]() {
      return this.pointerType;
    }
    get [S$2.$pressure]() {
      return this.pressure;
    }
    get [S$2.$tangentialPressure]() {
      return this.tangentialPressure;
    }
    get [S$2.$tiltX]() {
      return this.tiltX;
    }
    get [S$2.$tiltY]() {
      return this.tiltY;
    }
    get [S$2.$twist]() {
      return this.twist;
    }
    get [$width]() {
      return this.width;
    }
    [S$2.$getCoalescedEvents](...args) {
      return this.getCoalescedEvents.apply(this, args);
    }
    static get supported() {
      try {
        return html$.PointerEvent.is(html$.PointerEvent.new("pointerover"));
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
        } else
          throw e;
      }
      return false;
    }
  };
  dart.addTypeTests(html$.PointerEvent);
  dart.addTypeCaches(html$.PointerEvent);
  dart.setMethodSignature(html$.PointerEvent, () => ({
    __proto__: dart.getMethods(html$.PointerEvent.__proto__),
    [S$2.$getCoalescedEvents]: dart.fnType(core.List$(html$.PointerEvent), [])
  }));
  dart.setGetterSignature(html$.PointerEvent, () => ({
    __proto__: dart.getGetters(html$.PointerEvent.__proto__),
    [$height]: dart.nullable(core.num),
    [S$2.$isPrimary]: dart.nullable(core.bool),
    [S$2.$pointerId]: dart.nullable(core.int),
    [S$2.$pointerType]: dart.nullable(core.String),
    [S$2.$pressure]: dart.nullable(core.num),
    [S$2.$tangentialPressure]: dart.nullable(core.num),
    [S$2.$tiltX]: dart.nullable(core.int),
    [S$2.$tiltY]: dart.nullable(core.int),
    [S$2.$twist]: dart.nullable(core.int),
    [$width]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.PointerEvent, I[148]);
  dart.registerExtension("PointerEvent", html$.PointerEvent);
  html$.PopStateEvent = class PopStateEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 25700, 32, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.PopStateEvent._create_1(type, eventInitDict_1);
      }
      return html$.PopStateEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new PopStateEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new PopStateEvent(type);
    }
    get [S$.$state]() {
      return html_common.convertNativeToDart_SerializedScriptValue(this[S$1._get_state]);
    }
    get [S$1._get_state]() {
      return this.state;
    }
  };
  dart.addTypeTests(html$.PopStateEvent);
  dart.addTypeCaches(html$.PopStateEvent);
  dart.setGetterSignature(html$.PopStateEvent, () => ({
    __proto__: dart.getGetters(html$.PopStateEvent.__proto__),
    [S$.$state]: dart.dynamic,
    [S$1._get_state]: dart.dynamic
  }));
  dart.setLibraryUri(html$.PopStateEvent, I[148]);
  dart.registerExtension("PopStateEvent", html$.PopStateEvent);
  html$.PositionError = class PositionError extends _interceptors.Interceptor {
    get [S$.$code]() {
      return this.code;
    }
    get [$message]() {
      return this.message;
    }
  };
  dart.addTypeTests(html$.PositionError);
  dart.addTypeCaches(html$.PositionError);
  dart.setGetterSignature(html$.PositionError, () => ({
    __proto__: dart.getGetters(html$.PositionError.__proto__),
    [S$.$code]: dart.nullable(core.int),
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PositionError, I[148]);
  dart.defineLazy(html$.PositionError, {
    /*html$.PositionError.PERMISSION_DENIED*/get PERMISSION_DENIED() {
      return 1;
    },
    /*html$.PositionError.POSITION_UNAVAILABLE*/get POSITION_UNAVAILABLE() {
      return 2;
    },
    /*html$.PositionError.TIMEOUT*/get TIMEOUT() {
      return 3;
    }
  }, false);
  dart.registerExtension("PositionError", html$.PositionError);
  html$.PreElement = class PreElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("pre");
    }
  };
  (html$.PreElement.created = function() {
    html$.PreElement.__proto__.created.call(this);
    ;
  }).prototype = html$.PreElement.prototype;
  dart.addTypeTests(html$.PreElement);
  dart.addTypeCaches(html$.PreElement);
  dart.setLibraryUri(html$.PreElement, I[148]);
  dart.registerExtension("HTMLPreElement", html$.PreElement);
  html$.Presentation = class Presentation extends _interceptors.Interceptor {
    get [S$2.$defaultRequest]() {
      return this.defaultRequest;
    }
    set [S$2.$defaultRequest](value) {
      this.defaultRequest = value;
    }
    get [S$2.$receiver]() {
      return this.receiver;
    }
  };
  dart.addTypeTests(html$.Presentation);
  dart.addTypeCaches(html$.Presentation);
  dart.setGetterSignature(html$.Presentation, () => ({
    __proto__: dart.getGetters(html$.Presentation.__proto__),
    [S$2.$defaultRequest]: dart.nullable(html$.PresentationRequest),
    [S$2.$receiver]: dart.nullable(html$.PresentationReceiver)
  }));
  dart.setSetterSignature(html$.Presentation, () => ({
    __proto__: dart.getSetters(html$.Presentation.__proto__),
    [S$2.$defaultRequest]: dart.nullable(html$.PresentationRequest)
  }));
  dart.setLibraryUri(html$.Presentation, I[148]);
  dart.registerExtension("Presentation", html$.Presentation);
  html$.PresentationAvailability = class PresentationAvailability extends html$.EventTarget {
    get [S.$value]() {
      return this.value;
    }
    get [S.$onChange]() {
      return html$.PresentationAvailability.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.PresentationAvailability);
  dart.addTypeCaches(html$.PresentationAvailability);
  dart.setGetterSignature(html$.PresentationAvailability, () => ({
    __proto__: dart.getGetters(html$.PresentationAvailability.__proto__),
    [S.$value]: dart.nullable(core.bool),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.PresentationAvailability, I[148]);
  dart.defineLazy(html$.PresentationAvailability, {
    /*html$.PresentationAvailability.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("PresentationAvailability", html$.PresentationAvailability);
  html$.PresentationConnection = class PresentationConnection extends html$.EventTarget {
    get [S$2.$binaryType]() {
      return this.binaryType;
    }
    set [S$2.$binaryType](value) {
      this.binaryType = value;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$.$state]() {
      return this.state;
    }
    get [S$.$url]() {
      return this.url;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$1.$send](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$terminate](...args) {
      return this.terminate.apply(this, args);
    }
    get [S$.$onMessage]() {
      return html$.PresentationConnection.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.PresentationConnection);
  dart.addTypeCaches(html$.PresentationConnection);
  dart.setMethodSignature(html$.PresentationConnection, () => ({
    __proto__: dart.getMethods(html$.PresentationConnection.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$1.$send]: dart.fnType(dart.void, [dart.dynamic]),
    [S$2.$terminate]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.PresentationConnection, () => ({
    __proto__: dart.getGetters(html$.PresentationConnection.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String),
    [S.$id]: dart.nullable(core.String),
    [S$.$state]: dart.nullable(core.String),
    [S$.$url]: dart.nullable(core.String),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setSetterSignature(html$.PresentationConnection, () => ({
    __proto__: dart.getSetters(html$.PresentationConnection.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PresentationConnection, I[148]);
  dart.defineLazy(html$.PresentationConnection, {
    /*html$.PresentationConnection.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("PresentationConnection", html$.PresentationConnection);
  html$.PresentationConnectionAvailableEvent = class PresentationConnectionAvailableEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 25858, 55, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 25858, 65, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PresentationConnectionAvailableEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new PresentationConnectionAvailableEvent(type, eventInitDict);
    }
    get [S$1.$connection]() {
      return this.connection;
    }
  };
  dart.addTypeTests(html$.PresentationConnectionAvailableEvent);
  dart.addTypeCaches(html$.PresentationConnectionAvailableEvent);
  dart.setGetterSignature(html$.PresentationConnectionAvailableEvent, () => ({
    __proto__: dart.getGetters(html$.PresentationConnectionAvailableEvent.__proto__),
    [S$1.$connection]: dart.nullable(html$.PresentationConnection)
  }));
  dart.setLibraryUri(html$.PresentationConnectionAvailableEvent, I[148]);
  dart.registerExtension("PresentationConnectionAvailableEvent", html$.PresentationConnectionAvailableEvent);
  html$.PresentationConnectionCloseEvent = class PresentationConnectionCloseEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 25880, 51, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 25880, 61, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PresentationConnectionCloseEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new PresentationConnectionCloseEvent(type, eventInitDict);
    }
    get [$message]() {
      return this.message;
    }
    get [S$.$reason]() {
      return this.reason;
    }
  };
  dart.addTypeTests(html$.PresentationConnectionCloseEvent);
  dart.addTypeCaches(html$.PresentationConnectionCloseEvent);
  dart.setGetterSignature(html$.PresentationConnectionCloseEvent, () => ({
    __proto__: dart.getGetters(html$.PresentationConnectionCloseEvent.__proto__),
    [$message]: dart.nullable(core.String),
    [S$.$reason]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.PresentationConnectionCloseEvent, I[148]);
  dart.registerExtension("PresentationConnectionCloseEvent", html$.PresentationConnectionCloseEvent);
  html$.PresentationConnectionList = class PresentationConnectionList extends html$.EventTarget {
    get [S$2.$connections]() {
      return this.connections;
    }
  };
  dart.addTypeTests(html$.PresentationConnectionList);
  dart.addTypeCaches(html$.PresentationConnectionList);
  dart.setGetterSignature(html$.PresentationConnectionList, () => ({
    __proto__: dart.getGetters(html$.PresentationConnectionList.__proto__),
    [S$2.$connections]: dart.nullable(core.List$(html$.PresentationConnection))
  }));
  dart.setLibraryUri(html$.PresentationConnectionList, I[148]);
  dart.registerExtension("PresentationConnectionList", html$.PresentationConnectionList);
  html$.PresentationReceiver = class PresentationReceiver extends _interceptors.Interceptor {
    get [S$2.$connectionList]() {
      return js_util.promiseToFuture(html$.PresentationConnectionList, this.connectionList);
    }
  };
  dart.addTypeTests(html$.PresentationReceiver);
  dart.addTypeCaches(html$.PresentationReceiver);
  dart.setGetterSignature(html$.PresentationReceiver, () => ({
    __proto__: dart.getGetters(html$.PresentationReceiver.__proto__),
    [S$2.$connectionList]: async.Future$(html$.PresentationConnectionList)
  }));
  dart.setLibraryUri(html$.PresentationReceiver, I[148]);
  dart.registerExtension("PresentationReceiver", html$.PresentationReceiver);
  html$.PresentationRequest = class PresentationRequest$ extends html$.EventTarget {
    static new(url_OR_urls) {
      if (typeof url_OR_urls == 'string') {
        return html$.PresentationRequest._create_1(url_OR_urls);
      }
      if (T$.ListOfString().is(url_OR_urls)) {
        let urls_1 = html_common.convertDartToNative_StringArray(url_OR_urls);
        return html$.PresentationRequest._create_2(urls_1);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(url_OR_urls) {
      return new PresentationRequest(url_OR_urls);
    }
    static _create_2(url_OR_urls) {
      return new PresentationRequest(url_OR_urls);
    }
    [S$2.$getAvailability]() {
      return js_util.promiseToFuture(html$.PresentationAvailability, this.getAvailability());
    }
    [S$2.$reconnect](id) {
      if (id == null) dart.nullFailed(I[147], 25952, 51, "id");
      return js_util.promiseToFuture(html$.PresentationConnection, this.reconnect(id));
    }
    [S$.$start]() {
      return js_util.promiseToFuture(html$.PresentationConnection, this.start());
    }
  };
  dart.addTypeTests(html$.PresentationRequest);
  dart.addTypeCaches(html$.PresentationRequest);
  dart.setMethodSignature(html$.PresentationRequest, () => ({
    __proto__: dart.getMethods(html$.PresentationRequest.__proto__),
    [S$2.$getAvailability]: dart.fnType(async.Future$(html$.PresentationAvailability), []),
    [S$2.$reconnect]: dart.fnType(async.Future$(html$.PresentationConnection), [core.String]),
    [S$.$start]: dart.fnType(async.Future$(html$.PresentationConnection), [])
  }));
  dart.setLibraryUri(html$.PresentationRequest, I[148]);
  dart.registerExtension("PresentationRequest", html$.PresentationRequest);
  html$.ProcessingInstruction = class ProcessingInstruction extends html$.CharacterData {
    get [S$1.$sheet]() {
      return this.sheet;
    }
    get [S.$target]() {
      return this.target;
    }
  };
  dart.addTypeTests(html$.ProcessingInstruction);
  dart.addTypeCaches(html$.ProcessingInstruction);
  dart.setGetterSignature(html$.ProcessingInstruction, () => ({
    __proto__: dart.getGetters(html$.ProcessingInstruction.__proto__),
    [S$1.$sheet]: dart.nullable(html$.StyleSheet),
    [S.$target]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.ProcessingInstruction, I[148]);
  dart.registerExtension("ProcessingInstruction", html$.ProcessingInstruction);
  html$.ProgressElement = class ProgressElement extends html$.HtmlElement {
    static new() {
      return html$.ProgressElement.as(html$.document[S.$createElement]("progress"));
    }
    static get supported() {
      return html$.Element.isTagSupported("progress");
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [S$1.$max]() {
      return this.max;
    }
    set [S$1.$max](value) {
      this.max = value;
    }
    get [S$0.$position]() {
      return this.position;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  (html$.ProgressElement.created = function() {
    html$.ProgressElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ProgressElement.prototype;
  dart.addTypeTests(html$.ProgressElement);
  dart.addTypeCaches(html$.ProgressElement);
  dart.setGetterSignature(html$.ProgressElement, () => ({
    __proto__: dart.getGetters(html$.ProgressElement.__proto__),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [S$1.$max]: core.num,
    [S$0.$position]: core.num,
    [S.$value]: core.num
  }));
  dart.setSetterSignature(html$.ProgressElement, () => ({
    __proto__: dart.getSetters(html$.ProgressElement.__proto__),
    [S$1.$max]: core.num,
    [S.$value]: core.num
  }));
  dart.setLibraryUri(html$.ProgressElement, I[148]);
  dart.registerExtension("HTMLProgressElement", html$.ProgressElement);
  html$.ProgressEvent = class ProgressEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 26029, 32, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.ProgressEvent._create_1(type, eventInitDict_1);
      }
      return html$.ProgressEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new ProgressEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new ProgressEvent(type);
    }
    get [S$2.$lengthComputable]() {
      return this.lengthComputable;
    }
    get [S$1.$loaded]() {
      return this.loaded;
    }
    get [S$2.$total]() {
      return this.total;
    }
  };
  dart.addTypeTests(html$.ProgressEvent);
  dart.addTypeCaches(html$.ProgressEvent);
  dart.setGetterSignature(html$.ProgressEvent, () => ({
    __proto__: dart.getGetters(html$.ProgressEvent.__proto__),
    [S$2.$lengthComputable]: core.bool,
    [S$1.$loaded]: dart.nullable(core.int),
    [S$2.$total]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.ProgressEvent, I[148]);
  dart.registerExtension("ProgressEvent", html$.ProgressEvent);
  html$.PromiseRejectionEvent = class PromiseRejectionEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 26058, 40, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 26058, 50, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PromiseRejectionEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new PromiseRejectionEvent(type, eventInitDict);
    }
    get [S$2.$promise]() {
      return js_util.promiseToFuture(dart.dynamic, this.promise);
    }
    get [S$.$reason]() {
      return this.reason;
    }
  };
  dart.addTypeTests(html$.PromiseRejectionEvent);
  dart.addTypeCaches(html$.PromiseRejectionEvent);
  dart.setGetterSignature(html$.PromiseRejectionEvent, () => ({
    __proto__: dart.getGetters(html$.PromiseRejectionEvent.__proto__),
    [S$2.$promise]: async.Future,
    [S$.$reason]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.PromiseRejectionEvent, I[148]);
  dart.registerExtension("PromiseRejectionEvent", html$.PromiseRejectionEvent);
  html$.PublicKeyCredential = class PublicKeyCredential extends html$.Credential {
    get [S$2.$rawId]() {
      return this.rawId;
    }
    get [S$.$response]() {
      return this.response;
    }
  };
  dart.addTypeTests(html$.PublicKeyCredential);
  dart.addTypeCaches(html$.PublicKeyCredential);
  dart.setGetterSignature(html$.PublicKeyCredential, () => ({
    __proto__: dart.getGetters(html$.PublicKeyCredential.__proto__),
    [S$2.$rawId]: dart.nullable(typed_data.ByteBuffer),
    [S$.$response]: dart.nullable(html$.AuthenticatorResponse)
  }));
  dart.setLibraryUri(html$.PublicKeyCredential, I[148]);
  dart.registerExtension("PublicKeyCredential", html$.PublicKeyCredential);
  html$.PushEvent = class PushEvent$ extends html$.ExtendableEvent {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 26098, 28, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.PushEvent._create_1(type, eventInitDict_1);
      }
      return html$.PushEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new PushEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new PushEvent(type);
    }
    get [S$.$data]() {
      return this.data;
    }
  };
  dart.addTypeTests(html$.PushEvent);
  dart.addTypeCaches(html$.PushEvent);
  dart.setGetterSignature(html$.PushEvent, () => ({
    __proto__: dart.getGetters(html$.PushEvent.__proto__),
    [S$.$data]: dart.nullable(html$.PushMessageData)
  }));
  dart.setLibraryUri(html$.PushEvent, I[148]);
  dart.registerExtension("PushEvent", html$.PushEvent);
  html$.PushManager = class PushManager extends _interceptors.Interceptor {
    [S$2.$getSubscription]() {
      return js_util.promiseToFuture(html$.PushSubscription, this.getSubscription());
    }
    [S$2.$permissionState](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.permissionState(options_dict));
    }
    [S$2.$subscribe](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.PushSubscription, this.subscribe(options_dict));
    }
  };
  dart.addTypeTests(html$.PushManager);
  dart.addTypeCaches(html$.PushManager);
  dart.setMethodSignature(html$.PushManager, () => ({
    __proto__: dart.getMethods(html$.PushManager.__proto__),
    [S$2.$getSubscription]: dart.fnType(async.Future$(html$.PushSubscription), []),
    [S$2.$permissionState]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$2.$subscribe]: dart.fnType(async.Future$(html$.PushSubscription), [], [dart.nullable(core.Map)])
  }));
  dart.setLibraryUri(html$.PushManager, I[148]);
  dart.registerExtension("PushManager", html$.PushManager);
  html$.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
    [S$.$arrayBuffer](...args) {
      return this.arrayBuffer.apply(this, args);
    }
    [S$.$blob](...args) {
      return this.blob.apply(this, args);
    }
    [S$.$json](...args) {
      return this.json.apply(this, args);
    }
    [S.$text](...args) {
      return this.text.apply(this, args);
    }
  };
  dart.addTypeTests(html$.PushMessageData);
  dart.addTypeCaches(html$.PushMessageData);
  dart.setMethodSignature(html$.PushMessageData, () => ({
    __proto__: dart.getMethods(html$.PushMessageData.__proto__),
    [S$.$arrayBuffer]: dart.fnType(typed_data.ByteBuffer, []),
    [S$.$blob]: dart.fnType(html$.Blob, []),
    [S$.$json]: dart.fnType(core.Object, []),
    [S.$text]: dart.fnType(core.String, [])
  }));
  dart.setLibraryUri(html$.PushMessageData, I[148]);
  dart.registerExtension("PushMessageData", html$.PushMessageData);
  html$.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
    get [S$2.$endpoint]() {
      return this.endpoint;
    }
    get [S$2.$expirationTime]() {
      return this.expirationTime;
    }
    get [S$0.$options]() {
      return this.options;
    }
    [S.$getKey](...args) {
      return this.getKey.apply(this, args);
    }
    [S$2.$unsubscribe]() {
      return js_util.promiseToFuture(core.bool, this.unsubscribe());
    }
  };
  dart.addTypeTests(html$.PushSubscription);
  dart.addTypeCaches(html$.PushSubscription);
  dart.setMethodSignature(html$.PushSubscription, () => ({
    __proto__: dart.getMethods(html$.PushSubscription.__proto__),
    [S.$getKey]: dart.fnType(dart.nullable(typed_data.ByteBuffer), [core.String]),
    [S$2.$unsubscribe]: dart.fnType(async.Future$(core.bool), [])
  }));
  dart.setGetterSignature(html$.PushSubscription, () => ({
    __proto__: dart.getGetters(html$.PushSubscription.__proto__),
    [S$2.$endpoint]: dart.nullable(core.String),
    [S$2.$expirationTime]: dart.nullable(core.int),
    [S$0.$options]: dart.nullable(html$.PushSubscriptionOptions)
  }));
  dart.setLibraryUri(html$.PushSubscription, I[148]);
  dart.registerExtension("PushSubscription", html$.PushSubscription);
  html$.PushSubscriptionOptions = class PushSubscriptionOptions extends _interceptors.Interceptor {
    get [S$2.$applicationServerKey]() {
      return this.applicationServerKey;
    }
    get [S$2.$userVisibleOnly]() {
      return this.userVisibleOnly;
    }
  };
  dart.addTypeTests(html$.PushSubscriptionOptions);
  dart.addTypeCaches(html$.PushSubscriptionOptions);
  dart.setGetterSignature(html$.PushSubscriptionOptions, () => ({
    __proto__: dart.getGetters(html$.PushSubscriptionOptions.__proto__),
    [S$2.$applicationServerKey]: dart.nullable(typed_data.ByteBuffer),
    [S$2.$userVisibleOnly]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.PushSubscriptionOptions, I[148]);
  dart.registerExtension("PushSubscriptionOptions", html$.PushSubscriptionOptions);
  html$.QuoteElement = class QuoteElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("q");
    }
    get [S$1.$cite]() {
      return this.cite;
    }
    set [S$1.$cite](value) {
      this.cite = value;
    }
  };
  (html$.QuoteElement.created = function() {
    html$.QuoteElement.__proto__.created.call(this);
    ;
  }).prototype = html$.QuoteElement.prototype;
  dart.addTypeTests(html$.QuoteElement);
  dart.addTypeCaches(html$.QuoteElement);
  dart.setGetterSignature(html$.QuoteElement, () => ({
    __proto__: dart.getGetters(html$.QuoteElement.__proto__),
    [S$1.$cite]: core.String
  }));
  dart.setSetterSignature(html$.QuoteElement, () => ({
    __proto__: dart.getSetters(html$.QuoteElement.__proto__),
    [S$1.$cite]: core.String
  }));
  dart.setLibraryUri(html$.QuoteElement, I[148]);
  dart.registerExtension("HTMLQuoteElement", html$.QuoteElement);
  html$.Range = class Range extends _interceptors.Interceptor {
    static new() {
      return html$.document.createRange();
    }
    static fromPoint(point) {
      if (point == null) dart.nullFailed(I[147], 26260, 33, "point");
      return html$.document[S$1._caretRangeFromPoint](point.x[$toInt](), point.y[$toInt]());
    }
    get [S$2.$collapsed]() {
      return this.collapsed;
    }
    get [S$2.$commonAncestorContainer]() {
      return this.commonAncestorContainer;
    }
    get [S$2.$endContainer]() {
      return this.endContainer;
    }
    get [S$2.$endOffset]() {
      return this.endOffset;
    }
    get [S$2.$startContainer]() {
      return this.startContainer;
    }
    get [S$2.$startOffset]() {
      return this.startOffset;
    }
    [S$2.$cloneContents](...args) {
      return this.cloneContents.apply(this, args);
    }
    [S$2.$cloneRange](...args) {
      return this.cloneRange.apply(this, args);
    }
    [S$2.$collapse](...args) {
      return this.collapse.apply(this, args);
    }
    [S$2.$compareBoundaryPoints](...args) {
      return this.compareBoundaryPoints.apply(this, args);
    }
    [S$2.$comparePoint](...args) {
      return this.comparePoint.apply(this, args);
    }
    [S$2.$createContextualFragment](...args) {
      return this.createContextualFragment.apply(this, args);
    }
    [S$2.$deleteContents](...args) {
      return this.deleteContents.apply(this, args);
    }
    [S$2.$detach](...args) {
      return this.detach.apply(this, args);
    }
    [$expand](...args) {
      return this.expand.apply(this, args);
    }
    [S$2.$extractContents](...args) {
      return this.extractContents.apply(this, args);
    }
    [S.$getBoundingClientRect](...args) {
      return this.getBoundingClientRect.apply(this, args);
    }
    [S._getClientRects](...args) {
      return this.getClientRects.apply(this, args);
    }
    [S$2.$insertNode](...args) {
      return this.insertNode.apply(this, args);
    }
    [S$2.$isPointInRange](...args) {
      return this.isPointInRange.apply(this, args);
    }
    [S$2.$selectNode](...args) {
      return this.selectNode.apply(this, args);
    }
    [S$2.$selectNodeContents](...args) {
      return this.selectNodeContents.apply(this, args);
    }
    [S$2.$setEnd](...args) {
      return this.setEnd.apply(this, args);
    }
    [S$2.$setEndAfter](...args) {
      return this.setEndAfter.apply(this, args);
    }
    [S$2.$setEndBefore](...args) {
      return this.setEndBefore.apply(this, args);
    }
    [S$2.$setStart](...args) {
      return this.setStart.apply(this, args);
    }
    [S$2.$setStartAfter](...args) {
      return this.setStartAfter.apply(this, args);
    }
    [S$2.$setStartBefore](...args) {
      return this.setStartBefore.apply(this, args);
    }
    [S$2.$surroundContents](...args) {
      return this.surroundContents.apply(this, args);
    }
    [S.$getClientRects]() {
      let value = this[S._getClientRects]();
      let jsProto = value.prototype;
      if (jsProto == null) {
        value.prototype = Object.create(null);
      }
      _js_helper.applyExtension("DOMRectList", value);
      return value;
    }
    static get supportsCreateContextualFragment() {
      return "createContextualFragment" in window.Range.prototype;
    }
  };
  dart.addTypeTests(html$.Range);
  dart.addTypeCaches(html$.Range);
  dart.setMethodSignature(html$.Range, () => ({
    __proto__: dart.getMethods(html$.Range.__proto__),
    [S$2.$cloneContents]: dart.fnType(html$.DocumentFragment, []),
    [S$2.$cloneRange]: dart.fnType(html$.Range, []),
    [S$2.$collapse]: dart.fnType(dart.void, [], [dart.nullable(core.bool)]),
    [S$2.$compareBoundaryPoints]: dart.fnType(core.int, [core.int, html$.Range]),
    [S$2.$comparePoint]: dart.fnType(core.int, [html$.Node, core.int]),
    [S$2.$createContextualFragment]: dart.fnType(html$.DocumentFragment, [core.String]),
    [S$2.$deleteContents]: dart.fnType(dart.void, []),
    [S$2.$detach]: dart.fnType(dart.void, []),
    [$expand]: dart.fnType(dart.void, [dart.nullable(core.String)]),
    [S$2.$extractContents]: dart.fnType(html$.DocumentFragment, []),
    [S.$getBoundingClientRect]: dart.fnType(math.Rectangle$(core.num), []),
    [S._getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
    [S$2.$insertNode]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$isPointInRange]: dart.fnType(core.bool, [html$.Node, core.int]),
    [S$2.$selectNode]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$selectNodeContents]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$setEnd]: dart.fnType(dart.void, [html$.Node, core.int]),
    [S$2.$setEndAfter]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$setEndBefore]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$setStart]: dart.fnType(dart.void, [html$.Node, core.int]),
    [S$2.$setStartAfter]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$setStartBefore]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$surroundContents]: dart.fnType(dart.void, [html$.Node]),
    [S.$getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), [])
  }));
  dart.setGetterSignature(html$.Range, () => ({
    __proto__: dart.getGetters(html$.Range.__proto__),
    [S$2.$collapsed]: core.bool,
    [S$2.$commonAncestorContainer]: html$.Node,
    [S$2.$endContainer]: html$.Node,
    [S$2.$endOffset]: core.int,
    [S$2.$startContainer]: html$.Node,
    [S$2.$startOffset]: core.int
  }));
  dart.setLibraryUri(html$.Range, I[148]);
  dart.defineLazy(html$.Range, {
    /*html$.Range.END_TO_END*/get END_TO_END() {
      return 2;
    },
    /*html$.Range.END_TO_START*/get END_TO_START() {
      return 3;
    },
    /*html$.Range.START_TO_END*/get START_TO_END() {
      return 1;
    },
    /*html$.Range.START_TO_START*/get START_TO_START() {
      return 0;
    }
  }, false);
  dart.registerExtension("Range", html$.Range);
  html$.RelatedApplication = class RelatedApplication extends _interceptors.Interceptor {
    get [S.$id]() {
      return this.id;
    }
    get [S$2.$platform]() {
      return this.platform;
    }
    get [S$.$url]() {
      return this.url;
    }
  };
  dart.addTypeTests(html$.RelatedApplication);
  dart.addTypeCaches(html$.RelatedApplication);
  dart.setGetterSignature(html$.RelatedApplication, () => ({
    __proto__: dart.getGetters(html$.RelatedApplication.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$2.$platform]: dart.nullable(core.String),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RelatedApplication, I[148]);
  dart.registerExtension("RelatedApplication", html$.RelatedApplication);
  html$.RelativeOrientationSensor = class RelativeOrientationSensor$ extends html$.OrientationSensor {
    static new(sensorOptions = null) {
      if (sensorOptions != null) {
        let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
        return html$.RelativeOrientationSensor._create_1(sensorOptions_1);
      }
      return html$.RelativeOrientationSensor._create_2();
    }
    static _create_1(sensorOptions) {
      return new RelativeOrientationSensor(sensorOptions);
    }
    static _create_2() {
      return new RelativeOrientationSensor();
    }
  };
  dart.addTypeTests(html$.RelativeOrientationSensor);
  dart.addTypeCaches(html$.RelativeOrientationSensor);
  dart.setLibraryUri(html$.RelativeOrientationSensor, I[148]);
  dart.registerExtension("RelativeOrientationSensor", html$.RelativeOrientationSensor);
  html$.RemotePlayback = class RemotePlayback extends html$.EventTarget {
    get [S$.$state]() {
      return this.state;
    }
    [S$2.$cancelWatchAvailability](id = null) {
      return js_util.promiseToFuture(dart.dynamic, this.cancelWatchAvailability(id));
    }
    [S$.$prompt]() {
      return js_util.promiseToFuture(dart.dynamic, this.prompt());
    }
    [S$2.$watchAvailability](callback) {
      if (callback == null) dart.nullFailed(I[147], 26420, 68, "callback");
      return js_util.promiseToFuture(core.int, this.watchAvailability(callback));
    }
  };
  dart.addTypeTests(html$.RemotePlayback);
  dart.addTypeCaches(html$.RemotePlayback);
  dart.setMethodSignature(html$.RemotePlayback, () => ({
    __proto__: dart.getMethods(html$.RemotePlayback.__proto__),
    [S$2.$cancelWatchAvailability]: dart.fnType(async.Future, [], [dart.nullable(core.int)]),
    [S$.$prompt]: dart.fnType(async.Future, []),
    [S$2.$watchAvailability]: dart.fnType(async.Future$(core.int), [dart.fnType(dart.void, [core.bool])])
  }));
  dart.setGetterSignature(html$.RemotePlayback, () => ({
    __proto__: dart.getGetters(html$.RemotePlayback.__proto__),
    [S$.$state]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RemotePlayback, I[148]);
  dart.registerExtension("RemotePlayback", html$.RemotePlayback);
  html$.ReportingObserver = class ReportingObserver$ extends _interceptors.Interceptor {
    static new(callback) {
      if (callback == null) dart.nullFailed(I[147], 26452, 55, "callback");
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.ListAndReportingObserverTovoid(), callback, 2);
      return html$.ReportingObserver._create_1(callback_1);
    }
    static _create_1(callback) {
      return new ReportingObserver(callback);
    }
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S.$observe](...args) {
      return this.observe.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ReportingObserver);
  dart.addTypeCaches(html$.ReportingObserver);
  dart.setMethodSignature(html$.ReportingObserver, () => ({
    __proto__: dart.getMethods(html$.ReportingObserver.__proto__),
    [S$1.$disconnect]: dart.fnType(dart.void, []),
    [S.$observe]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(html$.ReportingObserver, I[148]);
  dart.registerExtension("ReportingObserver", html$.ReportingObserver);
  html$.ResizeObserver = class ResizeObserver$ extends _interceptors.Interceptor {
    static new(callback) {
      if (callback == null) dart.nullFailed(I[147], 26489, 49, "callback");
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.ListAndResizeObserverTovoid(), callback, 2);
      return html$.ResizeObserver._create_1(callback_1);
    }
    static _create_1(callback) {
      return new ResizeObserver(callback);
    }
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S.$observe](...args) {
      return this.observe.apply(this, args);
    }
    [S.$unobserve](...args) {
      return this.unobserve.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ResizeObserver);
  dart.addTypeCaches(html$.ResizeObserver);
  dart.setMethodSignature(html$.ResizeObserver, () => ({
    __proto__: dart.getMethods(html$.ResizeObserver.__proto__),
    [S$1.$disconnect]: dart.fnType(dart.void, []),
    [S.$observe]: dart.fnType(dart.void, [html$.Element]),
    [S.$unobserve]: dart.fnType(dart.void, [html$.Element])
  }));
  dart.setLibraryUri(html$.ResizeObserver, I[148]);
  dart.registerExtension("ResizeObserver", html$.ResizeObserver);
  html$.ResizeObserverEntry = class ResizeObserverEntry extends _interceptors.Interceptor {
    get [S$2.$contentRect]() {
      return this.contentRect;
    }
    get [S.$target]() {
      return this.target;
    }
  };
  dart.addTypeTests(html$.ResizeObserverEntry);
  dart.addTypeCaches(html$.ResizeObserverEntry);
  dart.setGetterSignature(html$.ResizeObserverEntry, () => ({
    __proto__: dart.getGetters(html$.ResizeObserverEntry.__proto__),
    [S$2.$contentRect]: dart.nullable(html$.DomRectReadOnly),
    [S.$target]: dart.nullable(html$.Element)
  }));
  dart.setLibraryUri(html$.ResizeObserverEntry, I[148]);
  dart.registerExtension("ResizeObserverEntry", html$.ResizeObserverEntry);
  html$.RtcCertificate = class RtcCertificate extends _interceptors.Interceptor {
    get [S$2.$expires]() {
      return this.expires;
    }
    [S$2.$getFingerprints](...args) {
      return this.getFingerprints.apply(this, args);
    }
  };
  dart.addTypeTests(html$.RtcCertificate);
  dart.addTypeCaches(html$.RtcCertificate);
  dart.setMethodSignature(html$.RtcCertificate, () => ({
    __proto__: dart.getMethods(html$.RtcCertificate.__proto__),
    [S$2.$getFingerprints]: dart.fnType(core.List$(core.Map), [])
  }));
  dart.setGetterSignature(html$.RtcCertificate, () => ({
    __proto__: dart.getGetters(html$.RtcCertificate.__proto__),
    [S$2.$expires]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.RtcCertificate, I[148]);
  dart.registerExtension("RTCCertificate", html$.RtcCertificate);
  html$.RtcDataChannel = class RtcDataChannel extends html$.EventTarget {
    get [S$2.$binaryType]() {
      return this.binaryType;
    }
    set [S$2.$binaryType](value) {
      this.binaryType = value;
    }
    get [S$2.$bufferedAmount]() {
      return this.bufferedAmount;
    }
    get [S$2.$bufferedAmountLowThreshold]() {
      return this.bufferedAmountLowThreshold;
    }
    set [S$2.$bufferedAmountLowThreshold](value) {
      this.bufferedAmountLowThreshold = value;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$2.$maxRetransmitTime]() {
      return this.maxRetransmitTime;
    }
    get [S$2.$maxRetransmits]() {
      return this.maxRetransmits;
    }
    get [S$2.$negotiated]() {
      return this.negotiated;
    }
    get [S$2.$ordered]() {
      return this.ordered;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$2.$reliable]() {
      return this.reliable;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$1.$send](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendBlob](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendByteBuffer](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendString](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendTypedData](...args) {
      return this.send.apply(this, args);
    }
    get [S.$onClose]() {
      return html$.RtcDataChannel.closeEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.RtcDataChannel.errorEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.RtcDataChannel.messageEvent.forTarget(this);
    }
    get [S$1.$onOpen]() {
      return html$.RtcDataChannel.openEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.RtcDataChannel);
  dart.addTypeCaches(html$.RtcDataChannel);
  dart.setMethodSignature(html$.RtcDataChannel, () => ({
    __proto__: dart.getMethods(html$.RtcDataChannel.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$1.$send]: dart.fnType(dart.void, [dart.dynamic]),
    [S$2.$sendBlob]: dart.fnType(dart.void, [html$.Blob]),
    [S$2.$sendByteBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
    [S$2.$sendString]: dart.fnType(dart.void, [core.String]),
    [S$2.$sendTypedData]: dart.fnType(dart.void, [typed_data.TypedData])
  }));
  dart.setGetterSignature(html$.RtcDataChannel, () => ({
    __proto__: dart.getGetters(html$.RtcDataChannel.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String),
    [S$2.$bufferedAmount]: dart.nullable(core.int),
    [S$2.$bufferedAmountLowThreshold]: dart.nullable(core.int),
    [S.$id]: dart.nullable(core.int),
    [S$.$label]: dart.nullable(core.String),
    [S$2.$maxRetransmitTime]: dart.nullable(core.int),
    [S$2.$maxRetransmits]: dart.nullable(core.int),
    [S$2.$negotiated]: dart.nullable(core.bool),
    [S$2.$ordered]: dart.nullable(core.bool),
    [S$.$protocol]: dart.nullable(core.String),
    [S.$readyState]: dart.nullable(core.String),
    [S$2.$reliable]: dart.nullable(core.bool),
    [S.$onClose]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent),
    [S$1.$onOpen]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.RtcDataChannel, () => ({
    __proto__: dart.getSetters(html$.RtcDataChannel.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String),
    [S$2.$bufferedAmountLowThreshold]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.RtcDataChannel, I[148]);
  dart.defineLazy(html$.RtcDataChannel, {
    /*html$.RtcDataChannel.closeEvent*/get closeEvent() {
      return C[215] || CT.C215;
    },
    /*html$.RtcDataChannel.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.RtcDataChannel.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.RtcDataChannel.openEvent*/get openEvent() {
      return C[330] || CT.C330;
    }
  }, false);
  dart.registerExtension("RTCDataChannel", html$.RtcDataChannel);
  dart.registerExtension("DataChannel", html$.RtcDataChannel);
  html$.RtcDataChannelEvent = class RtcDataChannelEvent extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 26653, 38, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 26653, 48, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.RtcDataChannelEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new RTCDataChannelEvent(type, eventInitDict);
    }
    get [S$2.$channel]() {
      return this.channel;
    }
  };
  dart.addTypeTests(html$.RtcDataChannelEvent);
  dart.addTypeCaches(html$.RtcDataChannelEvent);
  dart.setGetterSignature(html$.RtcDataChannelEvent, () => ({
    __proto__: dart.getGetters(html$.RtcDataChannelEvent.__proto__),
    [S$2.$channel]: dart.nullable(html$.RtcDataChannel)
  }));
  dart.setLibraryUri(html$.RtcDataChannelEvent, I[148]);
  dart.registerExtension("RTCDataChannelEvent", html$.RtcDataChannelEvent);
  html$.RtcDtmfSender = class RtcDtmfSender extends html$.EventTarget {
    get [S$2.$canInsertDtmf]() {
      return this.canInsertDTMF;
    }
    get [S$.$duration]() {
      return this.duration;
    }
    get [S$2.$interToneGap]() {
      return this.interToneGap;
    }
    get [S$2.$toneBuffer]() {
      return this.toneBuffer;
    }
    get [S$1.$track]() {
      return this.track;
    }
    [S$2.$insertDtmf](...args) {
      return this.insertDTMF.apply(this, args);
    }
    get [S$2.$onToneChange]() {
      return html$.RtcDtmfSender.toneChangeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.RtcDtmfSender);
  dart.addTypeCaches(html$.RtcDtmfSender);
  dart.setMethodSignature(html$.RtcDtmfSender, () => ({
    __proto__: dart.getMethods(html$.RtcDtmfSender.__proto__),
    [S$2.$insertDtmf]: dart.fnType(dart.void, [core.String], [dart.nullable(core.int), dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.RtcDtmfSender, () => ({
    __proto__: dart.getGetters(html$.RtcDtmfSender.__proto__),
    [S$2.$canInsertDtmf]: dart.nullable(core.bool),
    [S$.$duration]: dart.nullable(core.int),
    [S$2.$interToneGap]: dart.nullable(core.int),
    [S$2.$toneBuffer]: dart.nullable(core.String),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack),
    [S$2.$onToneChange]: async.Stream$(html$.RtcDtmfToneChangeEvent)
  }));
  dart.setLibraryUri(html$.RtcDtmfSender, I[148]);
  dart.defineLazy(html$.RtcDtmfSender, {
    /*html$.RtcDtmfSender.toneChangeEvent*/get toneChangeEvent() {
      return C[353] || CT.C353;
    }
  }, false);
  dart.registerExtension("RTCDTMFSender", html$.RtcDtmfSender);
  html$.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 26714, 41, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 26714, 51, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new RTCDTMFToneChangeEvent(type, eventInitDict);
    }
    get [S$2.$tone]() {
      return this.tone;
    }
  };
  dart.addTypeTests(html$.RtcDtmfToneChangeEvent);
  dart.addTypeCaches(html$.RtcDtmfToneChangeEvent);
  dart.setGetterSignature(html$.RtcDtmfToneChangeEvent, () => ({
    __proto__: dart.getGetters(html$.RtcDtmfToneChangeEvent.__proto__),
    [S$2.$tone]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RtcDtmfToneChangeEvent, I[148]);
  dart.registerExtension("RTCDTMFToneChangeEvent", html$.RtcDtmfToneChangeEvent);
  html$.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
    static new(dictionary) {
      if (dictionary == null) dart.nullFailed(I[147], 26733, 31, "dictionary");
      let constructorName = window.RTCIceCandidate;
      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
    }
    get [S$2.$candidate]() {
      return this.candidate;
    }
    set [S$2.$candidate](value) {
      this.candidate = value;
    }
    get [S$2.$sdpMLineIndex]() {
      return this.sdpMLineIndex;
    }
    set [S$2.$sdpMLineIndex](value) {
      this.sdpMLineIndex = value;
    }
    get [S$2.$sdpMid]() {
      return this.sdpMid;
    }
    set [S$2.$sdpMid](value) {
      this.sdpMid = value;
    }
  };
  dart.addTypeTests(html$.RtcIceCandidate);
  dart.addTypeCaches(html$.RtcIceCandidate);
  dart.setGetterSignature(html$.RtcIceCandidate, () => ({
    __proto__: dart.getGetters(html$.RtcIceCandidate.__proto__),
    [S$2.$candidate]: dart.nullable(core.String),
    [S$2.$sdpMLineIndex]: dart.nullable(core.int),
    [S$2.$sdpMid]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.RtcIceCandidate, () => ({
    __proto__: dart.getSetters(html$.RtcIceCandidate.__proto__),
    [S$2.$candidate]: dart.nullable(core.String),
    [S$2.$sdpMLineIndex]: dart.nullable(core.int),
    [S$2.$sdpMid]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RtcIceCandidate, I[148]);
  dart.registerExtension("RTCIceCandidate", html$.RtcIceCandidate);
  dart.registerExtension("mozRTCIceCandidate", html$.RtcIceCandidate);
  html$.RtcLegacyStatsReport = class RtcLegacyStatsReport extends _interceptors.Interceptor {
    get [S.$id]() {
      return this.id;
    }
    get [S$.$timestamp]() {
      return html_common.convertNativeToDart_DateTime(this[S$2._get_timestamp]);
    }
    get [S$2._get_timestamp]() {
      return this.timestamp;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$2.$names](...args) {
      return this.names.apply(this, args);
    }
    [S$2.$stat](...args) {
      return this.stat.apply(this, args);
    }
  };
  dart.addTypeTests(html$.RtcLegacyStatsReport);
  dart.addTypeCaches(html$.RtcLegacyStatsReport);
  dart.setMethodSignature(html$.RtcLegacyStatsReport, () => ({
    __proto__: dart.getMethods(html$.RtcLegacyStatsReport.__proto__),
    [S$2.$names]: dart.fnType(core.List$(core.String), []),
    [S$2.$stat]: dart.fnType(core.String, [core.String])
  }));
  dart.setGetterSignature(html$.RtcLegacyStatsReport, () => ({
    __proto__: dart.getGetters(html$.RtcLegacyStatsReport.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$.$timestamp]: core.DateTime,
    [S$2._get_timestamp]: dart.dynamic,
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RtcLegacyStatsReport, I[148]);
  dart.registerExtension("RTCLegacyStatsReport", html$.RtcLegacyStatsReport);
  html$.RtcPeerConnection = class RtcPeerConnection extends html$.EventTarget {
    static new(rtcIceServers, mediaConstraints = null) {
      if (rtcIceServers == null) dart.nullFailed(I[147], 26785, 33, "rtcIceServers");
      let constructorName = window.RTCPeerConnection;
      if (mediaConstraints != null) {
        return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers), html_common.convertDartToNative_SerializedScriptValue(mediaConstraints));
      } else {
        return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers));
      }
    }
    static get supported() {
      try {
        html$.RtcPeerConnection.new(new _js_helper.LinkedMap.from(["iceServers", T$0.JSArrayOfMapOfString$String().of([new (T$.IdentityMapOfString$String()).from(["url", "stun:localhost"])])]));
        return true;
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          return false;
        } else
          throw e;
      }
      return false;
    }
    [S$2.$getLegacyStats](selector = null) {
      let completer = T$0.CompleterOfRtcStatsResponse().new();
      this[S$2._getStats](dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 26829, 16, "value");
        completer.complete(value);
      }, T$0.RtcStatsResponseTovoid()), selector);
      return completer.future;
    }
    [S$2._getStats](...args) {
      return this.getStats.apply(this, args);
    }
    static generateCertificate(keygenAlgorithm) {
      return generateCertificate(keygenAlgorithm);
    }
    get [S$2.$iceConnectionState]() {
      return this.iceConnectionState;
    }
    get [S$2.$iceGatheringState]() {
      return this.iceGatheringState;
    }
    get [S$2.$localDescription]() {
      return this.localDescription;
    }
    get [S$2.$remoteDescription]() {
      return this.remoteDescription;
    }
    get [S$2.$signalingState]() {
      return this.signalingState;
    }
    [S$2.$addIceCandidate](candidate, successCallback = null, failureCallback = null) {
      if (candidate == null) dart.nullFailed(I[147], 26930, 33, "candidate");
      return js_util.promiseToFuture(dart.dynamic, this.addIceCandidate(candidate, successCallback, failureCallback));
    }
    [S$2.$addStream](stream, mediaConstraints = null) {
      if (mediaConstraints != null) {
        let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
        this[S$2._addStream_1](stream, mediaConstraints_1);
        return;
      }
      this[S$2._addStream_2](stream);
      return;
    }
    [S$2._addStream_1](...args) {
      return this.addStream.apply(this, args);
    }
    [S$2._addStream_2](...args) {
      return this.addStream.apply(this, args);
    }
    [S$1.$addTrack](...args) {
      return this.addTrack.apply(this, args);
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$2.$createAnswer](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.RtcSessionDescription, this.createAnswer(options_dict));
    }
    [S$2.$createDtmfSender](...args) {
      return this.createDTMFSender.apply(this, args);
    }
    [S$2.$createDataChannel](label, dataChannelDict = null) {
      if (label == null) dart.nullFailed(I[147], 26970, 43, "label");
      if (dataChannelDict != null) {
        let dataChannelDict_1 = html_common.convertDartToNative_Dictionary(dataChannelDict);
        return this[S$2._createDataChannel_1](label, dataChannelDict_1);
      }
      return this[S$2._createDataChannel_2](label);
    }
    [S$2._createDataChannel_1](...args) {
      return this.createDataChannel.apply(this, args);
    }
    [S$2._createDataChannel_2](...args) {
      return this.createDataChannel.apply(this, args);
    }
    [S$2.$createOffer](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.RtcSessionDescription, this.createOffer(options_dict));
    }
    [S$2.$getLocalStreams](...args) {
      return this.getLocalStreams.apply(this, args);
    }
    [S$2.$getReceivers](...args) {
      return this.getReceivers.apply(this, args);
    }
    [S$2.$getRemoteStreams](...args) {
      return this.getRemoteStreams.apply(this, args);
    }
    [S$2.$getSenders](...args) {
      return this.getSenders.apply(this, args);
    }
    [S$2.$getStats]() {
      return js_util.promiseToFuture(html$.RtcStatsReport, this.getStats());
    }
    [S$2.$removeStream](...args) {
      return this.removeStream.apply(this, args);
    }
    [S$1.$removeTrack](...args) {
      return this.removeTrack.apply(this, args);
    }
    [S$2.$setConfiguration](configuration) {
      if (configuration == null) dart.nullFailed(I[147], 27010, 29, "configuration");
      let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
      this[S$2._setConfiguration_1](configuration_1);
      return;
    }
    [S$2._setConfiguration_1](...args) {
      return this.setConfiguration.apply(this, args);
    }
    [S$2.$setLocalDescription](description) {
      if (description == null) dart.nullFailed(I[147], 27019, 34, "description");
      let description_dict = html_common.convertDartToNative_Dictionary(description);
      return js_util.promiseToFuture(dart.dynamic, this.setLocalDescription(description_dict));
    }
    [S$2.$setRemoteDescription](description) {
      if (description == null) dart.nullFailed(I[147], 27025, 35, "description");
      let description_dict = html_common.convertDartToNative_Dictionary(description);
      return js_util.promiseToFuture(dart.dynamic, this.setRemoteDescription(description_dict));
    }
    get [S$2.$onAddStream]() {
      return html$.RtcPeerConnection.addStreamEvent.forTarget(this);
    }
    get [S$2.$onDataChannel]() {
      return html$.RtcPeerConnection.dataChannelEvent.forTarget(this);
    }
    get [S$2.$onIceCandidate]() {
      return html$.RtcPeerConnection.iceCandidateEvent.forTarget(this);
    }
    get [S$2.$onIceConnectionStateChange]() {
      return html$.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
    }
    get [S$2.$onNegotiationNeeded]() {
      return html$.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
    }
    get [S$2.$onRemoveStream]() {
      return html$.RtcPeerConnection.removeStreamEvent.forTarget(this);
    }
    get [S$2.$onSignalingStateChange]() {
      return html$.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
    }
    get [S$2.$onTrack]() {
      return html$.RtcPeerConnection.trackEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.RtcPeerConnection);
  dart.addTypeCaches(html$.RtcPeerConnection);
  dart.setMethodSignature(html$.RtcPeerConnection, () => ({
    __proto__: dart.getMethods(html$.RtcPeerConnection.__proto__),
    [S$2.$getLegacyStats]: dart.fnType(async.Future$(html$.RtcStatsResponse), [], [dart.nullable(html$.MediaStreamTrack)]),
    [S$2._getStats]: dart.fnType(async.Future, [], [dart.nullable(dart.fnType(dart.void, [html$.RtcStatsResponse])), dart.nullable(html$.MediaStreamTrack)]),
    [S$2.$addIceCandidate]: dart.fnType(async.Future, [core.Object], [dart.nullable(dart.fnType(dart.void, [])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$2.$addStream]: dart.fnType(dart.void, [dart.nullable(html$.MediaStream)], [dart.nullable(core.Map)]),
    [S$2._addStream_1]: dart.fnType(dart.void, [dart.nullable(html$.MediaStream), dart.dynamic]),
    [S$2._addStream_2]: dart.fnType(dart.void, [dart.nullable(html$.MediaStream)]),
    [S$1.$addTrack]: dart.fnType(html$.RtcRtpSender, [html$.MediaStreamTrack, html$.MediaStream]),
    [S.$close]: dart.fnType(dart.void, []),
    [S$2.$createAnswer]: dart.fnType(async.Future$(html$.RtcSessionDescription), [], [dart.nullable(core.Map)]),
    [S$2.$createDtmfSender]: dart.fnType(html$.RtcDtmfSender, [html$.MediaStreamTrack]),
    [S$2.$createDataChannel]: dart.fnType(html$.RtcDataChannel, [core.String], [dart.nullable(core.Map)]),
    [S$2._createDataChannel_1]: dart.fnType(html$.RtcDataChannel, [dart.dynamic, dart.dynamic]),
    [S$2._createDataChannel_2]: dart.fnType(html$.RtcDataChannel, [dart.dynamic]),
    [S$2.$createOffer]: dart.fnType(async.Future$(html$.RtcSessionDescription), [], [dart.nullable(core.Map)]),
    [S$2.$getLocalStreams]: dart.fnType(core.List$(html$.MediaStream), []),
    [S$2.$getReceivers]: dart.fnType(core.List$(html$.RtcRtpReceiver), []),
    [S$2.$getRemoteStreams]: dart.fnType(core.List$(html$.MediaStream), []),
    [S$2.$getSenders]: dart.fnType(core.List$(html$.RtcRtpSender), []),
    [S$2.$getStats]: dart.fnType(async.Future$(html$.RtcStatsReport), []),
    [S$2.$removeStream]: dart.fnType(dart.void, [dart.nullable(html$.MediaStream)]),
    [S$1.$removeTrack]: dart.fnType(dart.void, [html$.RtcRtpSender]),
    [S$2.$setConfiguration]: dart.fnType(dart.void, [core.Map]),
    [S$2._setConfiguration_1]: dart.fnType(dart.void, [dart.dynamic]),
    [S$2.$setLocalDescription]: dart.fnType(async.Future, [core.Map]),
    [S$2.$setRemoteDescription]: dart.fnType(async.Future, [core.Map])
  }));
  dart.setGetterSignature(html$.RtcPeerConnection, () => ({
    __proto__: dart.getGetters(html$.RtcPeerConnection.__proto__),
    [S$2.$iceConnectionState]: dart.nullable(core.String),
    [S$2.$iceGatheringState]: dart.nullable(core.String),
    [S$2.$localDescription]: dart.nullable(html$.RtcSessionDescription),
    [S$2.$remoteDescription]: dart.nullable(html$.RtcSessionDescription),
    [S$2.$signalingState]: dart.nullable(core.String),
    [S$2.$onAddStream]: async.Stream$(html$.MediaStreamEvent),
    [S$2.$onDataChannel]: async.Stream$(html$.RtcDataChannelEvent),
    [S$2.$onIceCandidate]: async.Stream$(html$.RtcPeerConnectionIceEvent),
    [S$2.$onIceConnectionStateChange]: async.Stream$(html$.Event),
    [S$2.$onNegotiationNeeded]: async.Stream$(html$.Event),
    [S$2.$onRemoveStream]: async.Stream$(html$.MediaStreamEvent),
    [S$2.$onSignalingStateChange]: async.Stream$(html$.Event),
    [S$2.$onTrack]: async.Stream$(html$.RtcTrackEvent)
  }));
  dart.setLibraryUri(html$.RtcPeerConnection, I[148]);
  dart.defineLazy(html$.RtcPeerConnection, {
    /*html$.RtcPeerConnection.addStreamEvent*/get addStreamEvent() {
      return C[354] || CT.C354;
    },
    /*html$.RtcPeerConnection.dataChannelEvent*/get dataChannelEvent() {
      return C[355] || CT.C355;
    },
    /*html$.RtcPeerConnection.iceCandidateEvent*/get iceCandidateEvent() {
      return C[356] || CT.C356;
    },
    /*html$.RtcPeerConnection.iceConnectionStateChangeEvent*/get iceConnectionStateChangeEvent() {
      return C[357] || CT.C357;
    },
    /*html$.RtcPeerConnection.negotiationNeededEvent*/get negotiationNeededEvent() {
      return C[358] || CT.C358;
    },
    /*html$.RtcPeerConnection.removeStreamEvent*/get removeStreamEvent() {
      return C[359] || CT.C359;
    },
    /*html$.RtcPeerConnection.signalingStateChangeEvent*/get signalingStateChangeEvent() {
      return C[360] || CT.C360;
    },
    /*html$.RtcPeerConnection.trackEvent*/get trackEvent() {
      return C[361] || CT.C361;
    }
  }, false);
  dart.registerExtension("RTCPeerConnection", html$.RtcPeerConnection);
  dart.registerExtension("webkitRTCPeerConnection", html$.RtcPeerConnection);
  dart.registerExtension("mozRTCPeerConnection", html$.RtcPeerConnection);
  html$.RtcPeerConnectionIceEvent = class RtcPeerConnectionIceEvent extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 27072, 44, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.RtcPeerConnectionIceEvent._create_1(type, eventInitDict_1);
      }
      return html$.RtcPeerConnectionIceEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new RTCPeerConnectionIceEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new RTCPeerConnectionIceEvent(type);
    }
    get [S$2.$candidate]() {
      return this.candidate;
    }
  };
  dart.addTypeTests(html$.RtcPeerConnectionIceEvent);
  dart.addTypeCaches(html$.RtcPeerConnectionIceEvent);
  dart.setGetterSignature(html$.RtcPeerConnectionIceEvent, () => ({
    __proto__: dart.getGetters(html$.RtcPeerConnectionIceEvent.__proto__),
    [S$2.$candidate]: dart.nullable(html$.RtcIceCandidate)
  }));
  dart.setLibraryUri(html$.RtcPeerConnectionIceEvent, I[148]);
  dart.registerExtension("RTCPeerConnectionIceEvent", html$.RtcPeerConnectionIceEvent);
  html$.RtcRtpContributingSource = class RtcRtpContributingSource extends _interceptors.Interceptor {
    get [S.$source]() {
      return this.source;
    }
    get [S$.$timestamp]() {
      return this.timestamp;
    }
  };
  dart.addTypeTests(html$.RtcRtpContributingSource);
  dart.addTypeCaches(html$.RtcRtpContributingSource);
  dart.setGetterSignature(html$.RtcRtpContributingSource, () => ({
    __proto__: dart.getGetters(html$.RtcRtpContributingSource.__proto__),
    [S.$source]: dart.nullable(core.int),
    [S$.$timestamp]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.RtcRtpContributingSource, I[148]);
  dart.registerExtension("RTCRtpContributingSource", html$.RtcRtpContributingSource);
  html$.RtcRtpReceiver = class RtcRtpReceiver extends _interceptors.Interceptor {
    get [S$1.$track]() {
      return this.track;
    }
    [S$2.$getContributingSources](...args) {
      return this.getContributingSources.apply(this, args);
    }
  };
  dart.addTypeTests(html$.RtcRtpReceiver);
  dart.addTypeCaches(html$.RtcRtpReceiver);
  dart.setMethodSignature(html$.RtcRtpReceiver, () => ({
    __proto__: dart.getMethods(html$.RtcRtpReceiver.__proto__),
    [S$2.$getContributingSources]: dart.fnType(core.List$(html$.RtcRtpContributingSource), [])
  }));
  dart.setGetterSignature(html$.RtcRtpReceiver, () => ({
    __proto__: dart.getGetters(html$.RtcRtpReceiver.__proto__),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack)
  }));
  dart.setLibraryUri(html$.RtcRtpReceiver, I[148]);
  dart.registerExtension("RTCRtpReceiver", html$.RtcRtpReceiver);
  html$.RtcRtpSender = class RtcRtpSender extends _interceptors.Interceptor {
    get [S$1.$track]() {
      return this.track;
    }
  };
  dart.addTypeTests(html$.RtcRtpSender);
  dart.addTypeCaches(html$.RtcRtpSender);
  dart.setGetterSignature(html$.RtcRtpSender, () => ({
    __proto__: dart.getGetters(html$.RtcRtpSender.__proto__),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack)
  }));
  dart.setLibraryUri(html$.RtcRtpSender, I[148]);
  dart.registerExtension("RTCRtpSender", html$.RtcRtpSender);
  html$.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
    static new(dictionary) {
      if (dictionary == null) dart.nullFailed(I[147], 27139, 37, "dictionary");
      let constructorName = window.RTCSessionDescription;
      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
    }
    get [S$2.$sdp]() {
      return this.sdp;
    }
    set [S$2.$sdp](value) {
      this.sdp = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  dart.addTypeTests(html$.RtcSessionDescription);
  dart.addTypeCaches(html$.RtcSessionDescription);
  dart.setGetterSignature(html$.RtcSessionDescription, () => ({
    __proto__: dart.getGetters(html$.RtcSessionDescription.__proto__),
    [S$2.$sdp]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.RtcSessionDescription, () => ({
    __proto__: dart.getSetters(html$.RtcSessionDescription.__proto__),
    [S$2.$sdp]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.RtcSessionDescription, I[148]);
  dart.registerExtension("RTCSessionDescription", html$.RtcSessionDescription);
  dart.registerExtension("mozRTCSessionDescription", html$.RtcSessionDescription);
  const Interceptor_MapMixin$36$0 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
  (Interceptor_MapMixin$36$0.new = function() {
    Interceptor_MapMixin$36$0.__proto__.new.call(this);
  }).prototype = Interceptor_MapMixin$36$0.prototype;
  dart.applyMixin(Interceptor_MapMixin$36$0, collection.MapMixin$(core.String, dart.dynamic));
  html$.RtcStatsReport = class RtcStatsReport extends Interceptor_MapMixin$36$0 {
    [S$1._getItem](key) {
      if (key == null) dart.nullFailed(I[147], 27168, 24, "key");
      return html_common.convertNativeToDart_Dictionary(this.get(key));
    }
    [$addAll](other) {
      T$0.MapOfString$dynamic().as(other);
      if (other == null) dart.nullFailed(I[147], 27171, 36, "other");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$containsValue](value) {
      return this[$values][$any](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 27175, 52, "e");
        return dart.equals(e, value);
      }, T$0.MapTobool()));
    }
    [$containsKey](key) {
      return this[S$1._getItem](core.String.as(key)) != null;
    }
    [$_get](key) {
      return this[S$1._getItem](core.String.as(key));
    }
    [$forEach](f) {
      if (f == null) dart.nullFailed(I[147], 27181, 21, "f");
      let entries = this.entries();
      while (true) {
        let entry = entries.next();
        if (entry.done) return;
        f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
      }
    }
    get [$keys]() {
      let keys = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 27193, 14, "k");
        return keys[$add](k);
      }, T$0.StringAnddynamicTovoid()));
      return keys;
    }
    get [$values]() {
      let values = T$0.JSArrayOfMap().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 27199, 14, "k");
        return values[$add](core.Map.as(v));
      }, T$0.StringAnddynamicTovoid()));
      return values;
    }
    get [$length]() {
      return this.size;
    }
    get [$isEmpty]() {
      return this[$length] === 0;
    }
    get [$isNotEmpty]() {
      return !dart.test(this[$isEmpty]);
    }
    [$_set](key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 27209, 28, "key");
      dart.throw(new core.UnsupportedError.new("Not supported"));
      return value$;
    }
    [$putIfAbsent](key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 27213, 30, "key");
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 27213, 43, "ifAbsent");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$remove](key) {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$clear]() {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
  };
  dart.addTypeTests(html$.RtcStatsReport);
  dart.addTypeCaches(html$.RtcStatsReport);
  dart.setMethodSignature(html$.RtcStatsReport, () => ({
    __proto__: dart.getMethods(html$.RtcStatsReport.__proto__),
    [S$1._getItem]: dart.fnType(dart.nullable(core.Map), [core.String]),
    [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
    [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
    [$_get]: dart.fnType(dart.nullable(core.Map), [dart.dynamic]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$remove]: dart.fnType(core.String, [dart.dynamic]),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.RtcStatsReport, () => ({
    __proto__: dart.getGetters(html$.RtcStatsReport.__proto__),
    [$keys]: core.Iterable$(core.String),
    [$values]: core.Iterable$(core.Map)
  }));
  dart.setLibraryUri(html$.RtcStatsReport, I[148]);
  dart.registerExtension("RTCStatsReport", html$.RtcStatsReport);
  html$.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
    [S.$result](...args) {
      return this.result.apply(this, args);
    }
  };
  dart.addTypeTests(html$.RtcStatsResponse);
  dart.addTypeCaches(html$.RtcStatsResponse);
  dart.setMethodSignature(html$.RtcStatsResponse, () => ({
    __proto__: dart.getMethods(html$.RtcStatsResponse.__proto__),
    [S$1.$namedItem]: dart.fnType(html$.RtcLegacyStatsReport, [dart.nullable(core.String)]),
    [S.$result]: dart.fnType(core.List$(html$.RtcLegacyStatsReport), [])
  }));
  dart.setLibraryUri(html$.RtcStatsResponse, I[148]);
  dart.registerExtension("RTCStatsResponse", html$.RtcStatsResponse);
  html$.RtcTrackEvent = class RtcTrackEvent extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 27251, 32, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 27251, 42, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.RtcTrackEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new RTCTrackEvent(type, eventInitDict);
    }
    get [S$2.$receiver]() {
      return this.receiver;
    }
    get [S$2.$streams]() {
      return this.streams;
    }
    get [S$1.$track]() {
      return this.track;
    }
  };
  dart.addTypeTests(html$.RtcTrackEvent);
  dart.addTypeCaches(html$.RtcTrackEvent);
  dart.setGetterSignature(html$.RtcTrackEvent, () => ({
    __proto__: dart.getGetters(html$.RtcTrackEvent.__proto__),
    [S$2.$receiver]: dart.nullable(html$.RtcRtpReceiver),
    [S$2.$streams]: dart.nullable(core.List$(html$.MediaStream)),
    [S$1.$track]: dart.nullable(html$.MediaStreamTrack)
  }));
  dart.setLibraryUri(html$.RtcTrackEvent, I[148]);
  dart.registerExtension("RTCTrackEvent", html$.RtcTrackEvent);
  html$.Screen = class Screen extends _interceptors.Interceptor {
    get [S$2.$available]() {
      return new (T$0.RectangleOfnum()).new(dart.nullCheck(this[S$2._availLeft]), dart.nullCheck(this[S$2._availTop]), dart.nullCheck(this[S$2._availWidth]), dart.nullCheck(this[S$2._availHeight]));
    }
    get [S$2._availHeight]() {
      return this.availHeight;
    }
    get [S$2._availLeft]() {
      return this.availLeft;
    }
    get [S$2._availTop]() {
      return this.availTop;
    }
    get [S$2._availWidth]() {
      return this.availWidth;
    }
    get [S$2.$colorDepth]() {
      return this.colorDepth;
    }
    get [$height]() {
      return this.height;
    }
    get [S$2.$keepAwake]() {
      return this.keepAwake;
    }
    set [S$2.$keepAwake](value) {
      this.keepAwake = value;
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    get [S$2.$pixelDepth]() {
      return this.pixelDepth;
    }
    get [$width]() {
      return this.width;
    }
  };
  dart.addTypeTests(html$.Screen);
  dart.addTypeCaches(html$.Screen);
  dart.setGetterSignature(html$.Screen, () => ({
    __proto__: dart.getGetters(html$.Screen.__proto__),
    [S$2.$available]: math.Rectangle$(core.num),
    [S$2._availHeight]: dart.nullable(core.int),
    [S$2._availLeft]: dart.nullable(core.int),
    [S$2._availTop]: dart.nullable(core.int),
    [S$2._availWidth]: dart.nullable(core.int),
    [S$2.$colorDepth]: dart.nullable(core.int),
    [$height]: dart.nullable(core.int),
    [S$2.$keepAwake]: dart.nullable(core.bool),
    [S$.$orientation]: dart.nullable(html$.ScreenOrientation),
    [S$2.$pixelDepth]: dart.nullable(core.int),
    [$width]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(html$.Screen, () => ({
    __proto__: dart.getSetters(html$.Screen.__proto__),
    [S$2.$keepAwake]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.Screen, I[148]);
  dart.registerExtension("Screen", html$.Screen);
  html$.ScreenOrientation = class ScreenOrientation extends html$.EventTarget {
    get [S$.$angle]() {
      return this.angle;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$2.$lock](orientation) {
      if (orientation == null) dart.nullFailed(I[147], 27321, 22, "orientation");
      return js_util.promiseToFuture(dart.dynamic, this.lock(orientation));
    }
    [S$2.$unlock](...args) {
      return this.unlock.apply(this, args);
    }
    get [S.$onChange]() {
      return html$.ScreenOrientation.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.ScreenOrientation);
  dart.addTypeCaches(html$.ScreenOrientation);
  dart.setMethodSignature(html$.ScreenOrientation, () => ({
    __proto__: dart.getMethods(html$.ScreenOrientation.__proto__),
    [S$2.$lock]: dart.fnType(async.Future, [core.String]),
    [S$2.$unlock]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.ScreenOrientation, () => ({
    __proto__: dart.getGetters(html$.ScreenOrientation.__proto__),
    [S$.$angle]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.String),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.ScreenOrientation, I[148]);
  dart.defineLazy(html$.ScreenOrientation, {
    /*html$.ScreenOrientation.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("ScreenOrientation", html$.ScreenOrientation);
  html$.ScriptElement = class ScriptElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("script");
    }
    get [S$1.$async]() {
      return this.async;
    }
    set [S$1.$async](value) {
      this.async = value;
    }
    get [S$2.$charset]() {
      return this.charset;
    }
    set [S$2.$charset](value) {
      this.charset = value;
    }
    get [S$.$crossOrigin]() {
      return this.crossOrigin;
    }
    set [S$.$crossOrigin](value) {
      this.crossOrigin = value;
    }
    get [S$2.$defer]() {
      return this.defer;
    }
    set [S$2.$defer](value) {
      this.defer = value;
    }
    get [S$1.$integrity]() {
      return this.integrity;
    }
    set [S$1.$integrity](value) {
      this.integrity = value;
    }
    get [S$2.$noModule]() {
      return this.noModule;
    }
    set [S$2.$noModule](value) {
      this.noModule = value;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  (html$.ScriptElement.created = function() {
    html$.ScriptElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ScriptElement.prototype;
  dart.addTypeTests(html$.ScriptElement);
  dart.addTypeCaches(html$.ScriptElement);
  dart.setGetterSignature(html$.ScriptElement, () => ({
    __proto__: dart.getGetters(html$.ScriptElement.__proto__),
    [S$1.$async]: dart.nullable(core.bool),
    [S$2.$charset]: core.String,
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$2.$defer]: dart.nullable(core.bool),
    [S$1.$integrity]: dart.nullable(core.String),
    [S$2.$noModule]: dart.nullable(core.bool),
    [S$.$src]: core.String,
    [S.$type]: core.String
  }));
  dart.setSetterSignature(html$.ScriptElement, () => ({
    __proto__: dart.getSetters(html$.ScriptElement.__proto__),
    [S$1.$async]: dart.nullable(core.bool),
    [S$2.$charset]: core.String,
    [S$.$crossOrigin]: dart.nullable(core.String),
    [S$2.$defer]: dart.nullable(core.bool),
    [S$1.$integrity]: dart.nullable(core.String),
    [S$2.$noModule]: dart.nullable(core.bool),
    [S$.$src]: core.String,
    [S.$type]: core.String
  }));
  dart.setLibraryUri(html$.ScriptElement, I[148]);
  dart.registerExtension("HTMLScriptElement", html$.ScriptElement);
  html$.ScrollState = class ScrollState$ extends _interceptors.Interceptor {
    static new(scrollStateInit = null) {
      if (scrollStateInit != null) {
        let scrollStateInit_1 = html_common.convertDartToNative_Dictionary(scrollStateInit);
        return html$.ScrollState._create_1(scrollStateInit_1);
      }
      return html$.ScrollState._create_2();
    }
    static _create_1(scrollStateInit) {
      return new ScrollState(scrollStateInit);
    }
    static _create_2() {
      return new ScrollState();
    }
    get [S$2.$deltaGranularity]() {
      return this.deltaGranularity;
    }
    get [S$2.$deltaX]() {
      return this.deltaX;
    }
    get [S$2.$deltaY]() {
      return this.deltaY;
    }
    get [S$2.$fromUserInput]() {
      return this.fromUserInput;
    }
    get [S$2.$inInertialPhase]() {
      return this.inInertialPhase;
    }
    get [S$2.$isBeginning]() {
      return this.isBeginning;
    }
    get [S$2.$isDirectManipulation]() {
      return this.isDirectManipulation;
    }
    get [S$2.$isEnding]() {
      return this.isEnding;
    }
    get [S$2.$positionX]() {
      return this.positionX;
    }
    get [S$2.$positionY]() {
      return this.positionY;
    }
    get [S$2.$velocityX]() {
      return this.velocityX;
    }
    get [S$2.$velocityY]() {
      return this.velocityY;
    }
    [S$2.$consumeDelta](...args) {
      return this.consumeDelta.apply(this, args);
    }
    [S$2.$distributeToScrollChainDescendant](...args) {
      return this.distributeToScrollChainDescendant.apply(this, args);
    }
  };
  dart.addTypeTests(html$.ScrollState);
  dart.addTypeCaches(html$.ScrollState);
  dart.setMethodSignature(html$.ScrollState, () => ({
    __proto__: dart.getMethods(html$.ScrollState.__proto__),
    [S$2.$consumeDelta]: dart.fnType(dart.void, [core.num, core.num]),
    [S$2.$distributeToScrollChainDescendant]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.ScrollState, () => ({
    __proto__: dart.getGetters(html$.ScrollState.__proto__),
    [S$2.$deltaGranularity]: dart.nullable(core.num),
    [S$2.$deltaX]: dart.nullable(core.num),
    [S$2.$deltaY]: dart.nullable(core.num),
    [S$2.$fromUserInput]: dart.nullable(core.bool),
    [S$2.$inInertialPhase]: dart.nullable(core.bool),
    [S$2.$isBeginning]: dart.nullable(core.bool),
    [S$2.$isDirectManipulation]: dart.nullable(core.bool),
    [S$2.$isEnding]: dart.nullable(core.bool),
    [S$2.$positionX]: dart.nullable(core.int),
    [S$2.$positionY]: dart.nullable(core.int),
    [S$2.$velocityX]: dart.nullable(core.num),
    [S$2.$velocityY]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.ScrollState, I[148]);
  dart.registerExtension("ScrollState", html$.ScrollState);
  html$.ScrollTimeline = class ScrollTimeline$ extends html$.AnimationTimeline {
    static new(options = null) {
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return html$.ScrollTimeline._create_1(options_1);
      }
      return html$.ScrollTimeline._create_2();
    }
    static _create_1(options) {
      return new ScrollTimeline(options);
    }
    static _create_2() {
      return new ScrollTimeline();
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    get [S$2.$scrollSource]() {
      return this.scrollSource;
    }
    get [S$2.$timeRange]() {
      return this.timeRange;
    }
  };
  dart.addTypeTests(html$.ScrollTimeline);
  dart.addTypeCaches(html$.ScrollTimeline);
  dart.setGetterSignature(html$.ScrollTimeline, () => ({
    __proto__: dart.getGetters(html$.ScrollTimeline.__proto__),
    [S$.$orientation]: dart.nullable(core.String),
    [S$2.$scrollSource]: dart.nullable(html$.Element),
    [S$2.$timeRange]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.ScrollTimeline, I[148]);
  dart.registerExtension("ScrollTimeline", html$.ScrollTimeline);
  html$.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 27480, 47, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
      }
      return html$.SecurityPolicyViolationEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new SecurityPolicyViolationEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new SecurityPolicyViolationEvent(type);
    }
    get [S$2.$blockedUri]() {
      return this.blockedURI;
    }
    get [S$2.$columnNumber]() {
      return this.columnNumber;
    }
    get [S$2.$disposition]() {
      return this.disposition;
    }
    get [S$2.$documentUri]() {
      return this.documentURI;
    }
    get [S$2.$effectiveDirective]() {
      return this.effectiveDirective;
    }
    get [S$0.$lineNumber]() {
      return this.lineNumber;
    }
    get [S$2.$originalPolicy]() {
      return this.originalPolicy;
    }
    get [S$1.$referrer]() {
      return this.referrer;
    }
    get [S$2.$sample]() {
      return this.sample;
    }
    get [S$0.$sourceFile]() {
      return this.sourceFile;
    }
    get [S$2.$statusCode]() {
      return this.statusCode;
    }
    get [S$2.$violatedDirective]() {
      return this.violatedDirective;
    }
  };
  dart.addTypeTests(html$.SecurityPolicyViolationEvent);
  dart.addTypeCaches(html$.SecurityPolicyViolationEvent);
  dart.setGetterSignature(html$.SecurityPolicyViolationEvent, () => ({
    __proto__: dart.getGetters(html$.SecurityPolicyViolationEvent.__proto__),
    [S$2.$blockedUri]: dart.nullable(core.String),
    [S$2.$columnNumber]: dart.nullable(core.int),
    [S$2.$disposition]: dart.nullable(core.String),
    [S$2.$documentUri]: dart.nullable(core.String),
    [S$2.$effectiveDirective]: dart.nullable(core.String),
    [S$0.$lineNumber]: dart.nullable(core.int),
    [S$2.$originalPolicy]: dart.nullable(core.String),
    [S$1.$referrer]: dart.nullable(core.String),
    [S$2.$sample]: dart.nullable(core.String),
    [S$0.$sourceFile]: dart.nullable(core.String),
    [S$2.$statusCode]: dart.nullable(core.int),
    [S$2.$violatedDirective]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SecurityPolicyViolationEvent, I[148]);
  dart.registerExtension("SecurityPolicyViolationEvent", html$.SecurityPolicyViolationEvent);
  html$.SelectElement = class SelectElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("select");
    }
    get [S$.$autofocus]() {
      return this.autofocus;
    }
    set [S$.$autofocus](value) {
      this.autofocus = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [$length]() {
      return this.length;
    }
    set [$length](value) {
      this.length = value;
    }
    get [S$1.$multiple]() {
      return this.multiple;
    }
    set [S$1.$multiple](value) {
      this.multiple = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$.$required]() {
      return this.required;
    }
    set [S$.$required](value) {
      this.required = value;
    }
    get [S$2.$selectedIndex]() {
      return this.selectedIndex;
    }
    set [S$2.$selectedIndex](value) {
      this.selectedIndex = value;
    }
    get [S$.$size]() {
      return this.size;
    }
    set [S$.$size](value) {
      this.size = value;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    [S$.__setter__](...args) {
      return this.__setter__.apply(this, args);
    }
    [$add](...args) {
      return this.add.apply(this, args);
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$1.$namedItem](...args) {
      return this.namedItem.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
    get [S$0.$options]() {
      let options = this[S.$querySelectorAll](html$.OptionElement, "option");
      return new (T$0.UnmodifiableListViewOfOptionElement()).new(T$0.IterableOfOptionElement().as(dart.dsend(options, 'toList', [])));
    }
    get [S$2.$selectedOptions]() {
      if (dart.nullCheck(this.multiple)) {
        let options = this[S$0.$options][$where](dart.fn(o => {
          if (o == null) dart.nullFailed(I[147], 27621, 41, "o");
          return o.selected;
        }, T$0.OptionElementTobool()))[$toList]();
        return new (T$0.UnmodifiableListViewOfOptionElement()).new(options);
      } else {
        return T$0.JSArrayOfOptionElement().of([this[S$0.$options][$_get](dart.nullCheck(this.selectedIndex))]);
      }
    }
  };
  (html$.SelectElement.created = function() {
    html$.SelectElement.__proto__.created.call(this);
    ;
  }).prototype = html$.SelectElement.prototype;
  dart.addTypeTests(html$.SelectElement);
  dart.addTypeCaches(html$.SelectElement);
  dart.setMethodSignature(html$.SelectElement, () => ({
    __proto__: dart.getMethods(html$.SelectElement.__proto__),
    [S$.__setter__]: dart.fnType(dart.void, [core.int, dart.nullable(html$.OptionElement)]),
    [$add]: dart.fnType(dart.void, [core.Object, dart.nullable(core.Object)]),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$item]: dart.fnType(dart.nullable(html$.Element), [core.int]),
    [S$1.$namedItem]: dart.fnType(dart.nullable(html$.OptionElement), [core.String]),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(html$.SelectElement, () => ({
    __proto__: dart.getGetters(html$.SelectElement.__proto__),
    [S$.$autofocus]: core.bool,
    [S$.$disabled]: core.bool,
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [$length]: dart.nullable(core.int),
    [S$1.$multiple]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S$.$required]: dart.nullable(core.bool),
    [S$2.$selectedIndex]: dart.nullable(core.int),
    [S$.$size]: dart.nullable(core.int),
    [S.$type]: core.String,
    [S$.$validationMessage]: core.String,
    [S$.$validity]: html$.ValidityState,
    [S.$value]: dart.nullable(core.String),
    [S$.$willValidate]: core.bool,
    [S$0.$options]: core.List$(html$.OptionElement),
    [S$2.$selectedOptions]: core.List$(html$.OptionElement)
  }));
  dart.setSetterSignature(html$.SelectElement, () => ({
    __proto__: dart.getSetters(html$.SelectElement.__proto__),
    [S$.$autofocus]: core.bool,
    [S$.$disabled]: core.bool,
    [$length]: dart.nullable(core.int),
    [S$1.$multiple]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S$.$required]: dart.nullable(core.bool),
    [S$2.$selectedIndex]: dart.nullable(core.int),
    [S$.$size]: dart.nullable(core.int),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SelectElement, I[148]);
  dart.registerExtension("HTMLSelectElement", html$.SelectElement);
  html$.Selection = class Selection extends _interceptors.Interceptor {
    get [S$2.$anchorNode]() {
      return this.anchorNode;
    }
    get [S$2.$anchorOffset]() {
      return this.anchorOffset;
    }
    get [S$2.$baseNode]() {
      return this.baseNode;
    }
    get [S$2.$baseOffset]() {
      return this.baseOffset;
    }
    get [S$2.$extentNode]() {
      return this.extentNode;
    }
    get [S$2.$extentOffset]() {
      return this.extentOffset;
    }
    get [S$2.$focusNode]() {
      return this.focusNode;
    }
    get [S$2.$focusOffset]() {
      return this.focusOffset;
    }
    get [S$2.$isCollapsed]() {
      return this.isCollapsed;
    }
    get [S$2.$rangeCount]() {
      return this.rangeCount;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$2.$addRange](...args) {
      return this.addRange.apply(this, args);
    }
    [S$2.$collapse](...args) {
      return this.collapse.apply(this, args);
    }
    [S$2.$collapseToEnd](...args) {
      return this.collapseToEnd.apply(this, args);
    }
    [S$2.$collapseToStart](...args) {
      return this.collapseToStart.apply(this, args);
    }
    [S$2.$containsNode](...args) {
      return this.containsNode.apply(this, args);
    }
    [S$2.$deleteFromDocument](...args) {
      return this.deleteFromDocument.apply(this, args);
    }
    [S$2.$empty](...args) {
      return this.empty.apply(this, args);
    }
    [S$2.$extend](...args) {
      return this.extend.apply(this, args);
    }
    [S$2.$getRangeAt](...args) {
      return this.getRangeAt.apply(this, args);
    }
    [S$2.$modify](...args) {
      return this.modify.apply(this, args);
    }
    [S$2.$removeAllRanges](...args) {
      return this.removeAllRanges.apply(this, args);
    }
    [$removeRange](...args) {
      return this.removeRange.apply(this, args);
    }
    [S$2.$selectAllChildren](...args) {
      return this.selectAllChildren.apply(this, args);
    }
    [S$2.$setBaseAndExtent](...args) {
      return this.setBaseAndExtent.apply(this, args);
    }
    [S$2.$setPosition](...args) {
      return this.setPosition.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Selection);
  dart.addTypeCaches(html$.Selection);
  dart.setMethodSignature(html$.Selection, () => ({
    __proto__: dart.getMethods(html$.Selection.__proto__),
    [S$2.$addRange]: dart.fnType(dart.void, [html$.Range]),
    [S$2.$collapse]: dart.fnType(dart.void, [dart.nullable(html$.Node)], [dart.nullable(core.int)]),
    [S$2.$collapseToEnd]: dart.fnType(dart.void, []),
    [S$2.$collapseToStart]: dart.fnType(dart.void, []),
    [S$2.$containsNode]: dart.fnType(core.bool, [html$.Node], [dart.nullable(core.bool)]),
    [S$2.$deleteFromDocument]: dart.fnType(dart.void, []),
    [S$2.$empty]: dart.fnType(dart.void, []),
    [S$2.$extend]: dart.fnType(dart.void, [html$.Node], [dart.nullable(core.int)]),
    [S$2.$getRangeAt]: dart.fnType(html$.Range, [core.int]),
    [S$2.$modify]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.String), dart.nullable(core.String)]),
    [S$2.$removeAllRanges]: dart.fnType(dart.void, []),
    [$removeRange]: dart.fnType(dart.void, [html$.Range]),
    [S$2.$selectAllChildren]: dart.fnType(dart.void, [html$.Node]),
    [S$2.$setBaseAndExtent]: dart.fnType(dart.void, [dart.nullable(html$.Node), core.int, dart.nullable(html$.Node), core.int]),
    [S$2.$setPosition]: dart.fnType(dart.void, [dart.nullable(html$.Node)], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.Selection, () => ({
    __proto__: dart.getGetters(html$.Selection.__proto__),
    [S$2.$anchorNode]: dart.nullable(html$.Node),
    [S$2.$anchorOffset]: dart.nullable(core.int),
    [S$2.$baseNode]: dart.nullable(html$.Node),
    [S$2.$baseOffset]: dart.nullable(core.int),
    [S$2.$extentNode]: dart.nullable(html$.Node),
    [S$2.$extentOffset]: dart.nullable(core.int),
    [S$2.$focusNode]: dart.nullable(html$.Node),
    [S$2.$focusOffset]: dart.nullable(core.int),
    [S$2.$isCollapsed]: dart.nullable(core.bool),
    [S$2.$rangeCount]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Selection, I[148]);
  dart.registerExtension("Selection", html$.Selection);
  html$.SensorErrorEvent = class SensorErrorEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 27729, 35, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 27729, 45, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.SensorErrorEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new SensorErrorEvent(type, eventInitDict);
    }
    get [S.$error]() {
      return this.error;
    }
  };
  dart.addTypeTests(html$.SensorErrorEvent);
  dart.addTypeCaches(html$.SensorErrorEvent);
  dart.setGetterSignature(html$.SensorErrorEvent, () => ({
    __proto__: dart.getGetters(html$.SensorErrorEvent.__proto__),
    [S.$error]: dart.nullable(html$.DomException)
  }));
  dart.setLibraryUri(html$.SensorErrorEvent, I[148]);
  dart.registerExtension("SensorErrorEvent", html$.SensorErrorEvent);
  html$.ServiceWorker = class ServiceWorker extends html$.EventTarget {
    get [S$2.$scriptUrl]() {
      return this.scriptURL;
    }
    get [S$.$state]() {
      return this.state;
    }
    [S$.$postMessage](message, transfer = null) {
      if (transfer != null) {
        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
        this[S$0._postMessage_1](message_1, transfer);
        return;
      }
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[S$0._postMessage_2](message_1);
      return;
    }
    [S$0._postMessage_1](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._postMessage_2](...args) {
      return this.postMessage.apply(this, args);
    }
    get [S.$onError]() {
      return html$.ServiceWorker.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.ServiceWorker);
  dart.addTypeCaches(html$.ServiceWorker);
  html$.ServiceWorker[dart.implements] = () => [html$.AbstractWorker];
  dart.setMethodSignature(html$.ServiceWorker, () => ({
    __proto__: dart.getMethods(html$.ServiceWorker.__proto__),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_1]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_2]: dart.fnType(dart.void, [dart.dynamic])
  }));
  dart.setGetterSignature(html$.ServiceWorker, () => ({
    __proto__: dart.getGetters(html$.ServiceWorker.__proto__),
    [S$2.$scriptUrl]: dart.nullable(core.String),
    [S$.$state]: dart.nullable(core.String),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.ServiceWorker, I[148]);
  dart.defineLazy(html$.ServiceWorker, {
    /*html$.ServiceWorker.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("ServiceWorker", html$.ServiceWorker);
  html$.ServiceWorkerContainer = class ServiceWorkerContainer extends html$.EventTarget {
    get [S$2.$controller]() {
      return this.controller;
    }
    get [S$.$ready]() {
      return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.ready);
    }
    [S$2.$getRegistration](documentURL = null) {
      return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.getRegistration(documentURL));
    }
    [S$2.$getRegistrations]() {
      return js_util.promiseToFuture(core.List, this.getRegistrations());
    }
    [S$1.$register](url, options = null) {
      if (url == null) dart.nullFailed(I[147], 27805, 53, "url");
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.register(url, options_dict));
    }
    get [S$.$onMessage]() {
      return html$.ServiceWorkerContainer.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.ServiceWorkerContainer);
  dart.addTypeCaches(html$.ServiceWorkerContainer);
  dart.setMethodSignature(html$.ServiceWorkerContainer, () => ({
    __proto__: dart.getMethods(html$.ServiceWorkerContainer.__proto__),
    [S$2.$getRegistration]: dart.fnType(async.Future$(html$.ServiceWorkerRegistration), [], [dart.nullable(core.String)]),
    [S$2.$getRegistrations]: dart.fnType(async.Future$(core.List), []),
    [S$1.$register]: dart.fnType(async.Future$(html$.ServiceWorkerRegistration), [core.String], [dart.nullable(core.Map)])
  }));
  dart.setGetterSignature(html$.ServiceWorkerContainer, () => ({
    __proto__: dart.getGetters(html$.ServiceWorkerContainer.__proto__),
    [S$2.$controller]: dart.nullable(html$.ServiceWorker),
    [S$.$ready]: async.Future$(html$.ServiceWorkerRegistration),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.ServiceWorkerContainer, I[148]);
  dart.defineLazy(html$.ServiceWorkerContainer, {
    /*html$.ServiceWorkerContainer.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("ServiceWorkerContainer", html$.ServiceWorkerContainer);
  html$.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html$.WorkerGlobalScope {
    get [S$2.$clients]() {
      return this.clients;
    }
    get [S$2.$registration]() {
      return this.registration;
    }
    [S$2.$skipWaiting]() {
      return js_util.promiseToFuture(dart.dynamic, this.skipWaiting());
    }
    get [S$2.$onActivate]() {
      return html$.ServiceWorkerGlobalScope.activateEvent.forTarget(this);
    }
    get [S$2.$onFetch]() {
      return html$.ServiceWorkerGlobalScope.fetchEvent.forTarget(this);
    }
    get [S$2.$onForeignfetch]() {
      return html$.ServiceWorkerGlobalScope.foreignfetchEvent.forTarget(this);
    }
    get [S$2.$onInstall]() {
      return html$.ServiceWorkerGlobalScope.installEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
    }
    static get instance() {
      return html$.ServiceWorkerGlobalScope.as(html$._workerSelf);
    }
  };
  dart.addTypeTests(html$.ServiceWorkerGlobalScope);
  dart.addTypeCaches(html$.ServiceWorkerGlobalScope);
  dart.setMethodSignature(html$.ServiceWorkerGlobalScope, () => ({
    __proto__: dart.getMethods(html$.ServiceWorkerGlobalScope.__proto__),
    [S$2.$skipWaiting]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(html$.ServiceWorkerGlobalScope, () => ({
    __proto__: dart.getGetters(html$.ServiceWorkerGlobalScope.__proto__),
    [S$2.$clients]: dart.nullable(html$.Clients),
    [S$2.$registration]: dart.nullable(html$.ServiceWorkerRegistration),
    [S$2.$onActivate]: async.Stream$(html$.Event),
    [S$2.$onFetch]: async.Stream$(html$.Event),
    [S$2.$onForeignfetch]: async.Stream$(html$.ForeignFetchEvent),
    [S$2.$onInstall]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.ServiceWorkerGlobalScope, I[148]);
  dart.defineLazy(html$.ServiceWorkerGlobalScope, {
    /*html$.ServiceWorkerGlobalScope.activateEvent*/get activateEvent() {
      return C[362] || CT.C362;
    },
    /*html$.ServiceWorkerGlobalScope.fetchEvent*/get fetchEvent() {
      return C[363] || CT.C363;
    },
    /*html$.ServiceWorkerGlobalScope.foreignfetchEvent*/get foreignfetchEvent() {
      return C[364] || CT.C364;
    },
    /*html$.ServiceWorkerGlobalScope.installEvent*/get installEvent() {
      return C[365] || CT.C365;
    },
    /*html$.ServiceWorkerGlobalScope.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("ServiceWorkerGlobalScope", html$.ServiceWorkerGlobalScope);
  html$.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html$.EventTarget {
    get [S$1.$active]() {
      return this.active;
    }
    get [S$2.$backgroundFetch]() {
      return this.backgroundFetch;
    }
    get [S$2.$installing]() {
      return this.installing;
    }
    get [S$2.$navigationPreload]() {
      return this.navigationPreload;
    }
    get [S$2.$paymentManager]() {
      return this.paymentManager;
    }
    get [S$2.$pushManager]() {
      return this.pushManager;
    }
    get [S$1.$scope]() {
      return this.scope;
    }
    get [S$2.$sync]() {
      return this.sync;
    }
    get [S$2.$waiting]() {
      return this.waiting;
    }
    [S$2.$getNotifications](filter = null) {
      let filter_dict = null;
      if (filter != null) {
        filter_dict = html_common.convertDartToNative_Dictionary(filter);
      }
      return js_util.promiseToFuture(core.List, this.getNotifications(filter_dict));
    }
    [S$2.$showNotification](title, options = null) {
      if (title == null) dart.nullFailed(I[147], 27906, 34, "title");
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.showNotification(title, options_dict));
    }
    [S$2.$unregister]() {
      return js_util.promiseToFuture(core.bool, this.unregister());
    }
    [$update]() {
      return js_util.promiseToFuture(dart.dynamic, this.update());
    }
  };
  dart.addTypeTests(html$.ServiceWorkerRegistration);
  dart.addTypeCaches(html$.ServiceWorkerRegistration);
  dart.setMethodSignature(html$.ServiceWorkerRegistration, () => ({
    __proto__: dart.getMethods(html$.ServiceWorkerRegistration.__proto__),
    [S$2.$getNotifications]: dart.fnType(async.Future$(core.List), [], [dart.nullable(core.Map)]),
    [S$2.$showNotification]: dart.fnType(async.Future, [core.String], [dart.nullable(core.Map)]),
    [S$2.$unregister]: dart.fnType(async.Future$(core.bool), []),
    [$update]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(html$.ServiceWorkerRegistration, () => ({
    __proto__: dart.getGetters(html$.ServiceWorkerRegistration.__proto__),
    [S$1.$active]: dart.nullable(html$.ServiceWorker),
    [S$2.$backgroundFetch]: dart.nullable(html$.BackgroundFetchManager),
    [S$2.$installing]: dart.nullable(html$.ServiceWorker),
    [S$2.$navigationPreload]: dart.nullable(html$.NavigationPreloadManager),
    [S$2.$paymentManager]: dart.nullable(html$.PaymentManager),
    [S$2.$pushManager]: dart.nullable(html$.PushManager),
    [S$1.$scope]: dart.nullable(core.String),
    [S$2.$sync]: dart.nullable(html$.SyncManager),
    [S$2.$waiting]: dart.nullable(html$.ServiceWorker)
  }));
  dart.setLibraryUri(html$.ServiceWorkerRegistration, I[148]);
  dart.registerExtension("ServiceWorkerRegistration", html$.ServiceWorkerRegistration);
  html$.ShadowElement = class ShadowElement extends html$.HtmlElement {
    static new() {
      return html$.ShadowElement.as(html$.document[S.$createElement]("shadow"));
    }
    static get supported() {
      return html$.Element.isTagSupported("shadow");
    }
    [S$.$getDistributedNodes](...args) {
      return this.getDistributedNodes.apply(this, args);
    }
  };
  (html$.ShadowElement.created = function() {
    html$.ShadowElement.__proto__.created.call(this);
    ;
  }).prototype = html$.ShadowElement.prototype;
  dart.addTypeTests(html$.ShadowElement);
  dart.addTypeCaches(html$.ShadowElement);
  dart.setMethodSignature(html$.ShadowElement, () => ({
    __proto__: dart.getMethods(html$.ShadowElement.__proto__),
    [S$.$getDistributedNodes]: dart.fnType(core.List$(html$.Node), [])
  }));
  dart.setLibraryUri(html$.ShadowElement, I[148]);
  dart.registerExtension("HTMLShadowElement", html$.ShadowElement);
  html$.ShadowRoot = class ShadowRoot extends html$.DocumentFragment {
    get [S$2.$delegatesFocus]() {
      return this.delegatesFocus;
    }
    get [S$.$host]() {
      return this.host;
    }
    get [S.$innerHtml]() {
      return this.innerHTML;
    }
    set [S.$innerHtml](value) {
      this.innerHTML = value;
    }
    get [S.$mode]() {
      return this.mode;
    }
    get [S$2.$olderShadowRoot]() {
      return this.olderShadowRoot;
    }
    get [S$1.$activeElement]() {
      return this.activeElement;
    }
    get [S$1.$fullscreenElement]() {
      return this.fullscreenElement;
    }
    get [S$1.$pointerLockElement]() {
      return this.pointerLockElement;
    }
    get [S$1.$styleSheets]() {
      return this.styleSheets;
    }
    [S$1.$elementFromPoint](...args) {
      return this.elementFromPoint.apply(this, args);
    }
    [S$1.$elementsFromPoint](...args) {
      return this.elementsFromPoint.apply(this, args);
    }
    [S$1.$getSelection](...args) {
      return this.getSelection.apply(this, args);
    }
    static get supported() {
      return !!(Element.prototype.createShadowRoot || Element.prototype.webkitCreateShadowRoot);
    }
    static _shadowRootDeprecationReport() {
      if (!dart.test(html$.ShadowRoot._shadowRootDeprecationReported)) {
        html$.window[S$2.$console].warn("ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n");
        html$.ShadowRoot._shadowRootDeprecationReported = true;
      }
    }
    get [S$2.$resetStyleInheritance]() {
      html$.ShadowRoot._shadowRootDeprecationReport();
      return false;
    }
    set [S$2.$resetStyleInheritance](value) {
      if (value == null) dart.nullFailed(I[147], 28017, 34, "value");
      html$.ShadowRoot._shadowRootDeprecationReport();
    }
    get [S$2.$applyAuthorStyles]() {
      html$.ShadowRoot._shadowRootDeprecationReport();
      return false;
    }
    set [S$2.$applyAuthorStyles](value) {
      if (value == null) dart.nullFailed(I[147], 28029, 30, "value");
      html$.ShadowRoot._shadowRootDeprecationReport();
    }
  };
  dart.addTypeTests(html$.ShadowRoot);
  dart.addTypeCaches(html$.ShadowRoot);
  html$.ShadowRoot[dart.implements] = () => [html$.DocumentOrShadowRoot];
  dart.setMethodSignature(html$.ShadowRoot, () => ({
    __proto__: dart.getMethods(html$.ShadowRoot.__proto__),
    [S$1.$elementFromPoint]: dart.fnType(dart.nullable(html$.Element), [core.int, core.int]),
    [S$1.$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
    [S$1.$getSelection]: dart.fnType(dart.nullable(html$.Selection), [])
  }));
  dart.setGetterSignature(html$.ShadowRoot, () => ({
    __proto__: dart.getGetters(html$.ShadowRoot.__proto__),
    [S$2.$delegatesFocus]: dart.nullable(core.bool),
    [S$.$host]: dart.nullable(html$.Element),
    [S.$mode]: dart.nullable(core.String),
    [S$2.$olderShadowRoot]: dart.nullable(html$.ShadowRoot),
    [S$1.$activeElement]: dart.nullable(html$.Element),
    [S$1.$fullscreenElement]: dart.nullable(html$.Element),
    [S$1.$pointerLockElement]: dart.nullable(html$.Element),
    [S$1.$styleSheets]: dart.nullable(core.List$(html$.StyleSheet)),
    [S$2.$resetStyleInheritance]: core.bool,
    [S$2.$applyAuthorStyles]: core.bool
  }));
  dart.setSetterSignature(html$.ShadowRoot, () => ({
    __proto__: dart.getSetters(html$.ShadowRoot.__proto__),
    [S$2.$resetStyleInheritance]: core.bool,
    [S$2.$applyAuthorStyles]: core.bool
  }));
  dart.setLibraryUri(html$.ShadowRoot, I[148]);
  dart.defineLazy(html$.ShadowRoot, {
    /*html$.ShadowRoot._shadowRootDeprecationReported*/get _shadowRootDeprecationReported() {
      return false;
    },
    set _shadowRootDeprecationReported(_) {}
  }, false);
  dart.registerExtension("ShadowRoot", html$.ShadowRoot);
  html$.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
    get [S$2.$byteLength]() {
      return this.byteLength;
    }
  };
  dart.addTypeTests(html$.SharedArrayBuffer);
  dart.addTypeCaches(html$.SharedArrayBuffer);
  dart.setGetterSignature(html$.SharedArrayBuffer, () => ({
    __proto__: dart.getGetters(html$.SharedArrayBuffer.__proto__),
    [S$2.$byteLength]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.SharedArrayBuffer, I[148]);
  dart.registerExtension("SharedArrayBuffer", html$.SharedArrayBuffer);
  html$.SharedWorker = class SharedWorker$ extends html$.EventTarget {
    static new(scriptURL, name = null) {
      if (scriptURL == null) dart.nullFailed(I[147], 28060, 31, "scriptURL");
      if (name != null) {
        return html$.SharedWorker._create_1(scriptURL, name);
      }
      return html$.SharedWorker._create_2(scriptURL);
    }
    static _create_1(scriptURL, name) {
      return new SharedWorker(scriptURL, name);
    }
    static _create_2(scriptURL) {
      return new SharedWorker(scriptURL);
    }
    get [S$.$port]() {
      return this.port;
    }
    get [S.$onError]() {
      return html$.SharedWorker.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.SharedWorker);
  dart.addTypeCaches(html$.SharedWorker);
  html$.SharedWorker[dart.implements] = () => [html$.AbstractWorker];
  dart.setGetterSignature(html$.SharedWorker, () => ({
    __proto__: dart.getGetters(html$.SharedWorker.__proto__),
    [S$.$port]: dart.nullable(html$.MessagePort),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.SharedWorker, I[148]);
  dart.defineLazy(html$.SharedWorker, {
    /*html$.SharedWorker.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("SharedWorker", html$.SharedWorker);
  html$.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html$.WorkerGlobalScope {
    get [$name]() {
      return this.name;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$0._webkitRequestFileSystem](...args) {
      return this.webkitRequestFileSystem.apply(this, args);
    }
    [S$0.$requestFileSystemSync](...args) {
      return this.webkitRequestFileSystemSync.apply(this, args);
    }
    [S$0.$resolveLocalFileSystemSyncUrl](...args) {
      return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
    }
    [S$0._webkitResolveLocalFileSystemUrl](...args) {
      return this.webkitResolveLocalFileSystemURL.apply(this, args);
    }
    get [S$2.$onConnect]() {
      return html$.SharedWorkerGlobalScope.connectEvent.forTarget(this);
    }
    static get instance() {
      return html$.SharedWorkerGlobalScope.as(html$._workerSelf);
    }
  };
  dart.addTypeTests(html$.SharedWorkerGlobalScope);
  dart.addTypeCaches(html$.SharedWorkerGlobalScope);
  dart.setMethodSignature(html$.SharedWorkerGlobalScope, () => ({
    __proto__: dart.getMethods(html$.SharedWorkerGlobalScope.__proto__),
    [S.$close]: dart.fnType(dart.void, []),
    [S$0._webkitRequestFileSystem]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(dart.fnType(dart.void, [html$.FileSystem])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$0.$requestFileSystemSync]: dart.fnType(html$._DOMFileSystemSync, [core.int, core.int]),
    [S$0.$resolveLocalFileSystemSyncUrl]: dart.fnType(html$._EntrySync, [core.String]),
    [S$0._webkitResolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))])
  }));
  dart.setGetterSignature(html$.SharedWorkerGlobalScope, () => ({
    __proto__: dart.getGetters(html$.SharedWorkerGlobalScope.__proto__),
    [$name]: dart.nullable(core.String),
    [S$2.$onConnect]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.SharedWorkerGlobalScope, I[148]);
  dart.defineLazy(html$.SharedWorkerGlobalScope, {
    /*html$.SharedWorkerGlobalScope.connectEvent*/get connectEvent() {
      return C[366] || CT.C366;
    },
    /*html$.SharedWorkerGlobalScope.PERSISTENT*/get PERSISTENT() {
      return 1;
    },
    /*html$.SharedWorkerGlobalScope.TEMPORARY*/get TEMPORARY() {
      return 0;
    }
  }, false);
  dart.registerExtension("SharedWorkerGlobalScope", html$.SharedWorkerGlobalScope);
  html$.SlotElement = class SlotElement extends html$.HtmlElement {
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    [S$2.$assignedNodes](options = null) {
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S$2._assignedNodes_1](options_1);
      }
      return this[S$2._assignedNodes_2]();
    }
    [S$2._assignedNodes_1](...args) {
      return this.assignedNodes.apply(this, args);
    }
    [S$2._assignedNodes_2](...args) {
      return this.assignedNodes.apply(this, args);
    }
  };
  (html$.SlotElement.created = function() {
    html$.SlotElement.__proto__.created.call(this);
    ;
  }).prototype = html$.SlotElement.prototype;
  dart.addTypeTests(html$.SlotElement);
  dart.addTypeCaches(html$.SlotElement);
  dart.setMethodSignature(html$.SlotElement, () => ({
    __proto__: dart.getMethods(html$.SlotElement.__proto__),
    [S$2.$assignedNodes]: dart.fnType(core.List$(html$.Node), [], [dart.nullable(core.Map)]),
    [S$2._assignedNodes_1]: dart.fnType(core.List$(html$.Node), [dart.dynamic]),
    [S$2._assignedNodes_2]: dart.fnType(core.List$(html$.Node), [])
  }));
  dart.setGetterSignature(html$.SlotElement, () => ({
    __proto__: dart.getGetters(html$.SlotElement.__proto__),
    [$name]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.SlotElement, () => ({
    __proto__: dart.getSetters(html$.SlotElement.__proto__),
    [$name]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SlotElement, I[148]);
  dart.registerExtension("HTMLSlotElement", html$.SlotElement);
  html$.SourceBuffer = class SourceBuffer extends html$.EventTarget {
    get [S$2.$appendWindowEnd]() {
      return this.appendWindowEnd;
    }
    set [S$2.$appendWindowEnd](value) {
      this.appendWindowEnd = value;
    }
    get [S$2.$appendWindowStart]() {
      return this.appendWindowStart;
    }
    set [S$2.$appendWindowStart](value) {
      this.appendWindowStart = value;
    }
    get [S$.$audioTracks]() {
      return this.audioTracks;
    }
    get [S$.$buffered]() {
      return this.buffered;
    }
    get [S.$mode]() {
      return this.mode;
    }
    set [S.$mode](value) {
      this.mode = value;
    }
    get [S$2.$timestampOffset]() {
      return this.timestampOffset;
    }
    set [S$2.$timestampOffset](value) {
      this.timestampOffset = value;
    }
    get [S$2.$trackDefaults]() {
      return this.trackDefaults;
    }
    set [S$2.$trackDefaults](value) {
      this.trackDefaults = value;
    }
    get [S$2.$updating]() {
      return this.updating;
    }
    get [S$.$videoTracks]() {
      return this.videoTracks;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$2.$appendBuffer](...args) {
      return this.appendBuffer.apply(this, args);
    }
    [S$2.$appendTypedData](...args) {
      return this.appendBuffer.apply(this, args);
    }
    [$remove](...args) {
      return this.remove.apply(this, args);
    }
    get [S.$onAbort]() {
      return html$.SourceBuffer.abortEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.SourceBuffer.errorEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.SourceBuffer);
  dart.addTypeCaches(html$.SourceBuffer);
  dart.setMethodSignature(html$.SourceBuffer, () => ({
    __proto__: dart.getMethods(html$.SourceBuffer.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$2.$appendBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
    [S$2.$appendTypedData]: dart.fnType(dart.void, [typed_data.TypedData]),
    [$remove]: dart.fnType(dart.void, [core.num, core.num])
  }));
  dart.setGetterSignature(html$.SourceBuffer, () => ({
    __proto__: dart.getGetters(html$.SourceBuffer.__proto__),
    [S$2.$appendWindowEnd]: dart.nullable(core.num),
    [S$2.$appendWindowStart]: dart.nullable(core.num),
    [S$.$audioTracks]: dart.nullable(web_audio.AudioTrackList),
    [S$.$buffered]: dart.nullable(html$.TimeRanges),
    [S.$mode]: dart.nullable(core.String),
    [S$2.$timestampOffset]: dart.nullable(core.num),
    [S$2.$trackDefaults]: dart.nullable(html$.TrackDefaultList),
    [S$2.$updating]: dart.nullable(core.bool),
    [S$.$videoTracks]: dart.nullable(html$.VideoTrackList),
    [S.$onAbort]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.SourceBuffer, () => ({
    __proto__: dart.getSetters(html$.SourceBuffer.__proto__),
    [S$2.$appendWindowEnd]: dart.nullable(core.num),
    [S$2.$appendWindowStart]: dart.nullable(core.num),
    [S.$mode]: dart.nullable(core.String),
    [S$2.$timestampOffset]: dart.nullable(core.num),
    [S$2.$trackDefaults]: dart.nullable(html$.TrackDefaultList)
  }));
  dart.setLibraryUri(html$.SourceBuffer, I[148]);
  dart.defineLazy(html$.SourceBuffer, {
    /*html$.SourceBuffer.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*html$.SourceBuffer.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    }
  }, false);
  dart.registerExtension("SourceBuffer", html$.SourceBuffer);
  const EventTarget_ListMixin$36 = class EventTarget_ListMixin extends html$.EventTarget {};
  (EventTarget_ListMixin$36._created = function() {
    EventTarget_ListMixin$36.__proto__._created.call(this);
  }).prototype = EventTarget_ListMixin$36.prototype;
  dart.applyMixin(EventTarget_ListMixin$36, collection.ListMixin$(html$.SourceBuffer));
  const EventTarget_ImmutableListMixin$36 = class EventTarget_ImmutableListMixin extends EventTarget_ListMixin$36 {};
  (EventTarget_ImmutableListMixin$36._created = function() {
    EventTarget_ImmutableListMixin$36.__proto__._created.call(this);
  }).prototype = EventTarget_ImmutableListMixin$36.prototype;
  dart.applyMixin(EventTarget_ImmutableListMixin$36, html$.ImmutableListMixin$(html$.SourceBuffer));
  html$.SourceBufferList = class SourceBufferList extends EventTarget_ImmutableListMixin$36 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 28242, 32, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 28248, 25, "index");
      html$.SourceBuffer.as(value);
      if (value == null) dart.nullFailed(I[147], 28248, 45, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 28254, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 28282, 30, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.SourceBufferList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.SourceBufferList);
  dart.addTypeCaches(html$.SourceBufferList);
  html$.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SourceBuffer), core.List$(html$.SourceBuffer)];
  dart.setMethodSignature(html$.SourceBufferList, () => ({
    __proto__: dart.getMethods(html$.SourceBufferList.__proto__),
    [$_get]: dart.fnType(html$.SourceBuffer, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(html$.SourceBuffer, [core.int])
  }));
  dart.setGetterSignature(html$.SourceBufferList, () => ({
    __proto__: dart.getGetters(html$.SourceBufferList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.SourceBufferList, () => ({
    __proto__: dart.getSetters(html$.SourceBufferList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.SourceBufferList, I[148]);
  dart.registerExtension("SourceBufferList", html$.SourceBufferList);
  html$.SourceElement = class SourceElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("source");
    }
    get [S$.$media]() {
      return this.media;
    }
    set [S$.$media](value) {
      this.media = value;
    }
    get [S$1.$sizes]() {
      return this.sizes;
    }
    set [S$1.$sizes](value) {
      this.sizes = value;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$1.$srcset]() {
      return this.srcset;
    }
    set [S$1.$srcset](value) {
      this.srcset = value;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  (html$.SourceElement.created = function() {
    html$.SourceElement.__proto__.created.call(this);
    ;
  }).prototype = html$.SourceElement.prototype;
  dart.addTypeTests(html$.SourceElement);
  dart.addTypeCaches(html$.SourceElement);
  dart.setGetterSignature(html$.SourceElement, () => ({
    __proto__: dart.getGetters(html$.SourceElement.__proto__),
    [S$.$media]: core.String,
    [S$1.$sizes]: dart.nullable(core.String),
    [S$.$src]: core.String,
    [S$1.$srcset]: dart.nullable(core.String),
    [S.$type]: core.String
  }));
  dart.setSetterSignature(html$.SourceElement, () => ({
    __proto__: dart.getSetters(html$.SourceElement.__proto__),
    [S$.$media]: core.String,
    [S$1.$sizes]: dart.nullable(core.String),
    [S$.$src]: core.String,
    [S$1.$srcset]: dart.nullable(core.String),
    [S.$type]: core.String
  }));
  dart.setLibraryUri(html$.SourceElement, I[148]);
  dart.registerExtension("HTMLSourceElement", html$.SourceElement);
  html$.SpanElement = class SpanElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("span");
    }
  };
  (html$.SpanElement.created = function() {
    html$.SpanElement.__proto__.created.call(this);
    ;
  }).prototype = html$.SpanElement.prototype;
  dart.addTypeTests(html$.SpanElement);
  dart.addTypeCaches(html$.SpanElement);
  dart.setLibraryUri(html$.SpanElement, I[148]);
  dart.registerExtension("HTMLSpanElement", html$.SpanElement);
  html$.SpeechGrammar = class SpeechGrammar$ extends _interceptors.Interceptor {
    static new() {
      return html$.SpeechGrammar._create_1();
    }
    static _create_1() {
      return new SpeechGrammar();
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$1.$weight]() {
      return this.weight;
    }
    set [S$1.$weight](value) {
      this.weight = value;
    }
  };
  dart.addTypeTests(html$.SpeechGrammar);
  dart.addTypeCaches(html$.SpeechGrammar);
  dart.setGetterSignature(html$.SpeechGrammar, () => ({
    __proto__: dart.getGetters(html$.SpeechGrammar.__proto__),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$weight]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.SpeechGrammar, () => ({
    __proto__: dart.getSetters(html$.SpeechGrammar.__proto__),
    [S$.$src]: dart.nullable(core.String),
    [S$1.$weight]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.SpeechGrammar, I[148]);
  dart.registerExtension("SpeechGrammar", html$.SpeechGrammar);
  const Interceptor_ListMixin$36$5 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$5.new = function() {
    Interceptor_ListMixin$36$5.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$5.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$5, collection.ListMixin$(html$.SpeechGrammar));
  const Interceptor_ImmutableListMixin$36$5 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$5 {};
  (Interceptor_ImmutableListMixin$36$5.new = function() {
    Interceptor_ImmutableListMixin$36$5.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$5.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$5, html$.ImmutableListMixin$(html$.SpeechGrammar));
  html$.SpeechGrammarList = class SpeechGrammarList$ extends Interceptor_ImmutableListMixin$36$5 {
    static new() {
      return html$.SpeechGrammarList._create_1();
    }
    static _create_1() {
      return new SpeechGrammarList();
    }
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 28399, 33, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 28405, 25, "index");
      html$.SpeechGrammar.as(value);
      if (value == null) dart.nullFailed(I[147], 28405, 46, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 28411, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 28439, 31, "index");
      return this[$_get](index);
    }
    [S$2.$addFromString](...args) {
      return this.addFromString.apply(this, args);
    }
    [S$2.$addFromUri](...args) {
      return this.addFromUri.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.SpeechGrammarList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.SpeechGrammarList);
  dart.addTypeCaches(html$.SpeechGrammarList);
  html$.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SpeechGrammar), core.List$(html$.SpeechGrammar)];
  dart.setMethodSignature(html$.SpeechGrammarList, () => ({
    __proto__: dart.getMethods(html$.SpeechGrammarList.__proto__),
    [$_get]: dart.fnType(html$.SpeechGrammar, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$2.$addFromString]: dart.fnType(dart.void, [core.String], [dart.nullable(core.num)]),
    [S$2.$addFromUri]: dart.fnType(dart.void, [core.String], [dart.nullable(core.num)]),
    [S$.$item]: dart.fnType(html$.SpeechGrammar, [core.int])
  }));
  dart.setGetterSignature(html$.SpeechGrammarList, () => ({
    __proto__: dart.getGetters(html$.SpeechGrammarList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.SpeechGrammarList, () => ({
    __proto__: dart.getSetters(html$.SpeechGrammarList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.SpeechGrammarList, I[148]);
  dart.registerExtension("SpeechGrammarList", html$.SpeechGrammarList);
  html$.SpeechRecognition = class SpeechRecognition extends html$.EventTarget {
    static get supported() {
      return !!(window.SpeechRecognition || window.webkitSpeechRecognition);
    }
    get [S$2.$audioTrack]() {
      return this.audioTrack;
    }
    set [S$2.$audioTrack](value) {
      this.audioTrack = value;
    }
    get [S$2.$continuous]() {
      return this.continuous;
    }
    set [S$2.$continuous](value) {
      this.continuous = value;
    }
    get [S$2.$grammars]() {
      return this.grammars;
    }
    set [S$2.$grammars](value) {
      this.grammars = value;
    }
    get [S$2.$interimResults]() {
      return this.interimResults;
    }
    set [S$2.$interimResults](value) {
      this.interimResults = value;
    }
    get [S.$lang]() {
      return this.lang;
    }
    set [S.$lang](value) {
      this.lang = value;
    }
    get [S$2.$maxAlternatives]() {
      return this.maxAlternatives;
    }
    set [S$2.$maxAlternatives](value) {
      this.maxAlternatives = value;
    }
    [S.$abort](...args) {
      return this.abort.apply(this, args);
    }
    [S$.$start](...args) {
      return this.start.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    get [S$2.$onAudioEnd]() {
      return html$.SpeechRecognition.audioEndEvent.forTarget(this);
    }
    get [S$2.$onAudioStart]() {
      return html$.SpeechRecognition.audioStartEvent.forTarget(this);
    }
    get [S$2.$onEnd]() {
      return html$.SpeechRecognition.endEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.SpeechRecognition.errorEvent.forTarget(this);
    }
    get [S$2.$onNoMatch]() {
      return html$.SpeechRecognition.noMatchEvent.forTarget(this);
    }
    get [S$2.$onResult]() {
      return html$.SpeechRecognition.resultEvent.forTarget(this);
    }
    get [S$2.$onSoundEnd]() {
      return html$.SpeechRecognition.soundEndEvent.forTarget(this);
    }
    get [S$2.$onSoundStart]() {
      return html$.SpeechRecognition.soundStartEvent.forTarget(this);
    }
    get [S$2.$onSpeechEnd]() {
      return html$.SpeechRecognition.speechEndEvent.forTarget(this);
    }
    get [S$2.$onSpeechStart]() {
      return html$.SpeechRecognition.speechStartEvent.forTarget(this);
    }
    get [S$2.$onStart]() {
      return html$.SpeechRecognition.startEvent.forTarget(this);
    }
    static new() {
      return new (window.SpeechRecognition || window.webkitSpeechRecognition)();
    }
  };
  dart.addTypeTests(html$.SpeechRecognition);
  dart.addTypeCaches(html$.SpeechRecognition);
  dart.setMethodSignature(html$.SpeechRecognition, () => ({
    __proto__: dart.getMethods(html$.SpeechRecognition.__proto__),
    [S.$abort]: dart.fnType(dart.void, []),
    [S$.$start]: dart.fnType(dart.void, []),
    [S$.$stop]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.SpeechRecognition, () => ({
    __proto__: dart.getGetters(html$.SpeechRecognition.__proto__),
    [S$2.$audioTrack]: dart.nullable(html$.MediaStreamTrack),
    [S$2.$continuous]: dart.nullable(core.bool),
    [S$2.$grammars]: dart.nullable(html$.SpeechGrammarList),
    [S$2.$interimResults]: dart.nullable(core.bool),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$maxAlternatives]: dart.nullable(core.int),
    [S$2.$onAudioEnd]: async.Stream$(html$.Event),
    [S$2.$onAudioStart]: async.Stream$(html$.Event),
    [S$2.$onEnd]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.SpeechRecognitionError),
    [S$2.$onNoMatch]: async.Stream$(html$.SpeechRecognitionEvent),
    [S$2.$onResult]: async.Stream$(html$.SpeechRecognitionEvent),
    [S$2.$onSoundEnd]: async.Stream$(html$.Event),
    [S$2.$onSoundStart]: async.Stream$(html$.Event),
    [S$2.$onSpeechEnd]: async.Stream$(html$.Event),
    [S$2.$onSpeechStart]: async.Stream$(html$.Event),
    [S$2.$onStart]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.SpeechRecognition, () => ({
    __proto__: dart.getSetters(html$.SpeechRecognition.__proto__),
    [S$2.$audioTrack]: dart.nullable(html$.MediaStreamTrack),
    [S$2.$continuous]: dart.nullable(core.bool),
    [S$2.$grammars]: dart.nullable(html$.SpeechGrammarList),
    [S$2.$interimResults]: dart.nullable(core.bool),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$maxAlternatives]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.SpeechRecognition, I[148]);
  dart.defineLazy(html$.SpeechRecognition, {
    /*html$.SpeechRecognition.audioEndEvent*/get audioEndEvent() {
      return C[367] || CT.C367;
    },
    /*html$.SpeechRecognition.audioStartEvent*/get audioStartEvent() {
      return C[368] || CT.C368;
    },
    /*html$.SpeechRecognition.endEvent*/get endEvent() {
      return C[369] || CT.C369;
    },
    /*html$.SpeechRecognition.errorEvent*/get errorEvent() {
      return C[370] || CT.C370;
    },
    /*html$.SpeechRecognition.noMatchEvent*/get noMatchEvent() {
      return C[371] || CT.C371;
    },
    /*html$.SpeechRecognition.resultEvent*/get resultEvent() {
      return C[372] || CT.C372;
    },
    /*html$.SpeechRecognition.soundEndEvent*/get soundEndEvent() {
      return C[373] || CT.C373;
    },
    /*html$.SpeechRecognition.soundStartEvent*/get soundStartEvent() {
      return C[374] || CT.C374;
    },
    /*html$.SpeechRecognition.speechEndEvent*/get speechEndEvent() {
      return C[375] || CT.C375;
    },
    /*html$.SpeechRecognition.speechStartEvent*/get speechStartEvent() {
      return C[376] || CT.C376;
    },
    /*html$.SpeechRecognition.startEvent*/get startEvent() {
      return C[377] || CT.C377;
    }
  }, false);
  dart.registerExtension("SpeechRecognition", html$.SpeechRecognition);
  html$.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
    get [S$2.$confidence]() {
      return this.confidence;
    }
    get [S$2.$transcript]() {
      return this.transcript;
    }
  };
  dart.addTypeTests(html$.SpeechRecognitionAlternative);
  dart.addTypeCaches(html$.SpeechRecognitionAlternative);
  dart.setGetterSignature(html$.SpeechRecognitionAlternative, () => ({
    __proto__: dart.getGetters(html$.SpeechRecognitionAlternative.__proto__),
    [S$2.$confidence]: dart.nullable(core.num),
    [S$2.$transcript]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SpeechRecognitionAlternative, I[148]);
  dart.registerExtension("SpeechRecognitionAlternative", html$.SpeechRecognitionAlternative);
  html$.SpeechRecognitionError = class SpeechRecognitionError$ extends html$.Event {
    static new(type, initDict = null) {
      if (type == null) dart.nullFailed(I[147], 28659, 41, "type");
      if (initDict != null) {
        let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
        return html$.SpeechRecognitionError._create_1(type, initDict_1);
      }
      return html$.SpeechRecognitionError._create_2(type);
    }
    static _create_1(type, initDict) {
      return new SpeechRecognitionError(type, initDict);
    }
    static _create_2(type) {
      return new SpeechRecognitionError(type);
    }
    get [S.$error]() {
      return this.error;
    }
    get [$message]() {
      return this.message;
    }
  };
  dart.addTypeTests(html$.SpeechRecognitionError);
  dart.addTypeCaches(html$.SpeechRecognitionError);
  dart.setGetterSignature(html$.SpeechRecognitionError, () => ({
    __proto__: dart.getGetters(html$.SpeechRecognitionError.__proto__),
    [S.$error]: dart.nullable(core.String),
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SpeechRecognitionError, I[148]);
  dart.registerExtension("SpeechRecognitionError", html$.SpeechRecognitionError);
  html$.SpeechRecognitionEvent = class SpeechRecognitionEvent$ extends html$.Event {
    static new(type, initDict = null) {
      if (type == null) dart.nullFailed(I[147], 28690, 41, "type");
      if (initDict != null) {
        let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
        return html$.SpeechRecognitionEvent._create_1(type, initDict_1);
      }
      return html$.SpeechRecognitionEvent._create_2(type);
    }
    static _create_1(type, initDict) {
      return new SpeechRecognitionEvent(type, initDict);
    }
    static _create_2(type) {
      return new SpeechRecognitionEvent(type);
    }
    get [S$2.$emma]() {
      return this.emma;
    }
    get [S$2.$interpretation]() {
      return this.interpretation;
    }
    get [S$2.$resultIndex]() {
      return this.resultIndex;
    }
    get [S$2.$results]() {
      return this.results;
    }
  };
  dart.addTypeTests(html$.SpeechRecognitionEvent);
  dart.addTypeCaches(html$.SpeechRecognitionEvent);
  dart.setGetterSignature(html$.SpeechRecognitionEvent, () => ({
    __proto__: dart.getGetters(html$.SpeechRecognitionEvent.__proto__),
    [S$2.$emma]: dart.nullable(html$.Document),
    [S$2.$interpretation]: dart.nullable(html$.Document),
    [S$2.$resultIndex]: dart.nullable(core.int),
    [S$2.$results]: dart.nullable(core.List$(html$.SpeechRecognitionResult))
  }));
  dart.setLibraryUri(html$.SpeechRecognitionEvent, I[148]);
  dart.registerExtension("SpeechRecognitionEvent", html$.SpeechRecognitionEvent);
  html$.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
    get [S$2.$isFinal]() {
      return this.isFinal;
    }
    get [$length]() {
      return this.length;
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$.SpeechRecognitionResult);
  dart.addTypeCaches(html$.SpeechRecognitionResult);
  dart.setMethodSignature(html$.SpeechRecognitionResult, () => ({
    __proto__: dart.getMethods(html$.SpeechRecognitionResult.__proto__),
    [S$.$item]: dart.fnType(html$.SpeechRecognitionAlternative, [core.int])
  }));
  dart.setGetterSignature(html$.SpeechRecognitionResult, () => ({
    __proto__: dart.getGetters(html$.SpeechRecognitionResult.__proto__),
    [S$2.$isFinal]: dart.nullable(core.bool),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.SpeechRecognitionResult, I[148]);
  dart.registerExtension("SpeechRecognitionResult", html$.SpeechRecognitionResult);
  html$.SpeechSynthesis = class SpeechSynthesis extends html$.EventTarget {
    [S$2.$getVoices]() {
      let voices = this[S$2._getVoices]();
      if (dart.notNull(voices[$length]) > 0) _js_helper.applyExtension("SpeechSynthesisVoice", voices[$_get](0));
      return voices;
    }
    get [S$.$paused]() {
      return this.paused;
    }
    get [S$2.$pending]() {
      return this.pending;
    }
    get [S$2.$speaking]() {
      return this.speaking;
    }
    [S$.$cancel](...args) {
      return this.cancel.apply(this, args);
    }
    [S$2._getVoices](...args) {
      return this.getVoices.apply(this, args);
    }
    [S$.$pause](...args) {
      return this.pause.apply(this, args);
    }
    [S$1.$resume](...args) {
      return this.resume.apply(this, args);
    }
    [S$0.$speak](...args) {
      return this.speak.apply(this, args);
    }
  };
  dart.addTypeTests(html$.SpeechSynthesis);
  dart.addTypeCaches(html$.SpeechSynthesis);
  dart.setMethodSignature(html$.SpeechSynthesis, () => ({
    __proto__: dart.getMethods(html$.SpeechSynthesis.__proto__),
    [S$2.$getVoices]: dart.fnType(core.List$(html$.SpeechSynthesisVoice), []),
    [S$.$cancel]: dart.fnType(dart.void, []),
    [S$2._getVoices]: dart.fnType(core.List$(html$.SpeechSynthesisVoice), []),
    [S$.$pause]: dart.fnType(dart.void, []),
    [S$1.$resume]: dart.fnType(dart.void, []),
    [S$0.$speak]: dart.fnType(dart.void, [html$.SpeechSynthesisUtterance])
  }));
  dart.setGetterSignature(html$.SpeechSynthesis, () => ({
    __proto__: dart.getGetters(html$.SpeechSynthesis.__proto__),
    [S$.$paused]: dart.nullable(core.bool),
    [S$2.$pending]: dart.nullable(core.bool),
    [S$2.$speaking]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.SpeechSynthesis, I[148]);
  dart.registerExtension("SpeechSynthesis", html$.SpeechSynthesis);
  html$.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html$.Event {
    get [S$2.$charIndex]() {
      return this.charIndex;
    }
    get [S$.$elapsedTime]() {
      return this.elapsedTime;
    }
    get [$name]() {
      return this.name;
    }
    get [S$2.$utterance]() {
      return this.utterance;
    }
  };
  dart.addTypeTests(html$.SpeechSynthesisEvent);
  dart.addTypeCaches(html$.SpeechSynthesisEvent);
  dart.setGetterSignature(html$.SpeechSynthesisEvent, () => ({
    __proto__: dart.getGetters(html$.SpeechSynthesisEvent.__proto__),
    [S$2.$charIndex]: dart.nullable(core.int),
    [S$.$elapsedTime]: dart.nullable(core.num),
    [$name]: dart.nullable(core.String),
    [S$2.$utterance]: dart.nullable(html$.SpeechSynthesisUtterance)
  }));
  dart.setLibraryUri(html$.SpeechSynthesisEvent, I[148]);
  dart.registerExtension("SpeechSynthesisEvent", html$.SpeechSynthesisEvent);
  html$.SpeechSynthesisUtterance = class SpeechSynthesisUtterance$ extends html$.EventTarget {
    static new(text = null) {
      if (text != null) {
        return html$.SpeechSynthesisUtterance._create_1(text);
      }
      return html$.SpeechSynthesisUtterance._create_2();
    }
    static _create_1(text) {
      return new SpeechSynthesisUtterance(text);
    }
    static _create_2() {
      return new SpeechSynthesisUtterance();
    }
    get [S.$lang]() {
      return this.lang;
    }
    set [S.$lang](value) {
      this.lang = value;
    }
    get [S$2.$pitch]() {
      return this.pitch;
    }
    set [S$2.$pitch](value) {
      this.pitch = value;
    }
    get [S$2.$rate]() {
      return this.rate;
    }
    set [S$2.$rate](value) {
      this.rate = value;
    }
    get [S.$text]() {
      return this.text;
    }
    set [S.$text](value) {
      this.text = value;
    }
    get [S$2.$voice]() {
      return this.voice;
    }
    set [S$2.$voice](value) {
      this.voice = value;
    }
    get [S$.$volume]() {
      return this.volume;
    }
    set [S$.$volume](value) {
      this.volume = value;
    }
    get [S$2.$onBoundary]() {
      return html$.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
    }
    get [S$2.$onEnd]() {
      return html$.SpeechSynthesisUtterance.endEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.SpeechSynthesisUtterance.errorEvent.forTarget(this);
    }
    get [S$2.$onMark]() {
      return html$.SpeechSynthesisUtterance.markEvent.forTarget(this);
    }
    get [S.$onPause]() {
      return html$.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
    }
    get [S$2.$onResume]() {
      return html$.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
    }
    get [S$2.$onStart]() {
      return html$.SpeechSynthesisUtterance.startEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.SpeechSynthesisUtterance);
  dart.addTypeCaches(html$.SpeechSynthesisUtterance);
  dart.setGetterSignature(html$.SpeechSynthesisUtterance, () => ({
    __proto__: dart.getGetters(html$.SpeechSynthesisUtterance.__proto__),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$pitch]: dart.nullable(core.num),
    [S$2.$rate]: dart.nullable(core.num),
    [S.$text]: dart.nullable(core.String),
    [S$2.$voice]: dart.nullable(html$.SpeechSynthesisVoice),
    [S$.$volume]: dart.nullable(core.num),
    [S$2.$onBoundary]: async.Stream$(html$.SpeechSynthesisEvent),
    [S$2.$onEnd]: async.Stream$(html$.SpeechSynthesisEvent),
    [S.$onError]: async.Stream$(html$.Event),
    [S$2.$onMark]: async.Stream$(html$.SpeechSynthesisEvent),
    [S.$onPause]: async.Stream$(html$.Event),
    [S$2.$onResume]: async.Stream$(html$.SpeechSynthesisEvent),
    [S$2.$onStart]: async.Stream$(html$.SpeechSynthesisEvent)
  }));
  dart.setSetterSignature(html$.SpeechSynthesisUtterance, () => ({
    __proto__: dart.getSetters(html$.SpeechSynthesisUtterance.__proto__),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$pitch]: dart.nullable(core.num),
    [S$2.$rate]: dart.nullable(core.num),
    [S.$text]: dart.nullable(core.String),
    [S$2.$voice]: dart.nullable(html$.SpeechSynthesisVoice),
    [S$.$volume]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.SpeechSynthesisUtterance, I[148]);
  dart.defineLazy(html$.SpeechSynthesisUtterance, {
    /*html$.SpeechSynthesisUtterance.boundaryEvent*/get boundaryEvent() {
      return C[378] || CT.C378;
    },
    /*html$.SpeechSynthesisUtterance.endEvent*/get endEvent() {
      return C[379] || CT.C379;
    },
    /*html$.SpeechSynthesisUtterance.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.SpeechSynthesisUtterance.markEvent*/get markEvent() {
      return C[380] || CT.C380;
    },
    /*html$.SpeechSynthesisUtterance.pauseEvent*/get pauseEvent() {
      return C[269] || CT.C269;
    },
    /*html$.SpeechSynthesisUtterance.resumeEvent*/get resumeEvent() {
      return C[381] || CT.C381;
    },
    /*html$.SpeechSynthesisUtterance.startEvent*/get startEvent() {
      return C[382] || CT.C382;
    }
  }, false);
  dart.registerExtension("SpeechSynthesisUtterance", html$.SpeechSynthesisUtterance);
  html$.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
    get [S$1.$defaultValue]() {
      return this.default;
    }
    get [S.$lang]() {
      return this.lang;
    }
    get [S$2.$localService]() {
      return this.localService;
    }
    get [$name]() {
      return this.name;
    }
    get [S$2.$voiceUri]() {
      return this.voiceURI;
    }
  };
  dart.addTypeTests(html$.SpeechSynthesisVoice);
  dart.addTypeCaches(html$.SpeechSynthesisVoice);
  dart.setGetterSignature(html$.SpeechSynthesisVoice, () => ({
    __proto__: dart.getGetters(html$.SpeechSynthesisVoice.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.bool),
    [S.$lang]: dart.nullable(core.String),
    [S$2.$localService]: dart.nullable(core.bool),
    [$name]: dart.nullable(core.String),
    [S$2.$voiceUri]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SpeechSynthesisVoice, I[148]);
  dart.registerExtension("SpeechSynthesisVoice", html$.SpeechSynthesisVoice);
  html$.StaticRange = class StaticRange extends _interceptors.Interceptor {
    get [S$2.$collapsed]() {
      return this.collapsed;
    }
    get [S$2.$endContainer]() {
      return this.endContainer;
    }
    get [S$2.$endOffset]() {
      return this.endOffset;
    }
    get [S$2.$startContainer]() {
      return this.startContainer;
    }
    get [S$2.$startOffset]() {
      return this.startOffset;
    }
  };
  dart.addTypeTests(html$.StaticRange);
  dart.addTypeCaches(html$.StaticRange);
  dart.setGetterSignature(html$.StaticRange, () => ({
    __proto__: dart.getGetters(html$.StaticRange.__proto__),
    [S$2.$collapsed]: dart.nullable(core.bool),
    [S$2.$endContainer]: dart.nullable(html$.Node),
    [S$2.$endOffset]: dart.nullable(core.int),
    [S$2.$startContainer]: dart.nullable(html$.Node),
    [S$2.$startOffset]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.StaticRange, I[148]);
  dart.registerExtension("StaticRange", html$.StaticRange);
  const Interceptor_MapMixin$36$1 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
  (Interceptor_MapMixin$36$1.new = function() {
    Interceptor_MapMixin$36$1.__proto__.new.call(this);
  }).prototype = Interceptor_MapMixin$36$1.prototype;
  dart.applyMixin(Interceptor_MapMixin$36$1, collection.MapMixin$(core.String, core.String));
  html$.Storage = class Storage extends Interceptor_MapMixin$36$1 {
    [$addAll](other) {
      T$0.MapOfString$String().as(other);
      if (other == null) dart.nullFailed(I[147], 28987, 35, "other");
      other[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 28988, 20, "k");
        if (v == null) dart.nullFailed(I[147], 28988, 23, "v");
        this[$_set](k, v);
      }, T$0.StringAndStringTovoid()));
    }
    [$containsValue](value) {
      return this[$values][$any](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 28994, 52, "e");
        return core.identical(e, value);
      }, T$.StringTobool()));
    }
    [$containsKey](key) {
      return this[S$1._getItem](core.String.as(key)) != null;
    }
    [$_get](key) {
      return this[S$1._getItem](core.String.as(key));
    }
    [$_set](key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 29000, 28, "key");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 29000, 40, "value");
      this[S$2._setItem](key, value);
      return value$;
    }
    [$putIfAbsent](key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 29004, 29, "key");
      T$.VoidToString().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 29004, 41, "ifAbsent");
      if (!dart.test(this[$containsKey](key))) this[$_set](key, ifAbsent());
      return dart.nullCast(this[$_get](key), core.String);
    }
    [$remove](key) {
      let value = this[$_get](key);
      this[S$2._removeItem](core.String.as(key));
      return value;
    }
    [$clear]() {
      return this[S$0._clear$3]();
    }
    [$forEach](f) {
      if (f == null) dart.nullFailed(I[147], 29017, 21, "f");
      for (let i = 0; true; i = i + 1) {
        let key = this[S$2._key](i);
        if (key == null) return;
        f(key, dart.nullCheck(this[$_get](key)));
      }
    }
    get [$keys]() {
      let keys = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 29028, 14, "k");
        if (v == null) dart.nullFailed(I[147], 29028, 17, "v");
        return keys[$add](k);
      }, T$0.StringAndStringTovoid()));
      return keys;
    }
    get [$values]() {
      let values = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 29034, 14, "k");
        if (v == null) dart.nullFailed(I[147], 29034, 17, "v");
        return values[$add](v);
      }, T$0.StringAndStringTovoid()));
      return values;
    }
    get [$length]() {
      return this[S$2._length$3];
    }
    get [$isEmpty]() {
      return this[S$2._key](0) == null;
    }
    get [$isNotEmpty]() {
      return !dart.test(this[$isEmpty]);
    }
    get [S$2._length$3]() {
      return this.length;
    }
    [S$0._clear$3](...args) {
      return this.clear.apply(this, args);
    }
    [S$1._getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$2._key](...args) {
      return this.key.apply(this, args);
    }
    [S$2._removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$2._setItem](...args) {
      return this.setItem.apply(this, args);
    }
  };
  dart.addTypeTests(html$.Storage);
  dart.addTypeCaches(html$.Storage);
  dart.setMethodSignature(html$.Storage, () => ({
    __proto__: dart.getMethods(html$.Storage.__proto__),
    [$_get]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$clear]: dart.fnType(dart.void, []),
    [S$0._clear$3]: dart.fnType(dart.void, []),
    [S$1._getItem]: dart.fnType(dart.nullable(core.String), [core.String]),
    [S$2._key]: dart.fnType(dart.nullable(core.String), [core.int]),
    [S$2._removeItem]: dart.fnType(dart.void, [core.String]),
    [S$2._setItem]: dart.fnType(dart.void, [core.String, core.String])
  }));
  dart.setGetterSignature(html$.Storage, () => ({
    __proto__: dart.getGetters(html$.Storage.__proto__),
    [$keys]: core.Iterable$(core.String),
    [S$2._length$3]: core.int
  }));
  dart.setLibraryUri(html$.Storage, I[148]);
  dart.registerExtension("Storage", html$.Storage);
  html$.StorageEvent = class StorageEvent$ extends html$.Event {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 29082, 31, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
      if (canBubble == null) dart.nullFailed(I[147], 29083, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
      if (cancelable == null) dart.nullFailed(I[147], 29084, 12, "cancelable");
      let key = opts && 'key' in opts ? opts.key : null;
      let oldValue = opts && 'oldValue' in opts ? opts.oldValue : null;
      let newValue = opts && 'newValue' in opts ? opts.newValue : null;
      let url = opts && 'url' in opts ? opts.url : null;
      let storageArea = opts && 'storageArea' in opts ? opts.storageArea : null;
      let e = html$.StorageEvent.as(html$.document[S._createEvent]("StorageEvent"));
      e[S$2._initStorageEvent](type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
      return e;
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 29096, 33, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.StorageEvent._create_1(type, eventInitDict_1);
      }
      return html$.StorageEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new StorageEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new StorageEvent(type);
    }
    get [S.$key]() {
      return this.key;
    }
    get [S$1.$newValue]() {
      return this.newValue;
    }
    get [S$1.$oldValue]() {
      return this.oldValue;
    }
    get [S$2.$storageArea]() {
      return this.storageArea;
    }
    get [S$.$url]() {
      return this.url;
    }
    [S$2._initStorageEvent](...args) {
      return this.initStorageEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.StorageEvent);
  dart.addTypeCaches(html$.StorageEvent);
  dart.setMethodSignature(html$.StorageEvent, () => ({
    __proto__: dart.getMethods(html$.StorageEvent.__proto__),
    [S$2._initStorageEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(core.String), dart.nullable(html$.Storage)])
  }));
  dart.setGetterSignature(html$.StorageEvent, () => ({
    __proto__: dart.getGetters(html$.StorageEvent.__proto__),
    [S.$key]: dart.nullable(core.String),
    [S$1.$newValue]: dart.nullable(core.String),
    [S$1.$oldValue]: dart.nullable(core.String),
    [S$2.$storageArea]: dart.nullable(html$.Storage),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.StorageEvent, I[148]);
  dart.registerExtension("StorageEvent", html$.StorageEvent);
  html$.StorageManager = class StorageManager extends _interceptors.Interceptor {
    [S$2.$estimate]() {
      return html$.promiseToFutureAsMap(this.estimate());
    }
    [S$2.$persist]() {
      return js_util.promiseToFuture(core.bool, this.persist());
    }
    [S$2.$persisted]() {
      return js_util.promiseToFuture(core.bool, this.persisted());
    }
  };
  dart.addTypeTests(html$.StorageManager);
  dart.addTypeCaches(html$.StorageManager);
  dart.setMethodSignature(html$.StorageManager, () => ({
    __proto__: dart.getMethods(html$.StorageManager.__proto__),
    [S$2.$estimate]: dart.fnType(async.Future$(dart.nullable(core.Map$(core.String, dart.dynamic))), []),
    [S$2.$persist]: dart.fnType(async.Future$(core.bool), []),
    [S$2.$persisted]: dart.fnType(async.Future$(core.bool), [])
  }));
  dart.setLibraryUri(html$.StorageManager, I[148]);
  dart.registerExtension("StorageManager", html$.StorageManager);
  html$.StyleElement = class StyleElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("style");
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$media]() {
      return this.media;
    }
    set [S$.$media](value) {
      this.media = value;
    }
    get [S$1.$sheet]() {
      return this.sheet;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  (html$.StyleElement.created = function() {
    html$.StyleElement.__proto__.created.call(this);
    ;
  }).prototype = html$.StyleElement.prototype;
  dart.addTypeTests(html$.StyleElement);
  dart.addTypeCaches(html$.StyleElement);
  dart.setGetterSignature(html$.StyleElement, () => ({
    __proto__: dart.getGetters(html$.StyleElement.__proto__),
    [S$.$disabled]: core.bool,
    [S$.$media]: core.String,
    [S$1.$sheet]: dart.nullable(html$.StyleSheet),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.StyleElement, () => ({
    __proto__: dart.getSetters(html$.StyleElement.__proto__),
    [S$.$disabled]: core.bool,
    [S$.$media]: core.String,
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.StyleElement, I[148]);
  dart.registerExtension("HTMLStyleElement", html$.StyleElement);
  html$.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
    get [S.$type]() {
      return this.type;
    }
    [S$2.$matchMedium](...args) {
      return this.matchMedium.apply(this, args);
    }
  };
  dart.addTypeTests(html$.StyleMedia);
  dart.addTypeCaches(html$.StyleMedia);
  dart.setMethodSignature(html$.StyleMedia, () => ({
    __proto__: dart.getMethods(html$.StyleMedia.__proto__),
    [S$2.$matchMedium]: dart.fnType(core.bool, [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.StyleMedia, () => ({
    __proto__: dart.getGetters(html$.StyleMedia.__proto__),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.StyleMedia, I[148]);
  dart.registerExtension("StyleMedia", html$.StyleMedia);
  html$.StylePropertyMapReadonly = class StylePropertyMapReadonly extends _interceptors.Interceptor {
    [S.$get](...args) {
      return this.get.apply(this, args);
    }
    [S.$getAll](...args) {
      return this.getAll.apply(this, args);
    }
    [S$2.$getProperties](...args) {
      return this.getProperties.apply(this, args);
    }
    [S$.$has](...args) {
      return this.has.apply(this, args);
    }
  };
  dart.addTypeTests(html$.StylePropertyMapReadonly);
  dart.addTypeCaches(html$.StylePropertyMapReadonly);
  dart.setMethodSignature(html$.StylePropertyMapReadonly, () => ({
    __proto__: dart.getMethods(html$.StylePropertyMapReadonly.__proto__),
    [S.$get]: dart.fnType(dart.nullable(html$.CssStyleValue), [core.String]),
    [S.$getAll]: dart.fnType(core.List$(html$.CssStyleValue), [core.String]),
    [S$2.$getProperties]: dart.fnType(core.List$(core.String), []),
    [S$.$has]: dart.fnType(core.bool, [core.String])
  }));
  dart.setLibraryUri(html$.StylePropertyMapReadonly, I[148]);
  dart.registerExtension("StylePropertyMapReadonly", html$.StylePropertyMapReadonly);
  html$.StylePropertyMap = class StylePropertyMap extends html$.StylePropertyMapReadonly {
    [S.$append](...args) {
      return this.append.apply(this, args);
    }
    [S.$delete](...args) {
      return this.delete.apply(this, args);
    }
    [S$.$set](...args) {
      return this.set.apply(this, args);
    }
  };
  dart.addTypeTests(html$.StylePropertyMap);
  dart.addTypeCaches(html$.StylePropertyMap);
  dart.setMethodSignature(html$.StylePropertyMap, () => ({
    __proto__: dart.getMethods(html$.StylePropertyMap.__proto__),
    [S.$append]: dart.fnType(dart.void, [core.String, core.Object]),
    [S.$delete]: dart.fnType(dart.void, [core.String]),
    [S$.$set]: dart.fnType(dart.void, [core.String, core.Object])
  }));
  dart.setLibraryUri(html$.StylePropertyMap, I[148]);
  dart.registerExtension("StylePropertyMap", html$.StylePropertyMap);
  html$.SyncEvent = class SyncEvent$ extends html$.ExtendableEvent {
    static new(type, init) {
      if (type == null) dart.nullFailed(I[147], 29289, 28, "type");
      if (init == null) dart.nullFailed(I[147], 29289, 38, "init");
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$.SyncEvent._create_1(type, init_1);
    }
    static _create_1(type, init) {
      return new SyncEvent(type, init);
    }
    get [S$2.$lastChance]() {
      return this.lastChance;
    }
    get [S$2.$tag]() {
      return this.tag;
    }
  };
  dart.addTypeTests(html$.SyncEvent);
  dart.addTypeCaches(html$.SyncEvent);
  dart.setGetterSignature(html$.SyncEvent, () => ({
    __proto__: dart.getGetters(html$.SyncEvent.__proto__),
    [S$2.$lastChance]: dart.nullable(core.bool),
    [S$2.$tag]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.SyncEvent, I[148]);
  dart.registerExtension("SyncEvent", html$.SyncEvent);
  html$.SyncManager = class SyncManager extends _interceptors.Interceptor {
    [S$2.$getTags]() {
      return js_util.promiseToFuture(core.List, this.getTags());
    }
    [S$1.$register](tag) {
      if (tag == null) dart.nullFailed(I[147], 29314, 26, "tag");
      return js_util.promiseToFuture(dart.dynamic, this.register(tag));
    }
  };
  dart.addTypeTests(html$.SyncManager);
  dart.addTypeCaches(html$.SyncManager);
  dart.setMethodSignature(html$.SyncManager, () => ({
    __proto__: dart.getMethods(html$.SyncManager.__proto__),
    [S$2.$getTags]: dart.fnType(async.Future$(core.List), []),
    [S$1.$register]: dart.fnType(async.Future, [core.String])
  }));
  dart.setLibraryUri(html$.SyncManager, I[148]);
  dart.registerExtension("SyncManager", html$.SyncManager);
  html$.TableCaptionElement = class TableCaptionElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("caption");
    }
  };
  (html$.TableCaptionElement.created = function() {
    html$.TableCaptionElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableCaptionElement.prototype;
  dart.addTypeTests(html$.TableCaptionElement);
  dart.addTypeCaches(html$.TableCaptionElement);
  dart.setLibraryUri(html$.TableCaptionElement, I[148]);
  dart.registerExtension("HTMLTableCaptionElement", html$.TableCaptionElement);
  html$.TableCellElement = class TableCellElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("td");
    }
    get [S$2.$cellIndex]() {
      return this.cellIndex;
    }
    get [S$.$colSpan]() {
      return this.colSpan;
    }
    set [S$.$colSpan](value) {
      this.colSpan = value;
    }
    get [S$2.$headers]() {
      return this.headers;
    }
    set [S$2.$headers](value) {
      this.headers = value;
    }
    get [S$.$rowSpan]() {
      return this.rowSpan;
    }
    set [S$.$rowSpan](value) {
      this.rowSpan = value;
    }
  };
  (html$.TableCellElement.created = function() {
    html$.TableCellElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableCellElement.prototype;
  dart.addTypeTests(html$.TableCellElement);
  dart.addTypeCaches(html$.TableCellElement);
  dart.setGetterSignature(html$.TableCellElement, () => ({
    __proto__: dart.getGetters(html$.TableCellElement.__proto__),
    [S$2.$cellIndex]: core.int,
    [S$.$colSpan]: core.int,
    [S$2.$headers]: core.String,
    [S$.$rowSpan]: core.int
  }));
  dart.setSetterSignature(html$.TableCellElement, () => ({
    __proto__: dart.getSetters(html$.TableCellElement.__proto__),
    [S$.$colSpan]: core.int,
    [S$2.$headers]: dart.nullable(core.String),
    [S$.$rowSpan]: core.int
  }));
  dart.setLibraryUri(html$.TableCellElement, I[148]);
  dart.registerExtension("HTMLTableCellElement", html$.TableCellElement);
  dart.registerExtension("HTMLTableDataCellElement", html$.TableCellElement);
  dart.registerExtension("HTMLTableHeaderCellElement", html$.TableCellElement);
  html$.TableColElement = class TableColElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("col");
    }
    get [S$2.$span]() {
      return this.span;
    }
    set [S$2.$span](value) {
      this.span = value;
    }
  };
  (html$.TableColElement.created = function() {
    html$.TableColElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableColElement.prototype;
  dart.addTypeTests(html$.TableColElement);
  dart.addTypeCaches(html$.TableColElement);
  dart.setGetterSignature(html$.TableColElement, () => ({
    __proto__: dart.getGetters(html$.TableColElement.__proto__),
    [S$2.$span]: core.int
  }));
  dart.setSetterSignature(html$.TableColElement, () => ({
    __proto__: dart.getSetters(html$.TableColElement.__proto__),
    [S$2.$span]: core.int
  }));
  dart.setLibraryUri(html$.TableColElement, I[148]);
  dart.registerExtension("HTMLTableColElement", html$.TableColElement);
  html$.TableElement = class TableElement extends html$.HtmlElement {
    get [S$2.$tBodies]() {
      return new (T$0._WrappedListOfTableSectionElement()).new(this[S$2._tBodies]);
    }
    get [S$2.$rows]() {
      return new (T$0._WrappedListOfTableRowElement()).new(this[S$2._rows]);
    }
    [S$2.$addRow]() {
      return this[S$2.$insertRow](-1);
    }
    [S$2.$createCaption]() {
      return this[S$2._createCaption]();
    }
    [S$2.$createTBody]() {
      return this[S$2._createTBody]();
    }
    [S$2.$createTFoot]() {
      return this[S$2._createTFoot]();
    }
    [S$2.$createTHead]() {
      return this[S$2._createTHead]();
    }
    [S$2.$insertRow](index) {
      if (index == null) dart.nullFailed(I[147], 29424, 33, "index");
      return this[S$2._insertRow](index);
    }
    [S$2._createTBody]() {
      if (!!this.createTBody) {
        return this[S$2._nativeCreateTBody]();
      }
      let tbody = html$.Element.tag("tbody");
      this[S.$children][$add](tbody);
      return html$.TableSectionElement.as(tbody);
    }
    [S$2._nativeCreateTBody](...args) {
      return this.createTBody.apply(this, args);
    }
    [S.$createFragment](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
        return super[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
      }
      let contextualHtml = "<table>" + dart.str(html) + "</table>";
      let table = html$.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
      let fragment = html$.DocumentFragment.new();
      fragment[S.$nodes][$addAll](table[S.$nodes]);
      return fragment;
    }
    static new() {
      return html$.document.createElement("table");
    }
    get [S$2.$caption]() {
      return this.caption;
    }
    set [S$2.$caption](value) {
      this.caption = value;
    }
    get [S$2._rows]() {
      return this.rows;
    }
    get [S$2._tBodies]() {
      return this.tBodies;
    }
    get [S$2.$tFoot]() {
      return this.tFoot;
    }
    set [S$2.$tFoot](value) {
      this.tFoot = value;
    }
    get [S$2.$tHead]() {
      return this.tHead;
    }
    set [S$2.$tHead](value) {
      this.tHead = value;
    }
    [S$2._createCaption](...args) {
      return this.createCaption.apply(this, args);
    }
    [S$2._createTFoot](...args) {
      return this.createTFoot.apply(this, args);
    }
    [S$2._createTHead](...args) {
      return this.createTHead.apply(this, args);
    }
    [S$2.$deleteCaption](...args) {
      return this.deleteCaption.apply(this, args);
    }
    [S$2.$deleteRow](...args) {
      return this.deleteRow.apply(this, args);
    }
    [S$2.$deleteTFoot](...args) {
      return this.deleteTFoot.apply(this, args);
    }
    [S$2.$deleteTHead](...args) {
      return this.deleteTHead.apply(this, args);
    }
    [S$2._insertRow](...args) {
      return this.insertRow.apply(this, args);
    }
  };
  (html$.TableElement.created = function() {
    html$.TableElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableElement.prototype;
  dart.addTypeTests(html$.TableElement);
  dart.addTypeCaches(html$.TableElement);
  dart.setMethodSignature(html$.TableElement, () => ({
    __proto__: dart.getMethods(html$.TableElement.__proto__),
    [S$2.$addRow]: dart.fnType(html$.TableRowElement, []),
    [S$2.$createCaption]: dart.fnType(html$.TableCaptionElement, []),
    [S$2.$createTBody]: dart.fnType(html$.TableSectionElement, []),
    [S$2.$createTFoot]: dart.fnType(html$.TableSectionElement, []),
    [S$2.$createTHead]: dart.fnType(html$.TableSectionElement, []),
    [S$2.$insertRow]: dart.fnType(html$.TableRowElement, [core.int]),
    [S$2._createTBody]: dart.fnType(html$.TableSectionElement, []),
    [S$2._nativeCreateTBody]: dart.fnType(html$.TableSectionElement, []),
    [S$2._createCaption]: dart.fnType(html$.TableCaptionElement, []),
    [S$2._createTFoot]: dart.fnType(html$.TableSectionElement, []),
    [S$2._createTHead]: dart.fnType(html$.TableSectionElement, []),
    [S$2.$deleteCaption]: dart.fnType(dart.void, []),
    [S$2.$deleteRow]: dart.fnType(dart.void, [core.int]),
    [S$2.$deleteTFoot]: dart.fnType(dart.void, []),
    [S$2.$deleteTHead]: dart.fnType(dart.void, []),
    [S$2._insertRow]: dart.fnType(html$.TableRowElement, [], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.TableElement, () => ({
    __proto__: dart.getGetters(html$.TableElement.__proto__),
    [S$2.$tBodies]: core.List$(html$.TableSectionElement),
    [S$2.$rows]: core.List$(html$.TableRowElement),
    [S$2.$caption]: dart.nullable(html$.TableCaptionElement),
    [S$2._rows]: core.List$(html$.Node),
    [S$2._tBodies]: core.List$(html$.Node),
    [S$2.$tFoot]: dart.nullable(html$.TableSectionElement),
    [S$2.$tHead]: dart.nullable(html$.TableSectionElement)
  }));
  dart.setSetterSignature(html$.TableElement, () => ({
    __proto__: dart.getSetters(html$.TableElement.__proto__),
    [S$2.$caption]: dart.nullable(html$.TableCaptionElement),
    [S$2.$tFoot]: dart.nullable(html$.TableSectionElement),
    [S$2.$tHead]: dart.nullable(html$.TableSectionElement)
  }));
  dart.setLibraryUri(html$.TableElement, I[148]);
  dart.registerExtension("HTMLTableElement", html$.TableElement);
  html$.TableRowElement = class TableRowElement extends html$.HtmlElement {
    get [S$2.$cells]() {
      return new (T$0._WrappedListOfTableCellElement()).new(this[S$2._cells]);
    }
    [S$2.$addCell]() {
      return this[S$2.$insertCell](-1);
    }
    [S$2.$insertCell](index) {
      if (index == null) dart.nullFailed(I[147], 29526, 35, "index");
      return html$.TableCellElement.as(this[S$2._insertCell](index));
    }
    [S.$createFragment](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
        return super[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
      }
      let fragment = html$.DocumentFragment.new();
      let section = html$.TableElement.new()[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[S.$nodes][$single];
      let row = section[S.$nodes][$single];
      fragment[S.$nodes][$addAll](row[S.$nodes]);
      return fragment;
    }
    static new() {
      return html$.document.createElement("tr");
    }
    get [S$2._cells]() {
      return this.cells;
    }
    get [S$.$rowIndex]() {
      return this.rowIndex;
    }
    get [S$2.$sectionRowIndex]() {
      return this.sectionRowIndex;
    }
    [S$2.$deleteCell](...args) {
      return this.deleteCell.apply(this, args);
    }
    [S$2._insertCell](...args) {
      return this.insertCell.apply(this, args);
    }
  };
  (html$.TableRowElement.created = function() {
    html$.TableRowElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableRowElement.prototype;
  dart.addTypeTests(html$.TableRowElement);
  dart.addTypeCaches(html$.TableRowElement);
  dart.setMethodSignature(html$.TableRowElement, () => ({
    __proto__: dart.getMethods(html$.TableRowElement.__proto__),
    [S$2.$addCell]: dart.fnType(html$.TableCellElement, []),
    [S$2.$insertCell]: dart.fnType(html$.TableCellElement, [core.int]),
    [S$2.$deleteCell]: dart.fnType(dart.void, [core.int]),
    [S$2._insertCell]: dart.fnType(html$.HtmlElement, [], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.TableRowElement, () => ({
    __proto__: dart.getGetters(html$.TableRowElement.__proto__),
    [S$2.$cells]: core.List$(html$.TableCellElement),
    [S$2._cells]: core.List$(html$.Node),
    [S$.$rowIndex]: core.int,
    [S$2.$sectionRowIndex]: core.int
  }));
  dart.setLibraryUri(html$.TableRowElement, I[148]);
  dart.registerExtension("HTMLTableRowElement", html$.TableRowElement);
  html$.TableSectionElement = class TableSectionElement extends html$.HtmlElement {
    get [S$2.$rows]() {
      return new (T$0._WrappedListOfTableRowElement()).new(this[S$2._rows]);
    }
    [S$2.$addRow]() {
      return this[S$2.$insertRow](-1);
    }
    [S$2.$insertRow](index) {
      if (index == null) dart.nullFailed(I[147], 29590, 33, "index");
      return html$.TableRowElement.as(this[S$2._insertRow](index));
    }
    [S.$createFragment](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
        return super[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
      }
      let fragment = html$.DocumentFragment.new();
      let section = html$.TableElement.new()[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[S.$nodes][$single];
      fragment[S.$nodes][$addAll](section[S.$nodes]);
      return fragment;
    }
    get [S$2._rows]() {
      return this.rows;
    }
    [S$2.$deleteRow](...args) {
      return this.deleteRow.apply(this, args);
    }
    [S$2._insertRow](...args) {
      return this.insertRow.apply(this, args);
    }
  };
  (html$.TableSectionElement.created = function() {
    html$.TableSectionElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TableSectionElement.prototype;
  dart.addTypeTests(html$.TableSectionElement);
  dart.addTypeCaches(html$.TableSectionElement);
  dart.setMethodSignature(html$.TableSectionElement, () => ({
    __proto__: dart.getMethods(html$.TableSectionElement.__proto__),
    [S$2.$addRow]: dart.fnType(html$.TableRowElement, []),
    [S$2.$insertRow]: dart.fnType(html$.TableRowElement, [core.int]),
    [S$2.$deleteRow]: dart.fnType(dart.void, [core.int]),
    [S$2._insertRow]: dart.fnType(html$.HtmlElement, [], [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$.TableSectionElement, () => ({
    __proto__: dart.getGetters(html$.TableSectionElement.__proto__),
    [S$2.$rows]: core.List$(html$.TableRowElement),
    [S$2._rows]: core.List$(html$.Node)
  }));
  dart.setLibraryUri(html$.TableSectionElement, I[148]);
  dart.registerExtension("HTMLTableSectionElement", html$.TableSectionElement);
  html$.TaskAttributionTiming = class TaskAttributionTiming extends html$.PerformanceEntry {
    get [S$2.$containerId]() {
      return this.containerId;
    }
    get [S$2.$containerName]() {
      return this.containerName;
    }
    get [S$2.$containerSrc]() {
      return this.containerSrc;
    }
    get [S$2.$containerType]() {
      return this.containerType;
    }
    get [S$2.$scriptUrl]() {
      return this.scriptURL;
    }
  };
  dart.addTypeTests(html$.TaskAttributionTiming);
  dart.addTypeCaches(html$.TaskAttributionTiming);
  dart.setGetterSignature(html$.TaskAttributionTiming, () => ({
    __proto__: dart.getGetters(html$.TaskAttributionTiming.__proto__),
    [S$2.$containerId]: dart.nullable(core.String),
    [S$2.$containerName]: dart.nullable(core.String),
    [S$2.$containerSrc]: dart.nullable(core.String),
    [S$2.$containerType]: dart.nullable(core.String),
    [S$2.$scriptUrl]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TaskAttributionTiming, I[148]);
  dart.registerExtension("TaskAttributionTiming", html$.TaskAttributionTiming);
  html$.TemplateElement = class TemplateElement extends html$.HtmlElement {
    static new() {
      return html$.TemplateElement.as(html$.document[S.$createElement]("template"));
    }
    static get supported() {
      return html$.Element.isTagSupported("template");
    }
    get [S$0.$content]() {
      return this.content;
    }
    [S.$setInnerHtml](html, opts) {
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      this[S.$text] = null;
      dart.nullCheck(this.content)[S.$nodes][$clear]();
      let fragment = this[S.$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
      dart.nullCheck(this.content)[S.$append](fragment);
    }
  };
  (html$.TemplateElement.created = function() {
    html$.TemplateElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TemplateElement.prototype;
  dart.addTypeTests(html$.TemplateElement);
  dart.addTypeCaches(html$.TemplateElement);
  dart.setGetterSignature(html$.TemplateElement, () => ({
    __proto__: dart.getGetters(html$.TemplateElement.__proto__),
    [S$0.$content]: dart.nullable(html$.DocumentFragment)
  }));
  dart.setLibraryUri(html$.TemplateElement, I[148]);
  dart.registerExtension("HTMLTemplateElement", html$.TemplateElement);
  html$.TextAreaElement = class TextAreaElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("textarea");
    }
    get [S$1.$autocapitalize]() {
      return this.autocapitalize;
    }
    set [S$1.$autocapitalize](value) {
      this.autocapitalize = value;
    }
    get [S$.$autofocus]() {
      return this.autofocus;
    }
    set [S$.$autofocus](value) {
      this.autofocus = value;
    }
    get [S$2.$cols]() {
      return this.cols;
    }
    set [S$2.$cols](value) {
      this.cols = value;
    }
    get [S$1.$defaultValue]() {
      return this.defaultValue;
    }
    set [S$1.$defaultValue](value) {
      this.defaultValue = value;
    }
    get [S$1.$dirName]() {
      return this.dirName;
    }
    set [S$1.$dirName](value) {
      this.dirName = value;
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$form]() {
      return this.form;
    }
    get [S$.$labels]() {
      return this.labels;
    }
    get [S$1.$maxLength]() {
      return this.maxLength;
    }
    set [S$1.$maxLength](value) {
      this.maxLength = value;
    }
    get [S$1.$minLength]() {
      return this.minLength;
    }
    set [S$1.$minLength](value) {
      this.minLength = value;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$.$placeholder]() {
      return this.placeholder;
    }
    set [S$.$placeholder](value) {
      this.placeholder = value;
    }
    get [S$.$readOnly]() {
      return this.readOnly;
    }
    set [S$.$readOnly](value) {
      this.readOnly = value;
    }
    get [S$.$required]() {
      return this.required;
    }
    set [S$.$required](value) {
      this.required = value;
    }
    get [S$2.$rows]() {
      return this.rows;
    }
    set [S$2.$rows](value) {
      this.rows = value;
    }
    get [S$1.$selectionDirection]() {
      return this.selectionDirection;
    }
    set [S$1.$selectionDirection](value) {
      this.selectionDirection = value;
    }
    get [S$1.$selectionEnd]() {
      return this.selectionEnd;
    }
    set [S$1.$selectionEnd](value) {
      this.selectionEnd = value;
    }
    get [S$1.$selectionStart]() {
      return this.selectionStart;
    }
    set [S$1.$selectionStart](value) {
      this.selectionStart = value;
    }
    get [S$2.$textLength]() {
      return this.textLength;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$validationMessage]() {
      return this.validationMessage;
    }
    get [S$.$validity]() {
      return this.validity;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$.$willValidate]() {
      return this.willValidate;
    }
    get [S$2.$wrap]() {
      return this.wrap;
    }
    set [S$2.$wrap](value) {
      this.wrap = value;
    }
    [S$.$checkValidity](...args) {
      return this.checkValidity.apply(this, args);
    }
    [S$.$reportValidity](...args) {
      return this.reportValidity.apply(this, args);
    }
    [S$.$select](...args) {
      return this.select.apply(this, args);
    }
    [S$.$setCustomValidity](...args) {
      return this.setCustomValidity.apply(this, args);
    }
    [S$1.$setRangeText](...args) {
      return this.setRangeText.apply(this, args);
    }
    [S$1.$setSelectionRange](...args) {
      return this.setSelectionRange.apply(this, args);
    }
  };
  (html$.TextAreaElement.created = function() {
    html$.TextAreaElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TextAreaElement.prototype;
  dart.addTypeTests(html$.TextAreaElement);
  dart.addTypeCaches(html$.TextAreaElement);
  dart.setMethodSignature(html$.TextAreaElement, () => ({
    __proto__: dart.getMethods(html$.TextAreaElement.__proto__),
    [S$.$checkValidity]: dart.fnType(core.bool, []),
    [S$.$reportValidity]: dart.fnType(core.bool, []),
    [S$.$select]: dart.fnType(dart.void, []),
    [S$.$setCustomValidity]: dart.fnType(dart.void, [core.String]),
    [S$1.$setRangeText]: dart.fnType(dart.void, [core.String], {end: dart.nullable(core.int), selectionMode: dart.nullable(core.String), start: dart.nullable(core.int)}, {}),
    [S$1.$setSelectionRange]: dart.fnType(dart.void, [core.int, core.int], [dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.TextAreaElement, () => ({
    __proto__: dart.getGetters(html$.TextAreaElement.__proto__),
    [S$1.$autocapitalize]: dart.nullable(core.String),
    [S$.$autofocus]: core.bool,
    [S$2.$cols]: core.int,
    [S$1.$defaultValue]: dart.nullable(core.String),
    [S$1.$dirName]: dart.nullable(core.String),
    [S$.$disabled]: core.bool,
    [S$.$form]: dart.nullable(html$.FormElement),
    [S$.$labels]: dart.nullable(core.List$(html$.Node)),
    [S$1.$maxLength]: core.int,
    [S$1.$minLength]: core.int,
    [$name]: core.String,
    [S$.$placeholder]: core.String,
    [S$.$readOnly]: core.bool,
    [S$.$required]: core.bool,
    [S$2.$rows]: core.int,
    [S$1.$selectionDirection]: dart.nullable(core.String),
    [S$1.$selectionEnd]: dart.nullable(core.int),
    [S$1.$selectionStart]: dart.nullable(core.int),
    [S$2.$textLength]: dart.nullable(core.int),
    [S.$type]: dart.nullable(core.String),
    [S$.$validationMessage]: dart.nullable(core.String),
    [S$.$validity]: dart.nullable(html$.ValidityState),
    [S.$value]: dart.nullable(core.String),
    [S$.$willValidate]: dart.nullable(core.bool),
    [S$2.$wrap]: core.String
  }));
  dart.setSetterSignature(html$.TextAreaElement, () => ({
    __proto__: dart.getSetters(html$.TextAreaElement.__proto__),
    [S$1.$autocapitalize]: dart.nullable(core.String),
    [S$.$autofocus]: core.bool,
    [S$2.$cols]: core.int,
    [S$1.$defaultValue]: dart.nullable(core.String),
    [S$1.$dirName]: dart.nullable(core.String),
    [S$.$disabled]: core.bool,
    [S$1.$maxLength]: core.int,
    [S$1.$minLength]: core.int,
    [$name]: core.String,
    [S$.$placeholder]: core.String,
    [S$.$readOnly]: core.bool,
    [S$.$required]: core.bool,
    [S$2.$rows]: core.int,
    [S$1.$selectionDirection]: dart.nullable(core.String),
    [S$1.$selectionEnd]: dart.nullable(core.int),
    [S$1.$selectionStart]: dart.nullable(core.int),
    [S.$value]: dart.nullable(core.String),
    [S$2.$wrap]: core.String
  }));
  dart.setLibraryUri(html$.TextAreaElement, I[148]);
  dart.registerExtension("HTMLTextAreaElement", html$.TextAreaElement);
  html$.TextDetector = class TextDetector$ extends _interceptors.Interceptor {
    static new() {
      return html$.TextDetector._create_1();
    }
    static _create_1() {
      return new TextDetector();
    }
    [S$.$detect](image) {
      return js_util.promiseToFuture(core.List, this.detect(image));
    }
  };
  dart.addTypeTests(html$.TextDetector);
  dart.addTypeCaches(html$.TextDetector);
  dart.setMethodSignature(html$.TextDetector, () => ({
    __proto__: dart.getMethods(html$.TextDetector.__proto__),
    [S$.$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
  }));
  dart.setLibraryUri(html$.TextDetector, I[148]);
  dart.registerExtension("TextDetector", html$.TextDetector);
  html$.TextEvent = class TextEvent extends html$.UIEvent {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 29878, 28, "type");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
      if (canBubble == null) dart.nullFailed(I[147], 29879, 13, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
      if (cancelable == null) dart.nullFailed(I[147], 29880, 12, "cancelable");
      let view = opts && 'view' in opts ? opts.view : null;
      let data = opts && 'data' in opts ? opts.data : null;
      if (view == null) {
        view = html$.window;
      }
      let e = html$.TextEvent.as(html$.document[S._createEvent]("TextEvent"));
      e[S$2._initTextEvent](type, canBubble, cancelable, view, data);
      return e;
    }
    get [S$.$data]() {
      return this.data;
    }
    [S$2._initTextEvent](...args) {
      return this.initTextEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.TextEvent);
  dart.addTypeCaches(html$.TextEvent);
  dart.setMethodSignature(html$.TextEvent, () => ({
    __proto__: dart.getMethods(html$.TextEvent.__proto__),
    [S$2._initTextEvent]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(html$.Window), dart.nullable(core.String)])
  }));
  dart.setGetterSignature(html$.TextEvent, () => ({
    __proto__: dart.getGetters(html$.TextEvent.__proto__),
    [S$.$data]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TextEvent, I[148]);
  dart.registerExtension("TextEvent", html$.TextEvent);
  html$.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
    get [S$2.$actualBoundingBoxAscent]() {
      return this.actualBoundingBoxAscent;
    }
    get [S$2.$actualBoundingBoxDescent]() {
      return this.actualBoundingBoxDescent;
    }
    get [S$2.$actualBoundingBoxLeft]() {
      return this.actualBoundingBoxLeft;
    }
    get [S$2.$actualBoundingBoxRight]() {
      return this.actualBoundingBoxRight;
    }
    get [S$2.$alphabeticBaseline]() {
      return this.alphabeticBaseline;
    }
    get [S$2.$emHeightAscent]() {
      return this.emHeightAscent;
    }
    get [S$2.$emHeightDescent]() {
      return this.emHeightDescent;
    }
    get [S$2.$fontBoundingBoxAscent]() {
      return this.fontBoundingBoxAscent;
    }
    get [S$2.$fontBoundingBoxDescent]() {
      return this.fontBoundingBoxDescent;
    }
    get [S$2.$hangingBaseline]() {
      return this.hangingBaseline;
    }
    get [S$2.$ideographicBaseline]() {
      return this.ideographicBaseline;
    }
    get [$width]() {
      return this.width;
    }
  };
  dart.addTypeTests(html$.TextMetrics);
  dart.addTypeCaches(html$.TextMetrics);
  dart.setGetterSignature(html$.TextMetrics, () => ({
    __proto__: dart.getGetters(html$.TextMetrics.__proto__),
    [S$2.$actualBoundingBoxAscent]: dart.nullable(core.num),
    [S$2.$actualBoundingBoxDescent]: dart.nullable(core.num),
    [S$2.$actualBoundingBoxLeft]: dart.nullable(core.num),
    [S$2.$actualBoundingBoxRight]: dart.nullable(core.num),
    [S$2.$alphabeticBaseline]: dart.nullable(core.num),
    [S$2.$emHeightAscent]: dart.nullable(core.num),
    [S$2.$emHeightDescent]: dart.nullable(core.num),
    [S$2.$fontBoundingBoxAscent]: dart.nullable(core.num),
    [S$2.$fontBoundingBoxDescent]: dart.nullable(core.num),
    [S$2.$hangingBaseline]: dart.nullable(core.num),
    [S$2.$ideographicBaseline]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.TextMetrics, I[148]);
  dart.registerExtension("TextMetrics", html$.TextMetrics);
  html$.TextTrack = class TextTrack extends html$.EventTarget {
    get [S$2.$activeCues]() {
      return this.activeCues;
    }
    get [S$2.$cues]() {
      return this.cues;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$1.$language]() {
      return this.language;
    }
    get [S.$mode]() {
      return this.mode;
    }
    set [S.$mode](value) {
      this.mode = value;
    }
    [S$2.$addCue](...args) {
      return this.addCue.apply(this, args);
    }
    [S$2.$removeCue](...args) {
      return this.removeCue.apply(this, args);
    }
    get [S$2.$onCueChange]() {
      return html$.TextTrack.cueChangeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.TextTrack);
  dart.addTypeCaches(html$.TextTrack);
  dart.setMethodSignature(html$.TextTrack, () => ({
    __proto__: dart.getMethods(html$.TextTrack.__proto__),
    [S$2.$addCue]: dart.fnType(dart.void, [html$.TextTrackCue]),
    [S$2.$removeCue]: dart.fnType(dart.void, [html$.TextTrackCue])
  }));
  dart.setGetterSignature(html$.TextTrack, () => ({
    __proto__: dart.getGetters(html$.TextTrack.__proto__),
    [S$2.$activeCues]: dart.nullable(html$.TextTrackCueList),
    [S$2.$cues]: dart.nullable(html$.TextTrackCueList),
    [S.$id]: core.String,
    [S$.$kind]: core.String,
    [S$.$label]: core.String,
    [S$1.$language]: core.String,
    [S.$mode]: dart.nullable(core.String),
    [S$2.$onCueChange]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.TextTrack, () => ({
    __proto__: dart.getSetters(html$.TextTrack.__proto__),
    [S.$mode]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TextTrack, I[148]);
  dart.defineLazy(html$.TextTrack, {
    /*html$.TextTrack.cueChangeEvent*/get cueChangeEvent() {
      return C[383] || CT.C383;
    }
  }, false);
  dart.registerExtension("TextTrack", html$.TextTrack);
  html$.TextTrackCue = class TextTrackCue extends html$.EventTarget {
    get [S$2.$endTime]() {
      return this.endTime;
    }
    set [S$2.$endTime](value) {
      this.endTime = value;
    }
    get [S.$id]() {
      return this.id;
    }
    set [S.$id](value) {
      this.id = value;
    }
    get [S$2.$pauseOnExit]() {
      return this.pauseOnExit;
    }
    set [S$2.$pauseOnExit](value) {
      this.pauseOnExit = value;
    }
    get [S$.$startTime]() {
      return this.startTime;
    }
    set [S$.$startTime](value) {
      this.startTime = value;
    }
    get [S$1.$track]() {
      return this.track;
    }
    get [S$2.$onEnter]() {
      return html$.TextTrackCue.enterEvent.forTarget(this);
    }
    get [S$2.$onExit]() {
      return html$.TextTrackCue.exitEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.TextTrackCue);
  dart.addTypeCaches(html$.TextTrackCue);
  dart.setGetterSignature(html$.TextTrackCue, () => ({
    __proto__: dart.getGetters(html$.TextTrackCue.__proto__),
    [S$2.$endTime]: dart.nullable(core.num),
    [S.$id]: dart.nullable(core.String),
    [S$2.$pauseOnExit]: dart.nullable(core.bool),
    [S$.$startTime]: dart.nullable(core.num),
    [S$1.$track]: dart.nullable(html$.TextTrack),
    [S$2.$onEnter]: async.Stream$(html$.Event),
    [S$2.$onExit]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.TextTrackCue, () => ({
    __proto__: dart.getSetters(html$.TextTrackCue.__proto__),
    [S$2.$endTime]: dart.nullable(core.num),
    [S.$id]: dart.nullable(core.String),
    [S$2.$pauseOnExit]: dart.nullable(core.bool),
    [S$.$startTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.TextTrackCue, I[148]);
  dart.defineLazy(html$.TextTrackCue, {
    /*html$.TextTrackCue.enterEvent*/get enterEvent() {
      return C[384] || CT.C384;
    },
    /*html$.TextTrackCue.exitEvent*/get exitEvent() {
      return C[385] || CT.C385;
    }
  }, false);
  dart.registerExtension("TextTrackCue", html$.TextTrackCue);
  const Interceptor_ListMixin$36$6 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$6.new = function() {
    Interceptor_ListMixin$36$6.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$6.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$6, collection.ListMixin$(html$.TextTrackCue));
  const Interceptor_ImmutableListMixin$36$6 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$6 {};
  (Interceptor_ImmutableListMixin$36$6.new = function() {
    Interceptor_ImmutableListMixin$36$6.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$6.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$6, html$.ImmutableListMixin$(html$.TextTrackCue));
  html$.TextTrackCueList = class TextTrackCueList extends Interceptor_ImmutableListMixin$36$6 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 30047, 32, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 30053, 25, "index");
      html$.TextTrackCue.as(value);
      if (value == null) dart.nullFailed(I[147], 30053, 45, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 30059, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 30087, 30, "index");
      return this[$_get](index);
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$2.$getCueById](...args) {
      return this.getCueById.apply(this, args);
    }
  };
  html$.TextTrackCueList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.TextTrackCueList);
  dart.addTypeCaches(html$.TextTrackCueList);
  html$.TextTrackCueList[dart.implements] = () => [core.List$(html$.TextTrackCue), _js_helper.JavaScriptIndexingBehavior$(html$.TextTrackCue)];
  dart.setMethodSignature(html$.TextTrackCueList, () => ({
    __proto__: dart.getMethods(html$.TextTrackCueList.__proto__),
    [$_get]: dart.fnType(html$.TextTrackCue, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.__getter__]: dart.fnType(html$.TextTrackCue, [core.int]),
    [S$2.$getCueById]: dart.fnType(dart.nullable(html$.TextTrackCue), [core.String])
  }));
  dart.setGetterSignature(html$.TextTrackCueList, () => ({
    __proto__: dart.getGetters(html$.TextTrackCueList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.TextTrackCueList, () => ({
    __proto__: dart.getSetters(html$.TextTrackCueList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.TextTrackCueList, I[148]);
  dart.registerExtension("TextTrackCueList", html$.TextTrackCueList);
  const EventTarget_ListMixin$36$ = class EventTarget_ListMixin extends html$.EventTarget {};
  (EventTarget_ListMixin$36$._created = function() {
    EventTarget_ListMixin$36$.__proto__._created.call(this);
  }).prototype = EventTarget_ListMixin$36$.prototype;
  dart.applyMixin(EventTarget_ListMixin$36$, collection.ListMixin$(html$.TextTrack));
  const EventTarget_ImmutableListMixin$36$ = class EventTarget_ImmutableListMixin extends EventTarget_ListMixin$36$ {};
  (EventTarget_ImmutableListMixin$36$._created = function() {
    EventTarget_ImmutableListMixin$36$.__proto__._created.call(this);
  }).prototype = EventTarget_ImmutableListMixin$36$.prototype;
  dart.applyMixin(EventTarget_ImmutableListMixin$36$, html$.ImmutableListMixin$(html$.TextTrack));
  html$.TextTrackList = class TextTrackList extends EventTarget_ImmutableListMixin$36$ {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 30121, 29, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 30127, 25, "index");
      html$.TextTrack.as(value);
      if (value == null) dart.nullFailed(I[147], 30127, 42, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 30133, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 30161, 27, "index");
      return this[$_get](index);
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$1.$getTrackById](...args) {
      return this.getTrackById.apply(this, args);
    }
    get [S$1.$onAddTrack]() {
      return html$.TextTrackList.addTrackEvent.forTarget(this);
    }
    get [S.$onChange]() {
      return html$.TextTrackList.changeEvent.forTarget(this);
    }
  };
  html$.TextTrackList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.TextTrackList);
  dart.addTypeCaches(html$.TextTrackList);
  html$.TextTrackList[dart.implements] = () => [core.List$(html$.TextTrack), _js_helper.JavaScriptIndexingBehavior$(html$.TextTrack)];
  dart.setMethodSignature(html$.TextTrackList, () => ({
    __proto__: dart.getMethods(html$.TextTrackList.__proto__),
    [$_get]: dart.fnType(html$.TextTrack, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.__getter__]: dart.fnType(html$.TextTrack, [core.int]),
    [S$1.$getTrackById]: dart.fnType(dart.nullable(html$.TextTrack), [core.String])
  }));
  dart.setGetterSignature(html$.TextTrackList, () => ({
    __proto__: dart.getGetters(html$.TextTrackList.__proto__),
    [$length]: core.int,
    [S$1.$onAddTrack]: async.Stream$(html$.TrackEvent),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.TextTrackList, () => ({
    __proto__: dart.getSetters(html$.TextTrackList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.TextTrackList, I[148]);
  dart.defineLazy(html$.TextTrackList, {
    /*html$.TextTrackList.addTrackEvent*/get addTrackEvent() {
      return C[386] || CT.C386;
    },
    /*html$.TextTrackList.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("TextTrackList", html$.TextTrackList);
  html$.TimeElement = class TimeElement extends html$.HtmlElement {
    get [S$1.$dateTime]() {
      return this.dateTime;
    }
    set [S$1.$dateTime](value) {
      this.dateTime = value;
    }
  };
  (html$.TimeElement.created = function() {
    html$.TimeElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TimeElement.prototype;
  dart.addTypeTests(html$.TimeElement);
  dart.addTypeCaches(html$.TimeElement);
  dart.setGetterSignature(html$.TimeElement, () => ({
    __proto__: dart.getGetters(html$.TimeElement.__proto__),
    [S$1.$dateTime]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.TimeElement, () => ({
    __proto__: dart.getSetters(html$.TimeElement.__proto__),
    [S$1.$dateTime]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TimeElement, I[148]);
  dart.registerExtension("HTMLTimeElement", html$.TimeElement);
  html$.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
    get [$length]() {
      return this.length;
    }
    [S$2.$end](...args) {
      return this.end.apply(this, args);
    }
    [S$.$start](...args) {
      return this.start.apply(this, args);
    }
  };
  dart.addTypeTests(html$.TimeRanges);
  dart.addTypeCaches(html$.TimeRanges);
  dart.setMethodSignature(html$.TimeRanges, () => ({
    __proto__: dart.getMethods(html$.TimeRanges.__proto__),
    [S$2.$end]: dart.fnType(core.double, [core.int]),
    [S$.$start]: dart.fnType(core.double, [core.int])
  }));
  dart.setGetterSignature(html$.TimeRanges, () => ({
    __proto__: dart.getGetters(html$.TimeRanges.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.TimeRanges, I[148]);
  dart.registerExtension("TimeRanges", html$.TimeRanges);
  html$.TitleElement = class TitleElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("title");
    }
  };
  (html$.TitleElement.created = function() {
    html$.TitleElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TitleElement.prototype;
  dart.addTypeTests(html$.TitleElement);
  dart.addTypeCaches(html$.TitleElement);
  dart.setLibraryUri(html$.TitleElement, I[148]);
  dart.registerExtension("HTMLTitleElement", html$.TitleElement);
  html$.Touch = class Touch$ extends _interceptors.Interceptor {
    static new(initDict) {
      if (initDict == null) dart.nullFailed(I[147], 30253, 21, "initDict");
      let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
      return html$.Touch._create_1(initDict_1);
    }
    static _create_1(initDict) {
      return new Touch(initDict);
    }
    get [S$1._clientX]() {
      return this.clientX;
    }
    get [S$1._clientY]() {
      return this.clientY;
    }
    get [S$2.$force]() {
      return this.force;
    }
    get [S$2.$identifier]() {
      return this.identifier;
    }
    get [S$1._pageX]() {
      return this.pageX;
    }
    get [S$1._pageY]() {
      return this.pageY;
    }
    get [S$2._radiusX]() {
      return this.radiusX;
    }
    get [S$2._radiusY]() {
      return this.radiusY;
    }
    get [S$1.$region]() {
      return this.region;
    }
    get [S$2.$rotationAngle]() {
      return this.rotationAngle;
    }
    get [S$1._screenX]() {
      return this.screenX;
    }
    get [S$1._screenY]() {
      return this.screenY;
    }
    get [S.$target]() {
      return html$._convertNativeToDart_EventTarget(this[S._get_target]);
    }
    get [S._get_target]() {
      return this.target;
    }
    get [S$2.__clientX]() {
      return this.clientX[$round]();
    }
    get [S$2.__clientY]() {
      return this.clientY[$round]();
    }
    get [S$2.__screenX]() {
      return this.screenX[$round]();
    }
    get [S$2.__screenY]() {
      return this.screenY[$round]();
    }
    get [S$2.__pageX]() {
      return this.pageX[$round]();
    }
    get [S$2.__pageY]() {
      return this.pageY[$round]();
    }
    get [S$2.__radiusX]() {
      return this.radiusX[$round]();
    }
    get [S$2.__radiusY]() {
      return this.radiusY[$round]();
    }
    get [S.$client]() {
      return new (T$0.PointOfnum()).new(this[S$2.__clientX], this[S$2.__clientY]);
    }
    get [S$0.$page]() {
      return new (T$0.PointOfnum()).new(this[S$2.__pageX], this[S$2.__pageY]);
    }
    get [S$1.$screen]() {
      return new (T$0.PointOfnum()).new(this[S$2.__screenX], this[S$2.__screenY]);
    }
    get [S$2.$radiusX]() {
      return this[S$2.__radiusX];
    }
    get [S$2.$radiusY]() {
      return this[S$2.__radiusY];
    }
  };
  dart.addTypeTests(html$.Touch);
  dart.addTypeCaches(html$.Touch);
  dart.setGetterSignature(html$.Touch, () => ({
    __proto__: dart.getGetters(html$.Touch.__proto__),
    [S$1._clientX]: dart.nullable(core.num),
    [S$1._clientY]: dart.nullable(core.num),
    [S$2.$force]: dart.nullable(core.num),
    [S$2.$identifier]: dart.nullable(core.int),
    [S$1._pageX]: dart.nullable(core.num),
    [S$1._pageY]: dart.nullable(core.num),
    [S$2._radiusX]: dart.nullable(core.num),
    [S$2._radiusY]: dart.nullable(core.num),
    [S$1.$region]: dart.nullable(core.String),
    [S$2.$rotationAngle]: dart.nullable(core.num),
    [S$1._screenX]: dart.nullable(core.num),
    [S$1._screenY]: dart.nullable(core.num),
    [S.$target]: dart.nullable(html$.EventTarget),
    [S._get_target]: dart.dynamic,
    [S$2.__clientX]: core.int,
    [S$2.__clientY]: core.int,
    [S$2.__screenX]: core.int,
    [S$2.__screenY]: core.int,
    [S$2.__pageX]: core.int,
    [S$2.__pageY]: core.int,
    [S$2.__radiusX]: core.int,
    [S$2.__radiusY]: core.int,
    [S.$client]: math.Point$(core.num),
    [S$0.$page]: math.Point$(core.num),
    [S$1.$screen]: math.Point$(core.num),
    [S$2.$radiusX]: core.int,
    [S$2.$radiusY]: core.int
  }));
  dart.setLibraryUri(html$.Touch, I[148]);
  dart.registerExtension("Touch", html$.Touch);
  html$.TouchEvent = class TouchEvent$ extends html$.UIEvent {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 30335, 29, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.TouchEvent._create_1(type, eventInitDict_1);
      }
      return html$.TouchEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new TouchEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new TouchEvent(type);
    }
    get [S$1.$altKey]() {
      return this.altKey;
    }
    get [S$2.$changedTouches]() {
      return this.changedTouches;
    }
    get [S$1.$ctrlKey]() {
      return this.ctrlKey;
    }
    get [S$1.$metaKey]() {
      return this.metaKey;
    }
    get [S$1.$shiftKey]() {
      return this.shiftKey;
    }
    get [S$3.$targetTouches]() {
      return this.targetTouches;
    }
    get [S$3.$touches]() {
      return this.touches;
    }
    static get supported() {
      try {
        return html$.TouchEvent.is(html$.TouchEvent.new("touches"));
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
        } else
          throw e;
      }
      return false;
    }
  };
  dart.addTypeTests(html$.TouchEvent);
  dart.addTypeCaches(html$.TouchEvent);
  dart.setGetterSignature(html$.TouchEvent, () => ({
    __proto__: dart.getGetters(html$.TouchEvent.__proto__),
    [S$1.$altKey]: dart.nullable(core.bool),
    [S$2.$changedTouches]: dart.nullable(html$.TouchList),
    [S$1.$ctrlKey]: dart.nullable(core.bool),
    [S$1.$metaKey]: dart.nullable(core.bool),
    [S$1.$shiftKey]: dart.nullable(core.bool),
    [S$3.$targetTouches]: dart.nullable(html$.TouchList),
    [S$3.$touches]: dart.nullable(html$.TouchList)
  }));
  dart.setLibraryUri(html$.TouchEvent, I[148]);
  dart.registerExtension("TouchEvent", html$.TouchEvent);
  const Interceptor_ListMixin$36$7 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$7.new = function() {
    Interceptor_ListMixin$36$7.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$7.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$7, collection.ListMixin$(html$.Touch));
  const Interceptor_ImmutableListMixin$36$7 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$7 {};
  (Interceptor_ImmutableListMixin$36$7.new = function() {
    Interceptor_ImmutableListMixin$36$7.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$7.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$7, html$.ImmutableListMixin$(html$.Touch));
  html$.TouchList = class TouchList extends Interceptor_ImmutableListMixin$36$7 {
    static get supported() {
      return !!document.createTouchList;
    }
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 30390, 25, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 30396, 25, "index");
      html$.Touch.as(value);
      if (value == null) dart.nullFailed(I[147], 30396, 38, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 30402, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 30430, 23, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$.TouchList.prototype[dart.isList] = true;
  dart.addTypeTests(html$.TouchList);
  dart.addTypeCaches(html$.TouchList);
  html$.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Touch), core.List$(html$.Touch)];
  dart.setMethodSignature(html$.TouchList, () => ({
    __proto__: dart.getMethods(html$.TouchList.__proto__),
    [$_get]: dart.fnType(html$.Touch, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.Touch), [core.int])
  }));
  dart.setGetterSignature(html$.TouchList, () => ({
    __proto__: dart.getGetters(html$.TouchList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$.TouchList, () => ({
    __proto__: dart.getSetters(html$.TouchList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$.TouchList, I[148]);
  dart.registerExtension("TouchList", html$.TouchList);
  html$.TrackDefault = class TrackDefault$ extends _interceptors.Interceptor {
    static new(type, language, label, kinds, byteStreamTrackID = null) {
      if (type == null) dart.nullFailed(I[147], 30447, 14, "type");
      if (language == null) dart.nullFailed(I[147], 30447, 27, "language");
      if (label == null) dart.nullFailed(I[147], 30447, 44, "label");
      if (kinds == null) dart.nullFailed(I[147], 30447, 64, "kinds");
      if (byteStreamTrackID != null) {
        let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
        return html$.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
      }
      let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
      return html$.TrackDefault._create_2(type, language, label, kinds_1);
    }
    static _create_1(type, language, label, kinds, byteStreamTrackID) {
      return new TrackDefault(type, language, label, kinds, byteStreamTrackID);
    }
    static _create_2(type, language, label, kinds) {
      return new TrackDefault(type, language, label, kinds);
    }
    get [S$3.$byteStreamTrackID]() {
      return this.byteStreamTrackID;
    }
    get [S$3.$kinds]() {
      return this.kinds;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$1.$language]() {
      return this.language;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(html$.TrackDefault);
  dart.addTypeCaches(html$.TrackDefault);
  dart.setGetterSignature(html$.TrackDefault, () => ({
    __proto__: dart.getGetters(html$.TrackDefault.__proto__),
    [S$3.$byteStreamTrackID]: dart.nullable(core.String),
    [S$3.$kinds]: dart.nullable(core.Object),
    [S$.$label]: dart.nullable(core.String),
    [S$1.$language]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TrackDefault, I[148]);
  dart.registerExtension("TrackDefault", html$.TrackDefault);
  html$.TrackDefaultList = class TrackDefaultList$ extends _interceptors.Interceptor {
    static new(trackDefaults = null) {
      if (trackDefaults != null) {
        return html$.TrackDefaultList._create_1(trackDefaults);
      }
      return html$.TrackDefaultList._create_2();
    }
    static _create_1(trackDefaults) {
      return new TrackDefaultList(trackDefaults);
    }
    static _create_2() {
      return new TrackDefaultList();
    }
    get [$length]() {
      return this.length;
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$.TrackDefaultList);
  dart.addTypeCaches(html$.TrackDefaultList);
  dart.setMethodSignature(html$.TrackDefaultList, () => ({
    __proto__: dart.getMethods(html$.TrackDefaultList.__proto__),
    [S$.$item]: dart.fnType(html$.TrackDefault, [core.int])
  }));
  dart.setGetterSignature(html$.TrackDefaultList, () => ({
    __proto__: dart.getGetters(html$.TrackDefaultList.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.TrackDefaultList, I[148]);
  dart.registerExtension("TrackDefaultList", html$.TrackDefaultList);
  html$.TrackElement = class TrackElement extends html$.HtmlElement {
    static new() {
      return html$.TrackElement.as(html$.document[S.$createElement]("track"));
    }
    static get supported() {
      return html$.Element.isTagSupported("track");
    }
    get [S$1.$defaultValue]() {
      return this.default;
    }
    set [S$1.$defaultValue](value) {
      this.default = value;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    set [S$.$kind](value) {
      this.kind = value;
    }
    get [S$.$label]() {
      return this.label;
    }
    set [S$.$label](value) {
      this.label = value;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$.$src]() {
      return this.src;
    }
    set [S$.$src](value) {
      this.src = value;
    }
    get [S$3.$srclang]() {
      return this.srclang;
    }
    set [S$3.$srclang](value) {
      this.srclang = value;
    }
    get [S$1.$track]() {
      return this.track;
    }
  };
  (html$.TrackElement.created = function() {
    html$.TrackElement.__proto__.created.call(this);
    ;
  }).prototype = html$.TrackElement.prototype;
  dart.addTypeTests(html$.TrackElement);
  dart.addTypeCaches(html$.TrackElement);
  dart.setGetterSignature(html$.TrackElement, () => ({
    __proto__: dart.getGetters(html$.TrackElement.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.bool),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S.$readyState]: dart.nullable(core.int),
    [S$.$src]: dart.nullable(core.String),
    [S$3.$srclang]: dart.nullable(core.String),
    [S$1.$track]: dart.nullable(html$.TextTrack)
  }));
  dart.setSetterSignature(html$.TrackElement, () => ({
    __proto__: dart.getSetters(html$.TrackElement.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.bool),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$.$src]: dart.nullable(core.String),
    [S$3.$srclang]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TrackElement, I[148]);
  dart.defineLazy(html$.TrackElement, {
    /*html$.TrackElement.ERROR*/get ERROR() {
      return 3;
    },
    /*html$.TrackElement.LOADED*/get LOADED() {
      return 2;
    },
    /*html$.TrackElement.LOADING*/get LOADING() {
      return 1;
    },
    /*html$.TrackElement.NONE*/get NONE() {
      return 0;
    }
  }, false);
  dart.registerExtension("HTMLTrackElement", html$.TrackElement);
  html$.TrackEvent = class TrackEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 30576, 29, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.TrackEvent._create_1(type, eventInitDict_1);
      }
      return html$.TrackEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new TrackEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new TrackEvent(type);
    }
    get [S$1.$track]() {
      return this.track;
    }
  };
  dart.addTypeTests(html$.TrackEvent);
  dart.addTypeCaches(html$.TrackEvent);
  dart.setGetterSignature(html$.TrackEvent, () => ({
    __proto__: dart.getGetters(html$.TrackEvent.__proto__),
    [S$1.$track]: dart.nullable(core.Object)
  }));
  dart.setLibraryUri(html$.TrackEvent, I[148]);
  dart.registerExtension("TrackEvent", html$.TrackEvent);
  html$.TransitionEvent = class TransitionEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 30602, 34, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.TransitionEvent._create_1(type, eventInitDict_1);
      }
      return html$.TransitionEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new TransitionEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new TransitionEvent(type);
    }
    get [S$.$elapsedTime]() {
      return this.elapsedTime;
    }
    get [S$3.$propertyName]() {
      return this.propertyName;
    }
    get [S$3.$pseudoElement]() {
      return this.pseudoElement;
    }
  };
  dart.addTypeTests(html$.TransitionEvent);
  dart.addTypeCaches(html$.TransitionEvent);
  dart.setGetterSignature(html$.TransitionEvent, () => ({
    __proto__: dart.getGetters(html$.TransitionEvent.__proto__),
    [S$.$elapsedTime]: dart.nullable(core.num),
    [S$3.$propertyName]: dart.nullable(core.String),
    [S$3.$pseudoElement]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.TransitionEvent, I[148]);
  dart.registerExtension("TransitionEvent", html$.TransitionEvent);
  dart.registerExtension("WebKitTransitionEvent", html$.TransitionEvent);
  html$.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
    static new(root, whatToShow) {
      if (root == null) dart.nullFailed(I[147], 30627, 27, "root");
      if (whatToShow == null) dart.nullFailed(I[147], 30627, 37, "whatToShow");
      return html$.document[S$1._createTreeWalker](root, whatToShow, null);
    }
    get [S$3.$currentNode]() {
      return this.currentNode;
    }
    set [S$3.$currentNode](value) {
      this.currentNode = value;
    }
    get [S$.$filter]() {
      return this.filter;
    }
    get [S$1.$root]() {
      return this.root;
    }
    get [S$2.$whatToShow]() {
      return this.whatToShow;
    }
    [S$.$firstChild](...args) {
      return this.firstChild.apply(this, args);
    }
    [S$.$lastChild](...args) {
      return this.lastChild.apply(this, args);
    }
    [S.$nextNode](...args) {
      return this.nextNode.apply(this, args);
    }
    [S$1.$nextSibling](...args) {
      return this.nextSibling.apply(this, args);
    }
    [S$.$parentNode](...args) {
      return this.parentNode.apply(this, args);
    }
    [S$.$previousNode](...args) {
      return this.previousNode.apply(this, args);
    }
    [S$1.$previousSibling](...args) {
      return this.previousSibling.apply(this, args);
    }
  };
  dart.addTypeTests(html$.TreeWalker);
  dart.addTypeCaches(html$.TreeWalker);
  dart.setMethodSignature(html$.TreeWalker, () => ({
    __proto__: dart.getMethods(html$.TreeWalker.__proto__),
    [S$.$firstChild]: dart.fnType(dart.nullable(html$.Node), []),
    [S$.$lastChild]: dart.fnType(dart.nullable(html$.Node), []),
    [S.$nextNode]: dart.fnType(dart.nullable(html$.Node), []),
    [S$1.$nextSibling]: dart.fnType(dart.nullable(html$.Node), []),
    [S$.$parentNode]: dart.fnType(dart.nullable(html$.Node), []),
    [S$.$previousNode]: dart.fnType(dart.nullable(html$.Node), []),
    [S$1.$previousSibling]: dart.fnType(dart.nullable(html$.Node), [])
  }));
  dart.setGetterSignature(html$.TreeWalker, () => ({
    __proto__: dart.getGetters(html$.TreeWalker.__proto__),
    [S$3.$currentNode]: html$.Node,
    [S$.$filter]: dart.nullable(html$.NodeFilter),
    [S$1.$root]: html$.Node,
    [S$2.$whatToShow]: core.int
  }));
  dart.setSetterSignature(html$.TreeWalker, () => ({
    __proto__: dart.getSetters(html$.TreeWalker.__proto__),
    [S$3.$currentNode]: html$.Node
  }));
  dart.setLibraryUri(html$.TreeWalker, I[148]);
  dart.registerExtension("TreeWalker", html$.TreeWalker);
  html$.TrustedHtml = class TrustedHtml extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.TrustedHtml);
  dart.addTypeCaches(html$.TrustedHtml);
  dart.setLibraryUri(html$.TrustedHtml, I[148]);
  dart.registerExtension("TrustedHTML", html$.TrustedHtml);
  html$.TrustedScriptUrl = class TrustedScriptUrl extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.TrustedScriptUrl);
  dart.addTypeCaches(html$.TrustedScriptUrl);
  dart.setLibraryUri(html$.TrustedScriptUrl, I[148]);
  dart.registerExtension("TrustedScriptURL", html$.TrustedScriptUrl);
  html$.TrustedUrl = class TrustedUrl extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.TrustedUrl);
  dart.addTypeCaches(html$.TrustedUrl);
  dart.setLibraryUri(html$.TrustedUrl, I[148]);
  dart.registerExtension("TrustedURL", html$.TrustedUrl);
  html$.UListElement = class UListElement extends html$.HtmlElement {
    static new() {
      return html$.document.createElement("ul");
    }
  };
  (html$.UListElement.created = function() {
    html$.UListElement.__proto__.created.call(this);
    ;
  }).prototype = html$.UListElement.prototype;
  dart.addTypeTests(html$.UListElement);
  dart.addTypeCaches(html$.UListElement);
  dart.setLibraryUri(html$.UListElement, I[148]);
  dart.registerExtension("HTMLUListElement", html$.UListElement);
  html$.UnderlyingSourceBase = class UnderlyingSourceBase extends _interceptors.Interceptor {
    [S$.$cancel](reason) {
      return js_util.promiseToFuture(dart.dynamic, this.cancel(reason));
    }
    [S$3.$notifyLockAcquired](...args) {
      return this.notifyLockAcquired.apply(this, args);
    }
    [S$3.$notifyLockReleased](...args) {
      return this.notifyLockReleased.apply(this, args);
    }
    [S$3.$pull]() {
      return js_util.promiseToFuture(dart.dynamic, this.pull());
    }
    [S$.$start](stream) {
      if (stream == null) dart.nullFailed(I[147], 30801, 23, "stream");
      return js_util.promiseToFuture(dart.dynamic, this.start(stream));
    }
  };
  dart.addTypeTests(html$.UnderlyingSourceBase);
  dart.addTypeCaches(html$.UnderlyingSourceBase);
  dart.setMethodSignature(html$.UnderlyingSourceBase, () => ({
    __proto__: dart.getMethods(html$.UnderlyingSourceBase.__proto__),
    [S$.$cancel]: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    [S$3.$notifyLockAcquired]: dart.fnType(dart.void, []),
    [S$3.$notifyLockReleased]: dart.fnType(dart.void, []),
    [S$3.$pull]: dart.fnType(async.Future, []),
    [S$.$start]: dart.fnType(async.Future, [core.Object])
  }));
  dart.setLibraryUri(html$.UnderlyingSourceBase, I[148]);
  dart.registerExtension("UnderlyingSourceBase", html$.UnderlyingSourceBase);
  html$.UnknownElement = class UnknownElement extends html$.HtmlElement {};
  (html$.UnknownElement.created = function() {
    html$.UnknownElement.__proto__.created.call(this);
    ;
  }).prototype = html$.UnknownElement.prototype;
  dart.addTypeTests(html$.UnknownElement);
  dart.addTypeCaches(html$.UnknownElement);
  dart.setLibraryUri(html$.UnknownElement, I[148]);
  dart.registerExtension("HTMLUnknownElement", html$.UnknownElement);
  html$.Url = class Url extends _interceptors.Interceptor {
    static createObjectUrl(blob_OR_source_OR_stream) {
      return (self.URL || self.webkitURL).createObjectURL(blob_OR_source_OR_stream);
    }
    static createObjectUrlFromSource(source) {
      if (source == null) dart.nullFailed(I[147], 30832, 55, "source");
      return (self.URL || self.webkitURL).createObjectURL(source);
    }
    static createObjectUrlFromStream(stream) {
      if (stream == null) dart.nullFailed(I[147], 30835, 55, "stream");
      return (self.URL || self.webkitURL).createObjectURL(stream);
    }
    static createObjectUrlFromBlob(blob) {
      if (blob == null) dart.nullFailed(I[147], 30838, 46, "blob");
      return (self.URL || self.webkitURL).createObjectURL(blob);
    }
    static revokeObjectUrl(url) {
      if (url == null) dart.nullFailed(I[147], 30841, 38, "url");
      return (self.URL || self.webkitURL).revokeObjectURL(url);
    }
    [$toString]() {
      return String(this);
    }
    get [S$.$hash]() {
      return this.hash;
    }
    set [S$.$hash](value) {
      this.hash = value;
    }
    get [S$.$host]() {
      return this.host;
    }
    set [S$.$host](value) {
      this.host = value;
    }
    get [S$.$hostname]() {
      return this.hostname;
    }
    set [S$.$hostname](value) {
      this.hostname = value;
    }
    get [S$.$href]() {
      return this.href;
    }
    set [S$.$href](value) {
      this.href = value;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$.$password]() {
      return this.password;
    }
    set [S$.$password](value) {
      this.password = value;
    }
    get [S$.$pathname]() {
      return this.pathname;
    }
    set [S$.$pathname](value) {
      this.pathname = value;
    }
    get [S$.$port]() {
      return this.port;
    }
    set [S$.$port](value) {
      this.port = value;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    set [S$.$protocol](value) {
      this.protocol = value;
    }
    get [S$.$search]() {
      return this.search;
    }
    set [S$.$search](value) {
      this.search = value;
    }
    get [S$3.$searchParams]() {
      return this.searchParams;
    }
    get [S$.$username]() {
      return this.username;
    }
    set [S$.$username](value) {
      this.username = value;
    }
  };
  dart.addTypeTests(html$.Url);
  dart.addTypeCaches(html$.Url);
  dart.setGetterSignature(html$.Url, () => ({
    __proto__: dart.getGetters(html$.Url.__proto__),
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$3.$searchParams]: dart.nullable(html$.UrlSearchParams),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.Url, () => ({
    __proto__: dart.getSetters(html$.Url.__proto__),
    [S$.$hash]: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    [S$.$password]: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String),
    [S$.$username]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Url, I[148]);
  dart.registerExtension("URL", html$.Url);
  html$.UrlSearchParams = class UrlSearchParams extends _interceptors.Interceptor {
    static new(init = null) {
      if (init != null) {
        return html$.UrlSearchParams._create_1(init);
      }
      return html$.UrlSearchParams._create_2();
    }
    static _create_1(init) {
      return new URLSearchParams(init);
    }
    static _create_2() {
      return new URLSearchParams();
    }
    [S.$append](...args) {
      return this.append.apply(this, args);
    }
    [S.$delete](...args) {
      return this.delete.apply(this, args);
    }
    [S.$get](...args) {
      return this.get.apply(this, args);
    }
    [S.$getAll](...args) {
      return this.getAll.apply(this, args);
    }
    [S$.$has](...args) {
      return this.has.apply(this, args);
    }
    [S$.$set](...args) {
      return this.set.apply(this, args);
    }
    [$sort](...args) {
      return this.sort.apply(this, args);
    }
  };
  dart.addTypeTests(html$.UrlSearchParams);
  dart.addTypeCaches(html$.UrlSearchParams);
  dart.setMethodSignature(html$.UrlSearchParams, () => ({
    __proto__: dart.getMethods(html$.UrlSearchParams.__proto__),
    [S.$append]: dart.fnType(dart.void, [core.String, core.String]),
    [S.$delete]: dart.fnType(dart.void, [core.String]),
    [S.$get]: dart.fnType(dart.nullable(core.String), [core.String]),
    [S.$getAll]: dart.fnType(core.List$(core.String), [core.String]),
    [S$.$has]: dart.fnType(core.bool, [core.String]),
    [S$.$set]: dart.fnType(dart.void, [core.String, core.String]),
    [$sort]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(html$.UrlSearchParams, I[148]);
  dart.registerExtension("URLSearchParams", html$.UrlSearchParams);
  html$.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
    get hash() {
      return this.hash;
    }
    get host() {
      return this.host;
    }
    get hostname() {
      return this.hostname;
    }
    get href() {
      return this.href;
    }
    get origin() {
      return this.origin;
    }
    get pathname() {
      return this.pathname;
    }
    get port() {
      return this.port;
    }
    get protocol() {
      return this.protocol;
    }
    get search() {
      return this.search;
    }
  };
  dart.addTypeTests(html$.UrlUtilsReadOnly);
  dart.addTypeCaches(html$.UrlUtilsReadOnly);
  dart.setGetterSignature(html$.UrlUtilsReadOnly, () => ({
    __proto__: dart.getGetters(html$.UrlUtilsReadOnly.__proto__),
    hash: dart.nullable(core.String),
    [S$.$hash]: dart.nullable(core.String),
    host: dart.nullable(core.String),
    [S$.$host]: dart.nullable(core.String),
    hostname: dart.nullable(core.String),
    [S$.$hostname]: dart.nullable(core.String),
    href: dart.nullable(core.String),
    [S$.$href]: dart.nullable(core.String),
    origin: dart.nullable(core.String),
    [S$.$origin]: dart.nullable(core.String),
    pathname: dart.nullable(core.String),
    [S$.$pathname]: dart.nullable(core.String),
    port: dart.nullable(core.String),
    [S$.$port]: dart.nullable(core.String),
    protocol: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    search: dart.nullable(core.String),
    [S$.$search]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.UrlUtilsReadOnly, I[148]);
  dart.defineExtensionAccessors(html$.UrlUtilsReadOnly, [
    'hash',
    'host',
    'hostname',
    'href',
    'origin',
    'pathname',
    'port',
    'protocol',
    'search'
  ]);
  html$.VR = class VR extends html$.EventTarget {
    [S$3.$getDevices]() {
      return js_util.promiseToFuture(dart.dynamic, this.getDevices());
    }
  };
  dart.addTypeTests(html$.VR);
  dart.addTypeCaches(html$.VR);
  dart.setMethodSignature(html$.VR, () => ({
    __proto__: dart.getMethods(html$.VR.__proto__),
    [S$3.$getDevices]: dart.fnType(async.Future, [])
  }));
  dart.setLibraryUri(html$.VR, I[148]);
  dart.registerExtension("VR", html$.VR);
  html$.VRCoordinateSystem = class VRCoordinateSystem extends _interceptors.Interceptor {
    [S$3.$getTransformTo](...args) {
      return this.getTransformTo.apply(this, args);
    }
  };
  dart.addTypeTests(html$.VRCoordinateSystem);
  dart.addTypeCaches(html$.VRCoordinateSystem);
  dart.setMethodSignature(html$.VRCoordinateSystem, () => ({
    __proto__: dart.getMethods(html$.VRCoordinateSystem.__proto__),
    [S$3.$getTransformTo]: dart.fnType(dart.nullable(typed_data.Float32List), [html$.VRCoordinateSystem])
  }));
  dart.setLibraryUri(html$.VRCoordinateSystem, I[148]);
  dart.registerExtension("VRCoordinateSystem", html$.VRCoordinateSystem);
  html$.VRDevice = class VRDevice extends html$.EventTarget {
    get [S$3.$deviceName]() {
      return this.deviceName;
    }
    get [S$3.$isExternal]() {
      return this.isExternal;
    }
    [S$3.$requestSession](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.requestSession(options_dict));
    }
    [S$3.$supportsSession](options = null) {
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.supportsSession(options_dict));
    }
  };
  dart.addTypeTests(html$.VRDevice);
  dart.addTypeCaches(html$.VRDevice);
  dart.setMethodSignature(html$.VRDevice, () => ({
    __proto__: dart.getMethods(html$.VRDevice.__proto__),
    [S$3.$requestSession]: dart.fnType(async.Future, [], [dart.nullable(core.Map)]),
    [S$3.$supportsSession]: dart.fnType(async.Future, [], [dart.nullable(core.Map)])
  }));
  dart.setGetterSignature(html$.VRDevice, () => ({
    __proto__: dart.getGetters(html$.VRDevice.__proto__),
    [S$3.$deviceName]: dart.nullable(core.String),
    [S$3.$isExternal]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.VRDevice, I[148]);
  dart.registerExtension("VRDevice", html$.VRDevice);
  html$.VRDeviceEvent = class VRDeviceEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 31027, 32, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 31027, 42, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.VRDeviceEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new VRDeviceEvent(type, eventInitDict);
    }
    get [S$3.$device]() {
      return this.device;
    }
  };
  dart.addTypeTests(html$.VRDeviceEvent);
  dart.addTypeCaches(html$.VRDeviceEvent);
  dart.setGetterSignature(html$.VRDeviceEvent, () => ({
    __proto__: dart.getGetters(html$.VRDeviceEvent.__proto__),
    [S$3.$device]: dart.nullable(html$.VRDevice)
  }));
  dart.setLibraryUri(html$.VRDeviceEvent, I[148]);
  dart.registerExtension("VRDeviceEvent", html$.VRDeviceEvent);
  html$.VRDisplay = class VRDisplay extends html$.EventTarget {
    get [S$3.$capabilities]() {
      return this.capabilities;
    }
    get [S$3.$depthFar]() {
      return this.depthFar;
    }
    set [S$3.$depthFar](value) {
      this.depthFar = value;
    }
    get [S$3.$depthNear]() {
      return this.depthNear;
    }
    set [S$3.$depthNear](value) {
      this.depthNear = value;
    }
    get [S$1.$displayId]() {
      return this.displayId;
    }
    get [S$3.$displayName]() {
      return this.displayName;
    }
    get [S$3.$isPresenting]() {
      return this.isPresenting;
    }
    get [S$3.$stageParameters]() {
      return this.stageParameters;
    }
    [S$3.$cancelAnimationFrame](...args) {
      return this.cancelAnimationFrame.apply(this, args);
    }
    [S$3.$exitPresent]() {
      return js_util.promiseToFuture(dart.dynamic, this.exitPresent());
    }
    [S$3.$getEyeParameters](...args) {
      return this.getEyeParameters.apply(this, args);
    }
    [S$3.$getFrameData](...args) {
      return this.getFrameData.apply(this, args);
    }
    [S$3.$getLayers](...args) {
      return this.getLayers.apply(this, args);
    }
    [S$3.$requestAnimationFrame](...args) {
      return this.requestAnimationFrame.apply(this, args);
    }
    [S$3.$requestPresent](layers) {
      if (layers == null) dart.nullFailed(I[147], 31077, 35, "layers");
      return js_util.promiseToFuture(dart.dynamic, this.requestPresent(layers));
    }
    [S$3.$submitFrame](...args) {
      return this.submitFrame.apply(this, args);
    }
  };
  dart.addTypeTests(html$.VRDisplay);
  dart.addTypeCaches(html$.VRDisplay);
  dart.setMethodSignature(html$.VRDisplay, () => ({
    __proto__: dart.getMethods(html$.VRDisplay.__proto__),
    [S$3.$cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
    [S$3.$exitPresent]: dart.fnType(async.Future, []),
    [S$3.$getEyeParameters]: dart.fnType(html$.VREyeParameters, [core.String]),
    [S$3.$getFrameData]: dart.fnType(core.bool, [html$.VRFrameData]),
    [S$3.$getLayers]: dart.fnType(core.List$(core.Map), []),
    [S$3.$requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
    [S$3.$requestPresent]: dart.fnType(async.Future, [core.List$(core.Map)]),
    [S$3.$submitFrame]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.VRDisplay, () => ({
    __proto__: dart.getGetters(html$.VRDisplay.__proto__),
    [S$3.$capabilities]: dart.nullable(html$.VRDisplayCapabilities),
    [S$3.$depthFar]: dart.nullable(core.num),
    [S$3.$depthNear]: dart.nullable(core.num),
    [S$1.$displayId]: dart.nullable(core.int),
    [S$3.$displayName]: dart.nullable(core.String),
    [S$3.$isPresenting]: dart.nullable(core.bool),
    [S$3.$stageParameters]: dart.nullable(html$.VRStageParameters)
  }));
  dart.setSetterSignature(html$.VRDisplay, () => ({
    __proto__: dart.getSetters(html$.VRDisplay.__proto__),
    [S$3.$depthFar]: dart.nullable(core.num),
    [S$3.$depthNear]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VRDisplay, I[148]);
  dart.registerExtension("VRDisplay", html$.VRDisplay);
  html$.VRDisplayCapabilities = class VRDisplayCapabilities extends _interceptors.Interceptor {
    get [S$3.$canPresent]() {
      return this.canPresent;
    }
    get [S$3.$hasExternalDisplay]() {
      return this.hasExternalDisplay;
    }
    get [S$1.$hasPosition]() {
      return this.hasPosition;
    }
    get [S$3.$maxLayers]() {
      return this.maxLayers;
    }
  };
  dart.addTypeTests(html$.VRDisplayCapabilities);
  dart.addTypeCaches(html$.VRDisplayCapabilities);
  dart.setGetterSignature(html$.VRDisplayCapabilities, () => ({
    __proto__: dart.getGetters(html$.VRDisplayCapabilities.__proto__),
    [S$3.$canPresent]: dart.nullable(core.bool),
    [S$3.$hasExternalDisplay]: dart.nullable(core.bool),
    [S$1.$hasPosition]: dart.nullable(core.bool),
    [S$3.$maxLayers]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.VRDisplayCapabilities, I[148]);
  dart.registerExtension("VRDisplayCapabilities", html$.VRDisplayCapabilities);
  html$.VRDisplayEvent = class VRDisplayEvent$ extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 31112, 33, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.VRDisplayEvent._create_1(type, eventInitDict_1);
      }
      return html$.VRDisplayEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new VRDisplayEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new VRDisplayEvent(type);
    }
    get [S$0.$display]() {
      return this.display;
    }
    get [S$.$reason]() {
      return this.reason;
    }
  };
  dart.addTypeTests(html$.VRDisplayEvent);
  dart.addTypeCaches(html$.VRDisplayEvent);
  dart.setGetterSignature(html$.VRDisplayEvent, () => ({
    __proto__: dart.getGetters(html$.VRDisplayEvent.__proto__),
    [S$0.$display]: dart.nullable(html$.VRDisplay),
    [S$.$reason]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.VRDisplayEvent, I[148]);
  dart.registerExtension("VRDisplayEvent", html$.VRDisplayEvent);
  html$.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
    get [S.$offset]() {
      return this.offset;
    }
    get [S$3.$renderHeight]() {
      return this.renderHeight;
    }
    get [S$3.$renderWidth]() {
      return this.renderWidth;
    }
  };
  dart.addTypeTests(html$.VREyeParameters);
  dart.addTypeCaches(html$.VREyeParameters);
  dart.setGetterSignature(html$.VREyeParameters, () => ({
    __proto__: dart.getGetters(html$.VREyeParameters.__proto__),
    [S.$offset]: dart.nullable(typed_data.Float32List),
    [S$3.$renderHeight]: dart.nullable(core.int),
    [S$3.$renderWidth]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.VREyeParameters, I[148]);
  dart.registerExtension("VREyeParameters", html$.VREyeParameters);
  html$.VRFrameData = class VRFrameData$ extends _interceptors.Interceptor {
    static new() {
      return html$.VRFrameData._create_1();
    }
    static _create_1() {
      return new VRFrameData();
    }
    get [S$3.$leftProjectionMatrix]() {
      return this.leftProjectionMatrix;
    }
    get [S$3.$leftViewMatrix]() {
      return this.leftViewMatrix;
    }
    get [S$1.$pose]() {
      return this.pose;
    }
    get [S$3.$rightProjectionMatrix]() {
      return this.rightProjectionMatrix;
    }
    get [S$3.$rightViewMatrix]() {
      return this.rightViewMatrix;
    }
  };
  dart.addTypeTests(html$.VRFrameData);
  dart.addTypeCaches(html$.VRFrameData);
  dart.setGetterSignature(html$.VRFrameData, () => ({
    __proto__: dart.getGetters(html$.VRFrameData.__proto__),
    [S$3.$leftProjectionMatrix]: dart.nullable(typed_data.Float32List),
    [S$3.$leftViewMatrix]: dart.nullable(typed_data.Float32List),
    [S$1.$pose]: dart.nullable(html$.VRPose),
    [S$3.$rightProjectionMatrix]: dart.nullable(typed_data.Float32List),
    [S$3.$rightViewMatrix]: dart.nullable(typed_data.Float32List)
  }));
  dart.setLibraryUri(html$.VRFrameData, I[148]);
  dart.registerExtension("VRFrameData", html$.VRFrameData);
  html$.VRFrameOfReference = class VRFrameOfReference extends html$.VRCoordinateSystem {
    get [S$3.$bounds]() {
      return this.bounds;
    }
    get [S$3.$emulatedHeight]() {
      return this.emulatedHeight;
    }
  };
  dart.addTypeTests(html$.VRFrameOfReference);
  dart.addTypeCaches(html$.VRFrameOfReference);
  dart.setGetterSignature(html$.VRFrameOfReference, () => ({
    __proto__: dart.getGetters(html$.VRFrameOfReference.__proto__),
    [S$3.$bounds]: dart.nullable(html$.VRStageBounds),
    [S$3.$emulatedHeight]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VRFrameOfReference, I[148]);
  dart.registerExtension("VRFrameOfReference", html$.VRFrameOfReference);
  html$.VRPose = class VRPose extends _interceptors.Interceptor {
    get [S$1.$angularAcceleration]() {
      return this.angularAcceleration;
    }
    get [S$1.$angularVelocity]() {
      return this.angularVelocity;
    }
    get [S$1.$linearAcceleration]() {
      return this.linearAcceleration;
    }
    get [S$1.$linearVelocity]() {
      return this.linearVelocity;
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    get [S$0.$position]() {
      return this.position;
    }
  };
  dart.addTypeTests(html$.VRPose);
  dart.addTypeCaches(html$.VRPose);
  dart.setGetterSignature(html$.VRPose, () => ({
    __proto__: dart.getGetters(html$.VRPose.__proto__),
    [S$1.$angularAcceleration]: dart.nullable(typed_data.Float32List),
    [S$1.$angularVelocity]: dart.nullable(typed_data.Float32List),
    [S$1.$linearAcceleration]: dart.nullable(typed_data.Float32List),
    [S$1.$linearVelocity]: dart.nullable(typed_data.Float32List),
    [S$.$orientation]: dart.nullable(typed_data.Float32List),
    [S$0.$position]: dart.nullable(typed_data.Float32List)
  }));
  dart.setLibraryUri(html$.VRPose, I[148]);
  dart.registerExtension("VRPose", html$.VRPose);
  html$.VRSession = class VRSession extends html$.EventTarget {
    get [S$3.$depthFar]() {
      return this.depthFar;
    }
    set [S$3.$depthFar](value) {
      this.depthFar = value;
    }
    get [S$3.$depthNear]() {
      return this.depthNear;
    }
    set [S$3.$depthNear](value) {
      this.depthNear = value;
    }
    get [S$3.$device]() {
      return this.device;
    }
    get [S$3.$exclusive]() {
      return this.exclusive;
    }
    [S$2.$end]() {
      return js_util.promiseToFuture(dart.dynamic, this.end());
    }
    [S$3.$requestFrameOfReference](type, options = null) {
      if (type == null) dart.nullFailed(I[147], 31240, 41, "type");
      let options_dict = null;
      if (options != null) {
        options_dict = html_common.convertDartToNative_Dictionary(options);
      }
      return js_util.promiseToFuture(dart.dynamic, this.requestFrameOfReference(type, options_dict));
    }
    get [S.$onBlur]() {
      return html$.VRSession.blurEvent.forTarget(this);
    }
    get [S.$onFocus]() {
      return html$.VRSession.focusEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.VRSession);
  dart.addTypeCaches(html$.VRSession);
  dart.setMethodSignature(html$.VRSession, () => ({
    __proto__: dart.getMethods(html$.VRSession.__proto__),
    [S$2.$end]: dart.fnType(async.Future, []),
    [S$3.$requestFrameOfReference]: dart.fnType(async.Future, [core.String], [dart.nullable(core.Map)])
  }));
  dart.setGetterSignature(html$.VRSession, () => ({
    __proto__: dart.getGetters(html$.VRSession.__proto__),
    [S$3.$depthFar]: dart.nullable(core.num),
    [S$3.$depthNear]: dart.nullable(core.num),
    [S$3.$device]: dart.nullable(html$.VRDevice),
    [S$3.$exclusive]: dart.nullable(core.bool),
    [S.$onBlur]: async.Stream$(html$.Event),
    [S.$onFocus]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.VRSession, () => ({
    __proto__: dart.getSetters(html$.VRSession.__proto__),
    [S$3.$depthFar]: dart.nullable(core.num),
    [S$3.$depthNear]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VRSession, I[148]);
  dart.defineLazy(html$.VRSession, {
    /*html$.VRSession.blurEvent*/get blurEvent() {
      return C[233] || CT.C233;
    },
    /*html$.VRSession.focusEvent*/get focusEvent() {
      return C[252] || CT.C252;
    }
  }, false);
  dart.registerExtension("VRSession", html$.VRSession);
  html$.VRSessionEvent = class VRSessionEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 31264, 33, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 31264, 43, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.VRSessionEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new VRSessionEvent(type, eventInitDict);
    }
    get [S$3.$session]() {
      return this.session;
    }
  };
  dart.addTypeTests(html$.VRSessionEvent);
  dart.addTypeCaches(html$.VRSessionEvent);
  dart.setGetterSignature(html$.VRSessionEvent, () => ({
    __proto__: dart.getGetters(html$.VRSessionEvent.__proto__),
    [S$3.$session]: dart.nullable(html$.VRSession)
  }));
  dart.setLibraryUri(html$.VRSessionEvent, I[148]);
  dart.registerExtension("VRSessionEvent", html$.VRSessionEvent);
  html$.VRStageBounds = class VRStageBounds extends _interceptors.Interceptor {
    get [S$3.$geometry]() {
      return this.geometry;
    }
  };
  dart.addTypeTests(html$.VRStageBounds);
  dart.addTypeCaches(html$.VRStageBounds);
  dart.setGetterSignature(html$.VRStageBounds, () => ({
    __proto__: dart.getGetters(html$.VRStageBounds.__proto__),
    [S$3.$geometry]: dart.nullable(core.List$(html$.VRStageBoundsPoint))
  }));
  dart.setLibraryUri(html$.VRStageBounds, I[148]);
  dart.registerExtension("VRStageBounds", html$.VRStageBounds);
  html$.VRStageBoundsPoint = class VRStageBoundsPoint extends _interceptors.Interceptor {
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  dart.addTypeTests(html$.VRStageBoundsPoint);
  dart.addTypeCaches(html$.VRStageBoundsPoint);
  dart.setGetterSignature(html$.VRStageBoundsPoint, () => ({
    __proto__: dart.getGetters(html$.VRStageBoundsPoint.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$z]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VRStageBoundsPoint, I[148]);
  dart.registerExtension("VRStageBoundsPoint", html$.VRStageBoundsPoint);
  html$.VRStageParameters = class VRStageParameters extends _interceptors.Interceptor {
    get [S$3.$sittingToStandingTransform]() {
      return this.sittingToStandingTransform;
    }
    get [S$3.$sizeX]() {
      return this.sizeX;
    }
    get [S$3.$sizeZ]() {
      return this.sizeZ;
    }
  };
  dart.addTypeTests(html$.VRStageParameters);
  dart.addTypeCaches(html$.VRStageParameters);
  dart.setGetterSignature(html$.VRStageParameters, () => ({
    __proto__: dart.getGetters(html$.VRStageParameters.__proto__),
    [S$3.$sittingToStandingTransform]: dart.nullable(typed_data.Float32List),
    [S$3.$sizeX]: dart.nullable(core.num),
    [S$3.$sizeZ]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VRStageParameters, I[148]);
  dart.registerExtension("VRStageParameters", html$.VRStageParameters);
  html$.ValidityState = class ValidityState extends _interceptors.Interceptor {
    get [S$3.$badInput]() {
      return this.badInput;
    }
    get [S$3.$customError]() {
      return this.customError;
    }
    get [S$3.$patternMismatch]() {
      return this.patternMismatch;
    }
    get [S$3.$rangeOverflow]() {
      return this.rangeOverflow;
    }
    get [S$3.$rangeUnderflow]() {
      return this.rangeUnderflow;
    }
    get [S$3.$stepMismatch]() {
      return this.stepMismatch;
    }
    get [S$3.$tooLong]() {
      return this.tooLong;
    }
    get [S$3.$tooShort]() {
      return this.tooShort;
    }
    get [S$3.$typeMismatch]() {
      return this.typeMismatch;
    }
    get [S$3.$valid]() {
      return this.valid;
    }
    get [S$3.$valueMissing]() {
      return this.valueMissing;
    }
  };
  dart.addTypeTests(html$.ValidityState);
  dart.addTypeCaches(html$.ValidityState);
  dart.setGetterSignature(html$.ValidityState, () => ({
    __proto__: dart.getGetters(html$.ValidityState.__proto__),
    [S$3.$badInput]: dart.nullable(core.bool),
    [S$3.$customError]: dart.nullable(core.bool),
    [S$3.$patternMismatch]: dart.nullable(core.bool),
    [S$3.$rangeOverflow]: dart.nullable(core.bool),
    [S$3.$rangeUnderflow]: dart.nullable(core.bool),
    [S$3.$stepMismatch]: dart.nullable(core.bool),
    [S$3.$tooLong]: dart.nullable(core.bool),
    [S$3.$tooShort]: dart.nullable(core.bool),
    [S$3.$typeMismatch]: dart.nullable(core.bool),
    [S$3.$valid]: dart.nullable(core.bool),
    [S$3.$valueMissing]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.ValidityState, I[148]);
  dart.registerExtension("ValidityState", html$.ValidityState);
  html$.VideoElement = class VideoElement extends html$.MediaElement {
    static new() {
      return html$.document.createElement("video");
    }
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [S$3.$poster]() {
      return this.poster;
    }
    set [S$3.$poster](value) {
      this.poster = value;
    }
    get [S$3.$videoHeight]() {
      return this.videoHeight;
    }
    get [S$3.$videoWidth]() {
      return this.videoWidth;
    }
    get [S$3.$decodedFrameCount]() {
      return this.webkitDecodedFrameCount;
    }
    get [S$3.$droppedFrameCount]() {
      return this.webkitDroppedFrameCount;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    [S$3.$getVideoPlaybackQuality](...args) {
      return this.getVideoPlaybackQuality.apply(this, args);
    }
    [S$3.$enterFullscreen](...args) {
      return this.webkitEnterFullscreen.apply(this, args);
    }
    [S$1.$exitFullscreen](...args) {
      return this.webkitExitFullscreen.apply(this, args);
    }
  };
  (html$.VideoElement.created = function() {
    html$.VideoElement.__proto__.created.call(this);
    ;
  }).prototype = html$.VideoElement.prototype;
  dart.addTypeTests(html$.VideoElement);
  dart.addTypeCaches(html$.VideoElement);
  html$.VideoElement[dart.implements] = () => [html$.CanvasImageSource];
  dart.setMethodSignature(html$.VideoElement, () => ({
    __proto__: dart.getMethods(html$.VideoElement.__proto__),
    [S$3.$getVideoPlaybackQuality]: dart.fnType(html$.VideoPlaybackQuality, []),
    [S$3.$enterFullscreen]: dart.fnType(dart.void, []),
    [S$1.$exitFullscreen]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.VideoElement, () => ({
    __proto__: dart.getGetters(html$.VideoElement.__proto__),
    [$height]: core.int,
    [S$3.$poster]: core.String,
    [S$3.$videoHeight]: core.int,
    [S$3.$videoWidth]: core.int,
    [S$3.$decodedFrameCount]: dart.nullable(core.int),
    [S$3.$droppedFrameCount]: dart.nullable(core.int),
    [$width]: core.int
  }));
  dart.setSetterSignature(html$.VideoElement, () => ({
    __proto__: dart.getSetters(html$.VideoElement.__proto__),
    [$height]: core.int,
    [S$3.$poster]: core.String,
    [$width]: core.int
  }));
  dart.setLibraryUri(html$.VideoElement, I[148]);
  dart.registerExtension("HTMLVideoElement", html$.VideoElement);
  html$.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
    get [S$3.$corruptedVideoFrames]() {
      return this.corruptedVideoFrames;
    }
    get [S$3.$creationTime]() {
      return this.creationTime;
    }
    get [S$3.$droppedVideoFrames]() {
      return this.droppedVideoFrames;
    }
    get [S$3.$totalVideoFrames]() {
      return this.totalVideoFrames;
    }
  };
  dart.addTypeTests(html$.VideoPlaybackQuality);
  dart.addTypeCaches(html$.VideoPlaybackQuality);
  dart.setGetterSignature(html$.VideoPlaybackQuality, () => ({
    __proto__: dart.getGetters(html$.VideoPlaybackQuality.__proto__),
    [S$3.$corruptedVideoFrames]: dart.nullable(core.int),
    [S$3.$creationTime]: dart.nullable(core.num),
    [S$3.$droppedVideoFrames]: dart.nullable(core.int),
    [S$3.$totalVideoFrames]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(html$.VideoPlaybackQuality, I[148]);
  dart.registerExtension("VideoPlaybackQuality", html$.VideoPlaybackQuality);
  html$.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
    get [S.$id]() {
      return this.id;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$1.$language]() {
      return this.language;
    }
    get [S$.$selected]() {
      return this.selected;
    }
    set [S$.$selected](value) {
      this.selected = value;
    }
    get [S$3.$sourceBuffer]() {
      return this.sourceBuffer;
    }
  };
  dart.addTypeTests(html$.VideoTrack);
  dart.addTypeCaches(html$.VideoTrack);
  dart.setGetterSignature(html$.VideoTrack, () => ({
    __proto__: dart.getGetters(html$.VideoTrack.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$1.$language]: dart.nullable(core.String),
    [S$.$selected]: dart.nullable(core.bool),
    [S$3.$sourceBuffer]: dart.nullable(html$.SourceBuffer)
  }));
  dart.setSetterSignature(html$.VideoTrack, () => ({
    __proto__: dart.getSetters(html$.VideoTrack.__proto__),
    [S$.$selected]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(html$.VideoTrack, I[148]);
  dart.registerExtension("VideoTrack", html$.VideoTrack);
  html$.VideoTrackList = class VideoTrackList extends html$.EventTarget {
    get [$length]() {
      return this.length;
    }
    get [S$2.$selectedIndex]() {
      return this.selectedIndex;
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$1.$getTrackById](...args) {
      return this.getTrackById.apply(this, args);
    }
    get [S.$onChange]() {
      return html$.VideoTrackList.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.VideoTrackList);
  dart.addTypeCaches(html$.VideoTrackList);
  dart.setMethodSignature(html$.VideoTrackList, () => ({
    __proto__: dart.getMethods(html$.VideoTrackList.__proto__),
    [S$.__getter__]: dart.fnType(html$.VideoTrack, [core.int]),
    [S$1.$getTrackById]: dart.fnType(dart.nullable(html$.VideoTrack), [core.String])
  }));
  dart.setGetterSignature(html$.VideoTrackList, () => ({
    __proto__: dart.getGetters(html$.VideoTrackList.__proto__),
    [$length]: dart.nullable(core.int),
    [S$2.$selectedIndex]: dart.nullable(core.int),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.VideoTrackList, I[148]);
  dart.defineLazy(html$.VideoTrackList, {
    /*html$.VideoTrackList.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("VideoTrackList", html$.VideoTrackList);
  html$.VisualViewport = class VisualViewport extends html$.EventTarget {
    get [$height]() {
      return this.height;
    }
    get [S.$offsetLeft]() {
      return this.offsetLeft;
    }
    get [S.$offsetTop]() {
      return this.offsetTop;
    }
    get [S$3.$pageLeft]() {
      return this.pageLeft;
    }
    get [S$3.$pageTop]() {
      return this.pageTop;
    }
    get [S$.$scale]() {
      return this.scale;
    }
    get [$width]() {
      return this.width;
    }
    get [S.$onResize]() {
      return html$.VisualViewport.resizeEvent.forTarget(this);
    }
    get [S.$onScroll]() {
      return html$.VisualViewport.scrollEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.VisualViewport);
  dart.addTypeCaches(html$.VisualViewport);
  dart.setGetterSignature(html$.VisualViewport, () => ({
    __proto__: dart.getGetters(html$.VisualViewport.__proto__),
    [$height]: dart.nullable(core.num),
    [S.$offsetLeft]: dart.nullable(core.num),
    [S.$offsetTop]: dart.nullable(core.num),
    [S$3.$pageLeft]: dart.nullable(core.num),
    [S$3.$pageTop]: dart.nullable(core.num),
    [S$.$scale]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num),
    [S.$onResize]: async.Stream$(html$.Event),
    [S.$onScroll]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.VisualViewport, I[148]);
  dart.defineLazy(html$.VisualViewport, {
    /*html$.VisualViewport.resizeEvent*/get resizeEvent() {
      return C[274] || CT.C274;
    },
    /*html$.VisualViewport.scrollEvent*/get scrollEvent() {
      return C[275] || CT.C275;
    }
  }, false);
  dart.registerExtension("VisualViewport", html$.VisualViewport);
  html$.VttCue = class VttCue extends html$.TextTrackCue {
    static new(startTime, endTime, text) {
      if (startTime == null) dart.nullFailed(I[147], 31533, 22, "startTime");
      if (endTime == null) dart.nullFailed(I[147], 31533, 37, "endTime");
      if (text == null) dart.nullFailed(I[147], 31533, 53, "text");
      return html$.VttCue._create_1(startTime, endTime, text);
    }
    static _create_1(startTime, endTime, text) {
      return new VTTCue(startTime, endTime, text);
    }
    get [S$3.$align]() {
      return this.align;
    }
    set [S$3.$align](value) {
      this.align = value;
    }
    get [S$3.$line]() {
      return this.line;
    }
    set [S$3.$line](value) {
      this.line = value;
    }
    get [S$0.$position]() {
      return this.position;
    }
    set [S$0.$position](value) {
      this.position = value;
    }
    get [S$1.$region]() {
      return this.region;
    }
    set [S$1.$region](value) {
      this.region = value;
    }
    get [S$.$size]() {
      return this.size;
    }
    set [S$.$size](value) {
      this.size = value;
    }
    get [S$3.$snapToLines]() {
      return this.snapToLines;
    }
    set [S$3.$snapToLines](value) {
      this.snapToLines = value;
    }
    get [S.$text]() {
      return this.text;
    }
    set [S.$text](value) {
      this.text = value;
    }
    get [S$3.$vertical]() {
      return this.vertical;
    }
    set [S$3.$vertical](value) {
      this.vertical = value;
    }
    [S$3.$getCueAsHtml](...args) {
      return this.getCueAsHTML.apply(this, args);
    }
  };
  dart.addTypeTests(html$.VttCue);
  dart.addTypeCaches(html$.VttCue);
  dart.setMethodSignature(html$.VttCue, () => ({
    __proto__: dart.getMethods(html$.VttCue.__proto__),
    [S$3.$getCueAsHtml]: dart.fnType(html$.DocumentFragment, [])
  }));
  dart.setGetterSignature(html$.VttCue, () => ({
    __proto__: dart.getGetters(html$.VttCue.__proto__),
    [S$3.$align]: dart.nullable(core.String),
    [S$3.$line]: dart.nullable(core.Object),
    [S$0.$position]: dart.nullable(core.Object),
    [S$1.$region]: dart.nullable(html$.VttRegion),
    [S$.$size]: dart.nullable(core.num),
    [S$3.$snapToLines]: dart.nullable(core.bool),
    [S.$text]: dart.nullable(core.String),
    [S$3.$vertical]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$.VttCue, () => ({
    __proto__: dart.getSetters(html$.VttCue.__proto__),
    [S$3.$align]: dart.nullable(core.String),
    [S$3.$line]: dart.nullable(core.Object),
    [S$0.$position]: dart.nullable(core.Object),
    [S$1.$region]: dart.nullable(html$.VttRegion),
    [S$.$size]: dart.nullable(core.num),
    [S$3.$snapToLines]: dart.nullable(core.bool),
    [S.$text]: dart.nullable(core.String),
    [S$3.$vertical]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.VttCue, I[148]);
  dart.registerExtension("VTTCue", html$.VttCue);
  html$.VttRegion = class VttRegion extends _interceptors.Interceptor {
    static new() {
      return html$.VttRegion._create_1();
    }
    static _create_1() {
      return new VTTRegion();
    }
    get [S.$id]() {
      return this.id;
    }
    set [S.$id](value) {
      this.id = value;
    }
    get [S$3.$lines]() {
      return this.lines;
    }
    set [S$3.$lines](value) {
      this.lines = value;
    }
    get [S$3.$regionAnchorX]() {
      return this.regionAnchorX;
    }
    set [S$3.$regionAnchorX](value) {
      this.regionAnchorX = value;
    }
    get [S$3.$regionAnchorY]() {
      return this.regionAnchorY;
    }
    set [S$3.$regionAnchorY](value) {
      this.regionAnchorY = value;
    }
    get [S.$scroll]() {
      return this.scroll;
    }
    set [S.$scroll](value) {
      this.scroll = value;
    }
    get [S$3.$viewportAnchorX]() {
      return this.viewportAnchorX;
    }
    set [S$3.$viewportAnchorX](value) {
      this.viewportAnchorX = value;
    }
    get [S$3.$viewportAnchorY]() {
      return this.viewportAnchorY;
    }
    set [S$3.$viewportAnchorY](value) {
      this.viewportAnchorY = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
  };
  dart.addTypeTests(html$.VttRegion);
  dart.addTypeCaches(html$.VttRegion);
  dart.setGetterSignature(html$.VttRegion, () => ({
    __proto__: dart.getGetters(html$.VttRegion.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$3.$lines]: dart.nullable(core.int),
    [S$3.$regionAnchorX]: dart.nullable(core.num),
    [S$3.$regionAnchorY]: dart.nullable(core.num),
    [S.$scroll]: dart.nullable(core.String),
    [S$3.$viewportAnchorX]: dart.nullable(core.num),
    [S$3.$viewportAnchorY]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(html$.VttRegion, () => ({
    __proto__: dart.getSetters(html$.VttRegion.__proto__),
    [S.$id]: dart.nullable(core.String),
    [S$3.$lines]: dart.nullable(core.int),
    [S$3.$regionAnchorX]: dart.nullable(core.num),
    [S$3.$regionAnchorY]: dart.nullable(core.num),
    [S.$scroll]: dart.nullable(core.String),
    [S$3.$viewportAnchorX]: dart.nullable(core.num),
    [S$3.$viewportAnchorY]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.VttRegion, I[148]);
  dart.registerExtension("VTTRegion", html$.VttRegion);
  html$.WebSocket = class WebSocket$ extends html$.EventTarget {
    static new(url, protocols = null) {
      if (url == null) dart.nullFailed(I[147], 31712, 28, "url");
      if (protocols != null) {
        return html$.WebSocket._create_1(url, protocols);
      }
      return html$.WebSocket._create_2(url);
    }
    static _create_1(url, protocols) {
      return new WebSocket(url, protocols);
    }
    static _create_2(url) {
      return new WebSocket(url);
    }
    static get supported() {
      return typeof window.WebSocket != "undefined";
    }
    get [S$2.$binaryType]() {
      return this.binaryType;
    }
    set [S$2.$binaryType](value) {
      this.binaryType = value;
    }
    get [S$2.$bufferedAmount]() {
      return this.bufferedAmount;
    }
    get [S$3.$extensions]() {
      return this.extensions;
    }
    get [S$.$protocol]() {
      return this.protocol;
    }
    get [S.$readyState]() {
      return this.readyState;
    }
    get [S$.$url]() {
      return this.url;
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$1.$send](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendBlob](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendByteBuffer](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendString](...args) {
      return this.send.apply(this, args);
    }
    [S$2.$sendTypedData](...args) {
      return this.send.apply(this, args);
    }
    get [S.$onClose]() {
      return html$.WebSocket.closeEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.WebSocket.errorEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.WebSocket.messageEvent.forTarget(this);
    }
    get [S$1.$onOpen]() {
      return html$.WebSocket.openEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.WebSocket);
  dart.addTypeCaches(html$.WebSocket);
  dart.setMethodSignature(html$.WebSocket, () => ({
    __proto__: dart.getMethods(html$.WebSocket.__proto__),
    [S.$close]: dart.fnType(dart.void, [], [dart.nullable(core.int), dart.nullable(core.String)]),
    [S$1.$send]: dart.fnType(dart.void, [dart.dynamic]),
    [S$2.$sendBlob]: dart.fnType(dart.void, [html$.Blob]),
    [S$2.$sendByteBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
    [S$2.$sendString]: dart.fnType(dart.void, [core.String]),
    [S$2.$sendTypedData]: dart.fnType(dart.void, [typed_data.TypedData])
  }));
  dart.setGetterSignature(html$.WebSocket, () => ({
    __proto__: dart.getGetters(html$.WebSocket.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String),
    [S$2.$bufferedAmount]: dart.nullable(core.int),
    [S$3.$extensions]: dart.nullable(core.String),
    [S$.$protocol]: dart.nullable(core.String),
    [S.$readyState]: core.int,
    [S$.$url]: dart.nullable(core.String),
    [S.$onClose]: async.Stream$(html$.CloseEvent),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent),
    [S$1.$onOpen]: async.Stream$(html$.Event)
  }));
  dart.setSetterSignature(html$.WebSocket, () => ({
    __proto__: dart.getSetters(html$.WebSocket.__proto__),
    [S$2.$binaryType]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.WebSocket, I[148]);
  dart.defineLazy(html$.WebSocket, {
    /*html$.WebSocket.closeEvent*/get closeEvent() {
      return C[387] || CT.C387;
    },
    /*html$.WebSocket.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.WebSocket.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.WebSocket.openEvent*/get openEvent() {
      return C[330] || CT.C330;
    },
    /*html$.WebSocket.CLOSED*/get CLOSED() {
      return 3;
    },
    /*html$.WebSocket.CLOSING*/get CLOSING() {
      return 2;
    },
    /*html$.WebSocket.CONNECTING*/get CONNECTING() {
      return 0;
    },
    /*html$.WebSocket.OPEN*/get OPEN() {
      return 1;
    }
  }, false);
  dart.registerExtension("WebSocket", html$.WebSocket);
  html$.WheelEvent = class WheelEvent$ extends html$.MouseEvent {
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 31817, 29, "type");
      let view = opts && 'view' in opts ? opts.view : null;
      let deltaX = opts && 'deltaX' in opts ? opts.deltaX : 0;
      if (deltaX == null) dart.nullFailed(I[147], 31819, 11, "deltaX");
      let deltaY = opts && 'deltaY' in opts ? opts.deltaY : 0;
      if (deltaY == null) dart.nullFailed(I[147], 31820, 11, "deltaY");
      let deltaZ = opts && 'deltaZ' in opts ? opts.deltaZ : 0;
      if (deltaZ == null) dart.nullFailed(I[147], 31821, 11, "deltaZ");
      let deltaMode = opts && 'deltaMode' in opts ? opts.deltaMode : 0;
      if (deltaMode == null) dart.nullFailed(I[147], 31822, 11, "deltaMode");
      let detail = opts && 'detail' in opts ? opts.detail : 0;
      if (detail == null) dart.nullFailed(I[147], 31823, 11, "detail");
      let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
      if (screenX == null) dart.nullFailed(I[147], 31824, 11, "screenX");
      let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
      if (screenY == null) dart.nullFailed(I[147], 31825, 11, "screenY");
      let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
      if (clientX == null) dart.nullFailed(I[147], 31826, 11, "clientX");
      let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
      if (clientY == null) dart.nullFailed(I[147], 31827, 11, "clientY");
      let button = opts && 'button' in opts ? opts.button : 0;
      if (button == null) dart.nullFailed(I[147], 31828, 11, "button");
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 31829, 12, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 31830, 12, "cancelable");
      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
      if (ctrlKey == null) dart.nullFailed(I[147], 31831, 12, "ctrlKey");
      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
      if (altKey == null) dart.nullFailed(I[147], 31832, 12, "altKey");
      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
      if (shiftKey == null) dart.nullFailed(I[147], 31833, 12, "shiftKey");
      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
      if (metaKey == null) dart.nullFailed(I[147], 31834, 12, "metaKey");
      let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
      let options = new (T$.IdentityMapOfString$ObjectN()).from(["view", view, "deltaMode", deltaMode, "deltaX", deltaX, "deltaY", deltaY, "deltaZ", deltaZ, "detail", detail, "screenX", screenX, "screenY", screenY, "clientX", clientX, "clientY", clientY, "button", button, "bubbles", canBubble, "cancelable", cancelable, "ctrlKey", ctrlKey, "altKey", altKey, "shiftKey", shiftKey, "metaKey", metaKey, "relatedTarget", relatedTarget]);
      if (view == null) {
        view = html$.window;
      }
      return new WheelEvent(type, html_common.convertDartToNative_Dictionary(options));
    }
    static __(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 31865, 31, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$.WheelEvent._create_1(type, eventInitDict_1);
      }
      return html$.WheelEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new WheelEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new WheelEvent(type);
    }
    get [S$3._deltaX]() {
      return this.deltaX;
    }
    get [S$3._deltaY]() {
      return this.deltaY;
    }
    get [S$3.$deltaZ]() {
      return this.deltaZ;
    }
    get [S$2.$deltaY]() {
      let value = this.deltaY;
      if (value != null) return value;
      dart.throw(new core.UnsupportedError.new("deltaY is not supported"));
    }
    get [S$2.$deltaX]() {
      let value = this.deltaX;
      if (value != null) return value;
      dart.throw(new core.UnsupportedError.new("deltaX is not supported"));
    }
    get [S$3.$deltaMode]() {
      if (!!this.deltaMode) {
        return this.deltaMode;
      }
      return 0;
    }
    get [S$3._wheelDelta]() {
      return this.wheelDelta;
    }
    get [S$3._wheelDeltaX]() {
      return this.wheelDeltaX;
    }
    get [S$0._detail]() {
      return this.detail;
    }
    get [S$3._hasInitMouseScrollEvent]() {
      return !!this.initMouseScrollEvent;
    }
    [S$3._initMouseScrollEvent](...args) {
      return this.initMouseScrollEvent.apply(this, args);
    }
    get [S$3._hasInitWheelEvent]() {
      return !!this.initWheelEvent;
    }
    [S$3._initWheelEvent](...args) {
      return this.initWheelEvent.apply(this, args);
    }
  };
  dart.addTypeTests(html$.WheelEvent);
  dart.addTypeCaches(html$.WheelEvent);
  dart.setMethodSignature(html$.WheelEvent, () => ({
    __proto__: dart.getMethods(html$.WheelEvent.__proto__),
    [S$3._initMouseScrollEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget, core.int]),
    [S$3._initWheelEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.int, html$.EventTarget, core.String, core.int, core.int, core.int, core.int])
  }));
  dart.setGetterSignature(html$.WheelEvent, () => ({
    __proto__: dart.getGetters(html$.WheelEvent.__proto__),
    [S$3._deltaX]: dart.nullable(core.num),
    [S$3._deltaY]: dart.nullable(core.num),
    [S$3.$deltaZ]: dart.nullable(core.num),
    [S$2.$deltaY]: core.num,
    [S$2.$deltaX]: core.num,
    [S$3.$deltaMode]: core.int,
    [S$3._wheelDelta]: core.num,
    [S$3._wheelDeltaX]: core.num,
    [S$0._detail]: core.num,
    [S$3._hasInitMouseScrollEvent]: core.bool,
    [S$3._hasInitWheelEvent]: core.bool
  }));
  dart.setLibraryUri(html$.WheelEvent, I[148]);
  dart.defineLazy(html$.WheelEvent, {
    /*html$.WheelEvent.DOM_DELTA_LINE*/get DOM_DELTA_LINE() {
      return 1;
    },
    /*html$.WheelEvent.DOM_DELTA_PAGE*/get DOM_DELTA_PAGE() {
      return 2;
    },
    /*html$.WheelEvent.DOM_DELTA_PIXEL*/get DOM_DELTA_PIXEL() {
      return 0;
    }
  }, false);
  dart.registerExtension("WheelEvent", html$.WheelEvent);
  html$.Window = class Window extends html$.EventTarget {
    get [S$3.$animationFrame]() {
      let completer = T$0.CompleterOfnum().sync();
      this[S$3.$requestAnimationFrame](dart.fn(time => {
        if (time == null) dart.nullFailed(I[147], 32037, 28, "time");
        completer.complete(time);
      }, T$0.numTovoid()));
      return completer.future;
    }
    get [S$3.$document]() {
      return this.document;
    }
    [S$3._open2](url, name) {
      return this.open(url, name);
    }
    [S$3._open3](url, name, options) {
      return this.open(url, name, options);
    }
    [S.$open](url, name, options = null) {
      if (url == null) dart.nullFailed(I[147], 32068, 26, "url");
      if (name == null) dart.nullFailed(I[147], 32068, 38, "name");
      if (options == null) {
        return html$._DOMWindowCrossFrame._createSafe(this[S$3._open2](url, name));
      } else {
        return html$._DOMWindowCrossFrame._createSafe(this[S$3._open3](url, name, options));
      }
    }
    get [S$0.$location]() {
      return html$.Location.as(this[S$3._location]);
    }
    set [S$0.$location](value) {
      if (value == null) dart.nullFailed(I[147], 32091, 16, "value");
      this[S$3._location] = value;
    }
    get [S$3._location]() {
      return this.location;
    }
    set [S$3._location](value) {
      this.location = value;
    }
    [S$3.$requestAnimationFrame](callback) {
      if (callback == null) dart.nullFailed(I[147], 32117, 50, "callback");
      this[S$3._ensureRequestAnimationFrame]();
      return this[S$3._requestAnimationFrame](dart.nullCheck(html$._wrapZone(core.num, callback)));
    }
    [S$3.$cancelAnimationFrame](id) {
      if (id == null) dart.nullFailed(I[147], 32130, 33, "id");
      this[S$3._ensureRequestAnimationFrame]();
      this[S$3._cancelAnimationFrame](id);
    }
    [S$3._requestAnimationFrame](...args) {
      return this.requestAnimationFrame.apply(this, args);
    }
    [S$3._cancelAnimationFrame](...args) {
      return this.cancelAnimationFrame.apply(this, args);
    }
    [S$3._ensureRequestAnimationFrame]() {
      if (!!(this.requestAnimationFrame && this.cancelAnimationFrame)) return;
      (function($this) {
        var vendors = ['ms', 'moz', 'webkit', 'o'];
        for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
          $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
          $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFrame'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
        }
        if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
        $this.requestAnimationFrame = function(callback) {
          return window.setTimeout(function() {
            callback(Date.now());
          }, 16);
        };
        $this.cancelAnimationFrame = function(id) {
          clearTimeout(id);
        };
      })(this);
    }
    get [S$0.$indexedDB]() {
      return this.indexedDB || this.webkitIndexedDB || this.mozIndexedDB;
    }
    get [S$2.$console]() {
      return html$.Console._safeConsole;
    }
    [S$3.$requestFileSystem](size, opts) {
      if (size == null) dart.nullFailed(I[147], 32198, 44, "size");
      let persistent = opts && 'persistent' in opts ? opts.persistent : false;
      if (persistent == null) dart.nullFailed(I[147], 32198, 56, "persistent");
      return this[S$3._requestFileSystem](dart.test(persistent) ? 1 : 0, size);
    }
    static get supportsPointConversions() {
      return html$.DomPoint.supported;
    }
    get [S$3.$animationWorklet]() {
      return this.animationWorklet;
    }
    get [S$3.$applicationCache]() {
      return this.applicationCache;
    }
    get [S$3.$audioWorklet]() {
      return this.audioWorklet;
    }
    get [S$0.$caches]() {
      return this.caches;
    }
    get [S$1.$closed]() {
      return this.closed;
    }
    get [S$3.$cookieStore]() {
      return this.cookieStore;
    }
    get [S$0.$crypto]() {
      return this.crypto;
    }
    get [S$3.$customElements]() {
      return this.customElements;
    }
    get [S$3.$defaultStatus]() {
      return this.defaultStatus;
    }
    set [S$3.$defaultStatus](value) {
      this.defaultStatus = value;
    }
    get [S$3.$defaultstatus]() {
      return this.defaultstatus;
    }
    set [S$3.$defaultstatus](value) {
      this.defaultstatus = value;
    }
    get [S$2.$devicePixelRatio]() {
      return this.devicePixelRatio;
    }
    get [S$3.$external]() {
      return this.external;
    }
    get [S$3.$history]() {
      return this.history;
    }
    get [S$3.$innerHeight]() {
      return this.innerHeight;
    }
    get [S$3.$innerWidth]() {
      return this.innerWidth;
    }
    get [S$0.$isSecureContext]() {
      return this.isSecureContext;
    }
    get [S$3.$localStorage]() {
      return this.localStorage;
    }
    get [S$3.$locationbar]() {
      return this.locationbar;
    }
    get [S$3.$menubar]() {
      return this.menubar;
    }
    get [$name]() {
      return this.name;
    }
    set [$name](value) {
      this.name = value;
    }
    get [S$0.$navigator]() {
      return this.navigator;
    }
    get [S$3.$offscreenBuffering]() {
      return this.offscreenBuffering;
    }
    get [S$3.$opener]() {
      return html$._convertNativeToDart_Window(this[S$3._get_opener]);
    }
    get [S$3._get_opener]() {
      return this.opener;
    }
    set [S$3.$opener](value) {
      this.opener = value;
    }
    get [S$.$orientation]() {
      return this.orientation;
    }
    get [S$.$origin]() {
      return this.origin;
    }
    get [S$3.$outerHeight]() {
      return this.outerHeight;
    }
    get [S$3.$outerWidth]() {
      return this.outerWidth;
    }
    get [S$3._pageXOffset]() {
      return this.pageXOffset;
    }
    get [S$3._pageYOffset]() {
      return this.pageYOffset;
    }
    get [S.$parent]() {
      return html$._convertNativeToDart_Window(this[S$3._get_parent]);
    }
    get [S$3._get_parent]() {
      return this.parent;
    }
    get [S$0.$performance]() {
      return this.performance;
    }
    get [S$1.$screen]() {
      return this.screen;
    }
    get [S$3.$screenLeft]() {
      return this.screenLeft;
    }
    get [S$3.$screenTop]() {
      return this.screenTop;
    }
    get [S$3.$screenX]() {
      return this.screenX;
    }
    get [S$3.$screenY]() {
      return this.screenY;
    }
    get [S$3.$scrollbars]() {
      return this.scrollbars;
    }
    get [S$0.$self]() {
      return html$._convertNativeToDart_Window(this[S$3._get_self]);
    }
    get [S$3._get_self]() {
      return this.self;
    }
    get [S$3.$sessionStorage]() {
      return this.sessionStorage;
    }
    get [S$3.$speechSynthesis]() {
      return this.speechSynthesis;
    }
    get [S$.$status]() {
      return this.status;
    }
    set [S$.$status](value) {
      this.status = value;
    }
    get [S$3.$statusbar]() {
      return this.statusbar;
    }
    get [S$3.$styleMedia]() {
      return this.styleMedia;
    }
    get [S$3.$toolbar]() {
      return this.toolbar;
    }
    get [$top]() {
      return html$._convertNativeToDart_Window(this[S$3._get_top]);
    }
    get [S$3._get_top]() {
      return this.top;
    }
    get [S$3.$visualViewport]() {
      return this.visualViewport;
    }
    get [S$0.$window]() {
      return html$._convertNativeToDart_Window(this[S$0._get_window]);
    }
    get [S$0._get_window]() {
      return this.window;
    }
    [S$.__getter__](index_OR_name) {
      if (core.int.is(index_OR_name)) {
        return dart.nullCheck(html$._convertNativeToDart_Window(this[S$3.__getter___1](index_OR_name)));
      }
      if (typeof index_OR_name == 'string') {
        return dart.nullCheck(html$._convertNativeToDart_Window(this[S$3.__getter___2](index_OR_name)));
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$3.__getter___1](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$3.__getter___2](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$3.$alert](...args) {
      return this.alert.apply(this, args);
    }
    [S$3.$cancelIdleCallback](...args) {
      return this.cancelIdleCallback.apply(this, args);
    }
    [S.$close](...args) {
      return this.close.apply(this, args);
    }
    [S$3.$confirm](...args) {
      return this.confirm.apply(this, args);
    }
    [S$.$fetch](input, init = null) {
      let init_dict = null;
      if (init != null) {
        init_dict = html_common.convertDartToNative_Dictionary(init);
      }
      return js_util.promiseToFuture(dart.dynamic, this.fetch(input, init_dict));
    }
    [S$3.$find](...args) {
      return this.find.apply(this, args);
    }
    [S._getComputedStyle](...args) {
      return this.getComputedStyle.apply(this, args);
    }
    [S$3.$getComputedStyleMap](...args) {
      return this.getComputedStyleMap.apply(this, args);
    }
    [S$3.$getMatchedCssRules](...args) {
      return this.getMatchedCSSRules.apply(this, args);
    }
    [S$1.$getSelection](...args) {
      return this.getSelection.apply(this, args);
    }
    [S$3.$matchMedia](...args) {
      return this.matchMedia.apply(this, args);
    }
    [S$3.$moveBy](...args) {
      return this.moveBy.apply(this, args);
    }
    [S$0._moveTo](...args) {
      return this.moveTo.apply(this, args);
    }
    [S$3._openDatabase](...args) {
      return this.openDatabase.apply(this, args);
    }
    [S$.$postMessage](message, targetOrigin, transfer = null) {
      if (targetOrigin == null) dart.nullFailed(I[147], 32972, 44, "targetOrigin");
      if (transfer != null) {
        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
        this[S$0._postMessage_1](message_1, targetOrigin, transfer);
        return;
      }
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[S$0._postMessage_2](message_1, targetOrigin);
      return;
    }
    [S$0._postMessage_1](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._postMessage_2](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$3.$print](...args) {
      return this.print.apply(this, args);
    }
    [S$3.$requestIdleCallback](callback, options = null) {
      if (callback == null) dart.nullFailed(I[147], 32999, 47, "callback");
      if (options != null) {
        let callback_1 = _js_helper.convertDartClosureToJS(T$0.IdleDeadlineTovoid(), callback, 1);
        let options_2 = html_common.convertDartToNative_Dictionary(options);
        return this[S$3._requestIdleCallback_1](callback_1, options_2);
      }
      let callback_1 = _js_helper.convertDartClosureToJS(T$0.IdleDeadlineTovoid(), callback, 1);
      return this[S$3._requestIdleCallback_2](callback_1);
    }
    [S$3._requestIdleCallback_1](...args) {
      return this.requestIdleCallback.apply(this, args);
    }
    [S$3._requestIdleCallback_2](...args) {
      return this.requestIdleCallback.apply(this, args);
    }
    [S$3.$resizeBy](...args) {
      return this.resizeBy.apply(this, args);
    }
    [S$3.$resizeTo](...args) {
      return this.resizeTo.apply(this, args);
    }
    [S.$scroll](options_OR_x = null, y = null, scrollOptions = null) {
      if (options_OR_x == null && y == null && scrollOptions == null) {
        this[S._scroll_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scroll_2](options_1);
        return;
      }
      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
        this[S._scroll_3](options_OR_x, y);
        return;
      }
      if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
        this[S$3._scroll_4](options_OR_x, y);
        return;
      }
      if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
        this[S$3._scroll_5](options_OR_x, y, scrollOptions_1);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scroll_1](...args) {
      return this.scroll.apply(this, args);
    }
    [S._scroll_2](...args) {
      return this.scroll.apply(this, args);
    }
    [S._scroll_3](...args) {
      return this.scroll.apply(this, args);
    }
    [S$3._scroll_4](...args) {
      return this.scroll.apply(this, args);
    }
    [S$3._scroll_5](...args) {
      return this.scroll.apply(this, args);
    }
    [S.$scrollBy](options_OR_x = null, y = null, scrollOptions = null) {
      if (options_OR_x == null && y == null && scrollOptions == null) {
        this[S._scrollBy_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scrollBy_2](options_1);
        return;
      }
      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
        this[S._scrollBy_3](options_OR_x, y);
        return;
      }
      if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
        this[S$3._scrollBy_4](options_OR_x, y);
        return;
      }
      if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
        this[S$3._scrollBy_5](options_OR_x, y, scrollOptions_1);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scrollBy_1](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S._scrollBy_2](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S._scrollBy_3](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S$3._scrollBy_4](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S$3._scrollBy_5](...args) {
      return this.scrollBy.apply(this, args);
    }
    [S.$scrollTo](options_OR_x = null, y = null, scrollOptions = null) {
      if (options_OR_x == null && y == null && scrollOptions == null) {
        this[S._scrollTo_1]();
        return;
      }
      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
        this[S._scrollTo_2](options_1);
        return;
      }
      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
        this[S._scrollTo_3](options_OR_x, y);
        return;
      }
      if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
        this[S$3._scrollTo_4](options_OR_x, y);
        return;
      }
      if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
        this[S$3._scrollTo_5](options_OR_x, y, scrollOptions_1);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S._scrollTo_1](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S._scrollTo_2](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S._scrollTo_3](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S$3._scrollTo_4](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S$3._scrollTo_5](...args) {
      return this.scrollTo.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    [S$3.__requestFileSystem](...args) {
      return this.webkitRequestFileSystem.apply(this, args);
    }
    [S$3._requestFileSystem](type, size) {
      if (type == null) dart.nullFailed(I[147], 33332, 45, "type");
      if (size == null) dart.nullFailed(I[147], 33332, 55, "size");
      let completer = T$0.CompleterOfFileSystem().new();
      this[S$3.__requestFileSystem](type, size, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 33334, 38, "value");
        _js_helper.applyExtension("DOMFileSystem", value);
        _js_helper.applyExtension("DirectoryEntry", value.root);
        completer.complete(value);
      }, T$0.FileSystemTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 33338, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$3._resolveLocalFileSystemUrl](...args) {
      return this.webkitResolveLocalFileSystemURL.apply(this, args);
    }
    [S$3.$resolveLocalFileSystemUrl](url) {
      if (url == null) dart.nullFailed(I[147], 33369, 50, "url");
      let completer = T$0.CompleterOfEntry().new();
      this[S$3._resolveLocalFileSystemUrl](url, dart.fn(value => {
        if (value == null) dart.nullFailed(I[147], 33371, 38, "value");
        completer.complete(value);
      }, T$0.EntryTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[147], 33373, 9, "error");
        completer.completeError(error);
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
    [S$0.$atob](...args) {
      return this.atob.apply(this, args);
    }
    [S$0.$btoa](...args) {
      return this.btoa.apply(this, args);
    }
    [S$0._setInterval_String](...args) {
      return this.setInterval.apply(this, args);
    }
    [S$0._setTimeout_String](...args) {
      return this.setTimeout.apply(this, args);
    }
    [S$0._clearInterval](...args) {
      return this.clearInterval.apply(this, args);
    }
    [S$0._clearTimeout](...args) {
      return this.clearTimeout.apply(this, args);
    }
    [S$0._setInterval](...args) {
      return this.setInterval.apply(this, args);
    }
    [S$0._setTimeout](...args) {
      return this.setTimeout.apply(this, args);
    }
    get [S$3.$onContentLoaded]() {
      return html$.Window.contentLoadedEvent.forTarget(this);
    }
    get [S.$onAbort]() {
      return html$.Element.abortEvent.forTarget(this);
    }
    get [S.$onBlur]() {
      return html$.Element.blurEvent.forTarget(this);
    }
    get [S.$onCanPlay]() {
      return html$.Element.canPlayEvent.forTarget(this);
    }
    get [S.$onCanPlayThrough]() {
      return html$.Element.canPlayThroughEvent.forTarget(this);
    }
    get [S.$onChange]() {
      return html$.Element.changeEvent.forTarget(this);
    }
    get [S.$onClick]() {
      return html$.Element.clickEvent.forTarget(this);
    }
    get [S.$onContextMenu]() {
      return html$.Element.contextMenuEvent.forTarget(this);
    }
    get [S.$onDoubleClick]() {
      return html$.Element.doubleClickEvent.forTarget(this);
    }
    get [S$3.$onDeviceMotion]() {
      return html$.Window.deviceMotionEvent.forTarget(this);
    }
    get [S$3.$onDeviceOrientation]() {
      return html$.Window.deviceOrientationEvent.forTarget(this);
    }
    get [S.$onDrag]() {
      return html$.Element.dragEvent.forTarget(this);
    }
    get [S.$onDragEnd]() {
      return html$.Element.dragEndEvent.forTarget(this);
    }
    get [S.$onDragEnter]() {
      return html$.Element.dragEnterEvent.forTarget(this);
    }
    get [S.$onDragLeave]() {
      return html$.Element.dragLeaveEvent.forTarget(this);
    }
    get [S.$onDragOver]() {
      return html$.Element.dragOverEvent.forTarget(this);
    }
    get [S.$onDragStart]() {
      return html$.Element.dragStartEvent.forTarget(this);
    }
    get [S.$onDrop]() {
      return html$.Element.dropEvent.forTarget(this);
    }
    get [S.$onDurationChange]() {
      return html$.Element.durationChangeEvent.forTarget(this);
    }
    get [S.$onEmptied]() {
      return html$.Element.emptiedEvent.forTarget(this);
    }
    get [S.$onEnded]() {
      return html$.Element.endedEvent.forTarget(this);
    }
    get [S.$onError]() {
      return html$.Element.errorEvent.forTarget(this);
    }
    get [S.$onFocus]() {
      return html$.Element.focusEvent.forTarget(this);
    }
    get [S$.$onHashChange]() {
      return html$.Window.hashChangeEvent.forTarget(this);
    }
    get [S.$onInput]() {
      return html$.Element.inputEvent.forTarget(this);
    }
    get [S.$onInvalid]() {
      return html$.Element.invalidEvent.forTarget(this);
    }
    get [S.$onKeyDown]() {
      return html$.Element.keyDownEvent.forTarget(this);
    }
    get [S.$onKeyPress]() {
      return html$.Element.keyPressEvent.forTarget(this);
    }
    get [S.$onKeyUp]() {
      return html$.Element.keyUpEvent.forTarget(this);
    }
    get [S.$onLoad]() {
      return html$.Element.loadEvent.forTarget(this);
    }
    get [S.$onLoadedData]() {
      return html$.Element.loadedDataEvent.forTarget(this);
    }
    get [S.$onLoadedMetadata]() {
      return html$.Element.loadedMetadataEvent.forTarget(this);
    }
    get [S$1.$onLoadStart]() {
      return html$.Window.loadStartEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.Window.messageEvent.forTarget(this);
    }
    get [S.$onMouseDown]() {
      return html$.Element.mouseDownEvent.forTarget(this);
    }
    get [S.$onMouseEnter]() {
      return html$.Element.mouseEnterEvent.forTarget(this);
    }
    get [S.$onMouseLeave]() {
      return html$.Element.mouseLeaveEvent.forTarget(this);
    }
    get [S.$onMouseMove]() {
      return html$.Element.mouseMoveEvent.forTarget(this);
    }
    get [S.$onMouseOut]() {
      return html$.Element.mouseOutEvent.forTarget(this);
    }
    get [S.$onMouseOver]() {
      return html$.Element.mouseOverEvent.forTarget(this);
    }
    get [S.$onMouseUp]() {
      return html$.Element.mouseUpEvent.forTarget(this);
    }
    get [S.$onMouseWheel]() {
      return html$.Element.mouseWheelEvent.forTarget(this);
    }
    get [S$.$onOffline]() {
      return html$.Window.offlineEvent.forTarget(this);
    }
    get [S$.$onOnline]() {
      return html$.Window.onlineEvent.forTarget(this);
    }
    get [S$3.$onPageHide]() {
      return html$.Window.pageHideEvent.forTarget(this);
    }
    get [S$3.$onPageShow]() {
      return html$.Window.pageShowEvent.forTarget(this);
    }
    get [S.$onPause]() {
      return html$.Element.pauseEvent.forTarget(this);
    }
    get [S.$onPlay]() {
      return html$.Element.playEvent.forTarget(this);
    }
    get [S.$onPlaying]() {
      return html$.Element.playingEvent.forTarget(this);
    }
    get [S$.$onPopState]() {
      return html$.Window.popStateEvent.forTarget(this);
    }
    get [S$.$onProgress]() {
      return html$.Window.progressEvent.forTarget(this);
    }
    get [S.$onRateChange]() {
      return html$.Element.rateChangeEvent.forTarget(this);
    }
    get [S.$onReset]() {
      return html$.Element.resetEvent.forTarget(this);
    }
    get [S.$onResize]() {
      return html$.Element.resizeEvent.forTarget(this);
    }
    get [S.$onScroll]() {
      return html$.Element.scrollEvent.forTarget(this);
    }
    get [S.$onSearch]() {
      return html$.Element.searchEvent.forTarget(this);
    }
    get [S.$onSeeked]() {
      return html$.Element.seekedEvent.forTarget(this);
    }
    get [S.$onSeeking]() {
      return html$.Element.seekingEvent.forTarget(this);
    }
    get [S.$onSelect]() {
      return html$.Element.selectEvent.forTarget(this);
    }
    get [S.$onStalled]() {
      return html$.Element.stalledEvent.forTarget(this);
    }
    get [S$.$onStorage]() {
      return html$.Window.storageEvent.forTarget(this);
    }
    get [S.$onSubmit]() {
      return html$.Element.submitEvent.forTarget(this);
    }
    get [S$.$onSuspend]() {
      return html$.Element.suspendEvent.forTarget(this);
    }
    get [S$.$onTimeUpdate]() {
      return html$.Element.timeUpdateEvent.forTarget(this);
    }
    get [S$.$onTouchCancel]() {
      return html$.Element.touchCancelEvent.forTarget(this);
    }
    get [S$.$onTouchEnd]() {
      return html$.Element.touchEndEvent.forTarget(this);
    }
    get [S$.$onTouchMove]() {
      return html$.Element.touchMoveEvent.forTarget(this);
    }
    get [S$.$onTouchStart]() {
      return html$.Element.touchStartEvent.forTarget(this);
    }
    get [S$.$onTransitionEnd]() {
      return html$.Element.transitionEndEvent.forTarget(this);
    }
    get [S$.$onUnload]() {
      return html$.Window.unloadEvent.forTarget(this);
    }
    get [S$.$onVolumeChange]() {
      return html$.Element.volumeChangeEvent.forTarget(this);
    }
    get [S$.$onWaiting]() {
      return html$.Element.waitingEvent.forTarget(this);
    }
    get [S$3.$onAnimationEnd]() {
      return html$.Window.animationEndEvent.forTarget(this);
    }
    get [S$3.$onAnimationIteration]() {
      return html$.Window.animationIterationEvent.forTarget(this);
    }
    get [S$3.$onAnimationStart]() {
      return html$.Window.animationStartEvent.forTarget(this);
    }
    get [S$3.$onBeforeUnload]() {
      return html$.Window.beforeUnloadEvent.forTarget(this);
    }
    get [S$.$onWheel]() {
      return html$.Element.wheelEvent.forTarget(this);
    }
    [S$.$moveTo](p) {
      if (p == null) dart.nullFailed(I[147], 33655, 21, "p");
      this[S$0._moveTo](p.x[$toInt](), p.y[$toInt]());
    }
    [S$3.$openDatabase](name, version, displayName, estimatedSize, creationCallback = null) {
      if (name == null) dart.nullFailed(I[147], 33664, 14, "name");
      if (version == null) dart.nullFailed(I[147], 33664, 27, "version");
      if (displayName == null) dart.nullFailed(I[147], 33664, 43, "displayName");
      if (estimatedSize == null) dart.nullFailed(I[147], 33664, 60, "estimatedSize");
      let db = null;
      if (creationCallback == null)
        db = this[S$3._openDatabase](name, version, displayName, estimatedSize);
      else
        db = this[S$3._openDatabase](name, version, displayName, estimatedSize, creationCallback);
      _js_helper.applyExtension("Database", db);
      return web_sql.SqlDatabase.as(db);
    }
    get [S$3.$pageXOffset]() {
      return this.pageXOffset[$round]();
    }
    get [S$3.$pageYOffset]() {
      return this.pageYOffset[$round]();
    }
    get [S$3.$scrollX]() {
      return "scrollX" in this ? this.scrollX[$round]() : dart.nullCheck(this[S$3.$document].documentElement)[S.$scrollLeft];
    }
    get [S$3.$scrollY]() {
      return "scrollY" in this ? this.scrollY[$round]() : dart.nullCheck(this[S$3.$document].documentElement)[S.$scrollTop];
    }
  };
  dart.addTypeTests(html$.Window);
  dart.addTypeCaches(html$.Window);
  html$.Window[dart.implements] = () => [html$.WindowEventHandlers, html$.WindowBase, html$.GlobalEventHandlers, html$._WindowTimers, html$.WindowBase64];
  dart.setMethodSignature(html$.Window, () => ({
    __proto__: dart.getMethods(html$.Window.__proto__),
    [S$3._open2]: dart.fnType(dart.nullable(html$.WindowBase), [dart.dynamic, dart.dynamic]),
    [S$3._open3]: dart.fnType(dart.nullable(html$.WindowBase), [dart.dynamic, dart.dynamic, dart.dynamic]),
    [S.$open]: dart.fnType(html$.WindowBase, [core.String, core.String], [dart.nullable(core.String)]),
    [S$3.$requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
    [S$3.$cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
    [S$3._requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
    [S$3._cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
    [S$3._ensureRequestAnimationFrame]: dart.fnType(dart.dynamic, []),
    [S$3.$requestFileSystem]: dart.fnType(async.Future$(html$.FileSystem), [core.int], {persistent: core.bool}, {}),
    [S$.__getter__]: dart.fnType(html$.WindowBase, [dart.dynamic]),
    [S$3.__getter___1]: dart.fnType(dart.dynamic, [core.int]),
    [S$3.__getter___2]: dart.fnType(dart.dynamic, [core.String]),
    [S$3.$alert]: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    [S$3.$cancelIdleCallback]: dart.fnType(dart.void, [core.int]),
    [S.$close]: dart.fnType(dart.void, []),
    [S$3.$confirm]: dart.fnType(core.bool, [], [dart.nullable(core.String)]),
    [S$.$fetch]: dart.fnType(async.Future, [dart.dynamic], [dart.nullable(core.Map)]),
    [S$3.$find]: dart.fnType(core.bool, [dart.nullable(core.String), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool), dart.nullable(core.bool)]),
    [S._getComputedStyle]: dart.fnType(html$.CssStyleDeclaration, [html$.Element], [dart.nullable(core.String)]),
    [S$3.$getComputedStyleMap]: dart.fnType(html$.StylePropertyMapReadonly, [html$.Element, dart.nullable(core.String)]),
    [S$3.$getMatchedCssRules]: dart.fnType(core.List$(html$.CssRule), [dart.nullable(html$.Element), dart.nullable(core.String)]),
    [S$1.$getSelection]: dart.fnType(dart.nullable(html$.Selection), []),
    [S$3.$matchMedia]: dart.fnType(html$.MediaQueryList, [core.String]),
    [S$3.$moveBy]: dart.fnType(dart.void, [core.int, core.int]),
    [S$0._moveTo]: dart.fnType(dart.void, [core.int, core.int]),
    [S$3._openDatabase]: dart.fnType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [dart.nullable(dart.fnType(dart.void, [web_sql.SqlDatabase]))]),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic, core.String], [dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, core.List$(core.Object)]),
    [S$0._postMessage_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
    [S$3.$print]: dart.fnType(dart.void, []),
    [S$3.$requestIdleCallback]: dart.fnType(core.int, [dart.fnType(dart.void, [html$.IdleDeadline])], [dart.nullable(core.Map)]),
    [S$3._requestIdleCallback_1]: dart.fnType(core.int, [dart.dynamic, dart.dynamic]),
    [S$3._requestIdleCallback_2]: dart.fnType(core.int, [dart.dynamic]),
    [S$3.$resizeBy]: dart.fnType(dart.void, [core.int, core.int]),
    [S$3.$resizeTo]: dart.fnType(dart.void, [core.int, core.int]),
    [S.$scroll]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, dart.nullable(core.Map)]),
    [S._scroll_1]: dart.fnType(dart.void, []),
    [S._scroll_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scroll_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.nullable(core.num)]),
    [S$3._scroll_4]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$3._scroll_5]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int), dart.dynamic]),
    [S.$scrollBy]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, dart.nullable(core.Map)]),
    [S._scrollBy_1]: dart.fnType(dart.void, []),
    [S._scrollBy_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scrollBy_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.nullable(core.num)]),
    [S$3._scrollBy_4]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$3._scrollBy_5]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int), dart.dynamic]),
    [S.$scrollTo]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, dart.nullable(core.Map)]),
    [S._scrollTo_1]: dart.fnType(dart.void, []),
    [S._scrollTo_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S._scrollTo_3]: dart.fnType(dart.void, [dart.nullable(core.num), dart.nullable(core.num)]),
    [S$3._scrollTo_4]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$3._scrollTo_5]: dart.fnType(dart.void, [dart.nullable(core.int), dart.nullable(core.int), dart.dynamic]),
    [S$.$stop]: dart.fnType(dart.void, []),
    [S$3.__requestFileSystem]: dart.fnType(dart.void, [core.int, core.int, dart.fnType(dart.void, [html$.FileSystem])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$3._requestFileSystem]: dart.fnType(async.Future$(html$.FileSystem), [core.int, core.int]),
    [S$3._resolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$3.$resolveLocalFileSystemUrl]: dart.fnType(async.Future$(html$.Entry), [core.String]),
    [S$0.$atob]: dart.fnType(core.String, [core.String]),
    [S$0.$btoa]: dart.fnType(core.String, [core.String]),
    [S$0._setInterval_String]: dart.fnType(core.int, [core.String], [dart.nullable(core.int), dart.nullable(core.Object)]),
    [S$0._setTimeout_String]: dart.fnType(core.int, [core.String], [dart.nullable(core.int), dart.nullable(core.Object)]),
    [S$0._clearInterval]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$0._clearTimeout]: dart.fnType(dart.void, [], [dart.nullable(core.int)]),
    [S$0._setInterval]: dart.fnType(core.int, [core.Object], [dart.nullable(core.int)]),
    [S$0._setTimeout]: dart.fnType(core.int, [core.Object], [dart.nullable(core.int)]),
    [S$.$moveTo]: dart.fnType(dart.void, [math.Point$(core.num)]),
    [S$3.$openDatabase]: dart.fnType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [dart.nullable(dart.fnType(dart.void, [web_sql.SqlDatabase]))])
  }));
  dart.setGetterSignature(html$.Window, () => ({
    __proto__: dart.getGetters(html$.Window.__proto__),
    [S$3.$animationFrame]: async.Future$(core.num),
    [S$3.$document]: html$.Document,
    [S$0.$location]: html$.Location,
    [S$3._location]: dart.dynamic,
    [S$0.$indexedDB]: dart.nullable(indexed_db.IdbFactory),
    [S$2.$console]: html$.Console,
    [S$3.$animationWorklet]: dart.nullable(html$._Worklet),
    [S$3.$applicationCache]: dart.nullable(html$.ApplicationCache),
    [S$3.$audioWorklet]: dart.nullable(html$._Worklet),
    [S$0.$caches]: dart.nullable(html$.CacheStorage),
    [S$1.$closed]: dart.nullable(core.bool),
    [S$3.$cookieStore]: dart.nullable(html$.CookieStore),
    [S$0.$crypto]: dart.nullable(html$.Crypto),
    [S$3.$customElements]: dart.nullable(html$.CustomElementRegistry),
    [S$3.$defaultStatus]: dart.nullable(core.String),
    [S$3.$defaultstatus]: dart.nullable(core.String),
    [S$2.$devicePixelRatio]: core.num,
    [S$3.$external]: dart.nullable(html$.External),
    [S$3.$history]: html$.History,
    [S$3.$innerHeight]: dart.nullable(core.int),
    [S$3.$innerWidth]: dart.nullable(core.int),
    [S$0.$isSecureContext]: dart.nullable(core.bool),
    [S$3.$localStorage]: html$.Storage,
    [S$3.$locationbar]: dart.nullable(html$.BarProp),
    [S$3.$menubar]: dart.nullable(html$.BarProp),
    [$name]: dart.nullable(core.String),
    [S$0.$navigator]: html$.Navigator,
    [S$3.$offscreenBuffering]: dart.nullable(core.bool),
    [S$3.$opener]: dart.nullable(html$.WindowBase),
    [S$3._get_opener]: dart.dynamic,
    [S$.$orientation]: dart.nullable(core.int),
    [S$.$origin]: dart.nullable(core.String),
    [S$3.$outerHeight]: core.int,
    [S$3.$outerWidth]: core.int,
    [S$3._pageXOffset]: core.num,
    [S$3._pageYOffset]: core.num,
    [S.$parent]: dart.nullable(html$.WindowBase),
    [S$3._get_parent]: dart.dynamic,
    [S$0.$performance]: html$.Performance,
    [S$1.$screen]: dart.nullable(html$.Screen),
    [S$3.$screenLeft]: dart.nullable(core.int),
    [S$3.$screenTop]: dart.nullable(core.int),
    [S$3.$screenX]: dart.nullable(core.int),
    [S$3.$screenY]: dart.nullable(core.int),
    [S$3.$scrollbars]: dart.nullable(html$.BarProp),
    [S$0.$self]: dart.nullable(html$.WindowBase),
    [S$3._get_self]: dart.dynamic,
    [S$3.$sessionStorage]: html$.Storage,
    [S$3.$speechSynthesis]: dart.nullable(html$.SpeechSynthesis),
    [S$.$status]: dart.nullable(core.String),
    [S$3.$statusbar]: dart.nullable(html$.BarProp),
    [S$3.$styleMedia]: dart.nullable(html$.StyleMedia),
    [S$3.$toolbar]: dart.nullable(html$.BarProp),
    [$top]: dart.nullable(html$.WindowBase),
    [S$3._get_top]: dart.dynamic,
    [S$3.$visualViewport]: dart.nullable(html$.VisualViewport),
    [S$0.$window]: dart.nullable(html$.WindowBase),
    [S$0._get_window]: dart.dynamic,
    [S$3.$onContentLoaded]: async.Stream$(html$.Event),
    [S.$onAbort]: async.Stream$(html$.Event),
    [S.$onBlur]: async.Stream$(html$.Event),
    [S.$onCanPlay]: async.Stream$(html$.Event),
    [S.$onCanPlayThrough]: async.Stream$(html$.Event),
    [S.$onChange]: async.Stream$(html$.Event),
    [S.$onClick]: async.Stream$(html$.MouseEvent),
    [S.$onContextMenu]: async.Stream$(html$.MouseEvent),
    [S.$onDoubleClick]: async.Stream$(html$.Event),
    [S$3.$onDeviceMotion]: async.Stream$(html$.DeviceMotionEvent),
    [S$3.$onDeviceOrientation]: async.Stream$(html$.DeviceOrientationEvent),
    [S.$onDrag]: async.Stream$(html$.MouseEvent),
    [S.$onDragEnd]: async.Stream$(html$.MouseEvent),
    [S.$onDragEnter]: async.Stream$(html$.MouseEvent),
    [S.$onDragLeave]: async.Stream$(html$.MouseEvent),
    [S.$onDragOver]: async.Stream$(html$.MouseEvent),
    [S.$onDragStart]: async.Stream$(html$.MouseEvent),
    [S.$onDrop]: async.Stream$(html$.MouseEvent),
    [S.$onDurationChange]: async.Stream$(html$.Event),
    [S.$onEmptied]: async.Stream$(html$.Event),
    [S.$onEnded]: async.Stream$(html$.Event),
    [S.$onError]: async.Stream$(html$.Event),
    [S.$onFocus]: async.Stream$(html$.Event),
    [S$.$onHashChange]: async.Stream$(html$.Event),
    [S.$onInput]: async.Stream$(html$.Event),
    [S.$onInvalid]: async.Stream$(html$.Event),
    [S.$onKeyDown]: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyPress]: async.Stream$(html$.KeyboardEvent),
    [S.$onKeyUp]: async.Stream$(html$.KeyboardEvent),
    [S.$onLoad]: async.Stream$(html$.Event),
    [S.$onLoadedData]: async.Stream$(html$.Event),
    [S.$onLoadedMetadata]: async.Stream$(html$.Event),
    [S$1.$onLoadStart]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent),
    [S.$onMouseDown]: async.Stream$(html$.MouseEvent),
    [S.$onMouseEnter]: async.Stream$(html$.MouseEvent),
    [S.$onMouseLeave]: async.Stream$(html$.MouseEvent),
    [S.$onMouseMove]: async.Stream$(html$.MouseEvent),
    [S.$onMouseOut]: async.Stream$(html$.MouseEvent),
    [S.$onMouseOver]: async.Stream$(html$.MouseEvent),
    [S.$onMouseUp]: async.Stream$(html$.MouseEvent),
    [S.$onMouseWheel]: async.Stream$(html$.WheelEvent),
    [S$.$onOffline]: async.Stream$(html$.Event),
    [S$.$onOnline]: async.Stream$(html$.Event),
    [S$3.$onPageHide]: async.Stream$(html$.Event),
    [S$3.$onPageShow]: async.Stream$(html$.Event),
    [S.$onPause]: async.Stream$(html$.Event),
    [S.$onPlay]: async.Stream$(html$.Event),
    [S.$onPlaying]: async.Stream$(html$.Event),
    [S$.$onPopState]: async.Stream$(html$.PopStateEvent),
    [S$.$onProgress]: async.Stream$(html$.Event),
    [S.$onRateChange]: async.Stream$(html$.Event),
    [S.$onReset]: async.Stream$(html$.Event),
    [S.$onResize]: async.Stream$(html$.Event),
    [S.$onScroll]: async.Stream$(html$.Event),
    [S.$onSearch]: async.Stream$(html$.Event),
    [S.$onSeeked]: async.Stream$(html$.Event),
    [S.$onSeeking]: async.Stream$(html$.Event),
    [S.$onSelect]: async.Stream$(html$.Event),
    [S.$onStalled]: async.Stream$(html$.Event),
    [S$.$onStorage]: async.Stream$(html$.StorageEvent),
    [S.$onSubmit]: async.Stream$(html$.Event),
    [S$.$onSuspend]: async.Stream$(html$.Event),
    [S$.$onTimeUpdate]: async.Stream$(html$.Event),
    [S$.$onTouchCancel]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchEnd]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchMove]: async.Stream$(html$.TouchEvent),
    [S$.$onTouchStart]: async.Stream$(html$.TouchEvent),
    [S$.$onTransitionEnd]: async.Stream$(html$.TransitionEvent),
    [S$.$onUnload]: async.Stream$(html$.Event),
    [S$.$onVolumeChange]: async.Stream$(html$.Event),
    [S$.$onWaiting]: async.Stream$(html$.Event),
    [S$3.$onAnimationEnd]: async.Stream$(html$.AnimationEvent),
    [S$3.$onAnimationIteration]: async.Stream$(html$.AnimationEvent),
    [S$3.$onAnimationStart]: async.Stream$(html$.AnimationEvent),
    [S$3.$onBeforeUnload]: async.Stream$(html$.Event),
    [S$.$onWheel]: async.Stream$(html$.WheelEvent),
    [S$3.$pageXOffset]: core.int,
    [S$3.$pageYOffset]: core.int,
    [S$3.$scrollX]: core.int,
    [S$3.$scrollY]: core.int
  }));
  dart.setSetterSignature(html$.Window, () => ({
    __proto__: dart.getSetters(html$.Window.__proto__),
    [S$0.$location]: html$.LocationBase,
    [S$3._location]: dart.dynamic,
    [S$3.$defaultStatus]: dart.nullable(core.String),
    [S$3.$defaultstatus]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S$3.$opener]: dart.nullable(html$.WindowBase),
    [S$.$status]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.Window, I[148]);
  dart.defineLazy(html$.Window, {
    /*html$.Window.contentLoadedEvent*/get contentLoadedEvent() {
      return C[388] || CT.C388;
    },
    /*html$.Window.deviceMotionEvent*/get deviceMotionEvent() {
      return C[389] || CT.C389;
    },
    /*html$.Window.deviceOrientationEvent*/get deviceOrientationEvent() {
      return C[390] || CT.C390;
    },
    /*html$.Window.hashChangeEvent*/get hashChangeEvent() {
      return C[311] || CT.C311;
    },
    /*html$.Window.loadStartEvent*/get loadStartEvent() {
      return C[391] || CT.C391;
    },
    /*html$.Window.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.Window.offlineEvent*/get offlineEvent() {
      return C[313] || CT.C313;
    },
    /*html$.Window.onlineEvent*/get onlineEvent() {
      return C[314] || CT.C314;
    },
    /*html$.Window.pageHideEvent*/get pageHideEvent() {
      return C[392] || CT.C392;
    },
    /*html$.Window.pageShowEvent*/get pageShowEvent() {
      return C[393] || CT.C393;
    },
    /*html$.Window.popStateEvent*/get popStateEvent() {
      return C[315] || CT.C315;
    },
    /*html$.Window.progressEvent*/get progressEvent() {
      return C[394] || CT.C394;
    },
    /*html$.Window.storageEvent*/get storageEvent() {
      return C[316] || CT.C316;
    },
    /*html$.Window.unloadEvent*/get unloadEvent() {
      return C[317] || CT.C317;
    },
    /*html$.Window.animationEndEvent*/get animationEndEvent() {
      return C[395] || CT.C395;
    },
    /*html$.Window.animationIterationEvent*/get animationIterationEvent() {
      return C[396] || CT.C396;
    },
    /*html$.Window.animationStartEvent*/get animationStartEvent() {
      return C[397] || CT.C397;
    },
    /*html$.Window.PERSISTENT*/get PERSISTENT() {
      return 1;
    },
    /*html$.Window.TEMPORARY*/get TEMPORARY() {
      return 0;
    },
    /*html$.Window.beforeUnloadEvent*/get beforeUnloadEvent() {
      return C[398] || CT.C398;
    }
  }, false);
  dart.registerExtension("Window", html$.Window);
  dart.registerExtension("DOMWindow", html$.Window);
  html$._WrappedEvent = class _WrappedEvent extends core.Object {
    get wrapped() {
      return this[S$3.wrapped];
    }
    set wrapped(value) {
      super.wrapped = value;
    }
    get bubbles() {
      return dart.nullCheck(this.wrapped.bubbles);
    }
    get cancelable() {
      return dart.nullCheck(this.wrapped.cancelable);
    }
    get composed() {
      return dart.nullCheck(this.wrapped.composed);
    }
    get currentTarget() {
      return this.wrapped[S.$currentTarget];
    }
    get defaultPrevented() {
      return this.wrapped.defaultPrevented;
    }
    get eventPhase() {
      return this.wrapped.eventPhase;
    }
    get isTrusted() {
      return dart.nullCheck(this.wrapped.isTrusted);
    }
    get target() {
      return this.wrapped[S.$target];
    }
    get timeStamp() {
      return dart.nullCast(this.wrapped.timeStamp, core.double);
    }
    get type() {
      return this.wrapped.type;
    }
    [S._initEvent](type, bubbles = null, cancelable = null) {
      if (type == null) dart.nullFailed(I[147], 40721, 26, "type");
      dart.throw(new core.UnsupportedError.new("Cannot initialize this Event."));
    }
    preventDefault() {
      this.wrapped.preventDefault();
    }
    stopImmediatePropagation() {
      this.wrapped.stopImmediatePropagation();
    }
    stopPropagation() {
      this.wrapped.stopPropagation();
    }
    composedPath() {
      return this.wrapped.composedPath();
    }
    get matchingTarget() {
      if (this[S._selector] == null) {
        dart.throw(new core.UnsupportedError.new("Cannot call matchingTarget if this Event did" + " not arise as a result of event delegation."));
      }
      let currentTarget = T$0.ElementN().as(this.currentTarget);
      let target = T$0.ElementN().as(this.target);
      do {
        if (dart.test(dart.nullCheck(target)[S.$matches](dart.nullCheck(this[S._selector])))) return target;
        target = target[S.$parent];
      } while (target != null && !dart.equals(target, dart.nullCheck(currentTarget)[S.$parent]));
      dart.throw(new core.StateError.new("No selector matched for populating matchedTarget."));
    }
    get path() {
      return T$0.ListOfNode().as(this.wrapped[S.$path]);
    }
    get [S._get_currentTarget]() {
      return this.wrapped[S._get_currentTarget];
    }
    get [S._get_target]() {
      return this.wrapped[S._get_target];
    }
  };
  (html$._WrappedEvent.new = function(wrapped) {
    if (wrapped == null) dart.nullFailed(I[147], 40699, 22, "wrapped");
    this[S._selector] = null;
    this[S$3.wrapped] = wrapped;
    ;
  }).prototype = html$._WrappedEvent.prototype;
  dart.addTypeTests(html$._WrappedEvent);
  dart.addTypeCaches(html$._WrappedEvent);
  html$._WrappedEvent[dart.implements] = () => [html$.Event];
  dart.setMethodSignature(html$._WrappedEvent, () => ({
    __proto__: dart.getMethods(html$._WrappedEvent.__proto__),
    [S._initEvent]: dart.fnType(dart.void, [core.String], [dart.nullable(core.bool), dart.nullable(core.bool)]),
    preventDefault: dart.fnType(dart.void, []),
    [S.$preventDefault]: dart.fnType(dart.void, []),
    stopImmediatePropagation: dart.fnType(dart.void, []),
    [S.$stopImmediatePropagation]: dart.fnType(dart.void, []),
    stopPropagation: dart.fnType(dart.void, []),
    [S.$stopPropagation]: dart.fnType(dart.void, []),
    composedPath: dart.fnType(core.List$(html$.EventTarget), []),
    [S.$composedPath]: dart.fnType(core.List$(html$.EventTarget), [])
  }));
  dart.setGetterSignature(html$._WrappedEvent, () => ({
    __proto__: dart.getGetters(html$._WrappedEvent.__proto__),
    bubbles: core.bool,
    [S.$bubbles]: core.bool,
    cancelable: core.bool,
    [S.$cancelable]: core.bool,
    composed: core.bool,
    [S.$composed]: core.bool,
    currentTarget: dart.nullable(html$.EventTarget),
    [S.$currentTarget]: dart.nullable(html$.EventTarget),
    defaultPrevented: core.bool,
    [S.$defaultPrevented]: core.bool,
    eventPhase: core.int,
    [S.$eventPhase]: core.int,
    isTrusted: core.bool,
    [S.$isTrusted]: core.bool,
    target: dart.nullable(html$.EventTarget),
    [S.$target]: dart.nullable(html$.EventTarget),
    timeStamp: core.double,
    [S.$timeStamp]: core.double,
    type: core.String,
    [S.$type]: core.String,
    matchingTarget: html$.Element,
    [S.$matchingTarget]: html$.Element,
    path: core.List$(html$.Node),
    [S.$path]: core.List$(html$.Node),
    [S._get_currentTarget]: dart.dynamic,
    [S._get_target]: dart.dynamic
  }));
  dart.setLibraryUri(html$._WrappedEvent, I[148]);
  dart.setFieldSignature(html$._WrappedEvent, () => ({
    __proto__: dart.getFields(html$._WrappedEvent.__proto__),
    wrapped: dart.finalFieldType(html$.Event),
    [S._selector]: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(html$._WrappedEvent, ['preventDefault', 'stopImmediatePropagation', 'stopPropagation', 'composedPath']);
  dart.defineExtensionAccessors(html$._WrappedEvent, [
    'bubbles',
    'cancelable',
    'composed',
    'currentTarget',
    'defaultPrevented',
    'eventPhase',
    'isTrusted',
    'target',
    'timeStamp',
    'type',
    'matchingTarget',
    'path'
  ]);
  html$._BeforeUnloadEvent = class _BeforeUnloadEvent extends html$._WrappedEvent {
    get returnValue() {
      return this[S$3._returnValue];
    }
    set returnValue(value) {
      this[S$3._returnValue] = dart.nullCheck(value);
      if ("returnValue" in this.wrapped) {
        this.wrapped.returnValue = value;
      }
    }
  };
  (html$._BeforeUnloadEvent.new = function(base) {
    if (base == null) dart.nullFailed(I[147], 33714, 28, "base");
    this[S$3._returnValue] = "";
    html$._BeforeUnloadEvent.__proto__.new.call(this, base);
    ;
  }).prototype = html$._BeforeUnloadEvent.prototype;
  dart.addTypeTests(html$._BeforeUnloadEvent);
  dart.addTypeCaches(html$._BeforeUnloadEvent);
  html$._BeforeUnloadEvent[dart.implements] = () => [html$.BeforeUnloadEvent];
  dart.setGetterSignature(html$._BeforeUnloadEvent, () => ({
    __proto__: dart.getGetters(html$._BeforeUnloadEvent.__proto__),
    returnValue: core.String,
    [S$.$returnValue]: core.String
  }));
  dart.setSetterSignature(html$._BeforeUnloadEvent, () => ({
    __proto__: dart.getSetters(html$._BeforeUnloadEvent.__proto__),
    returnValue: dart.nullable(core.String),
    [S$.$returnValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$._BeforeUnloadEvent, I[148]);
  dart.setFieldSignature(html$._BeforeUnloadEvent, () => ({
    __proto__: dart.getFields(html$._BeforeUnloadEvent.__proto__),
    [S$3._returnValue]: dart.fieldType(core.String)
  }));
  dart.defineExtensionAccessors(html$._BeforeUnloadEvent, ['returnValue']);
  html$._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
    get [S$3._eventType$1]() {
      return this[S$3._eventType];
    }
    set [S$3._eventType$1](value) {
      super[S$3._eventType$1] = value;
    }
    forTarget(e, opts) {
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      if (useCapture == null) dart.nullFailed(I[147], 33738, 13, "useCapture");
      let stream = new (T$0._EventStreamOfBeforeUnloadEvent()).new(e, this[S$3._eventType$1], useCapture);
      let controller = T$0.StreamControllerOfBeforeUnloadEvent().new({sync: true});
      stream.listen(dart.fn(event => {
        if (event == null) dart.nullFailed(I[147], 33743, 20, "event");
        let wrapped = new html$._BeforeUnloadEvent.new(event);
        controller.add(wrapped);
      }, T$0.BeforeUnloadEventTovoid()));
      return controller.stream;
    }
    getEventType(target) {
      if (target == null) dart.nullFailed(I[147], 33751, 35, "target");
      return this[S$3._eventType$1];
    }
    forElement(e, opts) {
      if (e == null) dart.nullFailed(I[147], 33755, 55, "e");
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      if (useCapture == null) dart.nullFailed(I[147], 33756, 13, "useCapture");
      return new (T$0._ElementEventStreamImplOfBeforeUnloadEvent()).new(e, this[S$3._eventType$1], useCapture);
    }
    [S$1._forElementList](e, opts) {
      if (e == null) dart.nullFailed(I[147], 33762, 73, "e");
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      if (useCapture == null) dart.nullFailed(I[147], 33763, 13, "useCapture");
      return new (T$0._ElementListEventStreamImplOfBeforeUnloadEvent()).new(e, this[S$3._eventType$1], useCapture);
    }
  };
  (html$._BeforeUnloadEventStreamProvider.new = function(_eventType) {
    if (_eventType == null) dart.nullFailed(I[147], 33735, 47, "_eventType");
    this[S$3._eventType] = _eventType;
    ;
  }).prototype = html$._BeforeUnloadEventStreamProvider.prototype;
  dart.addTypeTests(html$._BeforeUnloadEventStreamProvider);
  dart.addTypeCaches(html$._BeforeUnloadEventStreamProvider);
  html$._BeforeUnloadEventStreamProvider[dart.implements] = () => [html$.EventStreamProvider$(html$.BeforeUnloadEvent)];
  dart.setMethodSignature(html$._BeforeUnloadEventStreamProvider, () => ({
    __proto__: dart.getMethods(html$._BeforeUnloadEventStreamProvider.__proto__),
    forTarget: dart.fnType(async.Stream$(html$.BeforeUnloadEvent), [dart.nullable(html$.EventTarget)], {useCapture: core.bool}, {}),
    getEventType: dart.fnType(core.String, [html$.EventTarget]),
    forElement: dart.fnType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.Element], {useCapture: core.bool}, {}),
    [S$1._forElementList]: dart.fnType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {})
  }));
  dart.setLibraryUri(html$._BeforeUnloadEventStreamProvider, I[148]);
  dart.setFieldSignature(html$._BeforeUnloadEventStreamProvider, () => ({
    __proto__: dart.getFields(html$._BeforeUnloadEventStreamProvider.__proto__),
    [S$3._eventType$1]: dart.finalFieldType(core.String)
  }));
  html$.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {};
  dart.addTypeTests(html$.WindowBase64);
  dart.addTypeCaches(html$.WindowBase64);
  dart.setLibraryUri(html$.WindowBase64, I[148]);
  html$.WindowClient = class WindowClient extends html$.Client {
    get [S$3.$focused]() {
      return this.focused;
    }
    get [S$1.$visibilityState]() {
      return this.visibilityState;
    }
    [S.$focus]() {
      return js_util.promiseToFuture(html$.WindowClient, this.focus());
    }
    [S$3.$navigate](url) {
      if (url == null) dart.nullFailed(I[147], 33801, 40, "url");
      return js_util.promiseToFuture(html$.WindowClient, this.navigate(url));
    }
  };
  dart.addTypeTests(html$.WindowClient);
  dart.addTypeCaches(html$.WindowClient);
  dart.setMethodSignature(html$.WindowClient, () => ({
    __proto__: dart.getMethods(html$.WindowClient.__proto__),
    [S.$focus]: dart.fnType(async.Future$(html$.WindowClient), []),
    [S$3.$navigate]: dart.fnType(async.Future$(html$.WindowClient), [core.String])
  }));
  dart.setGetterSignature(html$.WindowClient, () => ({
    __proto__: dart.getGetters(html$.WindowClient.__proto__),
    [S$3.$focused]: dart.nullable(core.bool),
    [S$1.$visibilityState]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.WindowClient, I[148]);
  dart.registerExtension("WindowClient", html$.WindowClient);
  html$.WindowEventHandlers = class WindowEventHandlers extends html$.EventTarget {
    get onHashChange() {
      return html$.WindowEventHandlers.hashChangeEvent.forTarget(this);
    }
    get onMessage() {
      return html$.WindowEventHandlers.messageEvent.forTarget(this);
    }
    get onOffline() {
      return html$.WindowEventHandlers.offlineEvent.forTarget(this);
    }
    get onOnline() {
      return html$.WindowEventHandlers.onlineEvent.forTarget(this);
    }
    get onPopState() {
      return html$.WindowEventHandlers.popStateEvent.forTarget(this);
    }
    get onStorage() {
      return html$.WindowEventHandlers.storageEvent.forTarget(this);
    }
    get onUnload() {
      return html$.WindowEventHandlers.unloadEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.WindowEventHandlers);
  dart.addTypeCaches(html$.WindowEventHandlers);
  dart.setGetterSignature(html$.WindowEventHandlers, () => ({
    __proto__: dart.getGetters(html$.WindowEventHandlers.__proto__),
    onHashChange: async.Stream$(html$.Event),
    [S$.$onHashChange]: async.Stream$(html$.Event),
    onMessage: async.Stream$(html$.MessageEvent),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent),
    onOffline: async.Stream$(html$.Event),
    [S$.$onOffline]: async.Stream$(html$.Event),
    onOnline: async.Stream$(html$.Event),
    [S$.$onOnline]: async.Stream$(html$.Event),
    onPopState: async.Stream$(html$.PopStateEvent),
    [S$.$onPopState]: async.Stream$(html$.PopStateEvent),
    onStorage: async.Stream$(html$.StorageEvent),
    [S$.$onStorage]: async.Stream$(html$.StorageEvent),
    onUnload: async.Stream$(html$.Event),
    [S$.$onUnload]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(html$.WindowEventHandlers, I[148]);
  dart.defineExtensionAccessors(html$.WindowEventHandlers, [
    'onHashChange',
    'onMessage',
    'onOffline',
    'onOnline',
    'onPopState',
    'onStorage',
    'onUnload'
  ]);
  dart.defineLazy(html$.WindowEventHandlers, {
    /*html$.WindowEventHandlers.hashChangeEvent*/get hashChangeEvent() {
      return C[311] || CT.C311;
    },
    /*html$.WindowEventHandlers.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    },
    /*html$.WindowEventHandlers.offlineEvent*/get offlineEvent() {
      return C[313] || CT.C313;
    },
    /*html$.WindowEventHandlers.onlineEvent*/get onlineEvent() {
      return C[314] || CT.C314;
    },
    /*html$.WindowEventHandlers.popStateEvent*/get popStateEvent() {
      return C[315] || CT.C315;
    },
    /*html$.WindowEventHandlers.storageEvent*/get storageEvent() {
      return C[316] || CT.C316;
    },
    /*html$.WindowEventHandlers.unloadEvent*/get unloadEvent() {
      return C[317] || CT.C317;
    }
  }, false);
  html$.Worker = class Worker$ extends html$.EventTarget {
    static new(scriptUrl) {
      if (scriptUrl == null) dart.nullFailed(I[147], 33882, 25, "scriptUrl");
      return html$.Worker._create_1(scriptUrl);
    }
    static _create_1(scriptUrl) {
      return new Worker(scriptUrl);
    }
    static get supported() {
      return typeof window.Worker != "undefined";
    }
    [S$.$postMessage](message, transfer = null) {
      if (transfer != null) {
        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
        this[S$0._postMessage_1](message_1, transfer);
        return;
      }
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[S$0._postMessage_2](message_1);
      return;
    }
    [S$0._postMessage_1](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$0._postMessage_2](...args) {
      return this.postMessage.apply(this, args);
    }
    [S$2.$terminate](...args) {
      return this.terminate.apply(this, args);
    }
    get [S.$onError]() {
      return html$.Worker.errorEvent.forTarget(this);
    }
    get [S$.$onMessage]() {
      return html$.Worker.messageEvent.forTarget(this);
    }
  };
  dart.addTypeTests(html$.Worker);
  dart.addTypeCaches(html$.Worker);
  html$.Worker[dart.implements] = () => [html$.AbstractWorker];
  dart.setMethodSignature(html$.Worker, () => ({
    __proto__: dart.getMethods(html$.Worker.__proto__),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic], [dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_1]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(core.List$(core.Object))]),
    [S$0._postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
    [S$2.$terminate]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.Worker, () => ({
    __proto__: dart.getGetters(html$.Worker.__proto__),
    [S.$onError]: async.Stream$(html$.Event),
    [S$.$onMessage]: async.Stream$(html$.MessageEvent)
  }));
  dart.setLibraryUri(html$.Worker, I[148]);
  dart.defineLazy(html$.Worker, {
    /*html$.Worker.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*html$.Worker.messageEvent*/get messageEvent() {
      return C[312] || CT.C312;
    }
  }, false);
  dart.registerExtension("Worker", html$.Worker);
  html$.WorkerPerformance = class WorkerPerformance extends html$.EventTarget {
    get [S$2.$memory]() {
      return this.memory;
    }
    get [S$2.$timeOrigin]() {
      return this.timeOrigin;
    }
    [S$2.$clearMarks](...args) {
      return this.clearMarks.apply(this, args);
    }
    [S$2.$clearMeasures](...args) {
      return this.clearMeasures.apply(this, args);
    }
    [S$2.$clearResourceTimings](...args) {
      return this.clearResourceTimings.apply(this, args);
    }
    [S$2.$getEntries](...args) {
      return this.getEntries.apply(this, args);
    }
    [S$2.$getEntriesByName](...args) {
      return this.getEntriesByName.apply(this, args);
    }
    [S$2.$getEntriesByType](...args) {
      return this.getEntriesByType.apply(this, args);
    }
    [S$2.$mark](...args) {
      return this.mark.apply(this, args);
    }
    [S$2.$measure](...args) {
      return this.measure.apply(this, args);
    }
    [S$2.$now](...args) {
      return this.now.apply(this, args);
    }
    [S$2.$setResourceTimingBufferSize](...args) {
      return this.setResourceTimingBufferSize.apply(this, args);
    }
  };
  dart.addTypeTests(html$.WorkerPerformance);
  dart.addTypeCaches(html$.WorkerPerformance);
  dart.setMethodSignature(html$.WorkerPerformance, () => ({
    __proto__: dart.getMethods(html$.WorkerPerformance.__proto__),
    [S$2.$clearMarks]: dart.fnType(dart.void, [dart.nullable(core.String)]),
    [S$2.$clearMeasures]: dart.fnType(dart.void, [dart.nullable(core.String)]),
    [S$2.$clearResourceTimings]: dart.fnType(dart.void, []),
    [S$2.$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
    [S$2.$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, dart.nullable(core.String)]),
    [S$2.$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String]),
    [S$2.$mark]: dart.fnType(dart.void, [core.String]),
    [S$2.$measure]: dart.fnType(dart.void, [core.String, dart.nullable(core.String), dart.nullable(core.String)]),
    [S$2.$now]: dart.fnType(core.double, []),
    [S$2.$setResourceTimingBufferSize]: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(html$.WorkerPerformance, () => ({
    __proto__: dart.getGetters(html$.WorkerPerformance.__proto__),
    [S$2.$memory]: dart.nullable(html$.MemoryInfo),
    [S$2.$timeOrigin]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$.WorkerPerformance, I[148]);
  dart.registerExtension("WorkerPerformance", html$.WorkerPerformance);
  html$.WorkletAnimation = class WorkletAnimation$ extends _interceptors.Interceptor {
    static new(animatorName, effects, timelines, options) {
      if (animatorName == null) dart.nullFailed(I[147], 34050, 14, "animatorName");
      if (effects == null) dart.nullFailed(I[147], 34051, 36, "effects");
      if (timelines == null) dart.nullFailed(I[147], 34052, 20, "timelines");
      let options_1 = html_common.convertDartToNative_SerializedScriptValue(options);
      return html$.WorkletAnimation._create_1(animatorName, effects, timelines, options_1);
    }
    static _create_1(animatorName, effects, timelines, options) {
      return new WorkletAnimation(animatorName, effects, timelines, options);
    }
    get [S$.$playState]() {
      return this.playState;
    }
    [S$.$cancel](...args) {
      return this.cancel.apply(this, args);
    }
    [S$.$play](...args) {
      return this.play.apply(this, args);
    }
  };
  dart.addTypeTests(html$.WorkletAnimation);
  dart.addTypeCaches(html$.WorkletAnimation);
  dart.setMethodSignature(html$.WorkletAnimation, () => ({
    __proto__: dart.getMethods(html$.WorkletAnimation.__proto__),
    [S$.$cancel]: dart.fnType(dart.void, []),
    [S$.$play]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$.WorkletAnimation, () => ({
    __proto__: dart.getGetters(html$.WorkletAnimation.__proto__),
    [S$.$playState]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.WorkletAnimation, I[148]);
  dart.registerExtension("WorkletAnimation", html$.WorkletAnimation);
  html$.XPathEvaluator = class XPathEvaluator$ extends _interceptors.Interceptor {
    static new() {
      return html$.XPathEvaluator._create_1();
    }
    static _create_1() {
      return new XPathEvaluator();
    }
    [S$3.$createExpression](...args) {
      return this.createExpression.apply(this, args);
    }
    [S$3.$createNSResolver](...args) {
      return this.createNSResolver.apply(this, args);
    }
    [S$3.$evaluate](...args) {
      return this.evaluate.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XPathEvaluator);
  dart.addTypeCaches(html$.XPathEvaluator);
  dart.setMethodSignature(html$.XPathEvaluator, () => ({
    __proto__: dart.getMethods(html$.XPathEvaluator.__proto__),
    [S$3.$createExpression]: dart.fnType(html$.XPathExpression, [core.String, dart.nullable(html$.XPathNSResolver)]),
    [S$3.$createNSResolver]: dart.fnType(html$.XPathNSResolver, [html$.Node]),
    [S$3.$evaluate]: dart.fnType(html$.XPathResult, [core.String, html$.Node, dart.nullable(html$.XPathNSResolver)], [dart.nullable(core.int), dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(html$.XPathEvaluator, I[148]);
  dart.registerExtension("XPathEvaluator", html$.XPathEvaluator);
  html$.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
    [S$3.$evaluate](...args) {
      return this.evaluate.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XPathExpression);
  dart.addTypeCaches(html$.XPathExpression);
  dart.setMethodSignature(html$.XPathExpression, () => ({
    __proto__: dart.getMethods(html$.XPathExpression.__proto__),
    [S$3.$evaluate]: dart.fnType(html$.XPathResult, [html$.Node], [dart.nullable(core.int), dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(html$.XPathExpression, I[148]);
  dart.registerExtension("XPathExpression", html$.XPathExpression);
  html$.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
    [S$3.$lookupNamespaceUri](...args) {
      return this.lookupNamespaceURI.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XPathNSResolver);
  dart.addTypeCaches(html$.XPathNSResolver);
  dart.setMethodSignature(html$.XPathNSResolver, () => ({
    __proto__: dart.getMethods(html$.XPathNSResolver.__proto__),
    [S$3.$lookupNamespaceUri]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.String)])
  }));
  dart.setLibraryUri(html$.XPathNSResolver, I[148]);
  dart.registerExtension("XPathNSResolver", html$.XPathNSResolver);
  html$.XPathResult = class XPathResult extends _interceptors.Interceptor {
    get [S$3.$booleanValue]() {
      return this.booleanValue;
    }
    get [S$3.$invalidIteratorState]() {
      return this.invalidIteratorState;
    }
    get [S$3.$numberValue]() {
      return this.numberValue;
    }
    get [S$3.$resultType]() {
      return this.resultType;
    }
    get [S$3.$singleNodeValue]() {
      return this.singleNodeValue;
    }
    get [S$3.$snapshotLength]() {
      return this.snapshotLength;
    }
    get [S$3.$stringValue]() {
      return this.stringValue;
    }
    [S$3.$iterateNext](...args) {
      return this.iterateNext.apply(this, args);
    }
    [S$3.$snapshotItem](...args) {
      return this.snapshotItem.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XPathResult);
  dart.addTypeCaches(html$.XPathResult);
  dart.setMethodSignature(html$.XPathResult, () => ({
    __proto__: dart.getMethods(html$.XPathResult.__proto__),
    [S$3.$iterateNext]: dart.fnType(dart.nullable(html$.Node), []),
    [S$3.$snapshotItem]: dart.fnType(dart.nullable(html$.Node), [core.int])
  }));
  dart.setGetterSignature(html$.XPathResult, () => ({
    __proto__: dart.getGetters(html$.XPathResult.__proto__),
    [S$3.$booleanValue]: dart.nullable(core.bool),
    [S$3.$invalidIteratorState]: dart.nullable(core.bool),
    [S$3.$numberValue]: dart.nullable(core.num),
    [S$3.$resultType]: dart.nullable(core.int),
    [S$3.$singleNodeValue]: dart.nullable(html$.Node),
    [S$3.$snapshotLength]: dart.nullable(core.int),
    [S$3.$stringValue]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$.XPathResult, I[148]);
  dart.defineLazy(html$.XPathResult, {
    /*html$.XPathResult.ANY_TYPE*/get ANY_TYPE() {
      return 0;
    },
    /*html$.XPathResult.ANY_UNORDERED_NODE_TYPE*/get ANY_UNORDERED_NODE_TYPE() {
      return 8;
    },
    /*html$.XPathResult.BOOLEAN_TYPE*/get BOOLEAN_TYPE() {
      return 3;
    },
    /*html$.XPathResult.FIRST_ORDERED_NODE_TYPE*/get FIRST_ORDERED_NODE_TYPE() {
      return 9;
    },
    /*html$.XPathResult.NUMBER_TYPE*/get NUMBER_TYPE() {
      return 1;
    },
    /*html$.XPathResult.ORDERED_NODE_ITERATOR_TYPE*/get ORDERED_NODE_ITERATOR_TYPE() {
      return 5;
    },
    /*html$.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE*/get ORDERED_NODE_SNAPSHOT_TYPE() {
      return 7;
    },
    /*html$.XPathResult.STRING_TYPE*/get STRING_TYPE() {
      return 2;
    },
    /*html$.XPathResult.UNORDERED_NODE_ITERATOR_TYPE*/get UNORDERED_NODE_ITERATOR_TYPE() {
      return 4;
    },
    /*html$.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE*/get UNORDERED_NODE_SNAPSHOT_TYPE() {
      return 6;
    }
  }, false);
  dart.registerExtension("XPathResult", html$.XPathResult);
  html$.XmlDocument = class XmlDocument extends html$.Document {};
  dart.addTypeTests(html$.XmlDocument);
  dart.addTypeCaches(html$.XmlDocument);
  dart.setLibraryUri(html$.XmlDocument, I[148]);
  dart.registerExtension("XMLDocument", html$.XmlDocument);
  html$.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
    static new() {
      return html$.XmlSerializer._create_1();
    }
    static _create_1() {
      return new XMLSerializer();
    }
    [S$3.$serializeToString](...args) {
      return this.serializeToString.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XmlSerializer);
  dart.addTypeCaches(html$.XmlSerializer);
  dart.setMethodSignature(html$.XmlSerializer, () => ({
    __proto__: dart.getMethods(html$.XmlSerializer.__proto__),
    [S$3.$serializeToString]: dart.fnType(core.String, [html$.Node])
  }));
  dart.setLibraryUri(html$.XmlSerializer, I[148]);
  dart.registerExtension("XMLSerializer", html$.XmlSerializer);
  html$.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
    static new() {
      return html$.XsltProcessor._create_1();
    }
    static _create_1() {
      return new XSLTProcessor();
    }
    static get supported() {
      return !!window.XSLTProcessor;
    }
    [S$3.$clearParameters](...args) {
      return this.clearParameters.apply(this, args);
    }
    [S$3.$getParameter](...args) {
      return this.getParameter.apply(this, args);
    }
    [S$3.$importStylesheet](...args) {
      return this.importStylesheet.apply(this, args);
    }
    [S$3.$removeParameter](...args) {
      return this.removeParameter.apply(this, args);
    }
    [S$1.$reset](...args) {
      return this.reset.apply(this, args);
    }
    [S$3.$setParameter](...args) {
      return this.setParameter.apply(this, args);
    }
    [S$3.$transformToDocument](...args) {
      return this.transformToDocument.apply(this, args);
    }
    [S$3.$transformToFragment](...args) {
      return this.transformToFragment.apply(this, args);
    }
  };
  dart.addTypeTests(html$.XsltProcessor);
  dart.addTypeCaches(html$.XsltProcessor);
  dart.setMethodSignature(html$.XsltProcessor, () => ({
    __proto__: dart.getMethods(html$.XsltProcessor.__proto__),
    [S$3.$clearParameters]: dart.fnType(dart.void, []),
    [S$3.$getParameter]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.String), core.String]),
    [S$3.$importStylesheet]: dart.fnType(dart.void, [html$.Node]),
    [S$3.$removeParameter]: dart.fnType(dart.void, [dart.nullable(core.String), core.String]),
    [S$1.$reset]: dart.fnType(dart.void, []),
    [S$3.$setParameter]: dart.fnType(dart.void, [dart.nullable(core.String), core.String, core.String]),
    [S$3.$transformToDocument]: dart.fnType(dart.nullable(html$.Document), [html$.Node]),
    [S$3.$transformToFragment]: dart.fnType(dart.nullable(html$.DocumentFragment), [html$.Node, html$.Document])
  }));
  dart.setLibraryUri(html$.XsltProcessor, I[148]);
  dart.registerExtension("XSLTProcessor", html$.XsltProcessor);
  html$._Attr = class _Attr extends html$.Node {
    get [S._localName]() {
      return this.localName;
    }
    get [$name]() {
      return this.name;
    }
    get [S._namespaceUri]() {
      return this.namespaceURI;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  dart.addTypeTests(html$._Attr);
  dart.addTypeCaches(html$._Attr);
  dart.setGetterSignature(html$._Attr, () => ({
    __proto__: dart.getGetters(html$._Attr.__proto__),
    [S._localName]: dart.nullable(core.String),
    [$name]: dart.nullable(core.String),
    [S._namespaceUri]: dart.nullable(core.String),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(html$._Attr, () => ({
    __proto__: dart.getSetters(html$._Attr.__proto__),
    [S.$value]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$._Attr, I[148]);
  dart.registerExtension("Attr", html$._Attr);
  html$._Bluetooth = class _Bluetooth extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._Bluetooth);
  dart.addTypeCaches(html$._Bluetooth);
  dart.setLibraryUri(html$._Bluetooth, I[148]);
  dart.registerExtension("Bluetooth", html$._Bluetooth);
  html$._BluetoothCharacteristicProperties = class _BluetoothCharacteristicProperties extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._BluetoothCharacteristicProperties);
  dart.addTypeCaches(html$._BluetoothCharacteristicProperties);
  dart.setLibraryUri(html$._BluetoothCharacteristicProperties, I[148]);
  dart.registerExtension("BluetoothCharacteristicProperties", html$._BluetoothCharacteristicProperties);
  html$._BluetoothDevice = class _BluetoothDevice extends html$.EventTarget {};
  dart.addTypeTests(html$._BluetoothDevice);
  dart.addTypeCaches(html$._BluetoothDevice);
  dart.setLibraryUri(html$._BluetoothDevice, I[148]);
  dart.registerExtension("BluetoothDevice", html$._BluetoothDevice);
  html$._BluetoothRemoteGATTCharacteristic = class _BluetoothRemoteGATTCharacteristic extends html$.EventTarget {};
  dart.addTypeTests(html$._BluetoothRemoteGATTCharacteristic);
  dart.addTypeCaches(html$._BluetoothRemoteGATTCharacteristic);
  dart.setLibraryUri(html$._BluetoothRemoteGATTCharacteristic, I[148]);
  dart.registerExtension("BluetoothRemoteGATTCharacteristic", html$._BluetoothRemoteGATTCharacteristic);
  html$._BluetoothRemoteGATTServer = class _BluetoothRemoteGATTServer extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._BluetoothRemoteGATTServer);
  dart.addTypeCaches(html$._BluetoothRemoteGATTServer);
  dart.setLibraryUri(html$._BluetoothRemoteGATTServer, I[148]);
  dart.registerExtension("BluetoothRemoteGATTServer", html$._BluetoothRemoteGATTServer);
  html$._BluetoothRemoteGATTService = class _BluetoothRemoteGATTService extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._BluetoothRemoteGATTService);
  dart.addTypeCaches(html$._BluetoothRemoteGATTService);
  dart.setLibraryUri(html$._BluetoothRemoteGATTService, I[148]);
  dart.registerExtension("BluetoothRemoteGATTService", html$._BluetoothRemoteGATTService);
  html$._BluetoothUUID = class _BluetoothUUID extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._BluetoothUUID);
  dart.addTypeCaches(html$._BluetoothUUID);
  dart.setLibraryUri(html$._BluetoothUUID, I[148]);
  dart.registerExtension("BluetoothUUID", html$._BluetoothUUID);
  html$._BudgetService = class _BudgetService extends _interceptors.Interceptor {
    [S$3.$getBudget]() {
      return js_util.promiseToFuture(html$.BudgetState, this.getBudget());
    }
    [S$3.$getCost](operation) {
      if (operation == null) dart.nullFailed(I[147], 34377, 33, "operation");
      return js_util.promiseToFuture(core.double, this.getCost(operation));
    }
    [S$3.$reserve](operation) {
      if (operation == null) dart.nullFailed(I[147], 34380, 31, "operation");
      return js_util.promiseToFuture(core.bool, this.reserve(operation));
    }
  };
  dart.addTypeTests(html$._BudgetService);
  dart.addTypeCaches(html$._BudgetService);
  dart.setMethodSignature(html$._BudgetService, () => ({
    __proto__: dart.getMethods(html$._BudgetService.__proto__),
    [S$3.$getBudget]: dart.fnType(async.Future$(html$.BudgetState), []),
    [S$3.$getCost]: dart.fnType(async.Future$(core.double), [core.String]),
    [S$3.$reserve]: dart.fnType(async.Future$(core.bool), [core.String])
  }));
  dart.setLibraryUri(html$._BudgetService, I[148]);
  dart.registerExtension("BudgetService", html$._BudgetService);
  html$._Cache = class _Cache extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._Cache);
  dart.addTypeCaches(html$._Cache);
  dart.setLibraryUri(html$._Cache, I[148]);
  dart.registerExtension("Cache", html$._Cache);
  html$._CanvasPath = class _CanvasPath extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._CanvasPath);
  dart.addTypeCaches(html$._CanvasPath);
  dart.setLibraryUri(html$._CanvasPath, I[148]);
  html$._Clipboard = class _Clipboard extends html$.EventTarget {
    [S$3.$read]() {
      return js_util.promiseToFuture(html$.DataTransfer, this.read());
    }
    [S$3.$readText]() {
      return js_util.promiseToFuture(core.String, this.readText());
    }
    [S$1.$write](data) {
      if (data == null) dart.nullFailed(I[147], 34421, 29, "data");
      return js_util.promiseToFuture(dart.dynamic, this.write(data));
    }
    [S$3.$writeText](data) {
      if (data == null) dart.nullFailed(I[147], 34424, 27, "data");
      return js_util.promiseToFuture(dart.dynamic, this.writeText(data));
    }
  };
  dart.addTypeTests(html$._Clipboard);
  dart.addTypeCaches(html$._Clipboard);
  dart.setMethodSignature(html$._Clipboard, () => ({
    __proto__: dart.getMethods(html$._Clipboard.__proto__),
    [S$3.$read]: dart.fnType(async.Future$(html$.DataTransfer), []),
    [S$3.$readText]: dart.fnType(async.Future$(core.String), []),
    [S$1.$write]: dart.fnType(async.Future, [html$.DataTransfer]),
    [S$3.$writeText]: dart.fnType(async.Future, [core.String])
  }));
  dart.setLibraryUri(html$._Clipboard, I[148]);
  dart.registerExtension("Clipboard", html$._Clipboard);
  const Interceptor_ListMixin$36$8 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$8.new = function() {
    Interceptor_ListMixin$36$8.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$8.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$8, collection.ListMixin$(html$.CssRule));
  const Interceptor_ImmutableListMixin$36$8 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$8 {};
  (Interceptor_ImmutableListMixin$36$8.new = function() {
    Interceptor_ImmutableListMixin$36$8.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$8.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$8, html$.ImmutableListMixin$(html$.CssRule));
  html$._CssRuleList = class _CssRuleList extends Interceptor_ImmutableListMixin$36$8 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 34442, 27, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 34448, 25, "index");
      html$.CssRule.as(value);
      if (value == null) dart.nullFailed(I[147], 34448, 40, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 34454, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 34482, 25, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$._CssRuleList.prototype[dart.isList] = true;
  dart.addTypeTests(html$._CssRuleList);
  dart.addTypeCaches(html$._CssRuleList);
  html$._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.CssRule), core.List$(html$.CssRule)];
  dart.setMethodSignature(html$._CssRuleList, () => ({
    __proto__: dart.getMethods(html$._CssRuleList.__proto__),
    [$_get]: dart.fnType(html$.CssRule, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(html$.CssRule), [core.int])
  }));
  dart.setGetterSignature(html$._CssRuleList, () => ({
    __proto__: dart.getGetters(html$._CssRuleList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$._CssRuleList, () => ({
    __proto__: dart.getSetters(html$._CssRuleList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._CssRuleList, I[148]);
  dart.registerExtension("CSSRuleList", html$._CssRuleList);
  html$._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._DOMFileSystemSync);
  dart.addTypeCaches(html$._DOMFileSystemSync);
  dart.setLibraryUri(html$._DOMFileSystemSync, I[148]);
  dart.registerExtension("DOMFileSystemSync", html$._DOMFileSystemSync);
  html$._EntrySync = class _EntrySync extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._EntrySync);
  dart.addTypeCaches(html$._EntrySync);
  dart.setLibraryUri(html$._EntrySync, I[148]);
  dart.registerExtension("EntrySync", html$._EntrySync);
  html$._DirectoryEntrySync = class _DirectoryEntrySync extends html$._EntrySync {};
  dart.addTypeTests(html$._DirectoryEntrySync);
  dart.addTypeCaches(html$._DirectoryEntrySync);
  dart.setLibraryUri(html$._DirectoryEntrySync, I[148]);
  dart.registerExtension("DirectoryEntrySync", html$._DirectoryEntrySync);
  html$._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._DirectoryReaderSync);
  dart.addTypeCaches(html$._DirectoryReaderSync);
  dart.setLibraryUri(html$._DirectoryReaderSync, I[148]);
  dart.registerExtension("DirectoryReaderSync", html$._DirectoryReaderSync);
  html$._DocumentType = class _DocumentType extends html$.Node {};
  dart.addTypeTests(html$._DocumentType);
  dart.addTypeCaches(html$._DocumentType);
  html$._DocumentType[dart.implements] = () => [html$.ChildNode];
  dart.setLibraryUri(html$._DocumentType, I[148]);
  dart.registerExtension("DocumentType", html$._DocumentType);
  html$._DomRect = class _DomRect extends html$.DomRectReadOnly {
    [$toString]() {
      return "Rectangle (" + dart.str(this[$left]) + ", " + dart.str(this[$top]) + ") " + dart.str(this[$width]) + " x " + dart.str(this[$height]);
    }
    [$_equals](other) {
      if (other == null) return false;
      return T$0.RectangleOfnum().is(other) && this[$left] == other[$left] && this[$top] == other[$top] && this[$width] == other[$width] && this[$height] == other[$height];
    }
    get [$hashCode]() {
      return html$._JenkinsSmiHash.hash4(dart.hashCode(this[$left]), dart.hashCode(this[$top]), dart.hashCode(this[$width]), dart.hashCode(this[$height]));
    }
    [$intersection](other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 34568, 37, "other");
      let x0 = math.max(core.num, this[$left], other[$left]);
      let x1 = math.min(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      if (x0 <= x1) {
        let y0 = math.max(core.num, this[$top], other[$top]);
        let y1 = math.min(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
        if (y0 <= y1) {
          return new (T$0.RectangleOfnum()).new(x0, y0, x1 - x0, y1 - y0);
        }
      }
      return null;
    }
    [$intersects](other) {
      if (other == null) dart.nullFailed(I[147], 34586, 34, "other");
      return dart.notNull(this[$left]) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(this[$top]) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    [$boundingBox](other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 34596, 35, "other");
      let right = math.max(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      let bottom = math.max(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      let left = math.min(core.num, this[$left], other[$left]);
      let top = math.min(core.num, this[$top], other[$top]);
      return new (T$0.RectangleOfnum()).new(left, top, right - left, bottom - top);
    }
    [$containsRectangle](another) {
      if (another == null) dart.nullFailed(I[147], 34609, 41, "another");
      return dart.notNull(this[$left]) <= dart.notNull(another[$left]) && dart.notNull(this[$left]) + dart.notNull(this[$width]) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this[$top]) <= dart.notNull(another[$top]) && dart.notNull(this[$top]) + dart.notNull(this[$height]) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
    }
    [$containsPoint](another) {
      if (another == null) dart.nullFailed(I[147], 34619, 33, "another");
      return dart.notNull(another.x) >= dart.notNull(this[$left]) && dart.notNull(another.x) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(another.y) >= dart.notNull(this[$top]) && dart.notNull(another.y) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    get [$topLeft]() {
      return new (T$0.PointOfnum()).new(this[$left], this[$top]);
    }
    get [$topRight]() {
      return new (T$0.PointOfnum()).new(dart.notNull(this[$left]) + dart.notNull(this[$width]), this[$top]);
    }
    get [$bottomRight]() {
      return new (T$0.PointOfnum()).new(dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(this[$top]) + dart.notNull(this[$height]));
    }
    get [$bottomLeft]() {
      return new (T$0.PointOfnum()).new(this[$left], dart.notNull(this[$top]) + dart.notNull(this[$height]));
    }
    static new(x = null, y = null, width = null, height = null) {
      if (height != null) {
        return html$._DomRect._create_1(x, y, width, height);
      }
      if (width != null) {
        return html$._DomRect._create_2(x, y, width);
      }
      if (y != null) {
        return html$._DomRect._create_3(x, y);
      }
      if (x != null) {
        return html$._DomRect._create_4(x);
      }
      return html$._DomRect._create_5();
    }
    static _create_1(x, y, width, height) {
      return new DOMRect(x, y, width, height);
    }
    static _create_2(x, y, width) {
      return new DOMRect(x, y, width);
    }
    static _create_3(x, y) {
      return new DOMRect(x, y);
    }
    static _create_4(x) {
      return new DOMRect(x);
    }
    static _create_5() {
      return new DOMRect();
    }
    get [S$0._height$1]() {
      return this.height;
    }
    get [$height]() {
      return dart.nullCheck(this[S$0._height$1]);
    }
    set [$height](value) {
      this.height = value;
    }
    get [S$0._width$1]() {
      return this.width;
    }
    get [$width]() {
      return dart.nullCheck(this[S$0._width$1]);
    }
    set [$width](value) {
      this.width = value;
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
  };
  dart.addTypeTests(html$._DomRect);
  dart.addTypeCaches(html$._DomRect);
  html$._DomRect[dart.implements] = () => [math.Rectangle$(core.num)];
  dart.setSetterSignature(html$._DomRect, () => ({
    __proto__: dart.getSetters(html$._DomRect.__proto__),
    [$height]: core.num,
    [$width]: core.num,
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(html$._DomRect, I[148]);
  dart.registerExtension("ClientRect", html$._DomRect);
  dart.registerExtension("DOMRect", html$._DomRect);
  html$._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
    static combine(hash, value) {
      if (hash == null) dart.nullFailed(I[147], 34716, 26, "hash");
      if (value == null) dart.nullFailed(I[147], 34716, 36, "value");
      hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
      hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
      return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
    }
    static finish(hash) {
      if (hash == null) dart.nullFailed(I[147], 34722, 25, "hash");
      hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
      hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
      return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
    }
    static hash2(a, b) {
      return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)));
    }
    static hash4(a, b, c, d) {
      return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)), core.int.as(c)), core.int.as(d)));
    }
  };
  (html$._JenkinsSmiHash.new = function() {
    ;
  }).prototype = html$._JenkinsSmiHash.prototype;
  dart.addTypeTests(html$._JenkinsSmiHash);
  dart.addTypeCaches(html$._JenkinsSmiHash);
  dart.setLibraryUri(html$._JenkinsSmiHash, I[148]);
  html$._FileEntrySync = class _FileEntrySync extends html$._EntrySync {};
  dart.addTypeTests(html$._FileEntrySync);
  dart.addTypeCaches(html$._FileEntrySync);
  dart.setLibraryUri(html$._FileEntrySync, I[148]);
  dart.registerExtension("FileEntrySync", html$._FileEntrySync);
  html$._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
    static new() {
      return html$._FileReaderSync._create_1();
    }
    static _create_1() {
      return new FileReaderSync();
    }
  };
  dart.addTypeTests(html$._FileReaderSync);
  dart.addTypeCaches(html$._FileReaderSync);
  dart.setLibraryUri(html$._FileReaderSync, I[148]);
  dart.registerExtension("FileReaderSync", html$._FileReaderSync);
  html$._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._FileWriterSync);
  dart.addTypeCaches(html$._FileWriterSync);
  dart.setLibraryUri(html$._FileWriterSync, I[148]);
  dart.registerExtension("FileWriterSync", html$._FileWriterSync);
  const Interceptor_ListMixin$36$9 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$9.new = function() {
    Interceptor_ListMixin$36$9.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$9.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$9, collection.ListMixin$(dart.nullable(html$.Gamepad)));
  const Interceptor_ImmutableListMixin$36$9 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$9 {};
  (Interceptor_ImmutableListMixin$36$9.new = function() {
    Interceptor_ImmutableListMixin$36$9.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$9.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$9, html$.ImmutableListMixin$(dart.nullable(html$.Gamepad)));
  html$._GamepadList = class _GamepadList extends Interceptor_ImmutableListMixin$36$9 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 34798, 28, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 34804, 25, "index");
      T$0.GamepadN().as(value);
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 34810, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 34838, 26, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$._GamepadList.prototype[dart.isList] = true;
  dart.addTypeTests(html$._GamepadList);
  dart.addTypeCaches(html$._GamepadList);
  html$._GamepadList[dart.implements] = () => [core.List$(dart.nullable(html$.Gamepad)), _js_helper.JavaScriptIndexingBehavior$(dart.nullable(html$.Gamepad))];
  dart.setMethodSignature(html$._GamepadList, () => ({
    __proto__: dart.getMethods(html$._GamepadList.__proto__),
    [$_get]: dart.fnType(dart.nullable(html$.Gamepad), [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(html$.Gamepad, [dart.nullable(core.int)])
  }));
  dart.setGetterSignature(html$._GamepadList, () => ({
    __proto__: dart.getGetters(html$._GamepadList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$._GamepadList, () => ({
    __proto__: dart.getSetters(html$._GamepadList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._GamepadList, I[148]);
  dart.registerExtension("GamepadList", html$._GamepadList);
  html$._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
    [S$1._item](...args) {
      return this.item.apply(this, args);
    }
  };
  dart.addTypeTests(html$._HTMLAllCollection);
  dart.addTypeCaches(html$._HTMLAllCollection);
  dart.setMethodSignature(html$._HTMLAllCollection, () => ({
    __proto__: dart.getMethods(html$._HTMLAllCollection.__proto__),
    [S$1._item]: dart.fnType(html$.Element, [dart.nullable(core.int)])
  }));
  dart.setLibraryUri(html$._HTMLAllCollection, I[148]);
  dart.registerExtension("HTMLAllCollection", html$._HTMLAllCollection);
  html$._HTMLDirectoryElement = class _HTMLDirectoryElement extends html$.HtmlElement {};
  (html$._HTMLDirectoryElement.created = function() {
    html$._HTMLDirectoryElement.__proto__.created.call(this);
    ;
  }).prototype = html$._HTMLDirectoryElement.prototype;
  dart.addTypeTests(html$._HTMLDirectoryElement);
  dart.addTypeCaches(html$._HTMLDirectoryElement);
  dart.setLibraryUri(html$._HTMLDirectoryElement, I[148]);
  dart.registerExtension("HTMLDirectoryElement", html$._HTMLDirectoryElement);
  html$._HTMLFontElement = class _HTMLFontElement extends html$.HtmlElement {};
  (html$._HTMLFontElement.created = function() {
    html$._HTMLFontElement.__proto__.created.call(this);
    ;
  }).prototype = html$._HTMLFontElement.prototype;
  dart.addTypeTests(html$._HTMLFontElement);
  dart.addTypeCaches(html$._HTMLFontElement);
  dart.setLibraryUri(html$._HTMLFontElement, I[148]);
  dart.registerExtension("HTMLFontElement", html$._HTMLFontElement);
  html$._HTMLFrameElement = class _HTMLFrameElement extends html$.HtmlElement {};
  (html$._HTMLFrameElement.created = function() {
    html$._HTMLFrameElement.__proto__.created.call(this);
    ;
  }).prototype = html$._HTMLFrameElement.prototype;
  dart.addTypeTests(html$._HTMLFrameElement);
  dart.addTypeCaches(html$._HTMLFrameElement);
  dart.setLibraryUri(html$._HTMLFrameElement, I[148]);
  dart.registerExtension("HTMLFrameElement", html$._HTMLFrameElement);
  html$._HTMLFrameSetElement = class _HTMLFrameSetElement extends html$.HtmlElement {};
  (html$._HTMLFrameSetElement.created = function() {
    html$._HTMLFrameSetElement.__proto__.created.call(this);
    ;
  }).prototype = html$._HTMLFrameSetElement.prototype;
  dart.addTypeTests(html$._HTMLFrameSetElement);
  dart.addTypeCaches(html$._HTMLFrameSetElement);
  html$._HTMLFrameSetElement[dart.implements] = () => [html$.WindowEventHandlers];
  dart.setLibraryUri(html$._HTMLFrameSetElement, I[148]);
  dart.registerExtension("HTMLFrameSetElement", html$._HTMLFrameSetElement);
  html$._HTMLMarqueeElement = class _HTMLMarqueeElement extends html$.HtmlElement {};
  (html$._HTMLMarqueeElement.created = function() {
    html$._HTMLMarqueeElement.__proto__.created.call(this);
    ;
  }).prototype = html$._HTMLMarqueeElement.prototype;
  dart.addTypeTests(html$._HTMLMarqueeElement);
  dart.addTypeCaches(html$._HTMLMarqueeElement);
  dart.setLibraryUri(html$._HTMLMarqueeElement, I[148]);
  dart.registerExtension("HTMLMarqueeElement", html$._HTMLMarqueeElement);
  html$._Mojo = class _Mojo extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._Mojo);
  dart.addTypeCaches(html$._Mojo);
  dart.setLibraryUri(html$._Mojo, I[148]);
  dart.registerExtension("Mojo", html$._Mojo);
  html$._MojoHandle = class _MojoHandle extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._MojoHandle);
  dart.addTypeCaches(html$._MojoHandle);
  dart.setLibraryUri(html$._MojoHandle, I[148]);
  dart.registerExtension("MojoHandle", html$._MojoHandle);
  html$._MojoInterfaceInterceptor = class _MojoInterfaceInterceptor extends html$.EventTarget {
    static new(interfaceName, scope = null) {
      if (interfaceName == null) dart.nullFailed(I[147], 34989, 44, "interfaceName");
      if (scope != null) {
        return html$._MojoInterfaceInterceptor._create_1(interfaceName, scope);
      }
      return html$._MojoInterfaceInterceptor._create_2(interfaceName);
    }
    static _create_1(interfaceName, scope) {
      return new MojoInterfaceInterceptor(interfaceName, scope);
    }
    static _create_2(interfaceName) {
      return new MojoInterfaceInterceptor(interfaceName);
    }
  };
  dart.addTypeTests(html$._MojoInterfaceInterceptor);
  dart.addTypeCaches(html$._MojoInterfaceInterceptor);
  dart.setLibraryUri(html$._MojoInterfaceInterceptor, I[148]);
  dart.registerExtension("MojoInterfaceInterceptor", html$._MojoInterfaceInterceptor);
  html$._MojoInterfaceRequestEvent = class _MojoInterfaceRequestEvent extends html$.Event {
    static new(type, eventInitDict = null) {
      if (type == null) dart.nullFailed(I[147], 35016, 45, "type");
      if (eventInitDict != null) {
        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
        return html$._MojoInterfaceRequestEvent._create_1(type, eventInitDict_1);
      }
      return html$._MojoInterfaceRequestEvent._create_2(type);
    }
    static _create_1(type, eventInitDict) {
      return new MojoInterfaceRequestEvent(type, eventInitDict);
    }
    static _create_2(type) {
      return new MojoInterfaceRequestEvent(type);
    }
  };
  dart.addTypeTests(html$._MojoInterfaceRequestEvent);
  dart.addTypeCaches(html$._MojoInterfaceRequestEvent);
  dart.setLibraryUri(html$._MojoInterfaceRequestEvent, I[148]);
  dart.registerExtension("MojoInterfaceRequestEvent", html$._MojoInterfaceRequestEvent);
  html$._MojoWatcher = class _MojoWatcher extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._MojoWatcher);
  dart.addTypeCaches(html$._MojoWatcher);
  dart.setLibraryUri(html$._MojoWatcher, I[148]);
  dart.registerExtension("MojoWatcher", html$._MojoWatcher);
  html$._NFC = class _NFC extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._NFC);
  dart.addTypeCaches(html$._NFC);
  dart.setLibraryUri(html$._NFC, I[148]);
  dart.registerExtension("NFC", html$._NFC);
  const Interceptor_ListMixin$36$10 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$10.new = function() {
    Interceptor_ListMixin$36$10.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$10.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$10, collection.ListMixin$(html$.Node));
  const Interceptor_ImmutableListMixin$36$10 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$10 {};
  (Interceptor_ImmutableListMixin$36$10.new = function() {
    Interceptor_ImmutableListMixin$36$10.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$10.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$10, html$.ImmutableListMixin$(html$.Node));
  html$._NamedNodeMap = class _NamedNodeMap extends Interceptor_ImmutableListMixin$36$10 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 35070, 24, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 35076, 25, "index");
      html$.Node.as(value);
      if (value == null) dart.nullFailed(I[147], 35076, 37, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 35082, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 35110, 22, "index");
      return this[$_get](index);
    }
    [S$3.$getNamedItem](...args) {
      return this.getNamedItem.apply(this, args);
    }
    [S$3.$getNamedItemNS](...args) {
      return this.getNamedItemNS.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
    [S$3.$removeNamedItem](...args) {
      return this.removeNamedItem.apply(this, args);
    }
    [S$3.$removeNamedItemNS](...args) {
      return this.removeNamedItemNS.apply(this, args);
    }
    [S$3.$setNamedItem](...args) {
      return this.setNamedItem.apply(this, args);
    }
    [S$3.$setNamedItemNS](...args) {
      return this.setNamedItemNS.apply(this, args);
    }
  };
  html$._NamedNodeMap.prototype[dart.isList] = true;
  dart.addTypeTests(html$._NamedNodeMap);
  dart.addTypeCaches(html$._NamedNodeMap);
  html$._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
  dart.setMethodSignature(html$._NamedNodeMap, () => ({
    __proto__: dart.getMethods(html$._NamedNodeMap.__proto__),
    [$_get]: dart.fnType(html$.Node, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$3.$getNamedItem]: dart.fnType(dart.nullable(html$._Attr), [core.String]),
    [S$3.$getNamedItemNS]: dart.fnType(dart.nullable(html$._Attr), [dart.nullable(core.String), core.String]),
    [S$.$item]: dart.fnType(dart.nullable(html$._Attr), [core.int]),
    [S$3.$removeNamedItem]: dart.fnType(html$._Attr, [core.String]),
    [S$3.$removeNamedItemNS]: dart.fnType(html$._Attr, [dart.nullable(core.String), core.String]),
    [S$3.$setNamedItem]: dart.fnType(dart.nullable(html$._Attr), [html$._Attr]),
    [S$3.$setNamedItemNS]: dart.fnType(dart.nullable(html$._Attr), [html$._Attr])
  }));
  dart.setGetterSignature(html$._NamedNodeMap, () => ({
    __proto__: dart.getGetters(html$._NamedNodeMap.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$._NamedNodeMap, () => ({
    __proto__: dart.getSetters(html$._NamedNodeMap.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._NamedNodeMap, I[148]);
  dart.registerExtension("NamedNodeMap", html$._NamedNodeMap);
  dart.registerExtension("MozNamedAttrMap", html$._NamedNodeMap);
  html$._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._PagePopupController);
  dart.addTypeCaches(html$._PagePopupController);
  dart.setLibraryUri(html$._PagePopupController, I[148]);
  dart.registerExtension("PagePopupController", html$._PagePopupController);
  html$._Report = class _Report extends _interceptors.Interceptor {
    get [S$1.$body]() {
      return this.body;
    }
    get [S.$type]() {
      return this.type;
    }
    get [S$.$url]() {
      return this.url;
    }
  };
  dart.addTypeTests(html$._Report);
  dart.addTypeCaches(html$._Report);
  dart.setGetterSignature(html$._Report, () => ({
    __proto__: dart.getGetters(html$._Report.__proto__),
    [S$1.$body]: dart.nullable(html$.ReportBody),
    [S.$type]: dart.nullable(core.String),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$._Report, I[148]);
  dart.registerExtension("Report", html$._Report);
  html$._Request = class _Request extends html$.Body {
    static new(input, requestInitDict = null) {
      if (input == null) dart.nullFailed(I[147], 35175, 27, "input");
      if (requestInitDict != null) {
        let requestInitDict_1 = html_common.convertDartToNative_Dictionary(requestInitDict);
        return html$._Request._create_1(input, requestInitDict_1);
      }
      return html$._Request._create_2(input);
    }
    static _create_1(input, requestInitDict) {
      return new Request(input, requestInitDict);
    }
    static _create_2(input) {
      return new Request(input);
    }
    get [S$3.$cache]() {
      return this.cache;
    }
    get [S$1.$credentials]() {
      return this.credentials;
    }
    get [S$2.$headers]() {
      return this.headers;
    }
    get [S$1.$integrity]() {
      return this.integrity;
    }
    get [S.$mode]() {
      return this.mode;
    }
    get [S$3.$redirect]() {
      return this.redirect;
    }
    get [S$1.$referrer]() {
      return this.referrer;
    }
    get [S$.$referrerPolicy]() {
      return this.referrerPolicy;
    }
    get [S$.$url]() {
      return this.url;
    }
    [S$.$clone](...args) {
      return this.clone.apply(this, args);
    }
  };
  dart.addTypeTests(html$._Request);
  dart.addTypeCaches(html$._Request);
  dart.setMethodSignature(html$._Request, () => ({
    __proto__: dart.getMethods(html$._Request.__proto__),
    [S$.$clone]: dart.fnType(html$._Request, [])
  }));
  dart.setGetterSignature(html$._Request, () => ({
    __proto__: dart.getGetters(html$._Request.__proto__),
    [S$3.$cache]: dart.nullable(core.String),
    [S$1.$credentials]: dart.nullable(core.String),
    [S$2.$headers]: dart.nullable(html$.Headers),
    [S$1.$integrity]: dart.nullable(core.String),
    [S.$mode]: dart.nullable(core.String),
    [S$3.$redirect]: dart.nullable(core.String),
    [S$1.$referrer]: dart.nullable(core.String),
    [S$.$referrerPolicy]: dart.nullable(core.String),
    [S$.$url]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(html$._Request, I[148]);
  dart.registerExtension("Request", html$._Request);
  html$._ResourceProgressEvent = class _ResourceProgressEvent extends html$.ProgressEvent {};
  dart.addTypeTests(html$._ResourceProgressEvent);
  dart.addTypeCaches(html$._ResourceProgressEvent);
  dart.setLibraryUri(html$._ResourceProgressEvent, I[148]);
  dart.registerExtension("ResourceProgressEvent", html$._ResourceProgressEvent);
  html$._Response = class _Response extends html$.Body {
    static new(body = null, init = null) {
      if (init != null) {
        let init_1 = html_common.convertDartToNative_Dictionary(init);
        return html$._Response._create_1(body, init_1);
      }
      if (body != null) {
        return html$._Response._create_2(body);
      }
      return html$._Response._create_3();
    }
    static _create_1(body, init) {
      return new Response(body, init);
    }
    static _create_2(body) {
      return new Response(body);
    }
    static _create_3() {
      return new Response();
    }
  };
  dart.addTypeTests(html$._Response);
  dart.addTypeCaches(html$._Response);
  dart.setLibraryUri(html$._Response, I[148]);
  dart.registerExtension("Response", html$._Response);
  const Interceptor_ListMixin$36$11 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$11.new = function() {
    Interceptor_ListMixin$36$11.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$11.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$11, collection.ListMixin$(html$.SpeechRecognitionResult));
  const Interceptor_ImmutableListMixin$36$11 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$11 {};
  (Interceptor_ImmutableListMixin$36$11.new = function() {
    Interceptor_ImmutableListMixin$36$11.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$11.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$11, html$.ImmutableListMixin$(html$.SpeechRecognitionResult));
  html$._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends Interceptor_ImmutableListMixin$36$11 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 35264, 43, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 35270, 25, "index");
      html$.SpeechRecognitionResult.as(value);
      if (value == null) dart.nullFailed(I[147], 35270, 56, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 35276, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 35304, 41, "index");
      return this[$_get](index);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$._SpeechRecognitionResultList.prototype[dart.isList] = true;
  dart.addTypeTests(html$._SpeechRecognitionResultList);
  dart.addTypeCaches(html$._SpeechRecognitionResultList);
  html$._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SpeechRecognitionResult), core.List$(html$.SpeechRecognitionResult)];
  dart.setMethodSignature(html$._SpeechRecognitionResultList, () => ({
    __proto__: dart.getMethods(html$._SpeechRecognitionResultList.__proto__),
    [$_get]: dart.fnType(html$.SpeechRecognitionResult, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(html$.SpeechRecognitionResult, [core.int])
  }));
  dart.setGetterSignature(html$._SpeechRecognitionResultList, () => ({
    __proto__: dart.getGetters(html$._SpeechRecognitionResultList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$._SpeechRecognitionResultList, () => ({
    __proto__: dart.getSetters(html$._SpeechRecognitionResultList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._SpeechRecognitionResultList, I[148]);
  dart.registerExtension("SpeechRecognitionResultList", html$._SpeechRecognitionResultList);
  const Interceptor_ListMixin$36$12 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$12.new = function() {
    Interceptor_ListMixin$36$12.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$12.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$12, collection.ListMixin$(html$.StyleSheet));
  const Interceptor_ImmutableListMixin$36$12 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$12 {};
  (Interceptor_ImmutableListMixin$36$12.new = function() {
    Interceptor_ImmutableListMixin$36$12.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$12.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$12, html$.ImmutableListMixin$(html$.StyleSheet));
  html$._StyleSheetList = class _StyleSheetList extends Interceptor_ImmutableListMixin$36$12 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[147], 35324, 30, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[147], 35330, 25, "index");
      html$.StyleSheet.as(value);
      if (value == null) dart.nullFailed(I[147], 35330, 43, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[147], 35336, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[147], 35364, 28, "index");
      return this[$_get](index);
    }
    [S$.__getter__](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$.$item](...args) {
      return this.item.apply(this, args);
    }
  };
  html$._StyleSheetList.prototype[dart.isList] = true;
  dart.addTypeTests(html$._StyleSheetList);
  dart.addTypeCaches(html$._StyleSheetList);
  html$._StyleSheetList[dart.implements] = () => [core.List$(html$.StyleSheet), _js_helper.JavaScriptIndexingBehavior$(html$.StyleSheet)];
  dart.setMethodSignature(html$._StyleSheetList, () => ({
    __proto__: dart.getMethods(html$._StyleSheetList.__proto__),
    [$_get]: dart.fnType(html$.StyleSheet, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.__getter__]: dart.fnType(html$.CssStyleSheet, [core.String]),
    [S$.$item]: dart.fnType(dart.nullable(html$.StyleSheet), [core.int])
  }));
  dart.setGetterSignature(html$._StyleSheetList, () => ({
    __proto__: dart.getGetters(html$._StyleSheetList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(html$._StyleSheetList, () => ({
    __proto__: dart.getSetters(html$._StyleSheetList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(html$._StyleSheetList, I[148]);
  dart.registerExtension("StyleSheetList", html$._StyleSheetList);
  html$._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._SubtleCrypto);
  dart.addTypeCaches(html$._SubtleCrypto);
  dart.setLibraryUri(html$._SubtleCrypto, I[148]);
  dart.registerExtension("SubtleCrypto", html$._SubtleCrypto);
  html$._USB = class _USB extends html$.EventTarget {};
  dart.addTypeTests(html$._USB);
  dart.addTypeCaches(html$._USB);
  dart.setLibraryUri(html$._USB, I[148]);
  dart.registerExtension("USB", html$._USB);
  html$._USBAlternateInterface = class _USBAlternateInterface extends _interceptors.Interceptor {
    static new(deviceInterface, alternateSetting) {
      if (deviceInterface == null) dart.nullFailed(I[147], 35405, 21, "deviceInterface");
      if (alternateSetting == null) dart.nullFailed(I[147], 35405, 42, "alternateSetting");
      return html$._USBAlternateInterface._create_1(deviceInterface, alternateSetting);
    }
    static _create_1(deviceInterface, alternateSetting) {
      return new USBAlternateInterface(deviceInterface, alternateSetting);
    }
  };
  dart.addTypeTests(html$._USBAlternateInterface);
  dart.addTypeCaches(html$._USBAlternateInterface);
  dart.setLibraryUri(html$._USBAlternateInterface, I[148]);
  dart.registerExtension("USBAlternateInterface", html$._USBAlternateInterface);
  html$._USBConfiguration = class _USBConfiguration extends _interceptors.Interceptor {
    static new(device, configurationValue) {
      if (device == null) dart.nullFailed(I[147], 35423, 40, "device");
      if (configurationValue == null) dart.nullFailed(I[147], 35423, 52, "configurationValue");
      return html$._USBConfiguration._create_1(device, configurationValue);
    }
    static _create_1(device, configurationValue) {
      return new USBConfiguration(device, configurationValue);
    }
  };
  dart.addTypeTests(html$._USBConfiguration);
  dart.addTypeCaches(html$._USBConfiguration);
  dart.setLibraryUri(html$._USBConfiguration, I[148]);
  dart.registerExtension("USBConfiguration", html$._USBConfiguration);
  html$._USBConnectionEvent = class _USBConnectionEvent extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[147], 35443, 38, "type");
      if (eventInitDict == null) dart.nullFailed(I[147], 35443, 48, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$._USBConnectionEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new USBConnectionEvent(type, eventInitDict);
    }
  };
  dart.addTypeTests(html$._USBConnectionEvent);
  dart.addTypeCaches(html$._USBConnectionEvent);
  dart.setLibraryUri(html$._USBConnectionEvent, I[148]);
  dart.registerExtension("USBConnectionEvent", html$._USBConnectionEvent);
  html$._USBDevice = class _USBDevice extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._USBDevice);
  dart.addTypeCaches(html$._USBDevice);
  dart.setLibraryUri(html$._USBDevice, I[148]);
  dart.registerExtension("USBDevice", html$._USBDevice);
  html$._USBEndpoint = class _USBEndpoint extends _interceptors.Interceptor {
    static new(alternate, endpointNumber, direction) {
      if (alternate == null) dart.nullFailed(I[147], 35476, 30, "alternate");
      if (endpointNumber == null) dart.nullFailed(I[147], 35476, 45, "endpointNumber");
      if (direction == null) dart.nullFailed(I[147], 35476, 68, "direction");
      return html$._USBEndpoint._create_1(alternate, endpointNumber, direction);
    }
    static _create_1(alternate, endpointNumber, direction) {
      return new USBEndpoint(alternate, endpointNumber, direction);
    }
  };
  dart.addTypeTests(html$._USBEndpoint);
  dart.addTypeCaches(html$._USBEndpoint);
  dart.setLibraryUri(html$._USBEndpoint, I[148]);
  dart.registerExtension("USBEndpoint", html$._USBEndpoint);
  html$._USBInTransferResult = class _USBInTransferResult extends _interceptors.Interceptor {
    static new(status, data = null) {
      if (status == null) dart.nullFailed(I[147], 35497, 39, "status");
      if (data != null) {
        return html$._USBInTransferResult._create_1(status, data);
      }
      return html$._USBInTransferResult._create_2(status);
    }
    static _create_1(status, data) {
      return new USBInTransferResult(status, data);
    }
    static _create_2(status) {
      return new USBInTransferResult(status);
    }
  };
  dart.addTypeTests(html$._USBInTransferResult);
  dart.addTypeCaches(html$._USBInTransferResult);
  dart.setLibraryUri(html$._USBInTransferResult, I[148]);
  dart.registerExtension("USBInTransferResult", html$._USBInTransferResult);
  html$._USBInterface = class _USBInterface extends _interceptors.Interceptor {
    static new(configuration, interfaceNumber) {
      if (configuration == null) dart.nullFailed(I[147], 35519, 43, "configuration");
      if (interfaceNumber == null) dart.nullFailed(I[147], 35519, 62, "interfaceNumber");
      return html$._USBInterface._create_1(configuration, interfaceNumber);
    }
    static _create_1(configuration, interfaceNumber) {
      return new USBInterface(configuration, interfaceNumber);
    }
  };
  dart.addTypeTests(html$._USBInterface);
  dart.addTypeCaches(html$._USBInterface);
  dart.setLibraryUri(html$._USBInterface, I[148]);
  dart.registerExtension("USBInterface", html$._USBInterface);
  html$._USBIsochronousInTransferPacket = class _USBIsochronousInTransferPacket extends _interceptors.Interceptor {
    static new(status, data = null) {
      if (status == null) dart.nullFailed(I[147], 35536, 50, "status");
      if (data != null) {
        return html$._USBIsochronousInTransferPacket._create_1(status, data);
      }
      return html$._USBIsochronousInTransferPacket._create_2(status);
    }
    static _create_1(status, data) {
      return new USBIsochronousInTransferPacket(status, data);
    }
    static _create_2(status) {
      return new USBIsochronousInTransferPacket(status);
    }
  };
  dart.addTypeTests(html$._USBIsochronousInTransferPacket);
  dart.addTypeCaches(html$._USBIsochronousInTransferPacket);
  dart.setLibraryUri(html$._USBIsochronousInTransferPacket, I[148]);
  dart.registerExtension("USBIsochronousInTransferPacket", html$._USBIsochronousInTransferPacket);
  html$._USBIsochronousInTransferResult = class _USBIsochronousInTransferResult extends _interceptors.Interceptor {
    static new(packets, data = null) {
      if (packets == null) dart.nullFailed(I[147], 35564, 45, "packets");
      if (data != null) {
        return html$._USBIsochronousInTransferResult._create_1(packets, data);
      }
      return html$._USBIsochronousInTransferResult._create_2(packets);
    }
    static _create_1(packets, data) {
      return new USBIsochronousInTransferResult(packets, data);
    }
    static _create_2(packets) {
      return new USBIsochronousInTransferResult(packets);
    }
  };
  dart.addTypeTests(html$._USBIsochronousInTransferResult);
  dart.addTypeCaches(html$._USBIsochronousInTransferResult);
  dart.setLibraryUri(html$._USBIsochronousInTransferResult, I[148]);
  dart.registerExtension("USBIsochronousInTransferResult", html$._USBIsochronousInTransferResult);
  html$._USBIsochronousOutTransferPacket = class _USBIsochronousOutTransferPacket extends _interceptors.Interceptor {
    static new(status, bytesWritten = null) {
      if (status == null) dart.nullFailed(I[147], 35592, 51, "status");
      if (bytesWritten != null) {
        return html$._USBIsochronousOutTransferPacket._create_1(status, bytesWritten);
      }
      return html$._USBIsochronousOutTransferPacket._create_2(status);
    }
    static _create_1(status, bytesWritten) {
      return new USBIsochronousOutTransferPacket(status, bytesWritten);
    }
    static _create_2(status) {
      return new USBIsochronousOutTransferPacket(status);
    }
  };
  dart.addTypeTests(html$._USBIsochronousOutTransferPacket);
  dart.addTypeCaches(html$._USBIsochronousOutTransferPacket);
  dart.setLibraryUri(html$._USBIsochronousOutTransferPacket, I[148]);
  dart.registerExtension("USBIsochronousOutTransferPacket", html$._USBIsochronousOutTransferPacket);
  html$._USBIsochronousOutTransferResult = class _USBIsochronousOutTransferResult extends _interceptors.Interceptor {
    static new(packets) {
      if (packets == null) dart.nullFailed(I[147], 35620, 46, "packets");
      return html$._USBIsochronousOutTransferResult._create_1(packets);
    }
    static _create_1(packets) {
      return new USBIsochronousOutTransferResult(packets);
    }
  };
  dart.addTypeTests(html$._USBIsochronousOutTransferResult);
  dart.addTypeCaches(html$._USBIsochronousOutTransferResult);
  dart.setLibraryUri(html$._USBIsochronousOutTransferResult, I[148]);
  dart.registerExtension("USBIsochronousOutTransferResult", html$._USBIsochronousOutTransferResult);
  html$._USBOutTransferResult = class _USBOutTransferResult extends _interceptors.Interceptor {
    static new(status, bytesWritten = null) {
      if (status == null) dart.nullFailed(I[147], 35639, 40, "status");
      if (bytesWritten != null) {
        return html$._USBOutTransferResult._create_1(status, bytesWritten);
      }
      return html$._USBOutTransferResult._create_2(status);
    }
    static _create_1(status, bytesWritten) {
      return new USBOutTransferResult(status, bytesWritten);
    }
    static _create_2(status) {
      return new USBOutTransferResult(status);
    }
  };
  dart.addTypeTests(html$._USBOutTransferResult);
  dart.addTypeCaches(html$._USBOutTransferResult);
  dart.setLibraryUri(html$._USBOutTransferResult, I[148]);
  dart.registerExtension("USBOutTransferResult", html$._USBOutTransferResult);
  html$._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._WindowTimers);
  dart.addTypeCaches(html$._WindowTimers);
  dart.setLibraryUri(html$._WindowTimers, I[148]);
  html$._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._WorkerLocation);
  dart.addTypeCaches(html$._WorkerLocation);
  html$._WorkerLocation[dart.implements] = () => [html$.UrlUtilsReadOnly];
  dart.setLibraryUri(html$._WorkerLocation, I[148]);
  dart.registerExtension("WorkerLocation", html$._WorkerLocation);
  html$._WorkerNavigator = class _WorkerNavigator extends html$.NavigatorConcurrentHardware {};
  dart.addTypeTests(html$._WorkerNavigator);
  dart.addTypeCaches(html$._WorkerNavigator);
  html$._WorkerNavigator[dart.implements] = () => [html$.NavigatorOnLine, html$.NavigatorID];
  dart.setLibraryUri(html$._WorkerNavigator, I[148]);
  dart.registerExtension("WorkerNavigator", html$._WorkerNavigator);
  html$._Worklet = class _Worklet extends _interceptors.Interceptor {};
  dart.addTypeTests(html$._Worklet);
  dart.addTypeCaches(html$._Worklet);
  dart.setLibraryUri(html$._Worklet, I[148]);
  dart.registerExtension("Worklet", html$._Worklet);
  html$._AttributeMap = class _AttributeMap extends collection.MapBase$(core.String, core.String) {
    addAll(other) {
      T$0.MapOfString$String().as(other);
      if (other == null) dart.nullFailed(I[147], 35728, 35, "other");
      other[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 35729, 20, "k");
        if (v == null) dart.nullFailed(I[147], 35729, 23, "v");
        this[$_set](k, v);
      }, T$0.StringAndStringTovoid()));
    }
    cast(K, V) {
      return core.Map.castFrom(core.String, core.String, K, V, this);
    }
    containsValue(value) {
      for (let v of this.values) {
        if (dart.equals(value, v)) {
          return true;
        }
      }
      return false;
    }
    putIfAbsent(key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 35744, 29, "key");
      T$.VoidToString().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 35744, 41, "ifAbsent");
      if (!dart.test(this[$containsKey](key))) {
        this[$_set](key, ifAbsent());
      }
      return dart.nullCast(this[$_get](key), core.String);
    }
    clear() {
      for (let key of this.keys) {
        this[$remove](key);
      }
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[147], 35757, 21, "f");
      for (let key of this.keys) {
        let value = this[$_get](key);
        f(key, dart.nullCast(value, core.String));
      }
    }
    get keys() {
      let attributes = dart.nullCheck(this[S$1._element$2][S._attributes$1]);
      let keys = T$.JSArrayOfString().of([]);
      for (let i = 0, len = attributes[$length]; i < dart.notNull(len); i = i + 1) {
        let attr = html$._Attr.as(attributes[$_get](i));
        if (dart.test(this[S$3._matches](attr))) {
          keys[$add](dart.nullCheck(attr.name));
        }
      }
      return keys;
    }
    get values() {
      let attributes = dart.nullCheck(this[S$1._element$2][S._attributes$1]);
      let values = T$.JSArrayOfString().of([]);
      for (let i = 0, len = attributes[$length]; i < dart.notNull(len); i = i + 1) {
        let attr = html$._Attr.as(attributes[$_get](i));
        if (dart.test(this[S$3._matches](attr))) {
          values[$add](dart.nullCheck(attr.value));
        }
      }
      return values;
    }
    get isEmpty() {
      return this[$length] === 0;
    }
    get isNotEmpty() {
      return !dart.test(this.isEmpty);
    }
  };
  (html$._AttributeMap.new = function(_element) {
    if (_element == null) dart.nullFailed(I[147], 35726, 22, "_element");
    this[S$1._element$2] = _element;
    ;
  }).prototype = html$._AttributeMap.prototype;
  dart.addTypeTests(html$._AttributeMap);
  dart.addTypeCaches(html$._AttributeMap);
  dart.setMethodSignature(html$._AttributeMap, () => ({
    __proto__: dart.getMethods(html$._AttributeMap.__proto__),
    cast: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(html$._AttributeMap, () => ({
    __proto__: dart.getGetters(html$._AttributeMap.__proto__),
    keys: core.Iterable$(core.String),
    [$keys]: core.Iterable$(core.String)
  }));
  dart.setLibraryUri(html$._AttributeMap, I[148]);
  dart.setFieldSignature(html$._AttributeMap, () => ({
    __proto__: dart.getFields(html$._AttributeMap.__proto__),
    [S$1._element$2]: dart.finalFieldType(html$.Element)
  }));
  dart.defineExtensionMethods(html$._AttributeMap, [
    'addAll',
    'cast',
    'containsValue',
    'putIfAbsent',
    'clear',
    'forEach'
  ]);
  dart.defineExtensionAccessors(html$._AttributeMap, ['keys', 'values', 'isEmpty', 'isNotEmpty']);
  html$._ElementAttributeMap = class _ElementAttributeMap extends html$._AttributeMap {
    containsKey(key) {
      return typeof key == 'string' && dart.test(this[S$1._element$2][S._hasAttribute](key));
    }
    _get(key) {
      return this[S$1._element$2][S.$getAttribute](core.String.as(key));
    }
    _set(key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 35822, 28, "key");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 35822, 40, "value");
      this[S$1._element$2][S.$setAttribute](key, value);
      return value$;
    }
    remove(key) {
      return typeof key == 'string' ? html$._ElementAttributeMap._remove(this[S$1._element$2], key) : null;
    }
    get length() {
      return this.keys[$length];
    }
    [S$3._matches](node) {
      if (node == null) dart.nullFailed(I[147], 35836, 23, "node");
      return node[S._namespaceUri] == null;
    }
    static _remove(element, key) {
      if (element == null) dart.nullFailed(I[147], 35841, 34, "element");
      if (key == null) dart.nullFailed(I[147], 35841, 50, "key");
      let value = element.getAttribute(key);
      element.removeAttribute(key);
      return value;
    }
  };
  (html$._ElementAttributeMap.new = function(element) {
    if (element == null) dart.nullFailed(I[147], 35812, 32, "element");
    html$._ElementAttributeMap.__proto__.new.call(this, element);
    ;
  }).prototype = html$._ElementAttributeMap.prototype;
  dart.addTypeTests(html$._ElementAttributeMap);
  dart.addTypeCaches(html$._ElementAttributeMap);
  dart.setMethodSignature(html$._ElementAttributeMap, () => ({
    __proto__: dart.getMethods(html$._ElementAttributeMap.__proto__),
    _get: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    remove: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [S$3._matches]: dart.fnType(core.bool, [html$._Attr])
  }));
  dart.setLibraryUri(html$._ElementAttributeMap, I[148]);
  dart.defineExtensionMethods(html$._ElementAttributeMap, ['containsKey', '_get', '_set', 'remove']);
  dart.defineExtensionAccessors(html$._ElementAttributeMap, ['length']);
  html$._NamespacedAttributeMap = class _NamespacedAttributeMap extends html$._AttributeMap {
    containsKey(key) {
      return typeof key == 'string' && dart.test(this[S$1._element$2][S._hasAttributeNS](this[S$3._namespace], key));
    }
    _get(key) {
      return this[S$1._element$2][S.$getAttributeNS](this[S$3._namespace], core.String.as(key));
    }
    _set(key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 35870, 28, "key");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 35870, 40, "value");
      this[S$1._element$2][S.$setAttributeNS](this[S$3._namespace], key, value);
      return value$;
    }
    remove(key) {
      return typeof key == 'string' ? html$._NamespacedAttributeMap._remove(this[S$3._namespace], this[S$1._element$2], key) : null;
    }
    get length() {
      return this.keys[$length];
    }
    [S$3._matches](node) {
      if (node == null) dart.nullFailed(I[147], 35885, 23, "node");
      return node[S._namespaceUri] == this[S$3._namespace];
    }
    static _remove(namespace, element, key) {
      if (element == null) dart.nullFailed(I[147], 35891, 53, "element");
      if (key == null) dart.nullFailed(I[147], 35891, 69, "key");
      let value = element.getAttributeNS(namespace, key);
      element.removeAttributeNS(namespace, key);
      return value;
    }
  };
  (html$._NamespacedAttributeMap.new = function(element, _namespace) {
    if (element == null) dart.nullFailed(I[147], 35860, 35, "element");
    this[S$3._namespace] = _namespace;
    html$._NamespacedAttributeMap.__proto__.new.call(this, element);
    ;
  }).prototype = html$._NamespacedAttributeMap.prototype;
  dart.addTypeTests(html$._NamespacedAttributeMap);
  dart.addTypeCaches(html$._NamespacedAttributeMap);
  dart.setMethodSignature(html$._NamespacedAttributeMap, () => ({
    __proto__: dart.getMethods(html$._NamespacedAttributeMap.__proto__),
    _get: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    remove: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [S$3._matches]: dart.fnType(core.bool, [html$._Attr])
  }));
  dart.setLibraryUri(html$._NamespacedAttributeMap, I[148]);
  dart.setFieldSignature(html$._NamespacedAttributeMap, () => ({
    __proto__: dart.getFields(html$._NamespacedAttributeMap.__proto__),
    [S$3._namespace]: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(html$._NamespacedAttributeMap, ['containsKey', '_get', '_set', 'remove']);
  dart.defineExtensionAccessors(html$._NamespacedAttributeMap, ['length']);
  html$._DataAttributeMap = class _DataAttributeMap extends collection.MapBase$(core.String, core.String) {
    addAll(other) {
      T$0.MapOfString$String().as(other);
      if (other == null) dart.nullFailed(I[147], 35916, 35, "other");
      other[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[147], 35917, 20, "k");
        if (v == null) dart.nullFailed(I[147], 35917, 23, "v");
        this._set(k, v);
      }, T$0.StringAndStringTovoid()));
    }
    cast(K, V) {
      return core.Map.castFrom(core.String, core.String, K, V, this);
    }
    containsValue(value) {
      return this.values[$any](dart.fn(v => {
        if (v == null) dart.nullFailed(I[147], 35924, 52, "v");
        return core.identical(v, value);
      }, T$.StringTobool()));
    }
    containsKey(key) {
      return this[S._attributes$1][$containsKey](this[S$3._attr](core.String.as(key)));
    }
    _get(key) {
      return this[S._attributes$1][$_get](this[S$3._attr](core.String.as(key)));
    }
    _set(key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 35931, 28, "key");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 35931, 40, "value");
      this[S._attributes$1][$_set](this[S$3._attr](key), value);
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[147], 35935, 29, "key");
      T$.VoidToString().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[147], 35935, 41, "ifAbsent");
      return this[S._attributes$1][$putIfAbsent](this[S$3._attr](key), ifAbsent);
    }
    remove(key) {
      return this[S._attributes$1][$remove](this[S$3._attr](core.String.as(key)));
    }
    clear() {
      for (let key of this.keys) {
        this.remove(key);
      }
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[147], 35947, 21, "f");
      this[S._attributes$1][$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[147], 35948, 33, "key");
        if (value == null) dart.nullFailed(I[147], 35948, 45, "value");
        if (dart.test(this[S$3._matches](key))) {
          f(this[S$3._strip](key), value);
        }
      }, T$0.StringAndStringTovoid()));
    }
    get keys() {
      let keys = T$.JSArrayOfString().of([]);
      this[S._attributes$1][$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[147], 35957, 33, "key");
        if (value == null) dart.nullFailed(I[147], 35957, 45, "value");
        if (dart.test(this[S$3._matches](key))) {
          keys[$add](this[S$3._strip](key));
        }
      }, T$0.StringAndStringTovoid()));
      return keys;
    }
    get values() {
      let values = T$.JSArrayOfString().of([]);
      this[S._attributes$1][$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[147], 35967, 33, "key");
        if (value == null) dart.nullFailed(I[147], 35967, 45, "value");
        if (dart.test(this[S$3._matches](key))) {
          values[$add](value);
        }
      }, T$0.StringAndStringTovoid()));
      return values;
    }
    get length() {
      return this.keys[$length];
    }
    get isEmpty() {
      return this.length === 0;
    }
    get isNotEmpty() {
      return !dart.test(this.isEmpty);
    }
    [S$3._attr](key) {
      if (key == null) dart.nullFailed(I[147], 35983, 23, "key");
      return "data-" + dart.str(this[S$3._toHyphenedName](key));
    }
    [S$3._matches](key) {
      if (key == null) dart.nullFailed(I[147], 35984, 24, "key");
      return key[$startsWith]("data-");
    }
    [S$3._strip](key) {
      if (key == null) dart.nullFailed(I[147], 35985, 24, "key");
      return this[S$3._toCamelCase](key[$substring](5));
    }
    [S$3._toCamelCase](hyphenedName, opts) {
      if (hyphenedName == null) dart.nullFailed(I[147], 35992, 30, "hyphenedName");
      let startUppercase = opts && 'startUppercase' in opts ? opts.startUppercase : false;
      if (startUppercase == null) dart.nullFailed(I[147], 35992, 50, "startUppercase");
      let segments = hyphenedName[$split]("-");
      let start = dart.test(startUppercase) ? 0 : 1;
      for (let i = start; i < dart.notNull(segments[$length]); i = i + 1) {
        let segment = segments[$_get](i);
        if (segment.length > 0) {
          segments[$_set](i, segment[$_get](0)[$toUpperCase]() + segment[$substring](1));
        }
      }
      return segments[$join]("");
    }
    [S$3._toHyphenedName](word) {
      if (word == null) dart.nullFailed(I[147], 36006, 33, "word");
      let sb = new core.StringBuffer.new();
      for (let i = 0; i < word.length; i = i + 1) {
        let lower = word[$_get](i)[$toLowerCase]();
        if (word[$_get](i) !== lower && i > 0) sb.write("-");
        sb.write(lower);
      }
      return sb.toString();
    }
  };
  (html$._DataAttributeMap.new = function(_attributes) {
    if (_attributes == null) dart.nullFailed(I[147], 35912, 26, "_attributes");
    this[S._attributes$1] = _attributes;
    ;
  }).prototype = html$._DataAttributeMap.prototype;
  dart.addTypeTests(html$._DataAttributeMap);
  dart.addTypeCaches(html$._DataAttributeMap);
  dart.setMethodSignature(html$._DataAttributeMap, () => ({
    __proto__: dart.getMethods(html$._DataAttributeMap.__proto__),
    cast: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    _get: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    remove: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    [S$3._attr]: dart.fnType(core.String, [core.String]),
    [S$3._matches]: dart.fnType(core.bool, [core.String]),
    [S$3._strip]: dart.fnType(core.String, [core.String]),
    [S$3._toCamelCase]: dart.fnType(core.String, [core.String], {startUppercase: core.bool}, {}),
    [S$3._toHyphenedName]: dart.fnType(core.String, [core.String])
  }));
  dart.setGetterSignature(html$._DataAttributeMap, () => ({
    __proto__: dart.getGetters(html$._DataAttributeMap.__proto__),
    keys: core.Iterable$(core.String),
    [$keys]: core.Iterable$(core.String)
  }));
  dart.setLibraryUri(html$._DataAttributeMap, I[148]);
  dart.setFieldSignature(html$._DataAttributeMap, () => ({
    __proto__: dart.getFields(html$._DataAttributeMap.__proto__),
    [S._attributes$1]: dart.finalFieldType(core.Map$(core.String, core.String))
  }));
  dart.defineExtensionMethods(html$._DataAttributeMap, [
    'addAll',
    'cast',
    'containsValue',
    'containsKey',
    '_get',
    '_set',
    'putIfAbsent',
    'remove',
    'clear',
    'forEach'
  ]);
  dart.defineExtensionAccessors(html$._DataAttributeMap, [
    'keys',
    'values',
    'length',
    'isEmpty',
    'isNotEmpty'
  ]);
  html$.CanvasImageSource = class CanvasImageSource extends core.Object {};
  (html$.CanvasImageSource.new = function() {
    ;
  }).prototype = html$.CanvasImageSource.prototype;
  dart.addTypeTests(html$.CanvasImageSource);
  dart.addTypeCaches(html$.CanvasImageSource);
  dart.setLibraryUri(html$.CanvasImageSource, I[148]);
  html$.WindowBase = class WindowBase extends core.Object {};
  (html$.WindowBase.new = function() {
    ;
  }).prototype = html$.WindowBase.prototype;
  dart.addTypeTests(html$.WindowBase);
  dart.addTypeCaches(html$.WindowBase);
  html$.WindowBase[dart.implements] = () => [html$.EventTarget];
  dart.setLibraryUri(html$.WindowBase, I[148]);
  html$.LocationBase = class LocationBase extends core.Object {};
  (html$.LocationBase.new = function() {
    ;
  }).prototype = html$.LocationBase.prototype;
  dart.addTypeTests(html$.LocationBase);
  dart.addTypeCaches(html$.LocationBase);
  dart.setLibraryUri(html$.LocationBase, I[148]);
  html$.HistoryBase = class HistoryBase extends core.Object {};
  (html$.HistoryBase.new = function() {
    ;
  }).prototype = html$.HistoryBase.prototype;
  dart.addTypeTests(html$.HistoryBase);
  dart.addTypeCaches(html$.HistoryBase);
  dart.setLibraryUri(html$.HistoryBase, I[148]);
  html$.CssClassSet = class CssClassSet extends core.Object {
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  };
  (html$.CssClassSet.new = function() {
    ;
  }).prototype = html$.CssClassSet.prototype;
  dart.addTypeTests(html$.CssClassSet);
  dart.addTypeCaches(html$.CssClassSet);
  html$.CssClassSet[dart.implements] = () => [core.Set$(core.String)];
  dart.setLibraryUri(html$.CssClassSet, I[148]);
  html$.CssRect = class CssRect extends core.Object {
    set height(newHeight) {
      dart.throw(new core.UnsupportedError.new("Can only set height for content rect."));
    }
    set width(newWidth) {
      dart.throw(new core.UnsupportedError.new("Can only set width for content rect."));
    }
    [S$3._addOrSubtractToBoxModel](dimensions, augmentingMeasurement) {
      if (dimensions == null) dart.nullFailed(I[147], 36557, 20, "dimensions");
      if (augmentingMeasurement == null) dart.nullFailed(I[147], 36557, 39, "augmentingMeasurement");
      let styles = this[S$1._element$2][S.$getComputedStyle]();
      let val = 0;
      for (let measurement of dimensions) {
        if (augmentingMeasurement == html$._MARGIN) {
          val = val + dart.notNull(new html$.Dimension.css(styles[S$.$getPropertyValue](dart.str(augmentingMeasurement) + "-" + dart.str(measurement))).value);
        }
        if (augmentingMeasurement == html$._CONTENT) {
          val = val - dart.notNull(new html$.Dimension.css(styles[S$.$getPropertyValue](dart.str(html$._PADDING) + "-" + dart.str(measurement))).value);
        }
        if (augmentingMeasurement != html$._MARGIN) {
          val = val - dart.notNull(new html$.Dimension.css(styles[S$.$getPropertyValue]("border-" + dart.str(measurement) + "-width")).value);
        }
      }
      return val;
    }
    get right() {
      return dart.notNull(this.left) + dart.notNull(this.width);
    }
    get bottom() {
      return dart.notNull(this.top) + dart.notNull(this.height);
    }
    toString() {
      return "Rectangle (" + dart.str(this.left) + ", " + dart.str(this.top) + ") " + dart.str(this.width) + " x " + dart.str(this.height);
    }
    _equals(other) {
      if (other == null) return false;
      return T$0.RectangleOfnum().is(other) && this.left == other[$left] && this.top == other[$top] && this.right == other[$right] && this.bottom == other[$bottom];
    }
    get hashCode() {
      return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
    }
    intersection(other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 36623, 47, "other");
      let x0 = math.max(core.num, this.left, other[$left]);
      let x1 = math.min(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      if (x0 <= x1) {
        let y0 = math.max(core.num, this.top, other[$top]);
        let y1 = math.min(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
        if (y0 <= y1) {
          return new (T$0.RectangleOfnum()).new(x0, y0, x1 - x0, y1 - y0);
        }
      }
      return null;
    }
    intersects(other) {
      if (other == null) dart.nullFailed(I[147], 36641, 34, "other");
      return dart.notNull(this.left) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this.top) + dart.notNull(this.height);
    }
    boundingBox(other) {
      T$0.RectangleOfnum().as(other);
      if (other == null) dart.nullFailed(I[147], 36651, 45, "other");
      let right = math.max(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      let bottom = math.max(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      let left = math.min(core.num, this.left, other[$left]);
      let top = math.min(core.num, this.top, other[$top]);
      return new (T$0.RectangleOfnum()).new(left, top, right - left, bottom - top);
    }
    containsRectangle(another) {
      if (another == null) dart.nullFailed(I[147], 36664, 41, "another");
      return dart.notNull(this.left) <= dart.notNull(another[$left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this.top) <= dart.notNull(another[$top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
    }
    containsPoint(another) {
      if (another == null) dart.nullFailed(I[147], 36674, 33, "another");
      return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
    }
    get topLeft() {
      return new (T$0.PointOfnum()).new(this.left, this.top);
    }
    get topRight() {
      return new (T$0.PointOfnum()).new(dart.notNull(this.left) + dart.notNull(this.width), this.top);
    }
    get bottomRight() {
      return new (T$0.PointOfnum()).new(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
    }
    get bottomLeft() {
      return new (T$0.PointOfnum()).new(this.left, dart.notNull(this.top) + dart.notNull(this.height));
    }
  };
  (html$.CssRect.new = function(_element) {
    if (_element == null) dart.nullFailed(I[147], 36495, 16, "_element");
    this[S$1._element$2] = _element;
    ;
  }).prototype = html$.CssRect.prototype;
  dart.addTypeTests(html$.CssRect);
  dart.addTypeCaches(html$.CssRect);
  html$.CssRect[dart.implements] = () => [math.Rectangle$(core.num)];
  dart.setMethodSignature(html$.CssRect, () => ({
    __proto__: dart.getMethods(html$.CssRect.__proto__),
    [S$3._addOrSubtractToBoxModel]: dart.fnType(core.num, [core.List$(core.String), core.String]),
    intersection: dart.fnType(dart.nullable(math.Rectangle$(core.num)), [dart.nullable(core.Object)]),
    [$intersection]: dart.fnType(dart.nullable(math.Rectangle$(core.num)), [dart.nullable(core.Object)]),
    intersects: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    boundingBox: dart.fnType(math.Rectangle$(core.num), [dart.nullable(core.Object)]),
    [$boundingBox]: dart.fnType(math.Rectangle$(core.num), [dart.nullable(core.Object)]),
    containsRectangle: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    containsPoint: dart.fnType(core.bool, [math.Point$(core.num)]),
    [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
  }));
  dart.setGetterSignature(html$.CssRect, () => ({
    __proto__: dart.getGetters(html$.CssRect.__proto__),
    right: core.num,
    [$right]: core.num,
    bottom: core.num,
    [$bottom]: core.num,
    topLeft: math.Point$(core.num),
    [$topLeft]: math.Point$(core.num),
    topRight: math.Point$(core.num),
    [$topRight]: math.Point$(core.num),
    bottomRight: math.Point$(core.num),
    [$bottomRight]: math.Point$(core.num),
    bottomLeft: math.Point$(core.num),
    [$bottomLeft]: math.Point$(core.num)
  }));
  dart.setSetterSignature(html$.CssRect, () => ({
    __proto__: dart.getSetters(html$.CssRect.__proto__),
    height: dart.dynamic,
    [$height]: dart.dynamic,
    width: dart.dynamic,
    [$width]: dart.dynamic
  }));
  dart.setLibraryUri(html$.CssRect, I[148]);
  dart.setFieldSignature(html$.CssRect, () => ({
    __proto__: dart.getFields(html$.CssRect.__proto__),
    [S$1._element$2]: dart.fieldType(html$.Element)
  }));
  dart.defineExtensionMethods(html$.CssRect, [
    'toString',
    '_equals',
    'intersection',
    'intersects',
    'boundingBox',
    'containsRectangle',
    'containsPoint'
  ]);
  dart.defineExtensionAccessors(html$.CssRect, [
    'height',
    'width',
    'right',
    'bottom',
    'hashCode',
    'topLeft',
    'topRight',
    'bottomRight',
    'bottomLeft'
  ]);
  html$._ContentCssRect = class _ContentCssRect extends html$.CssRect {
    get height() {
      return dart.notNull(this[S$1._element$2][S.$offsetHeight]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._HEIGHT, html$._CONTENT));
    }
    get width() {
      return dart.notNull(this[S$1._element$2][S.$offsetWidth]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._WIDTH, html$._CONTENT));
    }
    set height(newHeight) {
      if (html$.Dimension.is(newHeight)) {
        let newHeightAsDimension = newHeight;
        if (dart.notNull(newHeightAsDimension.value) < 0) newHeight = new html$.Dimension.px(0);
        this[S$1._element$2].style[$height] = dart.toString(newHeight);
      } else if (typeof newHeight == 'number') {
        if (dart.notNull(newHeight) < 0) newHeight = 0;
        this[S$1._element$2].style[$height] = dart.str(newHeight) + "px";
      } else {
        dart.throw(new core.ArgumentError.new("newHeight is not a Dimension or num"));
      }
    }
    set width(newWidth) {
      if (html$.Dimension.is(newWidth)) {
        let newWidthAsDimension = newWidth;
        if (dart.notNull(newWidthAsDimension.value) < 0) newWidth = new html$.Dimension.px(0);
        this[S$1._element$2].style[$width] = dart.toString(newWidth);
      } else if (typeof newWidth == 'number') {
        if (dart.notNull(newWidth) < 0) newWidth = 0;
        this[S$1._element$2].style[$width] = dart.str(newWidth) + "px";
      } else {
        dart.throw(new core.ArgumentError.new("newWidth is not a Dimension or num"));
      }
    }
    get left() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$left]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["left"]), html$._CONTENT));
    }
    get top() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$top]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["top"]), html$._CONTENT));
    }
  };
  (html$._ContentCssRect.new = function(element) {
    if (element == null) dart.nullFailed(I[147], 36333, 27, "element");
    html$._ContentCssRect.__proto__.new.call(this, element);
    ;
  }).prototype = html$._ContentCssRect.prototype;
  dart.addTypeTests(html$._ContentCssRect);
  dart.addTypeCaches(html$._ContentCssRect);
  dart.setGetterSignature(html$._ContentCssRect, () => ({
    __proto__: dart.getGetters(html$._ContentCssRect.__proto__),
    height: core.num,
    [$height]: core.num,
    width: core.num,
    [$width]: core.num,
    left: core.num,
    [$left]: core.num,
    top: core.num,
    [$top]: core.num
  }));
  dart.setLibraryUri(html$._ContentCssRect, I[148]);
  dart.defineExtensionAccessors(html$._ContentCssRect, ['height', 'width', 'left', 'top']);
  html$._ContentCssListRect = class _ContentCssListRect extends html$._ContentCssRect {
    set height(newHeight) {
      this[S$3._elementList][$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 36412, 27, "e");
        return e[S.$contentEdge].height = newHeight;
      }, T$0.ElementTovoid()));
    }
    get height() {
      return super.height;
    }
    set width(newWidth) {
      this[S$3._elementList][$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 36422, 27, "e");
        return e[S.$contentEdge].width = newWidth;
      }, T$0.ElementTovoid()));
    }
    get width() {
      return super.width;
    }
  };
  (html$._ContentCssListRect.new = function(elementList) {
    if (elementList == null) dart.nullFailed(I[147], 36399, 37, "elementList");
    this[S$3._elementList] = elementList;
    html$._ContentCssListRect.__proto__.new.call(this, elementList[$first]);
    ;
  }).prototype = html$._ContentCssListRect.prototype;
  dart.addTypeTests(html$._ContentCssListRect);
  dart.addTypeCaches(html$._ContentCssListRect);
  dart.setLibraryUri(html$._ContentCssListRect, I[148]);
  dart.setFieldSignature(html$._ContentCssListRect, () => ({
    __proto__: dart.getFields(html$._ContentCssListRect.__proto__),
    [S$3._elementList]: dart.fieldType(core.List$(html$.Element))
  }));
  dart.defineExtensionAccessors(html$._ContentCssListRect, ['height', 'width']);
  html$._PaddingCssRect = class _PaddingCssRect extends html$.CssRect {
    get height() {
      return dart.notNull(this[S$1._element$2][S.$offsetHeight]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._HEIGHT, html$._PADDING));
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return dart.notNull(this[S$1._element$2][S.$offsetWidth]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._WIDTH, html$._PADDING));
    }
    set width(value) {
      super.width = value;
    }
    get left() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$left]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["left"]), html$._PADDING));
    }
    get top() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$top]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["top"]), html$._PADDING));
    }
  };
  (html$._PaddingCssRect.new = function(element) {
    html$._PaddingCssRect.__proto__.new.call(this, html$.Element.as(element));
    ;
  }).prototype = html$._PaddingCssRect.prototype;
  dart.addTypeTests(html$._PaddingCssRect);
  dart.addTypeCaches(html$._PaddingCssRect);
  dart.setGetterSignature(html$._PaddingCssRect, () => ({
    __proto__: dart.getGetters(html$._PaddingCssRect.__proto__),
    height: core.num,
    [$height]: core.num,
    width: core.num,
    [$width]: core.num,
    left: core.num,
    [$left]: core.num,
    top: core.num,
    [$top]: core.num
  }));
  dart.setLibraryUri(html$._PaddingCssRect, I[148]);
  dart.defineExtensionAccessors(html$._PaddingCssRect, ['height', 'width', 'left', 'top']);
  html$._BorderCssRect = class _BorderCssRect extends html$.CssRect {
    get height() {
      return this[S$1._element$2][S.$offsetHeight];
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return this[S$1._element$2][S.$offsetWidth];
    }
    set width(value) {
      super.width = value;
    }
    get left() {
      return this[S$1._element$2].getBoundingClientRect()[$left];
    }
    get top() {
      return this[S$1._element$2].getBoundingClientRect()[$top];
    }
  };
  (html$._BorderCssRect.new = function(element) {
    html$._BorderCssRect.__proto__.new.call(this, html$.Element.as(element));
    ;
  }).prototype = html$._BorderCssRect.prototype;
  dart.addTypeTests(html$._BorderCssRect);
  dart.addTypeCaches(html$._BorderCssRect);
  dart.setGetterSignature(html$._BorderCssRect, () => ({
    __proto__: dart.getGetters(html$._BorderCssRect.__proto__),
    height: core.num,
    [$height]: core.num,
    width: core.num,
    [$width]: core.num,
    left: core.num,
    [$left]: core.num,
    top: core.num,
    [$top]: core.num
  }));
  dart.setLibraryUri(html$._BorderCssRect, I[148]);
  dart.defineExtensionAccessors(html$._BorderCssRect, ['height', 'width', 'left', 'top']);
  html$._MarginCssRect = class _MarginCssRect extends html$.CssRect {
    get height() {
      return dart.notNull(this[S$1._element$2][S.$offsetHeight]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._HEIGHT, html$._MARGIN));
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return dart.notNull(this[S$1._element$2][S.$offsetWidth]) + dart.notNull(this[S$3._addOrSubtractToBoxModel](html$._WIDTH, html$._MARGIN));
    }
    set width(value) {
      super.width = value;
    }
    get left() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$left]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["left"]), html$._MARGIN));
    }
    get top() {
      return dart.notNull(this[S$1._element$2].getBoundingClientRect()[$top]) - dart.notNull(this[S$3._addOrSubtractToBoxModel](T$.JSArrayOfString().of(["top"]), html$._MARGIN));
    }
  };
  (html$._MarginCssRect.new = function(element) {
    html$._MarginCssRect.__proto__.new.call(this, html$.Element.as(element));
    ;
  }).prototype = html$._MarginCssRect.prototype;
  dart.addTypeTests(html$._MarginCssRect);
  dart.addTypeCaches(html$._MarginCssRect);
  dart.setGetterSignature(html$._MarginCssRect, () => ({
    __proto__: dart.getGetters(html$._MarginCssRect.__proto__),
    height: core.num,
    [$height]: core.num,
    width: core.num,
    [$width]: core.num,
    left: core.num,
    [$left]: core.num,
    top: core.num,
    [$top]: core.num
  }));
  dart.setLibraryUri(html$._MarginCssRect, I[148]);
  dart.defineExtensionAccessors(html$._MarginCssRect, ['height', 'width', 'left', 'top']);
  html_common.CssClassSetImpl = class CssClassSetImpl extends collection.SetBase$(core.String) {
    [S$3._validateToken](value) {
      if (value == null) dart.nullFailed(I[149], 10, 32, "value");
      if (dart.test(html_common.CssClassSetImpl._validTokenRE.hasMatch(value))) return value;
      dart.throw(new core.ArgumentError.value(value, "value", "Not a valid class token"));
    }
    toString() {
      return this.readClasses()[$join](" ");
    }
    toggle(value, shouldAdd = null) {
      if (value == null) dart.nullFailed(I[149], 26, 22, "value");
      this[S$3._validateToken](value);
      let s = this.readClasses();
      let result = false;
      if (shouldAdd == null) shouldAdd = !dart.test(s.contains(value));
      if (dart.test(shouldAdd)) {
        s.add(value);
        result = true;
      } else {
        s.remove(value);
      }
      this.writeClasses(s);
      return result;
    }
    get frozen() {
      return false;
    }
    get iterator() {
      return this.readClasses().iterator;
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[149], 52, 21, "f");
      this.readClasses()[$forEach](f);
    }
    join(separator = "") {
      if (separator == null) dart.nullFailed(I[149], 56, 23, "separator");
      return this.readClasses()[$join](separator);
    }
    map(T, f) {
      if (f == null) dart.nullFailed(I[149], 58, 24, "f");
      return this.readClasses()[$map](T, f);
    }
    where(f) {
      if (f == null) dart.nullFailed(I[149], 60, 31, "f");
      return this.readClasses()[$where](f);
    }
    expand(T, f) {
      if (f == null) dart.nullFailed(I[149], 62, 37, "f");
      return this.readClasses()[$expand](T, f);
    }
    every(f) {
      if (f == null) dart.nullFailed(I[149], 65, 19, "f");
      return this.readClasses()[$every](f);
    }
    any(f) {
      if (f == null) dart.nullFailed(I[149], 67, 17, "f");
      return this.readClasses()[$any](f);
    }
    get isEmpty() {
      return this.readClasses()[$isEmpty];
    }
    get isNotEmpty() {
      return this.readClasses()[$isNotEmpty];
    }
    get length() {
      return this.readClasses()[$length];
    }
    reduce(combine) {
      T$0.StringAndStringToString().as(combine);
      if (combine == null) dart.nullFailed(I[149], 75, 24, "combine");
      return this.readClasses()[$reduce](combine);
    }
    fold(T, initialValue, combine) {
      if (combine == null) dart.nullFailed(I[149], 79, 31, "combine");
      return this.readClasses()[$fold](T, initialValue, combine);
    }
    contains(value) {
      if (!(typeof value == 'string')) return false;
      this[S$3._validateToken](value);
      return this.readClasses().contains(value);
    }
    lookup(value) {
      return dart.test(this.contains(value)) ? core.String.as(value) : null;
    }
    add(value) {
      let t241;
      core.String.as(value);
      if (value == null) dart.nullFailed(I[149], 107, 19, "value");
      this[S$3._validateToken](value);
      return core.bool.as((t241 = this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 111, 20, "s");
        return s.add(value);
      }, T$0.SetOfStringTobool())), t241 == null ? false : t241));
    }
    remove(value) {
      if (!(typeof value == 'string')) return false;
      this[S$3._validateToken](value);
      let s = this.readClasses();
      let result = s.remove(value);
      this.writeClasses(s);
      return result;
    }
    addAll(iterable) {
      T$0.IterableOfString().as(iterable);
      if (iterable == null) dart.nullFailed(I[149], 136, 32, "iterable");
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 138, 13, "s");
        return s.addAll(iterable[$map](core.String, dart.bind(this, S$3._validateToken)));
      }, T$0.SetOfStringTovoid()));
    }
    removeAll(iterable) {
      if (iterable == null) dart.nullFailed(I[149], 147, 36, "iterable");
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 148, 13, "s");
        return s.removeAll(iterable);
      }, T$0.SetOfStringTovoid()));
    }
    toggleAll(iterable, shouldAdd = null) {
      if (iterable == null) dart.nullFailed(I[149], 161, 35, "iterable");
      iterable[$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[149], 162, 23, "e");
        return this.toggle(e, shouldAdd);
      }, T$.StringTovoid()));
    }
    retainAll(iterable) {
      if (iterable == null) dart.nullFailed(I[149], 165, 36, "iterable");
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 166, 13, "s");
        return s.retainAll(iterable);
      }, T$0.SetOfStringTovoid()));
    }
    removeWhere(test) {
      if (test == null) dart.nullFailed(I[149], 169, 25, "test");
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 170, 13, "s");
        return s.removeWhere(test);
      }, T$0.SetOfStringTovoid()));
    }
    retainWhere(test) {
      if (test == null) dart.nullFailed(I[149], 173, 25, "test");
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 174, 13, "s");
        return s.retainWhere(test);
      }, T$0.SetOfStringTovoid()));
    }
    containsAll(collection) {
      if (collection == null) dart.nullFailed(I[149], 177, 38, "collection");
      return this.readClasses().containsAll(collection);
    }
    intersection(other) {
      if (other == null) dart.nullFailed(I[149], 180, 41, "other");
      return this.readClasses().intersection(other);
    }
    union(other) {
      T$0.SetOfString().as(other);
      if (other == null) dart.nullFailed(I[149], 183, 33, "other");
      return this.readClasses().union(other);
    }
    difference(other) {
      if (other == null) dart.nullFailed(I[149], 185, 39, "other");
      return this.readClasses().difference(other);
    }
    get first() {
      return this.readClasses()[$first];
    }
    get last() {
      return this.readClasses()[$last];
    }
    get single() {
      return this.readClasses()[$single];
    }
    toList(opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      if (growable == null) dart.nullFailed(I[149], 190, 29, "growable");
      return this.readClasses()[$toList]({growable: growable});
    }
    toSet() {
      return this.readClasses().toSet();
    }
    take(n) {
      if (n == null) dart.nullFailed(I[149], 193, 29, "n");
      return this.readClasses()[$take](n);
    }
    takeWhile(test) {
      if (test == null) dart.nullFailed(I[149], 194, 35, "test");
      return this.readClasses()[$takeWhile](test);
    }
    skip(n) {
      if (n == null) dart.nullFailed(I[149], 196, 29, "n");
      return this.readClasses()[$skip](n);
    }
    skipWhile(test) {
      if (test == null) dart.nullFailed(I[149], 197, 35, "test");
      return this.readClasses()[$skipWhile](test);
    }
    firstWhere(test, opts) {
      if (test == null) dart.nullFailed(I[149], 199, 26, "test");
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      T$0.VoidToNString().as(orElse);
      return this.readClasses()[$firstWhere](test, {orElse: orElse});
    }
    lastWhere(test, opts) {
      if (test == null) dart.nullFailed(I[149], 201, 25, "test");
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      T$0.VoidToNString().as(orElse);
      return this.readClasses()[$lastWhere](test, {orElse: orElse});
    }
    singleWhere(test, opts) {
      if (test == null) dart.nullFailed(I[149], 203, 27, "test");
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      T$0.VoidToNString().as(orElse);
      return this.readClasses()[$singleWhere](test, {orElse: orElse});
    }
    elementAt(index) {
      if (index == null) dart.nullFailed(I[149], 205, 24, "index");
      return this.readClasses()[$elementAt](index);
    }
    clear() {
      this.modify(dart.fn(s => {
        if (s == null) dart.nullFailed(I[149], 209, 13, "s");
        return s.clear();
      }, T$0.SetOfStringTovoid()));
    }
    modify(f) {
      if (f == null) dart.nullFailed(I[149], 222, 10, "f");
      let s = this.readClasses();
      let ret = f(s);
      this.writeClasses(s);
      return ret;
    }
  };
  (html_common.CssClassSetImpl.new = function() {
    ;
  }).prototype = html_common.CssClassSetImpl.prototype;
  dart.addTypeTests(html_common.CssClassSetImpl);
  dart.addTypeCaches(html_common.CssClassSetImpl);
  html_common.CssClassSetImpl[dart.implements] = () => [html$.CssClassSet];
  dart.setMethodSignature(html_common.CssClassSetImpl, () => ({
    __proto__: dart.getMethods(html_common.CssClassSetImpl.__proto__),
    [S$3._validateToken]: dart.fnType(core.String, [core.String]),
    toggle: dart.fnType(core.bool, [core.String], [dart.nullable(core.bool)]),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [core.String])]], T => [dart.nullable(core.Object)]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [core.String])]], T => [dart.nullable(core.Object)]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [core.String])]], T => [dart.nullable(core.Object)]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [core.String])]], T => [dart.nullable(core.Object)]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, core.String])]], T => [dart.nullable(core.Object)]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, core.String])]], T => [dart.nullable(core.Object)]),
    contains: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    [$contains]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    lookup: dart.fnType(dart.nullable(core.String), [dart.nullable(core.Object)]),
    add: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    remove: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    toggleAll: dart.fnType(dart.void, [core.Iterable$(core.String)], [dart.nullable(core.bool)]),
    toSet: dart.fnType(core.Set$(core.String), []),
    [$toSet]: dart.fnType(core.Set$(core.String), []),
    modify: dart.fnType(dart.dynamic, [dart.fnType(dart.dynamic, [core.Set$(core.String)])])
  }));
  dart.setGetterSignature(html_common.CssClassSetImpl, () => ({
    __proto__: dart.getGetters(html_common.CssClassSetImpl.__proto__),
    frozen: core.bool,
    iterator: core.Iterator$(core.String),
    [$iterator]: core.Iterator$(core.String),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(html_common.CssClassSetImpl, I[150]);
  dart.defineExtensionMethods(html_common.CssClassSetImpl, [
    'toString',
    'forEach',
    'join',
    'map',
    'where',
    'expand',
    'every',
    'any',
    'reduce',
    'fold',
    'contains',
    'toList',
    'toSet',
    'take',
    'takeWhile',
    'skip',
    'skipWhile',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'elementAt'
  ]);
  dart.defineExtensionAccessors(html_common.CssClassSetImpl, [
    'iterator',
    'isEmpty',
    'isNotEmpty',
    'length',
    'first',
    'last',
    'single'
  ]);
  dart.defineLazy(html_common.CssClassSetImpl, {
    /*html_common.CssClassSetImpl._validTokenRE*/get _validTokenRE() {
      return core.RegExp.new("^\\S+$");
    }
  }, false);
  html$._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
    static new(elements) {
      if (elements == null) dart.nullFailed(I[147], 36708, 54, "elements");
      return new html$._MultiElementCssClassSet.__(elements, T$0.ListOfCssClassSetImpl().from(elements[$map](dart.dynamic, dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 36710, 62, "e");
        return e[S.$classes];
      }, T$0.ElementToCssClassSet()))));
    }
    readClasses() {
      let s = new (T$0._IdentityHashSetOfString()).new();
      this[S$3._sets][$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 36717, 36, "e");
        return s.addAll(e.readClasses());
      }, T$0.CssClassSetImplTovoid()));
      return s;
    }
    writeClasses(s) {
      if (s == null) dart.nullFailed(I[147], 36721, 33, "s");
      let classes = s[$join](" ");
      for (let e of this[S$0._elementIterable]) {
        e.className = classes;
      }
    }
    modify(f) {
      if (f == null) dart.nullFailed(I[147], 36737, 10, "f");
      this[S$3._sets][$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 36738, 36, "e");
        return e.modify(f);
      }, T$0.CssClassSetImplTovoid()));
    }
    toggle(value, shouldAdd = null) {
      if (value == null) dart.nullFailed(I[147], 36748, 22, "value");
      return this[S$3._sets][$fold](core.bool, false, dart.fn((changed, e) => {
        if (changed == null) dart.nullFailed(I[147], 36750, 13, "changed");
        if (e == null) dart.nullFailed(I[147], 36750, 38, "e");
        return dart.test(e.toggle(value, shouldAdd)) || dart.test(changed);
      }, T$0.boolAndCssClassSetImplTobool()));
    }
    remove(value) {
      return this[S$3._sets][$fold](core.bool, false, dart.fn((changed, e) => {
        if (changed == null) dart.nullFailed(I[147], 36761, 20, "changed");
        if (e == null) dart.nullFailed(I[147], 36761, 45, "e");
        return dart.test(e.remove(value)) || dart.test(changed);
      }, T$0.boolAndCssClassSetImplTobool()));
    }
  };
  (html$._MultiElementCssClassSet.__ = function(_elementIterable, _sets) {
    if (_elementIterable == null) dart.nullFailed(I[147], 36713, 35, "_elementIterable");
    if (_sets == null) dart.nullFailed(I[147], 36713, 58, "_sets");
    this[S$0._elementIterable] = _elementIterable;
    this[S$3._sets] = _sets;
    ;
  }).prototype = html$._MultiElementCssClassSet.prototype;
  dart.addTypeTests(html$._MultiElementCssClassSet);
  dart.addTypeCaches(html$._MultiElementCssClassSet);
  dart.setMethodSignature(html$._MultiElementCssClassSet, () => ({
    __proto__: dart.getMethods(html$._MultiElementCssClassSet.__proto__),
    readClasses: dart.fnType(core.Set$(core.String), []),
    writeClasses: dart.fnType(dart.void, [core.Set$(core.String)])
  }));
  dart.setLibraryUri(html$._MultiElementCssClassSet, I[148]);
  dart.setFieldSignature(html$._MultiElementCssClassSet, () => ({
    __proto__: dart.getFields(html$._MultiElementCssClassSet.__proto__),
    [S$0._elementIterable]: dart.finalFieldType(core.Iterable$(html$.Element)),
    [S$3._sets]: dart.finalFieldType(core.List$(html_common.CssClassSetImpl))
  }));
  html$._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
    readClasses() {
      let s = new (T$0._IdentityHashSetOfString()).new();
      let classname = this[S$1._element$2].className;
      for (let name of classname[$split](" ")) {
        let trimmed = name[$trim]();
        if (!trimmed[$isEmpty]) {
          s.add(trimmed);
        }
      }
      return s;
    }
    writeClasses(s) {
      if (s == null) dart.nullFailed(I[147], 36782, 33, "s");
      this[S$1._element$2].className = s[$join](" ");
    }
    get length() {
      return html$._ElementCssClassSet._classListLength(html$._ElementCssClassSet._classListOf(this[S$1._element$2]));
    }
    get isEmpty() {
      return this.length === 0;
    }
    get isNotEmpty() {
      return this.length !== 0;
    }
    clear() {
      this[S$1._element$2].className = "";
    }
    contains(value) {
      return html$._ElementCssClassSet._contains(this[S$1._element$2], value);
    }
    add(value) {
      core.String.as(value);
      if (value == null) dart.nullFailed(I[147], 36798, 19, "value");
      return html$._ElementCssClassSet._add(this[S$1._element$2], value);
    }
    remove(value) {
      return typeof value == 'string' && dart.test(html$._ElementCssClassSet._remove(this[S$1._element$2], value));
    }
    toggle(value, shouldAdd = null) {
      if (value == null) dart.nullFailed(I[147], 36806, 22, "value");
      return html$._ElementCssClassSet._toggle(this[S$1._element$2], value, shouldAdd);
    }
    addAll(iterable) {
      T$0.IterableOfString().as(iterable);
      if (iterable == null) dart.nullFailed(I[147], 36810, 32, "iterable");
      html$._ElementCssClassSet._addAll(this[S$1._element$2], iterable);
    }
    removeAll(iterable) {
      if (iterable == null) dart.nullFailed(I[147], 36814, 36, "iterable");
      html$._ElementCssClassSet._removeAll(this[S$1._element$2], iterable);
    }
    retainAll(iterable) {
      if (iterable == null) dart.nullFailed(I[147], 36818, 36, "iterable");
      html$._ElementCssClassSet._removeWhere(this[S$1._element$2], dart.bind(iterable[$toSet](), 'contains'), false);
    }
    removeWhere(test) {
      if (test == null) dart.nullFailed(I[147], 36822, 25, "test");
      html$._ElementCssClassSet._removeWhere(this[S$1._element$2], test, true);
    }
    retainWhere(test) {
      if (test == null) dart.nullFailed(I[147], 36826, 25, "test");
      html$._ElementCssClassSet._removeWhere(this[S$1._element$2], test, false);
    }
    static _contains(_element, value) {
      if (_element == null) dart.nullFailed(I[147], 36830, 33, "_element");
      return typeof value == 'string' && dart.test(html$._ElementCssClassSet._classListContains(html$._ElementCssClassSet._classListOf(_element), value));
    }
    static _add(_element, value) {
      if (_element == null) dart.nullFailed(I[147], 36835, 28, "_element");
      if (value == null) dart.nullFailed(I[147], 36835, 45, "value");
      let list = html$._ElementCssClassSet._classListOf(_element);
      let added = !dart.test(html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
      html$._ElementCssClassSet._classListAdd(list, value);
      return added;
    }
    static _remove(_element, value) {
      if (_element == null) dart.nullFailed(I[147], 36844, 31, "_element");
      if (value == null) dart.nullFailed(I[147], 36844, 48, "value");
      let list = html$._ElementCssClassSet._classListOf(_element);
      let removed = html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
      html$._ElementCssClassSet._classListRemove(list, value);
      return removed;
    }
    static _toggle(_element, value, shouldAdd) {
      if (_element == null) dart.nullFailed(I[147], 36851, 31, "_element");
      if (value == null) dart.nullFailed(I[147], 36851, 48, "value");
      return shouldAdd == null ? html$._ElementCssClassSet._toggleDefault(_element, value) : html$._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
    }
    static _toggleDefault(_element, value) {
      if (_element == null) dart.nullFailed(I[147], 36860, 38, "_element");
      if (value == null) dart.nullFailed(I[147], 36860, 55, "value");
      let list = html$._ElementCssClassSet._classListOf(_element);
      return html$._ElementCssClassSet._classListToggle1(list, value);
    }
    static _toggleOnOff(_element, value, shouldAdd) {
      let t241;
      if (_element == null) dart.nullFailed(I[147], 36865, 36, "_element");
      if (value == null) dart.nullFailed(I[147], 36865, 53, "value");
      let list = html$._ElementCssClassSet._classListOf(_element);
      if (dart.test((t241 = shouldAdd, t241 == null ? false : t241))) {
        html$._ElementCssClassSet._classListAdd(list, value);
        return true;
      } else {
        html$._ElementCssClassSet._classListRemove(list, value);
        return false;
      }
    }
    static _addAll(_element, iterable) {
      if (_element == null) dart.nullFailed(I[147], 36880, 31, "_element");
      if (iterable == null) dart.nullFailed(I[147], 36880, 58, "iterable");
      let list = html$._ElementCssClassSet._classListOf(_element);
      for (let value of iterable) {
        html$._ElementCssClassSet._classListAdd(list, value);
      }
    }
    static _removeAll(_element, iterable) {
      if (_element == null) dart.nullFailed(I[147], 36887, 34, "_element");
      if (iterable == null) dart.nullFailed(I[147], 36887, 62, "iterable");
      let list = html$._ElementCssClassSet._classListOf(_element);
      for (let value of iterable) {
        html$._ElementCssClassSet._classListRemove(list, core.String.as(value));
      }
    }
    static _removeWhere(_element, test, doRemove) {
      if (_element == null) dart.nullFailed(I[147], 36895, 15, "_element");
      if (test == null) dart.nullFailed(I[147], 36895, 30, "test");
      if (doRemove == null) dart.nullFailed(I[147], 36895, 54, "doRemove");
      let list = html$._ElementCssClassSet._classListOf(_element);
      let i = 0;
      while (i < dart.notNull(html$._ElementCssClassSet._classListLength(list))) {
        let item = dart.nullCheck(list.item(i));
        if (doRemove == test(item)) {
          html$._ElementCssClassSet._classListRemove(list, item);
        } else {
          i = i + 1;
        }
      }
    }
    static _classListOf(e) {
      if (e == null) dart.nullFailed(I[147], 36912, 44, "e");
      return e.classList;
    }
    static _classListLength(list) {
      if (list == null) dart.nullFailed(I[147], 36917, 44, "list");
      return list.length;
    }
    static _classListContains(list, value) {
      if (list == null) dart.nullFailed(I[147], 36920, 47, "list");
      if (value == null) dart.nullFailed(I[147], 36920, 60, "value");
      return list.contains(value);
    }
    static _classListContainsBeforeAddOrRemove(list, value) {
      if (list == null) dart.nullFailed(I[147], 36924, 24, "list");
      if (value == null) dart.nullFailed(I[147], 36924, 37, "value");
      return list.contains(value);
    }
    static _classListAdd(list, value) {
      if (list == null) dart.nullFailed(I[147], 36933, 42, "list");
      if (value == null) dart.nullFailed(I[147], 36933, 55, "value");
      list.add(value);
    }
    static _classListRemove(list, value) {
      if (list == null) dart.nullFailed(I[147], 36938, 45, "list");
      if (value == null) dart.nullFailed(I[147], 36938, 58, "value");
      list.remove(value);
    }
    static _classListToggle1(list, value) {
      if (list == null) dart.nullFailed(I[147], 36943, 46, "list");
      if (value == null) dart.nullFailed(I[147], 36943, 59, "value");
      return list.toggle(value);
    }
    static _classListToggle2(list, value, shouldAdd) {
      if (list == null) dart.nullFailed(I[147], 36948, 20, "list");
      if (value == null) dart.nullFailed(I[147], 36948, 33, "value");
      return list.toggle(value, shouldAdd);
    }
  };
  (html$._ElementCssClassSet.new = function(_element) {
    if (_element == null) dart.nullFailed(I[147], 36767, 28, "_element");
    this[S$1._element$2] = _element;
    ;
  }).prototype = html$._ElementCssClassSet.prototype;
  dart.addTypeTests(html$._ElementCssClassSet);
  dart.addTypeCaches(html$._ElementCssClassSet);
  dart.setMethodSignature(html$._ElementCssClassSet, () => ({
    __proto__: dart.getMethods(html$._ElementCssClassSet.__proto__),
    readClasses: dart.fnType(core.Set$(core.String), []),
    writeClasses: dart.fnType(dart.void, [core.Set$(core.String)])
  }));
  dart.setLibraryUri(html$._ElementCssClassSet, I[148]);
  dart.setFieldSignature(html$._ElementCssClassSet, () => ({
    __proto__: dart.getFields(html$._ElementCssClassSet.__proto__),
    [S$1._element$2]: dart.finalFieldType(html$.Element)
  }));
  dart.defineExtensionMethods(html$._ElementCssClassSet, ['contains']);
  dart.defineExtensionAccessors(html$._ElementCssClassSet, ['length', 'isEmpty', 'isNotEmpty']);
  html$.Dimension = class Dimension extends core.Object {
    toString() {
      return dart.str(this[S$1._value$7]) + dart.str(this[S$3._unit]);
    }
    get value() {
      return this[S$1._value$7];
    }
  };
  (html$.Dimension.percent = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36963, 26, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "%";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.px = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36966, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "px";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.pc = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36969, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "pc";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.pt = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36972, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "pt";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.inch = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36975, 23, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "in";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.cm = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36978, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "cm";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.mm = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36981, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "mm";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.em = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36990, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "em";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.ex = function(_value) {
    if (_value == null) dart.nullFailed(I[147], 36999, 21, "_value");
    this[S$1._value$7] = _value;
    this[S$3._unit] = "ex";
    ;
  }).prototype = html$.Dimension.prototype;
  (html$.Dimension.css = function(cssValue) {
    if (cssValue == null) dart.nullFailed(I[147], 37010, 24, "cssValue");
    this[S$3._unit] = "";
    this[S$1._value$7] = 0;
    if (cssValue === "") cssValue = "0px";
    if (cssValue[$endsWith]("%")) {
      this[S$3._unit] = "%";
    } else {
      this[S$3._unit] = cssValue[$substring](cssValue.length - 2);
    }
    if (cssValue[$contains](".")) {
      this[S$1._value$7] = core.double.parse(cssValue[$substring](0, cssValue.length - this[S$3._unit].length));
    } else {
      this[S$1._value$7] = core.int.parse(cssValue[$substring](0, cssValue.length - this[S$3._unit].length));
    }
  }).prototype = html$.Dimension.prototype;
  dart.addTypeTests(html$.Dimension);
  dart.addTypeCaches(html$.Dimension);
  dart.setGetterSignature(html$.Dimension, () => ({
    __proto__: dart.getGetters(html$.Dimension.__proto__),
    value: core.num
  }));
  dart.setLibraryUri(html$.Dimension, I[148]);
  dart.setFieldSignature(html$.Dimension, () => ({
    __proto__: dart.getFields(html$.Dimension.__proto__),
    [S$1._value$7]: dart.fieldType(core.num),
    [S$3._unit]: dart.fieldType(core.String)
  }));
  dart.defineExtensionMethods(html$.Dimension, ['toString']);
  const _is_EventStreamProvider_default = Symbol('_is_EventStreamProvider_default');
  html$.EventStreamProvider$ = dart.generic(T => {
    var _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
    var _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
    var _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
    class EventStreamProvider extends core.Object {
      get [S$3._eventType$1]() {
        return this[S$3._eventType$2];
      }
      set [S$3._eventType$1](value) {
        super[S$3._eventType$1] = value;
      }
      forTarget(e, opts) {
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37074, 45, "useCapture");
        return new (_EventStreamOfT()).new(e, this[S$3._eventType$1], useCapture);
      }
      forElement(e, opts) {
        if (e == null) dart.nullFailed(I[147], 37099, 39, "e");
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37099, 48, "useCapture");
        return new (_ElementEventStreamImplOfT()).new(e, this[S$3._eventType$1], useCapture);
      }
      [S$1._forElementList](e, opts) {
        if (e == null) dart.nullFailed(I[147], 37118, 57, "e");
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37119, 13, "useCapture");
        return new (_ElementListEventStreamImplOfT()).new(e, this[S$3._eventType$1], useCapture);
      }
      getEventType(target) {
        if (target == null) dart.nullFailed(I[147], 37130, 35, "target");
        return this[S$3._eventType$1];
      }
    }
    (EventStreamProvider.new = function(_eventType) {
      if (_eventType == null) dart.nullFailed(I[147], 37050, 34, "_eventType");
      this[S$3._eventType$2] = _eventType;
      ;
    }).prototype = EventStreamProvider.prototype;
    dart.addTypeTests(EventStreamProvider);
    EventStreamProvider.prototype[_is_EventStreamProvider_default] = true;
    dart.addTypeCaches(EventStreamProvider);
    dart.setMethodSignature(EventStreamProvider, () => ({
      __proto__: dart.getMethods(EventStreamProvider.__proto__),
      forTarget: dart.fnType(async.Stream$(T), [dart.nullable(html$.EventTarget)], {useCapture: core.bool}, {}),
      forElement: dart.fnType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}, {}),
      [S$1._forElementList]: dart.fnType(html$.ElementStream$(T), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {}),
      getEventType: dart.fnType(core.String, [html$.EventTarget])
    }));
    dart.setLibraryUri(EventStreamProvider, I[148]);
    dart.setFieldSignature(EventStreamProvider, () => ({
      __proto__: dart.getFields(EventStreamProvider.__proto__),
      [S$3._eventType$1]: dart.finalFieldType(core.String)
    }));
    return EventStreamProvider;
  });
  html$.EventStreamProvider = html$.EventStreamProvider$();
  dart.addTypeTests(html$.EventStreamProvider, _is_EventStreamProvider_default);
  const _is_ElementStream_default = Symbol('_is_ElementStream_default');
  html$.ElementStream$ = dart.generic(T => {
    class ElementStream extends core.Object {}
    (ElementStream.new = function() {
      ;
    }).prototype = ElementStream.prototype;
    ElementStream.prototype[dart.isStream] = true;
    dart.addTypeTests(ElementStream);
    ElementStream.prototype[_is_ElementStream_default] = true;
    dart.addTypeCaches(ElementStream);
    ElementStream[dart.implements] = () => [async.Stream$(T)];
    dart.setLibraryUri(ElementStream, I[148]);
    return ElementStream;
  });
  html$.ElementStream = html$.ElementStream$();
  dart.addTypeTests(html$.ElementStream, _is_ElementStream_default);
  const _is__EventStream_default = Symbol('_is__EventStream_default');
  html$._EventStream$ = dart.generic(T => {
    var _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
    class _EventStream extends async.Stream$(T) {
      asBroadcastStream(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        return this;
      }
      get isBroadcast() {
        return true;
      }
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        return new (_EventStreamSubscriptionOfT()).new(this[S$3._target$2], this[S$3._eventType$1], onData, this[S$3._useCapture]);
      }
    }
    (_EventStream.new = function(_target, _eventType, _useCapture) {
      if (_eventType == null) dart.nullFailed(I[147], 37170, 35, "_eventType");
      if (_useCapture == null) dart.nullFailed(I[147], 37170, 52, "_useCapture");
      this[S$3._target$2] = _target;
      this[S$3._eventType$1] = _eventType;
      this[S$3._useCapture] = _useCapture;
      _EventStream.__proto__.new.call(this);
      ;
    }).prototype = _EventStream.prototype;
    dart.addTypeTests(_EventStream);
    _EventStream.prototype[_is__EventStream_default] = true;
    dart.addTypeCaches(_EventStream);
    dart.setMethodSignature(_EventStream, () => ({
      __proto__: dart.getMethods(_EventStream.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
    }));
    dart.setLibraryUri(_EventStream, I[148]);
    dart.setFieldSignature(_EventStream, () => ({
      __proto__: dart.getFields(_EventStream.__proto__),
      [S$3._target$2]: dart.finalFieldType(dart.nullable(html$.EventTarget)),
      [S$3._eventType$1]: dart.finalFieldType(core.String),
      [S$3._useCapture]: dart.finalFieldType(core.bool)
    }));
    return _EventStream;
  });
  html$._EventStream = html$._EventStream$();
  dart.addTypeTests(html$._EventStream, _is__EventStream_default);
  const _is__ElementEventStreamImpl_default = Symbol('_is__ElementEventStreamImpl_default');
  html$._ElementEventStreamImpl$ = dart.generic(T => {
    var TTobool = () => (TTobool = dart.constFn(dart.fnType(core.bool, [T])))();
    var TToT = () => (TToT = dart.constFn(dart.fnType(T, [T])))();
    var _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
    class _ElementEventStreamImpl extends html$._EventStream$(T) {
      matches(selector) {
        if (selector == null) dart.nullFailed(I[147], 37203, 28, "selector");
        return this.where(dart.fn(event => {
          if (event == null) dart.nullFailed(I[147], 37204, 19, "event");
          return html$._matchesWithAncestors(event, selector);
        }, TTobool())).map(T, dart.fn(e => {
          if (e == null) dart.nullFailed(I[147], 37204, 74, "e");
          e[S._selector] = selector;
          return e;
        }, TToT()));
      }
      capture(onData) {
        if (onData == null) dart.nullFailed(I[147], 37209, 38, "onData");
        return new (_EventStreamSubscriptionOfT()).new(this[S$3._target$2], this[S$3._eventType$1], onData, true);
      }
    }
    (_ElementEventStreamImpl.new = function(target, eventType, useCapture) {
      _ElementEventStreamImpl.__proto__.new.call(this, T$0.EventTargetN().as(target), core.String.as(eventType), core.bool.as(useCapture));
      ;
    }).prototype = _ElementEventStreamImpl.prototype;
    dart.addTypeTests(_ElementEventStreamImpl);
    _ElementEventStreamImpl.prototype[_is__ElementEventStreamImpl_default] = true;
    dart.addTypeCaches(_ElementEventStreamImpl);
    _ElementEventStreamImpl[dart.implements] = () => [html$.ElementStream$(T)];
    dart.setMethodSignature(_ElementEventStreamImpl, () => ({
      __proto__: dart.getMethods(_ElementEventStreamImpl.__proto__),
      matches: dart.fnType(async.Stream$(T), [core.String]),
      capture: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])])
    }));
    dart.setLibraryUri(_ElementEventStreamImpl, I[148]);
    return _ElementEventStreamImpl;
  });
  html$._ElementEventStreamImpl = html$._ElementEventStreamImpl$();
  dart.addTypeTests(html$._ElementEventStreamImpl, _is__ElementEventStreamImpl_default);
  const _is__ElementListEventStreamImpl_default = Symbol('_is__ElementListEventStreamImpl_default');
  html$._ElementListEventStreamImpl$ = dart.generic(T => {
    var TTobool = () => (TTobool = dart.constFn(dart.fnType(core.bool, [T])))();
    var TToT = () => (TToT = dart.constFn(dart.fnType(T, [T])))();
    var _StreamPoolOfT = () => (_StreamPoolOfT = dart.constFn(html$._StreamPool$(T)))();
    var _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
    class _ElementListEventStreamImpl extends async.Stream$(T) {
      matches(selector) {
        if (selector == null) dart.nullFailed(I[147], 37227, 28, "selector");
        return this.where(dart.fn(event => {
          if (event == null) dart.nullFailed(I[147], 37228, 19, "event");
          return html$._matchesWithAncestors(event, selector);
        }, TTobool())).map(T, dart.fn(e => {
          if (e == null) dart.nullFailed(I[147], 37228, 74, "e");
          e[S._selector] = selector;
          return e;
        }, TToT()));
      }
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        let pool = new (_StreamPoolOfT()).broadcast();
        for (let target of this[S$3._targetList]) {
          pool.add(new (_EventStreamOfT()).new(target, this[S$3._eventType$1], this[S$3._useCapture]));
        }
        return pool.stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
      }
      capture(onData) {
        if (onData == null) dart.nullFailed(I[147], 37244, 38, "onData");
        let pool = new (_StreamPoolOfT()).broadcast();
        for (let target of this[S$3._targetList]) {
          pool.add(new (_EventStreamOfT()).new(target, this[S$3._eventType$1], true));
        }
        return pool.stream.listen(onData);
      }
      asBroadcastStream(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        return this;
      }
      get isBroadcast() {
        return true;
      }
    }
    (_ElementListEventStreamImpl.new = function(_targetList, _eventType, _useCapture) {
      if (_targetList == null) dart.nullFailed(I[147], 37225, 12, "_targetList");
      if (_eventType == null) dart.nullFailed(I[147], 37225, 30, "_eventType");
      if (_useCapture == null) dart.nullFailed(I[147], 37225, 47, "_useCapture");
      this[S$3._targetList] = _targetList;
      this[S$3._eventType$1] = _eventType;
      this[S$3._useCapture] = _useCapture;
      _ElementListEventStreamImpl.__proto__.new.call(this);
      ;
    }).prototype = _ElementListEventStreamImpl.prototype;
    dart.addTypeTests(_ElementListEventStreamImpl);
    _ElementListEventStreamImpl.prototype[_is__ElementListEventStreamImpl_default] = true;
    dart.addTypeCaches(_ElementListEventStreamImpl);
    _ElementListEventStreamImpl[dart.implements] = () => [html$.ElementStream$(T)];
    dart.setMethodSignature(_ElementListEventStreamImpl, () => ({
      __proto__: dart.getMethods(_ElementListEventStreamImpl.__proto__),
      matches: dart.fnType(async.Stream$(T), [core.String]),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      capture: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])])
    }));
    dart.setLibraryUri(_ElementListEventStreamImpl, I[148]);
    dart.setFieldSignature(_ElementListEventStreamImpl, () => ({
      __proto__: dart.getFields(_ElementListEventStreamImpl.__proto__),
      [S$3._targetList]: dart.finalFieldType(core.Iterable$(html$.Element)),
      [S$3._useCapture]: dart.finalFieldType(core.bool),
      [S$3._eventType$1]: dart.finalFieldType(core.String)
    }));
    return _ElementListEventStreamImpl;
  });
  html$._ElementListEventStreamImpl = html$._ElementListEventStreamImpl$();
  dart.addTypeTests(html$._ElementListEventStreamImpl, _is__ElementListEventStreamImpl_default);
  const _is__EventStreamSubscription_default = Symbol('_is__EventStreamSubscription_default');
  html$._EventStreamSubscription$ = dart.generic(T => {
    class _EventStreamSubscription extends async.StreamSubscription$(T) {
      cancel() {
        if (dart.test(this[S$3._canceled])) return _internal.nullFuture;
        this[S$3._unlisten]();
        this[S$3._target$2] = null;
        this[S$3._onData$3] = null;
        return _internal.nullFuture;
      }
      get [S$3._canceled]() {
        return this[S$3._target$2] == null;
      }
      onData(handleData) {
        if (dart.test(this[S$3._canceled])) {
          dart.throw(new core.StateError.new("Subscription has been canceled."));
        }
        this[S$3._unlisten]();
        this[S$3._onData$3] = handleData == null ? null : html$._wrapZone(html$.Event, dart.fn(e => {
          if (e == null) dart.nullFailed(I[147], 37307, 29, "e");
          return dart.dcall(handleData, [e]);
        }, T$0.EventTovoid()));
        this[S$3._tryResume]();
      }
      onError(handleError) {
      }
      onDone(handleDone) {
      }
      pause(resumeSignal = null) {
        if (dart.test(this[S$3._canceled])) return;
        this[S$3._pauseCount$1] = dart.notNull(this[S$3._pauseCount$1]) + 1;
        this[S$3._unlisten]();
        if (resumeSignal != null) {
          resumeSignal.whenComplete(dart.bind(this, 'resume'));
        }
      }
      get isPaused() {
        return dart.notNull(this[S$3._pauseCount$1]) > 0;
      }
      resume() {
        if (dart.test(this[S$3._canceled]) || !dart.test(this.isPaused)) return;
        this[S$3._pauseCount$1] = dart.notNull(this[S$3._pauseCount$1]) - 1;
        this[S$3._tryResume]();
      }
      [S$3._tryResume]() {
        if (this[S$3._onData$3] != null && !dart.test(this.isPaused)) {
          dart.nullCheck(this[S$3._target$2])[S.$addEventListener](this[S$3._eventType$1], this[S$3._onData$3], this[S$3._useCapture]);
        }
      }
      [S$3._unlisten]() {
        if (this[S$3._onData$3] != null) {
          dart.nullCheck(this[S$3._target$2])[S.$removeEventListener](this[S$3._eventType$1], this[S$3._onData$3], this[S$3._useCapture]);
        }
      }
      asFuture(E, futureValue = null) {
        let completer = async.Completer$(E).new();
        return completer.future;
      }
    }
    (_EventStreamSubscription.new = function(_target, _eventType, onData, _useCapture) {
      if (_eventType == null) dart.nullFailed(I[147], 37280, 26, "_eventType");
      if (_useCapture == null) dart.nullFailed(I[147], 37280, 66, "_useCapture");
      this[S$3._pauseCount$1] = 0;
      this[S$3._target$2] = _target;
      this[S$3._eventType$1] = _eventType;
      this[S$3._useCapture] = _useCapture;
      this[S$3._onData$3] = onData == null ? null : html$._wrapZone(html$.Event, dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 37283, 33, "e");
        return dart.dcall(onData, [e]);
      }, T$0.EventTovoid()));
      this[S$3._tryResume]();
    }).prototype = _EventStreamSubscription.prototype;
    dart.addTypeTests(_EventStreamSubscription);
    _EventStreamSubscription.prototype[_is__EventStreamSubscription_default] = true;
    dart.addTypeCaches(_EventStreamSubscription);
    dart.setMethodSignature(_EventStreamSubscription, () => ({
      __proto__: dart.getMethods(_EventStreamSubscription.__proto__),
      cancel: dart.fnType(async.Future, []),
      onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [T]))]),
      onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
      onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
      pause: dart.fnType(dart.void, [], [dart.nullable(async.Future)]),
      resume: dart.fnType(dart.void, []),
      [S$3._tryResume]: dart.fnType(dart.void, []),
      [S$3._unlisten]: dart.fnType(dart.void, []),
      asFuture: dart.gFnType(E => [async.Future$(E), [], [dart.nullable(E)]], E => [dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_EventStreamSubscription, () => ({
      __proto__: dart.getGetters(_EventStreamSubscription.__proto__),
      [S$3._canceled]: core.bool,
      isPaused: core.bool
    }));
    dart.setLibraryUri(_EventStreamSubscription, I[148]);
    dart.setFieldSignature(_EventStreamSubscription, () => ({
      __proto__: dart.getFields(_EventStreamSubscription.__proto__),
      [S$3._pauseCount$1]: dart.fieldType(core.int),
      [S$3._target$2]: dart.fieldType(dart.nullable(html$.EventTarget)),
      [S$3._eventType$1]: dart.finalFieldType(core.String),
      [S$3._onData$3]: dart.fieldType(dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))),
      [S$3._useCapture]: dart.finalFieldType(core.bool)
    }));
    return _EventStreamSubscription;
  });
  html$._EventStreamSubscription = html$._EventStreamSubscription$();
  dart.addTypeTests(html$._EventStreamSubscription, _is__EventStreamSubscription_default);
  const _is_CustomStream_default = Symbol('_is_CustomStream_default');
  html$.CustomStream$ = dart.generic(T => {
    class CustomStream extends core.Object {}
    (CustomStream.new = function() {
      ;
    }).prototype = CustomStream.prototype;
    CustomStream.prototype[dart.isStream] = true;
    dart.addTypeTests(CustomStream);
    CustomStream.prototype[_is_CustomStream_default] = true;
    dart.addTypeCaches(CustomStream);
    CustomStream[dart.implements] = () => [async.Stream$(T)];
    dart.setLibraryUri(CustomStream, I[148]);
    return CustomStream;
  });
  html$.CustomStream = html$.CustomStream$();
  dart.addTypeTests(html$.CustomStream, _is_CustomStream_default);
  const _is__CustomEventStreamImpl_default = Symbol('_is__CustomEventStreamImpl_default');
  html$._CustomEventStreamImpl$ = dart.generic(T => {
    var StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
    class _CustomEventStreamImpl extends async.Stream$(T) {
      listen(onData, opts) {
        let onError = opts && 'onError' in opts ? opts.onError : null;
        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
        return this[S$3._streamController].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
      }
      asBroadcastStream(opts) {
        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
        return this[S$3._streamController].stream;
      }
      get isBroadcast() {
        return true;
      }
      add(event) {
        T.as(event);
        if (event == null) dart.nullFailed(I[147], 37390, 14, "event");
        if (event.type == this[S$3._type$5]) this[S$3._streamController].add(event);
      }
    }
    (_CustomEventStreamImpl.new = function(type) {
      if (type == null) dart.nullFailed(I[147], 37372, 33, "type");
      this[S$3._type$5] = type;
      this[S$3._streamController] = StreamControllerOfT().broadcast({sync: true});
      _CustomEventStreamImpl.__proto__.new.call(this);
      ;
    }).prototype = _CustomEventStreamImpl.prototype;
    dart.addTypeTests(_CustomEventStreamImpl);
    _CustomEventStreamImpl.prototype[_is__CustomEventStreamImpl_default] = true;
    dart.addTypeCaches(_CustomEventStreamImpl);
    _CustomEventStreamImpl[dart.implements] = () => [html$.CustomStream$(T)];
    dart.setMethodSignature(_CustomEventStreamImpl, () => ({
      __proto__: dart.getMethods(_CustomEventStreamImpl.__proto__),
      listen: dart.fnType(async.StreamSubscription$(T), [dart.nullable(dart.fnType(dart.void, [T]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(_CustomEventStreamImpl, I[148]);
    dart.setFieldSignature(_CustomEventStreamImpl, () => ({
      __proto__: dart.getFields(_CustomEventStreamImpl.__proto__),
      [S$3._streamController]: dart.fieldType(async.StreamController$(T)),
      [S$3._type$5]: dart.fieldType(core.String)
    }));
    return _CustomEventStreamImpl;
  });
  html$._CustomEventStreamImpl = html$._CustomEventStreamImpl$();
  dart.addTypeTests(html$._CustomEventStreamImpl, _is__CustomEventStreamImpl_default);
  html$.KeyEvent = class KeyEvent extends html$._WrappedEvent {
    get keyCode() {
      return this[S$3._shadowKeyCode];
    }
    get charCode() {
      return this.type === "keypress" ? this[S$3._shadowCharCode] : 0;
    }
    get altKey() {
      return this[S$3._shadowAltKey];
    }
    get which() {
      return this.keyCode;
    }
    get [S$3._realKeyCode]() {
      return this[S$3._parent$2].keyCode;
    }
    get [S$3._realCharCode]() {
      return this[S$3._parent$2].charCode;
    }
    get [S$3._realAltKey]() {
      return this[S$3._parent$2].altKey;
    }
    get sourceCapabilities() {
      return this.sourceCapabilities;
    }
    static _makeRecord() {
      let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html$.KeyboardEvent));
      return _js_helper.makeLeafDispatchRecord(interceptor);
    }
    static new(type, opts) {
      if (type == null) dart.nullFailed(I[147], 40518, 27, "type");
      let view = opts && 'view' in opts ? opts.view : null;
      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
      if (canBubble == null) dart.nullFailed(I[147], 40520, 12, "canBubble");
      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
      if (cancelable == null) dart.nullFailed(I[147], 40521, 12, "cancelable");
      let keyCode = opts && 'keyCode' in opts ? opts.keyCode : 0;
      if (keyCode == null) dart.nullFailed(I[147], 40522, 11, "keyCode");
      let charCode = opts && 'charCode' in opts ? opts.charCode : 0;
      if (charCode == null) dart.nullFailed(I[147], 40523, 11, "charCode");
      let location = opts && 'location' in opts ? opts.location : 1;
      if (location == null) dart.nullFailed(I[147], 40524, 11, "location");
      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
      if (ctrlKey == null) dart.nullFailed(I[147], 40525, 12, "ctrlKey");
      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
      if (altKey == null) dart.nullFailed(I[147], 40526, 12, "altKey");
      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
      if (shiftKey == null) dart.nullFailed(I[147], 40527, 12, "shiftKey");
      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
      if (metaKey == null) dart.nullFailed(I[147], 40528, 12, "metaKey");
      let currentTarget = opts && 'currentTarget' in opts ? opts.currentTarget : null;
      if (view == null) {
        view = html$.window;
      }
      let eventObj = null;
      eventObj = html$.Event.eventType("KeyboardEvent", type, {canBubble: canBubble, cancelable: cancelable});
      Object.defineProperty(eventObj, 'keyCode', {
        get: function() {
          return this.keyCodeVal;
        }
      });
      Object.defineProperty(eventObj, 'which', {
        get: function() {
          return this.keyCodeVal;
        }
      });
      Object.defineProperty(eventObj, 'charCode', {
        get: function() {
          return this.charCodeVal;
        }
      });
      let keyIdentifier = html$.KeyEvent._convertToHexString(charCode, keyCode);
      dart.dsend(eventObj, S$1._initKeyboardEvent, [type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey]);
      eventObj.keyCodeVal = keyCode;
      eventObj.charCodeVal = charCode;
      _interceptors.setDispatchProperty(eventObj, html$.KeyEvent._keyboardEventDispatchRecord);
      let keyEvent = new html$.KeyEvent.wrap(html$.KeyboardEvent.as(eventObj));
      if (keyEvent[S$3._currentTarget] == null) {
        keyEvent[S$3._currentTarget] = currentTarget == null ? html$.window : currentTarget;
      }
      return keyEvent;
    }
    static get canUseDispatchEvent() {
      return typeof document.body.dispatchEvent == "function" && document.body.dispatchEvent.length > 0;
    }
    get currentTarget() {
      return this[S$3._currentTarget];
    }
    static _convertToHexString(charCode, keyCode) {
      if (charCode == null) dart.nullFailed(I[147], 40590, 41, "charCode");
      if (keyCode == null) dart.nullFailed(I[147], 40590, 55, "keyCode");
      if (charCode !== -1) {
        let hex = charCode[$toRadixString](16);
        let sb = new core.StringBuffer.new("U+");
        for (let i = 0; i < 4 - hex.length; i = i + 1)
          sb.write("0");
        sb.write(hex);
        return sb.toString();
      } else {
        return html$.KeyCode._convertKeyCodeToKeyName(keyCode);
      }
    }
    get code() {
      return dart.nullCheck(this[S$3._parent$2].code);
    }
    get ctrlKey() {
      return this[S$3._parent$2].ctrlKey;
    }
    get detail() {
      return dart.nullCheck(this[S$3._parent$2].detail);
    }
    get isComposing() {
      return dart.nullCheck(this[S$3._parent$2].isComposing);
    }
    get key() {
      return dart.nullCheck(this[S$3._parent$2].key);
    }
    get location() {
      return this[S$3._parent$2].location;
    }
    get metaKey() {
      return this[S$3._parent$2].metaKey;
    }
    get shiftKey() {
      return this[S$3._parent$2].shiftKey;
    }
    get view() {
      return this[S$3._parent$2][S$.$view];
    }
    [S$._initUIEvent](type, canBubble, cancelable, view, detail) {
      if (type == null) dart.nullFailed(I[147], 40632, 14, "type");
      if (canBubble == null) dart.nullFailed(I[147], 40632, 25, "canBubble");
      if (cancelable == null) dart.nullFailed(I[147], 40632, 41, "cancelable");
      if (detail == null) dart.nullFailed(I[147], 40632, 71, "detail");
      dart.throw(new core.UnsupportedError.new("Cannot initialize a UI Event from a KeyEvent."));
    }
    get [S$3._shadowKeyIdentifier]() {
      return this[S$3._parent$2].keyIdentifier;
    }
    get [S$1._charCode]() {
      return this.charCode;
    }
    get [S$1._keyCode]() {
      return this.keyCode;
    }
    get [S$._which]() {
      return this.which;
    }
    get [S$3._keyIdentifier]() {
      dart.throw(new core.UnsupportedError.new("keyIdentifier is unsupported."));
    }
    [S$1._initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey) {
      if (type == null) dart.nullFailed(I[147], 40647, 14, "type");
      if (canBubble == null) dart.nullFailed(I[147], 40648, 12, "canBubble");
      if (cancelable == null) dart.nullFailed(I[147], 40649, 12, "cancelable");
      if (keyIdentifier == null) dart.nullFailed(I[147], 40651, 14, "keyIdentifier");
      if (ctrlKey == null) dart.nullFailed(I[147], 40653, 12, "ctrlKey");
      if (altKey == null) dart.nullFailed(I[147], 40654, 12, "altKey");
      if (shiftKey == null) dart.nullFailed(I[147], 40655, 12, "shiftKey");
      if (metaKey == null) dart.nullFailed(I[147], 40656, 12, "metaKey");
      dart.throw(new core.UnsupportedError.new("Cannot initialize a KeyboardEvent from a KeyEvent."));
    }
    getModifierState(keyArgument) {
      if (keyArgument == null) dart.nullFailed(I[147], 40661, 32, "keyArgument");
      return dart.throw(new core.UnimplementedError.new());
    }
    get repeat() {
      return dart.throw(new core.UnimplementedError.new());
    }
    get isComposed() {
      return dart.throw(new core.UnimplementedError.new());
    }
    get [S$._get_view]() {
      return dart.throw(new core.UnimplementedError.new());
    }
  };
  (html$.KeyEvent.wrap = function(parent) {
    if (parent == null) dart.nullFailed(I[147], 40504, 31, "parent");
    this[S$3._currentTarget] = null;
    this[S$3._parent$2] = parent;
    this[S$3._shadowAltKey] = false;
    this[S$3._shadowCharCode] = 0;
    this[S$3._shadowKeyCode] = 0;
    html$.KeyEvent.__proto__.new.call(this, parent);
    this[S$3._parent$2] = parent;
    this[S$3._shadowAltKey] = this[S$3._realAltKey];
    this[S$3._shadowCharCode] = this[S$3._realCharCode];
    this[S$3._shadowKeyCode] = this[S$3._realKeyCode];
    this[S$3._currentTarget] = this[S$3._parent$2][S.$currentTarget];
  }).prototype = html$.KeyEvent.prototype;
  dart.addTypeTests(html$.KeyEvent);
  dart.addTypeCaches(html$.KeyEvent);
  html$.KeyEvent[dart.implements] = () => [html$.KeyboardEvent];
  dart.setMethodSignature(html$.KeyEvent, () => ({
    __proto__: dart.getMethods(html$.KeyEvent.__proto__),
    [S$._initUIEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, dart.nullable(html$.Window), core.int]),
    [S$1._initKeyboardEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, dart.nullable(html$.Window), core.String, dart.nullable(core.int), core.bool, core.bool, core.bool, core.bool]),
    getModifierState: dart.fnType(core.bool, [core.String]),
    [S$1.$getModifierState]: dart.fnType(core.bool, [core.String])
  }));
  dart.setGetterSignature(html$.KeyEvent, () => ({
    __proto__: dart.getGetters(html$.KeyEvent.__proto__),
    keyCode: core.int,
    [S$1.$keyCode]: core.int,
    charCode: core.int,
    [S$1.$charCode]: core.int,
    altKey: core.bool,
    [S$1.$altKey]: core.bool,
    which: core.int,
    [S$1.$which]: core.int,
    [S$3._realKeyCode]: core.int,
    [S$3._realCharCode]: core.int,
    [S$3._realAltKey]: core.bool,
    sourceCapabilities: dart.nullable(html$.InputDeviceCapabilities),
    [S$.$sourceCapabilities]: dart.nullable(html$.InputDeviceCapabilities),
    code: core.String,
    [S$.$code]: core.String,
    ctrlKey: core.bool,
    [S$1.$ctrlKey]: core.bool,
    detail: core.int,
    [S$.$detail]: core.int,
    isComposing: core.bool,
    [S$1.$isComposing]: core.bool,
    key: core.String,
    [S.$key]: core.String,
    location: core.int,
    [S$0.$location]: core.int,
    metaKey: core.bool,
    [S$1.$metaKey]: core.bool,
    shiftKey: core.bool,
    [S$1.$shiftKey]: core.bool,
    view: dart.nullable(html$.WindowBase),
    [S$.$view]: dart.nullable(html$.WindowBase),
    [S$3._shadowKeyIdentifier]: core.String,
    [S$1._charCode]: core.int,
    [S$1._keyCode]: core.int,
    [S$._which]: core.int,
    [S$3._keyIdentifier]: core.String,
    repeat: core.bool,
    [S$1.$repeat]: core.bool,
    isComposed: core.bool,
    [S$._get_view]: dart.dynamic
  }));
  dart.setLibraryUri(html$.KeyEvent, I[148]);
  dart.setFieldSignature(html$.KeyEvent, () => ({
    __proto__: dart.getFields(html$.KeyEvent.__proto__),
    [S$3._parent$2]: dart.fieldType(html$.KeyboardEvent),
    [S$3._shadowAltKey]: dart.fieldType(core.bool),
    [S$3._shadowCharCode]: dart.fieldType(core.int),
    [S$3._shadowKeyCode]: dart.fieldType(core.int),
    [S$3._currentTarget]: dart.fieldType(dart.nullable(html$.EventTarget))
  }));
  dart.defineExtensionMethods(html$.KeyEvent, ['getModifierState']);
  dart.defineExtensionAccessors(html$.KeyEvent, [
    'keyCode',
    'charCode',
    'altKey',
    'which',
    'sourceCapabilities',
    'currentTarget',
    'code',
    'ctrlKey',
    'detail',
    'isComposing',
    'key',
    'location',
    'metaKey',
    'shiftKey',
    'view',
    'repeat'
  ]);
  dart.defineLazy(html$.KeyEvent, {
    /*html$.KeyEvent._keyboardEventDispatchRecord*/get _keyboardEventDispatchRecord() {
      return html$.KeyEvent._makeRecord();
    },
    /*html$.KeyEvent.keyDownEvent*/get keyDownEvent() {
      return new html$._KeyboardEventHandler.new("keydown");
    },
    set keyDownEvent(_) {},
    /*html$.KeyEvent.keyUpEvent*/get keyUpEvent() {
      return new html$._KeyboardEventHandler.new("keyup");
    },
    set keyUpEvent(_) {},
    /*html$.KeyEvent.keyPressEvent*/get keyPressEvent() {
      return new html$._KeyboardEventHandler.new("keypress");
    },
    set keyPressEvent(_) {}
  }, false);
  html$._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html$._CustomEventStreamImpl$(html$.KeyEvent) {
    add(event) {
      html$.KeyEvent.as(event);
      if (event == null) dart.nullFailed(I[147], 37399, 21, "event");
      if (event.type == this[S$3._type$5]) {
        dart.nullCheck(event.currentTarget).dispatchEvent(event[S$3._parent$2]);
        this[S$3._streamController].add(event);
      }
    }
  };
  (html$._CustomKeyEventStreamImpl.new = function(type) {
    if (type == null) dart.nullFailed(I[147], 37397, 36, "type");
    html$._CustomKeyEventStreamImpl.__proto__.new.call(this, type);
    ;
  }).prototype = html$._CustomKeyEventStreamImpl.prototype;
  dart.addTypeTests(html$._CustomKeyEventStreamImpl);
  dart.addTypeCaches(html$._CustomKeyEventStreamImpl);
  html$._CustomKeyEventStreamImpl[dart.implements] = () => [html$.CustomStream$(html$.KeyEvent)];
  dart.setLibraryUri(html$._CustomKeyEventStreamImpl, I[148]);
  const _is__StreamPool_default = Symbol('_is__StreamPool_default');
  html$._StreamPool$ = dart.generic(T => {
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
    var LinkedMapOfStreamOfT$StreamSubscriptionOfT = () => (LinkedMapOfStreamOfT$StreamSubscriptionOfT = dart.constFn(_js_helper.LinkedMap$(StreamOfT(), StreamSubscriptionOfT())))();
    var StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
    class _StreamPool extends core.Object {
      get stream() {
        return dart.nullCheck(this[S$3._controller$2]).stream;
      }
      add(stream) {
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[147], 37442, 22, "stream");
        if (dart.test(this[S$3._subscriptions][$containsKey](stream))) return;
        this[S$3._subscriptions][$_set](stream, stream.listen(dart.bind(dart.nullCheck(this[S$3._controller$2]), 'add'), {onError: dart.bind(dart.nullCheck(this[S$3._controller$2]), 'addError'), onDone: dart.fn(() => this.remove(stream), T$.VoidTovoid())}));
      }
      remove(stream) {
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[147], 37449, 25, "stream");
        let subscription = this[S$3._subscriptions][$remove](stream);
        if (subscription != null) subscription.cancel();
      }
      close() {
        for (let subscription of this[S$3._subscriptions][$values]) {
          subscription.cancel();
        }
        this[S$3._subscriptions][$clear]();
        dart.nullCheck(this[S$3._controller$2]).close();
      }
    }
    (_StreamPool.broadcast = function() {
      this[S$3._controller$2] = null;
      this[S$3._subscriptions] = new (LinkedMapOfStreamOfT$StreamSubscriptionOfT()).new();
      this[S$3._controller$2] = StreamControllerOfT().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
    }).prototype = _StreamPool.prototype;
    dart.addTypeTests(_StreamPool);
    _StreamPool.prototype[_is__StreamPool_default] = true;
    dart.addTypeCaches(_StreamPool);
    dart.setMethodSignature(_StreamPool, () => ({
      __proto__: dart.getMethods(_StreamPool.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      remove: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      close: dart.fnType(dart.void, [])
    }));
    dart.setGetterSignature(_StreamPool, () => ({
      __proto__: dart.getGetters(_StreamPool.__proto__),
      stream: async.Stream$(T)
    }));
    dart.setLibraryUri(_StreamPool, I[148]);
    dart.setFieldSignature(_StreamPool, () => ({
      __proto__: dart.getFields(_StreamPool.__proto__),
      [S$3._controller$2]: dart.fieldType(dart.nullable(async.StreamController$(T))),
      [S$3._subscriptions]: dart.fieldType(core.Map$(async.Stream$(T), async.StreamSubscription$(T)))
    }));
    return _StreamPool;
  });
  html$._StreamPool = html$._StreamPool$();
  dart.addTypeTests(html$._StreamPool, _is__StreamPool_default);
  const _is__CustomEventStreamProvider_default = Symbol('_is__CustomEventStreamProvider_default');
  html$._CustomEventStreamProvider$ = dart.generic(T => {
    var _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
    var _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
    var _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
    class _CustomEventStreamProvider extends core.Object {
      get [S$3._eventTypeGetter$1]() {
        return this[S$3._eventTypeGetter];
      }
      set [S$3._eventTypeGetter$1](value) {
        super[S$3._eventTypeGetter$1] = value;
      }
      forTarget(e, opts) {
        let t241;
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37473, 45, "useCapture");
        return new (_EventStreamOfT()).new(e, core.String.as((t241 = e, dart.dsend(this, S$3._eventTypeGetter$1, [t241]))), useCapture);
      }
      forElement(e, opts) {
        let t241;
        if (e == null) dart.nullFailed(I[147], 37477, 39, "e");
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37477, 48, "useCapture");
        return new (_ElementEventStreamImplOfT()).new(e, (t241 = e, dart.dsend(this, S$3._eventTypeGetter$1, [t241])), useCapture);
      }
      [S$1._forElementList](e, opts) {
        let t241;
        if (e == null) dart.nullFailed(I[147], 37481, 57, "e");
        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
        if (useCapture == null) dart.nullFailed(I[147], 37482, 13, "useCapture");
        return new (_ElementListEventStreamImplOfT()).new(e, core.String.as((t241 = e, dart.dsend(this, S$3._eventTypeGetter$1, [t241]))), useCapture);
      }
      getEventType(target) {
        let t241;
        if (target == null) dart.nullFailed(I[147], 37487, 35, "target");
        return core.String.as((t241 = target, dart.dsend(this, S$3._eventTypeGetter$1, [t241])));
      }
      get [S$3._eventType$1]() {
        return dart.throw(new core.UnsupportedError.new("Access type through getEventType method."));
      }
    }
    (_CustomEventStreamProvider.new = function(_eventTypeGetter) {
      this[S$3._eventTypeGetter] = _eventTypeGetter;
      ;
    }).prototype = _CustomEventStreamProvider.prototype;
    dart.addTypeTests(_CustomEventStreamProvider);
    _CustomEventStreamProvider.prototype[_is__CustomEventStreamProvider_default] = true;
    dart.addTypeCaches(_CustomEventStreamProvider);
    _CustomEventStreamProvider[dart.implements] = () => [html$.EventStreamProvider$(T)];
    dart.setMethodSignature(_CustomEventStreamProvider, () => ({
      __proto__: dart.getMethods(_CustomEventStreamProvider.__proto__),
      forTarget: dart.fnType(async.Stream$(T), [dart.nullable(html$.EventTarget)], {useCapture: core.bool}, {}),
      forElement: dart.fnType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}, {}),
      [S$1._forElementList]: dart.fnType(html$.ElementStream$(T), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {}),
      getEventType: dart.fnType(core.String, [html$.EventTarget])
    }));
    dart.setGetterSignature(_CustomEventStreamProvider, () => ({
      __proto__: dart.getGetters(_CustomEventStreamProvider.__proto__),
      [S$3._eventType$1]: core.String
    }));
    dart.setLibraryUri(_CustomEventStreamProvider, I[148]);
    dart.setFieldSignature(_CustomEventStreamProvider, () => ({
      __proto__: dart.getFields(_CustomEventStreamProvider.__proto__),
      [S$3._eventTypeGetter$1]: dart.finalFieldType(dart.dynamic)
    }));
    return _CustomEventStreamProvider;
  });
  html$._CustomEventStreamProvider = html$._CustomEventStreamProvider$();
  dart.addTypeTests(html$._CustomEventStreamProvider, _is__CustomEventStreamProvider_default);
  html$._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 37915, 30, "element");
      return html$._Html5NodeValidator._allowedElements.contains(html$.Element._safeTagName(element));
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 37919, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 37919, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 37919, 70, "value");
      let tagName = html$.Element._safeTagName(element);
      let validator = html$._Html5NodeValidator._attributeValidators[$_get](dart.str(tagName) + "::" + dart.str(attributeName));
      if (validator == null) {
        validator = html$._Html5NodeValidator._attributeValidators[$_get]("*::" + dart.str(attributeName));
      }
      if (validator == null) {
        return false;
      }
      return core.bool.as(dart.dcall(validator, [element, attributeName, value, this]));
    }
    static _standardAttributeValidator(element, attributeName, value, context) {
      if (element == null) dart.nullFailed(I[147], 37931, 51, "element");
      if (attributeName == null) dart.nullFailed(I[147], 37931, 67, "attributeName");
      if (value == null) dart.nullFailed(I[147], 37932, 14, "value");
      if (context == null) dart.nullFailed(I[147], 37932, 41, "context");
      return true;
    }
    static _uriAttributeValidator(element, attributeName, value, context) {
      if (element == null) dart.nullFailed(I[147], 37936, 46, "element");
      if (attributeName == null) dart.nullFailed(I[147], 37936, 62, "attributeName");
      if (value == null) dart.nullFailed(I[147], 37937, 14, "value");
      if (context == null) dart.nullFailed(I[147], 37937, 41, "context");
      return context.uriPolicy.allowsUri(value);
    }
  };
  (html$._Html5NodeValidator.new = function(opts) {
    let t241;
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    this.uriPolicy = (t241 = uriPolicy, t241 == null ? html$.UriPolicy.new() : t241);
    if (dart.test(html$._Html5NodeValidator._attributeValidators[$isEmpty])) {
      for (let attr of html$._Html5NodeValidator._standardAttributes) {
        html$._Html5NodeValidator._attributeValidators[$_set](attr, C[399] || CT.C399);
      }
      for (let attr of html$._Html5NodeValidator._uriAttributes) {
        html$._Html5NodeValidator._attributeValidators[$_set](attr, C[400] || CT.C400);
      }
    }
  }).prototype = html$._Html5NodeValidator.prototype;
  dart.addTypeTests(html$._Html5NodeValidator);
  dart.addTypeCaches(html$._Html5NodeValidator);
  html$._Html5NodeValidator[dart.implements] = () => [html$.NodeValidator];
  dart.setMethodSignature(html$._Html5NodeValidator, () => ({
    __proto__: dart.getMethods(html$._Html5NodeValidator.__proto__),
    allowsElement: dart.fnType(core.bool, [html$.Element]),
    allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
  }));
  dart.setLibraryUri(html$._Html5NodeValidator, I[148]);
  dart.setFieldSignature(html$._Html5NodeValidator, () => ({
    __proto__: dart.getFields(html$._Html5NodeValidator.__proto__),
    uriPolicy: dart.finalFieldType(html$.UriPolicy)
  }));
  dart.defineLazy(html$._Html5NodeValidator, {
    /*html$._Html5NodeValidator._allowedElements*/get _allowedElements() {
      return T$0.LinkedHashSetOfString().from(["A", "ABBR", "ACRONYM", "ADDRESS", "AREA", "ARTICLE", "ASIDE", "AUDIO", "B", "BDI", "BDO", "BIG", "BLOCKQUOTE", "BR", "BUTTON", "CANVAS", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP", "COMMAND", "DATA", "DATALIST", "DD", "DEL", "DETAILS", "DFN", "DIR", "DIV", "DL", "DT", "EM", "FIELDSET", "FIGCAPTION", "FIGURE", "FONT", "FOOTER", "FORM", "H1", "H2", "H3", "H4", "H5", "H6", "HEADER", "HGROUP", "HR", "I", "IFRAME", "IMG", "INPUT", "INS", "KBD", "LABEL", "LEGEND", "LI", "MAP", "MARK", "MENU", "METER", "NAV", "NOBR", "OL", "OPTGROUP", "OPTION", "OUTPUT", "P", "PRE", "PROGRESS", "Q", "S", "SAMP", "SECTION", "SELECT", "SMALL", "SOURCE", "SPAN", "STRIKE", "STRONG", "SUB", "SUMMARY", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TIME", "TR", "TRACK", "TT", "U", "UL", "VAR", "VIDEO", "WBR"]);
    },
    /*html$._Html5NodeValidator._standardAttributes*/get _standardAttributes() {
      return C[401] || CT.C401;
    },
    /*html$._Html5NodeValidator._uriAttributes*/get _uriAttributes() {
      return C[402] || CT.C402;
    },
    /*html$._Html5NodeValidator._attributeValidators*/get _attributeValidators() {
      return new (T$0.IdentityMapOfString$Function()).new();
    }
  }, false);
  html$.KeyCode = class KeyCode extends core.Object {
    static isCharacterKey(keyCode) {
      if (keyCode == null) dart.nullFailed(I[147], 38223, 34, "keyCode");
      if (dart.notNull(keyCode) >= 48 && dart.notNull(keyCode) <= 57 || dart.notNull(keyCode) >= 96 && dart.notNull(keyCode) <= 106 || dart.notNull(keyCode) >= 65 && dart.notNull(keyCode) <= 90) {
        return true;
      }
      if (dart.test(html_common.Device.isWebKit) && keyCode === 0) {
        return true;
      }
      return keyCode === 32 || keyCode === 63 || keyCode === 107 || keyCode === 109 || keyCode === 110 || keyCode === 111 || keyCode === 186 || keyCode === 59 || keyCode === 189 || keyCode === 187 || keyCode === 61 || keyCode === 188 || keyCode === 190 || keyCode === 191 || keyCode === 192 || keyCode === 222 || keyCode === 219 || keyCode === 220 || keyCode === 221;
    }
    static _convertKeyCodeToKeyName(keyCode) {
      if (keyCode == null) dart.nullFailed(I[147], 38263, 46, "keyCode");
      switch (keyCode) {
        case 18:
        {
          return "Alt";
        }
        case 8:
        {
          return "Backspace";
        }
        case 20:
        {
          return "CapsLock";
        }
        case 17:
        {
          return "Control";
        }
        case 46:
        {
          return "Del";
        }
        case 40:
        {
          return "Down";
        }
        case 35:
        {
          return "End";
        }
        case 13:
        {
          return "Enter";
        }
        case 27:
        {
          return "Esc";
        }
        case 112:
        {
          return "F1";
        }
        case 113:
        {
          return "F2";
        }
        case 114:
        {
          return "F3";
        }
        case 115:
        {
          return "F4";
        }
        case 116:
        {
          return "F5";
        }
        case 117:
        {
          return "F6";
        }
        case 118:
        {
          return "F7";
        }
        case 119:
        {
          return "F8";
        }
        case 120:
        {
          return "F9";
        }
        case 121:
        {
          return "F10";
        }
        case 122:
        {
          return "F11";
        }
        case 123:
        {
          return "F12";
        }
        case 36:
        {
          return "Home";
        }
        case 45:
        {
          return "Insert";
        }
        case 37:
        {
          return "Left";
        }
        case 91:
        {
          return "Meta";
        }
        case 144:
        {
          return "NumLock";
        }
        case 34:
        {
          return "PageDown";
        }
        case 33:
        {
          return "PageUp";
        }
        case 19:
        {
          return "Pause";
        }
        case 44:
        {
          return "PrintScreen";
        }
        case 39:
        {
          return "Right";
        }
        case 145:
        {
          return "Scroll";
        }
        case 16:
        {
          return "Shift";
        }
        case 32:
        {
          return "Spacebar";
        }
        case 9:
        {
          return "Tab";
        }
        case 38:
        {
          return "Up";
        }
        case 229:
        case 224:
        case 91:
        case 92:
        {
          return "Win";
        }
        default:
        {
          return "Unidentified";
        }
      }
      return "Unidentified";
    }
  };
  (html$.KeyCode.new = function() {
    ;
  }).prototype = html$.KeyCode.prototype;
  dart.addTypeTests(html$.KeyCode);
  dart.addTypeCaches(html$.KeyCode);
  dart.setLibraryUri(html$.KeyCode, I[148]);
  dart.defineLazy(html$.KeyCode, {
    /*html$.KeyCode.WIN_KEY_FF_LINUX*/get WIN_KEY_FF_LINUX() {
      return 0;
    },
    /*html$.KeyCode.MAC_ENTER*/get MAC_ENTER() {
      return 3;
    },
    /*html$.KeyCode.BACKSPACE*/get BACKSPACE() {
      return 8;
    },
    /*html$.KeyCode.TAB*/get TAB() {
      return 9;
    },
    /*html$.KeyCode.NUM_CENTER*/get NUM_CENTER() {
      return 12;
    },
    /*html$.KeyCode.ENTER*/get ENTER() {
      return 13;
    },
    /*html$.KeyCode.SHIFT*/get SHIFT() {
      return 16;
    },
    /*html$.KeyCode.CTRL*/get CTRL() {
      return 17;
    },
    /*html$.KeyCode.ALT*/get ALT() {
      return 18;
    },
    /*html$.KeyCode.PAUSE*/get PAUSE() {
      return 19;
    },
    /*html$.KeyCode.CAPS_LOCK*/get CAPS_LOCK() {
      return 20;
    },
    /*html$.KeyCode.ESC*/get ESC() {
      return 27;
    },
    /*html$.KeyCode.SPACE*/get SPACE() {
      return 32;
    },
    /*html$.KeyCode.PAGE_UP*/get PAGE_UP() {
      return 33;
    },
    /*html$.KeyCode.PAGE_DOWN*/get PAGE_DOWN() {
      return 34;
    },
    /*html$.KeyCode.END*/get END() {
      return 35;
    },
    /*html$.KeyCode.HOME*/get HOME() {
      return 36;
    },
    /*html$.KeyCode.LEFT*/get LEFT() {
      return 37;
    },
    /*html$.KeyCode.UP*/get UP() {
      return 38;
    },
    /*html$.KeyCode.RIGHT*/get RIGHT() {
      return 39;
    },
    /*html$.KeyCode.DOWN*/get DOWN() {
      return 40;
    },
    /*html$.KeyCode.NUM_NORTH_EAST*/get NUM_NORTH_EAST() {
      return 33;
    },
    /*html$.KeyCode.NUM_SOUTH_EAST*/get NUM_SOUTH_EAST() {
      return 34;
    },
    /*html$.KeyCode.NUM_SOUTH_WEST*/get NUM_SOUTH_WEST() {
      return 35;
    },
    /*html$.KeyCode.NUM_NORTH_WEST*/get NUM_NORTH_WEST() {
      return 36;
    },
    /*html$.KeyCode.NUM_WEST*/get NUM_WEST() {
      return 37;
    },
    /*html$.KeyCode.NUM_NORTH*/get NUM_NORTH() {
      return 38;
    },
    /*html$.KeyCode.NUM_EAST*/get NUM_EAST() {
      return 39;
    },
    /*html$.KeyCode.NUM_SOUTH*/get NUM_SOUTH() {
      return 40;
    },
    /*html$.KeyCode.PRINT_SCREEN*/get PRINT_SCREEN() {
      return 44;
    },
    /*html$.KeyCode.INSERT*/get INSERT() {
      return 45;
    },
    /*html$.KeyCode.NUM_INSERT*/get NUM_INSERT() {
      return 45;
    },
    /*html$.KeyCode.DELETE*/get DELETE() {
      return 46;
    },
    /*html$.KeyCode.NUM_DELETE*/get NUM_DELETE() {
      return 46;
    },
    /*html$.KeyCode.ZERO*/get ZERO() {
      return 48;
    },
    /*html$.KeyCode.ONE*/get ONE() {
      return 49;
    },
    /*html$.KeyCode.TWO*/get TWO() {
      return 50;
    },
    /*html$.KeyCode.THREE*/get THREE() {
      return 51;
    },
    /*html$.KeyCode.FOUR*/get FOUR() {
      return 52;
    },
    /*html$.KeyCode.FIVE*/get FIVE() {
      return 53;
    },
    /*html$.KeyCode.SIX*/get SIX() {
      return 54;
    },
    /*html$.KeyCode.SEVEN*/get SEVEN() {
      return 55;
    },
    /*html$.KeyCode.EIGHT*/get EIGHT() {
      return 56;
    },
    /*html$.KeyCode.NINE*/get NINE() {
      return 57;
    },
    /*html$.KeyCode.FF_SEMICOLON*/get FF_SEMICOLON() {
      return 59;
    },
    /*html$.KeyCode.FF_EQUALS*/get FF_EQUALS() {
      return 61;
    },
    /*html$.KeyCode.QUESTION_MARK*/get QUESTION_MARK() {
      return 63;
    },
    /*html$.KeyCode.A*/get A() {
      return 65;
    },
    /*html$.KeyCode.B*/get B() {
      return 66;
    },
    /*html$.KeyCode.C*/get C() {
      return 67;
    },
    /*html$.KeyCode.D*/get D() {
      return 68;
    },
    /*html$.KeyCode.E*/get E() {
      return 69;
    },
    /*html$.KeyCode.F*/get F() {
      return 70;
    },
    /*html$.KeyCode.G*/get G() {
      return 71;
    },
    /*html$.KeyCode.H*/get H() {
      return 72;
    },
    /*html$.KeyCode.I*/get I() {
      return 73;
    },
    /*html$.KeyCode.J*/get J() {
      return 74;
    },
    /*html$.KeyCode.K*/get K() {
      return 75;
    },
    /*html$.KeyCode.L*/get L() {
      return 76;
    },
    /*html$.KeyCode.M*/get M() {
      return 77;
    },
    /*html$.KeyCode.N*/get N() {
      return 78;
    },
    /*html$.KeyCode.O*/get O() {
      return 79;
    },
    /*html$.KeyCode.P*/get P() {
      return 80;
    },
    /*html$.KeyCode.Q*/get Q() {
      return 81;
    },
    /*html$.KeyCode.R*/get R() {
      return 82;
    },
    /*html$.KeyCode.S*/get S() {
      return 83;
    },
    /*html$.KeyCode.T*/get T() {
      return 84;
    },
    /*html$.KeyCode.U*/get U() {
      return 85;
    },
    /*html$.KeyCode.V*/get V() {
      return 86;
    },
    /*html$.KeyCode.W*/get W() {
      return 87;
    },
    /*html$.KeyCode.X*/get X() {
      return 88;
    },
    /*html$.KeyCode.Y*/get Y() {
      return 89;
    },
    /*html$.KeyCode.Z*/get Z() {
      return 90;
    },
    /*html$.KeyCode.META*/get META() {
      return 91;
    },
    /*html$.KeyCode.WIN_KEY_LEFT*/get WIN_KEY_LEFT() {
      return 91;
    },
    /*html$.KeyCode.WIN_KEY_RIGHT*/get WIN_KEY_RIGHT() {
      return 92;
    },
    /*html$.KeyCode.CONTEXT_MENU*/get CONTEXT_MENU() {
      return 93;
    },
    /*html$.KeyCode.NUM_ZERO*/get NUM_ZERO() {
      return 96;
    },
    /*html$.KeyCode.NUM_ONE*/get NUM_ONE() {
      return 97;
    },
    /*html$.KeyCode.NUM_TWO*/get NUM_TWO() {
      return 98;
    },
    /*html$.KeyCode.NUM_THREE*/get NUM_THREE() {
      return 99;
    },
    /*html$.KeyCode.NUM_FOUR*/get NUM_FOUR() {
      return 100;
    },
    /*html$.KeyCode.NUM_FIVE*/get NUM_FIVE() {
      return 101;
    },
    /*html$.KeyCode.NUM_SIX*/get NUM_SIX() {
      return 102;
    },
    /*html$.KeyCode.NUM_SEVEN*/get NUM_SEVEN() {
      return 103;
    },
    /*html$.KeyCode.NUM_EIGHT*/get NUM_EIGHT() {
      return 104;
    },
    /*html$.KeyCode.NUM_NINE*/get NUM_NINE() {
      return 105;
    },
    /*html$.KeyCode.NUM_MULTIPLY*/get NUM_MULTIPLY() {
      return 106;
    },
    /*html$.KeyCode.NUM_PLUS*/get NUM_PLUS() {
      return 107;
    },
    /*html$.KeyCode.NUM_MINUS*/get NUM_MINUS() {
      return 109;
    },
    /*html$.KeyCode.NUM_PERIOD*/get NUM_PERIOD() {
      return 110;
    },
    /*html$.KeyCode.NUM_DIVISION*/get NUM_DIVISION() {
      return 111;
    },
    /*html$.KeyCode.F1*/get F1() {
      return 112;
    },
    /*html$.KeyCode.F2*/get F2() {
      return 113;
    },
    /*html$.KeyCode.F3*/get F3() {
      return 114;
    },
    /*html$.KeyCode.F4*/get F4() {
      return 115;
    },
    /*html$.KeyCode.F5*/get F5() {
      return 116;
    },
    /*html$.KeyCode.F6*/get F6() {
      return 117;
    },
    /*html$.KeyCode.F7*/get F7() {
      return 118;
    },
    /*html$.KeyCode.F8*/get F8() {
      return 119;
    },
    /*html$.KeyCode.F9*/get F9() {
      return 120;
    },
    /*html$.KeyCode.F10*/get F10() {
      return 121;
    },
    /*html$.KeyCode.F11*/get F11() {
      return 122;
    },
    /*html$.KeyCode.F12*/get F12() {
      return 123;
    },
    /*html$.KeyCode.NUMLOCK*/get NUMLOCK() {
      return 144;
    },
    /*html$.KeyCode.SCROLL_LOCK*/get SCROLL_LOCK() {
      return 145;
    },
    /*html$.KeyCode.FIRST_MEDIA_KEY*/get FIRST_MEDIA_KEY() {
      return 166;
    },
    /*html$.KeyCode.LAST_MEDIA_KEY*/get LAST_MEDIA_KEY() {
      return 183;
    },
    /*html$.KeyCode.SEMICOLON*/get SEMICOLON() {
      return 186;
    },
    /*html$.KeyCode.DASH*/get DASH() {
      return 189;
    },
    /*html$.KeyCode.EQUALS*/get EQUALS() {
      return 187;
    },
    /*html$.KeyCode.COMMA*/get COMMA() {
      return 188;
    },
    /*html$.KeyCode.PERIOD*/get PERIOD() {
      return 190;
    },
    /*html$.KeyCode.SLASH*/get SLASH() {
      return 191;
    },
    /*html$.KeyCode.APOSTROPHE*/get APOSTROPHE() {
      return 192;
    },
    /*html$.KeyCode.TILDE*/get TILDE() {
      return 192;
    },
    /*html$.KeyCode.SINGLE_QUOTE*/get SINGLE_QUOTE() {
      return 222;
    },
    /*html$.KeyCode.OPEN_SQUARE_BRACKET*/get OPEN_SQUARE_BRACKET() {
      return 219;
    },
    /*html$.KeyCode.BACKSLASH*/get BACKSLASH() {
      return 220;
    },
    /*html$.KeyCode.CLOSE_SQUARE_BRACKET*/get CLOSE_SQUARE_BRACKET() {
      return 221;
    },
    /*html$.KeyCode.WIN_KEY*/get WIN_KEY() {
      return 224;
    },
    /*html$.KeyCode.MAC_FF_META*/get MAC_FF_META() {
      return 224;
    },
    /*html$.KeyCode.WIN_IME*/get WIN_IME() {
      return 229;
    },
    /*html$.KeyCode.UNKNOWN*/get UNKNOWN() {
      return -1;
    }
  }, false);
  html$.KeyLocation = class KeyLocation extends core.Object {};
  (html$.KeyLocation.new = function() {
    ;
  }).prototype = html$.KeyLocation.prototype;
  dart.addTypeTests(html$.KeyLocation);
  dart.addTypeCaches(html$.KeyLocation);
  dart.setLibraryUri(html$.KeyLocation, I[148]);
  dart.defineLazy(html$.KeyLocation, {
    /*html$.KeyLocation.STANDARD*/get STANDARD() {
      return 0;
    },
    /*html$.KeyLocation.LEFT*/get LEFT() {
      return 1;
    },
    /*html$.KeyLocation.RIGHT*/get RIGHT() {
      return 2;
    },
    /*html$.KeyLocation.NUMPAD*/get NUMPAD() {
      return 3;
    },
    /*html$.KeyLocation.MOBILE*/get MOBILE() {
      return 4;
    },
    /*html$.KeyLocation.JOYSTICK*/get JOYSTICK() {
      return 5;
    }
  }, false);
  html$._KeyName = class _KeyName extends core.Object {};
  (html$._KeyName.new = function() {
    ;
  }).prototype = html$._KeyName.prototype;
  dart.addTypeTests(html$._KeyName);
  dart.addTypeCaches(html$._KeyName);
  dart.setLibraryUri(html$._KeyName, I[148]);
  dart.defineLazy(html$._KeyName, {
    /*html$._KeyName.ACCEPT*/get ACCEPT() {
      return "Accept";
    },
    /*html$._KeyName.ADD*/get ADD() {
      return "Add";
    },
    /*html$._KeyName.AGAIN*/get AGAIN() {
      return "Again";
    },
    /*html$._KeyName.ALL_CANDIDATES*/get ALL_CANDIDATES() {
      return "AllCandidates";
    },
    /*html$._KeyName.ALPHANUMERIC*/get ALPHANUMERIC() {
      return "Alphanumeric";
    },
    /*html$._KeyName.ALT*/get ALT() {
      return "Alt";
    },
    /*html$._KeyName.ALT_GRAPH*/get ALT_GRAPH() {
      return "AltGraph";
    },
    /*html$._KeyName.APPS*/get APPS() {
      return "Apps";
    },
    /*html$._KeyName.ATTN*/get ATTN() {
      return "Attn";
    },
    /*html$._KeyName.BROWSER_BACK*/get BROWSER_BACK() {
      return "BrowserBack";
    },
    /*html$._KeyName.BROWSER_FAVORTIES*/get BROWSER_FAVORTIES() {
      return "BrowserFavorites";
    },
    /*html$._KeyName.BROWSER_FORWARD*/get BROWSER_FORWARD() {
      return "BrowserForward";
    },
    /*html$._KeyName.BROWSER_NAME*/get BROWSER_NAME() {
      return "BrowserHome";
    },
    /*html$._KeyName.BROWSER_REFRESH*/get BROWSER_REFRESH() {
      return "BrowserRefresh";
    },
    /*html$._KeyName.BROWSER_SEARCH*/get BROWSER_SEARCH() {
      return "BrowserSearch";
    },
    /*html$._KeyName.BROWSER_STOP*/get BROWSER_STOP() {
      return "BrowserStop";
    },
    /*html$._KeyName.CAMERA*/get CAMERA() {
      return "Camera";
    },
    /*html$._KeyName.CAPS_LOCK*/get CAPS_LOCK() {
      return "CapsLock";
    },
    /*html$._KeyName.CLEAR*/get CLEAR() {
      return "Clear";
    },
    /*html$._KeyName.CODE_INPUT*/get CODE_INPUT() {
      return "CodeInput";
    },
    /*html$._KeyName.COMPOSE*/get COMPOSE() {
      return "Compose";
    },
    /*html$._KeyName.CONTROL*/get CONTROL() {
      return "Control";
    },
    /*html$._KeyName.CRSEL*/get CRSEL() {
      return "Crsel";
    },
    /*html$._KeyName.CONVERT*/get CONVERT() {
      return "Convert";
    },
    /*html$._KeyName.COPY*/get COPY() {
      return "Copy";
    },
    /*html$._KeyName.CUT*/get CUT() {
      return "Cut";
    },
    /*html$._KeyName.DECIMAL*/get DECIMAL() {
      return "Decimal";
    },
    /*html$._KeyName.DIVIDE*/get DIVIDE() {
      return "Divide";
    },
    /*html$._KeyName.DOWN*/get DOWN() {
      return "Down";
    },
    /*html$._KeyName.DOWN_LEFT*/get DOWN_LEFT() {
      return "DownLeft";
    },
    /*html$._KeyName.DOWN_RIGHT*/get DOWN_RIGHT() {
      return "DownRight";
    },
    /*html$._KeyName.EJECT*/get EJECT() {
      return "Eject";
    },
    /*html$._KeyName.END*/get END() {
      return "End";
    },
    /*html$._KeyName.ENTER*/get ENTER() {
      return "Enter";
    },
    /*html$._KeyName.ERASE_EOF*/get ERASE_EOF() {
      return "EraseEof";
    },
    /*html$._KeyName.EXECUTE*/get EXECUTE() {
      return "Execute";
    },
    /*html$._KeyName.EXSEL*/get EXSEL() {
      return "Exsel";
    },
    /*html$._KeyName.FN*/get FN() {
      return "Fn";
    },
    /*html$._KeyName.F1*/get F1() {
      return "F1";
    },
    /*html$._KeyName.F2*/get F2() {
      return "F2";
    },
    /*html$._KeyName.F3*/get F3() {
      return "F3";
    },
    /*html$._KeyName.F4*/get F4() {
      return "F4";
    },
    /*html$._KeyName.F5*/get F5() {
      return "F5";
    },
    /*html$._KeyName.F6*/get F6() {
      return "F6";
    },
    /*html$._KeyName.F7*/get F7() {
      return "F7";
    },
    /*html$._KeyName.F8*/get F8() {
      return "F8";
    },
    /*html$._KeyName.F9*/get F9() {
      return "F9";
    },
    /*html$._KeyName.F10*/get F10() {
      return "F10";
    },
    /*html$._KeyName.F11*/get F11() {
      return "F11";
    },
    /*html$._KeyName.F12*/get F12() {
      return "F12";
    },
    /*html$._KeyName.F13*/get F13() {
      return "F13";
    },
    /*html$._KeyName.F14*/get F14() {
      return "F14";
    },
    /*html$._KeyName.F15*/get F15() {
      return "F15";
    },
    /*html$._KeyName.F16*/get F16() {
      return "F16";
    },
    /*html$._KeyName.F17*/get F17() {
      return "F17";
    },
    /*html$._KeyName.F18*/get F18() {
      return "F18";
    },
    /*html$._KeyName.F19*/get F19() {
      return "F19";
    },
    /*html$._KeyName.F20*/get F20() {
      return "F20";
    },
    /*html$._KeyName.F21*/get F21() {
      return "F21";
    },
    /*html$._KeyName.F22*/get F22() {
      return "F22";
    },
    /*html$._KeyName.F23*/get F23() {
      return "F23";
    },
    /*html$._KeyName.F24*/get F24() {
      return "F24";
    },
    /*html$._KeyName.FINAL_MODE*/get FINAL_MODE() {
      return "FinalMode";
    },
    /*html$._KeyName.FIND*/get FIND() {
      return "Find";
    },
    /*html$._KeyName.FULL_WIDTH*/get FULL_WIDTH() {
      return "FullWidth";
    },
    /*html$._KeyName.HALF_WIDTH*/get HALF_WIDTH() {
      return "HalfWidth";
    },
    /*html$._KeyName.HANGUL_MODE*/get HANGUL_MODE() {
      return "HangulMode";
    },
    /*html$._KeyName.HANJA_MODE*/get HANJA_MODE() {
      return "HanjaMode";
    },
    /*html$._KeyName.HELP*/get HELP() {
      return "Help";
    },
    /*html$._KeyName.HIRAGANA*/get HIRAGANA() {
      return "Hiragana";
    },
    /*html$._KeyName.HOME*/get HOME() {
      return "Home";
    },
    /*html$._KeyName.INSERT*/get INSERT() {
      return "Insert";
    },
    /*html$._KeyName.JAPANESE_HIRAGANA*/get JAPANESE_HIRAGANA() {
      return "JapaneseHiragana";
    },
    /*html$._KeyName.JAPANESE_KATAKANA*/get JAPANESE_KATAKANA() {
      return "JapaneseKatakana";
    },
    /*html$._KeyName.JAPANESE_ROMAJI*/get JAPANESE_ROMAJI() {
      return "JapaneseRomaji";
    },
    /*html$._KeyName.JUNJA_MODE*/get JUNJA_MODE() {
      return "JunjaMode";
    },
    /*html$._KeyName.KANA_MODE*/get KANA_MODE() {
      return "KanaMode";
    },
    /*html$._KeyName.KANJI_MODE*/get KANJI_MODE() {
      return "KanjiMode";
    },
    /*html$._KeyName.KATAKANA*/get KATAKANA() {
      return "Katakana";
    },
    /*html$._KeyName.LAUNCH_APPLICATION_1*/get LAUNCH_APPLICATION_1() {
      return "LaunchApplication1";
    },
    /*html$._KeyName.LAUNCH_APPLICATION_2*/get LAUNCH_APPLICATION_2() {
      return "LaunchApplication2";
    },
    /*html$._KeyName.LAUNCH_MAIL*/get LAUNCH_MAIL() {
      return "LaunchMail";
    },
    /*html$._KeyName.LEFT*/get LEFT() {
      return "Left";
    },
    /*html$._KeyName.MENU*/get MENU() {
      return "Menu";
    },
    /*html$._KeyName.META*/get META() {
      return "Meta";
    },
    /*html$._KeyName.MEDIA_NEXT_TRACK*/get MEDIA_NEXT_TRACK() {
      return "MediaNextTrack";
    },
    /*html$._KeyName.MEDIA_PAUSE_PLAY*/get MEDIA_PAUSE_PLAY() {
      return "MediaPlayPause";
    },
    /*html$._KeyName.MEDIA_PREVIOUS_TRACK*/get MEDIA_PREVIOUS_TRACK() {
      return "MediaPreviousTrack";
    },
    /*html$._KeyName.MEDIA_STOP*/get MEDIA_STOP() {
      return "MediaStop";
    },
    /*html$._KeyName.MODE_CHANGE*/get MODE_CHANGE() {
      return "ModeChange";
    },
    /*html$._KeyName.NEXT_CANDIDATE*/get NEXT_CANDIDATE() {
      return "NextCandidate";
    },
    /*html$._KeyName.NON_CONVERT*/get NON_CONVERT() {
      return "Nonconvert";
    },
    /*html$._KeyName.NUM_LOCK*/get NUM_LOCK() {
      return "NumLock";
    },
    /*html$._KeyName.PAGE_DOWN*/get PAGE_DOWN() {
      return "PageDown";
    },
    /*html$._KeyName.PAGE_UP*/get PAGE_UP() {
      return "PageUp";
    },
    /*html$._KeyName.PASTE*/get PASTE() {
      return "Paste";
    },
    /*html$._KeyName.PAUSE*/get PAUSE() {
      return "Pause";
    },
    /*html$._KeyName.PLAY*/get PLAY() {
      return "Play";
    },
    /*html$._KeyName.POWER*/get POWER() {
      return "Power";
    },
    /*html$._KeyName.PREVIOUS_CANDIDATE*/get PREVIOUS_CANDIDATE() {
      return "PreviousCandidate";
    },
    /*html$._KeyName.PRINT_SCREEN*/get PRINT_SCREEN() {
      return "PrintScreen";
    },
    /*html$._KeyName.PROCESS*/get PROCESS() {
      return "Process";
    },
    /*html$._KeyName.PROPS*/get PROPS() {
      return "Props";
    },
    /*html$._KeyName.RIGHT*/get RIGHT() {
      return "Right";
    },
    /*html$._KeyName.ROMAN_CHARACTERS*/get ROMAN_CHARACTERS() {
      return "RomanCharacters";
    },
    /*html$._KeyName.SCROLL*/get SCROLL() {
      return "Scroll";
    },
    /*html$._KeyName.SELECT*/get SELECT() {
      return "Select";
    },
    /*html$._KeyName.SELECT_MEDIA*/get SELECT_MEDIA() {
      return "SelectMedia";
    },
    /*html$._KeyName.SEPARATOR*/get SEPARATOR() {
      return "Separator";
    },
    /*html$._KeyName.SHIFT*/get SHIFT() {
      return "Shift";
    },
    /*html$._KeyName.SOFT_1*/get SOFT_1() {
      return "Soft1";
    },
    /*html$._KeyName.SOFT_2*/get SOFT_2() {
      return "Soft2";
    },
    /*html$._KeyName.SOFT_3*/get SOFT_3() {
      return "Soft3";
    },
    /*html$._KeyName.SOFT_4*/get SOFT_4() {
      return "Soft4";
    },
    /*html$._KeyName.STOP*/get STOP() {
      return "Stop";
    },
    /*html$._KeyName.SUBTRACT*/get SUBTRACT() {
      return "Subtract";
    },
    /*html$._KeyName.SYMBOL_LOCK*/get SYMBOL_LOCK() {
      return "SymbolLock";
    },
    /*html$._KeyName.UP*/get UP() {
      return "Up";
    },
    /*html$._KeyName.UP_LEFT*/get UP_LEFT() {
      return "UpLeft";
    },
    /*html$._KeyName.UP_RIGHT*/get UP_RIGHT() {
      return "UpRight";
    },
    /*html$._KeyName.UNDO*/get UNDO() {
      return "Undo";
    },
    /*html$._KeyName.VOLUME_DOWN*/get VOLUME_DOWN() {
      return "VolumeDown";
    },
    /*html$._KeyName.VOLUMN_MUTE*/get VOLUMN_MUTE() {
      return "VolumeMute";
    },
    /*html$._KeyName.VOLUMN_UP*/get VOLUMN_UP() {
      return "VolumeUp";
    },
    /*html$._KeyName.WIN*/get WIN() {
      return "Win";
    },
    /*html$._KeyName.ZOOM*/get ZOOM() {
      return "Zoom";
    },
    /*html$._KeyName.BACKSPACE*/get BACKSPACE() {
      return "Backspace";
    },
    /*html$._KeyName.TAB*/get TAB() {
      return "Tab";
    },
    /*html$._KeyName.CANCEL*/get CANCEL() {
      return "Cancel";
    },
    /*html$._KeyName.ESC*/get ESC() {
      return "Esc";
    },
    /*html$._KeyName.SPACEBAR*/get SPACEBAR() {
      return "Spacebar";
    },
    /*html$._KeyName.DEL*/get DEL() {
      return "Del";
    },
    /*html$._KeyName.DEAD_GRAVE*/get DEAD_GRAVE() {
      return "DeadGrave";
    },
    /*html$._KeyName.DEAD_EACUTE*/get DEAD_EACUTE() {
      return "DeadEacute";
    },
    /*html$._KeyName.DEAD_CIRCUMFLEX*/get DEAD_CIRCUMFLEX() {
      return "DeadCircumflex";
    },
    /*html$._KeyName.DEAD_TILDE*/get DEAD_TILDE() {
      return "DeadTilde";
    },
    /*html$._KeyName.DEAD_MACRON*/get DEAD_MACRON() {
      return "DeadMacron";
    },
    /*html$._KeyName.DEAD_BREVE*/get DEAD_BREVE() {
      return "DeadBreve";
    },
    /*html$._KeyName.DEAD_ABOVE_DOT*/get DEAD_ABOVE_DOT() {
      return "DeadAboveDot";
    },
    /*html$._KeyName.DEAD_UMLAUT*/get DEAD_UMLAUT() {
      return "DeadUmlaut";
    },
    /*html$._KeyName.DEAD_ABOVE_RING*/get DEAD_ABOVE_RING() {
      return "DeadAboveRing";
    },
    /*html$._KeyName.DEAD_DOUBLEACUTE*/get DEAD_DOUBLEACUTE() {
      return "DeadDoubleacute";
    },
    /*html$._KeyName.DEAD_CARON*/get DEAD_CARON() {
      return "DeadCaron";
    },
    /*html$._KeyName.DEAD_CEDILLA*/get DEAD_CEDILLA() {
      return "DeadCedilla";
    },
    /*html$._KeyName.DEAD_OGONEK*/get DEAD_OGONEK() {
      return "DeadOgonek";
    },
    /*html$._KeyName.DEAD_IOTA*/get DEAD_IOTA() {
      return "DeadIota";
    },
    /*html$._KeyName.DEAD_VOICED_SOUND*/get DEAD_VOICED_SOUND() {
      return "DeadVoicedSound";
    },
    /*html$._KeyName.DEC_SEMIVOICED_SOUND*/get DEC_SEMIVOICED_SOUND() {
      return "DeadSemivoicedSound";
    },
    /*html$._KeyName.UNIDENTIFIED*/get UNIDENTIFIED() {
      return "Unidentified";
    }
  }, false);
  html$._KeyboardEventHandler = class _KeyboardEventHandler extends html$.EventStreamProvider$(html$.KeyEvent) {
    forTarget(e, opts) {
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      if (useCapture == null) dart.nullFailed(I[147], 38949, 58, "useCapture");
      let handler = new html$._KeyboardEventHandler.initializeAllEventListeners(this[S$3._type$5], e);
      return handler[S$3._stream$3];
    }
    get [S$3._capsLockOn]() {
      return this[S$3._keyDownList][$any](dart.fn(element => {
        if (element == null) dart.nullFailed(I[147], 38984, 29, "element");
        return element.keyCode === 20;
      }, T$0.KeyEventTobool()));
    }
    [S$3._determineKeyCodeForKeypress](event) {
      if (event == null) dart.nullFailed(I[147], 38993, 50, "event");
      for (let prevEvent of this[S$3._keyDownList]) {
        if (prevEvent[S$3._shadowCharCode] == event.charCode) {
          return prevEvent.keyCode;
        }
        if ((dart.test(event.shiftKey) || dart.test(this[S$3._capsLockOn])) && dart.notNull(event.charCode) >= dart.notNull("A"[$codeUnits][$_get](0)) && dart.notNull(event.charCode) <= dart.notNull("Z"[$codeUnits][$_get](0)) && dart.notNull(event.charCode) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) === prevEvent[S$3._shadowCharCode]) {
          return prevEvent.keyCode;
        }
      }
      return -1;
    }
    [S$3._findCharCodeKeyDown](event) {
      if (event == null) dart.nullFailed(I[147], 39017, 42, "event");
      if (event.location === 3) {
        switch (event.keyCode) {
          case 96:
          {
            return 48;
          }
          case 97:
          {
            return 49;
          }
          case 98:
          {
            return 50;
          }
          case 99:
          {
            return 51;
          }
          case 100:
          {
            return 52;
          }
          case 101:
          {
            return 53;
          }
          case 102:
          {
            return 54;
          }
          case 103:
          {
            return 55;
          }
          case 104:
          {
            return 56;
          }
          case 105:
          {
            return 57;
          }
          case 106:
          {
            return 42;
          }
          case 107:
          {
            return 43;
          }
          case 109:
          {
            return 45;
          }
          case 110:
          {
            return 46;
          }
          case 111:
          {
            return 47;
          }
        }
      } else if (dart.notNull(event.keyCode) >= 65 && dart.notNull(event.keyCode) <= 90) {
        return dart.notNull(event.keyCode) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
      }
      switch (event.keyCode) {
        case 186:
        {
          return 59;
        }
        case 187:
        {
          return 61;
        }
        case 188:
        {
          return 44;
        }
        case 189:
        {
          return 45;
        }
        case 190:
        {
          return 46;
        }
        case 191:
        {
          return 47;
        }
        case 192:
        {
          return 96;
        }
        case 219:
        {
          return 91;
        }
        case 220:
        {
          return 92;
        }
        case 221:
        {
          return 93;
        }
        case 222:
        {
          return 39;
        }
      }
      return event.keyCode;
    }
    [S$3._firesKeyPressEvent](event) {
      if (event == null) dart.nullFailed(I[147], 39091, 37, "event");
      if (!dart.test(html_common.Device.isIE) && !dart.test(html_common.Device.isWebKit)) {
        return true;
      }
      if (html_common.Device.userAgent[$contains]("Mac") && dart.test(event.altKey)) {
        return html$.KeyCode.isCharacterKey(event.keyCode);
      }
      if (dart.test(event.altKey) && !dart.test(event.ctrlKey)) {
        return false;
      }
      if (!dart.test(event.shiftKey) && (this[S$3._keyDownList][$last].keyCode === 17 || this[S$3._keyDownList][$last].keyCode === 18 || html_common.Device.userAgent[$contains]("Mac") && this[S$3._keyDownList][$last].keyCode === 91)) {
        return false;
      }
      if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode === 220 || event.keyCode === 219 || event.keyCode === 221 || event.keyCode === 192 || event.keyCode === 186 || event.keyCode === 189 || event.keyCode === 187 || event.keyCode === 188 || event.keyCode === 190 || event.keyCode === 191 || event.keyCode === 192 || event.keyCode === 222)) {
        return false;
      }
      switch (event.keyCode) {
        case 13:
        {
          return !dart.test(html_common.Device.isIE);
        }
        case 27:
        {
          return !dart.test(html_common.Device.isWebKit);
        }
      }
      return html$.KeyCode.isCharacterKey(event.keyCode);
    }
    [S$3._normalizeKeyCodes](event) {
      if (event == null) dart.nullFailed(I[147], 39148, 40, "event");
      if (dart.test(html_common.Device.isFirefox)) {
        switch (event.keyCode) {
          case 61:
          {
            return 187;
          }
          case 59:
          {
            return 186;
          }
          case 224:
          {
            return 91;
          }
          case 0:
          {
            return 224;
          }
        }
      }
      return event.keyCode;
    }
    processKeyDown(e) {
      if (e == null) dart.nullFailed(I[147], 39166, 37, "e");
      if (dart.notNull(this[S$3._keyDownList][$length]) > 0 && (this[S$3._keyDownList][$last].keyCode === 17 && !dart.test(e.ctrlKey) || this[S$3._keyDownList][$last].keyCode === 18 && !dart.test(e.altKey) || html_common.Device.userAgent[$contains]("Mac") && this[S$3._keyDownList][$last].keyCode === 91 && !dart.test(e.metaKey))) {
        this[S$3._keyDownList][$clear]();
      }
      let event = new html$.KeyEvent.wrap(e);
      event[S$3._shadowKeyCode] = this[S$3._normalizeKeyCodes](event);
      event[S$3._shadowCharCode] = this[S$3._findCharCodeKeyDown](event);
      if (dart.notNull(this[S$3._keyDownList][$length]) > 0 && event.keyCode != this[S$3._keyDownList][$last].keyCode && !dart.test(this[S$3._firesKeyPressEvent](event))) {
        this.processKeyPress(e);
      }
      this[S$3._keyDownList][$add](event);
      this[S$3._stream$3].add(event);
    }
    processKeyPress(event) {
      if (event == null) dart.nullFailed(I[147], 39198, 38, "event");
      let e = new html$.KeyEvent.wrap(event);
      if (dart.test(html_common.Device.isIE)) {
        if (e.keyCode === 13 || e.keyCode === 27) {
          e[S$3._shadowCharCode] = 0;
        } else {
          e[S$3._shadowCharCode] = e.keyCode;
        }
      } else if (dart.test(html_common.Device.isOpera)) {
        e[S$3._shadowCharCode] = dart.test(html$.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
      }
      e[S$3._shadowKeyCode] = this[S$3._determineKeyCodeForKeypress](e);
      if (e[S$3._shadowKeyIdentifier] != null && dart.test(html$._KeyboardEventHandler._keyIdentifier[$containsKey](e[S$3._shadowKeyIdentifier]))) {
        e[S$3._shadowKeyCode] = dart.nullCheck(html$._KeyboardEventHandler._keyIdentifier[$_get](e[S$3._shadowKeyIdentifier]));
      }
      e[S$3._shadowAltKey] = this[S$3._keyDownList][$any](dart.fn(element => {
        if (element == null) dart.nullFailed(I[147], 39223, 45, "element");
        return element.altKey;
      }, T$0.KeyEventTobool()));
      this[S$3._stream$3].add(e);
    }
    processKeyUp(event) {
      if (event == null) dart.nullFailed(I[147], 39228, 35, "event");
      let e = new html$.KeyEvent.wrap(event);
      let toRemove = null;
      for (let key of this[S$3._keyDownList]) {
        if (key.keyCode == e.keyCode) {
          toRemove = key;
        }
      }
      if (toRemove != null) {
        this[S$3._keyDownList][$removeWhere](dart.fn(element => {
          if (element == null) dart.nullFailed(I[147], 39237, 33, "element");
          return dart.equals(element, toRemove);
        }, T$0.KeyEventTobool()));
      } else if (dart.notNull(this[S$3._keyDownList][$length]) > 0) {
        this[S$3._keyDownList][$removeLast]();
      }
      this[S$3._stream$3].add(e);
    }
  };
  (html$._KeyboardEventHandler.new = function(_type) {
    if (_type == null) dart.nullFailed(I[147], 38959, 30, "_type");
    this[S$3._keyDownList] = T$0.JSArrayOfKeyEvent().of([]);
    this[S$3._type$5] = _type;
    this[S$3._stream$3] = new html$._CustomKeyEventStreamImpl.new("event");
    this[S$3._target$2] = null;
    html$._KeyboardEventHandler.__proto__.new.call(this, "KeyEvent");
    ;
  }).prototype = html$._KeyboardEventHandler.prototype;
  (html$._KeyboardEventHandler.initializeAllEventListeners = function(_type, _target) {
    if (_type == null) dart.nullFailed(I[147], 38968, 58, "_type");
    this[S$3._keyDownList] = T$0.JSArrayOfKeyEvent().of([]);
    this[S$3._type$5] = _type;
    this[S$3._target$2] = _target;
    this[S$3._stream$3] = new html$._CustomKeyEventStreamImpl.new(_type);
    html$._KeyboardEventHandler.__proto__.new.call(this, "KeyEvent");
    html$.Element.keyDownEvent.forTarget(this[S$3._target$2], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
    html$.Element.keyPressEvent.forTarget(this[S$3._target$2], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
    html$.Element.keyUpEvent.forTarget(this[S$3._target$2], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
  }).prototype = html$._KeyboardEventHandler.prototype;
  dart.addTypeTests(html$._KeyboardEventHandler);
  dart.addTypeCaches(html$._KeyboardEventHandler);
  dart.setMethodSignature(html$._KeyboardEventHandler, () => ({
    __proto__: dart.getMethods(html$._KeyboardEventHandler.__proto__),
    forTarget: dart.fnType(html$.CustomStream$(html$.KeyEvent), [dart.nullable(html$.EventTarget)], {useCapture: core.bool}, {}),
    [S$3._determineKeyCodeForKeypress]: dart.fnType(core.int, [html$.KeyboardEvent]),
    [S$3._findCharCodeKeyDown]: dart.fnType(core.int, [html$.KeyboardEvent]),
    [S$3._firesKeyPressEvent]: dart.fnType(core.bool, [html$.KeyEvent]),
    [S$3._normalizeKeyCodes]: dart.fnType(core.int, [html$.KeyboardEvent]),
    processKeyDown: dart.fnType(dart.void, [html$.KeyboardEvent]),
    processKeyPress: dart.fnType(dart.void, [html$.KeyboardEvent]),
    processKeyUp: dart.fnType(dart.void, [html$.KeyboardEvent])
  }));
  dart.setGetterSignature(html$._KeyboardEventHandler, () => ({
    __proto__: dart.getGetters(html$._KeyboardEventHandler.__proto__),
    [S$3._capsLockOn]: core.bool
  }));
  dart.setLibraryUri(html$._KeyboardEventHandler, I[148]);
  dart.setFieldSignature(html$._KeyboardEventHandler, () => ({
    __proto__: dart.getFields(html$._KeyboardEventHandler.__proto__),
    [S$3._keyDownList]: dart.finalFieldType(core.List$(html$.KeyEvent)),
    [S$3._type$5]: dart.finalFieldType(core.String),
    [S$3._target$2]: dart.finalFieldType(dart.nullable(html$.EventTarget)),
    [S$3._stream$3]: dart.fieldType(html$._CustomKeyEventStreamImpl)
  }));
  dart.defineLazy(html$._KeyboardEventHandler, {
    /*html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET*/get _ROMAN_ALPHABET_OFFSET() {
      return dart.notNull("a"[$codeUnits][$_get](0)) - dart.notNull("A"[$codeUnits][$_get](0));
    },
    /*html$._KeyboardEventHandler._EVENT_TYPE*/get _EVENT_TYPE() {
      return "KeyEvent";
    },
    /*html$._KeyboardEventHandler._keyIdentifier*/get _keyIdentifier() {
      return C[403] || CT.C403;
    }
  }, false);
  html$.KeyboardEventStream = class KeyboardEventStream extends core.Object {
    static onKeyPress(target) {
      if (target == null) dart.nullFailed(I[147], 39265, 56, "target");
      return new html$._KeyboardEventHandler.new("keypress").forTarget(target);
    }
    static onKeyUp(target) {
      if (target == null) dart.nullFailed(I[147], 39269, 53, "target");
      return new html$._KeyboardEventHandler.new("keyup").forTarget(target);
    }
    static onKeyDown(target) {
      if (target == null) dart.nullFailed(I[147], 39273, 55, "target");
      return new html$._KeyboardEventHandler.new("keydown").forTarget(target);
    }
  };
  (html$.KeyboardEventStream.new = function() {
    ;
  }).prototype = html$.KeyboardEventStream.prototype;
  dart.addTypeTests(html$.KeyboardEventStream);
  dart.addTypeCaches(html$.KeyboardEventStream);
  dart.setLibraryUri(html$.KeyboardEventStream, I[148]);
  html$.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
    allowNavigation(uriPolicy = null) {
      if (uriPolicy == null) {
        uriPolicy = html$.UriPolicy.new();
      }
      this.add(html$._SimpleNodeValidator.allowNavigation(uriPolicy));
    }
    allowImages(uriPolicy = null) {
      if (uriPolicy == null) {
        uriPolicy = html$.UriPolicy.new();
      }
      this.add(html$._SimpleNodeValidator.allowImages(uriPolicy));
    }
    allowTextElements() {
      this.add(html$._SimpleNodeValidator.allowTextElements());
    }
    allowInlineStyles(opts) {
      let tagName = opts && 'tagName' in opts ? opts.tagName : null;
      if (tagName == null) {
        tagName = "*";
      } else {
        tagName = tagName[$toUpperCase]();
      }
      this.add(new html$._SimpleNodeValidator.new(null, {allowedAttributes: T$.JSArrayOfString().of([dart.str(tagName) + "::style"])}));
    }
    allowHtml5(opts) {
      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
      this.add(new html$._Html5NodeValidator.new({uriPolicy: uriPolicy}));
    }
    allowSvg() {
      this.add(new html$._SvgNodeValidator.new());
    }
    allowCustomElement(tagName, opts) {
      let t241, t241$;
      if (tagName == null) dart.nullFailed(I[147], 39424, 34, "tagName");
      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
      let tagNameUpper = tagName[$toUpperCase]();
      let attrs = (t241 = attributes, t241 == null ? null : t241[$map](core.String, dart.fn(name => {
        if (name == null) dart.nullFailed(I[147], 39430, 24, "name");
        return tagNameUpper + "::" + name[$toLowerCase]();
      }, T$.StringToString())));
      let uriAttrs = (t241$ = uriAttributes, t241$ == null ? null : t241$[$map](core.String, dart.fn(name => {
        if (name == null) dart.nullFailed(I[147], 39432, 24, "name");
        return tagNameUpper + "::" + name[$toLowerCase]();
      }, T$.StringToString())));
      if (uriPolicy == null) {
        uriPolicy = html$.UriPolicy.new();
      }
      this.add(new html$._CustomElementNodeValidator.new(uriPolicy, T$.JSArrayOfString().of([tagNameUpper]), attrs, uriAttrs, false, true));
    }
    allowTagExtension(tagName, baseName, opts) {
      let t241, t241$;
      if (tagName == null) dart.nullFailed(I[147], 39449, 33, "tagName");
      if (baseName == null) dart.nullFailed(I[147], 39449, 49, "baseName");
      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
      let baseNameUpper = baseName[$toUpperCase]();
      let tagNameUpper = tagName[$toUpperCase]();
      let attrs = (t241 = attributes, t241 == null ? null : t241[$map](core.String, dart.fn(name => {
        if (name == null) dart.nullFailed(I[147], 39456, 24, "name");
        return baseNameUpper + "::" + name[$toLowerCase]();
      }, T$.StringToString())));
      let uriAttrs = (t241$ = uriAttributes, t241$ == null ? null : t241$[$map](core.String, dart.fn(name => {
        if (name == null) dart.nullFailed(I[147], 39458, 24, "name");
        return baseNameUpper + "::" + name[$toLowerCase]();
      }, T$.StringToString())));
      if (uriPolicy == null) {
        uriPolicy = html$.UriPolicy.new();
      }
      this.add(new html$._CustomElementNodeValidator.new(uriPolicy, T$.JSArrayOfString().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
    }
    allowElement(tagName, opts) {
      if (tagName == null) dart.nullFailed(I[147], 39467, 28, "tagName");
      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
      this.allowCustomElement(tagName, {uriPolicy: uriPolicy, attributes: attributes, uriAttributes: uriAttributes});
    }
    allowTemplating() {
      this.add(new html$._TemplatingNodeValidator.new());
    }
    add(validator) {
      if (validator == null) dart.nullFailed(I[147], 39494, 26, "validator");
      this[S$3._validators][$add](validator);
    }
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 39498, 30, "element");
      return this[S$3._validators][$any](dart.fn(v => {
        if (v == null) dart.nullFailed(I[147], 39499, 29, "v");
        return v.allowsElement(element);
      }, T$0.NodeValidatorTobool()));
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 39502, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 39502, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 39502, 70, "value");
      return this[S$3._validators][$any](dart.fn(v => {
        if (v == null) dart.nullFailed(I[147], 39504, 15, "v");
        return v.allowsAttribute(element, attributeName, value);
      }, T$0.NodeValidatorTobool()));
    }
  };
  (html$.NodeValidatorBuilder.new = function() {
    this[S$3._validators] = T$0.JSArrayOfNodeValidator().of([]);
  }).prototype = html$.NodeValidatorBuilder.prototype;
  (html$.NodeValidatorBuilder.common = function() {
    this[S$3._validators] = T$0.JSArrayOfNodeValidator().of([]);
    this.allowHtml5();
    this.allowTemplating();
  }).prototype = html$.NodeValidatorBuilder.prototype;
  dart.addTypeTests(html$.NodeValidatorBuilder);
  dart.addTypeCaches(html$.NodeValidatorBuilder);
  html$.NodeValidatorBuilder[dart.implements] = () => [html$.NodeValidator];
  dart.setMethodSignature(html$.NodeValidatorBuilder, () => ({
    __proto__: dart.getMethods(html$.NodeValidatorBuilder.__proto__),
    allowNavigation: dart.fnType(dart.void, [], [dart.nullable(html$.UriPolicy)]),
    allowImages: dart.fnType(dart.void, [], [dart.nullable(html$.UriPolicy)]),
    allowTextElements: dart.fnType(dart.void, []),
    allowInlineStyles: dart.fnType(dart.void, [], {tagName: dart.nullable(core.String)}, {}),
    allowHtml5: dart.fnType(dart.void, [], {uriPolicy: dart.nullable(html$.UriPolicy)}, {}),
    allowSvg: dart.fnType(dart.void, []),
    allowCustomElement: dart.fnType(dart.void, [core.String], {attributes: dart.nullable(core.Iterable$(core.String)), uriAttributes: dart.nullable(core.Iterable$(core.String)), uriPolicy: dart.nullable(html$.UriPolicy)}, {}),
    allowTagExtension: dart.fnType(dart.void, [core.String, core.String], {attributes: dart.nullable(core.Iterable$(core.String)), uriAttributes: dart.nullable(core.Iterable$(core.String)), uriPolicy: dart.nullable(html$.UriPolicy)}, {}),
    allowElement: dart.fnType(dart.void, [core.String], {attributes: dart.nullable(core.Iterable$(core.String)), uriAttributes: dart.nullable(core.Iterable$(core.String)), uriPolicy: dart.nullable(html$.UriPolicy)}, {}),
    allowTemplating: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [html$.NodeValidator]),
    allowsElement: dart.fnType(core.bool, [html$.Element]),
    allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
  }));
  dart.setLibraryUri(html$.NodeValidatorBuilder, I[148]);
  dart.setFieldSignature(html$.NodeValidatorBuilder, () => ({
    __proto__: dart.getFields(html$.NodeValidatorBuilder.__proto__),
    [S$3._validators]: dart.finalFieldType(core.List$(html$.NodeValidator))
  }));
  html$._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
    static allowNavigation(uriPolicy) {
      if (uriPolicy == null) dart.nullFailed(I[147], 39514, 58, "uriPolicy");
      return new html$._SimpleNodeValidator.new(uriPolicy, {allowedElements: C[405] || CT.C405, allowedAttributes: C[406] || CT.C406, allowedUriAttributes: C[407] || CT.C407});
    }
    static allowImages(uriPolicy) {
      if (uriPolicy == null) dart.nullFailed(I[147], 39540, 54, "uriPolicy");
      return new html$._SimpleNodeValidator.new(uriPolicy, {allowedElements: C[408] || CT.C408, allowedAttributes: C[409] || CT.C409, allowedUriAttributes: C[410] || CT.C410});
    }
    static allowTextElements() {
      return new html$._SimpleNodeValidator.new(null, {allowedElements: C[411] || CT.C411});
    }
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 39602, 30, "element");
      return this.allowedElements.contains(html$.Element._safeTagName(element));
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 39606, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 39606, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 39606, 70, "value");
      let tagName = html$.Element._safeTagName(element);
      if (dart.test(this.allowedUriAttributes.contains(dart.str(tagName) + "::" + dart.str(attributeName)))) {
        return dart.nullCheck(this.uriPolicy).allowsUri(value);
      } else if (dart.test(this.allowedUriAttributes.contains("*::" + dart.str(attributeName)))) {
        return dart.nullCheck(this.uriPolicy).allowsUri(value);
      } else if (dart.test(this.allowedAttributes.contains(dart.str(tagName) + "::" + dart.str(attributeName)))) {
        return true;
      } else if (dart.test(this.allowedAttributes.contains("*::" + dart.str(attributeName)))) {
        return true;
      } else if (dart.test(this.allowedAttributes.contains(dart.str(tagName) + "::*"))) {
        return true;
      } else if (dart.test(this.allowedAttributes.contains("*::*"))) {
        return true;
      }
      return false;
    }
  };
  (html$._SimpleNodeValidator.new = function(uriPolicy, opts) {
    let t241, t241$, t241$0;
    let allowedElements = opts && 'allowedElements' in opts ? opts.allowedElements : null;
    let allowedAttributes = opts && 'allowedAttributes' in opts ? opts.allowedAttributes : null;
    let allowedUriAttributes = opts && 'allowedUriAttributes' in opts ? opts.allowedUriAttributes : null;
    this.allowedElements = new (T$0._IdentityHashSetOfString()).new();
    this.allowedAttributes = new (T$0._IdentityHashSetOfString()).new();
    this.allowedUriAttributes = new (T$0._IdentityHashSetOfString()).new();
    this.uriPolicy = uriPolicy;
    this.allowedElements.addAll((t241 = allowedElements, t241 == null ? C[404] || CT.C404 : t241));
    allowedAttributes = (t241$ = allowedAttributes, t241$ == null ? C[404] || CT.C404 : t241$);
    allowedUriAttributes = (t241$0 = allowedUriAttributes, t241$0 == null ? C[404] || CT.C404 : t241$0);
    let legalAttributes = allowedAttributes[$where](dart.fn(x => {
      if (x == null) dart.nullFailed(I[147], 39594, 17, "x");
      return !dart.test(html$._Html5NodeValidator._uriAttributes[$contains](x));
    }, T$.StringTobool()));
    let extraUriAttributes = allowedAttributes[$where](dart.fn(x => {
      if (x == null) dart.nullFailed(I[147], 39596, 17, "x");
      return html$._Html5NodeValidator._uriAttributes[$contains](x);
    }, T$.StringTobool()));
    this.allowedAttributes.addAll(legalAttributes);
    this.allowedUriAttributes.addAll(allowedUriAttributes);
    this.allowedUriAttributes.addAll(extraUriAttributes);
  }).prototype = html$._SimpleNodeValidator.prototype;
  dart.addTypeTests(html$._SimpleNodeValidator);
  dart.addTypeCaches(html$._SimpleNodeValidator);
  html$._SimpleNodeValidator[dart.implements] = () => [html$.NodeValidator];
  dart.setMethodSignature(html$._SimpleNodeValidator, () => ({
    __proto__: dart.getMethods(html$._SimpleNodeValidator.__proto__),
    allowsElement: dart.fnType(core.bool, [html$.Element]),
    allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
  }));
  dart.setLibraryUri(html$._SimpleNodeValidator, I[148]);
  dart.setFieldSignature(html$._SimpleNodeValidator, () => ({
    __proto__: dart.getFields(html$._SimpleNodeValidator.__proto__),
    allowedElements: dart.finalFieldType(core.Set$(core.String)),
    allowedAttributes: dart.finalFieldType(core.Set$(core.String)),
    allowedUriAttributes: dart.finalFieldType(core.Set$(core.String)),
    uriPolicy: dart.finalFieldType(dart.nullable(html$.UriPolicy))
  }));
  html$._CustomElementNodeValidator = class _CustomElementNodeValidator extends html$._SimpleNodeValidator {
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 39643, 30, "element");
      if (dart.test(this.allowTypeExtension)) {
        let isAttr = element[S.$attributes][$_get]("is");
        if (isAttr != null) {
          return dart.test(this.allowedElements.contains(isAttr[$toUpperCase]())) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
        }
      }
      return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 39655, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 39655, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 39655, 70, "value");
      if (dart.test(this.allowsElement(element))) {
        if (dart.test(this.allowTypeExtension) && attributeName === "is" && dart.test(this.allowedElements.contains(value[$toUpperCase]()))) {
          return true;
        }
        return super.allowsAttribute(element, attributeName, value);
      }
      return false;
    }
  };
  (html$._CustomElementNodeValidator.new = function(uriPolicy, allowedElements, allowedAttributes, allowedUriAttributes, allowTypeExtension, allowCustomTag) {
    if (uriPolicy == null) dart.nullFailed(I[147], 39630, 17, "uriPolicy");
    if (allowedElements == null) dart.nullFailed(I[147], 39631, 24, "allowedElements");
    if (allowTypeExtension == null) dart.nullFailed(I[147], 39634, 12, "allowTypeExtension");
    if (allowCustomTag == null) dart.nullFailed(I[147], 39635, 12, "allowCustomTag");
    this.allowTypeExtension = allowTypeExtension === true;
    this.allowCustomTag = allowCustomTag === true;
    html$._CustomElementNodeValidator.__proto__.new.call(this, uriPolicy, {allowedElements: allowedElements, allowedAttributes: allowedAttributes, allowedUriAttributes: allowedUriAttributes});
    ;
  }).prototype = html$._CustomElementNodeValidator.prototype;
  dart.addTypeTests(html$._CustomElementNodeValidator);
  dart.addTypeCaches(html$._CustomElementNodeValidator);
  dart.setLibraryUri(html$._CustomElementNodeValidator, I[148]);
  dart.setFieldSignature(html$._CustomElementNodeValidator, () => ({
    __proto__: dart.getFields(html$._CustomElementNodeValidator.__proto__),
    allowTypeExtension: dart.finalFieldType(core.bool),
    allowCustomTag: dart.finalFieldType(core.bool)
  }));
  html$._TemplatingNodeValidator = class _TemplatingNodeValidator extends html$._SimpleNodeValidator {
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 39686, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 39686, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 39686, 70, "value");
      if (dart.test(super.allowsAttribute(element, attributeName, value))) {
        return true;
      }
      if (attributeName === "template" && value === "") {
        return true;
      }
      if (element[S.$attributes][$_get]("template") === "") {
        return this[S$3._templateAttrs].contains(attributeName);
      }
      return false;
    }
  };
  (html$._TemplatingNodeValidator.new = function() {
    this[S$3._templateAttrs] = T$0.LinkedHashSetOfString().from(html$._TemplatingNodeValidator._TEMPLATE_ATTRS);
    html$._TemplatingNodeValidator.__proto__.new.call(this, null, {allowedElements: T$.JSArrayOfString().of(["TEMPLATE"]), allowedAttributes: html$._TemplatingNodeValidator._TEMPLATE_ATTRS[$map](core.String, dart.fn(attr => {
        if (attr == null) dart.nullFailed(I[147], 39684, 38, "attr");
        return "TEMPLATE::" + dart.str(attr);
      }, T$.StringToString()))});
  }).prototype = html$._TemplatingNodeValidator.prototype;
  dart.addTypeTests(html$._TemplatingNodeValidator);
  dart.addTypeCaches(html$._TemplatingNodeValidator);
  dart.setLibraryUri(html$._TemplatingNodeValidator, I[148]);
  dart.setFieldSignature(html$._TemplatingNodeValidator, () => ({
    __proto__: dart.getFields(html$._TemplatingNodeValidator.__proto__),
    [S$3._templateAttrs]: dart.finalFieldType(core.Set$(core.String))
  }));
  dart.defineLazy(html$._TemplatingNodeValidator, {
    /*html$._TemplatingNodeValidator._TEMPLATE_ATTRS*/get _TEMPLATE_ATTRS() {
      return C[412] || CT.C412;
    }
  }, false);
  html$._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 39703, 30, "element");
      if (svg$.ScriptElement.is(element)) {
        return false;
      }
      if (svg$.SvgElement.is(element) && html$.Element._safeTagName(element) === "foreignObject") {
        return false;
      }
      if (svg$.SvgElement.is(element)) {
        return true;
      }
      return false;
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 39721, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 39721, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 39721, 70, "value");
      if (attributeName === "is" || attributeName[$startsWith]("on")) {
        return false;
      }
      return this.allowsElement(element);
    }
  };
  (html$._SvgNodeValidator.new = function() {
    ;
  }).prototype = html$._SvgNodeValidator.prototype;
  dart.addTypeTests(html$._SvgNodeValidator);
  dart.addTypeCaches(html$._SvgNodeValidator);
  html$._SvgNodeValidator[dart.implements] = () => [html$.NodeValidator];
  dart.setMethodSignature(html$._SvgNodeValidator, () => ({
    __proto__: dart.getMethods(html$._SvgNodeValidator.__proto__),
    allowsElement: dart.fnType(core.bool, [html$.Element]),
    allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
  }));
  dart.setLibraryUri(html$._SvgNodeValidator, I[148]);
  html$.ReadyState = class ReadyState extends core.Object {};
  (html$.ReadyState.new = function() {
    ;
  }).prototype = html$.ReadyState.prototype;
  dart.addTypeTests(html$.ReadyState);
  dart.addTypeCaches(html$.ReadyState);
  dart.setLibraryUri(html$.ReadyState, I[148]);
  dart.defineLazy(html$.ReadyState, {
    /*html$.ReadyState.LOADING*/get LOADING() {
      return "loading";
    },
    /*html$.ReadyState.INTERACTIVE*/get INTERACTIVE() {
      return "interactive";
    },
    /*html$.ReadyState.COMPLETE*/get COMPLETE() {
      return "complete";
    }
  }, false);
  const _is__WrappedList_default = Symbol('_is__WrappedList_default');
  html$._WrappedList$ = dart.generic(E => {
    var _WrappedIteratorOfE = () => (_WrappedIteratorOfE = dart.constFn(html$._WrappedIterator$(E)))();
    var IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
    var EN = () => (EN = dart.constFn(dart.nullable(E)))();
    class _WrappedList extends collection.ListBase$(E) {
      get iterator() {
        return new (_WrappedIteratorOfE()).new(this[S$3._list$19][$iterator]);
      }
      get length() {
        return this[S$3._list$19][$length];
      }
      add(element) {
        E.as(element);
        if (element == null) dart.nullFailed(I[147], 39774, 14, "element");
        this[S$3._list$19][$add](element);
      }
      remove(element) {
        return this[S$3._list$19][$remove](element);
      }
      clear() {
        this[S$3._list$19][$clear]();
      }
      _get(index) {
        if (index == null) dart.nullFailed(I[147], 39786, 21, "index");
        return E.as(this[S$3._list$19][$_get](index));
      }
      _set(index, value$) {
        let value = value$;
        if (index == null) dart.nullFailed(I[147], 39788, 25, "index");
        E.as(value);
        if (value == null) dart.nullFailed(I[147], 39788, 34, "value");
        this[S$3._list$19][$_set](index, value);
        return value$;
      }
      set length(newLength) {
        if (newLength == null) dart.nullFailed(I[147], 39792, 18, "newLength");
        this[S$3._list$19][$length] = newLength;
      }
      sort(compare = null) {
        if (compare == null) {
          this[S$3._list$19][$sort]();
        } else {
          this[S$3._list$19][$sort](dart.fn((a, b) => {
            if (a == null) dart.nullFailed(I[147], 39800, 24, "a");
            if (b == null) dart.nullFailed(I[147], 39800, 32, "b");
            return compare(E.as(a), E.as(b));
          }, T$0.NodeAndNodeToint()));
        }
      }
      indexOf(element, start = 0) {
        if (start == null) dart.nullFailed(I[147], 39804, 37, "start");
        return this[S$3._list$19][$indexOf](html$.Node.as(element), start);
      }
      lastIndexOf(element, start = null) {
        return this[S$3._list$19][$lastIndexOf](html$.Node.as(element), start);
      }
      insert(index, element) {
        if (index == null) dart.nullFailed(I[147], 39810, 19, "index");
        E.as(element);
        if (element == null) dart.nullFailed(I[147], 39810, 28, "element");
        return this[S$3._list$19][$insert](index, element);
      }
      removeAt(index) {
        if (index == null) dart.nullFailed(I[147], 39812, 18, "index");
        return E.as(this[S$3._list$19][$removeAt](index));
      }
      setRange(start, end, iterable, skipCount = 0) {
        if (start == null) dart.nullFailed(I[147], 39814, 21, "start");
        if (end == null) dart.nullFailed(I[147], 39814, 32, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 39814, 49, "iterable");
        if (skipCount == null) dart.nullFailed(I[147], 39814, 64, "skipCount");
        this[S$3._list$19][$setRange](start, end, iterable, skipCount);
      }
      removeRange(start, end) {
        if (start == null) dart.nullFailed(I[147], 39818, 24, "start");
        if (end == null) dart.nullFailed(I[147], 39818, 35, "end");
        this[S$3._list$19][$removeRange](start, end);
      }
      replaceRange(start, end, iterable) {
        if (start == null) dart.nullFailed(I[147], 39822, 25, "start");
        if (end == null) dart.nullFailed(I[147], 39822, 36, "end");
        IterableOfE().as(iterable);
        if (iterable == null) dart.nullFailed(I[147], 39822, 53, "iterable");
        this[S$3._list$19][$replaceRange](start, end, iterable);
      }
      fillRange(start, end, fillValue = null) {
        if (start == null) dart.nullFailed(I[147], 39826, 22, "start");
        if (end == null) dart.nullFailed(I[147], 39826, 33, "end");
        EN().as(fillValue);
        this[S$3._list$19][$fillRange](start, end, fillValue);
      }
      get rawList() {
        return this[S$3._list$19];
      }
    }
    (_WrappedList.new = function(_list) {
      if (_list == null) dart.nullFailed(I[147], 39764, 21, "_list");
      this[S$3._list$19] = _list;
      ;
    }).prototype = _WrappedList.prototype;
    dart.addTypeTests(_WrappedList);
    _WrappedList.prototype[_is__WrappedList_default] = true;
    dart.addTypeCaches(_WrappedList);
    _WrappedList[dart.implements] = () => [html_common.NodeListWrapper];
    dart.setMethodSignature(_WrappedList, () => ({
      __proto__: dart.getMethods(_WrappedList.__proto__),
      _get: dart.fnType(E, [core.int]),
      [$_get]: dart.fnType(E, [core.int]),
      _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
      [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)])
    }));
    dart.setGetterSignature(_WrappedList, () => ({
      __proto__: dart.getGetters(_WrappedList.__proto__),
      length: core.int,
      [$length]: core.int,
      rawList: core.List$(html$.Node)
    }));
    dart.setSetterSignature(_WrappedList, () => ({
      __proto__: dart.getSetters(_WrappedList.__proto__),
      length: core.int,
      [$length]: core.int
    }));
    dart.setLibraryUri(_WrappedList, I[148]);
    dart.setFieldSignature(_WrappedList, () => ({
      __proto__: dart.getFields(_WrappedList.__proto__),
      [S$3._list$19]: dart.finalFieldType(core.List$(html$.Node))
    }));
    dart.defineExtensionMethods(_WrappedList, [
      'add',
      'remove',
      'clear',
      '_get',
      '_set',
      'sort',
      'indexOf',
      'lastIndexOf',
      'insert',
      'removeAt',
      'setRange',
      'removeRange',
      'replaceRange',
      'fillRange'
    ]);
    dart.defineExtensionAccessors(_WrappedList, ['iterator', 'length']);
    return _WrappedList;
  });
  html$._WrappedList = html$._WrappedList$();
  dart.addTypeTests(html$._WrappedList, _is__WrappedList_default);
  const _is__WrappedIterator_default = Symbol('_is__WrappedIterator_default');
  html$._WrappedIterator$ = dart.generic(E => {
    class _WrappedIterator extends core.Object {
      moveNext() {
        return this[S$3._iterator$3].moveNext();
      }
      get current() {
        return E.as(this[S$3._iterator$3].current);
      }
    }
    (_WrappedIterator.new = function(_iterator) {
      if (_iterator == null) dart.nullFailed(I[147], 39839, 25, "_iterator");
      this[S$3._iterator$3] = _iterator;
      ;
    }).prototype = _WrappedIterator.prototype;
    dart.addTypeTests(_WrappedIterator);
    _WrappedIterator.prototype[_is__WrappedIterator_default] = true;
    dart.addTypeCaches(_WrappedIterator);
    _WrappedIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setMethodSignature(_WrappedIterator, () => ({
      __proto__: dart.getMethods(_WrappedIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_WrappedIterator, () => ({
      __proto__: dart.getGetters(_WrappedIterator.__proto__),
      current: E
    }));
    dart.setLibraryUri(_WrappedIterator, I[148]);
    dart.setFieldSignature(_WrappedIterator, () => ({
      __proto__: dart.getFields(_WrappedIterator.__proto__),
      [S$3._iterator$3]: dart.fieldType(core.Iterator$(html$.Node))
    }));
    return _WrappedIterator;
  });
  html$._WrappedIterator = html$._WrappedIterator$();
  dart.addTypeTests(html$._WrappedIterator, _is__WrappedIterator_default);
  html$._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
    static get(url, onComplete, withCredentials) {
      if (url == null) dart.nullFailed(I[147], 39854, 14, "url");
      if (onComplete == null) dart.nullFailed(I[147], 39854, 19, "onComplete");
      if (withCredentials == null) dart.nullFailed(I[147], 39854, 57, "withCredentials");
      let request = html$.HttpRequest.new();
      request.open("GET", url, {async: true});
      request.withCredentials = withCredentials;
      request[S$1.$onReadyStateChange].listen(dart.fn(e => {
        if (e == null) dart.nullFailed(I[147], 39860, 40, "e");
        if (request.readyState === 4) {
          onComplete(request);
        }
      }, T$0.EventTovoid()));
      request.send();
      return request;
    }
  };
  (html$._HttpRequestUtils.new = function() {
    ;
  }).prototype = html$._HttpRequestUtils.prototype;
  dart.addTypeTests(html$._HttpRequestUtils);
  dart.addTypeCaches(html$._HttpRequestUtils);
  dart.setLibraryUri(html$._HttpRequestUtils, I[148]);
  const _is_FixedSizeListIterator_default = Symbol('_is_FixedSizeListIterator_default');
  html$.FixedSizeListIterator$ = dart.generic(T => {
    class FixedSizeListIterator extends core.Object {
      moveNext() {
        let nextPosition = dart.notNull(this[S$0._position$2]) + 1;
        if (nextPosition < dart.notNull(this[S$2._length$3])) {
          this[S$3._current$4] = this[S$3._array][$_get](nextPosition);
          this[S$0._position$2] = nextPosition;
          return true;
        }
        this[S$3._current$4] = null;
        this[S$0._position$2] = this[S$2._length$3];
        return false;
      }
      get current() {
        return T.as(this[S$3._current$4]);
      }
    }
    (FixedSizeListIterator.new = function(array) {
      if (array == null) dart.nullFailed(I[147], 39882, 33, "array");
      this[S$3._current$4] = null;
      this[S$3._array] = array;
      this[S$0._position$2] = -1;
      this[S$2._length$3] = array[$length];
      ;
    }).prototype = FixedSizeListIterator.prototype;
    dart.addTypeTests(FixedSizeListIterator);
    FixedSizeListIterator.prototype[_is_FixedSizeListIterator_default] = true;
    dart.addTypeCaches(FixedSizeListIterator);
    FixedSizeListIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(FixedSizeListIterator, () => ({
      __proto__: dart.getMethods(FixedSizeListIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(FixedSizeListIterator, () => ({
      __proto__: dart.getGetters(FixedSizeListIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(FixedSizeListIterator, I[148]);
    dart.setFieldSignature(FixedSizeListIterator, () => ({
      __proto__: dart.getFields(FixedSizeListIterator.__proto__),
      [S$3._array]: dart.finalFieldType(core.List$(T)),
      [S$2._length$3]: dart.finalFieldType(core.int),
      [S$0._position$2]: dart.fieldType(core.int),
      [S$3._current$4]: dart.fieldType(dart.nullable(T))
    }));
    return FixedSizeListIterator;
  });
  html$.FixedSizeListIterator = html$.FixedSizeListIterator$();
  dart.addTypeTests(html$.FixedSizeListIterator, _is_FixedSizeListIterator_default);
  const _is__VariableSizeListIterator_default = Symbol('_is__VariableSizeListIterator_default');
  html$._VariableSizeListIterator$ = dart.generic(T => {
    class _VariableSizeListIterator extends core.Object {
      moveNext() {
        let nextPosition = dart.notNull(this[S$0._position$2]) + 1;
        if (nextPosition < dart.notNull(this[S$3._array][$length])) {
          this[S$3._current$4] = this[S$3._array][$_get](nextPosition);
          this[S$0._position$2] = nextPosition;
          return true;
        }
        this[S$3._current$4] = null;
        this[S$0._position$2] = this[S$3._array][$length];
        return false;
      }
      get current() {
        return T.as(this[S$3._current$4]);
      }
    }
    (_VariableSizeListIterator.new = function(array) {
      if (array == null) dart.nullFailed(I[147], 39908, 37, "array");
      this[S$3._current$4] = null;
      this[S$3._array] = array;
      this[S$0._position$2] = -1;
      ;
    }).prototype = _VariableSizeListIterator.prototype;
    dart.addTypeTests(_VariableSizeListIterator);
    _VariableSizeListIterator.prototype[_is__VariableSizeListIterator_default] = true;
    dart.addTypeCaches(_VariableSizeListIterator);
    _VariableSizeListIterator[dart.implements] = () => [core.Iterator$(T)];
    dart.setMethodSignature(_VariableSizeListIterator, () => ({
      __proto__: dart.getMethods(_VariableSizeListIterator.__proto__),
      moveNext: dart.fnType(core.bool, [])
    }));
    dart.setGetterSignature(_VariableSizeListIterator, () => ({
      __proto__: dart.getGetters(_VariableSizeListIterator.__proto__),
      current: T
    }));
    dart.setLibraryUri(_VariableSizeListIterator, I[148]);
    dart.setFieldSignature(_VariableSizeListIterator, () => ({
      __proto__: dart.getFields(_VariableSizeListIterator.__proto__),
      [S$3._array]: dart.finalFieldType(core.List$(T)),
      [S$0._position$2]: dart.fieldType(core.int),
      [S$3._current$4]: dart.fieldType(dart.nullable(T))
    }));
    return _VariableSizeListIterator;
  });
  html$._VariableSizeListIterator = html$._VariableSizeListIterator$();
  dart.addTypeTests(html$._VariableSizeListIterator, _is__VariableSizeListIterator_default);
  html$.Console = class Console extends core.Object {
    get [S$3._isConsoleDefined]() {
      return typeof console != "undefined";
    }
    get memory() {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.memory : null;
    }
    assertCondition(condition = null, arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.assert(condition, arg) : null;
    }
    clear(arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.clear(arg) : null;
    }
    count(arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.count(arg) : null;
    }
    countReset(arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.countReset(arg) : null;
    }
    debug(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.debug(arg) : null;
    }
    dir(item = null, options = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.dir(item, options) : null;
    }
    dirxml(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.dirxml(arg) : null;
    }
    error(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.error(arg) : null;
    }
    group(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.group(arg) : null;
    }
    groupCollapsed(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.groupCollapsed(arg) : null;
    }
    groupEnd() {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.groupEnd() : null;
    }
    info(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.info(arg) : null;
    }
    log(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.log(arg) : null;
    }
    table(tabularData = null, properties = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.table(tabularData, properties) : null;
    }
    time(label = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.time(label) : null;
    }
    timeEnd(label = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.timeEnd(label) : null;
    }
    timeLog(label = null, arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.timeLog(label, arg) : null;
    }
    trace(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.trace(arg) : null;
    }
    warn(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.warn(arg) : null;
    }
    profile(title = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.profile(title) : null;
    }
    profileEnd(title = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.profileEnd(title) : null;
    }
    timeStamp(arg = null) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.timeStamp(arg) : null;
    }
    markTimeline(arg) {
      return dart.test(this[S$3._isConsoleDefined]) ? window.console.markTimeline(arg) : null;
    }
  };
  (html$.Console._safe = function() {
    ;
  }).prototype = html$.Console.prototype;
  dart.addTypeTests(html$.Console);
  dart.addTypeCaches(html$.Console);
  dart.setMethodSignature(html$.Console, () => ({
    __proto__: dart.getMethods(html$.Console.__proto__),
    assertCondition: dart.fnType(dart.void, [], [dart.nullable(core.bool), dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    count: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    countReset: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    debug: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    dir: dart.fnType(dart.void, [], [dart.nullable(core.Object), dart.nullable(core.Object)]),
    dirxml: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    error: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    group: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    groupCollapsed: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    groupEnd: dart.fnType(dart.void, []),
    info: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    log: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    table: dart.fnType(dart.void, [], [dart.nullable(core.Object), dart.nullable(core.List$(core.String))]),
    time: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    timeEnd: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    timeLog: dart.fnType(dart.void, [], [dart.nullable(core.String), dart.nullable(core.Object)]),
    trace: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    warn: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    profile: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    profileEnd: dart.fnType(dart.void, [], [dart.nullable(core.String)]),
    timeStamp: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    markTimeline: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(html$.Console, () => ({
    __proto__: dart.getGetters(html$.Console.__proto__),
    [S$3._isConsoleDefined]: core.bool,
    memory: dart.nullable(html$.MemoryInfo)
  }));
  dart.setLibraryUri(html$.Console, I[148]);
  dart.defineLazy(html$.Console, {
    /*html$.Console._safeConsole*/get _safeConsole() {
      return C[413] || CT.C413;
    }
  }, false);
  html$._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
    upgrade(element) {
      if (element == null) dart.nullFailed(I[147], 40274, 27, "element");
      if (!dart.equals(dart.runtimeType(element), this[S$3._nativeType])) {
        if (!dart.equals(this[S$3._nativeType], dart.wrapType(html$.HtmlElement)) || !dart.equals(dart.runtimeType(element), dart.wrapType(html$.UnknownElement))) {
          dart.throw(new core.ArgumentError.new("element is not subclass of " + dart.str(this[S$3._nativeType])));
        }
      }
      _js_helper.setNativeSubclassDispatchRecord(element, this[S$3._interceptor]);
      this[S$3._constructor](element);
      return element;
    }
  };
  (html$._JSElementUpgrader.new = function(document, type, extendsTag) {
    if (document == null) dart.nullFailed(I[147], 40239, 31, "document");
    if (type == null) dart.nullFailed(I[147], 40239, 46, "type");
    this[S$3._interceptor] = null;
    this[S$3._constructor] = null;
    this[S$3._nativeType] = null;
    let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
    if (interceptorClass == null) {
      dart.throw(new core.ArgumentError.new(type));
    }
    this[S$3._constructor] = _interceptors.findConstructorForNativeSubclassType(type, "created");
    if (this[S$3._constructor] == null) {
      dart.throw(new core.ArgumentError.new(dart.str(type) + " has no constructor called 'created'"));
    }
    _interceptors.getNativeInterceptor(html$.Element.tag("article"));
    let baseClassName = _js_helper.findDispatchTagForInterceptorClass(interceptorClass);
    if (baseClassName == null) {
      dart.throw(new core.ArgumentError.new(type));
    }
    if (extendsTag == null) {
      if (!dart.equals(baseClassName, "HTMLElement")) {
        dart.throw(new core.UnsupportedError.new("Class must provide extendsTag if base " + "native class is not HtmlElement"));
      }
      this[S$3._nativeType] = dart.wrapType(html$.HtmlElement);
    } else {
      let element = document[S.$createElement](extendsTag);
      html$._checkExtendsNativeClassOrTemplate(element, extendsTag, core.String.as(baseClassName));
      this[S$3._nativeType] = dart.runtimeType(element);
    }
    this[S$3._interceptor] = interceptorClass.prototype;
  }).prototype = html$._JSElementUpgrader.prototype;
  dart.addTypeTests(html$._JSElementUpgrader);
  dart.addTypeCaches(html$._JSElementUpgrader);
  html$._JSElementUpgrader[dart.implements] = () => [html$.ElementUpgrader];
  dart.setMethodSignature(html$._JSElementUpgrader, () => ({
    __proto__: dart.getMethods(html$._JSElementUpgrader.__proto__),
    upgrade: dart.fnType(html$.Element, [html$.Element])
  }));
  dart.setLibraryUri(html$._JSElementUpgrader, I[148]);
  dart.setFieldSignature(html$._JSElementUpgrader, () => ({
    __proto__: dart.getFields(html$._JSElementUpgrader.__proto__),
    [S$3._interceptor]: dart.fieldType(dart.dynamic),
    [S$3._constructor]: dart.fieldType(dart.dynamic),
    [S$3._nativeType]: dart.fieldType(dart.dynamic)
  }));
  html$._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
    get history() {
      return html$._HistoryCrossFrame._createSafe(this[S$3._window].history);
    }
    get location() {
      return html$._LocationCrossFrame._createSafe(this[S$3._window].location);
    }
    get closed() {
      return this[S$3._window].closed;
    }
    get opener() {
      return html$._DOMWindowCrossFrame._createSafe(this[S$3._window].opener);
    }
    get parent() {
      return html$._DOMWindowCrossFrame._createSafe(this[S$3._window].parent);
    }
    get top() {
      return html$._DOMWindowCrossFrame._createSafe(this[S$3._window].top);
    }
    close() {
      return this[S$3._window].close();
    }
    postMessage(message, targetOrigin, messagePorts = null) {
      if (targetOrigin == null) dart.nullFailed(I[147], 40319, 40, "targetOrigin");
      if (messagePorts == null) {
        this[S$3._window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin);
      } else {
        this[S$3._window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin, messagePorts);
      }
    }
    static _createSafe(w) {
      if (core.identical(w, html$.window)) {
        return html$.WindowBase.as(w);
      } else {
        _js_helper.registerGlobalObject(w);
        return new html$._DOMWindowCrossFrame.new(w);
      }
    }
    get on() {
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
    [S._addEventListener](type, listener, useCapture = null) {
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
    addEventListener(type, listener, useCapture = null) {
      if (type == null) dart.nullFailed(I[147], 40356, 32, "type");
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
    dispatchEvent(event) {
      if (event == null) dart.nullFailed(I[147], 40361, 28, "event");
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
    [S._removeEventListener](type, listener, useCapture = null) {
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
    removeEventListener(type, listener, useCapture = null) {
      if (type == null) dart.nullFailed(I[147], 40369, 35, "type");
      return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
    }
  };
  (html$._DOMWindowCrossFrame.new = function(_window) {
    this[S$3._window] = _window;
    ;
  }).prototype = html$._DOMWindowCrossFrame.prototype;
  dart.addTypeTests(html$._DOMWindowCrossFrame);
  dart.addTypeCaches(html$._DOMWindowCrossFrame);
  html$._DOMWindowCrossFrame[dart.implements] = () => [html$.WindowBase];
  dart.setMethodSignature(html$._DOMWindowCrossFrame, () => ({
    __proto__: dart.getMethods(html$._DOMWindowCrossFrame.__proto__),
    close: dart.fnType(dart.void, []),
    [S.$close]: dart.fnType(dart.void, []),
    postMessage: dart.fnType(dart.void, [dart.dynamic, core.String], [dart.nullable(core.List)]),
    [S$.$postMessage]: dart.fnType(dart.void, [dart.dynamic, core.String], [dart.nullable(core.List)]),
    [S._addEventListener]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    addEventListener: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    [S.$addEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    dispatchEvent: dart.fnType(core.bool, [html$.Event]),
    [S.$dispatchEvent]: dart.fnType(core.bool, [html$.Event]),
    [S._removeEventListener]: dart.fnType(dart.void, [dart.nullable(core.String), dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    removeEventListener: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)]),
    [S.$removeEventListener]: dart.fnType(dart.void, [core.String, dart.nullable(dart.fnType(dart.dynamic, [html$.Event]))], [dart.nullable(core.bool)])
  }));
  dart.setGetterSignature(html$._DOMWindowCrossFrame, () => ({
    __proto__: dart.getGetters(html$._DOMWindowCrossFrame.__proto__),
    history: html$.HistoryBase,
    [S$3.$history]: html$.HistoryBase,
    location: html$.LocationBase,
    [S$0.$location]: html$.LocationBase,
    closed: core.bool,
    [S$1.$closed]: core.bool,
    opener: html$.WindowBase,
    [S$3.$opener]: html$.WindowBase,
    parent: html$.WindowBase,
    [S.$parent]: html$.WindowBase,
    top: html$.WindowBase,
    [$top]: html$.WindowBase,
    on: html$.Events,
    [S.$on]: html$.Events
  }));
  dart.setLibraryUri(html$._DOMWindowCrossFrame, I[148]);
  dart.setFieldSignature(html$._DOMWindowCrossFrame, () => ({
    __proto__: dart.getFields(html$._DOMWindowCrossFrame.__proto__),
    [S$3._window]: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(html$._DOMWindowCrossFrame, [
    'close',
    'postMessage',
    'addEventListener',
    'dispatchEvent',
    'removeEventListener'
  ]);
  dart.defineExtensionAccessors(html$._DOMWindowCrossFrame, [
    'history',
    'location',
    'closed',
    'opener',
    'parent',
    'top',
    'on'
  ]);
  html$._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
    set href(val) {
      if (val == null) dart.nullFailed(I[147], 40381, 19, "val");
      return html$._LocationCrossFrame._setHref(this[S$3._location], val);
    }
    static _setHref(location, val) {
      location.href = val;
    }
    static _createSafe(location) {
      if (core.identical(location, html$.window[S$0.$location])) {
        return html$.LocationBase.as(location);
      } else {
        return new html$._LocationCrossFrame.new(location);
      }
    }
  };
  (html$._LocationCrossFrame.new = function(_location) {
    this[S$3._location] = _location;
    ;
  }).prototype = html$._LocationCrossFrame.prototype;
  dart.addTypeTests(html$._LocationCrossFrame);
  dart.addTypeCaches(html$._LocationCrossFrame);
  html$._LocationCrossFrame[dart.implements] = () => [html$.LocationBase];
  dart.setSetterSignature(html$._LocationCrossFrame, () => ({
    __proto__: dart.getSetters(html$._LocationCrossFrame.__proto__),
    href: core.String,
    [S$.$href]: core.String
  }));
  dart.setLibraryUri(html$._LocationCrossFrame, I[148]);
  dart.setFieldSignature(html$._LocationCrossFrame, () => ({
    __proto__: dart.getFields(html$._LocationCrossFrame.__proto__),
    [S$3._location]: dart.fieldType(dart.dynamic)
  }));
  dart.defineExtensionAccessors(html$._LocationCrossFrame, ['href']);
  html$._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
    back() {
      return this[S$3._history].back();
    }
    forward() {
      return this[S$3._history].forward();
    }
    go(distance) {
      if (distance == null) dart.nullFailed(I[147], 40409, 15, "distance");
      return this[S$3._history].go(distance);
    }
    static _createSafe(h) {
      if (core.identical(h, html$.window.history)) {
        return html$.HistoryBase.as(h);
      } else {
        return new html$._HistoryCrossFrame.new(h);
      }
    }
  };
  (html$._HistoryCrossFrame.new = function(_history) {
    this[S$3._history] = _history;
    ;
  }).prototype = html$._HistoryCrossFrame.prototype;
  dart.addTypeTests(html$._HistoryCrossFrame);
  dart.addTypeCaches(html$._HistoryCrossFrame);
  html$._HistoryCrossFrame[dart.implements] = () => [html$.HistoryBase];
  dart.setMethodSignature(html$._HistoryCrossFrame, () => ({
    __proto__: dart.getMethods(html$._HistoryCrossFrame.__proto__),
    back: dart.fnType(dart.void, []),
    [S$1.$back]: dart.fnType(dart.void, []),
    forward: dart.fnType(dart.void, []),
    [S$1.$forward]: dart.fnType(dart.void, []),
    go: dart.fnType(dart.void, [core.int]),
    [S$1.$go]: dart.fnType(dart.void, [core.int])
  }));
  dart.setLibraryUri(html$._HistoryCrossFrame, I[148]);
  dart.setFieldSignature(html$._HistoryCrossFrame, () => ({
    __proto__: dart.getFields(html$._HistoryCrossFrame.__proto__),
    [S$3._history]: dart.fieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(html$._HistoryCrossFrame, ['back', 'forward', 'go']);
  html$.Platform = class Platform extends core.Object {};
  (html$.Platform.new = function() {
    ;
  }).prototype = html$.Platform.prototype;
  dart.addTypeTests(html$.Platform);
  dart.addTypeCaches(html$.Platform);
  dart.setLibraryUri(html$.Platform, I[148]);
  dart.defineLazy(html$.Platform, {
    /*html$.Platform.supportsTypedData*/get supportsTypedData() {
      return !!window.ArrayBuffer;
    },
    /*html$.Platform.supportsSimd*/get supportsSimd() {
      return false;
    }
  }, false);
  html$.ElementUpgrader = class ElementUpgrader extends core.Object {};
  (html$.ElementUpgrader.new = function() {
    ;
  }).prototype = html$.ElementUpgrader.prototype;
  dart.addTypeTests(html$.ElementUpgrader);
  dart.addTypeCaches(html$.ElementUpgrader);
  dart.setLibraryUri(html$.ElementUpgrader, I[148]);
  html$.NodeValidator = class NodeValidator extends core.Object {
    static new(opts) {
      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
      return new html$._Html5NodeValidator.new({uriPolicy: uriPolicy});
    }
    static throws(base) {
      if (base == null) dart.nullFailed(I[147], 40861, 46, "base");
      return new html$._ThrowsNodeValidator.new(base);
    }
  };
  (html$.NodeValidator[dart.mixinNew] = function() {
  }).prototype = html$.NodeValidator.prototype;
  dart.addTypeTests(html$.NodeValidator);
  dart.addTypeCaches(html$.NodeValidator);
  dart.setLibraryUri(html$.NodeValidator, I[148]);
  html$.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
    static new(validator) {
      if (validator == null) dart.nullFailed(I[147], 40893, 43, "validator");
      return new html$._ValidatingTreeSanitizer.new(validator);
    }
  };
  (html$.NodeTreeSanitizer[dart.mixinNew] = function() {
  }).prototype = html$.NodeTreeSanitizer.prototype;
  dart.addTypeTests(html$.NodeTreeSanitizer);
  dart.addTypeCaches(html$.NodeTreeSanitizer);
  dart.setLibraryUri(html$.NodeTreeSanitizer, I[148]);
  dart.defineLazy(html$.NodeTreeSanitizer, {
    /*html$.NodeTreeSanitizer.trusted*/get trusted() {
      return C[414] || CT.C414;
    }
  }, false);
  html$._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
    sanitizeTree(node) {
      if (node == null) dart.nullFailed(I[147], 40921, 21, "node");
    }
  };
  (html$._TrustedHtmlTreeSanitizer.new = function() {
    ;
  }).prototype = html$._TrustedHtmlTreeSanitizer.prototype;
  dart.addTypeTests(html$._TrustedHtmlTreeSanitizer);
  dart.addTypeCaches(html$._TrustedHtmlTreeSanitizer);
  html$._TrustedHtmlTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
  dart.setMethodSignature(html$._TrustedHtmlTreeSanitizer, () => ({
    __proto__: dart.getMethods(html$._TrustedHtmlTreeSanitizer.__proto__),
    sanitizeTree: dart.fnType(dart.void, [html$.Node])
  }));
  dart.setLibraryUri(html$._TrustedHtmlTreeSanitizer, I[148]);
  html$.UriPolicy = class UriPolicy extends core.Object {
    static new() {
      return new html$._SameOriginUriPolicy.new();
    }
  };
  (html$.UriPolicy[dart.mixinNew] = function() {
  }).prototype = html$.UriPolicy.prototype;
  dart.addTypeTests(html$.UriPolicy);
  dart.addTypeCaches(html$.UriPolicy);
  dart.setLibraryUri(html$.UriPolicy, I[148]);
  html$._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
    allowsUri(uri) {
      if (uri == null) dart.nullFailed(I[147], 40957, 25, "uri");
      this[S$3._hiddenAnchor].href = uri;
      return this[S$3._hiddenAnchor].hostname == this[S$3._loc].hostname && this[S$3._hiddenAnchor].port == this[S$3._loc].port && this[S$3._hiddenAnchor].protocol == this[S$3._loc].protocol || this[S$3._hiddenAnchor].hostname === "" && this[S$3._hiddenAnchor].port === "" && (this[S$3._hiddenAnchor].protocol === ":" || this[S$3._hiddenAnchor].protocol === "");
    }
  };
  (html$._SameOriginUriPolicy.new = function() {
    this[S$3._hiddenAnchor] = html$.AnchorElement.new();
    this[S$3._loc] = html$.window[S$0.$location];
    ;
  }).prototype = html$._SameOriginUriPolicy.prototype;
  dart.addTypeTests(html$._SameOriginUriPolicy);
  dart.addTypeCaches(html$._SameOriginUriPolicy);
  html$._SameOriginUriPolicy[dart.implements] = () => [html$.UriPolicy];
  dart.setMethodSignature(html$._SameOriginUriPolicy, () => ({
    __proto__: dart.getMethods(html$._SameOriginUriPolicy.__proto__),
    allowsUri: dart.fnType(core.bool, [core.String])
  }));
  dart.setLibraryUri(html$._SameOriginUriPolicy, I[148]);
  dart.setFieldSignature(html$._SameOriginUriPolicy, () => ({
    __proto__: dart.getFields(html$._SameOriginUriPolicy.__proto__),
    [S$3._hiddenAnchor]: dart.finalFieldType(html$.AnchorElement),
    [S$3._loc]: dart.finalFieldType(html$.Location)
  }));
  html$._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
    allowsElement(element) {
      if (element == null) dart.nullFailed(I[147], 40974, 30, "element");
      if (!dart.test(this.validator.allowsElement(element))) {
        dart.throw(new core.ArgumentError.new(html$.Element._safeTagName(element)));
      }
      return true;
    }
    allowsAttribute(element, attributeName, value) {
      if (element == null) dart.nullFailed(I[147], 40981, 32, "element");
      if (attributeName == null) dart.nullFailed(I[147], 40981, 48, "attributeName");
      if (value == null) dart.nullFailed(I[147], 40981, 70, "value");
      if (!dart.test(this.validator.allowsAttribute(element, attributeName, value))) {
        dart.throw(new core.ArgumentError.new(dart.str(html$.Element._safeTagName(element)) + "[" + dart.str(attributeName) + "=\"" + dart.str(value) + "\"]"));
      }
      return true;
    }
  };
  (html$._ThrowsNodeValidator.new = function(validator) {
    if (validator == null) dart.nullFailed(I[147], 40972, 29, "validator");
    this.validator = validator;
  }).prototype = html$._ThrowsNodeValidator.prototype;
  dart.addTypeTests(html$._ThrowsNodeValidator);
  dart.addTypeCaches(html$._ThrowsNodeValidator);
  html$._ThrowsNodeValidator[dart.implements] = () => [html$.NodeValidator];
  dart.setMethodSignature(html$._ThrowsNodeValidator, () => ({
    __proto__: dart.getMethods(html$._ThrowsNodeValidator.__proto__),
    allowsElement: dart.fnType(core.bool, [html$.Element]),
    allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
  }));
  dart.setLibraryUri(html$._ThrowsNodeValidator, I[148]);
  dart.setFieldSignature(html$._ThrowsNodeValidator, () => ({
    __proto__: dart.getFields(html$._ThrowsNodeValidator.__proto__),
    validator: dart.finalFieldType(html$.NodeValidator)
  }));
  html$._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
    sanitizeTree(node) {
      if (node == null) dart.nullFailed(I[147], 41001, 26, "node");
      const walk = (node, parent) => {
        if (node == null) dart.nullFailed(I[147], 41002, 20, "node");
        this.sanitizeNode(node, parent);
        let child = node.lastChild;
        while (child != null) {
          let nextChild = null;
          try {
            nextChild = child[S$.$previousNode];
            if (nextChild != null && !dart.equals(nextChild[S.$nextNode], child)) {
              dart.throw(new core.StateError.new("Corrupt HTML"));
            }
          } catch (e$) {
            let e = dart.getThrown(e$);
            if (core.Object.is(e)) {
              this[S$3._removeNode](child, node);
              child = null;
              nextChild = node.lastChild;
            } else
              throw e$;
          }
          if (child != null) walk(child, node);
          child = nextChild;
        }
      };
      dart.fn(walk, T$0.NodeAndNodeNTovoid());
      let previousTreeModifications = null;
      do {
        previousTreeModifications = this.numTreeModifications;
        walk(node, null);
      } while (!dart.equals(previousTreeModifications, this.numTreeModifications));
    }
    [S$3._removeNode](node, parent) {
      if (node == null) dart.nullFailed(I[147], 41038, 25, "node");
      this.numTreeModifications = dart.notNull(this.numTreeModifications) + 1;
      if (parent == null || !dart.equals(parent, node.parentNode)) {
        node[$remove]();
      } else {
        parent[S$._removeChild](node);
      }
    }
    [S$3._sanitizeUntrustedElement](element, parent) {
      let corrupted = true;
      let attrs = null;
      let isAttr = null;
      try {
        attrs = dart.dload(element, 'attributes');
        isAttr = dart.dsend(attrs, '_get', ["is"]);
        let corruptedTest1 = html$.Element._hasCorruptedAttributes(html$.Element.as(element));
        corrupted = dart.test(corruptedTest1) ? true : html$.Element._hasCorruptedAttributesAdditionalCheck(html$.Element.as(element));
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      let elementText = "element unprintable";
      try {
        elementText = dart.toString(element);
      } catch (e$0) {
        let e = dart.getThrown(e$0);
        if (core.Object.is(e)) {
        } else
          throw e$0;
      }
      try {
        let elementTagName = html$.Element._safeTagName(element);
        this[S$3._sanitizeElement](html$.Element.as(element), parent, corrupted, elementText, elementTagName, core.Map.as(attrs), T$.StringN().as(isAttr));
      } catch (e$1) {
        let ex = dart.getThrown(e$1);
        if (core.ArgumentError.is(ex)) {
          dart.rethrow(e$1);
        } else if (core.Object.is(ex)) {
          let e = ex;
          this[S$3._removeNode](html$.Node.as(element), parent);
          html$.window[S$2.$console].warn("Removing corrupted element " + dart.str(elementText));
        } else
          throw e$1;
      }
    }
    [S$3._sanitizeElement](element, parent, corrupted, text, tag, attrs, isAttr) {
      if (element == null) dart.nullFailed(I[147], 41100, 33, "element");
      if (corrupted == null) dart.nullFailed(I[147], 41100, 61, "corrupted");
      if (text == null) dart.nullFailed(I[147], 41101, 14, "text");
      if (tag == null) dart.nullFailed(I[147], 41101, 27, "tag");
      if (attrs == null) dart.nullFailed(I[147], 41101, 36, "attrs");
      if (false !== corrupted) {
        this[S$3._removeNode](element, parent);
        html$.window[S$2.$console].warn("Removing element due to corrupted attributes on <" + dart.str(text) + ">");
        return;
      }
      if (!dart.test(this.validator.allowsElement(element))) {
        this[S$3._removeNode](element, parent);
        html$.window[S$2.$console].warn("Removing disallowed element <" + dart.str(tag) + "> from " + dart.str(parent));
        return;
      }
      if (isAttr != null) {
        if (!dart.test(this.validator.allowsAttribute(element, "is", isAttr))) {
          this[S$3._removeNode](element, parent);
          html$.window[S$2.$console].warn("Removing disallowed type extension " + "<" + dart.str(tag) + " is=\"" + dart.str(isAttr) + "\">");
          return;
        }
      }
      let keys = attrs[$keys][$toList]();
      for (let i = dart.notNull(attrs[$length]) - 1; i >= 0; i = i - 1) {
        let name = keys[$_get](i);
        if (!dart.test(this.validator.allowsAttribute(element, core.String.as(dart.dsend(name, 'toLowerCase', [])), core.String.as(attrs[$_get](name))))) {
          html$.window[S$2.$console].warn("Removing disallowed attribute " + "<" + dart.str(tag) + " " + dart.str(name) + "=\"" + dart.str(attrs[$_get](name)) + "\">");
          attrs[$remove](name);
        }
      }
      if (html$.TemplateElement.is(element)) {
        let template = element;
        this.sanitizeTree(dart.nullCheck(template.content));
      }
    }
    sanitizeNode(node, parent) {
      if (node == null) dart.nullFailed(I[147], 41143, 26, "node");
      switch (node.nodeType) {
        case 1:
        {
          this[S$3._sanitizeUntrustedElement](node, parent);
          break;
        }
        case 8:
        case 11:
        case 3:
        case 4:
        {
          break;
        }
        default:
        {
          this[S$3._removeNode](node, parent);
        }
      }
    }
  };
  (html$._ValidatingTreeSanitizer.new = function(validator) {
    if (validator == null) dart.nullFailed(I[147], 40999, 33, "validator");
    this.numTreeModifications = 0;
    this.validator = validator;
  }).prototype = html$._ValidatingTreeSanitizer.prototype;
  dart.addTypeTests(html$._ValidatingTreeSanitizer);
  dart.addTypeCaches(html$._ValidatingTreeSanitizer);
  html$._ValidatingTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
  dart.setMethodSignature(html$._ValidatingTreeSanitizer, () => ({
    __proto__: dart.getMethods(html$._ValidatingTreeSanitizer.__proto__),
    sanitizeTree: dart.fnType(dart.void, [html$.Node]),
    [S$3._removeNode]: dart.fnType(dart.void, [html$.Node, dart.nullable(html$.Node)]),
    [S$3._sanitizeUntrustedElement]: dart.fnType(dart.void, [dart.dynamic, dart.nullable(html$.Node)]),
    [S$3._sanitizeElement]: dart.fnType(dart.void, [html$.Element, dart.nullable(html$.Node), core.bool, core.String, core.String, core.Map, dart.nullable(core.String)]),
    sanitizeNode: dart.fnType(dart.void, [html$.Node, dart.nullable(html$.Node)])
  }));
  dart.setLibraryUri(html$._ValidatingTreeSanitizer, I[148]);
  dart.setFieldSignature(html$._ValidatingTreeSanitizer, () => ({
    __proto__: dart.getFields(html$._ValidatingTreeSanitizer.__proto__),
    validator: dart.fieldType(html$.NodeValidator),
    numTreeModifications: dart.fieldType(core.int)
  }));
  html$.promiseToFutureAsMap = function promiseToFutureAsMap(jsPromise) {
    return js_util.promiseToFuture(dart.dynamic, core.Object.as(jsPromise)).then(T$0.MapNOfString$dynamic(), C[415] || CT.C415);
  };
  html$._matchesWithAncestors = function _matchesWithAncestors(event, selector) {
    if (event == null) dart.nullFailed(I[147], 37189, 34, "event");
    if (selector == null) dart.nullFailed(I[147], 37189, 48, "selector");
    let target = event[S.$target];
    return html$.Element.is(target) ? target[S.$matchesWithAncestors](selector) : false;
  };
  html$._convertNativeToDart_Window = function _convertNativeToDart_Window(win) {
    if (win == null) return null;
    return html$._DOMWindowCrossFrame._createSafe(win);
  };
  html$._convertNativeToDart_EventTarget = function _convertNativeToDart_EventTarget(e) {
    if (e == null) {
      return null;
    }
    if ("postMessage" in e) {
      let window = html$._DOMWindowCrossFrame._createSafe(e);
      if (html$.EventTarget.is(window)) {
        return window;
      }
      return null;
    } else
      return T$0.EventTargetN().as(e);
  };
  html$._convertDartToNative_EventTarget = function _convertDartToNative_EventTarget(e) {
    if (html$._DOMWindowCrossFrame.is(e)) {
      return T$0.EventTargetN().as(e[S$3._window]);
    } else {
      return T$0.EventTargetN().as(e);
    }
  };
  html$._convertNativeToDart_XHR_Response = function _convertNativeToDart_XHR_Response(o) {
    if (html$.Document.is(o)) {
      return o;
    }
    return html_common.convertNativeToDart_SerializedScriptValue(o);
  };
  html$._callConstructor = function _callConstructor(constructor, interceptor) {
    return dart.fn(receiver => {
      _js_helper.setNativeSubclassDispatchRecord(receiver, interceptor);
      receiver.constructor = receiver.__proto__.constructor;
      return constructor(receiver);
    }, T$.dynamicToObjectN());
  };
  html$._callAttached = function _callAttached(receiver) {
    return dart.dsend(receiver, 'attached', []);
  };
  html$._callDetached = function _callDetached(receiver) {
    return dart.dsend(receiver, 'detached', []);
  };
  html$._callAttributeChanged = function _callAttributeChanged(receiver, name, oldValue, newValue) {
    return dart.dsend(receiver, 'attributeChanged', [name, oldValue, newValue]);
  };
  html$._makeCallbackMethod = function _makeCallbackMethod(callback) {
    return (function(invokeCallback) {
      return function() {
        return invokeCallback(this);
      };
    })(_js_helper.convertDartClosureToJS(dart.dynamic, callback, 1));
  };
  html$._makeCallbackMethod3 = function _makeCallbackMethod3(callback) {
    return (function(invokeCallback) {
      return function(arg1, arg2, arg3) {
        return invokeCallback(this, arg1, arg2, arg3);
      };
    })(_js_helper.convertDartClosureToJS(dart.dynamic, callback, 4));
  };
  html$._checkExtendsNativeClassOrTemplate = function _checkExtendsNativeClassOrTemplate(element, extendsTag, baseClassName) {
    if (element == null) dart.nullFailed(I[147], 40134, 13, "element");
    if (extendsTag == null) dart.nullFailed(I[147], 40134, 29, "extendsTag");
    if (baseClassName == null) dart.nullFailed(I[147], 40134, 48, "baseClassName");
    if (!(element instanceof window[baseClassName]) && !(extendsTag === "template" && element instanceof window.HTMLUnknownElement)) {
      dart.throw(new core.UnsupportedError.new("extendsTag does not match base native class"));
    }
  };
  html$._registerCustomElement = function _registerCustomElement(context, document, tag, options = null) {
    if (tag == null) dart.nullFailed(I[147], 40143, 59, "tag");
    let extendsTagName = "";
    let type = null;
    if (options != null) {
      extendsTagName = T$.StringN().as(options[$_get]("extends"));
      type = T$0.TypeN().as(options[$_get]("prototype"));
    }
    let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
    if (interceptorClass == null) {
      dart.throw(new core.ArgumentError.new(type));
    }
    let interceptor = interceptorClass.prototype;
    let constructor = _interceptors.findConstructorForNativeSubclassType(type, "created");
    if (constructor == null) {
      dart.throw(new core.ArgumentError.new(dart.str(type) + " has no constructor called 'created'"));
    }
    _interceptors.getNativeInterceptor(html$.Element.tag("article"));
    let baseClassName = core.String.as(_js_helper.findDispatchTagForInterceptorClass(interceptorClass));
    if (baseClassName == null) {
      dart.throw(new core.ArgumentError.new(type));
    }
    if (extendsTagName == null) {
      if (baseClassName !== "HTMLElement") {
        dart.throw(new core.UnsupportedError.new("Class must provide extendsTag if base " + "native class is not HtmlElement"));
      }
    } else {
      let element = dart.dsend(document, 'createElement', [extendsTagName]);
      html$._checkExtendsNativeClassOrTemplate(html$.Element.as(element), extendsTagName, baseClassName);
    }
    let baseConstructor = context[baseClassName];
    let properties = {};
    properties.createdCallback = {value: html$._makeCallbackMethod(html$._callConstructor(constructor, interceptor))};
    properties.attachedCallback = {value: html$._makeCallbackMethod(html$._callAttached)};
    properties.detachedCallback = {value: html$._makeCallbackMethod(html$._callDetached)};
    properties.attributeChangedCallback = {value: html$._makeCallbackMethod3(html$._callAttributeChanged)};
    let baseProto = baseConstructor.prototype;
    let proto = Object.create(baseProto, properties);
    _js_helper.setNativeSubclassDispatchRecord(proto, interceptor);
    let opts = {prototype: proto};
    if (extendsTagName != null) {
      opts.extends = extendsTagName;
    }
    return document.registerElement(tag, opts);
  };
  html$._initializeCustomElement = function _initializeCustomElement(e) {
    if (e == null) dart.nullFailed(I[147], 40229, 39, "e");
  };
  html$._wrapZone = function _wrapZone(T, callback) {
    if (dart.equals(async.Zone.current, async.Zone.root)) return callback;
    if (callback == null) return null;
    return async.Zone.current.bindUnaryCallbackGuarded(T, callback);
  };
  html$._wrapBinaryZone = function _wrapBinaryZone(T1, T2, callback) {
    if (dart.equals(async.Zone.current, async.Zone.root)) return callback;
    if (callback == null) return null;
    return async.Zone.current.bindBinaryCallbackGuarded(T1, T2, callback);
  };
  html$.querySelector = function querySelector(selectors) {
    if (selectors == null) dart.nullFailed(I[147], 40810, 31, "selectors");
    return html$.document.querySelector(selectors);
  };
  html$.querySelectorAll = function querySelectorAll(T, selectors) {
    if (selectors == null) dart.nullFailed(I[147], 40828, 59, "selectors");
    return html$.document[S.$querySelectorAll](T, selectors);
  };
  dart.copyProperties(html$, {
    get window() {
      return window;
    },
    get document() {
      return document;
    },
    get _workerSelf() {
      return self;
    }
  });
  dart.defineLazy(html$, {
    /*html$._HEIGHT*/get _HEIGHT() {
      return T$.JSArrayOfString().of(["top", "bottom"]);
    },
    /*html$._WIDTH*/get _WIDTH() {
      return T$.JSArrayOfString().of(["right", "left"]);
    },
    /*html$._CONTENT*/get _CONTENT() {
      return "content";
    },
    /*html$._PADDING*/get _PADDING() {
      return "padding";
    },
    /*html$._MARGIN*/get _MARGIN() {
      return "margin";
    }
  }, false);
  html_common._StructuredClone = class _StructuredClone extends core.Object {
    findSlot(value) {
      let length = this.values[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (core.identical(this.values[$_get](i), value)) return i;
      }
      this.values[$add](value);
      this.copies[$add](null);
      return length;
    }
    readSlot(i) {
      if (i == null) dart.nullFailed(I[151], 72, 16, "i");
      return this.copies[$_get](i);
    }
    writeSlot(i, x) {
      if (i == null) dart.nullFailed(I[151], 73, 17, "i");
      this.copies[$_set](i, x);
    }
    cleanupSlots() {
    }
    walk(e) {
      if (e == null) return e;
      if (typeof e == 'boolean') return e;
      if (typeof e == 'number') return e;
      if (typeof e == 'string') return e;
      if (core.DateTime.is(e)) {
        return html_common.convertDartToNative_DateTime(e);
      }
      if (core.RegExp.is(e)) {
        dart.throw(new core.UnimplementedError.new("structured clone of RegExp"));
      }
      if (html$.File.is(e)) return e;
      if (html$.Blob.is(e)) return e;
      if (html$.FileList.is(e)) return e;
      if (html$.ImageData.is(e)) return e;
      if (dart.test(this.cloneNotRequired(e))) return e;
      if (core.Map.is(e)) {
        let slot = this.findSlot(e);
        let copy = this.readSlot(slot);
        if (copy != null) return copy;
        copy = this.newJsMap();
        this.writeSlot(slot, copy);
        e[$forEach](dart.fn((key, value) => {
          this.putIntoMap(copy, key, this.walk(value));
        }, T$.dynamicAnddynamicTovoid()));
        return copy;
      }
      if (core.List.is(e)) {
        let slot = this.findSlot(e);
        let copy = this.readSlot(slot);
        if (copy != null) return copy;
        copy = this.copyList(e, slot);
        return copy;
      }
      if (_interceptors.JSObject.is(e)) {
        let slot = this.findSlot(e);
        let copy = this.readSlot(slot);
        if (copy != null) return copy;
        copy = this.newJsObject();
        this.writeSlot(slot, copy);
        this.forEachObjectKey(e, dart.fn((key, value) => {
          this.putIntoObject(copy, key, this.walk(value));
        }, T$.dynamicAnddynamicToNull()));
        return copy;
      }
      dart.throw(new core.UnimplementedError.new("structured clone of other type"));
    }
    copyList(e, slot) {
      if (e == null) dart.nullFailed(I[151], 156, 22, "e");
      if (slot == null) dart.nullFailed(I[151], 156, 29, "slot");
      let i = 0;
      let length = e[$length];
      let copy = this.newJsList(length);
      this.writeSlot(slot, copy);
      for (; i < dart.notNull(length); i = i + 1) {
        copy[$_set](i, this.walk(e[$_get](i)));
      }
      return copy;
    }
    convertDartToNative_PrepareForStructuredClone(value) {
      let copy = this.walk(value);
      this.cleanupSlots();
      return copy;
    }
  };
  (html_common._StructuredClone.new = function() {
    this.values = [];
    this.copies = [];
    ;
  }).prototype = html_common._StructuredClone.prototype;
  dart.addTypeTests(html_common._StructuredClone);
  dart.addTypeCaches(html_common._StructuredClone);
  dart.setMethodSignature(html_common._StructuredClone, () => ({
    __proto__: dart.getMethods(html_common._StructuredClone.__proto__),
    findSlot: dart.fnType(core.int, [dart.dynamic]),
    readSlot: dart.fnType(dart.dynamic, [core.int]),
    writeSlot: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
    cleanupSlots: dart.fnType(dart.dynamic, []),
    walk: dart.fnType(dart.dynamic, [dart.dynamic]),
    copyList: dart.fnType(core.List, [core.List, core.int]),
    convertDartToNative_PrepareForStructuredClone: dart.fnType(dart.dynamic, [dart.dynamic])
  }));
  dart.setLibraryUri(html_common._StructuredClone, I[150]);
  dart.setFieldSignature(html_common._StructuredClone, () => ({
    __proto__: dart.getFields(html_common._StructuredClone.__proto__),
    values: dart.fieldType(core.List),
    copies: dart.fieldType(core.List)
  }));
  html_common._AcceptStructuredClone = class _AcceptStructuredClone extends core.Object {
    findSlot(value) {
      let length = this.values[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (dart.test(this.identicalInJs(this.values[$_get](i), value))) return i;
      }
      this.values[$add](value);
      this.copies[$add](null);
      return length;
    }
    readSlot(i) {
      if (i == null) dart.nullFailed(I[151], 211, 16, "i");
      return this.copies[$_get](i);
    }
    writeSlot(i, x) {
      if (i == null) dart.nullFailed(I[151], 212, 17, "i");
      this.copies[$_set](i, x);
    }
    walk(e) {
      if (e == null) return e;
      if (typeof e == 'boolean') return e;
      if (typeof e == 'number') return e;
      if (typeof e == 'string') return e;
      if (dart.test(html_common.isJavaScriptDate(e))) {
        return html_common.convertNativeToDart_DateTime(e);
      }
      if (dart.test(html_common.isJavaScriptRegExp(e))) {
        dart.throw(new core.UnimplementedError.new("structured clone of RegExp"));
      }
      if (dart.test(html_common.isJavaScriptPromise(e))) {
        return js_util.promiseToFuture(dart.dynamic, core.Object.as(e));
      }
      if (dart.test(html_common.isJavaScriptSimpleObject(e))) {
        let slot = this.findSlot(e);
        let copy = this.readSlot(slot);
        if (copy != null) return copy;
        copy = new _js_helper.LinkedMap.new();
        this.writeSlot(slot, copy);
        this.forEachJsField(e, dart.fn((key, value) => {
          let t248, t247, t246;
          t246 = copy;
          t247 = key;
          t248 = this.walk(value);
          dart.dsend(t246, '_set', [t247, t248]);
          return t248;
        }, T$0.dynamicAnddynamicTodynamic()));
        return copy;
      }
      if (dart.test(html_common.isJavaScriptArray(e))) {
        let l = e;
        let slot = this.findSlot(l);
        let copy = this.readSlot(slot);
        if (copy != null) return copy;
        let length = l[$length];
        copy = dart.test(this.mustCopy) ? this.newDartList(length) : l;
        this.writeSlot(slot, copy);
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          copy[$_set](i, this.walk(l[$_get](i)));
        }
        return copy;
      }
      return e;
    }
    convertNativeToDart_AcceptStructuredClone(object, opts) {
      let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
      this.mustCopy = core.bool.as(mustCopy);
      let copy = this.walk(object);
      return copy;
    }
  };
  (html_common._AcceptStructuredClone.new = function() {
    this.values = [];
    this.copies = [];
    this.mustCopy = false;
    ;
  }).prototype = html_common._AcceptStructuredClone.prototype;
  dart.addTypeTests(html_common._AcceptStructuredClone);
  dart.addTypeCaches(html_common._AcceptStructuredClone);
  dart.setMethodSignature(html_common._AcceptStructuredClone, () => ({
    __proto__: dart.getMethods(html_common._AcceptStructuredClone.__proto__),
    findSlot: dart.fnType(core.int, [dart.dynamic]),
    readSlot: dart.fnType(dart.dynamic, [core.int]),
    writeSlot: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
    walk: dart.fnType(dart.dynamic, [dart.dynamic]),
    convertNativeToDart_AcceptStructuredClone: dart.fnType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic}, {})
  }));
  dart.setLibraryUri(html_common._AcceptStructuredClone, I[150]);
  dart.setFieldSignature(html_common._AcceptStructuredClone, () => ({
    __proto__: dart.getFields(html_common._AcceptStructuredClone.__proto__),
    values: dart.fieldType(core.List),
    copies: dart.fieldType(core.List),
    mustCopy: dart.fieldType(core.bool)
  }));
  html_common.ContextAttributes = class ContextAttributes extends core.Object {
    get alpha() {
      return this[S$3.alpha];
    }
    set alpha(value) {
      this[S$3.alpha] = value;
    }
    get antialias() {
      return this[S$3.antialias];
    }
    set antialias(value) {
      this[S$3.antialias] = value;
    }
    get depth() {
      return this[S$3.depth];
    }
    set depth(value) {
      this[S$3.depth] = value;
    }
    get premultipliedAlpha() {
      return this[S$3.premultipliedAlpha];
    }
    set premultipliedAlpha(value) {
      this[S$3.premultipliedAlpha] = value;
    }
    get preserveDrawingBuffer() {
      return this[S$3.preserveDrawingBuffer];
    }
    set preserveDrawingBuffer(value) {
      this[S$3.preserveDrawingBuffer] = value;
    }
    get stencil() {
      return this[S$3.stencil];
    }
    set stencil(value) {
      this[S$3.stencil] = value;
    }
    get failIfMajorPerformanceCaveat() {
      return this[S$3.failIfMajorPerformanceCaveat];
    }
    set failIfMajorPerformanceCaveat(value) {
      this[S$3.failIfMajorPerformanceCaveat] = value;
    }
  };
  (html_common.ContextAttributes.new = function(alpha, antialias, depth, failIfMajorPerformanceCaveat, premultipliedAlpha, preserveDrawingBuffer, stencil) {
    if (alpha == null) dart.nullFailed(I[151], 298, 12, "alpha");
    if (antialias == null) dart.nullFailed(I[151], 299, 12, "antialias");
    if (depth == null) dart.nullFailed(I[151], 300, 12, "depth");
    if (failIfMajorPerformanceCaveat == null) dart.nullFailed(I[151], 301, 12, "failIfMajorPerformanceCaveat");
    if (premultipliedAlpha == null) dart.nullFailed(I[151], 302, 12, "premultipliedAlpha");
    if (preserveDrawingBuffer == null) dart.nullFailed(I[151], 303, 12, "preserveDrawingBuffer");
    if (stencil == null) dart.nullFailed(I[151], 304, 12, "stencil");
    this[S$3.alpha] = alpha;
    this[S$3.antialias] = antialias;
    this[S$3.depth] = depth;
    this[S$3.failIfMajorPerformanceCaveat] = failIfMajorPerformanceCaveat;
    this[S$3.premultipliedAlpha] = premultipliedAlpha;
    this[S$3.preserveDrawingBuffer] = preserveDrawingBuffer;
    this[S$3.stencil] = stencil;
    ;
  }).prototype = html_common.ContextAttributes.prototype;
  dart.addTypeTests(html_common.ContextAttributes);
  dart.addTypeCaches(html_common.ContextAttributes);
  dart.setLibraryUri(html_common.ContextAttributes, I[150]);
  dart.setFieldSignature(html_common.ContextAttributes, () => ({
    __proto__: dart.getFields(html_common.ContextAttributes.__proto__),
    alpha: dart.fieldType(core.bool),
    antialias: dart.fieldType(core.bool),
    depth: dart.fieldType(core.bool),
    premultipliedAlpha: dart.fieldType(core.bool),
    preserveDrawingBuffer: dart.fieldType(core.bool),
    stencil: dart.fieldType(core.bool),
    failIfMajorPerformanceCaveat: dart.fieldType(core.bool)
  }));
  html_common._TypedImageData = class _TypedImageData extends core.Object {
    get data() {
      return this[S$3.data$1];
    }
    set data(value) {
      super.data = value;
    }
    get height() {
      return this[S$3.height$1];
    }
    set height(value) {
      super.height = value;
    }
    get width() {
      return this[S$3.width$1];
    }
    set width(value) {
      super.width = value;
    }
  };
  (html_common._TypedImageData.new = function(data, height, width) {
    if (data == null) dart.nullFailed(I[151], 330, 24, "data");
    if (height == null) dart.nullFailed(I[151], 330, 35, "height");
    if (width == null) dart.nullFailed(I[151], 330, 48, "width");
    this[S$3.data$1] = data;
    this[S$3.height$1] = height;
    this[S$3.width$1] = width;
    ;
  }).prototype = html_common._TypedImageData.prototype;
  dart.addTypeTests(html_common._TypedImageData);
  dart.addTypeCaches(html_common._TypedImageData);
  html_common._TypedImageData[dart.implements] = () => [html$.ImageData];
  dart.setLibraryUri(html_common._TypedImageData, I[150]);
  dart.setFieldSignature(html_common._TypedImageData, () => ({
    __proto__: dart.getFields(html_common._TypedImageData.__proto__),
    data: dart.finalFieldType(typed_data.Uint8ClampedList),
    height: dart.finalFieldType(core.int),
    width: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionAccessors(html_common._TypedImageData, ['data', 'height', 'width']);
  html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
    newJsObject() {
      return {};
    }
    forEachObjectKey(object, action) {
      if (action == null) dart.nullFailed(I[152], 81, 33, "action");
      for (let key of Object.keys(object)) {
        action(key, object[key]);
      }
    }
    putIntoObject(object, key, value) {
      return object[key] = value;
    }
    newJsMap() {
      return {};
    }
    putIntoMap(map, key, value) {
      return map[key] = value;
    }
    newJsList(length) {
      return new Array(length);
    }
    cloneNotRequired(e) {
      return _native_typed_data.NativeByteBuffer.is(e) || _native_typed_data.NativeTypedData.is(e) || html$.MessagePort.is(e);
    }
  };
  (html_common._StructuredCloneDart2Js.new = function() {
    html_common._StructuredCloneDart2Js.__proto__.new.call(this);
    ;
  }).prototype = html_common._StructuredCloneDart2Js.prototype;
  dart.addTypeTests(html_common._StructuredCloneDart2Js);
  dart.addTypeCaches(html_common._StructuredCloneDart2Js);
  dart.setMethodSignature(html_common._StructuredCloneDart2Js, () => ({
    __proto__: dart.getMethods(html_common._StructuredCloneDart2Js.__proto__),
    newJsObject: dart.fnType(_interceptors.JSObject, []),
    forEachObjectKey: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])]),
    putIntoObject: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    newJsMap: dart.fnType(dart.dynamic, []),
    putIntoMap: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
    newJsList: dart.fnType(core.List, [dart.dynamic]),
    cloneNotRequired: dart.fnType(core.bool, [dart.dynamic])
  }));
  dart.setLibraryUri(html_common._StructuredCloneDart2Js, I[150]);
  html_common._AcceptStructuredCloneDart2Js = class _AcceptStructuredCloneDart2Js extends html_common._AcceptStructuredClone {
    newJsList(length) {
      return new Array(length);
    }
    newDartList(length) {
      return this.newJsList(length);
    }
    identicalInJs(a, b) {
      return core.identical(a, b);
    }
    forEachJsField(object, action) {
      if (action == null) dart.nullFailed(I[152], 103, 31, "action");
      for (let key of Object.keys(object)) {
        action(key, object[key]);
      }
    }
  };
  (html_common._AcceptStructuredCloneDart2Js.new = function() {
    html_common._AcceptStructuredCloneDart2Js.__proto__.new.call(this);
    ;
  }).prototype = html_common._AcceptStructuredCloneDart2Js.prototype;
  dart.addTypeTests(html_common._AcceptStructuredCloneDart2Js);
  dart.addTypeCaches(html_common._AcceptStructuredCloneDart2Js);
  dart.setMethodSignature(html_common._AcceptStructuredCloneDart2Js, () => ({
    __proto__: dart.getMethods(html_common._AcceptStructuredCloneDart2Js.__proto__),
    newJsList: dart.fnType(core.List, [dart.dynamic]),
    newDartList: dart.fnType(core.List, [dart.dynamic]),
    identicalInJs: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
    forEachJsField: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])])
  }));
  dart.setLibraryUri(html_common._AcceptStructuredCloneDart2Js, I[150]);
  html_common.Device = class Device extends core.Object {
    static get userAgent() {
      return html$.window.navigator.userAgent;
    }
    static isEventTypeSupported(eventType) {
      if (eventType == null) dart.nullFailed(I[153], 52, 43, "eventType");
      try {
        let e = html$.Event.eventType(eventType, "");
        return html$.Event.is(e);
      } catch (e$) {
        let _ = dart.getThrown(e$);
        if (core.Object.is(_)) {
        } else
          throw e$;
      }
      return false;
    }
  };
  (html_common.Device.new = function() {
    ;
  }).prototype = html_common.Device.prototype;
  dart.addTypeTests(html_common.Device);
  dart.addTypeCaches(html_common.Device);
  dart.setLibraryUri(html_common.Device, I[150]);
  dart.defineLazy(html_common.Device, {
    /*html_common.Device.isOpera*/get isOpera() {
      return html_common.Device.userAgent[$contains]("Opera", 0);
    },
    /*html_common.Device.isIE*/get isIE() {
      return !dart.test(html_common.Device.isOpera) && html_common.Device.userAgent[$contains]("Trident/", 0);
    },
    /*html_common.Device.isFirefox*/get isFirefox() {
      return html_common.Device.userAgent[$contains]("Firefox", 0);
    },
    /*html_common.Device.isWebKit*/get isWebKit() {
      return !dart.test(html_common.Device.isOpera) && html_common.Device.userAgent[$contains]("WebKit", 0);
    },
    /*html_common.Device.cssPrefix*/get cssPrefix() {
      return "-" + dart.str(html_common.Device.propertyPrefix) + "-";
    },
    /*html_common.Device.propertyPrefix*/get propertyPrefix() {
      return dart.test(html_common.Device.isFirefox) ? "moz" : dart.test(html_common.Device.isIE) ? "ms" : dart.test(html_common.Device.isOpera) ? "o" : "webkit";
    }
  }, false);
  html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html$.Element) {
    get [S$3._iterable$2]() {
      return this[S$3._childNodes][$where](dart.fn(n => {
        if (n == null) dart.nullFailed(I[154], 30, 26, "n");
        return html$.Element.is(n);
      }, T$0.NodeTobool()))[$map](html$.Element, dart.fn(n => {
        if (n == null) dart.nullFailed(I[154], 30, 60, "n");
        return html$.Element.as(n);
      }, T$0.NodeToElement()));
    }
    get [S$3._filtered]() {
      return T$0.ListOfElement().from(this[S$3._iterable$2], {growable: false});
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[154], 34, 21, "f");
      this[S$3._filtered][$forEach](f);
    }
    _set(index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[154], 40, 25, "index");
      html$.Element.as(value);
      if (value == null) dart.nullFailed(I[154], 40, 40, "value");
      this._get(index)[S$.$replaceWith](value);
      return value$;
    }
    set length(newLength) {
      if (newLength == null) dart.nullFailed(I[154], 44, 18, "newLength");
      let len = this.length;
      if (dart.notNull(newLength) >= dart.notNull(len)) {
        return;
      } else if (dart.notNull(newLength) < 0) {
        dart.throw(new core.ArgumentError.new("Invalid list length"));
      }
      this.removeRange(newLength, len);
    }
    add(value) {
      html$.Element.as(value);
      if (value == null) dart.nullFailed(I[154], 55, 20, "value");
      this[S$3._childNodes][$add](value);
    }
    addAll(iterable) {
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[154], 59, 33, "iterable");
      for (let element of iterable) {
        this.add(element);
      }
    }
    contains(needle) {
      if (!html$.Element.is(needle)) return false;
      let element = needle;
      return dart.equals(element.parentNode, this[S$3._node]);
    }
    get reversed() {
      return this[S$3._filtered][$reversed];
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot sort filtered list"));
    }
    setRange(start, end, iterable, skipCount = 0) {
      if (start == null) dart.nullFailed(I[154], 77, 21, "start");
      if (end == null) dart.nullFailed(I[154], 77, 32, "end");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[154], 77, 55, "iterable");
      if (skipCount == null) dart.nullFailed(I[154], 78, 12, "skipCount");
      dart.throw(new core.UnsupportedError.new("Cannot setRange on filtered list"));
    }
    fillRange(start, end, fillValue = null) {
      if (start == null) dart.nullFailed(I[154], 82, 22, "start");
      if (end == null) dart.nullFailed(I[154], 82, 33, "end");
      T$0.ElementN().as(fillValue);
      dart.throw(new core.UnsupportedError.new("Cannot fillRange on filtered list"));
    }
    replaceRange(start, end, iterable) {
      if (start == null) dart.nullFailed(I[154], 86, 25, "start");
      if (end == null) dart.nullFailed(I[154], 86, 36, "end");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[154], 86, 59, "iterable");
      dart.throw(new core.UnsupportedError.new("Cannot replaceRange on filtered list"));
    }
    removeRange(start, end) {
      if (start == null) dart.nullFailed(I[154], 90, 24, "start");
      if (end == null) dart.nullFailed(I[154], 90, 35, "end");
      core.List.from(this[S$3._iterable$2][$skip](start)[$take](dart.notNull(end) - dart.notNull(start)))[$forEach](dart.fn(el => dart.dsend(el, 'remove', []), T$.dynamicTovoid()));
    }
    clear() {
      this[S$3._childNodes][$clear]();
    }
    removeLast() {
      let result = this[S$3._iterable$2][$last];
      if (result != null) {
        result[$remove]();
      }
      return result;
    }
    insert(index, value) {
      if (index == null) dart.nullFailed(I[154], 109, 19, "index");
      html$.Element.as(value);
      if (value == null) dart.nullFailed(I[154], 109, 34, "value");
      if (index == this.length) {
        this.add(value);
      } else {
        let element = this[S$3._iterable$2][$elementAt](index);
        dart.nullCheck(element.parentNode).insertBefore(value, element);
      }
    }
    insertAll(index, iterable) {
      if (index == null) dart.nullFailed(I[154], 118, 22, "index");
      T$0.IterableOfElement().as(iterable);
      if (iterable == null) dart.nullFailed(I[154], 118, 47, "iterable");
      if (index == this.length) {
        this.addAll(iterable);
      } else {
        let element = this[S$3._iterable$2][$elementAt](index);
        dart.nullCheck(element.parentNode)[S$.$insertAllBefore](iterable, element);
      }
    }
    removeAt(index) {
      if (index == null) dart.nullFailed(I[154], 127, 24, "index");
      let result = this._get(index);
      result[$remove]();
      return result;
    }
    remove(element) {
      if (!html$.Element.is(element)) return false;
      if (dart.test(this.contains(element))) {
        element[$remove]();
        return true;
      } else {
        return false;
      }
    }
    get length() {
      return this[S$3._iterable$2][$length];
    }
    _get(index) {
      if (index == null) dart.nullFailed(I[154], 144, 27, "index");
      return this[S$3._iterable$2][$elementAt](index);
    }
    get iterator() {
      return this[S$3._filtered][$iterator];
    }
    get rawList() {
      return this[S$3._node].childNodes;
    }
  };
  (html_common.FilteredElementList.new = function(node) {
    if (node == null) dart.nullFailed(I[154], 23, 28, "node");
    this[S$3._childNodes] = node[S.$nodes];
    this[S$3._node] = node;
    ;
  }).prototype = html_common.FilteredElementList.prototype;
  dart.addTypeTests(html_common.FilteredElementList);
  dart.addTypeCaches(html_common.FilteredElementList);
  html_common.FilteredElementList[dart.implements] = () => [html_common.NodeListWrapper];
  dart.setMethodSignature(html_common.FilteredElementList, () => ({
    __proto__: dart.getMethods(html_common.FilteredElementList.__proto__),
    _set: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    _get: dart.fnType(html$.Element, [core.int]),
    [$_get]: dart.fnType(html$.Element, [core.int])
  }));
  dart.setGetterSignature(html_common.FilteredElementList, () => ({
    __proto__: dart.getGetters(html_common.FilteredElementList.__proto__),
    [S$3._iterable$2]: core.Iterable$(html$.Element),
    [S$3._filtered]: core.List$(html$.Element),
    length: core.int,
    [$length]: core.int,
    rawList: core.List$(html$.Node)
  }));
  dart.setSetterSignature(html_common.FilteredElementList, () => ({
    __proto__: dart.getSetters(html_common.FilteredElementList.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(html_common.FilteredElementList, I[150]);
  dart.setFieldSignature(html_common.FilteredElementList, () => ({
    __proto__: dart.getFields(html_common.FilteredElementList.__proto__),
    [S$3._node]: dart.finalFieldType(html$.Node),
    [S$3._childNodes]: dart.finalFieldType(core.List$(html$.Node))
  }));
  dart.defineExtensionMethods(html_common.FilteredElementList, [
    'forEach',
    '_set',
    'add',
    'addAll',
    'contains',
    'sort',
    'setRange',
    'fillRange',
    'replaceRange',
    'removeRange',
    'clear',
    'removeLast',
    'insert',
    'insertAll',
    'removeAt',
    'remove',
    '_get'
  ]);
  dart.defineExtensionAccessors(html_common.FilteredElementList, ['length', 'reversed', 'iterator']);
  html_common.Lists = class Lists extends core.Object {
    static indexOf(a, element, startIndex, endIndex) {
      if (a == null) dart.nullFailed(I[155], 13, 27, "a");
      if (element == null) dart.nullFailed(I[155], 13, 37, "element");
      if (startIndex == null) dart.nullFailed(I[155], 13, 50, "startIndex");
      if (endIndex == null) dart.nullFailed(I[155], 13, 66, "endIndex");
      if (dart.notNull(startIndex) >= dart.notNull(a[$length])) {
        return -1;
      }
      if (dart.notNull(startIndex) < 0) {
        startIndex = 0;
      }
      for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
        if (dart.equals(a[$_get](i), element)) {
          return i;
        }
      }
      return -1;
    }
    static lastIndexOf(a, element, startIndex) {
      if (a == null) dart.nullFailed(I[155], 33, 31, "a");
      if (element == null) dart.nullFailed(I[155], 33, 41, "element");
      if (startIndex == null) dart.nullFailed(I[155], 33, 54, "startIndex");
      if (dart.notNull(startIndex) < 0) {
        return -1;
      }
      if (dart.notNull(startIndex) >= dart.notNull(a[$length])) {
        startIndex = dart.notNull(a[$length]) - 1;
      }
      for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (dart.equals(a[$_get](i), element)) {
          return i;
        }
      }
      return -1;
    }
    static getRange(a, start, end, accumulator) {
      if (a == null) dart.nullFailed(I[155], 55, 29, "a");
      if (start == null) dart.nullFailed(I[155], 55, 36, "start");
      if (end == null) dart.nullFailed(I[155], 55, 47, "end");
      if (accumulator == null) dart.nullFailed(I[155], 55, 57, "accumulator");
      if (dart.notNull(start) < 0) dart.throw(new core.RangeError.value(start));
      if (dart.notNull(end) < dart.notNull(start)) dart.throw(new core.RangeError.value(end));
      if (dart.notNull(end) > dart.notNull(a[$length])) dart.throw(new core.RangeError.value(end));
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        accumulator[$add](a[$_get](i));
      }
      return accumulator;
    }
  };
  (html_common.Lists.new = function() {
    ;
  }).prototype = html_common.Lists.prototype;
  dart.addTypeTests(html_common.Lists);
  dart.addTypeCaches(html_common.Lists);
  dart.setLibraryUri(html_common.Lists, I[150]);
  html_common.NodeListWrapper = class NodeListWrapper extends core.Object {};
  (html_common.NodeListWrapper.new = function() {
    ;
  }).prototype = html_common.NodeListWrapper.prototype;
  dart.addTypeTests(html_common.NodeListWrapper);
  dart.addTypeCaches(html_common.NodeListWrapper);
  dart.setLibraryUri(html_common.NodeListWrapper, I[150]);
  html_common.convertDartToNative_SerializedScriptValue = function convertDartToNative_SerializedScriptValue(value) {
    return html_common.convertDartToNative_PrepareForStructuredClone(value);
  };
  html_common.convertNativeToDart_SerializedScriptValue = function convertNativeToDart_SerializedScriptValue(object) {
    return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: true});
  };
  html_common.convertNativeToDart_ContextAttributes = function convertNativeToDart_ContextAttributes(nativeContextAttributes) {
    return new html_common.ContextAttributes.new(nativeContextAttributes.alpha, nativeContextAttributes.antialias, nativeContextAttributes.depth, nativeContextAttributes.failIfMajorPerformanceCaveat, nativeContextAttributes.premultipliedAlpha, nativeContextAttributes.preserveDrawingBuffer, nativeContextAttributes.stencil);
  };
  html_common.convertNativeToDart_ImageData = function convertNativeToDart_ImageData(nativeImageData) {
    0;
    if (html$.ImageData.is(nativeImageData)) {
      let data = nativeImageData.data;
      if (data.constructor === Array) {
        if (typeof CanvasPixelArray !== "undefined") {
          data.constructor = CanvasPixelArray;
          data.BYTES_PER_ELEMENT = 1;
        }
      }
      return nativeImageData;
    }
    return new html_common._TypedImageData.new(nativeImageData.data, nativeImageData.height, nativeImageData.width);
  };
  html_common.convertDartToNative_ImageData = function convertDartToNative_ImageData(imageData) {
    if (imageData == null) dart.nullFailed(I[151], 369, 41, "imageData");
    if (html_common._TypedImageData.is(imageData)) {
      return {data: imageData.data, height: imageData.height, width: imageData.width};
    }
    return imageData;
  };
  html_common.convertNativeToDart_Dictionary = function convertNativeToDart_Dictionary(object) {
    if (object == null) return null;
    let dict = new (T$0.IdentityMapOfString$dynamic()).new();
    let keys = Object.getOwnPropertyNames(object);
    for (let key of keys) {
      dict[$_set](core.String.as(key), object[key]);
    }
    return dict;
  };
  html_common._convertDartToNative_Value = function _convertDartToNative_Value(value) {
    if (value == null) return value;
    if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') return value;
    if (core.Map.is(value)) return html_common.convertDartToNative_Dictionary(value);
    if (core.List.is(value)) {
      let array = [];
      value[$forEach](dart.fn(element => {
        array.push(html_common._convertDartToNative_Value(element));
      }, T$.dynamicTovoid()));
      value = array;
    }
    return value;
  };
  html_common.convertDartToNative_Dictionary = function convertDartToNative_Dictionary(dict, postCreate = null) {
    if (dict == null) return null;
    let object = {};
    if (postCreate != null) {
      postCreate(object);
    }
    dict[$forEach](dart.fn((key, value) => {
      object[key] = html_common._convertDartToNative_Value(value);
    }, T$.dynamicAnddynamicTovoid()));
    return object;
  };
  html_common.convertDartToNative_StringArray = function convertDartToNative_StringArray(input) {
    if (input == null) dart.nullFailed(I[152], 56, 51, "input");
    return input;
  };
  html_common.convertNativeToDart_DateTime = function convertNativeToDart_DateTime(date) {
    let millisSinceEpoch = date.getTime();
    return new core.DateTime.fromMillisecondsSinceEpoch(millisSinceEpoch, {isUtc: true});
  };
  html_common.convertDartToNative_DateTime = function convertDartToNative_DateTime(date) {
    if (date == null) dart.nullFailed(I[152], 66, 39, "date");
    return new Date(date.millisecondsSinceEpoch);
  };
  html_common.convertDartToNative_PrepareForStructuredClone = function convertDartToNative_PrepareForStructuredClone(value) {
    return new html_common._StructuredCloneDart2Js.new().convertDartToNative_PrepareForStructuredClone(value);
  };
  html_common.convertNativeToDart_AcceptStructuredClone = function convertNativeToDart_AcceptStructuredClone(object, opts) {
    let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
    return new html_common._AcceptStructuredCloneDart2Js.new().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
  };
  html_common.isJavaScriptDate = function isJavaScriptDate(value) {
    return value instanceof Date;
  };
  html_common.isJavaScriptRegExp = function isJavaScriptRegExp(value) {
    return value instanceof RegExp;
  };
  html_common.isJavaScriptArray = function isJavaScriptArray(value) {
    return value instanceof Array;
  };
  html_common.isJavaScriptSimpleObject = function isJavaScriptSimpleObject(value) {
    let proto = Object.getPrototypeOf(value);
    return proto === Object.prototype || proto === null;
  };
  html_common.isImmutableJavaScriptArray = function isImmutableJavaScriptArray(value) {
    return !!value.immutable$list;
  };
  html_common.isJavaScriptPromise = function isJavaScriptPromise(value) {
    return typeof Promise != "undefined" && value instanceof Promise;
  };
  dart.defineLazy(html_common, {
    /*html_common._serializedScriptValue*/get _serializedScriptValue() {
      return "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort";
    },
    /*html_common.annotation_Creates_SerializedScriptValue*/get annotation_Creates_SerializedScriptValue() {
      return C[416] || CT.C416;
    },
    /*html_common.annotation_Returns_SerializedScriptValue*/get annotation_Returns_SerializedScriptValue() {
      return C[417] || CT.C417;
    }
  }, false);
  svg$._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
    static createSvgElement_tag(tag) {
      if (tag == null) dart.nullFailed(I[156], 30, 49, "tag");
      let temp = html$.document[S$1.$createElementNS]("http://www.w3.org/2000/svg", tag);
      return svg$.SvgElement.as(temp);
    }
  };
  (svg$._SvgElementFactoryProvider.new = function() {
    ;
  }).prototype = svg$._SvgElementFactoryProvider.prototype;
  dart.addTypeTests(svg$._SvgElementFactoryProvider);
  dart.addTypeCaches(svg$._SvgElementFactoryProvider);
  dart.setLibraryUri(svg$._SvgElementFactoryProvider, I[157]);
  svg$.SvgElement = class SvgElement extends html$.Element {
    static tag(tag) {
      if (tag == null) dart.nullFailed(I[156], 2996, 33, "tag");
      return svg$.SvgElement.as(html$.document[S$1.$createElementNS]("http://www.w3.org/2000/svg", tag));
    }
    static svg(svg, opts) {
      let t247;
      if (svg == null) dart.nullFailed(I[156], 2998, 33, "svg");
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (validator == null && treeSanitizer == null) {
        validator = (t247 = new html$.NodeValidatorBuilder.common(), (() => {
          t247.allowSvg();
          return t247;
        })());
      }
      let match = svg$.SvgElement._START_TAG_REGEXP.firstMatch(svg);
      let parentElement = null;
      if (match != null && dart.nullCheck(match.group(1))[$toLowerCase]() === "svg") {
        parentElement = html$.document.body;
      } else {
        parentElement = svg$.SvgSvgElement.new();
      }
      let fragment = dart.dsend(parentElement, 'createFragment', [svg], {validator: validator, treeSanitizer: treeSanitizer});
      return svg$.SvgElement.as(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', [dart.fn(e => svg$.SvgElement.is(e), T$0.dynamicTobool())]), 'single'));
    }
    get [S.$classes]() {
      return new svg$.AttributeClassSet.new(this);
    }
    set [S.$classes](value) {
      super[S.$classes] = value;
    }
    get [S.$children]() {
      return new html_common.FilteredElementList.new(this);
    }
    set [S.$children](value) {
      if (value == null) dart.nullFailed(I[156], 3020, 30, "value");
      let children = this[S.$children];
      children[$clear]();
      children[$addAll](value);
    }
    get [S.$outerHtml]() {
      let container = html$.DivElement.new();
      let cloned = svg$.SvgElement.as(this[S$.$clone](true));
      container[S.$children][$add](cloned);
      return container[S.$innerHtml];
    }
    get [S.$innerHtml]() {
      let container = html$.DivElement.new();
      let cloned = svg$.SvgElement.as(this[S$.$clone](true));
      container[S.$children][$addAll](cloned[S.$children]);
      return container[S.$innerHtml];
    }
    set [S.$innerHtml](value) {
      this[S.$setInnerHtml](value);
    }
    [S.$createFragment](svg, opts) {
      let t247;
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      if (treeSanitizer == null) {
        if (validator == null) {
          validator = (t247 = new html$.NodeValidatorBuilder.common(), (() => {
            t247.allowSvg();
            return t247;
          })());
        }
        treeSanitizer = html$.NodeTreeSanitizer.new(validator);
      }
      let html = "<svg version=\"1.1\">" + dart.str(svg) + "</svg>";
      let fragment = dart.nullCheck(html$.document.body)[S.$createFragment](html, {treeSanitizer: treeSanitizer});
      let svgFragment = html$.DocumentFragment.new();
      let root = fragment[S.$nodes][$single];
      while (root.firstChild != null) {
        svgFragment[S.$append](dart.nullCheck(root.firstChild));
      }
      return svgFragment;
    }
    [S.$insertAdjacentText](where, text) {
      if (where == null) dart.nullFailed(I[156], 3069, 34, "where");
      if (text == null) dart.nullFailed(I[156], 3069, 48, "text");
      dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentText on SVG."));
    }
    [S.$insertAdjacentHtml](where, text, opts) {
      if (where == null) dart.nullFailed(I[156], 3073, 34, "where");
      if (text == null) dart.nullFailed(I[156], 3073, 48, "text");
      let validator = opts && 'validator' in opts ? opts.validator : null;
      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
      dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentHtml on SVG."));
    }
    [S.$insertAdjacentElement](where, element) {
      if (where == null) dart.nullFailed(I[156], 3078, 40, "where");
      if (element == null) dart.nullFailed(I[156], 3078, 55, "element");
      dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentElement on SVG."));
    }
    get [S$3._children$1]() {
      dart.throw(new core.UnsupportedError.new("Cannot get _children on SVG."));
    }
    get [S.$isContentEditable]() {
      return false;
    }
    [S.$click]() {
      dart.throw(new core.UnsupportedError.new("Cannot invoke click SVG."));
    }
    static isTagSupported(tag) {
      if (tag == null) dart.nullFailed(I[156], 3096, 37, "tag");
      let e = svg$.SvgElement.tag(tag);
      return svg$.SvgElement.is(e) && !html$.UnknownElement.is(e);
    }
    get [S$3._svgClassName]() {
      return this.className;
    }
    get [S$3.$ownerSvgElement]() {
      return this.ownerSVGElement;
    }
    get [S$3.$viewportElement]() {
      return this.viewportElement;
    }
    [S.$blur](...args) {
      return this.blur.apply(this, args);
    }
    [S.$focus](...args) {
      return this.focus.apply(this, args);
    }
    get [S.$nonce]() {
      return this.nonce;
    }
    set [S.$nonce](value) {
      this.nonce = value;
    }
    get [S.$onAbort]() {
      return svg$.SvgElement.abortEvent.forElement(this);
    }
    get [S.$onBlur]() {
      return svg$.SvgElement.blurEvent.forElement(this);
    }
    get [S.$onCanPlay]() {
      return svg$.SvgElement.canPlayEvent.forElement(this);
    }
    get [S.$onCanPlayThrough]() {
      return svg$.SvgElement.canPlayThroughEvent.forElement(this);
    }
    get [S.$onChange]() {
      return svg$.SvgElement.changeEvent.forElement(this);
    }
    get [S.$onClick]() {
      return svg$.SvgElement.clickEvent.forElement(this);
    }
    get [S.$onContextMenu]() {
      return svg$.SvgElement.contextMenuEvent.forElement(this);
    }
    get [S.$onDoubleClick]() {
      return svg$.SvgElement.doubleClickEvent.forElement(this);
    }
    get [S.$onDrag]() {
      return svg$.SvgElement.dragEvent.forElement(this);
    }
    get [S.$onDragEnd]() {
      return svg$.SvgElement.dragEndEvent.forElement(this);
    }
    get [S.$onDragEnter]() {
      return svg$.SvgElement.dragEnterEvent.forElement(this);
    }
    get [S.$onDragLeave]() {
      return svg$.SvgElement.dragLeaveEvent.forElement(this);
    }
    get [S.$onDragOver]() {
      return svg$.SvgElement.dragOverEvent.forElement(this);
    }
    get [S.$onDragStart]() {
      return svg$.SvgElement.dragStartEvent.forElement(this);
    }
    get [S.$onDrop]() {
      return svg$.SvgElement.dropEvent.forElement(this);
    }
    get [S.$onDurationChange]() {
      return svg$.SvgElement.durationChangeEvent.forElement(this);
    }
    get [S.$onEmptied]() {
      return svg$.SvgElement.emptiedEvent.forElement(this);
    }
    get [S.$onEnded]() {
      return svg$.SvgElement.endedEvent.forElement(this);
    }
    get [S.$onError]() {
      return svg$.SvgElement.errorEvent.forElement(this);
    }
    get [S.$onFocus]() {
      return svg$.SvgElement.focusEvent.forElement(this);
    }
    get [S.$onInput]() {
      return svg$.SvgElement.inputEvent.forElement(this);
    }
    get [S.$onInvalid]() {
      return svg$.SvgElement.invalidEvent.forElement(this);
    }
    get [S.$onKeyDown]() {
      return svg$.SvgElement.keyDownEvent.forElement(this);
    }
    get [S.$onKeyPress]() {
      return svg$.SvgElement.keyPressEvent.forElement(this);
    }
    get [S.$onKeyUp]() {
      return svg$.SvgElement.keyUpEvent.forElement(this);
    }
    get [S.$onLoad]() {
      return svg$.SvgElement.loadEvent.forElement(this);
    }
    get [S.$onLoadedData]() {
      return svg$.SvgElement.loadedDataEvent.forElement(this);
    }
    get [S.$onLoadedMetadata]() {
      return svg$.SvgElement.loadedMetadataEvent.forElement(this);
    }
    get [S.$onMouseDown]() {
      return svg$.SvgElement.mouseDownEvent.forElement(this);
    }
    get [S.$onMouseEnter]() {
      return svg$.SvgElement.mouseEnterEvent.forElement(this);
    }
    get [S.$onMouseLeave]() {
      return svg$.SvgElement.mouseLeaveEvent.forElement(this);
    }
    get [S.$onMouseMove]() {
      return svg$.SvgElement.mouseMoveEvent.forElement(this);
    }
    get [S.$onMouseOut]() {
      return svg$.SvgElement.mouseOutEvent.forElement(this);
    }
    get [S.$onMouseOver]() {
      return svg$.SvgElement.mouseOverEvent.forElement(this);
    }
    get [S.$onMouseUp]() {
      return svg$.SvgElement.mouseUpEvent.forElement(this);
    }
    get [S.$onMouseWheel]() {
      return svg$.SvgElement.mouseWheelEvent.forElement(this);
    }
    get [S.$onPause]() {
      return svg$.SvgElement.pauseEvent.forElement(this);
    }
    get [S.$onPlay]() {
      return svg$.SvgElement.playEvent.forElement(this);
    }
    get [S.$onPlaying]() {
      return svg$.SvgElement.playingEvent.forElement(this);
    }
    get [S.$onRateChange]() {
      return svg$.SvgElement.rateChangeEvent.forElement(this);
    }
    get [S.$onReset]() {
      return svg$.SvgElement.resetEvent.forElement(this);
    }
    get [S.$onResize]() {
      return svg$.SvgElement.resizeEvent.forElement(this);
    }
    get [S.$onScroll]() {
      return svg$.SvgElement.scrollEvent.forElement(this);
    }
    get [S.$onSeeked]() {
      return svg$.SvgElement.seekedEvent.forElement(this);
    }
    get [S.$onSeeking]() {
      return svg$.SvgElement.seekingEvent.forElement(this);
    }
    get [S.$onSelect]() {
      return svg$.SvgElement.selectEvent.forElement(this);
    }
    get [S.$onStalled]() {
      return svg$.SvgElement.stalledEvent.forElement(this);
    }
    get [S.$onSubmit]() {
      return svg$.SvgElement.submitEvent.forElement(this);
    }
    get [S$.$onSuspend]() {
      return svg$.SvgElement.suspendEvent.forElement(this);
    }
    get [S$.$onTimeUpdate]() {
      return svg$.SvgElement.timeUpdateEvent.forElement(this);
    }
    get [S$.$onTouchCancel]() {
      return svg$.SvgElement.touchCancelEvent.forElement(this);
    }
    get [S$.$onTouchEnd]() {
      return svg$.SvgElement.touchEndEvent.forElement(this);
    }
    get [S$.$onTouchMove]() {
      return svg$.SvgElement.touchMoveEvent.forElement(this);
    }
    get [S$.$onTouchStart]() {
      return svg$.SvgElement.touchStartEvent.forElement(this);
    }
    get [S$.$onVolumeChange]() {
      return svg$.SvgElement.volumeChangeEvent.forElement(this);
    }
    get [S$.$onWaiting]() {
      return svg$.SvgElement.waitingEvent.forElement(this);
    }
    get [S$.$onWheel]() {
      return svg$.SvgElement.wheelEvent.forElement(this);
    }
  };
  (svg$.SvgElement.created = function() {
    svg$.SvgElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.SvgElement.prototype;
  dart.addTypeTests(svg$.SvgElement);
  dart.addTypeCaches(svg$.SvgElement);
  svg$.SvgElement[dart.implements] = () => [html$.GlobalEventHandlers, html$.NoncedElement];
  dart.setGetterSignature(svg$.SvgElement, () => ({
    __proto__: dart.getGetters(svg$.SvgElement.__proto__),
    [S$3._children$1]: html$.HtmlCollection,
    [S.$isContentEditable]: core.bool,
    [S$3._svgClassName]: svg$.AnimatedString,
    [S$3.$ownerSvgElement]: dart.nullable(svg$.SvgSvgElement),
    [S$3.$viewportElement]: dart.nullable(svg$.SvgElement),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(svg$.SvgElement, () => ({
    __proto__: dart.getSetters(svg$.SvgElement.__proto__),
    [S.$nonce]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(svg$.SvgElement, I[157]);
  dart.defineLazy(svg$.SvgElement, {
    /*svg$.SvgElement._START_TAG_REGEXP*/get _START_TAG_REGEXP() {
      return core.RegExp.new("<(\\w+)");
    },
    /*svg$.SvgElement.abortEvent*/get abortEvent() {
      return C[214] || CT.C214;
    },
    /*svg$.SvgElement.blurEvent*/get blurEvent() {
      return C[233] || CT.C233;
    },
    /*svg$.SvgElement.canPlayEvent*/get canPlayEvent() {
      return C[234] || CT.C234;
    },
    /*svg$.SvgElement.canPlayThroughEvent*/get canPlayThroughEvent() {
      return C[235] || CT.C235;
    },
    /*svg$.SvgElement.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    },
    /*svg$.SvgElement.clickEvent*/get clickEvent() {
      return C[237] || CT.C237;
    },
    /*svg$.SvgElement.contextMenuEvent*/get contextMenuEvent() {
      return C[238] || CT.C238;
    },
    /*svg$.SvgElement.doubleClickEvent*/get doubleClickEvent() {
      return C[241] || CT.C241;
    },
    /*svg$.SvgElement.dragEvent*/get dragEvent() {
      return C[242] || CT.C242;
    },
    /*svg$.SvgElement.dragEndEvent*/get dragEndEvent() {
      return C[243] || CT.C243;
    },
    /*svg$.SvgElement.dragEnterEvent*/get dragEnterEvent() {
      return C[244] || CT.C244;
    },
    /*svg$.SvgElement.dragLeaveEvent*/get dragLeaveEvent() {
      return C[245] || CT.C245;
    },
    /*svg$.SvgElement.dragOverEvent*/get dragOverEvent() {
      return C[246] || CT.C246;
    },
    /*svg$.SvgElement.dragStartEvent*/get dragStartEvent() {
      return C[247] || CT.C247;
    },
    /*svg$.SvgElement.dropEvent*/get dropEvent() {
      return C[248] || CT.C248;
    },
    /*svg$.SvgElement.durationChangeEvent*/get durationChangeEvent() {
      return C[249] || CT.C249;
    },
    /*svg$.SvgElement.emptiedEvent*/get emptiedEvent() {
      return C[250] || CT.C250;
    },
    /*svg$.SvgElement.endedEvent*/get endedEvent() {
      return C[251] || CT.C251;
    },
    /*svg$.SvgElement.errorEvent*/get errorEvent() {
      return C[216] || CT.C216;
    },
    /*svg$.SvgElement.focusEvent*/get focusEvent() {
      return C[252] || CT.C252;
    },
    /*svg$.SvgElement.inputEvent*/get inputEvent() {
      return C[253] || CT.C253;
    },
    /*svg$.SvgElement.invalidEvent*/get invalidEvent() {
      return C[254] || CT.C254;
    },
    /*svg$.SvgElement.keyDownEvent*/get keyDownEvent() {
      return C[255] || CT.C255;
    },
    /*svg$.SvgElement.keyPressEvent*/get keyPressEvent() {
      return C[256] || CT.C256;
    },
    /*svg$.SvgElement.keyUpEvent*/get keyUpEvent() {
      return C[257] || CT.C257;
    },
    /*svg$.SvgElement.loadEvent*/get loadEvent() {
      return C[258] || CT.C258;
    },
    /*svg$.SvgElement.loadedDataEvent*/get loadedDataEvent() {
      return C[259] || CT.C259;
    },
    /*svg$.SvgElement.loadedMetadataEvent*/get loadedMetadataEvent() {
      return C[260] || CT.C260;
    },
    /*svg$.SvgElement.mouseDownEvent*/get mouseDownEvent() {
      return C[261] || CT.C261;
    },
    /*svg$.SvgElement.mouseEnterEvent*/get mouseEnterEvent() {
      return C[262] || CT.C262;
    },
    /*svg$.SvgElement.mouseLeaveEvent*/get mouseLeaveEvent() {
      return C[263] || CT.C263;
    },
    /*svg$.SvgElement.mouseMoveEvent*/get mouseMoveEvent() {
      return C[264] || CT.C264;
    },
    /*svg$.SvgElement.mouseOutEvent*/get mouseOutEvent() {
      return C[265] || CT.C265;
    },
    /*svg$.SvgElement.mouseOverEvent*/get mouseOverEvent() {
      return C[266] || CT.C266;
    },
    /*svg$.SvgElement.mouseUpEvent*/get mouseUpEvent() {
      return C[267] || CT.C267;
    },
    /*svg$.SvgElement.mouseWheelEvent*/get mouseWheelEvent() {
      return C[342] || CT.C342;
    },
    /*svg$.SvgElement.pauseEvent*/get pauseEvent() {
      return C[269] || CT.C269;
    },
    /*svg$.SvgElement.playEvent*/get playEvent() {
      return C[270] || CT.C270;
    },
    /*svg$.SvgElement.playingEvent*/get playingEvent() {
      return C[271] || CT.C271;
    },
    /*svg$.SvgElement.rateChangeEvent*/get rateChangeEvent() {
      return C[272] || CT.C272;
    },
    /*svg$.SvgElement.resetEvent*/get resetEvent() {
      return C[273] || CT.C273;
    },
    /*svg$.SvgElement.resizeEvent*/get resizeEvent() {
      return C[274] || CT.C274;
    },
    /*svg$.SvgElement.scrollEvent*/get scrollEvent() {
      return C[275] || CT.C275;
    },
    /*svg$.SvgElement.seekedEvent*/get seekedEvent() {
      return C[277] || CT.C277;
    },
    /*svg$.SvgElement.seekingEvent*/get seekingEvent() {
      return C[278] || CT.C278;
    },
    /*svg$.SvgElement.selectEvent*/get selectEvent() {
      return C[279] || CT.C279;
    },
    /*svg$.SvgElement.stalledEvent*/get stalledEvent() {
      return C[281] || CT.C281;
    },
    /*svg$.SvgElement.submitEvent*/get submitEvent() {
      return C[282] || CT.C282;
    },
    /*svg$.SvgElement.suspendEvent*/get suspendEvent() {
      return C[283] || CT.C283;
    },
    /*svg$.SvgElement.timeUpdateEvent*/get timeUpdateEvent() {
      return C[284] || CT.C284;
    },
    /*svg$.SvgElement.touchCancelEvent*/get touchCancelEvent() {
      return C[285] || CT.C285;
    },
    /*svg$.SvgElement.touchEndEvent*/get touchEndEvent() {
      return C[286] || CT.C286;
    },
    /*svg$.SvgElement.touchMoveEvent*/get touchMoveEvent() {
      return C[289] || CT.C289;
    },
    /*svg$.SvgElement.touchStartEvent*/get touchStartEvent() {
      return C[290] || CT.C290;
    },
    /*svg$.SvgElement.volumeChangeEvent*/get volumeChangeEvent() {
      return C[291] || CT.C291;
    },
    /*svg$.SvgElement.waitingEvent*/get waitingEvent() {
      return C[292] || CT.C292;
    },
    /*svg$.SvgElement.wheelEvent*/get wheelEvent() {
      return C[295] || CT.C295;
    }
  }, false);
  dart.registerExtension("SVGElement", svg$.SvgElement);
  svg$.GraphicsElement = class GraphicsElement extends svg$.SvgElement {
    get [S$3.$farthestViewportElement]() {
      return this.farthestViewportElement;
    }
    get [S$3.$nearestViewportElement]() {
      return this.nearestViewportElement;
    }
    get [S$.$transform]() {
      return this.transform;
    }
    [S$3.$getBBox](...args) {
      return this.getBBox.apply(this, args);
    }
    [S$3.$getCtm](...args) {
      return this.getCTM.apply(this, args);
    }
    [S$3.$getScreenCtm](...args) {
      return this.getScreenCTM.apply(this, args);
    }
    get [S$3.$requiredExtensions]() {
      return this.requiredExtensions;
    }
    get [S$3.$systemLanguage]() {
      return this.systemLanguage;
    }
  };
  (svg$.GraphicsElement.created = function() {
    svg$.GraphicsElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.GraphicsElement.prototype;
  dart.addTypeTests(svg$.GraphicsElement);
  dart.addTypeCaches(svg$.GraphicsElement);
  svg$.GraphicsElement[dart.implements] = () => [svg$.Tests];
  dart.setMethodSignature(svg$.GraphicsElement, () => ({
    __proto__: dart.getMethods(svg$.GraphicsElement.__proto__),
    [S$3.$getBBox]: dart.fnType(svg$.Rect, []),
    [S$3.$getCtm]: dart.fnType(svg$.Matrix, []),
    [S$3.$getScreenCtm]: dart.fnType(svg$.Matrix, [])
  }));
  dart.setGetterSignature(svg$.GraphicsElement, () => ({
    __proto__: dart.getGetters(svg$.GraphicsElement.__proto__),
    [S$3.$farthestViewportElement]: dart.nullable(svg$.SvgElement),
    [S$3.$nearestViewportElement]: dart.nullable(svg$.SvgElement),
    [S$.$transform]: dart.nullable(svg$.AnimatedTransformList),
    [S$3.$requiredExtensions]: dart.nullable(svg$.StringList),
    [S$3.$systemLanguage]: dart.nullable(svg$.StringList)
  }));
  dart.setLibraryUri(svg$.GraphicsElement, I[157]);
  dart.registerExtension("SVGGraphicsElement", svg$.GraphicsElement);
  svg$.AElement = class AElement extends svg$.GraphicsElement {
    static new() {
      return svg$.AElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("a"));
    }
    get [S.$target]() {
      return this.target;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.AElement.created = function() {
    svg$.AElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.AElement.prototype;
  dart.addTypeTests(svg$.AElement);
  dart.addTypeCaches(svg$.AElement);
  svg$.AElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$.AElement, () => ({
    __proto__: dart.getGetters(svg$.AElement.__proto__),
    [S.$target]: svg$.AnimatedString,
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.AElement, I[157]);
  dart.registerExtension("SVGAElement", svg$.AElement);
  svg$.Angle = class Angle extends _interceptors.Interceptor {
    get [S$3.$unitType]() {
      return this.unitType;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$3.$valueAsString]() {
      return this.valueAsString;
    }
    set [S$3.$valueAsString](value) {
      this.valueAsString = value;
    }
    get [S$3.$valueInSpecifiedUnits]() {
      return this.valueInSpecifiedUnits;
    }
    set [S$3.$valueInSpecifiedUnits](value) {
      this.valueInSpecifiedUnits = value;
    }
    [S$3.$convertToSpecifiedUnits](...args) {
      return this.convertToSpecifiedUnits.apply(this, args);
    }
    [S$3.$newValueSpecifiedUnits](...args) {
      return this.newValueSpecifiedUnits.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.Angle);
  dart.addTypeCaches(svg$.Angle);
  dart.setMethodSignature(svg$.Angle, () => ({
    __proto__: dart.getMethods(svg$.Angle.__proto__),
    [S$3.$convertToSpecifiedUnits]: dart.fnType(dart.void, [core.int]),
    [S$3.$newValueSpecifiedUnits]: dart.fnType(dart.void, [core.int, core.num])
  }));
  dart.setGetterSignature(svg$.Angle, () => ({
    __proto__: dart.getGetters(svg$.Angle.__proto__),
    [S$3.$unitType]: dart.nullable(core.int),
    [S.$value]: dart.nullable(core.num),
    [S$3.$valueAsString]: dart.nullable(core.String),
    [S$3.$valueInSpecifiedUnits]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Angle, () => ({
    __proto__: dart.getSetters(svg$.Angle.__proto__),
    [S.$value]: dart.nullable(core.num),
    [S$3.$valueAsString]: dart.nullable(core.String),
    [S$3.$valueInSpecifiedUnits]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Angle, I[157]);
  dart.defineLazy(svg$.Angle, {
    /*svg$.Angle.SVG_ANGLETYPE_DEG*/get SVG_ANGLETYPE_DEG() {
      return 2;
    },
    /*svg$.Angle.SVG_ANGLETYPE_GRAD*/get SVG_ANGLETYPE_GRAD() {
      return 4;
    },
    /*svg$.Angle.SVG_ANGLETYPE_RAD*/get SVG_ANGLETYPE_RAD() {
      return 3;
    },
    /*svg$.Angle.SVG_ANGLETYPE_UNKNOWN*/get SVG_ANGLETYPE_UNKNOWN() {
      return 0;
    },
    /*svg$.Angle.SVG_ANGLETYPE_UNSPECIFIED*/get SVG_ANGLETYPE_UNSPECIFIED() {
      return 1;
    }
  }, false);
  dart.registerExtension("SVGAngle", svg$.Angle);
  svg$.AnimationElement = class AnimationElement extends svg$.SvgElement {
    static new() {
      return svg$.AnimationElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animation"));
    }
    get [S$3.$targetElement]() {
      return this.targetElement;
    }
    [S$3.$beginElement](...args) {
      return this.beginElement.apply(this, args);
    }
    [S$3.$beginElementAt](...args) {
      return this.beginElementAt.apply(this, args);
    }
    [S$3.$endElement](...args) {
      return this.endElement.apply(this, args);
    }
    [S$3.$endElementAt](...args) {
      return this.endElementAt.apply(this, args);
    }
    [S$3.$getCurrentTime](...args) {
      return this.getCurrentTime.apply(this, args);
    }
    [S$3.$getSimpleDuration](...args) {
      return this.getSimpleDuration.apply(this, args);
    }
    [S$3.$getStartTime](...args) {
      return this.getStartTime.apply(this, args);
    }
    get [S$3.$requiredExtensions]() {
      return this.requiredExtensions;
    }
    get [S$3.$systemLanguage]() {
      return this.systemLanguage;
    }
  };
  (svg$.AnimationElement.created = function() {
    svg$.AnimationElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.AnimationElement.prototype;
  dart.addTypeTests(svg$.AnimationElement);
  dart.addTypeCaches(svg$.AnimationElement);
  svg$.AnimationElement[dart.implements] = () => [svg$.Tests];
  dart.setMethodSignature(svg$.AnimationElement, () => ({
    __proto__: dart.getMethods(svg$.AnimationElement.__proto__),
    [S$3.$beginElement]: dart.fnType(dart.void, []),
    [S$3.$beginElementAt]: dart.fnType(dart.void, [core.num]),
    [S$3.$endElement]: dart.fnType(dart.void, []),
    [S$3.$endElementAt]: dart.fnType(dart.void, [core.num]),
    [S$3.$getCurrentTime]: dart.fnType(core.double, []),
    [S$3.$getSimpleDuration]: dart.fnType(core.double, []),
    [S$3.$getStartTime]: dart.fnType(core.double, [])
  }));
  dart.setGetterSignature(svg$.AnimationElement, () => ({
    __proto__: dart.getGetters(svg$.AnimationElement.__proto__),
    [S$3.$targetElement]: dart.nullable(svg$.SvgElement),
    [S$3.$requiredExtensions]: dart.nullable(svg$.StringList),
    [S$3.$systemLanguage]: dart.nullable(svg$.StringList)
  }));
  dart.setLibraryUri(svg$.AnimationElement, I[157]);
  dart.registerExtension("SVGAnimationElement", svg$.AnimationElement);
  svg$.AnimateElement = class AnimateElement extends svg$.AnimationElement {
    static new() {
      return svg$.AnimateElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animate"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("animate")) && svg$.AnimateElement.is(svg$.SvgElement.tag("animate"));
    }
  };
  (svg$.AnimateElement.created = function() {
    svg$.AnimateElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.AnimateElement.prototype;
  dart.addTypeTests(svg$.AnimateElement);
  dart.addTypeCaches(svg$.AnimateElement);
  dart.setLibraryUri(svg$.AnimateElement, I[157]);
  dart.registerExtension("SVGAnimateElement", svg$.AnimateElement);
  svg$.AnimateMotionElement = class AnimateMotionElement extends svg$.AnimationElement {
    static new() {
      return svg$.AnimateMotionElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("animateMotion")) && svg$.AnimateMotionElement.is(svg$.SvgElement.tag("animateMotion"));
    }
  };
  (svg$.AnimateMotionElement.created = function() {
    svg$.AnimateMotionElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.AnimateMotionElement.prototype;
  dart.addTypeTests(svg$.AnimateMotionElement);
  dart.addTypeCaches(svg$.AnimateMotionElement);
  dart.setLibraryUri(svg$.AnimateMotionElement, I[157]);
  dart.registerExtension("SVGAnimateMotionElement", svg$.AnimateMotionElement);
  svg$.AnimateTransformElement = class AnimateTransformElement extends svg$.AnimationElement {
    static new() {
      return svg$.AnimateTransformElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("animateTransform")) && svg$.AnimateTransformElement.is(svg$.SvgElement.tag("animateTransform"));
    }
  };
  (svg$.AnimateTransformElement.created = function() {
    svg$.AnimateTransformElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.AnimateTransformElement.prototype;
  dart.addTypeTests(svg$.AnimateTransformElement);
  dart.addTypeCaches(svg$.AnimateTransformElement);
  dart.setLibraryUri(svg$.AnimateTransformElement, I[157]);
  dart.registerExtension("SVGAnimateTransformElement", svg$.AnimateTransformElement);
  svg$.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedAngle);
  dart.addTypeCaches(svg$.AnimatedAngle);
  dart.setGetterSignature(svg$.AnimatedAngle, () => ({
    __proto__: dart.getGetters(svg$.AnimatedAngle.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.Angle),
    [S$3.$baseVal]: dart.nullable(svg$.Angle)
  }));
  dart.setLibraryUri(svg$.AnimatedAngle, I[157]);
  dart.registerExtension("SVGAnimatedAngle", svg$.AnimatedAngle);
  svg$.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
    set [S$3.$baseVal](value) {
      this.baseVal = value;
    }
  };
  dart.addTypeTests(svg$.AnimatedBoolean);
  dart.addTypeCaches(svg$.AnimatedBoolean);
  dart.setGetterSignature(svg$.AnimatedBoolean, () => ({
    __proto__: dart.getGetters(svg$.AnimatedBoolean.__proto__),
    [S$3.$animVal]: dart.nullable(core.bool),
    [S$3.$baseVal]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(svg$.AnimatedBoolean, () => ({
    __proto__: dart.getSetters(svg$.AnimatedBoolean.__proto__),
    [S$3.$baseVal]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(svg$.AnimatedBoolean, I[157]);
  dart.registerExtension("SVGAnimatedBoolean", svg$.AnimatedBoolean);
  svg$.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
    set [S$3.$baseVal](value) {
      this.baseVal = value;
    }
  };
  dart.addTypeTests(svg$.AnimatedEnumeration);
  dart.addTypeCaches(svg$.AnimatedEnumeration);
  dart.setGetterSignature(svg$.AnimatedEnumeration, () => ({
    __proto__: dart.getGetters(svg$.AnimatedEnumeration.__proto__),
    [S$3.$animVal]: dart.nullable(core.int),
    [S$3.$baseVal]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.AnimatedEnumeration, () => ({
    __proto__: dart.getSetters(svg$.AnimatedEnumeration.__proto__),
    [S$3.$baseVal]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.AnimatedEnumeration, I[157]);
  dart.registerExtension("SVGAnimatedEnumeration", svg$.AnimatedEnumeration);
  svg$.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
    set [S$3.$baseVal](value) {
      this.baseVal = value;
    }
  };
  dart.addTypeTests(svg$.AnimatedInteger);
  dart.addTypeCaches(svg$.AnimatedInteger);
  dart.setGetterSignature(svg$.AnimatedInteger, () => ({
    __proto__: dart.getGetters(svg$.AnimatedInteger.__proto__),
    [S$3.$animVal]: dart.nullable(core.int),
    [S$3.$baseVal]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.AnimatedInteger, () => ({
    __proto__: dart.getSetters(svg$.AnimatedInteger.__proto__),
    [S$3.$baseVal]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.AnimatedInteger, I[157]);
  dart.registerExtension("SVGAnimatedInteger", svg$.AnimatedInteger);
  svg$.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedLength);
  dart.addTypeCaches(svg$.AnimatedLength);
  dart.setGetterSignature(svg$.AnimatedLength, () => ({
    __proto__: dart.getGetters(svg$.AnimatedLength.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.Length),
    [S$3.$baseVal]: dart.nullable(svg$.Length)
  }));
  dart.setLibraryUri(svg$.AnimatedLength, I[157]);
  dart.registerExtension("SVGAnimatedLength", svg$.AnimatedLength);
  svg$.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedLengthList);
  dart.addTypeCaches(svg$.AnimatedLengthList);
  dart.setGetterSignature(svg$.AnimatedLengthList, () => ({
    __proto__: dart.getGetters(svg$.AnimatedLengthList.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.LengthList),
    [S$3.$baseVal]: dart.nullable(svg$.LengthList)
  }));
  dart.setLibraryUri(svg$.AnimatedLengthList, I[157]);
  dart.registerExtension("SVGAnimatedLengthList", svg$.AnimatedLengthList);
  svg$.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
    set [S$3.$baseVal](value) {
      this.baseVal = value;
    }
  };
  dart.addTypeTests(svg$.AnimatedNumber);
  dart.addTypeCaches(svg$.AnimatedNumber);
  dart.setGetterSignature(svg$.AnimatedNumber, () => ({
    __proto__: dart.getGetters(svg$.AnimatedNumber.__proto__),
    [S$3.$animVal]: dart.nullable(core.num),
    [S$3.$baseVal]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.AnimatedNumber, () => ({
    __proto__: dart.getSetters(svg$.AnimatedNumber.__proto__),
    [S$3.$baseVal]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.AnimatedNumber, I[157]);
  dart.registerExtension("SVGAnimatedNumber", svg$.AnimatedNumber);
  svg$.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedNumberList);
  dart.addTypeCaches(svg$.AnimatedNumberList);
  dart.setGetterSignature(svg$.AnimatedNumberList, () => ({
    __proto__: dart.getGetters(svg$.AnimatedNumberList.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.NumberList),
    [S$3.$baseVal]: dart.nullable(svg$.NumberList)
  }));
  dart.setLibraryUri(svg$.AnimatedNumberList, I[157]);
  dart.registerExtension("SVGAnimatedNumberList", svg$.AnimatedNumberList);
  svg$.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedPreserveAspectRatio);
  dart.addTypeCaches(svg$.AnimatedPreserveAspectRatio);
  dart.setGetterSignature(svg$.AnimatedPreserveAspectRatio, () => ({
    __proto__: dart.getGetters(svg$.AnimatedPreserveAspectRatio.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.PreserveAspectRatio),
    [S$3.$baseVal]: dart.nullable(svg$.PreserveAspectRatio)
  }));
  dart.setLibraryUri(svg$.AnimatedPreserveAspectRatio, I[157]);
  dart.registerExtension("SVGAnimatedPreserveAspectRatio", svg$.AnimatedPreserveAspectRatio);
  svg$.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedRect);
  dart.addTypeCaches(svg$.AnimatedRect);
  dart.setGetterSignature(svg$.AnimatedRect, () => ({
    __proto__: dart.getGetters(svg$.AnimatedRect.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.Rect),
    [S$3.$baseVal]: dart.nullable(svg$.Rect)
  }));
  dart.setLibraryUri(svg$.AnimatedRect, I[157]);
  dart.registerExtension("SVGAnimatedRect", svg$.AnimatedRect);
  svg$.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
    set [S$3.$baseVal](value) {
      this.baseVal = value;
    }
  };
  dart.addTypeTests(svg$.AnimatedString);
  dart.addTypeCaches(svg$.AnimatedString);
  dart.setGetterSignature(svg$.AnimatedString, () => ({
    __proto__: dart.getGetters(svg$.AnimatedString.__proto__),
    [S$3.$animVal]: dart.nullable(core.String),
    [S$3.$baseVal]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(svg$.AnimatedString, () => ({
    __proto__: dart.getSetters(svg$.AnimatedString.__proto__),
    [S$3.$baseVal]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(svg$.AnimatedString, I[157]);
  dart.registerExtension("SVGAnimatedString", svg$.AnimatedString);
  svg$.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
    get [S$3.$animVal]() {
      return this.animVal;
    }
    get [S$3.$baseVal]() {
      return this.baseVal;
    }
  };
  dart.addTypeTests(svg$.AnimatedTransformList);
  dart.addTypeCaches(svg$.AnimatedTransformList);
  dart.setGetterSignature(svg$.AnimatedTransformList, () => ({
    __proto__: dart.getGetters(svg$.AnimatedTransformList.__proto__),
    [S$3.$animVal]: dart.nullable(svg$.TransformList),
    [S$3.$baseVal]: dart.nullable(svg$.TransformList)
  }));
  dart.setLibraryUri(svg$.AnimatedTransformList, I[157]);
  dart.registerExtension("SVGAnimatedTransformList", svg$.AnimatedTransformList);
  svg$.GeometryElement = class GeometryElement extends svg$.GraphicsElement {
    get [S$3.$pathLength]() {
      return this.pathLength;
    }
    [S$3.$getPointAtLength](...args) {
      return this.getPointAtLength.apply(this, args);
    }
    [S$3.$getTotalLength](...args) {
      return this.getTotalLength.apply(this, args);
    }
    [S$3.$isPointInFill](...args) {
      return this.isPointInFill.apply(this, args);
    }
    [S$.$isPointInStroke](...args) {
      return this.isPointInStroke.apply(this, args);
    }
  };
  (svg$.GeometryElement.created = function() {
    svg$.GeometryElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.GeometryElement.prototype;
  dart.addTypeTests(svg$.GeometryElement);
  dart.addTypeCaches(svg$.GeometryElement);
  dart.setMethodSignature(svg$.GeometryElement, () => ({
    __proto__: dart.getMethods(svg$.GeometryElement.__proto__),
    [S$3.$getPointAtLength]: dart.fnType(svg$.Point, [core.num]),
    [S$3.$getTotalLength]: dart.fnType(core.double, []),
    [S$3.$isPointInFill]: dart.fnType(core.bool, [svg$.Point]),
    [S$.$isPointInStroke]: dart.fnType(core.bool, [svg$.Point])
  }));
  dart.setGetterSignature(svg$.GeometryElement, () => ({
    __proto__: dart.getGetters(svg$.GeometryElement.__proto__),
    [S$3.$pathLength]: dart.nullable(svg$.AnimatedNumber)
  }));
  dart.setLibraryUri(svg$.GeometryElement, I[157]);
  dart.registerExtension("SVGGeometryElement", svg$.GeometryElement);
  svg$.CircleElement = class CircleElement extends svg$.GeometryElement {
    static new() {
      return svg$.CircleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("circle"));
    }
    get [S$3.$cx]() {
      return this.cx;
    }
    get [S$3.$cy]() {
      return this.cy;
    }
    get [S$3.$r]() {
      return this.r;
    }
  };
  (svg$.CircleElement.created = function() {
    svg$.CircleElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.CircleElement.prototype;
  dart.addTypeTests(svg$.CircleElement);
  dart.addTypeCaches(svg$.CircleElement);
  dart.setGetterSignature(svg$.CircleElement, () => ({
    __proto__: dart.getGetters(svg$.CircleElement.__proto__),
    [S$3.$cx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$cy]: dart.nullable(svg$.AnimatedLength),
    [S$3.$r]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.CircleElement, I[157]);
  dart.registerExtension("SVGCircleElement", svg$.CircleElement);
  svg$.ClipPathElement = class ClipPathElement extends svg$.GraphicsElement {
    static new() {
      return svg$.ClipPathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
    }
    get [S$3.$clipPathUnits]() {
      return this.clipPathUnits;
    }
  };
  (svg$.ClipPathElement.created = function() {
    svg$.ClipPathElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.ClipPathElement.prototype;
  dart.addTypeTests(svg$.ClipPathElement);
  dart.addTypeCaches(svg$.ClipPathElement);
  dart.setGetterSignature(svg$.ClipPathElement, () => ({
    __proto__: dart.getGetters(svg$.ClipPathElement.__proto__),
    [S$3.$clipPathUnits]: dart.nullable(svg$.AnimatedEnumeration)
  }));
  dart.setLibraryUri(svg$.ClipPathElement, I[157]);
  dart.registerExtension("SVGClipPathElement", svg$.ClipPathElement);
  svg$.DefsElement = class DefsElement extends svg$.GraphicsElement {
    static new() {
      return svg$.DefsElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("defs"));
    }
  };
  (svg$.DefsElement.created = function() {
    svg$.DefsElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.DefsElement.prototype;
  dart.addTypeTests(svg$.DefsElement);
  dart.addTypeCaches(svg$.DefsElement);
  dart.setLibraryUri(svg$.DefsElement, I[157]);
  dart.registerExtension("SVGDefsElement", svg$.DefsElement);
  svg$.DescElement = class DescElement extends svg$.SvgElement {
    static new() {
      return svg$.DescElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("desc"));
    }
  };
  (svg$.DescElement.created = function() {
    svg$.DescElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.DescElement.prototype;
  dart.addTypeTests(svg$.DescElement);
  dart.addTypeCaches(svg$.DescElement);
  dart.setLibraryUri(svg$.DescElement, I[157]);
  dart.registerExtension("SVGDescElement", svg$.DescElement);
  svg$.DiscardElement = class DiscardElement extends svg$.SvgElement {};
  (svg$.DiscardElement.created = function() {
    svg$.DiscardElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.DiscardElement.prototype;
  dart.addTypeTests(svg$.DiscardElement);
  dart.addTypeCaches(svg$.DiscardElement);
  dart.setLibraryUri(svg$.DiscardElement, I[157]);
  dart.registerExtension("SVGDiscardElement", svg$.DiscardElement);
  svg$.EllipseElement = class EllipseElement extends svg$.GeometryElement {
    static new() {
      return svg$.EllipseElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
    }
    get [S$3.$cx]() {
      return this.cx;
    }
    get [S$3.$cy]() {
      return this.cy;
    }
    get [S$3.$rx]() {
      return this.rx;
    }
    get [S$3.$ry]() {
      return this.ry;
    }
  };
  (svg$.EllipseElement.created = function() {
    svg$.EllipseElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.EllipseElement.prototype;
  dart.addTypeTests(svg$.EllipseElement);
  dart.addTypeCaches(svg$.EllipseElement);
  dart.setGetterSignature(svg$.EllipseElement, () => ({
    __proto__: dart.getGetters(svg$.EllipseElement.__proto__),
    [S$3.$cx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$cy]: dart.nullable(svg$.AnimatedLength),
    [S$3.$rx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$ry]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.EllipseElement, I[157]);
  dart.registerExtension("SVGEllipseElement", svg$.EllipseElement);
  svg$.FEBlendElement = class FEBlendElement extends svg$.SvgElement {
    static new() {
      return svg$.FEBlendElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feBlend")) && svg$.FEBlendElement.is(svg$.SvgElement.tag("feBlend"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$in2]() {
      return this.in2;
    }
    get [S.$mode]() {
      return this.mode;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEBlendElement.created = function() {
    svg$.FEBlendElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEBlendElement.prototype;
  dart.addTypeTests(svg$.FEBlendElement);
  dart.addTypeCaches(svg$.FEBlendElement);
  svg$.FEBlendElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEBlendElement, () => ({
    __proto__: dart.getGetters(svg$.FEBlendElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$in2]: dart.nullable(svg$.AnimatedString),
    [S.$mode]: dart.nullable(svg$.AnimatedEnumeration),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEBlendElement, I[157]);
  dart.defineLazy(svg$.FEBlendElement, {
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_DARKEN*/get SVG_FEBLEND_MODE_DARKEN() {
      return 4;
    },
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN*/get SVG_FEBLEND_MODE_LIGHTEN() {
      return 5;
    },
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY*/get SVG_FEBLEND_MODE_MULTIPLY() {
      return 2;
    },
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_NORMAL*/get SVG_FEBLEND_MODE_NORMAL() {
      return 1;
    },
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_SCREEN*/get SVG_FEBLEND_MODE_SCREEN() {
      return 3;
    },
    /*svg$.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN*/get SVG_FEBLEND_MODE_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGFEBlendElement", svg$.FEBlendElement);
  svg$.FEColorMatrixElement = class FEColorMatrixElement extends svg$.SvgElement {
    static new() {
      return svg$.FEColorMatrixElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feColorMatrix")) && svg$.FEColorMatrixElement.is(svg$.SvgElement.tag("feColorMatrix"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S.$type]() {
      return this.type;
    }
    get [$values]() {
      return this.values;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEColorMatrixElement.created = function() {
    svg$.FEColorMatrixElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEColorMatrixElement.prototype;
  dart.addTypeTests(svg$.FEColorMatrixElement);
  dart.addTypeCaches(svg$.FEColorMatrixElement);
  svg$.FEColorMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEColorMatrixElement, () => ({
    __proto__: dart.getGetters(svg$.FEColorMatrixElement.__proto__),
    [S$3.$in1]: svg$.AnimatedString,
    [S.$type]: dart.nullable(svg$.AnimatedEnumeration),
    [$values]: dart.nullable(svg$.AnimatedNumberList),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEColorMatrixElement, I[157]);
  dart.defineLazy(svg$.FEColorMatrixElement, {
    /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE*/get SVG_FECOLORMATRIX_TYPE_HUEROTATE() {
      return 3;
    },
    /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA*/get SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA() {
      return 4;
    },
    /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX*/get SVG_FECOLORMATRIX_TYPE_MATRIX() {
      return 1;
    },
    /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE*/get SVG_FECOLORMATRIX_TYPE_SATURATE() {
      return 2;
    },
    /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN*/get SVG_FECOLORMATRIX_TYPE_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGFEColorMatrixElement", svg$.FEColorMatrixElement);
  svg$.FEComponentTransferElement = class FEComponentTransferElement extends svg$.SvgElement {
    static new() {
      return svg$.FEComponentTransferElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feComponentTransfer")) && svg$.FEComponentTransferElement.is(svg$.SvgElement.tag("feComponentTransfer"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEComponentTransferElement.created = function() {
    svg$.FEComponentTransferElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEComponentTransferElement.prototype;
  dart.addTypeTests(svg$.FEComponentTransferElement);
  dart.addTypeCaches(svg$.FEComponentTransferElement);
  svg$.FEComponentTransferElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEComponentTransferElement, () => ({
    __proto__: dart.getGetters(svg$.FEComponentTransferElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEComponentTransferElement, I[157]);
  dart.registerExtension("SVGFEComponentTransferElement", svg$.FEComponentTransferElement);
  svg$.FECompositeElement = class FECompositeElement extends svg$.SvgElement {
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$in2]() {
      return this.in2;
    }
    get [S$3.$k1]() {
      return this.k1;
    }
    get [S$3.$k2]() {
      return this.k2;
    }
    get [S$3.$k3]() {
      return this.k3;
    }
    get [S$3.$k4]() {
      return this.k4;
    }
    get [S$3.$operator]() {
      return this.operator;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FECompositeElement.created = function() {
    svg$.FECompositeElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FECompositeElement.prototype;
  dart.addTypeTests(svg$.FECompositeElement);
  dart.addTypeCaches(svg$.FECompositeElement);
  svg$.FECompositeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FECompositeElement, () => ({
    __proto__: dart.getGetters(svg$.FECompositeElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$in2]: dart.nullable(svg$.AnimatedString),
    [S$3.$k1]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$k2]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$k3]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$k4]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$operator]: dart.nullable(svg$.AnimatedEnumeration),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FECompositeElement, I[157]);
  dart.defineLazy(svg$.FECompositeElement, {
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC*/get SVG_FECOMPOSITE_OPERATOR_ARITHMETIC() {
      return 6;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP*/get SVG_FECOMPOSITE_OPERATOR_ATOP() {
      return 4;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN*/get SVG_FECOMPOSITE_OPERATOR_IN() {
      return 2;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT*/get SVG_FECOMPOSITE_OPERATOR_OUT() {
      return 3;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER*/get SVG_FECOMPOSITE_OPERATOR_OVER() {
      return 1;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN*/get SVG_FECOMPOSITE_OPERATOR_UNKNOWN() {
      return 0;
    },
    /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR*/get SVG_FECOMPOSITE_OPERATOR_XOR() {
      return 5;
    }
  }, false);
  dart.registerExtension("SVGFECompositeElement", svg$.FECompositeElement);
  svg$.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg$.SvgElement {
    static new() {
      return svg$.FEConvolveMatrixElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feConvolveMatrix")) && svg$.FEConvolveMatrixElement.is(svg$.SvgElement.tag("feConvolveMatrix"));
    }
    get [S$3.$bias]() {
      return this.bias;
    }
    get [S$3.$divisor]() {
      return this.divisor;
    }
    get [S$3.$edgeMode]() {
      return this.edgeMode;
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$kernelMatrix]() {
      return this.kernelMatrix;
    }
    get [S$3.$kernelUnitLengthX]() {
      return this.kernelUnitLengthX;
    }
    get [S$3.$kernelUnitLengthY]() {
      return this.kernelUnitLengthY;
    }
    get [S$3.$orderX]() {
      return this.orderX;
    }
    get [S$3.$orderY]() {
      return this.orderY;
    }
    get [S$3.$preserveAlpha]() {
      return this.preserveAlpha;
    }
    get [S$3.$targetX]() {
      return this.targetX;
    }
    get [S$3.$targetY]() {
      return this.targetY;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEConvolveMatrixElement.created = function() {
    svg$.FEConvolveMatrixElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEConvolveMatrixElement.prototype;
  dart.addTypeTests(svg$.FEConvolveMatrixElement);
  dart.addTypeCaches(svg$.FEConvolveMatrixElement);
  svg$.FEConvolveMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEConvolveMatrixElement, () => ({
    __proto__: dart.getGetters(svg$.FEConvolveMatrixElement.__proto__),
    [S$3.$bias]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$divisor]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$edgeMode]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$kernelMatrix]: dart.nullable(svg$.AnimatedNumberList),
    [S$3.$kernelUnitLengthX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$kernelUnitLengthY]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$orderX]: dart.nullable(svg$.AnimatedInteger),
    [S$3.$orderY]: dart.nullable(svg$.AnimatedInteger),
    [S$3.$preserveAlpha]: dart.nullable(svg$.AnimatedBoolean),
    [S$3.$targetX]: dart.nullable(svg$.AnimatedInteger),
    [S$3.$targetY]: dart.nullable(svg$.AnimatedInteger),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEConvolveMatrixElement, I[157]);
  dart.defineLazy(svg$.FEConvolveMatrixElement, {
    /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE*/get SVG_EDGEMODE_DUPLICATE() {
      return 1;
    },
    /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_NONE*/get SVG_EDGEMODE_NONE() {
      return 3;
    },
    /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN*/get SVG_EDGEMODE_UNKNOWN() {
      return 0;
    },
    /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP*/get SVG_EDGEMODE_WRAP() {
      return 2;
    }
  }, false);
  dart.registerExtension("SVGFEConvolveMatrixElement", svg$.FEConvolveMatrixElement);
  svg$.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg$.SvgElement {
    static new() {
      return svg$.FEDiffuseLightingElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feDiffuseLighting")) && svg$.FEDiffuseLightingElement.is(svg$.SvgElement.tag("feDiffuseLighting"));
    }
    get [S$3.$diffuseConstant]() {
      return this.diffuseConstant;
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$kernelUnitLengthX]() {
      return this.kernelUnitLengthX;
    }
    get [S$3.$kernelUnitLengthY]() {
      return this.kernelUnitLengthY;
    }
    get [S$3.$surfaceScale]() {
      return this.surfaceScale;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEDiffuseLightingElement.created = function() {
    svg$.FEDiffuseLightingElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEDiffuseLightingElement.prototype;
  dart.addTypeTests(svg$.FEDiffuseLightingElement);
  dart.addTypeCaches(svg$.FEDiffuseLightingElement);
  svg$.FEDiffuseLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEDiffuseLightingElement, () => ({
    __proto__: dart.getGetters(svg$.FEDiffuseLightingElement.__proto__),
    [S$3.$diffuseConstant]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$kernelUnitLengthX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$kernelUnitLengthY]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$surfaceScale]: dart.nullable(svg$.AnimatedNumber),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEDiffuseLightingElement, I[157]);
  dart.registerExtension("SVGFEDiffuseLightingElement", svg$.FEDiffuseLightingElement);
  svg$.FEDisplacementMapElement = class FEDisplacementMapElement extends svg$.SvgElement {
    static new() {
      return svg$.FEDisplacementMapElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feDisplacementMap")) && svg$.FEDisplacementMapElement.is(svg$.SvgElement.tag("feDisplacementMap"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$in2]() {
      return this.in2;
    }
    get [S$.$scale]() {
      return this.scale;
    }
    get [S$3.$xChannelSelector]() {
      return this.xChannelSelector;
    }
    get [S$3.$yChannelSelector]() {
      return this.yChannelSelector;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEDisplacementMapElement.created = function() {
    svg$.FEDisplacementMapElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEDisplacementMapElement.prototype;
  dart.addTypeTests(svg$.FEDisplacementMapElement);
  dart.addTypeCaches(svg$.FEDisplacementMapElement);
  svg$.FEDisplacementMapElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEDisplacementMapElement, () => ({
    __proto__: dart.getGetters(svg$.FEDisplacementMapElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$in2]: dart.nullable(svg$.AnimatedString),
    [S$.$scale]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$xChannelSelector]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$yChannelSelector]: dart.nullable(svg$.AnimatedEnumeration),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEDisplacementMapElement, I[157]);
  dart.defineLazy(svg$.FEDisplacementMapElement, {
    /*svg$.FEDisplacementMapElement.SVG_CHANNEL_A*/get SVG_CHANNEL_A() {
      return 4;
    },
    /*svg$.FEDisplacementMapElement.SVG_CHANNEL_B*/get SVG_CHANNEL_B() {
      return 3;
    },
    /*svg$.FEDisplacementMapElement.SVG_CHANNEL_G*/get SVG_CHANNEL_G() {
      return 2;
    },
    /*svg$.FEDisplacementMapElement.SVG_CHANNEL_R*/get SVG_CHANNEL_R() {
      return 1;
    },
    /*svg$.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN*/get SVG_CHANNEL_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGFEDisplacementMapElement", svg$.FEDisplacementMapElement);
  svg$.FEDistantLightElement = class FEDistantLightElement extends svg$.SvgElement {
    static new() {
      return svg$.FEDistantLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feDistantLight")) && svg$.FEDistantLightElement.is(svg$.SvgElement.tag("feDistantLight"));
    }
    get [S$3.$azimuth]() {
      return this.azimuth;
    }
    get [S$3.$elevation]() {
      return this.elevation;
    }
  };
  (svg$.FEDistantLightElement.created = function() {
    svg$.FEDistantLightElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEDistantLightElement.prototype;
  dart.addTypeTests(svg$.FEDistantLightElement);
  dart.addTypeCaches(svg$.FEDistantLightElement);
  dart.setGetterSignature(svg$.FEDistantLightElement, () => ({
    __proto__: dart.getGetters(svg$.FEDistantLightElement.__proto__),
    [S$3.$azimuth]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$elevation]: dart.nullable(svg$.AnimatedNumber)
  }));
  dart.setLibraryUri(svg$.FEDistantLightElement, I[157]);
  dart.registerExtension("SVGFEDistantLightElement", svg$.FEDistantLightElement);
  svg$.FEFloodElement = class FEFloodElement extends svg$.SvgElement {
    static new() {
      return svg$.FEFloodElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feFlood")) && svg$.FEFloodElement.is(svg$.SvgElement.tag("feFlood"));
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEFloodElement.created = function() {
    svg$.FEFloodElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEFloodElement.prototype;
  dart.addTypeTests(svg$.FEFloodElement);
  dart.addTypeCaches(svg$.FEFloodElement);
  svg$.FEFloodElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEFloodElement, () => ({
    __proto__: dart.getGetters(svg$.FEFloodElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEFloodElement, I[157]);
  dart.registerExtension("SVGFEFloodElement", svg$.FEFloodElement);
  svg$._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg$.SvgElement {};
  (svg$._SVGComponentTransferFunctionElement.created = function() {
    svg$._SVGComponentTransferFunctionElement.__proto__.created.call(this);
    ;
  }).prototype = svg$._SVGComponentTransferFunctionElement.prototype;
  dart.addTypeTests(svg$._SVGComponentTransferFunctionElement);
  dart.addTypeCaches(svg$._SVGComponentTransferFunctionElement);
  dart.setLibraryUri(svg$._SVGComponentTransferFunctionElement, I[157]);
  dart.registerExtension("SVGComponentTransferFunctionElement", svg$._SVGComponentTransferFunctionElement);
  svg$.FEFuncAElement = class FEFuncAElement extends svg$._SVGComponentTransferFunctionElement {
    static new() {
      return svg$.FEFuncAElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feFuncA")) && svg$.FEFuncAElement.is(svg$.SvgElement.tag("feFuncA"));
    }
  };
  (svg$.FEFuncAElement.created = function() {
    svg$.FEFuncAElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEFuncAElement.prototype;
  dart.addTypeTests(svg$.FEFuncAElement);
  dart.addTypeCaches(svg$.FEFuncAElement);
  dart.setLibraryUri(svg$.FEFuncAElement, I[157]);
  dart.registerExtension("SVGFEFuncAElement", svg$.FEFuncAElement);
  svg$.FEFuncBElement = class FEFuncBElement extends svg$._SVGComponentTransferFunctionElement {
    static new() {
      return svg$.FEFuncBElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feFuncB")) && svg$.FEFuncBElement.is(svg$.SvgElement.tag("feFuncB"));
    }
  };
  (svg$.FEFuncBElement.created = function() {
    svg$.FEFuncBElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEFuncBElement.prototype;
  dart.addTypeTests(svg$.FEFuncBElement);
  dart.addTypeCaches(svg$.FEFuncBElement);
  dart.setLibraryUri(svg$.FEFuncBElement, I[157]);
  dart.registerExtension("SVGFEFuncBElement", svg$.FEFuncBElement);
  svg$.FEFuncGElement = class FEFuncGElement extends svg$._SVGComponentTransferFunctionElement {
    static new() {
      return svg$.FEFuncGElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feFuncG")) && svg$.FEFuncGElement.is(svg$.SvgElement.tag("feFuncG"));
    }
  };
  (svg$.FEFuncGElement.created = function() {
    svg$.FEFuncGElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEFuncGElement.prototype;
  dart.addTypeTests(svg$.FEFuncGElement);
  dart.addTypeCaches(svg$.FEFuncGElement);
  dart.setLibraryUri(svg$.FEFuncGElement, I[157]);
  dart.registerExtension("SVGFEFuncGElement", svg$.FEFuncGElement);
  svg$.FEFuncRElement = class FEFuncRElement extends svg$._SVGComponentTransferFunctionElement {
    static new() {
      return svg$.FEFuncRElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feFuncR")) && svg$.FEFuncRElement.is(svg$.SvgElement.tag("feFuncR"));
    }
  };
  (svg$.FEFuncRElement.created = function() {
    svg$.FEFuncRElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEFuncRElement.prototype;
  dart.addTypeTests(svg$.FEFuncRElement);
  dart.addTypeCaches(svg$.FEFuncRElement);
  dart.setLibraryUri(svg$.FEFuncRElement, I[157]);
  dart.registerExtension("SVGFEFuncRElement", svg$.FEFuncRElement);
  svg$.FEGaussianBlurElement = class FEGaussianBlurElement extends svg$.SvgElement {
    static new() {
      return svg$.FEGaussianBlurElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feGaussianBlur")) && svg$.FEGaussianBlurElement.is(svg$.SvgElement.tag("feGaussianBlur"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$stdDeviationX]() {
      return this.stdDeviationX;
    }
    get [S$3.$stdDeviationY]() {
      return this.stdDeviationY;
    }
    [S$3.$setStdDeviation](...args) {
      return this.setStdDeviation.apply(this, args);
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEGaussianBlurElement.created = function() {
    svg$.FEGaussianBlurElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEGaussianBlurElement.prototype;
  dart.addTypeTests(svg$.FEGaussianBlurElement);
  dart.addTypeCaches(svg$.FEGaussianBlurElement);
  svg$.FEGaussianBlurElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setMethodSignature(svg$.FEGaussianBlurElement, () => ({
    __proto__: dart.getMethods(svg$.FEGaussianBlurElement.__proto__),
    [S$3.$setStdDeviation]: dart.fnType(dart.void, [core.num, core.num])
  }));
  dart.setGetterSignature(svg$.FEGaussianBlurElement, () => ({
    __proto__: dart.getGetters(svg$.FEGaussianBlurElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$stdDeviationX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$stdDeviationY]: dart.nullable(svg$.AnimatedNumber),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEGaussianBlurElement, I[157]);
  dart.registerExtension("SVGFEGaussianBlurElement", svg$.FEGaussianBlurElement);
  svg$.FEImageElement = class FEImageElement extends svg$.SvgElement {
    static new() {
      return svg$.FEImageElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feImage")) && svg$.FEImageElement.is(svg$.SvgElement.tag("feImage"));
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.FEImageElement.created = function() {
    svg$.FEImageElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEImageElement.prototype;
  dart.addTypeTests(svg$.FEImageElement);
  dart.addTypeCaches(svg$.FEImageElement);
  svg$.FEImageElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes, svg$.UriReference];
  dart.setGetterSignature(svg$.FEImageElement, () => ({
    __proto__: dart.getGetters(svg$.FEImageElement.__proto__),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.FEImageElement, I[157]);
  dart.registerExtension("SVGFEImageElement", svg$.FEImageElement);
  svg$.FEMergeElement = class FEMergeElement extends svg$.SvgElement {
    static new() {
      return svg$.FEMergeElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feMerge")) && svg$.FEMergeElement.is(svg$.SvgElement.tag("feMerge"));
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEMergeElement.created = function() {
    svg$.FEMergeElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEMergeElement.prototype;
  dart.addTypeTests(svg$.FEMergeElement);
  dart.addTypeCaches(svg$.FEMergeElement);
  svg$.FEMergeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEMergeElement, () => ({
    __proto__: dart.getGetters(svg$.FEMergeElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEMergeElement, I[157]);
  dart.registerExtension("SVGFEMergeElement", svg$.FEMergeElement);
  svg$.FEMergeNodeElement = class FEMergeNodeElement extends svg$.SvgElement {
    static new() {
      return svg$.FEMergeNodeElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feMergeNode")) && svg$.FEMergeNodeElement.is(svg$.SvgElement.tag("feMergeNode"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
  };
  (svg$.FEMergeNodeElement.created = function() {
    svg$.FEMergeNodeElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEMergeNodeElement.prototype;
  dart.addTypeTests(svg$.FEMergeNodeElement);
  dart.addTypeCaches(svg$.FEMergeNodeElement);
  dart.setGetterSignature(svg$.FEMergeNodeElement, () => ({
    __proto__: dart.getGetters(svg$.FEMergeNodeElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.FEMergeNodeElement, I[157]);
  dart.registerExtension("SVGFEMergeNodeElement", svg$.FEMergeNodeElement);
  svg$.FEMorphologyElement = class FEMorphologyElement extends svg$.SvgElement {
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$operator]() {
      return this.operator;
    }
    get [S$2.$radiusX]() {
      return this.radiusX;
    }
    get [S$2.$radiusY]() {
      return this.radiusY;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEMorphologyElement.created = function() {
    svg$.FEMorphologyElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEMorphologyElement.prototype;
  dart.addTypeTests(svg$.FEMorphologyElement);
  dart.addTypeCaches(svg$.FEMorphologyElement);
  svg$.FEMorphologyElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEMorphologyElement, () => ({
    __proto__: dart.getGetters(svg$.FEMorphologyElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$operator]: dart.nullable(svg$.AnimatedEnumeration),
    [S$2.$radiusX]: dart.nullable(svg$.AnimatedNumber),
    [S$2.$radiusY]: dart.nullable(svg$.AnimatedNumber),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEMorphologyElement, I[157]);
  dart.defineLazy(svg$.FEMorphologyElement, {
    /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE*/get SVG_MORPHOLOGY_OPERATOR_DILATE() {
      return 2;
    },
    /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE*/get SVG_MORPHOLOGY_OPERATOR_ERODE() {
      return 1;
    },
    /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN*/get SVG_MORPHOLOGY_OPERATOR_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGFEMorphologyElement", svg$.FEMorphologyElement);
  svg$.FEOffsetElement = class FEOffsetElement extends svg$.SvgElement {
    static new() {
      return svg$.FEOffsetElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feOffset")) && svg$.FEOffsetElement.is(svg$.SvgElement.tag("feOffset"));
    }
    get [S$3.$dx]() {
      return this.dx;
    }
    get [S$3.$dy]() {
      return this.dy;
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FEOffsetElement.created = function() {
    svg$.FEOffsetElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEOffsetElement.prototype;
  dart.addTypeTests(svg$.FEOffsetElement);
  dart.addTypeCaches(svg$.FEOffsetElement);
  svg$.FEOffsetElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FEOffsetElement, () => ({
    __proto__: dart.getGetters(svg$.FEOffsetElement.__proto__),
    [S$3.$dx]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$dy]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FEOffsetElement, I[157]);
  dart.registerExtension("SVGFEOffsetElement", svg$.FEOffsetElement);
  svg$.FEPointLightElement = class FEPointLightElement extends svg$.SvgElement {
    static new() {
      return svg$.FEPointLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("fePointLight")) && svg$.FEPointLightElement.is(svg$.SvgElement.tag("fePointLight"));
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  (svg$.FEPointLightElement.created = function() {
    svg$.FEPointLightElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FEPointLightElement.prototype;
  dart.addTypeTests(svg$.FEPointLightElement);
  dart.addTypeCaches(svg$.FEPointLightElement);
  dart.setGetterSignature(svg$.FEPointLightElement, () => ({
    __proto__: dart.getGetters(svg$.FEPointLightElement.__proto__),
    [S$.$x]: dart.nullable(svg$.AnimatedNumber),
    [S$.$y]: dart.nullable(svg$.AnimatedNumber),
    [S$.$z]: dart.nullable(svg$.AnimatedNumber)
  }));
  dart.setLibraryUri(svg$.FEPointLightElement, I[157]);
  dart.registerExtension("SVGFEPointLightElement", svg$.FEPointLightElement);
  svg$.FESpecularLightingElement = class FESpecularLightingElement extends svg$.SvgElement {
    static new() {
      return svg$.FESpecularLightingElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feSpecularLighting")) && svg$.FESpecularLightingElement.is(svg$.SvgElement.tag("feSpecularLighting"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [S$3.$kernelUnitLengthX]() {
      return this.kernelUnitLengthX;
    }
    get [S$3.$kernelUnitLengthY]() {
      return this.kernelUnitLengthY;
    }
    get [S$3.$specularConstant]() {
      return this.specularConstant;
    }
    get [S$3.$specularExponent]() {
      return this.specularExponent;
    }
    get [S$3.$surfaceScale]() {
      return this.surfaceScale;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FESpecularLightingElement.created = function() {
    svg$.FESpecularLightingElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FESpecularLightingElement.prototype;
  dart.addTypeTests(svg$.FESpecularLightingElement);
  dart.addTypeCaches(svg$.FESpecularLightingElement);
  svg$.FESpecularLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FESpecularLightingElement, () => ({
    __proto__: dart.getGetters(svg$.FESpecularLightingElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [S$3.$kernelUnitLengthX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$kernelUnitLengthY]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$specularConstant]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$specularExponent]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$surfaceScale]: dart.nullable(svg$.AnimatedNumber),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FESpecularLightingElement, I[157]);
  dart.registerExtension("SVGFESpecularLightingElement", svg$.FESpecularLightingElement);
  svg$.FESpotLightElement = class FESpotLightElement extends svg$.SvgElement {
    static new() {
      return svg$.FESpotLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feSpotLight")) && svg$.FESpotLightElement.is(svg$.SvgElement.tag("feSpotLight"));
    }
    get [S$3.$limitingConeAngle]() {
      return this.limitingConeAngle;
    }
    get [S$3.$pointsAtX]() {
      return this.pointsAtX;
    }
    get [S$3.$pointsAtY]() {
      return this.pointsAtY;
    }
    get [S$3.$pointsAtZ]() {
      return this.pointsAtZ;
    }
    get [S$3.$specularExponent]() {
      return this.specularExponent;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$z]() {
      return this.z;
    }
  };
  (svg$.FESpotLightElement.created = function() {
    svg$.FESpotLightElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FESpotLightElement.prototype;
  dart.addTypeTests(svg$.FESpotLightElement);
  dart.addTypeCaches(svg$.FESpotLightElement);
  dart.setGetterSignature(svg$.FESpotLightElement, () => ({
    __proto__: dart.getGetters(svg$.FESpotLightElement.__proto__),
    [S$3.$limitingConeAngle]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$pointsAtX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$pointsAtY]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$pointsAtZ]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$specularExponent]: dart.nullable(svg$.AnimatedNumber),
    [S$.$x]: dart.nullable(svg$.AnimatedNumber),
    [S$.$y]: dart.nullable(svg$.AnimatedNumber),
    [S$.$z]: dart.nullable(svg$.AnimatedNumber)
  }));
  dart.setLibraryUri(svg$.FESpotLightElement, I[157]);
  dart.registerExtension("SVGFESpotLightElement", svg$.FESpotLightElement);
  svg$.FETileElement = class FETileElement extends svg$.SvgElement {
    static new() {
      return svg$.FETileElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feTile")) && svg$.FETileElement.is(svg$.SvgElement.tag("feTile"));
    }
    get [S$3.$in1]() {
      return this.in1;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FETileElement.created = function() {
    svg$.FETileElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FETileElement.prototype;
  dart.addTypeTests(svg$.FETileElement);
  dart.addTypeCaches(svg$.FETileElement);
  svg$.FETileElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FETileElement, () => ({
    __proto__: dart.getGetters(svg$.FETileElement.__proto__),
    [S$3.$in1]: dart.nullable(svg$.AnimatedString),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FETileElement, I[157]);
  dart.registerExtension("SVGFETileElement", svg$.FETileElement);
  svg$.FETurbulenceElement = class FETurbulenceElement extends svg$.SvgElement {
    static new() {
      return svg$.FETurbulenceElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("feTurbulence")) && svg$.FETurbulenceElement.is(svg$.SvgElement.tag("feTurbulence"));
    }
    get [S$3.$baseFrequencyX]() {
      return this.baseFrequencyX;
    }
    get [S$3.$baseFrequencyY]() {
      return this.baseFrequencyY;
    }
    get [S$3.$numOctaves]() {
      return this.numOctaves;
    }
    get [S$3.$seed]() {
      return this.seed;
    }
    get [S$3.$stitchTiles]() {
      return this.stitchTiles;
    }
    get [S.$type]() {
      return this.type;
    }
    get [$height]() {
      return this.height;
    }
    get [S.$result]() {
      return this.result;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.FETurbulenceElement.created = function() {
    svg$.FETurbulenceElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FETurbulenceElement.prototype;
  dart.addTypeTests(svg$.FETurbulenceElement);
  dart.addTypeCaches(svg$.FETurbulenceElement);
  svg$.FETurbulenceElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setGetterSignature(svg$.FETurbulenceElement, () => ({
    __proto__: dart.getGetters(svg$.FETurbulenceElement.__proto__),
    [S$3.$baseFrequencyX]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$baseFrequencyY]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$numOctaves]: dart.nullable(svg$.AnimatedInteger),
    [S$3.$seed]: dart.nullable(svg$.AnimatedNumber),
    [S$3.$stitchTiles]: dart.nullable(svg$.AnimatedEnumeration),
    [S.$type]: dart.nullable(svg$.AnimatedEnumeration),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FETurbulenceElement, I[157]);
  dart.defineLazy(svg$.FETurbulenceElement, {
    /*svg$.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH*/get SVG_STITCHTYPE_NOSTITCH() {
      return 2;
    },
    /*svg$.FETurbulenceElement.SVG_STITCHTYPE_STITCH*/get SVG_STITCHTYPE_STITCH() {
      return 1;
    },
    /*svg$.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN*/get SVG_STITCHTYPE_UNKNOWN() {
      return 0;
    },
    /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE*/get SVG_TURBULENCE_TYPE_FRACTALNOISE() {
      return 1;
    },
    /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE*/get SVG_TURBULENCE_TYPE_TURBULENCE() {
      return 2;
    },
    /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN*/get SVG_TURBULENCE_TYPE_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGFETurbulenceElement", svg$.FETurbulenceElement);
  svg$.FilterElement = class FilterElement extends svg$.SvgElement {
    static new() {
      return svg$.FilterElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("filter"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("filter")) && svg$.FilterElement.is(svg$.SvgElement.tag("filter"));
    }
    get [S$3.$filterUnits]() {
      return this.filterUnits;
    }
    get [$height]() {
      return this.height;
    }
    get [S$3.$primitiveUnits]() {
      return this.primitiveUnits;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.FilterElement.created = function() {
    svg$.FilterElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.FilterElement.prototype;
  dart.addTypeTests(svg$.FilterElement);
  dart.addTypeCaches(svg$.FilterElement);
  svg$.FilterElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$.FilterElement, () => ({
    __proto__: dart.getGetters(svg$.FilterElement.__proto__),
    [S$3.$filterUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S$3.$primitiveUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.FilterElement, I[157]);
  dart.registerExtension("SVGFilterElement", svg$.FilterElement);
  svg$.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
    get height() {
      return this.height;
    }
    get result() {
      return this.result;
    }
    get width() {
      return this.width;
    }
    get x() {
      return this.x;
    }
    get y() {
      return this.y;
    }
  };
  dart.addTypeTests(svg$.FilterPrimitiveStandardAttributes);
  dart.addTypeCaches(svg$.FilterPrimitiveStandardAttributes);
  dart.setGetterSignature(svg$.FilterPrimitiveStandardAttributes, () => ({
    __proto__: dart.getGetters(svg$.FilterPrimitiveStandardAttributes.__proto__),
    height: dart.nullable(svg$.AnimatedLength),
    [$height]: dart.nullable(svg$.AnimatedLength),
    result: dart.nullable(svg$.AnimatedString),
    [S.$result]: dart.nullable(svg$.AnimatedString),
    width: dart.nullable(svg$.AnimatedLength),
    [$width]: dart.nullable(svg$.AnimatedLength),
    x: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    y: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.FilterPrimitiveStandardAttributes, I[157]);
  dart.defineExtensionAccessors(svg$.FilterPrimitiveStandardAttributes, [
    'height',
    'result',
    'width',
    'x',
    'y'
  ]);
  svg$.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
    get preserveAspectRatio() {
      return this.preserveAspectRatio;
    }
    get viewBox() {
      return this.viewBox;
    }
  };
  dart.addTypeTests(svg$.FitToViewBox);
  dart.addTypeCaches(svg$.FitToViewBox);
  dart.setGetterSignature(svg$.FitToViewBox, () => ({
    __proto__: dart.getGetters(svg$.FitToViewBox.__proto__),
    preserveAspectRatio: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    viewBox: dart.nullable(svg$.AnimatedRect),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect)
  }));
  dart.setLibraryUri(svg$.FitToViewBox, I[157]);
  dart.defineExtensionAccessors(svg$.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
  svg$.ForeignObjectElement = class ForeignObjectElement extends svg$.GraphicsElement {
    static new() {
      return svg$.ForeignObjectElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("foreignObject")) && svg$.ForeignObjectElement.is(svg$.SvgElement.tag("foreignObject"));
    }
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.ForeignObjectElement.created = function() {
    svg$.ForeignObjectElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.ForeignObjectElement.prototype;
  dart.addTypeTests(svg$.ForeignObjectElement);
  dart.addTypeCaches(svg$.ForeignObjectElement);
  dart.setGetterSignature(svg$.ForeignObjectElement, () => ({
    __proto__: dart.getGetters(svg$.ForeignObjectElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.ForeignObjectElement, I[157]);
  dart.registerExtension("SVGForeignObjectElement", svg$.ForeignObjectElement);
  svg$.GElement = class GElement extends svg$.GraphicsElement {
    static new() {
      return svg$.GElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("g"));
    }
  };
  (svg$.GElement.created = function() {
    svg$.GElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.GElement.prototype;
  dart.addTypeTests(svg$.GElement);
  dart.addTypeCaches(svg$.GElement);
  dart.setLibraryUri(svg$.GElement, I[157]);
  dart.registerExtension("SVGGElement", svg$.GElement);
  svg$.ImageElement = class ImageElement extends svg$.GraphicsElement {
    static new() {
      return svg$.ImageElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("image"));
    }
    get [S$1.$async]() {
      return this.async;
    }
    set [S$1.$async](value) {
      this.async = value;
    }
    get [$height]() {
      return this.height;
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    [S$1.$decode]() {
      return js_util.promiseToFuture(dart.dynamic, this.decode());
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.ImageElement.created = function() {
    svg$.ImageElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.ImageElement.prototype;
  dart.addTypeTests(svg$.ImageElement);
  dart.addTypeCaches(svg$.ImageElement);
  svg$.ImageElement[dart.implements] = () => [svg$.UriReference];
  dart.setMethodSignature(svg$.ImageElement, () => ({
    __proto__: dart.getMethods(svg$.ImageElement.__proto__),
    [S$1.$decode]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(svg$.ImageElement, () => ({
    __proto__: dart.getGetters(svg$.ImageElement.__proto__),
    [S$1.$async]: dart.nullable(core.String),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setSetterSignature(svg$.ImageElement, () => ({
    __proto__: dart.getSetters(svg$.ImageElement.__proto__),
    [S$1.$async]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(svg$.ImageElement, I[157]);
  dart.registerExtension("SVGImageElement", svg$.ImageElement);
  svg$.Length = class Length extends _interceptors.Interceptor {
    get [S$3.$unitType]() {
      return this.unitType;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    get [S$3.$valueAsString]() {
      return this.valueAsString;
    }
    set [S$3.$valueAsString](value) {
      this.valueAsString = value;
    }
    get [S$3.$valueInSpecifiedUnits]() {
      return this.valueInSpecifiedUnits;
    }
    set [S$3.$valueInSpecifiedUnits](value) {
      this.valueInSpecifiedUnits = value;
    }
    [S$3.$convertToSpecifiedUnits](...args) {
      return this.convertToSpecifiedUnits.apply(this, args);
    }
    [S$3.$newValueSpecifiedUnits](...args) {
      return this.newValueSpecifiedUnits.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.Length);
  dart.addTypeCaches(svg$.Length);
  dart.setMethodSignature(svg$.Length, () => ({
    __proto__: dart.getMethods(svg$.Length.__proto__),
    [S$3.$convertToSpecifiedUnits]: dart.fnType(dart.void, [core.int]),
    [S$3.$newValueSpecifiedUnits]: dart.fnType(dart.void, [core.int, core.num])
  }));
  dart.setGetterSignature(svg$.Length, () => ({
    __proto__: dart.getGetters(svg$.Length.__proto__),
    [S$3.$unitType]: dart.nullable(core.int),
    [S.$value]: dart.nullable(core.num),
    [S$3.$valueAsString]: dart.nullable(core.String),
    [S$3.$valueInSpecifiedUnits]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Length, () => ({
    __proto__: dart.getSetters(svg$.Length.__proto__),
    [S.$value]: dart.nullable(core.num),
    [S$3.$valueAsString]: dart.nullable(core.String),
    [S$3.$valueInSpecifiedUnits]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Length, I[157]);
  dart.defineLazy(svg$.Length, {
    /*svg$.Length.SVG_LENGTHTYPE_CM*/get SVG_LENGTHTYPE_CM() {
      return 6;
    },
    /*svg$.Length.SVG_LENGTHTYPE_EMS*/get SVG_LENGTHTYPE_EMS() {
      return 3;
    },
    /*svg$.Length.SVG_LENGTHTYPE_EXS*/get SVG_LENGTHTYPE_EXS() {
      return 4;
    },
    /*svg$.Length.SVG_LENGTHTYPE_IN*/get SVG_LENGTHTYPE_IN() {
      return 8;
    },
    /*svg$.Length.SVG_LENGTHTYPE_MM*/get SVG_LENGTHTYPE_MM() {
      return 7;
    },
    /*svg$.Length.SVG_LENGTHTYPE_NUMBER*/get SVG_LENGTHTYPE_NUMBER() {
      return 1;
    },
    /*svg$.Length.SVG_LENGTHTYPE_PC*/get SVG_LENGTHTYPE_PC() {
      return 10;
    },
    /*svg$.Length.SVG_LENGTHTYPE_PERCENTAGE*/get SVG_LENGTHTYPE_PERCENTAGE() {
      return 2;
    },
    /*svg$.Length.SVG_LENGTHTYPE_PT*/get SVG_LENGTHTYPE_PT() {
      return 9;
    },
    /*svg$.Length.SVG_LENGTHTYPE_PX*/get SVG_LENGTHTYPE_PX() {
      return 5;
    },
    /*svg$.Length.SVG_LENGTHTYPE_UNKNOWN*/get SVG_LENGTHTYPE_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGLength", svg$.Length);
  const Interceptor_ListMixin$36$13 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$13.new = function() {
    Interceptor_ListMixin$36$13.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$13.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$13, collection.ListMixin$(svg$.Length));
  const Interceptor_ImmutableListMixin$36$13 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$13 {};
  (Interceptor_ImmutableListMixin$36$13.new = function() {
    Interceptor_ImmutableListMixin$36$13.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$13.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$13, html$.ImmutableListMixin$(svg$.Length));
  svg$.LengthList = class LengthList extends Interceptor_ImmutableListMixin$36$13 {
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfItems]() {
      return this.numberOfItems;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[156], 2053, 26, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this.getItem(index);
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[156], 2059, 25, "index");
      svg$.Length.as(value);
      if (value == null) dart.nullFailed(I[156], 2059, 39, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[156], 2065, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[156], 2093, 24, "index");
      return this[$_get](index);
    }
    [S$3.__setter__$1](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$3.$appendItem](...args) {
      return this.appendItem.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$3.$getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$3.$initialize](...args) {
      return this.initialize.apply(this, args);
    }
    [S$3.$insertItemBefore](...args) {
      return this.insertItemBefore.apply(this, args);
    }
    [S$3.$removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$3.$replaceItem](...args) {
      return this.replaceItem.apply(this, args);
    }
  };
  svg$.LengthList.prototype[dart.isList] = true;
  dart.addTypeTests(svg$.LengthList);
  dart.addTypeCaches(svg$.LengthList);
  svg$.LengthList[dart.implements] = () => [core.List$(svg$.Length)];
  dart.setMethodSignature(svg$.LengthList, () => ({
    __proto__: dart.getMethods(svg$.LengthList.__proto__),
    [$_get]: dart.fnType(svg$.Length, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$3.__setter__$1]: dart.fnType(dart.void, [core.int, svg$.Length]),
    [S$3.$appendItem]: dart.fnType(svg$.Length, [svg$.Length]),
    [S$3.$getItem]: dart.fnType(svg$.Length, [core.int]),
    [S$3.$initialize]: dart.fnType(svg$.Length, [svg$.Length]),
    [S$3.$insertItemBefore]: dart.fnType(svg$.Length, [svg$.Length, core.int]),
    [S$3.$removeItem]: dart.fnType(svg$.Length, [core.int]),
    [S$3.$replaceItem]: dart.fnType(svg$.Length, [svg$.Length, core.int])
  }));
  dart.setGetterSignature(svg$.LengthList, () => ({
    __proto__: dart.getGetters(svg$.LengthList.__proto__),
    [$length]: core.int,
    [S$3.$numberOfItems]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.LengthList, () => ({
    __proto__: dart.getSetters(svg$.LengthList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(svg$.LengthList, I[157]);
  dart.registerExtension("SVGLengthList", svg$.LengthList);
  svg$.LineElement = class LineElement extends svg$.GeometryElement {
    static new() {
      return svg$.LineElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("line"));
    }
    get [S$3.$x1]() {
      return this.x1;
    }
    get [S$3.$x2]() {
      return this.x2;
    }
    get [S$3.$y1]() {
      return this.y1;
    }
    get [S$3.$y2]() {
      return this.y2;
    }
  };
  (svg$.LineElement.created = function() {
    svg$.LineElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.LineElement.prototype;
  dart.addTypeTests(svg$.LineElement);
  dart.addTypeCaches(svg$.LineElement);
  dart.setGetterSignature(svg$.LineElement, () => ({
    __proto__: dart.getGetters(svg$.LineElement.__proto__),
    [S$3.$x1]: dart.nullable(svg$.AnimatedLength),
    [S$3.$x2]: dart.nullable(svg$.AnimatedLength),
    [S$3.$y1]: dart.nullable(svg$.AnimatedLength),
    [S$3.$y2]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.LineElement, I[157]);
  dart.registerExtension("SVGLineElement", svg$.LineElement);
  svg$._GradientElement = class _GradientElement extends svg$.SvgElement {
    get [S$3.$gradientTransform]() {
      return this.gradientTransform;
    }
    get [S$3.$gradientUnits]() {
      return this.gradientUnits;
    }
    get [S$3.$spreadMethod]() {
      return this.spreadMethod;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$._GradientElement.created = function() {
    svg$._GradientElement.__proto__.created.call(this);
    ;
  }).prototype = svg$._GradientElement.prototype;
  dart.addTypeTests(svg$._GradientElement);
  dart.addTypeCaches(svg$._GradientElement);
  svg$._GradientElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$._GradientElement, () => ({
    __proto__: dart.getGetters(svg$._GradientElement.__proto__),
    [S$3.$gradientTransform]: dart.nullable(svg$.AnimatedTransformList),
    [S$3.$gradientUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$spreadMethod]: dart.nullable(svg$.AnimatedEnumeration),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$._GradientElement, I[157]);
  dart.defineLazy(svg$._GradientElement, {
    /*svg$._GradientElement.SVG_SPREADMETHOD_PAD*/get SVG_SPREADMETHOD_PAD() {
      return 1;
    },
    /*svg$._GradientElement.SVG_SPREADMETHOD_REFLECT*/get SVG_SPREADMETHOD_REFLECT() {
      return 2;
    },
    /*svg$._GradientElement.SVG_SPREADMETHOD_REPEAT*/get SVG_SPREADMETHOD_REPEAT() {
      return 3;
    },
    /*svg$._GradientElement.SVG_SPREADMETHOD_UNKNOWN*/get SVG_SPREADMETHOD_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGGradientElement", svg$._GradientElement);
  svg$.LinearGradientElement = class LinearGradientElement extends svg$._GradientElement {
    static new() {
      return svg$.LinearGradientElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
    }
    get [S$3.$x1]() {
      return this.x1;
    }
    get [S$3.$x2]() {
      return this.x2;
    }
    get [S$3.$y1]() {
      return this.y1;
    }
    get [S$3.$y2]() {
      return this.y2;
    }
  };
  (svg$.LinearGradientElement.created = function() {
    svg$.LinearGradientElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.LinearGradientElement.prototype;
  dart.addTypeTests(svg$.LinearGradientElement);
  dart.addTypeCaches(svg$.LinearGradientElement);
  dart.setGetterSignature(svg$.LinearGradientElement, () => ({
    __proto__: dart.getGetters(svg$.LinearGradientElement.__proto__),
    [S$3.$x1]: dart.nullable(svg$.AnimatedLength),
    [S$3.$x2]: dart.nullable(svg$.AnimatedLength),
    [S$3.$y1]: dart.nullable(svg$.AnimatedLength),
    [S$3.$y2]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.LinearGradientElement, I[157]);
  dart.registerExtension("SVGLinearGradientElement", svg$.LinearGradientElement);
  svg$.MarkerElement = class MarkerElement extends svg$.SvgElement {
    static new() {
      return svg$.MarkerElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("marker"));
    }
    get [S$3.$markerHeight]() {
      return this.markerHeight;
    }
    get [S$3.$markerUnits]() {
      return this.markerUnits;
    }
    get [S$3.$markerWidth]() {
      return this.markerWidth;
    }
    get [S$3.$orientAngle]() {
      return this.orientAngle;
    }
    get [S$3.$orientType]() {
      return this.orientType;
    }
    get [S$3.$refX]() {
      return this.refX;
    }
    get [S$3.$refY]() {
      return this.refY;
    }
    [S$3.$setOrientToAngle](...args) {
      return this.setOrientToAngle.apply(this, args);
    }
    [S$3.$setOrientToAuto](...args) {
      return this.setOrientToAuto.apply(this, args);
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [S$3.$viewBox]() {
      return this.viewBox;
    }
  };
  (svg$.MarkerElement.created = function() {
    svg$.MarkerElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.MarkerElement.prototype;
  dart.addTypeTests(svg$.MarkerElement);
  dart.addTypeCaches(svg$.MarkerElement);
  svg$.MarkerElement[dart.implements] = () => [svg$.FitToViewBox];
  dart.setMethodSignature(svg$.MarkerElement, () => ({
    __proto__: dart.getMethods(svg$.MarkerElement.__proto__),
    [S$3.$setOrientToAngle]: dart.fnType(dart.void, [svg$.Angle]),
    [S$3.$setOrientToAuto]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(svg$.MarkerElement, () => ({
    __proto__: dart.getGetters(svg$.MarkerElement.__proto__),
    [S$3.$markerHeight]: svg$.AnimatedLength,
    [S$3.$markerUnits]: svg$.AnimatedEnumeration,
    [S$3.$markerWidth]: svg$.AnimatedLength,
    [S$3.$orientAngle]: dart.nullable(svg$.AnimatedAngle),
    [S$3.$orientType]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$refX]: svg$.AnimatedLength,
    [S$3.$refY]: svg$.AnimatedLength,
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect)
  }));
  dart.setLibraryUri(svg$.MarkerElement, I[157]);
  dart.defineLazy(svg$.MarkerElement, {
    /*svg$.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH*/get SVG_MARKERUNITS_STROKEWIDTH() {
      return 2;
    },
    /*svg$.MarkerElement.SVG_MARKERUNITS_UNKNOWN*/get SVG_MARKERUNITS_UNKNOWN() {
      return 0;
    },
    /*svg$.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE*/get SVG_MARKERUNITS_USERSPACEONUSE() {
      return 1;
    },
    /*svg$.MarkerElement.SVG_MARKER_ORIENT_ANGLE*/get SVG_MARKER_ORIENT_ANGLE() {
      return 2;
    },
    /*svg$.MarkerElement.SVG_MARKER_ORIENT_AUTO*/get SVG_MARKER_ORIENT_AUTO() {
      return 1;
    },
    /*svg$.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN*/get SVG_MARKER_ORIENT_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGMarkerElement", svg$.MarkerElement);
  svg$.MaskElement = class MaskElement extends svg$.SvgElement {
    static new() {
      return svg$.MaskElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("mask"));
    }
    get [$height]() {
      return this.height;
    }
    get [S$3.$maskContentUnits]() {
      return this.maskContentUnits;
    }
    get [S$3.$maskUnits]() {
      return this.maskUnits;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$3.$requiredExtensions]() {
      return this.requiredExtensions;
    }
    get [S$3.$systemLanguage]() {
      return this.systemLanguage;
    }
  };
  (svg$.MaskElement.created = function() {
    svg$.MaskElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.MaskElement.prototype;
  dart.addTypeTests(svg$.MaskElement);
  dart.addTypeCaches(svg$.MaskElement);
  svg$.MaskElement[dart.implements] = () => [svg$.Tests];
  dart.setGetterSignature(svg$.MaskElement, () => ({
    __proto__: dart.getGetters(svg$.MaskElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S$3.$maskContentUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$maskUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$3.$requiredExtensions]: dart.nullable(svg$.StringList),
    [S$3.$systemLanguage]: dart.nullable(svg$.StringList)
  }));
  dart.setLibraryUri(svg$.MaskElement, I[157]);
  dart.registerExtension("SVGMaskElement", svg$.MaskElement);
  svg$.Matrix = class Matrix extends _interceptors.Interceptor {
    get [S$1.$a]() {
      return this.a;
    }
    set [S$1.$a](value) {
      this.a = value;
    }
    get [S$1.$b]() {
      return this.b;
    }
    set [S$1.$b](value) {
      this.b = value;
    }
    get [S$1.$c]() {
      return this.c;
    }
    set [S$1.$c](value) {
      this.c = value;
    }
    get [S$1.$d]() {
      return this.d;
    }
    set [S$1.$d](value) {
      this.d = value;
    }
    get [S$1.$e]() {
      return this.e;
    }
    set [S$1.$e](value) {
      this.e = value;
    }
    get [S$1.$f]() {
      return this.f;
    }
    set [S$1.$f](value) {
      this.f = value;
    }
    [S$1.$flipX](...args) {
      return this.flipX.apply(this, args);
    }
    [S$1.$flipY](...args) {
      return this.flipY.apply(this, args);
    }
    [S$1.$inverse](...args) {
      return this.inverse.apply(this, args);
    }
    [S$1.$multiply](...args) {
      return this.multiply.apply(this, args);
    }
    [S$.$rotate](...args) {
      return this.rotate.apply(this, args);
    }
    [S$1.$rotateFromVector](...args) {
      return this.rotateFromVector.apply(this, args);
    }
    [S$.$scale](...args) {
      return this.scale.apply(this, args);
    }
    [S$3.$scaleNonUniform](...args) {
      return this.scaleNonUniform.apply(this, args);
    }
    [S$1.$skewX](...args) {
      return this.skewX.apply(this, args);
    }
    [S$1.$skewY](...args) {
      return this.skewY.apply(this, args);
    }
    [S.$translate](...args) {
      return this.translate.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.Matrix);
  dart.addTypeCaches(svg$.Matrix);
  dart.setMethodSignature(svg$.Matrix, () => ({
    __proto__: dart.getMethods(svg$.Matrix.__proto__),
    [S$1.$flipX]: dart.fnType(svg$.Matrix, []),
    [S$1.$flipY]: dart.fnType(svg$.Matrix, []),
    [S$1.$inverse]: dart.fnType(svg$.Matrix, []),
    [S$1.$multiply]: dart.fnType(svg$.Matrix, [svg$.Matrix]),
    [S$.$rotate]: dart.fnType(svg$.Matrix, [core.num]),
    [S$1.$rotateFromVector]: dart.fnType(svg$.Matrix, [core.num, core.num]),
    [S$.$scale]: dart.fnType(svg$.Matrix, [core.num]),
    [S$3.$scaleNonUniform]: dart.fnType(svg$.Matrix, [core.num, core.num]),
    [S$1.$skewX]: dart.fnType(svg$.Matrix, [core.num]),
    [S$1.$skewY]: dart.fnType(svg$.Matrix, [core.num]),
    [S.$translate]: dart.fnType(svg$.Matrix, [core.num, core.num])
  }));
  dart.setGetterSignature(svg$.Matrix, () => ({
    __proto__: dart.getGetters(svg$.Matrix.__proto__),
    [S$1.$a]: dart.nullable(core.num),
    [S$1.$b]: dart.nullable(core.num),
    [S$1.$c]: dart.nullable(core.num),
    [S$1.$d]: dart.nullable(core.num),
    [S$1.$e]: dart.nullable(core.num),
    [S$1.$f]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Matrix, () => ({
    __proto__: dart.getSetters(svg$.Matrix.__proto__),
    [S$1.$a]: dart.nullable(core.num),
    [S$1.$b]: dart.nullable(core.num),
    [S$1.$c]: dart.nullable(core.num),
    [S$1.$d]: dart.nullable(core.num),
    [S$1.$e]: dart.nullable(core.num),
    [S$1.$f]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Matrix, I[157]);
  dart.registerExtension("SVGMatrix", svg$.Matrix);
  svg$.MetadataElement = class MetadataElement extends svg$.SvgElement {};
  (svg$.MetadataElement.created = function() {
    svg$.MetadataElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.MetadataElement.prototype;
  dart.addTypeTests(svg$.MetadataElement);
  dart.addTypeCaches(svg$.MetadataElement);
  dart.setLibraryUri(svg$.MetadataElement, I[157]);
  dart.registerExtension("SVGMetadataElement", svg$.MetadataElement);
  svg$.Number = class Number extends _interceptors.Interceptor {
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
  };
  dart.addTypeTests(svg$.Number);
  dart.addTypeCaches(svg$.Number);
  dart.setGetterSignature(svg$.Number, () => ({
    __proto__: dart.getGetters(svg$.Number.__proto__),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Number, () => ({
    __proto__: dart.getSetters(svg$.Number.__proto__),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Number, I[157]);
  dart.registerExtension("SVGNumber", svg$.Number);
  const Interceptor_ListMixin$36$14 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$14.new = function() {
    Interceptor_ListMixin$36$14.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$14.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$14, collection.ListMixin$(svg$.Number));
  const Interceptor_ImmutableListMixin$36$14 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$14 {};
  (Interceptor_ImmutableListMixin$36$14.new = function() {
    Interceptor_ImmutableListMixin$36$14.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$14.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$14, html$.ImmutableListMixin$(svg$.Number));
  svg$.NumberList = class NumberList extends Interceptor_ImmutableListMixin$36$14 {
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfItems]() {
      return this.numberOfItems;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[156], 2378, 26, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this.getItem(index);
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[156], 2384, 25, "index");
      svg$.Number.as(value);
      if (value == null) dart.nullFailed(I[156], 2384, 39, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[156], 2390, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[156], 2418, 24, "index");
      return this[$_get](index);
    }
    [S$3.__setter__$1](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$3.$appendItem](...args) {
      return this.appendItem.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$3.$getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$3.$initialize](...args) {
      return this.initialize.apply(this, args);
    }
    [S$3.$insertItemBefore](...args) {
      return this.insertItemBefore.apply(this, args);
    }
    [S$3.$removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$3.$replaceItem](...args) {
      return this.replaceItem.apply(this, args);
    }
  };
  svg$.NumberList.prototype[dart.isList] = true;
  dart.addTypeTests(svg$.NumberList);
  dart.addTypeCaches(svg$.NumberList);
  svg$.NumberList[dart.implements] = () => [core.List$(svg$.Number)];
  dart.setMethodSignature(svg$.NumberList, () => ({
    __proto__: dart.getMethods(svg$.NumberList.__proto__),
    [$_get]: dart.fnType(svg$.Number, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$3.__setter__$1]: dart.fnType(dart.void, [core.int, svg$.Number]),
    [S$3.$appendItem]: dart.fnType(svg$.Number, [svg$.Number]),
    [S$3.$getItem]: dart.fnType(svg$.Number, [core.int]),
    [S$3.$initialize]: dart.fnType(svg$.Number, [svg$.Number]),
    [S$3.$insertItemBefore]: dart.fnType(svg$.Number, [svg$.Number, core.int]),
    [S$3.$removeItem]: dart.fnType(svg$.Number, [core.int]),
    [S$3.$replaceItem]: dart.fnType(svg$.Number, [svg$.Number, core.int])
  }));
  dart.setGetterSignature(svg$.NumberList, () => ({
    __proto__: dart.getGetters(svg$.NumberList.__proto__),
    [$length]: core.int,
    [S$3.$numberOfItems]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.NumberList, () => ({
    __proto__: dart.getSetters(svg$.NumberList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(svg$.NumberList, I[157]);
  dart.registerExtension("SVGNumberList", svg$.NumberList);
  svg$.PathElement = class PathElement extends svg$.GeometryElement {
    static new() {
      return svg$.PathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("path"));
    }
  };
  (svg$.PathElement.created = function() {
    svg$.PathElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.PathElement.prototype;
  dart.addTypeTests(svg$.PathElement);
  dart.addTypeCaches(svg$.PathElement);
  dart.setLibraryUri(svg$.PathElement, I[157]);
  dart.registerExtension("SVGPathElement", svg$.PathElement);
  svg$.PatternElement = class PatternElement extends svg$.SvgElement {
    static new() {
      return svg$.PatternElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
    }
    get [$height]() {
      return this.height;
    }
    get [S$3.$patternContentUnits]() {
      return this.patternContentUnits;
    }
    get [S$3.$patternTransform]() {
      return this.patternTransform;
    }
    get [S$3.$patternUnits]() {
      return this.patternUnits;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [S$3.$viewBox]() {
      return this.viewBox;
    }
    get [S$3.$requiredExtensions]() {
      return this.requiredExtensions;
    }
    get [S$3.$systemLanguage]() {
      return this.systemLanguage;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.PatternElement.created = function() {
    svg$.PatternElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.PatternElement.prototype;
  dart.addTypeTests(svg$.PatternElement);
  dart.addTypeCaches(svg$.PatternElement);
  svg$.PatternElement[dart.implements] = () => [svg$.FitToViewBox, svg$.UriReference, svg$.Tests];
  dart.setGetterSignature(svg$.PatternElement, () => ({
    __proto__: dart.getGetters(svg$.PatternElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S$3.$patternContentUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$patternTransform]: dart.nullable(svg$.AnimatedTransformList),
    [S$3.$patternUnits]: dart.nullable(svg$.AnimatedEnumeration),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect),
    [S$3.$requiredExtensions]: dart.nullable(svg$.StringList),
    [S$3.$systemLanguage]: dart.nullable(svg$.StringList),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.PatternElement, I[157]);
  dart.registerExtension("SVGPatternElement", svg$.PatternElement);
  svg$.Point = class Point extends _interceptors.Interceptor {
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
    [S$1.$matrixTransform](...args) {
      return this.matrixTransform.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.Point);
  dart.addTypeCaches(svg$.Point);
  dart.setMethodSignature(svg$.Point, () => ({
    __proto__: dart.getMethods(svg$.Point.__proto__),
    [S$1.$matrixTransform]: dart.fnType(svg$.Point, [svg$.Matrix])
  }));
  dart.setGetterSignature(svg$.Point, () => ({
    __proto__: dart.getGetters(svg$.Point.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Point, () => ({
    __proto__: dart.getSetters(svg$.Point.__proto__),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Point, I[157]);
  dart.registerExtension("SVGPoint", svg$.Point);
  svg$.PointList = class PointList extends _interceptors.Interceptor {
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfItems]() {
      return this.numberOfItems;
    }
    [S$3.__setter__$1](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$3.$appendItem](...args) {
      return this.appendItem.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$3.$getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$3.$initialize](...args) {
      return this.initialize.apply(this, args);
    }
    [S$3.$insertItemBefore](...args) {
      return this.insertItemBefore.apply(this, args);
    }
    [S$3.$removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$3.$replaceItem](...args) {
      return this.replaceItem.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.PointList);
  dart.addTypeCaches(svg$.PointList);
  dart.setMethodSignature(svg$.PointList, () => ({
    __proto__: dart.getMethods(svg$.PointList.__proto__),
    [S$3.__setter__$1]: dart.fnType(dart.void, [core.int, svg$.Point]),
    [S$3.$appendItem]: dart.fnType(svg$.Point, [svg$.Point]),
    [$clear]: dart.fnType(dart.void, []),
    [S$3.$getItem]: dart.fnType(svg$.Point, [core.int]),
    [S$3.$initialize]: dart.fnType(svg$.Point, [svg$.Point]),
    [S$3.$insertItemBefore]: dart.fnType(svg$.Point, [svg$.Point, core.int]),
    [S$3.$removeItem]: dart.fnType(svg$.Point, [core.int]),
    [S$3.$replaceItem]: dart.fnType(svg$.Point, [svg$.Point, core.int])
  }));
  dart.setGetterSignature(svg$.PointList, () => ({
    __proto__: dart.getGetters(svg$.PointList.__proto__),
    [$length]: dart.nullable(core.int),
    [S$3.$numberOfItems]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.PointList, I[157]);
  dart.registerExtension("SVGPointList", svg$.PointList);
  svg$.PolygonElement = class PolygonElement extends svg$.GeometryElement {
    static new() {
      return svg$.PolygonElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
    }
    get [S$3.$animatedPoints]() {
      return this.animatedPoints;
    }
    get [S$3.$points]() {
      return this.points;
    }
  };
  (svg$.PolygonElement.created = function() {
    svg$.PolygonElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.PolygonElement.prototype;
  dart.addTypeTests(svg$.PolygonElement);
  dart.addTypeCaches(svg$.PolygonElement);
  dart.setGetterSignature(svg$.PolygonElement, () => ({
    __proto__: dart.getGetters(svg$.PolygonElement.__proto__),
    [S$3.$animatedPoints]: dart.nullable(svg$.PointList),
    [S$3.$points]: svg$.PointList
  }));
  dart.setLibraryUri(svg$.PolygonElement, I[157]);
  dart.registerExtension("SVGPolygonElement", svg$.PolygonElement);
  svg$.PolylineElement = class PolylineElement extends svg$.GeometryElement {
    static new() {
      return svg$.PolylineElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
    }
    get [S$3.$animatedPoints]() {
      return this.animatedPoints;
    }
    get [S$3.$points]() {
      return this.points;
    }
  };
  (svg$.PolylineElement.created = function() {
    svg$.PolylineElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.PolylineElement.prototype;
  dart.addTypeTests(svg$.PolylineElement);
  dart.addTypeCaches(svg$.PolylineElement);
  dart.setGetterSignature(svg$.PolylineElement, () => ({
    __proto__: dart.getGetters(svg$.PolylineElement.__proto__),
    [S$3.$animatedPoints]: dart.nullable(svg$.PointList),
    [S$3.$points]: svg$.PointList
  }));
  dart.setLibraryUri(svg$.PolylineElement, I[157]);
  dart.registerExtension("SVGPolylineElement", svg$.PolylineElement);
  svg$.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
    get [S$3.$align]() {
      return this.align;
    }
    set [S$3.$align](value) {
      this.align = value;
    }
    get [S$3.$meetOrSlice]() {
      return this.meetOrSlice;
    }
    set [S$3.$meetOrSlice](value) {
      this.meetOrSlice = value;
    }
  };
  dart.addTypeTests(svg$.PreserveAspectRatio);
  dart.addTypeCaches(svg$.PreserveAspectRatio);
  dart.setGetterSignature(svg$.PreserveAspectRatio, () => ({
    __proto__: dart.getGetters(svg$.PreserveAspectRatio.__proto__),
    [S$3.$align]: dart.nullable(core.int),
    [S$3.$meetOrSlice]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.PreserveAspectRatio, () => ({
    __proto__: dart.getSetters(svg$.PreserveAspectRatio.__proto__),
    [S$3.$align]: dart.nullable(core.int),
    [S$3.$meetOrSlice]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.PreserveAspectRatio, I[157]);
  dart.defineLazy(svg$.PreserveAspectRatio, {
    /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_MEET*/get SVG_MEETORSLICE_MEET() {
      return 1;
    },
    /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_SLICE*/get SVG_MEETORSLICE_SLICE() {
      return 2;
    },
    /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN*/get SVG_MEETORSLICE_UNKNOWN() {
      return 0;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE*/get SVG_PRESERVEASPECTRATIO_NONE() {
      return 1;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN*/get SVG_PRESERVEASPECTRATIO_UNKNOWN() {
      return 0;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX*/get SVG_PRESERVEASPECTRATIO_XMAXYMAX() {
      return 10;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID*/get SVG_PRESERVEASPECTRATIO_XMAXYMID() {
      return 7;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN*/get SVG_PRESERVEASPECTRATIO_XMAXYMIN() {
      return 4;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX*/get SVG_PRESERVEASPECTRATIO_XMIDYMAX() {
      return 9;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID*/get SVG_PRESERVEASPECTRATIO_XMIDYMID() {
      return 6;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN*/get SVG_PRESERVEASPECTRATIO_XMIDYMIN() {
      return 3;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX*/get SVG_PRESERVEASPECTRATIO_XMINYMAX() {
      return 8;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID*/get SVG_PRESERVEASPECTRATIO_XMINYMID() {
      return 5;
    },
    /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN*/get SVG_PRESERVEASPECTRATIO_XMINYMIN() {
      return 2;
    }
  }, false);
  dart.registerExtension("SVGPreserveAspectRatio", svg$.PreserveAspectRatio);
  svg$.RadialGradientElement = class RadialGradientElement extends svg$._GradientElement {
    static new() {
      return svg$.RadialGradientElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
    }
    get [S$3.$cx]() {
      return this.cx;
    }
    get [S$3.$cy]() {
      return this.cy;
    }
    get [S$3.$fr]() {
      return this.fr;
    }
    get [S$3.$fx]() {
      return this.fx;
    }
    get [S$3.$fy]() {
      return this.fy;
    }
    get [S$3.$r]() {
      return this.r;
    }
  };
  (svg$.RadialGradientElement.created = function() {
    svg$.RadialGradientElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.RadialGradientElement.prototype;
  dart.addTypeTests(svg$.RadialGradientElement);
  dart.addTypeCaches(svg$.RadialGradientElement);
  dart.setGetterSignature(svg$.RadialGradientElement, () => ({
    __proto__: dart.getGetters(svg$.RadialGradientElement.__proto__),
    [S$3.$cx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$cy]: dart.nullable(svg$.AnimatedLength),
    [S$3.$fr]: dart.nullable(svg$.AnimatedLength),
    [S$3.$fx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$fy]: dart.nullable(svg$.AnimatedLength),
    [S$3.$r]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.RadialGradientElement, I[157]);
  dart.registerExtension("SVGRadialGradientElement", svg$.RadialGradientElement);
  svg$.Rect = class Rect extends _interceptors.Interceptor {
    get [$height]() {
      return this.height;
    }
    set [$height](value) {
      this.height = value;
    }
    get [$width]() {
      return this.width;
    }
    set [$width](value) {
      this.width = value;
    }
    get [S$.$x]() {
      return this.x;
    }
    set [S$.$x](value) {
      this.x = value;
    }
    get [S$.$y]() {
      return this.y;
    }
    set [S$.$y](value) {
      this.y = value;
    }
  };
  dart.addTypeTests(svg$.Rect);
  dart.addTypeCaches(svg$.Rect);
  dart.setGetterSignature(svg$.Rect, () => ({
    __proto__: dart.getGetters(svg$.Rect.__proto__),
    [$height]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(svg$.Rect, () => ({
    __proto__: dart.getSetters(svg$.Rect.__proto__),
    [$height]: dart.nullable(core.num),
    [$width]: dart.nullable(core.num),
    [S$.$x]: dart.nullable(core.num),
    [S$.$y]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(svg$.Rect, I[157]);
  dart.registerExtension("SVGRect", svg$.Rect);
  svg$.RectElement = class RectElement extends svg$.GeometryElement {
    static new() {
      return svg$.RectElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("rect"));
    }
    get [$height]() {
      return this.height;
    }
    get [S$3.$rx]() {
      return this.rx;
    }
    get [S$3.$ry]() {
      return this.ry;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.RectElement.created = function() {
    svg$.RectElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.RectElement.prototype;
  dart.addTypeTests(svg$.RectElement);
  dart.addTypeCaches(svg$.RectElement);
  dart.setGetterSignature(svg$.RectElement, () => ({
    __proto__: dart.getGetters(svg$.RectElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [S$3.$rx]: dart.nullable(svg$.AnimatedLength),
    [S$3.$ry]: dart.nullable(svg$.AnimatedLength),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.RectElement, I[157]);
  dart.registerExtension("SVGRectElement", svg$.RectElement);
  svg$.ScriptElement = class ScriptElement extends svg$.SvgElement {
    static new() {
      return svg$.ScriptElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("script"));
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.ScriptElement.created = function() {
    svg$.ScriptElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.ScriptElement.prototype;
  dart.addTypeTests(svg$.ScriptElement);
  dart.addTypeCaches(svg$.ScriptElement);
  svg$.ScriptElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$.ScriptElement, () => ({
    __proto__: dart.getGetters(svg$.ScriptElement.__proto__),
    [S.$type]: dart.nullable(core.String),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setSetterSignature(svg$.ScriptElement, () => ({
    __proto__: dart.getSetters(svg$.ScriptElement.__proto__),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(svg$.ScriptElement, I[157]);
  dart.registerExtension("SVGScriptElement", svg$.ScriptElement);
  svg$.SetElement = class SetElement extends svg$.AnimationElement {
    static new() {
      return svg$.SetElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("set"));
    }
    static get supported() {
      return dart.test(svg$.SvgElement.isTagSupported("set")) && svg$.SetElement.is(svg$.SvgElement.tag("set"));
    }
  };
  (svg$.SetElement.created = function() {
    svg$.SetElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.SetElement.prototype;
  dart.addTypeTests(svg$.SetElement);
  dart.addTypeCaches(svg$.SetElement);
  dart.setLibraryUri(svg$.SetElement, I[157]);
  dart.registerExtension("SVGSetElement", svg$.SetElement);
  svg$.StopElement = class StopElement extends svg$.SvgElement {
    static new() {
      return svg$.StopElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("stop"));
    }
    get [S$3.$gradientOffset]() {
      return this.offset;
    }
  };
  (svg$.StopElement.created = function() {
    svg$.StopElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.StopElement.prototype;
  dart.addTypeTests(svg$.StopElement);
  dart.addTypeCaches(svg$.StopElement);
  dart.setGetterSignature(svg$.StopElement, () => ({
    __proto__: dart.getGetters(svg$.StopElement.__proto__),
    [S$3.$gradientOffset]: svg$.AnimatedNumber
  }));
  dart.setLibraryUri(svg$.StopElement, I[157]);
  dart.registerExtension("SVGStopElement", svg$.StopElement);
  const Interceptor_ListMixin$36$15 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$15.new = function() {
    Interceptor_ListMixin$36$15.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$15.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$15, collection.ListMixin$(core.String));
  const Interceptor_ImmutableListMixin$36$15 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$15 {};
  (Interceptor_ImmutableListMixin$36$15.new = function() {
    Interceptor_ImmutableListMixin$36$15.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$15.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$15, html$.ImmutableListMixin$(core.String));
  svg$.StringList = class StringList extends Interceptor_ImmutableListMixin$36$15 {
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfItems]() {
      return this.numberOfItems;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[156], 2861, 26, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this.getItem(index);
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[156], 2867, 25, "index");
      core.String.as(value);
      if (value == null) dart.nullFailed(I[156], 2867, 39, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[156], 2873, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[156], 2901, 24, "index");
      return this[$_get](index);
    }
    [S$3.__setter__$1](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$3.$appendItem](...args) {
      return this.appendItem.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$3.$getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$3.$initialize](...args) {
      return this.initialize.apply(this, args);
    }
    [S$3.$insertItemBefore](...args) {
      return this.insertItemBefore.apply(this, args);
    }
    [S$3.$removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$3.$replaceItem](...args) {
      return this.replaceItem.apply(this, args);
    }
  };
  svg$.StringList.prototype[dart.isList] = true;
  dart.addTypeTests(svg$.StringList);
  dart.addTypeCaches(svg$.StringList);
  svg$.StringList[dart.implements] = () => [core.List$(core.String)];
  dart.setMethodSignature(svg$.StringList, () => ({
    __proto__: dart.getMethods(svg$.StringList.__proto__),
    [$_get]: dart.fnType(core.String, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$3.__setter__$1]: dart.fnType(dart.void, [core.int, core.String]),
    [S$3.$appendItem]: dart.fnType(core.String, [core.String]),
    [S$3.$getItem]: dart.fnType(core.String, [core.int]),
    [S$3.$initialize]: dart.fnType(core.String, [core.String]),
    [S$3.$insertItemBefore]: dart.fnType(core.String, [core.String, core.int]),
    [S$3.$removeItem]: dart.fnType(core.String, [core.int]),
    [S$3.$replaceItem]: dart.fnType(core.String, [core.String, core.int])
  }));
  dart.setGetterSignature(svg$.StringList, () => ({
    __proto__: dart.getGetters(svg$.StringList.__proto__),
    [$length]: core.int,
    [S$3.$numberOfItems]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.StringList, () => ({
    __proto__: dart.getSetters(svg$.StringList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(svg$.StringList, I[157]);
  dart.registerExtension("SVGStringList", svg$.StringList);
  svg$.StyleElement = class StyleElement extends svg$.SvgElement {
    static new() {
      return svg$.StyleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("style"));
    }
    get [S$.$disabled]() {
      return this.disabled;
    }
    set [S$.$disabled](value) {
      this.disabled = value;
    }
    get [S$.$media]() {
      return this.media;
    }
    set [S$.$media](value) {
      this.media = value;
    }
    get [S$1.$sheet]() {
      return this.sheet;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
  };
  (svg$.StyleElement.created = function() {
    svg$.StyleElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.StyleElement.prototype;
  dart.addTypeTests(svg$.StyleElement);
  dart.addTypeCaches(svg$.StyleElement);
  dart.setGetterSignature(svg$.StyleElement, () => ({
    __proto__: dart.getGetters(svg$.StyleElement.__proto__),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$media]: dart.nullable(core.String),
    [S$1.$sheet]: dart.nullable(html$.StyleSheet),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(svg$.StyleElement, () => ({
    __proto__: dart.getSetters(svg$.StyleElement.__proto__),
    [S$.$disabled]: dart.nullable(core.bool),
    [S$.$media]: dart.nullable(core.String),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(svg$.StyleElement, I[157]);
  dart.registerExtension("SVGStyleElement", svg$.StyleElement);
  svg$.AttributeClassSet = class AttributeClassSet extends html_common.CssClassSetImpl {
    readClasses() {
      let classname = this[S$3._element$3][S.$attributes][$_get]("class");
      if (svg$.AnimatedString.is(classname)) {
        classname = svg$.AnimatedString.as(classname).baseVal;
      }
      let s = new (T$0._IdentityHashSetOfString()).new();
      if (classname == null) {
        return s;
      }
      for (let name of classname[$split](" ")) {
        let trimmed = name[$trim]();
        if (!trimmed[$isEmpty]) {
          s.add(trimmed);
        }
      }
      return s;
    }
    writeClasses(s) {
      if (s == null) dart.nullFailed(I[156], 2986, 25, "s");
      this[S$3._element$3][S.$setAttribute]("class", s[$join](" "));
    }
  };
  (svg$.AttributeClassSet.new = function(_element) {
    if (_element == null) dart.nullFailed(I[156], 2965, 26, "_element");
    this[S$3._element$3] = _element;
    ;
  }).prototype = svg$.AttributeClassSet.prototype;
  dart.addTypeTests(svg$.AttributeClassSet);
  dart.addTypeCaches(svg$.AttributeClassSet);
  dart.setMethodSignature(svg$.AttributeClassSet, () => ({
    __proto__: dart.getMethods(svg$.AttributeClassSet.__proto__),
    readClasses: dart.fnType(core.Set$(core.String), []),
    writeClasses: dart.fnType(dart.void, [core.Set])
  }));
  dart.setLibraryUri(svg$.AttributeClassSet, I[157]);
  dart.setFieldSignature(svg$.AttributeClassSet, () => ({
    __proto__: dart.getFields(svg$.AttributeClassSet.__proto__),
    [S$3._element$3]: dart.finalFieldType(html$.Element)
  }));
  svg$.SvgSvgElement = class SvgSvgElement extends svg$.GraphicsElement {
    static new() {
      let el = svg$.SvgElement.tag("svg");
      el[S.$attributes][$_set]("version", "1.1");
      return svg$.SvgSvgElement.as(el);
    }
    get [S$3.$currentScale]() {
      return this.currentScale;
    }
    set [S$3.$currentScale](value) {
      this.currentScale = value;
    }
    get [S$3.$currentTranslate]() {
      return this.currentTranslate;
    }
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    [S$3.$animationsPaused](...args) {
      return this.animationsPaused.apply(this, args);
    }
    [S$3.$checkEnclosure](...args) {
      return this.checkEnclosure.apply(this, args);
    }
    [S$3.$checkIntersection](...args) {
      return this.checkIntersection.apply(this, args);
    }
    [S$3.$createSvgAngle](...args) {
      return this.createSVGAngle.apply(this, args);
    }
    [S$3.$createSvgLength](...args) {
      return this.createSVGLength.apply(this, args);
    }
    [S$3.$createSvgMatrix](...args) {
      return this.createSVGMatrix.apply(this, args);
    }
    [S$3.$createSvgNumber](...args) {
      return this.createSVGNumber.apply(this, args);
    }
    [S$3.$createSvgPoint](...args) {
      return this.createSVGPoint.apply(this, args);
    }
    [S$3.$createSvgRect](...args) {
      return this.createSVGRect.apply(this, args);
    }
    [S$3.$createSvgTransform](...args) {
      return this.createSVGTransform.apply(this, args);
    }
    [S$3.$createSvgTransformFromMatrix](...args) {
      return this.createSVGTransformFromMatrix.apply(this, args);
    }
    [S$3.$deselectAll](...args) {
      return this.deselectAll.apply(this, args);
    }
    [S$3.$forceRedraw](...args) {
      return this.forceRedraw.apply(this, args);
    }
    [S$3.$getCurrentTime](...args) {
      return this.getCurrentTime.apply(this, args);
    }
    [S$1.$getElementById](...args) {
      return this.getElementById.apply(this, args);
    }
    [S$3.$getEnclosureList](...args) {
      return this.getEnclosureList.apply(this, args);
    }
    [S$3.$getIntersectionList](...args) {
      return this.getIntersectionList.apply(this, args);
    }
    [S$3.$pauseAnimations](...args) {
      return this.pauseAnimations.apply(this, args);
    }
    [S$3.$setCurrentTime](...args) {
      return this.setCurrentTime.apply(this, args);
    }
    [S$3.$suspendRedraw](...args) {
      return this.suspendRedraw.apply(this, args);
    }
    [S$3.$unpauseAnimations](...args) {
      return this.unpauseAnimations.apply(this, args);
    }
    [S$3.$unsuspendRedraw](...args) {
      return this.unsuspendRedraw.apply(this, args);
    }
    [S$3.$unsuspendRedrawAll](...args) {
      return this.unsuspendRedrawAll.apply(this, args);
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [S$3.$viewBox]() {
      return this.viewBox;
    }
    get [S$3.$zoomAndPan]() {
      return this.zoomAndPan;
    }
    set [S$3.$zoomAndPan](value) {
      this.zoomAndPan = value;
    }
  };
  (svg$.SvgSvgElement.created = function() {
    svg$.SvgSvgElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.SvgSvgElement.prototype;
  dart.addTypeTests(svg$.SvgSvgElement);
  dart.addTypeCaches(svg$.SvgSvgElement);
  svg$.SvgSvgElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
  dart.setMethodSignature(svg$.SvgSvgElement, () => ({
    __proto__: dart.getMethods(svg$.SvgSvgElement.__proto__),
    [S$3.$animationsPaused]: dart.fnType(core.bool, []),
    [S$3.$checkEnclosure]: dart.fnType(core.bool, [svg$.SvgElement, svg$.Rect]),
    [S$3.$checkIntersection]: dart.fnType(core.bool, [svg$.SvgElement, svg$.Rect]),
    [S$3.$createSvgAngle]: dart.fnType(svg$.Angle, []),
    [S$3.$createSvgLength]: dart.fnType(svg$.Length, []),
    [S$3.$createSvgMatrix]: dart.fnType(svg$.Matrix, []),
    [S$3.$createSvgNumber]: dart.fnType(svg$.Number, []),
    [S$3.$createSvgPoint]: dart.fnType(svg$.Point, []),
    [S$3.$createSvgRect]: dart.fnType(svg$.Rect, []),
    [S$3.$createSvgTransform]: dart.fnType(svg$.Transform, []),
    [S$3.$createSvgTransformFromMatrix]: dart.fnType(svg$.Transform, [svg$.Matrix]),
    [S$3.$deselectAll]: dart.fnType(dart.void, []),
    [S$3.$forceRedraw]: dart.fnType(dart.void, []),
    [S$3.$getCurrentTime]: dart.fnType(core.double, []),
    [S$1.$getElementById]: dart.fnType(html$.Element, [core.String]),
    [S$3.$getEnclosureList]: dart.fnType(core.List$(html$.Node), [svg$.Rect, dart.nullable(svg$.SvgElement)]),
    [S$3.$getIntersectionList]: dart.fnType(core.List$(html$.Node), [svg$.Rect, dart.nullable(svg$.SvgElement)]),
    [S$3.$pauseAnimations]: dart.fnType(dart.void, []),
    [S$3.$setCurrentTime]: dart.fnType(dart.void, [core.num]),
    [S$3.$suspendRedraw]: dart.fnType(core.int, [core.int]),
    [S$3.$unpauseAnimations]: dart.fnType(dart.void, []),
    [S$3.$unsuspendRedraw]: dart.fnType(dart.void, [core.int]),
    [S$3.$unsuspendRedrawAll]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(svg$.SvgSvgElement, () => ({
    __proto__: dart.getGetters(svg$.SvgSvgElement.__proto__),
    [S$3.$currentScale]: dart.nullable(core.num),
    [S$3.$currentTranslate]: dart.nullable(svg$.Point),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.SvgSvgElement, () => ({
    __proto__: dart.getSetters(svg$.SvgSvgElement.__proto__),
    [S$3.$currentScale]: dart.nullable(core.num),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.SvgSvgElement, I[157]);
  dart.registerExtension("SVGSVGElement", svg$.SvgSvgElement);
  svg$.SwitchElement = class SwitchElement extends svg$.GraphicsElement {
    static new() {
      return svg$.SwitchElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("switch"));
    }
  };
  (svg$.SwitchElement.created = function() {
    svg$.SwitchElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.SwitchElement.prototype;
  dart.addTypeTests(svg$.SwitchElement);
  dart.addTypeCaches(svg$.SwitchElement);
  dart.setLibraryUri(svg$.SwitchElement, I[157]);
  dart.registerExtension("SVGSwitchElement", svg$.SwitchElement);
  svg$.SymbolElement = class SymbolElement extends svg$.SvgElement {
    static new() {
      return svg$.SymbolElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [S$3.$viewBox]() {
      return this.viewBox;
    }
  };
  (svg$.SymbolElement.created = function() {
    svg$.SymbolElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.SymbolElement.prototype;
  dart.addTypeTests(svg$.SymbolElement);
  dart.addTypeCaches(svg$.SymbolElement);
  svg$.SymbolElement[dart.implements] = () => [svg$.FitToViewBox];
  dart.setGetterSignature(svg$.SymbolElement, () => ({
    __proto__: dart.getGetters(svg$.SymbolElement.__proto__),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect)
  }));
  dart.setLibraryUri(svg$.SymbolElement, I[157]);
  dart.registerExtension("SVGSymbolElement", svg$.SymbolElement);
  svg$.TextContentElement = class TextContentElement extends svg$.GraphicsElement {
    get [S$3.$lengthAdjust]() {
      return this.lengthAdjust;
    }
    get [S$2.$textLength]() {
      return this.textLength;
    }
    [S$3.$getCharNumAtPosition](...args) {
      return this.getCharNumAtPosition.apply(this, args);
    }
    [S$3.$getComputedTextLength](...args) {
      return this.getComputedTextLength.apply(this, args);
    }
    [S$3.$getEndPositionOfChar](...args) {
      return this.getEndPositionOfChar.apply(this, args);
    }
    [S$3.$getExtentOfChar](...args) {
      return this.getExtentOfChar.apply(this, args);
    }
    [S$3.$getNumberOfChars](...args) {
      return this.getNumberOfChars.apply(this, args);
    }
    [S$3.$getRotationOfChar](...args) {
      return this.getRotationOfChar.apply(this, args);
    }
    [S$3.$getStartPositionOfChar](...args) {
      return this.getStartPositionOfChar.apply(this, args);
    }
    [S$3.$getSubStringLength](...args) {
      return this.getSubStringLength.apply(this, args);
    }
    [S$3.$selectSubString](...args) {
      return this.selectSubString.apply(this, args);
    }
  };
  (svg$.TextContentElement.created = function() {
    svg$.TextContentElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TextContentElement.prototype;
  dart.addTypeTests(svg$.TextContentElement);
  dart.addTypeCaches(svg$.TextContentElement);
  dart.setMethodSignature(svg$.TextContentElement, () => ({
    __proto__: dart.getMethods(svg$.TextContentElement.__proto__),
    [S$3.$getCharNumAtPosition]: dart.fnType(core.int, [svg$.Point]),
    [S$3.$getComputedTextLength]: dart.fnType(core.double, []),
    [S$3.$getEndPositionOfChar]: dart.fnType(svg$.Point, [core.int]),
    [S$3.$getExtentOfChar]: dart.fnType(svg$.Rect, [core.int]),
    [S$3.$getNumberOfChars]: dart.fnType(core.int, []),
    [S$3.$getRotationOfChar]: dart.fnType(core.double, [core.int]),
    [S$3.$getStartPositionOfChar]: dart.fnType(svg$.Point, [core.int]),
    [S$3.$getSubStringLength]: dart.fnType(core.double, [core.int, core.int]),
    [S$3.$selectSubString]: dart.fnType(dart.void, [core.int, core.int])
  }));
  dart.setGetterSignature(svg$.TextContentElement, () => ({
    __proto__: dart.getGetters(svg$.TextContentElement.__proto__),
    [S$3.$lengthAdjust]: dart.nullable(svg$.AnimatedEnumeration),
    [S$2.$textLength]: dart.nullable(svg$.AnimatedLength)
  }));
  dart.setLibraryUri(svg$.TextContentElement, I[157]);
  dart.defineLazy(svg$.TextContentElement, {
    /*svg$.TextContentElement.LENGTHADJUST_SPACING*/get LENGTHADJUST_SPACING() {
      return 1;
    },
    /*svg$.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS*/get LENGTHADJUST_SPACINGANDGLYPHS() {
      return 2;
    },
    /*svg$.TextContentElement.LENGTHADJUST_UNKNOWN*/get LENGTHADJUST_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGTextContentElement", svg$.TextContentElement);
  svg$.TextPositioningElement = class TextPositioningElement extends svg$.TextContentElement {
    get [S$3.$dx]() {
      return this.dx;
    }
    get [S$3.$dy]() {
      return this.dy;
    }
    get [S$.$rotate]() {
      return this.rotate;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
  };
  (svg$.TextPositioningElement.created = function() {
    svg$.TextPositioningElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TextPositioningElement.prototype;
  dart.addTypeTests(svg$.TextPositioningElement);
  dart.addTypeCaches(svg$.TextPositioningElement);
  dart.setGetterSignature(svg$.TextPositioningElement, () => ({
    __proto__: dart.getGetters(svg$.TextPositioningElement.__proto__),
    [S$3.$dx]: dart.nullable(svg$.AnimatedLengthList),
    [S$3.$dy]: dart.nullable(svg$.AnimatedLengthList),
    [S$.$rotate]: dart.nullable(svg$.AnimatedNumberList),
    [S$.$x]: dart.nullable(svg$.AnimatedLengthList),
    [S$.$y]: dart.nullable(svg$.AnimatedLengthList)
  }));
  dart.setLibraryUri(svg$.TextPositioningElement, I[157]);
  dart.registerExtension("SVGTextPositioningElement", svg$.TextPositioningElement);
  svg$.TSpanElement = class TSpanElement extends svg$.TextPositioningElement {
    static new() {
      return svg$.TSpanElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
    }
  };
  (svg$.TSpanElement.created = function() {
    svg$.TSpanElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TSpanElement.prototype;
  dart.addTypeTests(svg$.TSpanElement);
  dart.addTypeCaches(svg$.TSpanElement);
  dart.setLibraryUri(svg$.TSpanElement, I[157]);
  dart.registerExtension("SVGTSpanElement", svg$.TSpanElement);
  svg$.Tests = class Tests extends _interceptors.Interceptor {
    get requiredExtensions() {
      return this.requiredExtensions;
    }
    get systemLanguage() {
      return this.systemLanguage;
    }
  };
  dart.addTypeTests(svg$.Tests);
  dart.addTypeCaches(svg$.Tests);
  dart.setGetterSignature(svg$.Tests, () => ({
    __proto__: dart.getGetters(svg$.Tests.__proto__),
    requiredExtensions: dart.nullable(svg$.StringList),
    [S$3.$requiredExtensions]: dart.nullable(svg$.StringList),
    systemLanguage: dart.nullable(svg$.StringList),
    [S$3.$systemLanguage]: dart.nullable(svg$.StringList)
  }));
  dart.setLibraryUri(svg$.Tests, I[157]);
  dart.defineExtensionAccessors(svg$.Tests, ['requiredExtensions', 'systemLanguage']);
  svg$.TextElement = class TextElement extends svg$.TextPositioningElement {
    static new() {
      return svg$.TextElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("text"));
    }
  };
  (svg$.TextElement.created = function() {
    svg$.TextElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TextElement.prototype;
  dart.addTypeTests(svg$.TextElement);
  dart.addTypeCaches(svg$.TextElement);
  dart.setLibraryUri(svg$.TextElement, I[157]);
  dart.registerExtension("SVGTextElement", svg$.TextElement);
  svg$.TextPathElement = class TextPathElement extends svg$.TextContentElement {
    get [S$1.$method]() {
      return this.method;
    }
    get [S$3.$spacing]() {
      return this.spacing;
    }
    get [S$2.$startOffset]() {
      return this.startOffset;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.TextPathElement.created = function() {
    svg$.TextPathElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TextPathElement.prototype;
  dart.addTypeTests(svg$.TextPathElement);
  dart.addTypeCaches(svg$.TextPathElement);
  svg$.TextPathElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$.TextPathElement, () => ({
    __proto__: dart.getGetters(svg$.TextPathElement.__proto__),
    [S$1.$method]: dart.nullable(svg$.AnimatedEnumeration),
    [S$3.$spacing]: dart.nullable(svg$.AnimatedEnumeration),
    [S$2.$startOffset]: dart.nullable(svg$.AnimatedLength),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.TextPathElement, I[157]);
  dart.defineLazy(svg$.TextPathElement, {
    /*svg$.TextPathElement.TEXTPATH_METHODTYPE_ALIGN*/get TEXTPATH_METHODTYPE_ALIGN() {
      return 1;
    },
    /*svg$.TextPathElement.TEXTPATH_METHODTYPE_STRETCH*/get TEXTPATH_METHODTYPE_STRETCH() {
      return 2;
    },
    /*svg$.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN*/get TEXTPATH_METHODTYPE_UNKNOWN() {
      return 0;
    },
    /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO*/get TEXTPATH_SPACINGTYPE_AUTO() {
      return 1;
    },
    /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT*/get TEXTPATH_SPACINGTYPE_EXACT() {
      return 2;
    },
    /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN*/get TEXTPATH_SPACINGTYPE_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGTextPathElement", svg$.TextPathElement);
  svg$.TitleElement = class TitleElement extends svg$.SvgElement {
    static new() {
      return svg$.TitleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("title"));
    }
  };
  (svg$.TitleElement.created = function() {
    svg$.TitleElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.TitleElement.prototype;
  dart.addTypeTests(svg$.TitleElement);
  dart.addTypeCaches(svg$.TitleElement);
  dart.setLibraryUri(svg$.TitleElement, I[157]);
  dart.registerExtension("SVGTitleElement", svg$.TitleElement);
  svg$.Transform = class Transform extends _interceptors.Interceptor {
    get [S$.$angle]() {
      return this.angle;
    }
    get [S$.$matrix]() {
      return this.matrix;
    }
    get [S.$type]() {
      return this.type;
    }
    [S$3.$setMatrix](...args) {
      return this.setMatrix.apply(this, args);
    }
    [S$3.$setRotate](...args) {
      return this.setRotate.apply(this, args);
    }
    [S$3.$setScale](...args) {
      return this.setScale.apply(this, args);
    }
    [S$3.$setSkewX](...args) {
      return this.setSkewX.apply(this, args);
    }
    [S$3.$setSkewY](...args) {
      return this.setSkewY.apply(this, args);
    }
    [S$3.$setTranslate](...args) {
      return this.setTranslate.apply(this, args);
    }
  };
  dart.addTypeTests(svg$.Transform);
  dart.addTypeCaches(svg$.Transform);
  dart.setMethodSignature(svg$.Transform, () => ({
    __proto__: dart.getMethods(svg$.Transform.__proto__),
    [S$3.$setMatrix]: dart.fnType(dart.void, [svg$.Matrix]),
    [S$3.$setRotate]: dart.fnType(dart.void, [core.num, core.num, core.num]),
    [S$3.$setScale]: dart.fnType(dart.void, [core.num, core.num]),
    [S$3.$setSkewX]: dart.fnType(dart.void, [core.num]),
    [S$3.$setSkewY]: dart.fnType(dart.void, [core.num]),
    [S$3.$setTranslate]: dart.fnType(dart.void, [core.num, core.num])
  }));
  dart.setGetterSignature(svg$.Transform, () => ({
    __proto__: dart.getGetters(svg$.Transform.__proto__),
    [S$.$angle]: dart.nullable(core.num),
    [S$.$matrix]: dart.nullable(svg$.Matrix),
    [S.$type]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.Transform, I[157]);
  dart.defineLazy(svg$.Transform, {
    /*svg$.Transform.SVG_TRANSFORM_MATRIX*/get SVG_TRANSFORM_MATRIX() {
      return 1;
    },
    /*svg$.Transform.SVG_TRANSFORM_ROTATE*/get SVG_TRANSFORM_ROTATE() {
      return 4;
    },
    /*svg$.Transform.SVG_TRANSFORM_SCALE*/get SVG_TRANSFORM_SCALE() {
      return 3;
    },
    /*svg$.Transform.SVG_TRANSFORM_SKEWX*/get SVG_TRANSFORM_SKEWX() {
      return 5;
    },
    /*svg$.Transform.SVG_TRANSFORM_SKEWY*/get SVG_TRANSFORM_SKEWY() {
      return 6;
    },
    /*svg$.Transform.SVG_TRANSFORM_TRANSLATE*/get SVG_TRANSFORM_TRANSLATE() {
      return 2;
    },
    /*svg$.Transform.SVG_TRANSFORM_UNKNOWN*/get SVG_TRANSFORM_UNKNOWN() {
      return 0;
    }
  }, false);
  dart.registerExtension("SVGTransform", svg$.Transform);
  const Interceptor_ListMixin$36$16 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$16.new = function() {
    Interceptor_ListMixin$36$16.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$16.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$16, collection.ListMixin$(svg$.Transform));
  const Interceptor_ImmutableListMixin$36$16 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$16 {};
  (Interceptor_ImmutableListMixin$36$16.new = function() {
    Interceptor_ImmutableListMixin$36$16.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$16.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$16, html$.ImmutableListMixin$(svg$.Transform));
  svg$.TransformList = class TransformList extends Interceptor_ImmutableListMixin$36$16 {
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfItems]() {
      return this.numberOfItems;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[156], 3850, 29, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return this.getItem(index);
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[156], 3856, 25, "index");
      svg$.Transform.as(value);
      if (value == null) dart.nullFailed(I[156], 3856, 42, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[156], 3862, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[156], 3890, 27, "index");
      return this[$_get](index);
    }
    [S$3.__setter__$1](...args) {
      return this.__setter__.apply(this, args);
    }
    [S$3.$appendItem](...args) {
      return this.appendItem.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$3.$consolidate](...args) {
      return this.consolidate.apply(this, args);
    }
    [S$3.$createSvgTransformFromMatrix](...args) {
      return this.createSVGTransformFromMatrix.apply(this, args);
    }
    [S$3.$getItem](...args) {
      return this.getItem.apply(this, args);
    }
    [S$3.$initialize](...args) {
      return this.initialize.apply(this, args);
    }
    [S$3.$insertItemBefore](...args) {
      return this.insertItemBefore.apply(this, args);
    }
    [S$3.$removeItem](...args) {
      return this.removeItem.apply(this, args);
    }
    [S$3.$replaceItem](...args) {
      return this.replaceItem.apply(this, args);
    }
  };
  svg$.TransformList.prototype[dart.isList] = true;
  dart.addTypeTests(svg$.TransformList);
  dart.addTypeCaches(svg$.TransformList);
  svg$.TransformList[dart.implements] = () => [core.List$(svg$.Transform)];
  dart.setMethodSignature(svg$.TransformList, () => ({
    __proto__: dart.getMethods(svg$.TransformList.__proto__),
    [$_get]: dart.fnType(svg$.Transform, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$3.__setter__$1]: dart.fnType(dart.void, [core.int, svg$.Transform]),
    [S$3.$appendItem]: dart.fnType(svg$.Transform, [svg$.Transform]),
    [S$3.$consolidate]: dart.fnType(dart.nullable(svg$.Transform), []),
    [S$3.$createSvgTransformFromMatrix]: dart.fnType(svg$.Transform, [svg$.Matrix]),
    [S$3.$getItem]: dart.fnType(svg$.Transform, [core.int]),
    [S$3.$initialize]: dart.fnType(svg$.Transform, [svg$.Transform]),
    [S$3.$insertItemBefore]: dart.fnType(svg$.Transform, [svg$.Transform, core.int]),
    [S$3.$removeItem]: dart.fnType(svg$.Transform, [core.int]),
    [S$3.$replaceItem]: dart.fnType(svg$.Transform, [svg$.Transform, core.int])
  }));
  dart.setGetterSignature(svg$.TransformList, () => ({
    __proto__: dart.getGetters(svg$.TransformList.__proto__),
    [$length]: core.int,
    [S$3.$numberOfItems]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.TransformList, () => ({
    __proto__: dart.getSetters(svg$.TransformList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(svg$.TransformList, I[157]);
  dart.registerExtension("SVGTransformList", svg$.TransformList);
  svg$.UnitTypes = class UnitTypes extends _interceptors.Interceptor {};
  dart.addTypeTests(svg$.UnitTypes);
  dart.addTypeCaches(svg$.UnitTypes);
  dart.setLibraryUri(svg$.UnitTypes, I[157]);
  dart.defineLazy(svg$.UnitTypes, {
    /*svg$.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX*/get SVG_UNIT_TYPE_OBJECTBOUNDINGBOX() {
      return 2;
    },
    /*svg$.UnitTypes.SVG_UNIT_TYPE_UNKNOWN*/get SVG_UNIT_TYPE_UNKNOWN() {
      return 0;
    },
    /*svg$.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE*/get SVG_UNIT_TYPE_USERSPACEONUSE() {
      return 1;
    }
  }, false);
  dart.registerExtension("SVGUnitTypes", svg$.UnitTypes);
  svg$.UriReference = class UriReference extends _interceptors.Interceptor {
    get href() {
      return this.href;
    }
  };
  dart.addTypeTests(svg$.UriReference);
  dart.addTypeCaches(svg$.UriReference);
  dart.setGetterSignature(svg$.UriReference, () => ({
    __proto__: dart.getGetters(svg$.UriReference.__proto__),
    href: dart.nullable(svg$.AnimatedString),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.UriReference, I[157]);
  dart.defineExtensionAccessors(svg$.UriReference, ['href']);
  svg$.UseElement = class UseElement extends svg$.GraphicsElement {
    static new() {
      return svg$.UseElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("use"));
    }
    get [$height]() {
      return this.height;
    }
    get [$width]() {
      return this.width;
    }
    get [S$.$x]() {
      return this.x;
    }
    get [S$.$y]() {
      return this.y;
    }
    get [S$.$href]() {
      return this.href;
    }
  };
  (svg$.UseElement.created = function() {
    svg$.UseElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.UseElement.prototype;
  dart.addTypeTests(svg$.UseElement);
  dart.addTypeCaches(svg$.UseElement);
  svg$.UseElement[dart.implements] = () => [svg$.UriReference];
  dart.setGetterSignature(svg$.UseElement, () => ({
    __proto__: dart.getGetters(svg$.UseElement.__proto__),
    [$height]: dart.nullable(svg$.AnimatedLength),
    [$width]: dart.nullable(svg$.AnimatedLength),
    [S$.$x]: dart.nullable(svg$.AnimatedLength),
    [S$.$y]: dart.nullable(svg$.AnimatedLength),
    [S$.$href]: dart.nullable(svg$.AnimatedString)
  }));
  dart.setLibraryUri(svg$.UseElement, I[157]);
  dart.registerExtension("SVGUseElement", svg$.UseElement);
  svg$.ViewElement = class ViewElement extends svg$.SvgElement {
    static new() {
      return svg$.ViewElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("view"));
    }
    get [S$3.$preserveAspectRatio]() {
      return this.preserveAspectRatio;
    }
    get [S$3.$viewBox]() {
      return this.viewBox;
    }
    get [S$3.$zoomAndPan]() {
      return this.zoomAndPan;
    }
    set [S$3.$zoomAndPan](value) {
      this.zoomAndPan = value;
    }
  };
  (svg$.ViewElement.created = function() {
    svg$.ViewElement.__proto__.created.call(this);
    ;
  }).prototype = svg$.ViewElement.prototype;
  dart.addTypeTests(svg$.ViewElement);
  dart.addTypeCaches(svg$.ViewElement);
  svg$.ViewElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
  dart.setGetterSignature(svg$.ViewElement, () => ({
    __proto__: dart.getGetters(svg$.ViewElement.__proto__),
    [S$3.$preserveAspectRatio]: dart.nullable(svg$.AnimatedPreserveAspectRatio),
    [S$3.$viewBox]: dart.nullable(svg$.AnimatedRect),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.ViewElement, () => ({
    __proto__: dart.getSetters(svg$.ViewElement.__proto__),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.ViewElement, I[157]);
  dart.registerExtension("SVGViewElement", svg$.ViewElement);
  svg$.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
    get zoomAndPan() {
      return this.zoomAndPan;
    }
    set zoomAndPan(value) {
      this.zoomAndPan = value;
    }
  };
  dart.addTypeTests(svg$.ZoomAndPan);
  dart.addTypeCaches(svg$.ZoomAndPan);
  dart.setGetterSignature(svg$.ZoomAndPan, () => ({
    __proto__: dart.getGetters(svg$.ZoomAndPan.__proto__),
    zoomAndPan: dart.nullable(core.int),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(svg$.ZoomAndPan, () => ({
    __proto__: dart.getSetters(svg$.ZoomAndPan.__proto__),
    zoomAndPan: dart.nullable(core.int),
    [S$3.$zoomAndPan]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(svg$.ZoomAndPan, I[157]);
  dart.defineExtensionAccessors(svg$.ZoomAndPan, ['zoomAndPan']);
  dart.defineLazy(svg$.ZoomAndPan, {
    /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE*/get SVG_ZOOMANDPAN_DISABLE() {
      return 1;
    },
    /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY*/get SVG_ZOOMANDPAN_MAGNIFY() {
      return 2;
    },
    /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN*/get SVG_ZOOMANDPAN_UNKNOWN() {
      return 0;
    }
  }, false);
  svg$._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg$.SvgElement {};
  (svg$._SVGFEDropShadowElement.created = function() {
    svg$._SVGFEDropShadowElement.__proto__.created.call(this);
    ;
  }).prototype = svg$._SVGFEDropShadowElement.prototype;
  dart.addTypeTests(svg$._SVGFEDropShadowElement);
  dart.addTypeCaches(svg$._SVGFEDropShadowElement);
  svg$._SVGFEDropShadowElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
  dart.setLibraryUri(svg$._SVGFEDropShadowElement, I[157]);
  dart.registerExtension("SVGFEDropShadowElement", svg$._SVGFEDropShadowElement);
  svg$._SVGMPathElement = class _SVGMPathElement extends svg$.SvgElement {
    static new() {
      return svg$._SVGMPathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
    }
  };
  (svg$._SVGMPathElement.created = function() {
    svg$._SVGMPathElement.__proto__.created.call(this);
    ;
  }).prototype = svg$._SVGMPathElement.prototype;
  dart.addTypeTests(svg$._SVGMPathElement);
  dart.addTypeCaches(svg$._SVGMPathElement);
  svg$._SVGMPathElement[dart.implements] = () => [svg$.UriReference];
  dart.setLibraryUri(svg$._SVGMPathElement, I[157]);
  dart.registerExtension("SVGMPathElement", svg$._SVGMPathElement);
  web_audio.AudioNode = class AudioNode extends html$.EventTarget {
    get [S$3.$channelCount]() {
      return this.channelCount;
    }
    set [S$3.$channelCount](value) {
      this.channelCount = value;
    }
    get [S$3.$channelCountMode]() {
      return this.channelCountMode;
    }
    set [S$3.$channelCountMode](value) {
      this.channelCountMode = value;
    }
    get [S$3.$channelInterpretation]() {
      return this.channelInterpretation;
    }
    set [S$3.$channelInterpretation](value) {
      this.channelInterpretation = value;
    }
    get [S$3.$context]() {
      return this.context;
    }
    get [S$3.$numberOfInputs]() {
      return this.numberOfInputs;
    }
    get [S$3.$numberOfOutputs]() {
      return this.numberOfOutputs;
    }
    [S$3._connect](...args) {
      return this.connect.apply(this, args);
    }
    [S$1.$disconnect](...args) {
      return this.disconnect.apply(this, args);
    }
    [S$3.$connectNode](destination, output = 0, input = 0) {
      if (destination == null) dart.nullFailed(I[158], 333, 30, "destination");
      if (output == null) dart.nullFailed(I[158], 333, 48, "output");
      if (input == null) dart.nullFailed(I[158], 333, 64, "input");
      this[S$3._connect](destination, output, input);
    }
    [S$3.$connectParam](destination, output = 0) {
      if (destination == null) dart.nullFailed(I[158], 337, 32, "destination");
      if (output == null) dart.nullFailed(I[158], 337, 50, "output");
      this[S$3._connect](destination, output);
    }
  };
  dart.addTypeTests(web_audio.AudioNode);
  dart.addTypeCaches(web_audio.AudioNode);
  dart.setMethodSignature(web_audio.AudioNode, () => ({
    __proto__: dart.getMethods(web_audio.AudioNode.__proto__),
    [S$3._connect]: dart.fnType(web_audio.AudioNode, [dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$1.$disconnect]: dart.fnType(dart.void, [], [dart.dynamic, dart.nullable(core.int), dart.nullable(core.int)]),
    [S$3.$connectNode]: dart.fnType(dart.void, [web_audio.AudioNode], [core.int, core.int]),
    [S$3.$connectParam]: dart.fnType(dart.void, [web_audio.AudioParam], [core.int])
  }));
  dart.setGetterSignature(web_audio.AudioNode, () => ({
    __proto__: dart.getGetters(web_audio.AudioNode.__proto__),
    [S$3.$channelCount]: dart.nullable(core.int),
    [S$3.$channelCountMode]: dart.nullable(core.String),
    [S$3.$channelInterpretation]: dart.nullable(core.String),
    [S$3.$context]: dart.nullable(web_audio.BaseAudioContext),
    [S$3.$numberOfInputs]: dart.nullable(core.int),
    [S$3.$numberOfOutputs]: dart.nullable(core.int)
  }));
  dart.setSetterSignature(web_audio.AudioNode, () => ({
    __proto__: dart.getSetters(web_audio.AudioNode.__proto__),
    [S$3.$channelCount]: dart.nullable(core.int),
    [S$3.$channelCountMode]: dart.nullable(core.String),
    [S$3.$channelInterpretation]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_audio.AudioNode, I[159]);
  dart.registerExtension("AudioNode", web_audio.AudioNode);
  web_audio.AnalyserNode = class AnalyserNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 41, 41, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.AnalyserNode._create_1(context, options_1);
      }
      return web_audio.AnalyserNode._create_2(context);
    }
    static _create_1(context, options) {
      return new AnalyserNode(context, options);
    }
    static _create_2(context) {
      return new AnalyserNode(context);
    }
    get [S$3.$fftSize]() {
      return this.fftSize;
    }
    set [S$3.$fftSize](value) {
      this.fftSize = value;
    }
    get [S$3.$frequencyBinCount]() {
      return this.frequencyBinCount;
    }
    get [S$3.$maxDecibels]() {
      return this.maxDecibels;
    }
    set [S$3.$maxDecibels](value) {
      this.maxDecibels = value;
    }
    get [S$3.$minDecibels]() {
      return this.minDecibels;
    }
    set [S$3.$minDecibels](value) {
      this.minDecibels = value;
    }
    get [S$3.$smoothingTimeConstant]() {
      return this.smoothingTimeConstant;
    }
    set [S$3.$smoothingTimeConstant](value) {
      this.smoothingTimeConstant = value;
    }
    [S$3.$getByteFrequencyData](...args) {
      return this.getByteFrequencyData.apply(this, args);
    }
    [S$3.$getByteTimeDomainData](...args) {
      return this.getByteTimeDomainData.apply(this, args);
    }
    [S$3.$getFloatFrequencyData](...args) {
      return this.getFloatFrequencyData.apply(this, args);
    }
    [S$3.$getFloatTimeDomainData](...args) {
      return this.getFloatTimeDomainData.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AnalyserNode);
  dart.addTypeCaches(web_audio.AnalyserNode);
  dart.setMethodSignature(web_audio.AnalyserNode, () => ({
    __proto__: dart.getMethods(web_audio.AnalyserNode.__proto__),
    [S$3.$getByteFrequencyData]: dart.fnType(dart.void, [typed_data.Uint8List]),
    [S$3.$getByteTimeDomainData]: dart.fnType(dart.void, [typed_data.Uint8List]),
    [S$3.$getFloatFrequencyData]: dart.fnType(dart.void, [typed_data.Float32List]),
    [S$3.$getFloatTimeDomainData]: dart.fnType(dart.void, [typed_data.Float32List])
  }));
  dart.setGetterSignature(web_audio.AnalyserNode, () => ({
    __proto__: dart.getGetters(web_audio.AnalyserNode.__proto__),
    [S$3.$fftSize]: dart.nullable(core.int),
    [S$3.$frequencyBinCount]: dart.nullable(core.int),
    [S$3.$maxDecibels]: dart.nullable(core.num),
    [S$3.$minDecibels]: dart.nullable(core.num),
    [S$3.$smoothingTimeConstant]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(web_audio.AnalyserNode, () => ({
    __proto__: dart.getSetters(web_audio.AnalyserNode.__proto__),
    [S$3.$fftSize]: dart.nullable(core.int),
    [S$3.$maxDecibels]: dart.nullable(core.num),
    [S$3.$minDecibels]: dart.nullable(core.num),
    [S$3.$smoothingTimeConstant]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AnalyserNode, I[159]);
  dart.registerExtension("AnalyserNode", web_audio.AnalyserNode);
  dart.registerExtension("RealtimeAnalyserNode", web_audio.AnalyserNode);
  web_audio.AudioBuffer = class AudioBuffer$ extends _interceptors.Interceptor {
    static new(options) {
      if (options == null) dart.nullFailed(I[158], 90, 27, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.AudioBuffer._create_1(options_1);
    }
    static _create_1(options) {
      return new AudioBuffer(options);
    }
    get [S$.$duration]() {
      return this.duration;
    }
    get [$length]() {
      return this.length;
    }
    get [S$3.$numberOfChannels]() {
      return this.numberOfChannels;
    }
    get [S$3.$sampleRate]() {
      return this.sampleRate;
    }
    [S$3.$copyFromChannel](...args) {
      return this.copyFromChannel.apply(this, args);
    }
    [S$3.$copyToChannel](...args) {
      return this.copyToChannel.apply(this, args);
    }
    [S$3.$getChannelData](...args) {
      return this.getChannelData.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AudioBuffer);
  dart.addTypeCaches(web_audio.AudioBuffer);
  dart.setMethodSignature(web_audio.AudioBuffer, () => ({
    __proto__: dart.getMethods(web_audio.AudioBuffer.__proto__),
    [S$3.$copyFromChannel]: dart.fnType(dart.void, [typed_data.Float32List, core.int], [dart.nullable(core.int)]),
    [S$3.$copyToChannel]: dart.fnType(dart.void, [typed_data.Float32List, core.int], [dart.nullable(core.int)]),
    [S$3.$getChannelData]: dart.fnType(typed_data.Float32List, [core.int])
  }));
  dart.setGetterSignature(web_audio.AudioBuffer, () => ({
    __proto__: dart.getGetters(web_audio.AudioBuffer.__proto__),
    [S$.$duration]: dart.nullable(core.num),
    [$length]: dart.nullable(core.int),
    [S$3.$numberOfChannels]: dart.nullable(core.int),
    [S$3.$sampleRate]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioBuffer, I[159]);
  dart.registerExtension("AudioBuffer", web_audio.AudioBuffer);
  web_audio.AudioScheduledSourceNode = class AudioScheduledSourceNode extends web_audio.AudioNode {
    [S$3.$start2](...args) {
      return this.start.apply(this, args);
    }
    [S$.$stop](...args) {
      return this.stop.apply(this, args);
    }
    get [S.$onEnded]() {
      return web_audio.AudioScheduledSourceNode.endedEvent.forTarget(this);
    }
  };
  dart.addTypeTests(web_audio.AudioScheduledSourceNode);
  dart.addTypeCaches(web_audio.AudioScheduledSourceNode);
  dart.setMethodSignature(web_audio.AudioScheduledSourceNode, () => ({
    __proto__: dart.getMethods(web_audio.AudioScheduledSourceNode.__proto__),
    [S$3.$start2]: dart.fnType(dart.void, [], [dart.nullable(core.num)]),
    [S$.$stop]: dart.fnType(dart.void, [], [dart.nullable(core.num)])
  }));
  dart.setGetterSignature(web_audio.AudioScheduledSourceNode, () => ({
    __proto__: dart.getGetters(web_audio.AudioScheduledSourceNode.__proto__),
    [S.$onEnded]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(web_audio.AudioScheduledSourceNode, I[159]);
  dart.defineLazy(web_audio.AudioScheduledSourceNode, {
    /*web_audio.AudioScheduledSourceNode.endedEvent*/get endedEvent() {
      return C[251] || CT.C251;
    }
  }, false);
  dart.registerExtension("AudioScheduledSourceNode", web_audio.AudioScheduledSourceNode);
  web_audio.AudioBufferSourceNode = class AudioBufferSourceNode$ extends web_audio.AudioScheduledSourceNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 126, 50, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.AudioBufferSourceNode._create_1(context, options_1);
      }
      return web_audio.AudioBufferSourceNode._create_2(context);
    }
    static _create_1(context, options) {
      return new AudioBufferSourceNode(context, options);
    }
    static _create_2(context) {
      return new AudioBufferSourceNode(context);
    }
    get [$buffer]() {
      return this.buffer;
    }
    set [$buffer](value) {
      this.buffer = value;
    }
    get [S$3.$detune]() {
      return this.detune;
    }
    get [S$.$loop]() {
      return this.loop;
    }
    set [S$.$loop](value) {
      this.loop = value;
    }
    get [S$3.$loopEnd]() {
      return this.loopEnd;
    }
    set [S$3.$loopEnd](value) {
      this.loopEnd = value;
    }
    get [S$3.$loopStart]() {
      return this.loopStart;
    }
    set [S$3.$loopStart](value) {
      this.loopStart = value;
    }
    get [S$.$playbackRate]() {
      return this.playbackRate;
    }
    [S$.$start](...args) {
      return this.start.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AudioBufferSourceNode);
  dart.addTypeCaches(web_audio.AudioBufferSourceNode);
  dart.setMethodSignature(web_audio.AudioBufferSourceNode, () => ({
    __proto__: dart.getMethods(web_audio.AudioBufferSourceNode.__proto__),
    [S$.$start]: dart.fnType(dart.void, [], [dart.nullable(core.num), dart.nullable(core.num), dart.nullable(core.num)])
  }));
  dart.setGetterSignature(web_audio.AudioBufferSourceNode, () => ({
    __proto__: dart.getGetters(web_audio.AudioBufferSourceNode.__proto__),
    [$buffer]: dart.nullable(web_audio.AudioBuffer),
    [S$3.$detune]: dart.nullable(web_audio.AudioParam),
    [S$.$loop]: dart.nullable(core.bool),
    [S$3.$loopEnd]: dart.nullable(core.num),
    [S$3.$loopStart]: dart.nullable(core.num),
    [S$.$playbackRate]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setSetterSignature(web_audio.AudioBufferSourceNode, () => ({
    __proto__: dart.getSetters(web_audio.AudioBufferSourceNode.__proto__),
    [$buffer]: dart.nullable(web_audio.AudioBuffer),
    [S$.$loop]: dart.nullable(core.bool),
    [S$3.$loopEnd]: dart.nullable(core.num),
    [S$3.$loopStart]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioBufferSourceNode, I[159]);
  dart.registerExtension("AudioBufferSourceNode", web_audio.AudioBufferSourceNode);
  web_audio.BaseAudioContext = class BaseAudioContext extends html$.EventTarget {
    get [S$.$currentTime]() {
      return this.currentTime;
    }
    get [S$3.$destination]() {
      return this.destination;
    }
    get [S$3.$listener]() {
      return this.listener;
    }
    get [S$3.$sampleRate]() {
      return this.sampleRate;
    }
    get [S$.$state]() {
      return this.state;
    }
    [S$3.$createAnalyser](...args) {
      return this.createAnalyser.apply(this, args);
    }
    [S$3.$createBiquadFilter](...args) {
      return this.createBiquadFilter.apply(this, args);
    }
    [S$3.$createBuffer](...args) {
      return this.createBuffer.apply(this, args);
    }
    [S$3.$createBufferSource](...args) {
      return this.createBufferSource.apply(this, args);
    }
    [S$3.$createChannelMerger](...args) {
      return this.createChannelMerger.apply(this, args);
    }
    [S$4.$createChannelSplitter](...args) {
      return this.createChannelSplitter.apply(this, args);
    }
    [S$4.$createConstantSource](...args) {
      return this.createConstantSource.apply(this, args);
    }
    [S$4.$createConvolver](...args) {
      return this.createConvolver.apply(this, args);
    }
    [S$4.$createDelay](...args) {
      return this.createDelay.apply(this, args);
    }
    [S$4.$createDynamicsCompressor](...args) {
      return this.createDynamicsCompressor.apply(this, args);
    }
    [S$3.$createGain](...args) {
      return this.createGain.apply(this, args);
    }
    [S$4.$createIirFilter](...args) {
      return this.createIIRFilter.apply(this, args);
    }
    [S$4.$createMediaElementSource](...args) {
      return this.createMediaElementSource.apply(this, args);
    }
    [S$4.$createMediaStreamDestination](...args) {
      return this.createMediaStreamDestination.apply(this, args);
    }
    [S$4.$createMediaStreamSource](...args) {
      return this.createMediaStreamSource.apply(this, args);
    }
    [S$4.$createOscillator](...args) {
      return this.createOscillator.apply(this, args);
    }
    [S$4.$createPanner](...args) {
      return this.createPanner.apply(this, args);
    }
    [S$4.$createPeriodicWave](real, imag, options = null) {
      if (real == null) dart.nullFailed(I[158], 658, 45, "real");
      if (imag == null) dart.nullFailed(I[158], 658, 61, "imag");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return this[S$4._createPeriodicWave_1](real, imag, options_1);
      }
      return this[S$4._createPeriodicWave_2](real, imag);
    }
    [S$4._createPeriodicWave_1](...args) {
      return this.createPeriodicWave.apply(this, args);
    }
    [S$4._createPeriodicWave_2](...args) {
      return this.createPeriodicWave.apply(this, args);
    }
    [S$3.$createScriptProcessor](...args) {
      return this.createScriptProcessor.apply(this, args);
    }
    [S$4.$createStereoPanner](...args) {
      return this.createStereoPanner.apply(this, args);
    }
    [S$4.$createWaveShaper](...args) {
      return this.createWaveShaper.apply(this, args);
    }
    [S$3.$decodeAudioData](audioData, successCallback = null, errorCallback = null) {
      if (audioData == null) dart.nullFailed(I[158], 682, 50, "audioData");
      return js_util.promiseToFuture(web_audio.AudioBuffer, this.decodeAudioData(audioData, successCallback, errorCallback));
    }
    [S$1.$resume]() {
      return js_util.promiseToFuture(dart.dynamic, this.resume());
    }
  };
  dart.addTypeTests(web_audio.BaseAudioContext);
  dart.addTypeCaches(web_audio.BaseAudioContext);
  dart.setMethodSignature(web_audio.BaseAudioContext, () => ({
    __proto__: dart.getMethods(web_audio.BaseAudioContext.__proto__),
    [S$3.$createAnalyser]: dart.fnType(web_audio.AnalyserNode, []),
    [S$3.$createBiquadFilter]: dart.fnType(web_audio.BiquadFilterNode, []),
    [S$3.$createBuffer]: dart.fnType(web_audio.AudioBuffer, [core.int, core.int, core.num]),
    [S$3.$createBufferSource]: dart.fnType(web_audio.AudioBufferSourceNode, []),
    [S$3.$createChannelMerger]: dart.fnType(web_audio.ChannelMergerNode, [], [dart.nullable(core.int)]),
    [S$4.$createChannelSplitter]: dart.fnType(web_audio.ChannelSplitterNode, [], [dart.nullable(core.int)]),
    [S$4.$createConstantSource]: dart.fnType(web_audio.ConstantSourceNode, []),
    [S$4.$createConvolver]: dart.fnType(web_audio.ConvolverNode, []),
    [S$4.$createDelay]: dart.fnType(web_audio.DelayNode, [], [dart.nullable(core.num)]),
    [S$4.$createDynamicsCompressor]: dart.fnType(web_audio.DynamicsCompressorNode, []),
    [S$3.$createGain]: dart.fnType(web_audio.GainNode, []),
    [S$4.$createIirFilter]: dart.fnType(web_audio.IirFilterNode, [core.List$(core.num), core.List$(core.num)]),
    [S$4.$createMediaElementSource]: dart.fnType(web_audio.MediaElementAudioSourceNode, [html$.MediaElement]),
    [S$4.$createMediaStreamDestination]: dart.fnType(web_audio.MediaStreamAudioDestinationNode, []),
    [S$4.$createMediaStreamSource]: dart.fnType(web_audio.MediaStreamAudioSourceNode, [html$.MediaStream]),
    [S$4.$createOscillator]: dart.fnType(web_audio.OscillatorNode, []),
    [S$4.$createPanner]: dart.fnType(web_audio.PannerNode, []),
    [S$4.$createPeriodicWave]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num)], [dart.nullable(core.Map)]),
    [S$4._createPeriodicWave_1]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num), dart.dynamic]),
    [S$4._createPeriodicWave_2]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num)]),
    [S$3.$createScriptProcessor]: dart.fnType(web_audio.ScriptProcessorNode, [], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$createStereoPanner]: dart.fnType(web_audio.StereoPannerNode, []),
    [S$4.$createWaveShaper]: dart.fnType(web_audio.WaveShaperNode, []),
    [S$3.$decodeAudioData]: dart.fnType(async.Future$(web_audio.AudioBuffer), [typed_data.ByteBuffer], [dart.nullable(dart.fnType(dart.void, [web_audio.AudioBuffer])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))]),
    [S$1.$resume]: dart.fnType(async.Future, [])
  }));
  dart.setGetterSignature(web_audio.BaseAudioContext, () => ({
    __proto__: dart.getGetters(web_audio.BaseAudioContext.__proto__),
    [S$.$currentTime]: dart.nullable(core.num),
    [S$3.$destination]: dart.nullable(web_audio.AudioDestinationNode),
    [S$3.$listener]: dart.nullable(web_audio.AudioListener),
    [S$3.$sampleRate]: dart.nullable(core.num),
    [S$.$state]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_audio.BaseAudioContext, I[159]);
  dart.registerExtension("BaseAudioContext", web_audio.BaseAudioContext);
  web_audio.AudioContext = class AudioContext extends web_audio.BaseAudioContext {
    static get supported() {
      return !!(window.AudioContext || window.webkitAudioContext);
    }
    get [S$3.$baseLatency]() {
      return this.baseLatency;
    }
    [S.$close]() {
      return js_util.promiseToFuture(dart.dynamic, this.close());
    }
    [S$3.$getOutputTimestamp]() {
      return dart.nullCheck(html_common.convertNativeToDart_Dictionary(this[S$3._getOutputTimestamp_1]()));
    }
    [S$3._getOutputTimestamp_1](...args) {
      return this.getOutputTimestamp.apply(this, args);
    }
    [S$3.$suspend]() {
      return js_util.promiseToFuture(dart.dynamic, this.suspend());
    }
    static new() {
      return new (window.AudioContext || window.webkitAudioContext)();
    }
    [S$3.$createGain]() {
      if (this.createGain !== undefined) {
        return this.createGain();
      } else {
        return this.createGainNode();
      }
    }
    [S$3.$createScriptProcessor](bufferSize = null, numberOfInputChannels = null, numberOfOutputChannels = null) {
      let $function = this.createScriptProcessor || this.createJavaScriptNode;
      if (numberOfOutputChannels != null) {
        return $function.call(this, bufferSize, numberOfInputChannels, numberOfOutputChannels);
      } else if (numberOfInputChannels != null) {
        return $function.call(this, bufferSize, numberOfInputChannels);
      } else if (bufferSize != null) {
        return $function.call(this, bufferSize);
      } else {
        return $function.call(this);
      }
    }
    [S$3._decodeAudioData](...args) {
      return this.decodeAudioData.apply(this, args);
    }
    [S$3.$decodeAudioData](audioData, successCallback = null, errorCallback = null) {
      if (audioData == null) dart.nullFailed(I[158], 233, 50, "audioData");
      if (successCallback != null && errorCallback != null) {
        return this[S$3._decodeAudioData](audioData, successCallback, errorCallback);
      }
      let completer = T$0.CompleterOfAudioBuffer().new();
      this[S$3._decodeAudioData](audioData, dart.fn(value => {
        if (value == null) dart.nullFailed(I[158], 241, 34, "value");
        completer.complete(value);
      }, T$0.AudioBufferTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[158], 243, 9, "error");
        if (error == null) {
          completer.completeError("");
        } else {
          completer.completeError(error);
        }
      }, T$0.DomExceptionTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(web_audio.AudioContext);
  dart.addTypeCaches(web_audio.AudioContext);
  dart.setMethodSignature(web_audio.AudioContext, () => ({
    __proto__: dart.getMethods(web_audio.AudioContext.__proto__),
    [S.$close]: dart.fnType(async.Future, []),
    [S$3.$getOutputTimestamp]: dart.fnType(core.Map, []),
    [S$3._getOutputTimestamp_1]: dart.fnType(dart.dynamic, []),
    [S$3.$suspend]: dart.fnType(async.Future, []),
    [S$3._decodeAudioData]: dart.fnType(async.Future$(web_audio.AudioBuffer), [typed_data.ByteBuffer], [dart.nullable(dart.fnType(dart.void, [web_audio.AudioBuffer])), dart.nullable(dart.fnType(dart.void, [html$.DomException]))])
  }));
  dart.setGetterSignature(web_audio.AudioContext, () => ({
    __proto__: dart.getGetters(web_audio.AudioContext.__proto__),
    [S$3.$baseLatency]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioContext, I[159]);
  dart.registerExtension("AudioContext", web_audio.AudioContext);
  dart.registerExtension("webkitAudioContext", web_audio.AudioContext);
  web_audio.AudioDestinationNode = class AudioDestinationNode extends web_audio.AudioNode {
    get [S$4.$maxChannelCount]() {
      return this.maxChannelCount;
    }
  };
  dart.addTypeTests(web_audio.AudioDestinationNode);
  dart.addTypeCaches(web_audio.AudioDestinationNode);
  dart.setGetterSignature(web_audio.AudioDestinationNode, () => ({
    __proto__: dart.getGetters(web_audio.AudioDestinationNode.__proto__),
    [S$4.$maxChannelCount]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_audio.AudioDestinationNode, I[159]);
  dart.registerExtension("AudioDestinationNode", web_audio.AudioDestinationNode);
  web_audio.AudioListener = class AudioListener extends _interceptors.Interceptor {
    get [S$4.$forwardX]() {
      return this.forwardX;
    }
    get [S$4.$forwardY]() {
      return this.forwardY;
    }
    get [S$4.$forwardZ]() {
      return this.forwardZ;
    }
    get [S$2.$positionX]() {
      return this.positionX;
    }
    get [S$2.$positionY]() {
      return this.positionY;
    }
    get [S$4.$positionZ]() {
      return this.positionZ;
    }
    get [S$4.$upX]() {
      return this.upX;
    }
    get [S$4.$upY]() {
      return this.upY;
    }
    get [S$4.$upZ]() {
      return this.upZ;
    }
    [S$4.$setOrientation](...args) {
      return this.setOrientation.apply(this, args);
    }
    [S$2.$setPosition](...args) {
      return this.setPosition.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AudioListener);
  dart.addTypeCaches(web_audio.AudioListener);
  dart.setMethodSignature(web_audio.AudioListener, () => ({
    __proto__: dart.getMethods(web_audio.AudioListener.__proto__),
    [S$4.$setOrientation]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
    [S$2.$setPosition]: dart.fnType(dart.void, [core.num, core.num, core.num])
  }));
  dart.setGetterSignature(web_audio.AudioListener, () => ({
    __proto__: dart.getGetters(web_audio.AudioListener.__proto__),
    [S$4.$forwardX]: dart.nullable(web_audio.AudioParam),
    [S$4.$forwardY]: dart.nullable(web_audio.AudioParam),
    [S$4.$forwardZ]: dart.nullable(web_audio.AudioParam),
    [S$2.$positionX]: dart.nullable(web_audio.AudioParam),
    [S$2.$positionY]: dart.nullable(web_audio.AudioParam),
    [S$4.$positionZ]: dart.nullable(web_audio.AudioParam),
    [S$4.$upX]: dart.nullable(web_audio.AudioParam),
    [S$4.$upY]: dart.nullable(web_audio.AudioParam),
    [S$4.$upZ]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.AudioListener, I[159]);
  dart.registerExtension("AudioListener", web_audio.AudioListener);
  web_audio.AudioParam = class AudioParam extends _interceptors.Interceptor {
    get [S$1.$defaultValue]() {
      return this.defaultValue;
    }
    get [S$4.$maxValue]() {
      return this.maxValue;
    }
    get [S$4.$minValue]() {
      return this.minValue;
    }
    get [S.$value]() {
      return this.value;
    }
    set [S.$value](value) {
      this.value = value;
    }
    [S$4.$cancelAndHoldAtTime](...args) {
      return this.cancelAndHoldAtTime.apply(this, args);
    }
    [S$4.$cancelScheduledValues](...args) {
      return this.cancelScheduledValues.apply(this, args);
    }
    [S$4.$exponentialRampToValueAtTime](...args) {
      return this.exponentialRampToValueAtTime.apply(this, args);
    }
    [S$4.$linearRampToValueAtTime](...args) {
      return this.linearRampToValueAtTime.apply(this, args);
    }
    [S$4.$setTargetAtTime](...args) {
      return this.setTargetAtTime.apply(this, args);
    }
    [S$4.$setValueAtTime](...args) {
      return this.setValueAtTime.apply(this, args);
    }
    [S$4.$setValueCurveAtTime](...args) {
      return this.setValueCurveAtTime.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AudioParam);
  dart.addTypeCaches(web_audio.AudioParam);
  dart.setMethodSignature(web_audio.AudioParam, () => ({
    __proto__: dart.getMethods(web_audio.AudioParam.__proto__),
    [S$4.$cancelAndHoldAtTime]: dart.fnType(web_audio.AudioParam, [core.num]),
    [S$4.$cancelScheduledValues]: dart.fnType(web_audio.AudioParam, [core.num]),
    [S$4.$exponentialRampToValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
    [S$4.$linearRampToValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
    [S$4.$setTargetAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num, core.num]),
    [S$4.$setValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
    [S$4.$setValueCurveAtTime]: dart.fnType(web_audio.AudioParam, [core.List$(core.num), core.num, core.num])
  }));
  dart.setGetterSignature(web_audio.AudioParam, () => ({
    __proto__: dart.getGetters(web_audio.AudioParam.__proto__),
    [S$1.$defaultValue]: dart.nullable(core.num),
    [S$4.$maxValue]: dart.nullable(core.num),
    [S$4.$minValue]: dart.nullable(core.num),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(web_audio.AudioParam, () => ({
    __proto__: dart.getSetters(web_audio.AudioParam.__proto__),
    [S.$value]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioParam, I[159]);
  dart.registerExtension("AudioParam", web_audio.AudioParam);
  const Interceptor_MapMixin$36$2 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
  (Interceptor_MapMixin$36$2.new = function() {
    Interceptor_MapMixin$36$2.__proto__.new.call(this);
  }).prototype = Interceptor_MapMixin$36$2.prototype;
  dart.applyMixin(Interceptor_MapMixin$36$2, collection.MapMixin$(core.String, dart.dynamic));
  web_audio.AudioParamMap = class AudioParamMap extends Interceptor_MapMixin$36$2 {
    [S$4._getItem$1](key) {
      if (key == null) dart.nullFailed(I[158], 388, 24, "key");
      return html_common.convertNativeToDart_Dictionary(this.get(key));
    }
    [$addAll](other) {
      T$0.MapOfString$dynamic().as(other);
      if (other == null) dart.nullFailed(I[158], 391, 36, "other");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$containsValue](value) {
      return this[$values][$any](dart.fn(e => {
        if (e == null) dart.nullFailed(I[158], 395, 52, "e");
        return dart.equals(e, value);
      }, T$0.MapTobool()));
    }
    [$containsKey](key) {
      return this[S$4._getItem$1](core.String.as(key)) != null;
    }
    [$_get](key) {
      return this[S$4._getItem$1](core.String.as(key));
    }
    [$forEach](f) {
      if (f == null) dart.nullFailed(I[158], 401, 21, "f");
      let entries = this.entries();
      while (true) {
        let entry = entries.next();
        if (entry.done) return;
        f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
      }
    }
    get [$keys]() {
      let keys = T$.JSArrayOfString().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[158], 413, 14, "k");
        return keys[$add](k);
      }, T$0.StringAnddynamicTovoid()));
      return keys;
    }
    get [$values]() {
      let values = T$0.JSArrayOfMap().of([]);
      this[$forEach](dart.fn((k, v) => {
        if (k == null) dart.nullFailed(I[158], 419, 14, "k");
        return values[$add](core.Map.as(v));
      }, T$0.StringAnddynamicTovoid()));
      return values;
    }
    get [$length]() {
      return this.size;
    }
    get [$isEmpty]() {
      return this[$length] === 0;
    }
    get [$isNotEmpty]() {
      return !dart.test(this[$isEmpty]);
    }
    [$_set](key, value$) {
      let value = value$;
      core.String.as(key);
      if (key == null) dart.nullFailed(I[158], 429, 28, "key");
      dart.throw(new core.UnsupportedError.new("Not supported"));
      return value$;
    }
    [$putIfAbsent](key, ifAbsent) {
      core.String.as(key);
      if (key == null) dart.nullFailed(I[158], 433, 30, "key");
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[158], 433, 43, "ifAbsent");
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$remove](key) {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
    [$clear]() {
      dart.throw(new core.UnsupportedError.new("Not supported"));
    }
  };
  dart.addTypeTests(web_audio.AudioParamMap);
  dart.addTypeCaches(web_audio.AudioParamMap);
  dart.setMethodSignature(web_audio.AudioParamMap, () => ({
    __proto__: dart.getMethods(web_audio.AudioParamMap.__proto__),
    [S$4._getItem$1]: dart.fnType(dart.nullable(core.Map), [core.String]),
    [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
    [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
    [$_get]: dart.fnType(dart.nullable(core.Map), [dart.dynamic]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$remove]: dart.fnType(core.String, [dart.dynamic]),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(web_audio.AudioParamMap, () => ({
    __proto__: dart.getGetters(web_audio.AudioParamMap.__proto__),
    [$keys]: core.Iterable$(core.String),
    [$values]: core.Iterable$(core.Map)
  }));
  dart.setLibraryUri(web_audio.AudioParamMap, I[159]);
  dart.registerExtension("AudioParamMap", web_audio.AudioParamMap);
  web_audio.AudioProcessingEvent = class AudioProcessingEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[158], 456, 39, "type");
      if (eventInitDict == null) dart.nullFailed(I[158], 456, 49, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return web_audio.AudioProcessingEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new AudioProcessingEvent(type, eventInitDict);
    }
    get [S$4.$inputBuffer]() {
      return this.inputBuffer;
    }
    get [S$4.$outputBuffer]() {
      return this.outputBuffer;
    }
    get [S$4.$playbackTime]() {
      return this.playbackTime;
    }
  };
  dart.addTypeTests(web_audio.AudioProcessingEvent);
  dart.addTypeCaches(web_audio.AudioProcessingEvent);
  dart.setGetterSignature(web_audio.AudioProcessingEvent, () => ({
    __proto__: dart.getGetters(web_audio.AudioProcessingEvent.__proto__),
    [S$4.$inputBuffer]: dart.nullable(web_audio.AudioBuffer),
    [S$4.$outputBuffer]: dart.nullable(web_audio.AudioBuffer),
    [S$4.$playbackTime]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioProcessingEvent, I[159]);
  dart.registerExtension("AudioProcessingEvent", web_audio.AudioProcessingEvent);
  web_audio.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
    get [S$.$enabled]() {
      return this.enabled;
    }
    set [S$.$enabled](value) {
      this.enabled = value;
    }
    get [S.$id]() {
      return this.id;
    }
    get [S$.$kind]() {
      return this.kind;
    }
    get [S$.$label]() {
      return this.label;
    }
    get [S$1.$language]() {
      return this.language;
    }
    get [S$3.$sourceBuffer]() {
      return this.sourceBuffer;
    }
  };
  dart.addTypeTests(web_audio.AudioTrack);
  dart.addTypeCaches(web_audio.AudioTrack);
  dart.setGetterSignature(web_audio.AudioTrack, () => ({
    __proto__: dart.getGetters(web_audio.AudioTrack.__proto__),
    [S$.$enabled]: dart.nullable(core.bool),
    [S.$id]: dart.nullable(core.String),
    [S$.$kind]: dart.nullable(core.String),
    [S$.$label]: dart.nullable(core.String),
    [S$1.$language]: dart.nullable(core.String),
    [S$3.$sourceBuffer]: dart.nullable(html$.SourceBuffer)
  }));
  dart.setSetterSignature(web_audio.AudioTrack, () => ({
    __proto__: dart.getSetters(web_audio.AudioTrack.__proto__),
    [S$.$enabled]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(web_audio.AudioTrack, I[159]);
  dart.registerExtension("AudioTrack", web_audio.AudioTrack);
  web_audio.AudioTrackList = class AudioTrackList extends html$.EventTarget {
    get [$length]() {
      return this.length;
    }
    [S$4.__getter__$1](...args) {
      return this.__getter__.apply(this, args);
    }
    [S$1.$getTrackById](...args) {
      return this.getTrackById.apply(this, args);
    }
    get [S.$onChange]() {
      return web_audio.AudioTrackList.changeEvent.forTarget(this);
    }
  };
  dart.addTypeTests(web_audio.AudioTrackList);
  dart.addTypeCaches(web_audio.AudioTrackList);
  dart.setMethodSignature(web_audio.AudioTrackList, () => ({
    __proto__: dart.getMethods(web_audio.AudioTrackList.__proto__),
    [S$4.__getter__$1]: dart.fnType(web_audio.AudioTrack, [core.int]),
    [S$1.$getTrackById]: dart.fnType(dart.nullable(web_audio.AudioTrack), [core.String])
  }));
  dart.setGetterSignature(web_audio.AudioTrackList, () => ({
    __proto__: dart.getGetters(web_audio.AudioTrackList.__proto__),
    [$length]: dart.nullable(core.int),
    [S.$onChange]: async.Stream$(html$.Event)
  }));
  dart.setLibraryUri(web_audio.AudioTrackList, I[159]);
  dart.defineLazy(web_audio.AudioTrackList, {
    /*web_audio.AudioTrackList.changeEvent*/get changeEvent() {
      return C[236] || CT.C236;
    }
  }, false);
  dart.registerExtension("AudioTrackList", web_audio.AudioTrackList);
  web_audio.AudioWorkletGlobalScope = class AudioWorkletGlobalScope extends html$.WorkletGlobalScope {
    get [S$.$currentTime]() {
      return this.currentTime;
    }
    get [S$3.$sampleRate]() {
      return this.sampleRate;
    }
    [S$4.$registerProcessor](...args) {
      return this.registerProcessor.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.AudioWorkletGlobalScope);
  dart.addTypeCaches(web_audio.AudioWorkletGlobalScope);
  dart.setMethodSignature(web_audio.AudioWorkletGlobalScope, () => ({
    __proto__: dart.getMethods(web_audio.AudioWorkletGlobalScope.__proto__),
    [S$4.$registerProcessor]: dart.fnType(dart.void, [core.String, core.Object])
  }));
  dart.setGetterSignature(web_audio.AudioWorkletGlobalScope, () => ({
    __proto__: dart.getGetters(web_audio.AudioWorkletGlobalScope.__proto__),
    [S$.$currentTime]: dart.nullable(core.num),
    [S$3.$sampleRate]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.AudioWorkletGlobalScope, I[159]);
  dart.registerExtension("AudioWorkletGlobalScope", web_audio.AudioWorkletGlobalScope);
  web_audio.AudioWorkletNode = class AudioWorkletNode$ extends web_audio.AudioNode {
    static new(context, name, options = null) {
      if (context == null) dart.nullFailed(I[158], 568, 45, "context");
      if (name == null) dart.nullFailed(I[158], 568, 61, "name");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.AudioWorkletNode._create_1(context, name, options_1);
      }
      return web_audio.AudioWorkletNode._create_2(context, name);
    }
    static _create_1(context, name, options) {
      return new AudioWorkletNode(context, name, options);
    }
    static _create_2(context, name) {
      return new AudioWorkletNode(context, name);
    }
    get [S$4.$parameters]() {
      return this.parameters;
    }
  };
  dart.addTypeTests(web_audio.AudioWorkletNode);
  dart.addTypeCaches(web_audio.AudioWorkletNode);
  dart.setGetterSignature(web_audio.AudioWorkletNode, () => ({
    __proto__: dart.getGetters(web_audio.AudioWorkletNode.__proto__),
    [S$4.$parameters]: dart.nullable(web_audio.AudioParamMap)
  }));
  dart.setLibraryUri(web_audio.AudioWorkletNode, I[159]);
  dart.registerExtension("AudioWorkletNode", web_audio.AudioWorkletNode);
  web_audio.AudioWorkletProcessor = class AudioWorkletProcessor extends _interceptors.Interceptor {};
  dart.addTypeTests(web_audio.AudioWorkletProcessor);
  dart.addTypeCaches(web_audio.AudioWorkletProcessor);
  dart.setLibraryUri(web_audio.AudioWorkletProcessor, I[159]);
  dart.registerExtension("AudioWorkletProcessor", web_audio.AudioWorkletProcessor);
  web_audio.BiquadFilterNode = class BiquadFilterNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 706, 45, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.BiquadFilterNode._create_1(context, options_1);
      }
      return web_audio.BiquadFilterNode._create_2(context);
    }
    static _create_1(context, options) {
      return new BiquadFilterNode(context, options);
    }
    static _create_2(context) {
      return new BiquadFilterNode(context);
    }
    get [S$4.$Q]() {
      return this.Q;
    }
    get [S$3.$detune]() {
      return this.detune;
    }
    get [S$4.$frequency]() {
      return this.frequency;
    }
    get [S$4.$gain]() {
      return this.gain;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    [S$4.$getFrequencyResponse](...args) {
      return this.getFrequencyResponse.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.BiquadFilterNode);
  dart.addTypeCaches(web_audio.BiquadFilterNode);
  dart.setMethodSignature(web_audio.BiquadFilterNode, () => ({
    __proto__: dart.getMethods(web_audio.BiquadFilterNode.__proto__),
    [S$4.$getFrequencyResponse]: dart.fnType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])
  }));
  dart.setGetterSignature(web_audio.BiquadFilterNode, () => ({
    __proto__: dart.getGetters(web_audio.BiquadFilterNode.__proto__),
    [S$4.$Q]: dart.nullable(web_audio.AudioParam),
    [S$3.$detune]: dart.nullable(web_audio.AudioParam),
    [S$4.$frequency]: dart.nullable(web_audio.AudioParam),
    [S$4.$gain]: dart.nullable(web_audio.AudioParam),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(web_audio.BiquadFilterNode, () => ({
    __proto__: dart.getSetters(web_audio.BiquadFilterNode.__proto__),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_audio.BiquadFilterNode, I[159]);
  dart.registerExtension("BiquadFilterNode", web_audio.BiquadFilterNode);
  web_audio.ChannelMergerNode = class ChannelMergerNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 744, 46, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.ChannelMergerNode._create_1(context, options_1);
      }
      return web_audio.ChannelMergerNode._create_2(context);
    }
    static _create_1(context, options) {
      return new ChannelMergerNode(context, options);
    }
    static _create_2(context) {
      return new ChannelMergerNode(context);
    }
  };
  dart.addTypeTests(web_audio.ChannelMergerNode);
  dart.addTypeCaches(web_audio.ChannelMergerNode);
  dart.setLibraryUri(web_audio.ChannelMergerNode, I[159]);
  dart.registerExtension("ChannelMergerNode", web_audio.ChannelMergerNode);
  dart.registerExtension("AudioChannelMerger", web_audio.ChannelMergerNode);
  web_audio.ChannelSplitterNode = class ChannelSplitterNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 767, 48, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.ChannelSplitterNode._create_1(context, options_1);
      }
      return web_audio.ChannelSplitterNode._create_2(context);
    }
    static _create_1(context, options) {
      return new ChannelSplitterNode(context, options);
    }
    static _create_2(context) {
      return new ChannelSplitterNode(context);
    }
  };
  dart.addTypeTests(web_audio.ChannelSplitterNode);
  dart.addTypeCaches(web_audio.ChannelSplitterNode);
  dart.setLibraryUri(web_audio.ChannelSplitterNode, I[159]);
  dart.registerExtension("ChannelSplitterNode", web_audio.ChannelSplitterNode);
  dart.registerExtension("AudioChannelSplitter", web_audio.ChannelSplitterNode);
  web_audio.ConstantSourceNode = class ConstantSourceNode$ extends web_audio.AudioScheduledSourceNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 790, 47, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.ConstantSourceNode._create_1(context, options_1);
      }
      return web_audio.ConstantSourceNode._create_2(context);
    }
    static _create_1(context, options) {
      return new ConstantSourceNode(context, options);
    }
    static _create_2(context) {
      return new ConstantSourceNode(context);
    }
    get [S.$offset]() {
      return this.offset;
    }
  };
  dart.addTypeTests(web_audio.ConstantSourceNode);
  dart.addTypeCaches(web_audio.ConstantSourceNode);
  dart.setGetterSignature(web_audio.ConstantSourceNode, () => ({
    __proto__: dart.getGetters(web_audio.ConstantSourceNode.__proto__),
    [S.$offset]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.ConstantSourceNode, I[159]);
  dart.registerExtension("ConstantSourceNode", web_audio.ConstantSourceNode);
  web_audio.ConvolverNode = class ConvolverNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 815, 42, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.ConvolverNode._create_1(context, options_1);
      }
      return web_audio.ConvolverNode._create_2(context);
    }
    static _create_1(context, options) {
      return new ConvolverNode(context, options);
    }
    static _create_2(context) {
      return new ConvolverNode(context);
    }
    get [$buffer]() {
      return this.buffer;
    }
    set [$buffer](value) {
      this.buffer = value;
    }
    get [S$4.$normalize]() {
      return this.normalize;
    }
    set [S$4.$normalize](value) {
      this.normalize = value;
    }
  };
  dart.addTypeTests(web_audio.ConvolverNode);
  dart.addTypeCaches(web_audio.ConvolverNode);
  dart.setGetterSignature(web_audio.ConvolverNode, () => ({
    __proto__: dart.getGetters(web_audio.ConvolverNode.__proto__),
    [$buffer]: dart.nullable(web_audio.AudioBuffer),
    [S$4.$normalize]: dart.nullable(core.bool)
  }));
  dart.setSetterSignature(web_audio.ConvolverNode, () => ({
    __proto__: dart.getSetters(web_audio.ConvolverNode.__proto__),
    [$buffer]: dart.nullable(web_audio.AudioBuffer),
    [S$4.$normalize]: dart.nullable(core.bool)
  }));
  dart.setLibraryUri(web_audio.ConvolverNode, I[159]);
  dart.registerExtension("ConvolverNode", web_audio.ConvolverNode);
  web_audio.DelayNode = class DelayNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 846, 38, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.DelayNode._create_1(context, options_1);
      }
      return web_audio.DelayNode._create_2(context);
    }
    static _create_1(context, options) {
      return new DelayNode(context, options);
    }
    static _create_2(context) {
      return new DelayNode(context);
    }
    get [S$4.$delayTime]() {
      return this.delayTime;
    }
  };
  dart.addTypeTests(web_audio.DelayNode);
  dart.addTypeCaches(web_audio.DelayNode);
  dart.setGetterSignature(web_audio.DelayNode, () => ({
    __proto__: dart.getGetters(web_audio.DelayNode.__proto__),
    [S$4.$delayTime]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.DelayNode, I[159]);
  dart.registerExtension("DelayNode", web_audio.DelayNode);
  web_audio.DynamicsCompressorNode = class DynamicsCompressorNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 871, 51, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.DynamicsCompressorNode._create_1(context, options_1);
      }
      return web_audio.DynamicsCompressorNode._create_2(context);
    }
    static _create_1(context, options) {
      return new DynamicsCompressorNode(context, options);
    }
    static _create_2(context) {
      return new DynamicsCompressorNode(context);
    }
    get [S$4.$attack]() {
      return this.attack;
    }
    get [S$4.$knee]() {
      return this.knee;
    }
    get [S$4.$ratio]() {
      return this.ratio;
    }
    get [S$4.$reduction]() {
      return this.reduction;
    }
    get [S$4.$release]() {
      return this.release;
    }
    get [S$4.$threshold]() {
      return this.threshold;
    }
  };
  dart.addTypeTests(web_audio.DynamicsCompressorNode);
  dart.addTypeCaches(web_audio.DynamicsCompressorNode);
  dart.setGetterSignature(web_audio.DynamicsCompressorNode, () => ({
    __proto__: dart.getGetters(web_audio.DynamicsCompressorNode.__proto__),
    [S$4.$attack]: dart.nullable(web_audio.AudioParam),
    [S$4.$knee]: dart.nullable(web_audio.AudioParam),
    [S$4.$ratio]: dart.nullable(web_audio.AudioParam),
    [S$4.$reduction]: dart.nullable(core.num),
    [S$4.$release]: dart.nullable(web_audio.AudioParam),
    [S$4.$threshold]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.DynamicsCompressorNode, I[159]);
  dart.registerExtension("DynamicsCompressorNode", web_audio.DynamicsCompressorNode);
  web_audio.GainNode = class GainNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 909, 37, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.GainNode._create_1(context, options_1);
      }
      return web_audio.GainNode._create_2(context);
    }
    static _create_1(context, options) {
      return new GainNode(context, options);
    }
    static _create_2(context) {
      return new GainNode(context);
    }
    get [S$4.$gain]() {
      return this.gain;
    }
  };
  dart.addTypeTests(web_audio.GainNode);
  dart.addTypeCaches(web_audio.GainNode);
  dart.setGetterSignature(web_audio.GainNode, () => ({
    __proto__: dart.getGetters(web_audio.GainNode.__proto__),
    [S$4.$gain]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.GainNode, I[159]);
  dart.registerExtension("GainNode", web_audio.GainNode);
  dart.registerExtension("AudioGainNode", web_audio.GainNode);
  web_audio.IirFilterNode = class IirFilterNode extends web_audio.AudioNode {
    static new(context, options) {
      if (context == null) dart.nullFailed(I[158], 934, 42, "context");
      if (options == null) dart.nullFailed(I[158], 934, 55, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.IirFilterNode._create_1(context, options_1);
    }
    static _create_1(context, options) {
      return new IIRFilterNode(context, options);
    }
    [S$4.$getFrequencyResponse](...args) {
      return this.getFrequencyResponse.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.IirFilterNode);
  dart.addTypeCaches(web_audio.IirFilterNode);
  dart.setMethodSignature(web_audio.IirFilterNode, () => ({
    __proto__: dart.getMethods(web_audio.IirFilterNode.__proto__),
    [S$4.$getFrequencyResponse]: dart.fnType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])
  }));
  dart.setLibraryUri(web_audio.IirFilterNode, I[159]);
  dart.registerExtension("IIRFilterNode", web_audio.IirFilterNode);
  web_audio.MediaElementAudioSourceNode = class MediaElementAudioSourceNode$ extends web_audio.AudioNode {
    static new(context, options) {
      if (context == null) dart.nullFailed(I[158], 955, 56, "context");
      if (options == null) dart.nullFailed(I[158], 955, 69, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.MediaElementAudioSourceNode._create_1(context, options_1);
    }
    static _create_1(context, options) {
      return new MediaElementAudioSourceNode(context, options);
    }
    get [S$4.$mediaElement]() {
      return this.mediaElement;
    }
  };
  dart.addTypeTests(web_audio.MediaElementAudioSourceNode);
  dart.addTypeCaches(web_audio.MediaElementAudioSourceNode);
  dart.setGetterSignature(web_audio.MediaElementAudioSourceNode, () => ({
    __proto__: dart.getGetters(web_audio.MediaElementAudioSourceNode.__proto__),
    [S$4.$mediaElement]: dart.nullable(html$.MediaElement)
  }));
  dart.setLibraryUri(web_audio.MediaElementAudioSourceNode, I[159]);
  dart.registerExtension("MediaElementAudioSourceNode", web_audio.MediaElementAudioSourceNode);
  web_audio.MediaStreamAudioDestinationNode = class MediaStreamAudioDestinationNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 978, 60, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.MediaStreamAudioDestinationNode._create_1(context, options_1);
      }
      return web_audio.MediaStreamAudioDestinationNode._create_2(context);
    }
    static _create_1(context, options) {
      return new MediaStreamAudioDestinationNode(context, options);
    }
    static _create_2(context) {
      return new MediaStreamAudioDestinationNode(context);
    }
    get [S$1.$stream]() {
      return this.stream;
    }
  };
  dart.addTypeTests(web_audio.MediaStreamAudioDestinationNode);
  dart.addTypeCaches(web_audio.MediaStreamAudioDestinationNode);
  dart.setGetterSignature(web_audio.MediaStreamAudioDestinationNode, () => ({
    __proto__: dart.getGetters(web_audio.MediaStreamAudioDestinationNode.__proto__),
    [S$1.$stream]: dart.nullable(html$.MediaStream)
  }));
  dart.setLibraryUri(web_audio.MediaStreamAudioDestinationNode, I[159]);
  dart.registerExtension("MediaStreamAudioDestinationNode", web_audio.MediaStreamAudioDestinationNode);
  web_audio.MediaStreamAudioSourceNode = class MediaStreamAudioSourceNode$ extends web_audio.AudioNode {
    static new(context, options) {
      if (context == null) dart.nullFailed(I[158], 1009, 55, "context");
      if (options == null) dart.nullFailed(I[158], 1009, 68, "options");
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.MediaStreamAudioSourceNode._create_1(context, options_1);
    }
    static _create_1(context, options) {
      return new MediaStreamAudioSourceNode(context, options);
    }
    get [S$4.$mediaStream]() {
      return this.mediaStream;
    }
  };
  dart.addTypeTests(web_audio.MediaStreamAudioSourceNode);
  dart.addTypeCaches(web_audio.MediaStreamAudioSourceNode);
  dart.setGetterSignature(web_audio.MediaStreamAudioSourceNode, () => ({
    __proto__: dart.getGetters(web_audio.MediaStreamAudioSourceNode.__proto__),
    [S$4.$mediaStream]: dart.nullable(html$.MediaStream)
  }));
  dart.setLibraryUri(web_audio.MediaStreamAudioSourceNode, I[159]);
  dart.registerExtension("MediaStreamAudioSourceNode", web_audio.MediaStreamAudioSourceNode);
  web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent$ extends html$.Event {
    static new(type, eventInitDict) {
      if (type == null) dart.nullFailed(I[158], 1032, 46, "type");
      if (eventInitDict == null) dart.nullFailed(I[158], 1032, 56, "eventInitDict");
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return web_audio.OfflineAudioCompletionEvent._create_1(type, eventInitDict_1);
    }
    static _create_1(type, eventInitDict) {
      return new OfflineAudioCompletionEvent(type, eventInitDict);
    }
    get [S$4.$renderedBuffer]() {
      return this.renderedBuffer;
    }
  };
  dart.addTypeTests(web_audio.OfflineAudioCompletionEvent);
  dart.addTypeCaches(web_audio.OfflineAudioCompletionEvent);
  dart.setGetterSignature(web_audio.OfflineAudioCompletionEvent, () => ({
    __proto__: dart.getGetters(web_audio.OfflineAudioCompletionEvent.__proto__),
    [S$4.$renderedBuffer]: dart.nullable(web_audio.AudioBuffer)
  }));
  dart.setLibraryUri(web_audio.OfflineAudioCompletionEvent, I[159]);
  dart.registerExtension("OfflineAudioCompletionEvent", web_audio.OfflineAudioCompletionEvent);
  web_audio.OfflineAudioContext = class OfflineAudioContext$ extends web_audio.BaseAudioContext {
    static new(numberOfChannels_OR_options, numberOfFrames = null, sampleRate = null) {
      if (typeof sampleRate == 'number' && core.int.is(numberOfFrames) && core.int.is(numberOfChannels_OR_options)) {
        return web_audio.OfflineAudioContext._create_1(numberOfChannels_OR_options, numberOfFrames, sampleRate);
      }
      if (core.Map.is(numberOfChannels_OR_options) && numberOfFrames == null && sampleRate == null) {
        let options_1 = html_common.convertDartToNative_Dictionary(numberOfChannels_OR_options);
        return web_audio.OfflineAudioContext._create_2(options_1);
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    static _create_1(numberOfChannels_OR_options, numberOfFrames, sampleRate) {
      return new OfflineAudioContext(numberOfChannels_OR_options, numberOfFrames, sampleRate);
    }
    static _create_2(numberOfChannels_OR_options) {
      return new OfflineAudioContext(numberOfChannels_OR_options);
    }
    get [$length]() {
      return this.length;
    }
    [S$4.$startRendering]() {
      return js_util.promiseToFuture(web_audio.AudioBuffer, this.startRendering());
    }
    [S$4.$suspendFor](suspendTime) {
      if (suspendTime == null) dart.nullFailed(I[158], 1087, 25, "suspendTime");
      return js_util.promiseToFuture(dart.dynamic, this.suspend(suspendTime));
    }
  };
  dart.addTypeTests(web_audio.OfflineAudioContext);
  dart.addTypeCaches(web_audio.OfflineAudioContext);
  dart.setMethodSignature(web_audio.OfflineAudioContext, () => ({
    __proto__: dart.getMethods(web_audio.OfflineAudioContext.__proto__),
    [S$4.$startRendering]: dart.fnType(async.Future$(web_audio.AudioBuffer), []),
    [S$4.$suspendFor]: dart.fnType(async.Future, [core.num])
  }));
  dart.setGetterSignature(web_audio.OfflineAudioContext, () => ({
    __proto__: dart.getGetters(web_audio.OfflineAudioContext.__proto__),
    [$length]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_audio.OfflineAudioContext, I[159]);
  dart.registerExtension("OfflineAudioContext", web_audio.OfflineAudioContext);
  web_audio.OscillatorNode = class OscillatorNode$ extends web_audio.AudioScheduledSourceNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 1101, 43, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.OscillatorNode._create_1(context, options_1);
      }
      return web_audio.OscillatorNode._create_2(context);
    }
    static _create_1(context, options) {
      return new OscillatorNode(context, options);
    }
    static _create_2(context) {
      return new OscillatorNode(context);
    }
    get [S$3.$detune]() {
      return this.detune;
    }
    get [S$4.$frequency]() {
      return this.frequency;
    }
    get [S.$type]() {
      return this.type;
    }
    set [S.$type](value) {
      this.type = value;
    }
    [S$4.$setPeriodicWave](...args) {
      return this.setPeriodicWave.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.OscillatorNode);
  dart.addTypeCaches(web_audio.OscillatorNode);
  dart.setMethodSignature(web_audio.OscillatorNode, () => ({
    __proto__: dart.getMethods(web_audio.OscillatorNode.__proto__),
    [S$4.$setPeriodicWave]: dart.fnType(dart.void, [web_audio.PeriodicWave])
  }));
  dart.setGetterSignature(web_audio.OscillatorNode, () => ({
    __proto__: dart.getGetters(web_audio.OscillatorNode.__proto__),
    [S$3.$detune]: dart.nullable(web_audio.AudioParam),
    [S$4.$frequency]: dart.nullable(web_audio.AudioParam),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(web_audio.OscillatorNode, () => ({
    __proto__: dart.getSetters(web_audio.OscillatorNode.__proto__),
    [S.$type]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_audio.OscillatorNode, I[159]);
  dart.registerExtension("OscillatorNode", web_audio.OscillatorNode);
  dart.registerExtension("Oscillator", web_audio.OscillatorNode);
  web_audio.PannerNode = class PannerNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 1134, 39, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.PannerNode._create_1(context, options_1);
      }
      return web_audio.PannerNode._create_2(context);
    }
    static _create_1(context, options) {
      return new PannerNode(context, options);
    }
    static _create_2(context) {
      return new PannerNode(context);
    }
    get [S$4.$coneInnerAngle]() {
      return this.coneInnerAngle;
    }
    set [S$4.$coneInnerAngle](value) {
      this.coneInnerAngle = value;
    }
    get [S$4.$coneOuterAngle]() {
      return this.coneOuterAngle;
    }
    set [S$4.$coneOuterAngle](value) {
      this.coneOuterAngle = value;
    }
    get [S$4.$coneOuterGain]() {
      return this.coneOuterGain;
    }
    set [S$4.$coneOuterGain](value) {
      this.coneOuterGain = value;
    }
    get [S$4.$distanceModel]() {
      return this.distanceModel;
    }
    set [S$4.$distanceModel](value) {
      this.distanceModel = value;
    }
    get [S$4.$maxDistance]() {
      return this.maxDistance;
    }
    set [S$4.$maxDistance](value) {
      this.maxDistance = value;
    }
    get [S$4.$orientationX]() {
      return this.orientationX;
    }
    get [S$4.$orientationY]() {
      return this.orientationY;
    }
    get [S$4.$orientationZ]() {
      return this.orientationZ;
    }
    get [S$4.$panningModel]() {
      return this.panningModel;
    }
    set [S$4.$panningModel](value) {
      this.panningModel = value;
    }
    get [S$2.$positionX]() {
      return this.positionX;
    }
    get [S$2.$positionY]() {
      return this.positionY;
    }
    get [S$4.$positionZ]() {
      return this.positionZ;
    }
    get [S$4.$refDistance]() {
      return this.refDistance;
    }
    set [S$4.$refDistance](value) {
      this.refDistance = value;
    }
    get [S$4.$rolloffFactor]() {
      return this.rolloffFactor;
    }
    set [S$4.$rolloffFactor](value) {
      this.rolloffFactor = value;
    }
    [S$4.$setOrientation](...args) {
      return this.setOrientation.apply(this, args);
    }
    [S$2.$setPosition](...args) {
      return this.setPosition.apply(this, args);
    }
  };
  dart.addTypeTests(web_audio.PannerNode);
  dart.addTypeCaches(web_audio.PannerNode);
  dart.setMethodSignature(web_audio.PannerNode, () => ({
    __proto__: dart.getMethods(web_audio.PannerNode.__proto__),
    [S$4.$setOrientation]: dart.fnType(dart.void, [core.num, core.num, core.num]),
    [S$2.$setPosition]: dart.fnType(dart.void, [core.num, core.num, core.num])
  }));
  dart.setGetterSignature(web_audio.PannerNode, () => ({
    __proto__: dart.getGetters(web_audio.PannerNode.__proto__),
    [S$4.$coneInnerAngle]: dart.nullable(core.num),
    [S$4.$coneOuterAngle]: dart.nullable(core.num),
    [S$4.$coneOuterGain]: dart.nullable(core.num),
    [S$4.$distanceModel]: dart.nullable(core.String),
    [S$4.$maxDistance]: dart.nullable(core.num),
    [S$4.$orientationX]: dart.nullable(web_audio.AudioParam),
    [S$4.$orientationY]: dart.nullable(web_audio.AudioParam),
    [S$4.$orientationZ]: dart.nullable(web_audio.AudioParam),
    [S$4.$panningModel]: dart.nullable(core.String),
    [S$2.$positionX]: dart.nullable(web_audio.AudioParam),
    [S$2.$positionY]: dart.nullable(web_audio.AudioParam),
    [S$4.$positionZ]: dart.nullable(web_audio.AudioParam),
    [S$4.$refDistance]: dart.nullable(core.num),
    [S$4.$rolloffFactor]: dart.nullable(core.num)
  }));
  dart.setSetterSignature(web_audio.PannerNode, () => ({
    __proto__: dart.getSetters(web_audio.PannerNode.__proto__),
    [S$4.$coneInnerAngle]: dart.nullable(core.num),
    [S$4.$coneOuterAngle]: dart.nullable(core.num),
    [S$4.$coneOuterGain]: dart.nullable(core.num),
    [S$4.$distanceModel]: dart.nullable(core.String),
    [S$4.$maxDistance]: dart.nullable(core.num),
    [S$4.$panningModel]: dart.nullable(core.String),
    [S$4.$refDistance]: dart.nullable(core.num),
    [S$4.$rolloffFactor]: dart.nullable(core.num)
  }));
  dart.setLibraryUri(web_audio.PannerNode, I[159]);
  dart.registerExtension("PannerNode", web_audio.PannerNode);
  dart.registerExtension("AudioPannerNode", web_audio.PannerNode);
  dart.registerExtension("webkitAudioPannerNode", web_audio.PannerNode);
  web_audio.PeriodicWave = class PeriodicWave$ extends _interceptors.Interceptor {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 1205, 41, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.PeriodicWave._create_1(context, options_1);
      }
      return web_audio.PeriodicWave._create_2(context);
    }
    static _create_1(context, options) {
      return new PeriodicWave(context, options);
    }
    static _create_2(context) {
      return new PeriodicWave(context);
    }
  };
  dart.addTypeTests(web_audio.PeriodicWave);
  dart.addTypeCaches(web_audio.PeriodicWave);
  dart.setLibraryUri(web_audio.PeriodicWave, I[159]);
  dart.registerExtension("PeriodicWave", web_audio.PeriodicWave);
  web_audio.ScriptProcessorNode = class ScriptProcessorNode extends web_audio.AudioNode {
    get [S$4.$bufferSize]() {
      return this.bufferSize;
    }
    [S$4.$setEventListener](...args) {
      return this.setEventListener.apply(this, args);
    }
    get [S$4.$onAudioProcess]() {
      return web_audio.ScriptProcessorNode.audioProcessEvent.forTarget(this);
    }
  };
  dart.addTypeTests(web_audio.ScriptProcessorNode);
  dart.addTypeCaches(web_audio.ScriptProcessorNode);
  dart.setMethodSignature(web_audio.ScriptProcessorNode, () => ({
    __proto__: dart.getMethods(web_audio.ScriptProcessorNode.__proto__),
    [S$4.$setEventListener]: dart.fnType(dart.void, [dart.fnType(dart.dynamic, [html$.Event])])
  }));
  dart.setGetterSignature(web_audio.ScriptProcessorNode, () => ({
    __proto__: dart.getGetters(web_audio.ScriptProcessorNode.__proto__),
    [S$4.$bufferSize]: dart.nullable(core.int),
    [S$4.$onAudioProcess]: async.Stream$(web_audio.AudioProcessingEvent)
  }));
  dart.setLibraryUri(web_audio.ScriptProcessorNode, I[159]);
  dart.defineLazy(web_audio.ScriptProcessorNode, {
    /*web_audio.ScriptProcessorNode.audioProcessEvent*/get audioProcessEvent() {
      return C[418] || CT.C418;
    }
  }, false);
  dart.registerExtension("ScriptProcessorNode", web_audio.ScriptProcessorNode);
  dart.registerExtension("JavaScriptAudioNode", web_audio.ScriptProcessorNode);
  web_audio.StereoPannerNode = class StereoPannerNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 1263, 45, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.StereoPannerNode._create_1(context, options_1);
      }
      return web_audio.StereoPannerNode._create_2(context);
    }
    static _create_1(context, options) {
      return new StereoPannerNode(context, options);
    }
    static _create_2(context) {
      return new StereoPannerNode(context);
    }
    get [S$4.$pan]() {
      return this.pan;
    }
  };
  dart.addTypeTests(web_audio.StereoPannerNode);
  dart.addTypeCaches(web_audio.StereoPannerNode);
  dart.setGetterSignature(web_audio.StereoPannerNode, () => ({
    __proto__: dart.getGetters(web_audio.StereoPannerNode.__proto__),
    [S$4.$pan]: dart.nullable(web_audio.AudioParam)
  }));
  dart.setLibraryUri(web_audio.StereoPannerNode, I[159]);
  dart.registerExtension("StereoPannerNode", web_audio.StereoPannerNode);
  web_audio.WaveShaperNode = class WaveShaperNode$ extends web_audio.AudioNode {
    static new(context, options = null) {
      if (context == null) dart.nullFailed(I[158], 1288, 43, "context");
      if (options != null) {
        let options_1 = html_common.convertDartToNative_Dictionary(options);
        return web_audio.WaveShaperNode._create_1(context, options_1);
      }
      return web_audio.WaveShaperNode._create_2(context);
    }
    static _create_1(context, options) {
      return new WaveShaperNode(context, options);
    }
    static _create_2(context) {
      return new WaveShaperNode(context);
    }
    get [S$4.$curve]() {
      return this.curve;
    }
    set [S$4.$curve](value) {
      this.curve = value;
    }
    get [S$4.$oversample]() {
      return this.oversample;
    }
    set [S$4.$oversample](value) {
      this.oversample = value;
    }
  };
  dart.addTypeTests(web_audio.WaveShaperNode);
  dart.addTypeCaches(web_audio.WaveShaperNode);
  dart.setGetterSignature(web_audio.WaveShaperNode, () => ({
    __proto__: dart.getGetters(web_audio.WaveShaperNode.__proto__),
    [S$4.$curve]: dart.nullable(typed_data.Float32List),
    [S$4.$oversample]: dart.nullable(core.String)
  }));
  dart.setSetterSignature(web_audio.WaveShaperNode, () => ({
    __proto__: dart.getSetters(web_audio.WaveShaperNode.__proto__),
    [S$4.$curve]: dart.nullable(typed_data.Float32List),
    [S$4.$oversample]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_audio.WaveShaperNode, I[159]);
  dart.registerExtension("WaveShaperNode", web_audio.WaveShaperNode);
  web_gl.ActiveInfo = class ActiveInfo extends _interceptors.Interceptor {
    get [$name]() {
      return this.name;
    }
    get [S$.$size]() {
      return this.size;
    }
    get [S.$type]() {
      return this.type;
    }
  };
  dart.addTypeTests(web_gl.ActiveInfo);
  dart.addTypeCaches(web_gl.ActiveInfo);
  dart.setGetterSignature(web_gl.ActiveInfo, () => ({
    __proto__: dart.getGetters(web_gl.ActiveInfo.__proto__),
    [$name]: core.String,
    [S$.$size]: core.int,
    [S.$type]: core.int
  }));
  dart.setLibraryUri(web_gl.ActiveInfo, I[160]);
  dart.registerExtension("WebGLActiveInfo", web_gl.ActiveInfo);
  web_gl.AngleInstancedArrays = class AngleInstancedArrays extends _interceptors.Interceptor {
    [S$4.$drawArraysInstancedAngle](...args) {
      return this.drawArraysInstancedANGLE.apply(this, args);
    }
    [S$4.$drawElementsInstancedAngle](...args) {
      return this.drawElementsInstancedANGLE.apply(this, args);
    }
    [S$4.$vertexAttribDivisorAngle](...args) {
      return this.vertexAttribDivisorANGLE.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.AngleInstancedArrays);
  dart.addTypeCaches(web_gl.AngleInstancedArrays);
  dart.setMethodSignature(web_gl.AngleInstancedArrays, () => ({
    __proto__: dart.getMethods(web_gl.AngleInstancedArrays.__proto__),
    [S$4.$drawArraysInstancedAngle]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$drawElementsInstancedAngle]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$vertexAttribDivisorAngle]: dart.fnType(dart.void, [core.int, core.int])
  }));
  dart.setLibraryUri(web_gl.AngleInstancedArrays, I[160]);
  dart.defineLazy(web_gl.AngleInstancedArrays, {
    /*web_gl.AngleInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE*/get VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE() {
      return 35070;
    }
  }, false);
  dart.registerExtension("ANGLEInstancedArrays", web_gl.AngleInstancedArrays);
  dart.registerExtension("ANGLE_instanced_arrays", web_gl.AngleInstancedArrays);
  web_gl.Buffer = class Buffer extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Buffer);
  dart.addTypeCaches(web_gl.Buffer);
  dart.setLibraryUri(web_gl.Buffer, I[160]);
  dart.registerExtension("WebGLBuffer", web_gl.Buffer);
  web_gl.Canvas = class Canvas extends _interceptors.Interceptor {
    get [S$.$canvas]() {
      return this.canvas;
    }
    get [S$4.$offscreenCanvas]() {
      return this.canvas;
    }
  };
  dart.addTypeTests(web_gl.Canvas);
  dart.addTypeCaches(web_gl.Canvas);
  dart.setGetterSignature(web_gl.Canvas, () => ({
    __proto__: dart.getGetters(web_gl.Canvas.__proto__),
    [S$.$canvas]: html$.CanvasElement,
    [S$4.$offscreenCanvas]: dart.nullable(html$.OffscreenCanvas)
  }));
  dart.setLibraryUri(web_gl.Canvas, I[160]);
  dart.registerExtension("WebGLCanvas", web_gl.Canvas);
  web_gl.ColorBufferFloat = class ColorBufferFloat extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ColorBufferFloat);
  dart.addTypeCaches(web_gl.ColorBufferFloat);
  dart.setLibraryUri(web_gl.ColorBufferFloat, I[160]);
  dart.registerExtension("WebGLColorBufferFloat", web_gl.ColorBufferFloat);
  web_gl.CompressedTextureAstc = class CompressedTextureAstc extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureAstc);
  dart.addTypeCaches(web_gl.CompressedTextureAstc);
  dart.setLibraryUri(web_gl.CompressedTextureAstc, I[160]);
  dart.defineLazy(web_gl.CompressedTextureAstc, {
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x10_KHR*/get COMPRESSED_RGBA_ASTC_10x10_KHR() {
      return 37819;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x5_KHR*/get COMPRESSED_RGBA_ASTC_10x5_KHR() {
      return 37816;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x6_KHR*/get COMPRESSED_RGBA_ASTC_10x6_KHR() {
      return 37817;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x8_KHR*/get COMPRESSED_RGBA_ASTC_10x8_KHR() {
      return 37818;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_12x10_KHR*/get COMPRESSED_RGBA_ASTC_12x10_KHR() {
      return 37820;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_12x12_KHR*/get COMPRESSED_RGBA_ASTC_12x12_KHR() {
      return 37821;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_4x4_KHR*/get COMPRESSED_RGBA_ASTC_4x4_KHR() {
      return 37808;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_5x4_KHR*/get COMPRESSED_RGBA_ASTC_5x4_KHR() {
      return 37809;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_5x5_KHR*/get COMPRESSED_RGBA_ASTC_5x5_KHR() {
      return 37810;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_6x5_KHR*/get COMPRESSED_RGBA_ASTC_6x5_KHR() {
      return 37811;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_6x6_KHR*/get COMPRESSED_RGBA_ASTC_6x6_KHR() {
      return 37812;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x5_KHR*/get COMPRESSED_RGBA_ASTC_8x5_KHR() {
      return 37813;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x6_KHR*/get COMPRESSED_RGBA_ASTC_8x6_KHR() {
      return 37814;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x8_KHR*/get COMPRESSED_RGBA_ASTC_8x8_KHR() {
      return 37815;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR() {
      return 37851;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR() {
      return 37848;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR() {
      return 37849;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR() {
      return 37850;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR() {
      return 37852;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR() {
      return 37853;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR() {
      return 37840;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR() {
      return 37841;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR() {
      return 37842;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR() {
      return 37843;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR() {
      return 37844;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR() {
      return 37845;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR() {
      return 37846;
    },
    /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR() {
      return 37847;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureASTC", web_gl.CompressedTextureAstc);
  web_gl.CompressedTextureAtc = class CompressedTextureAtc extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureAtc);
  dart.addTypeCaches(web_gl.CompressedTextureAtc);
  dart.setLibraryUri(web_gl.CompressedTextureAtc, I[160]);
  dart.defineLazy(web_gl.CompressedTextureAtc, {
    /*web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL*/get COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL() {
      return 35987;
    },
    /*web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL*/get COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL() {
      return 34798;
    },
    /*web_gl.CompressedTextureAtc.COMPRESSED_RGB_ATC_WEBGL*/get COMPRESSED_RGB_ATC_WEBGL() {
      return 35986;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureATC", web_gl.CompressedTextureAtc);
  dart.registerExtension("WEBGL_compressed_texture_atc", web_gl.CompressedTextureAtc);
  web_gl.CompressedTextureETC1 = class CompressedTextureETC1 extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureETC1);
  dart.addTypeCaches(web_gl.CompressedTextureETC1);
  dart.setLibraryUri(web_gl.CompressedTextureETC1, I[160]);
  dart.defineLazy(web_gl.CompressedTextureETC1, {
    /*web_gl.CompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL*/get COMPRESSED_RGB_ETC1_WEBGL() {
      return 36196;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureETC1", web_gl.CompressedTextureETC1);
  dart.registerExtension("WEBGL_compressed_texture_etc1", web_gl.CompressedTextureETC1);
  web_gl.CompressedTextureEtc = class CompressedTextureEtc extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureEtc);
  dart.addTypeCaches(web_gl.CompressedTextureEtc);
  dart.setLibraryUri(web_gl.CompressedTextureEtc, I[160]);
  dart.defineLazy(web_gl.CompressedTextureEtc, {
    /*web_gl.CompressedTextureEtc.COMPRESSED_R11_EAC*/get COMPRESSED_R11_EAC() {
      return 37488;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_RG11_EAC*/get COMPRESSED_RG11_EAC() {
      return 37490;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_RGB8_ETC2*/get COMPRESSED_RGB8_ETC2() {
      return 37492;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2*/get COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2() {
      return 37494;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_RGBA8_ETC2_EAC*/get COMPRESSED_RGBA8_ETC2_EAC() {
      return 37496;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_SIGNED_R11_EAC*/get COMPRESSED_SIGNED_R11_EAC() {
      return 37489;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_SIGNED_RG11_EAC*/get COMPRESSED_SIGNED_RG11_EAC() {
      return 37491;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC*/get COMPRESSED_SRGB8_ALPHA8_ETC2_EAC() {
      return 37497;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_ETC2*/get COMPRESSED_SRGB8_ETC2() {
      return 37493;
    },
    /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2*/get COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2() {
      return 37495;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureETC", web_gl.CompressedTextureEtc);
  web_gl.CompressedTexturePvrtc = class CompressedTexturePvrtc extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTexturePvrtc);
  dart.addTypeCaches(web_gl.CompressedTexturePvrtc);
  dart.setLibraryUri(web_gl.CompressedTexturePvrtc, I[160]);
  dart.defineLazy(web_gl.CompressedTexturePvrtc, {
    /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG*/get COMPRESSED_RGBA_PVRTC_2BPPV1_IMG() {
      return 35843;
    },
    /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG*/get COMPRESSED_RGBA_PVRTC_4BPPV1_IMG() {
      return 35842;
    },
    /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_2BPPV1_IMG*/get COMPRESSED_RGB_PVRTC_2BPPV1_IMG() {
      return 35841;
    },
    /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_4BPPV1_IMG*/get COMPRESSED_RGB_PVRTC_4BPPV1_IMG() {
      return 35840;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTexturePVRTC", web_gl.CompressedTexturePvrtc);
  dart.registerExtension("WEBGL_compressed_texture_pvrtc", web_gl.CompressedTexturePvrtc);
  web_gl.CompressedTextureS3TC = class CompressedTextureS3TC extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureS3TC);
  dart.addTypeCaches(web_gl.CompressedTextureS3TC);
  dart.setLibraryUri(web_gl.CompressedTextureS3TC, I[160]);
  dart.defineLazy(web_gl.CompressedTextureS3TC, {
    /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT*/get COMPRESSED_RGBA_S3TC_DXT1_EXT() {
      return 33777;
    },
    /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT*/get COMPRESSED_RGBA_S3TC_DXT3_EXT() {
      return 33778;
    },
    /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT*/get COMPRESSED_RGBA_S3TC_DXT5_EXT() {
      return 33779;
    },
    /*web_gl.CompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT*/get COMPRESSED_RGB_S3TC_DXT1_EXT() {
      return 33776;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureS3TC", web_gl.CompressedTextureS3TC);
  dart.registerExtension("WEBGL_compressed_texture_s3tc", web_gl.CompressedTextureS3TC);
  web_gl.CompressedTextureS3TCsRgb = class CompressedTextureS3TCsRgb extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.CompressedTextureS3TCsRgb);
  dart.addTypeCaches(web_gl.CompressedTextureS3TCsRgb);
  dart.setLibraryUri(web_gl.CompressedTextureS3TCsRgb, I[160]);
  dart.defineLazy(web_gl.CompressedTextureS3TCsRgb, {
    /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT() {
      return 35917;
    },
    /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT() {
      return 35918;
    },
    /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT() {
      return 35919;
    },
    /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_S3TC_DXT1_EXT*/get COMPRESSED_SRGB_S3TC_DXT1_EXT() {
      return 35916;
    }
  }, false);
  dart.registerExtension("WebGLCompressedTextureS3TCsRGB", web_gl.CompressedTextureS3TCsRgb);
  web_gl.ContextEvent = class ContextEvent extends html$.Event {
    static new(type, eventInit = null) {
      if (type == null) dart.nullFailed(I[161], 303, 31, "type");
      if (eventInit != null) {
        let eventInit_1 = html_common.convertDartToNative_Dictionary(eventInit);
        return web_gl.ContextEvent._create_1(type, eventInit_1);
      }
      return web_gl.ContextEvent._create_2(type);
    }
    static _create_1(type, eventInit) {
      return new WebGLContextEvent(type, eventInit);
    }
    static _create_2(type) {
      return new WebGLContextEvent(type);
    }
    get [S$4.$statusMessage]() {
      return this.statusMessage;
    }
  };
  dart.addTypeTests(web_gl.ContextEvent);
  dart.addTypeCaches(web_gl.ContextEvent);
  dart.setGetterSignature(web_gl.ContextEvent, () => ({
    __proto__: dart.getGetters(web_gl.ContextEvent.__proto__),
    [S$4.$statusMessage]: core.String
  }));
  dart.setLibraryUri(web_gl.ContextEvent, I[160]);
  dart.registerExtension("WebGLContextEvent", web_gl.ContextEvent);
  web_gl.DebugRendererInfo = class DebugRendererInfo extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.DebugRendererInfo);
  dart.addTypeCaches(web_gl.DebugRendererInfo);
  dart.setLibraryUri(web_gl.DebugRendererInfo, I[160]);
  dart.defineLazy(web_gl.DebugRendererInfo, {
    /*web_gl.DebugRendererInfo.UNMASKED_RENDERER_WEBGL*/get UNMASKED_RENDERER_WEBGL() {
      return 37446;
    },
    /*web_gl.DebugRendererInfo.UNMASKED_VENDOR_WEBGL*/get UNMASKED_VENDOR_WEBGL() {
      return 37445;
    }
  }, false);
  dart.registerExtension("WebGLDebugRendererInfo", web_gl.DebugRendererInfo);
  dart.registerExtension("WEBGL_debug_renderer_info", web_gl.DebugRendererInfo);
  web_gl.DebugShaders = class DebugShaders extends _interceptors.Interceptor {
    [S$4.$getTranslatedShaderSource](...args) {
      return this.getTranslatedShaderSource.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.DebugShaders);
  dart.addTypeCaches(web_gl.DebugShaders);
  dart.setMethodSignature(web_gl.DebugShaders, () => ({
    __proto__: dart.getMethods(web_gl.DebugShaders.__proto__),
    [S$4.$getTranslatedShaderSource]: dart.fnType(dart.nullable(core.String), [web_gl.Shader])
  }));
  dart.setLibraryUri(web_gl.DebugShaders, I[160]);
  dart.registerExtension("WebGLDebugShaders", web_gl.DebugShaders);
  dart.registerExtension("WEBGL_debug_shaders", web_gl.DebugShaders);
  web_gl.DepthTexture = class DepthTexture extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.DepthTexture);
  dart.addTypeCaches(web_gl.DepthTexture);
  dart.setLibraryUri(web_gl.DepthTexture, I[160]);
  dart.defineLazy(web_gl.DepthTexture, {
    /*web_gl.DepthTexture.UNSIGNED_INT_24_8_WEBGL*/get UNSIGNED_INT_24_8_WEBGL() {
      return 34042;
    }
  }, false);
  dart.registerExtension("WebGLDepthTexture", web_gl.DepthTexture);
  dart.registerExtension("WEBGL_depth_texture", web_gl.DepthTexture);
  web_gl.DrawBuffers = class DrawBuffers extends _interceptors.Interceptor {
    [S$4.$drawBuffersWebgl](...args) {
      return this.drawBuffersWEBGL.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.DrawBuffers);
  dart.addTypeCaches(web_gl.DrawBuffers);
  dart.setMethodSignature(web_gl.DrawBuffers, () => ({
    __proto__: dart.getMethods(web_gl.DrawBuffers.__proto__),
    [S$4.$drawBuffersWebgl]: dart.fnType(dart.void, [core.List$(core.int)])
  }));
  dart.setLibraryUri(web_gl.DrawBuffers, I[160]);
  dart.registerExtension("WebGLDrawBuffers", web_gl.DrawBuffers);
  dart.registerExtension("WEBGL_draw_buffers", web_gl.DrawBuffers);
  web_gl.EXTsRgb = class EXTsRgb extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.EXTsRgb);
  dart.addTypeCaches(web_gl.EXTsRgb);
  dart.setLibraryUri(web_gl.EXTsRgb, I[160]);
  dart.defineLazy(web_gl.EXTsRgb, {
    /*web_gl.EXTsRgb.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT*/get FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT() {
      return 33296;
    },
    /*web_gl.EXTsRgb.SRGB8_ALPHA8_EXT*/get SRGB8_ALPHA8_EXT() {
      return 35907;
    },
    /*web_gl.EXTsRgb.SRGB_ALPHA_EXT*/get SRGB_ALPHA_EXT() {
      return 35906;
    },
    /*web_gl.EXTsRgb.SRGB_EXT*/get SRGB_EXT() {
      return 35904;
    }
  }, false);
  dart.registerExtension("EXTsRGB", web_gl.EXTsRgb);
  dart.registerExtension("EXT_sRGB", web_gl.EXTsRgb);
  web_gl.ExtBlendMinMax = class ExtBlendMinMax extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtBlendMinMax);
  dart.addTypeCaches(web_gl.ExtBlendMinMax);
  dart.setLibraryUri(web_gl.ExtBlendMinMax, I[160]);
  dart.defineLazy(web_gl.ExtBlendMinMax, {
    /*web_gl.ExtBlendMinMax.MAX_EXT*/get MAX_EXT() {
      return 32776;
    },
    /*web_gl.ExtBlendMinMax.MIN_EXT*/get MIN_EXT() {
      return 32775;
    }
  }, false);
  dart.registerExtension("EXTBlendMinMax", web_gl.ExtBlendMinMax);
  dart.registerExtension("EXT_blend_minmax", web_gl.ExtBlendMinMax);
  web_gl.ExtColorBufferFloat = class ExtColorBufferFloat extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtColorBufferFloat);
  dart.addTypeCaches(web_gl.ExtColorBufferFloat);
  dart.setLibraryUri(web_gl.ExtColorBufferFloat, I[160]);
  dart.registerExtension("EXTColorBufferFloat", web_gl.ExtColorBufferFloat);
  web_gl.ExtColorBufferHalfFloat = class ExtColorBufferHalfFloat extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtColorBufferHalfFloat);
  dart.addTypeCaches(web_gl.ExtColorBufferHalfFloat);
  dart.setLibraryUri(web_gl.ExtColorBufferHalfFloat, I[160]);
  dart.registerExtension("EXTColorBufferHalfFloat", web_gl.ExtColorBufferHalfFloat);
  web_gl.ExtDisjointTimerQuery = class ExtDisjointTimerQuery extends _interceptors.Interceptor {
    [S$4.$beginQueryExt](...args) {
      return this.beginQueryEXT.apply(this, args);
    }
    [S$4.$createQueryExt](...args) {
      return this.createQueryEXT.apply(this, args);
    }
    [S$4.$deleteQueryExt](...args) {
      return this.deleteQueryEXT.apply(this, args);
    }
    [S$4.$endQueryExt](...args) {
      return this.endQueryEXT.apply(this, args);
    }
    [S$4.$getQueryExt](...args) {
      return this.getQueryEXT.apply(this, args);
    }
    [S$4.$getQueryObjectExt](...args) {
      return this.getQueryObjectEXT.apply(this, args);
    }
    [S$4.$isQueryExt](...args) {
      return this.isQueryEXT.apply(this, args);
    }
    [S$4.$queryCounterExt](...args) {
      return this.queryCounterEXT.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.ExtDisjointTimerQuery);
  dart.addTypeCaches(web_gl.ExtDisjointTimerQuery);
  dart.setMethodSignature(web_gl.ExtDisjointTimerQuery, () => ({
    __proto__: dart.getMethods(web_gl.ExtDisjointTimerQuery.__proto__),
    [S$4.$beginQueryExt]: dart.fnType(dart.void, [core.int, web_gl.TimerQueryExt]),
    [S$4.$createQueryExt]: dart.fnType(web_gl.TimerQueryExt, []),
    [S$4.$deleteQueryExt]: dart.fnType(dart.void, [dart.nullable(web_gl.TimerQueryExt)]),
    [S$4.$endQueryExt]: dart.fnType(dart.void, [core.int]),
    [S$4.$getQueryExt]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getQueryObjectExt]: dart.fnType(dart.nullable(core.Object), [web_gl.TimerQueryExt, core.int]),
    [S$4.$isQueryExt]: dart.fnType(core.bool, [dart.nullable(web_gl.TimerQueryExt)]),
    [S$4.$queryCounterExt]: dart.fnType(dart.void, [web_gl.TimerQueryExt, core.int])
  }));
  dart.setLibraryUri(web_gl.ExtDisjointTimerQuery, I[160]);
  dart.defineLazy(web_gl.ExtDisjointTimerQuery, {
    /*web_gl.ExtDisjointTimerQuery.CURRENT_QUERY_EXT*/get CURRENT_QUERY_EXT() {
      return 34917;
    },
    /*web_gl.ExtDisjointTimerQuery.GPU_DISJOINT_EXT*/get GPU_DISJOINT_EXT() {
      return 36795;
    },
    /*web_gl.ExtDisjointTimerQuery.QUERY_COUNTER_BITS_EXT*/get QUERY_COUNTER_BITS_EXT() {
      return 34916;
    },
    /*web_gl.ExtDisjointTimerQuery.QUERY_RESULT_AVAILABLE_EXT*/get QUERY_RESULT_AVAILABLE_EXT() {
      return 34919;
    },
    /*web_gl.ExtDisjointTimerQuery.QUERY_RESULT_EXT*/get QUERY_RESULT_EXT() {
      return 34918;
    },
    /*web_gl.ExtDisjointTimerQuery.TIMESTAMP_EXT*/get TIMESTAMP_EXT() {
      return 36392;
    },
    /*web_gl.ExtDisjointTimerQuery.TIME_ELAPSED_EXT*/get TIME_ELAPSED_EXT() {
      return 35007;
    }
  }, false);
  dart.registerExtension("EXTDisjointTimerQuery", web_gl.ExtDisjointTimerQuery);
  web_gl.ExtDisjointTimerQueryWebGL2 = class ExtDisjointTimerQueryWebGL2 extends _interceptors.Interceptor {
    [S$4.$queryCounterExt](...args) {
      return this.queryCounterEXT.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.ExtDisjointTimerQueryWebGL2);
  dart.addTypeCaches(web_gl.ExtDisjointTimerQueryWebGL2);
  dart.setMethodSignature(web_gl.ExtDisjointTimerQueryWebGL2, () => ({
    __proto__: dart.getMethods(web_gl.ExtDisjointTimerQueryWebGL2.__proto__),
    [S$4.$queryCounterExt]: dart.fnType(dart.void, [web_gl.Query, core.int])
  }));
  dart.setLibraryUri(web_gl.ExtDisjointTimerQueryWebGL2, I[160]);
  dart.defineLazy(web_gl.ExtDisjointTimerQueryWebGL2, {
    /*web_gl.ExtDisjointTimerQueryWebGL2.GPU_DISJOINT_EXT*/get GPU_DISJOINT_EXT() {
      return 36795;
    },
    /*web_gl.ExtDisjointTimerQueryWebGL2.QUERY_COUNTER_BITS_EXT*/get QUERY_COUNTER_BITS_EXT() {
      return 34916;
    },
    /*web_gl.ExtDisjointTimerQueryWebGL2.TIMESTAMP_EXT*/get TIMESTAMP_EXT() {
      return 36392;
    },
    /*web_gl.ExtDisjointTimerQueryWebGL2.TIME_ELAPSED_EXT*/get TIME_ELAPSED_EXT() {
      return 35007;
    }
  }, false);
  dart.registerExtension("EXTDisjointTimerQueryWebGL2", web_gl.ExtDisjointTimerQueryWebGL2);
  web_gl.ExtFragDepth = class ExtFragDepth extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtFragDepth);
  dart.addTypeCaches(web_gl.ExtFragDepth);
  dart.setLibraryUri(web_gl.ExtFragDepth, I[160]);
  dart.registerExtension("EXTFragDepth", web_gl.ExtFragDepth);
  dart.registerExtension("EXT_frag_depth", web_gl.ExtFragDepth);
  web_gl.ExtShaderTextureLod = class ExtShaderTextureLod extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtShaderTextureLod);
  dart.addTypeCaches(web_gl.ExtShaderTextureLod);
  dart.setLibraryUri(web_gl.ExtShaderTextureLod, I[160]);
  dart.registerExtension("EXTShaderTextureLOD", web_gl.ExtShaderTextureLod);
  dart.registerExtension("EXT_shader_texture_lod", web_gl.ExtShaderTextureLod);
  web_gl.ExtTextureFilterAnisotropic = class ExtTextureFilterAnisotropic extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.ExtTextureFilterAnisotropic);
  dart.addTypeCaches(web_gl.ExtTextureFilterAnisotropic);
  dart.setLibraryUri(web_gl.ExtTextureFilterAnisotropic, I[160]);
  dart.defineLazy(web_gl.ExtTextureFilterAnisotropic, {
    /*web_gl.ExtTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT*/get MAX_TEXTURE_MAX_ANISOTROPY_EXT() {
      return 34047;
    },
    /*web_gl.ExtTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT*/get TEXTURE_MAX_ANISOTROPY_EXT() {
      return 34046;
    }
  }, false);
  dart.registerExtension("EXTTextureFilterAnisotropic", web_gl.ExtTextureFilterAnisotropic);
  dart.registerExtension("EXT_texture_filter_anisotropic", web_gl.ExtTextureFilterAnisotropic);
  web_gl.Framebuffer = class Framebuffer extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Framebuffer);
  dart.addTypeCaches(web_gl.Framebuffer);
  dart.setLibraryUri(web_gl.Framebuffer, I[160]);
  dart.registerExtension("WebGLFramebuffer", web_gl.Framebuffer);
  web_gl.GetBufferSubDataAsync = class GetBufferSubDataAsync extends _interceptors.Interceptor {
    [S$4.$getBufferSubDataAsync](target, srcByteOffset, dstData, dstOffset = null, length = null) {
      if (target == null) dart.nullFailed(I[161], 559, 36, "target");
      if (srcByteOffset == null) dart.nullFailed(I[161], 559, 48, "srcByteOffset");
      if (dstData == null) dart.nullFailed(I[161], 559, 73, "dstData");
      return js_util.promiseToFuture(dart.dynamic, this.getBufferSubDataAsync(target, srcByteOffset, dstData, dstOffset, length));
    }
  };
  dart.addTypeTests(web_gl.GetBufferSubDataAsync);
  dart.addTypeCaches(web_gl.GetBufferSubDataAsync);
  dart.setMethodSignature(web_gl.GetBufferSubDataAsync, () => ({
    __proto__: dart.getMethods(web_gl.GetBufferSubDataAsync.__proto__),
    [S$4.$getBufferSubDataAsync]: dart.fnType(async.Future, [core.int, core.int, typed_data.TypedData], [dart.nullable(core.int), dart.nullable(core.int)])
  }));
  dart.setLibraryUri(web_gl.GetBufferSubDataAsync, I[160]);
  dart.registerExtension("WebGLGetBufferSubDataAsync", web_gl.GetBufferSubDataAsync);
  web_gl.LoseContext = class LoseContext extends _interceptors.Interceptor {
    [S$4.$loseContext](...args) {
      return this.loseContext.apply(this, args);
    }
    [S$4.$restoreContext](...args) {
      return this.restoreContext.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.LoseContext);
  dart.addTypeCaches(web_gl.LoseContext);
  dart.setMethodSignature(web_gl.LoseContext, () => ({
    __proto__: dart.getMethods(web_gl.LoseContext.__proto__),
    [S$4.$loseContext]: dart.fnType(dart.void, []),
    [S$4.$restoreContext]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(web_gl.LoseContext, I[160]);
  dart.registerExtension("WebGLLoseContext", web_gl.LoseContext);
  dart.registerExtension("WebGLExtensionLoseContext", web_gl.LoseContext);
  dart.registerExtension("WEBGL_lose_context", web_gl.LoseContext);
  web_gl.OesElementIndexUint = class OesElementIndexUint extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesElementIndexUint);
  dart.addTypeCaches(web_gl.OesElementIndexUint);
  dart.setLibraryUri(web_gl.OesElementIndexUint, I[160]);
  dart.registerExtension("OESElementIndexUint", web_gl.OesElementIndexUint);
  dart.registerExtension("OES_element_index_uint", web_gl.OesElementIndexUint);
  web_gl.OesStandardDerivatives = class OesStandardDerivatives extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesStandardDerivatives);
  dart.addTypeCaches(web_gl.OesStandardDerivatives);
  dart.setLibraryUri(web_gl.OesStandardDerivatives, I[160]);
  dart.defineLazy(web_gl.OesStandardDerivatives, {
    /*web_gl.OesStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES*/get FRAGMENT_SHADER_DERIVATIVE_HINT_OES() {
      return 35723;
    }
  }, false);
  dart.registerExtension("OESStandardDerivatives", web_gl.OesStandardDerivatives);
  dart.registerExtension("OES_standard_derivatives", web_gl.OesStandardDerivatives);
  web_gl.OesTextureFloat = class OesTextureFloat extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesTextureFloat);
  dart.addTypeCaches(web_gl.OesTextureFloat);
  dart.setLibraryUri(web_gl.OesTextureFloat, I[160]);
  dart.registerExtension("OESTextureFloat", web_gl.OesTextureFloat);
  dart.registerExtension("OES_texture_float", web_gl.OesTextureFloat);
  web_gl.OesTextureFloatLinear = class OesTextureFloatLinear extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesTextureFloatLinear);
  dart.addTypeCaches(web_gl.OesTextureFloatLinear);
  dart.setLibraryUri(web_gl.OesTextureFloatLinear, I[160]);
  dart.registerExtension("OESTextureFloatLinear", web_gl.OesTextureFloatLinear);
  dart.registerExtension("OES_texture_float_linear", web_gl.OesTextureFloatLinear);
  web_gl.OesTextureHalfFloat = class OesTextureHalfFloat extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesTextureHalfFloat);
  dart.addTypeCaches(web_gl.OesTextureHalfFloat);
  dart.setLibraryUri(web_gl.OesTextureHalfFloat, I[160]);
  dart.defineLazy(web_gl.OesTextureHalfFloat, {
    /*web_gl.OesTextureHalfFloat.HALF_FLOAT_OES*/get HALF_FLOAT_OES() {
      return 36193;
    }
  }, false);
  dart.registerExtension("OESTextureHalfFloat", web_gl.OesTextureHalfFloat);
  dart.registerExtension("OES_texture_half_float", web_gl.OesTextureHalfFloat);
  web_gl.OesTextureHalfFloatLinear = class OesTextureHalfFloatLinear extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.OesTextureHalfFloatLinear);
  dart.addTypeCaches(web_gl.OesTextureHalfFloatLinear);
  dart.setLibraryUri(web_gl.OesTextureHalfFloatLinear, I[160]);
  dart.registerExtension("OESTextureHalfFloatLinear", web_gl.OesTextureHalfFloatLinear);
  dart.registerExtension("OES_texture_half_float_linear", web_gl.OesTextureHalfFloatLinear);
  web_gl.OesVertexArrayObject = class OesVertexArrayObject extends _interceptors.Interceptor {
    [S$4.$bindVertexArray](...args) {
      return this.bindVertexArrayOES.apply(this, args);
    }
    [S$4.$createVertexArray](...args) {
      return this.createVertexArrayOES.apply(this, args);
    }
    [S$4.$deleteVertexArray](...args) {
      return this.deleteVertexArrayOES.apply(this, args);
    }
    [S$4.$isVertexArray](...args) {
      return this.isVertexArrayOES.apply(this, args);
    }
  };
  dart.addTypeTests(web_gl.OesVertexArrayObject);
  dart.addTypeCaches(web_gl.OesVertexArrayObject);
  dart.setMethodSignature(web_gl.OesVertexArrayObject, () => ({
    __proto__: dart.getMethods(web_gl.OesVertexArrayObject.__proto__),
    [S$4.$bindVertexArray]: dart.fnType(dart.void, [dart.nullable(web_gl.VertexArrayObjectOes)]),
    [S$4.$createVertexArray]: dart.fnType(web_gl.VertexArrayObjectOes, []),
    [S$4.$deleteVertexArray]: dart.fnType(dart.void, [dart.nullable(web_gl.VertexArrayObjectOes)]),
    [S$4.$isVertexArray]: dart.fnType(core.bool, [dart.nullable(web_gl.VertexArrayObjectOes)])
  }));
  dart.setLibraryUri(web_gl.OesVertexArrayObject, I[160]);
  dart.defineLazy(web_gl.OesVertexArrayObject, {
    /*web_gl.OesVertexArrayObject.VERTEX_ARRAY_BINDING_OES*/get VERTEX_ARRAY_BINDING_OES() {
      return 34229;
    }
  }, false);
  dart.registerExtension("OESVertexArrayObject", web_gl.OesVertexArrayObject);
  dart.registerExtension("OES_vertex_array_object", web_gl.OesVertexArrayObject);
  web_gl.Program = class Program extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Program);
  dart.addTypeCaches(web_gl.Program);
  dart.setLibraryUri(web_gl.Program, I[160]);
  dart.registerExtension("WebGLProgram", web_gl.Program);
  web_gl.Query = class Query extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Query);
  dart.addTypeCaches(web_gl.Query);
  dart.setLibraryUri(web_gl.Query, I[160]);
  dart.registerExtension("WebGLQuery", web_gl.Query);
  web_gl.Renderbuffer = class Renderbuffer extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Renderbuffer);
  dart.addTypeCaches(web_gl.Renderbuffer);
  dart.setLibraryUri(web_gl.Renderbuffer, I[160]);
  dart.registerExtension("WebGLRenderbuffer", web_gl.Renderbuffer);
  web_gl.RenderingContext = class RenderingContext extends _interceptors.Interceptor {
    static get supported() {
      return !!window.WebGLRenderingContext;
    }
    get [S$.$canvas]() {
      return this.canvas;
    }
    get [S$4.$drawingBufferHeight]() {
      return this.drawingBufferHeight;
    }
    get [S$4.$drawingBufferWidth]() {
      return this.drawingBufferWidth;
    }
    [S$4.$activeTexture](...args) {
      return this.activeTexture.apply(this, args);
    }
    [S$4.$attachShader](...args) {
      return this.attachShader.apply(this, args);
    }
    [S$4.$bindAttribLocation](...args) {
      return this.bindAttribLocation.apply(this, args);
    }
    [S$4.$bindBuffer](...args) {
      return this.bindBuffer.apply(this, args);
    }
    [S$4.$bindFramebuffer](...args) {
      return this.bindFramebuffer.apply(this, args);
    }
    [S$4.$bindRenderbuffer](...args) {
      return this.bindRenderbuffer.apply(this, args);
    }
    [S$4.$bindTexture](...args) {
      return this.bindTexture.apply(this, args);
    }
    [S$4.$blendColor](...args) {
      return this.blendColor.apply(this, args);
    }
    [S$4.$blendEquation](...args) {
      return this.blendEquation.apply(this, args);
    }
    [S$4.$blendEquationSeparate](...args) {
      return this.blendEquationSeparate.apply(this, args);
    }
    [S$4.$blendFunc](...args) {
      return this.blendFunc.apply(this, args);
    }
    [S$4.$blendFuncSeparate](...args) {
      return this.blendFuncSeparate.apply(this, args);
    }
    [S$4.$bufferData](...args) {
      return this.bufferData.apply(this, args);
    }
    [S$4.$bufferSubData](...args) {
      return this.bufferSubData.apply(this, args);
    }
    [S$4.$checkFramebufferStatus](...args) {
      return this.checkFramebufferStatus.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$4.$clearColor](...args) {
      return this.clearColor.apply(this, args);
    }
    [S$4.$clearDepth](...args) {
      return this.clearDepth.apply(this, args);
    }
    [S$4.$clearStencil](...args) {
      return this.clearStencil.apply(this, args);
    }
    [S$4.$colorMask](...args) {
      return this.colorMask.apply(this, args);
    }
    [S$2.$commit]() {
      return js_util.promiseToFuture(dart.dynamic, this.commit());
    }
    [S$4.$compileShader](...args) {
      return this.compileShader.apply(this, args);
    }
    [S$4.$compressedTexImage2D](...args) {
      return this.compressedTexImage2D.apply(this, args);
    }
    [S$4.$compressedTexSubImage2D](...args) {
      return this.compressedTexSubImage2D.apply(this, args);
    }
    [S$4.$copyTexImage2D](...args) {
      return this.copyTexImage2D.apply(this, args);
    }
    [S$4.$copyTexSubImage2D](...args) {
      return this.copyTexSubImage2D.apply(this, args);
    }
    [S$3.$createBuffer](...args) {
      return this.createBuffer.apply(this, args);
    }
    [S$4.$createFramebuffer](...args) {
      return this.createFramebuffer.apply(this, args);
    }
    [S$4.$createProgram](...args) {
      return this.createProgram.apply(this, args);
    }
    [S$4.$createRenderbuffer](...args) {
      return this.createRenderbuffer.apply(this, args);
    }
    [S$4.$createShader](...args) {
      return this.createShader.apply(this, args);
    }
    [S$4.$createTexture](...args) {
      return this.createTexture.apply(this, args);
    }
    [S$4.$cullFace](...args) {
      return this.cullFace.apply(this, args);
    }
    [S$4.$deleteBuffer](...args) {
      return this.deleteBuffer.apply(this, args);
    }
    [S$4.$deleteFramebuffer](...args) {
      return this.deleteFramebuffer.apply(this, args);
    }
    [S$4.$deleteProgram](...args) {
      return this.deleteProgram.apply(this, args);
    }
    [S$4.$deleteRenderbuffer](...args) {
      return this.deleteRenderbuffer.apply(this, args);
    }
    [S$4.$deleteShader](...args) {
      return this.deleteShader.apply(this, args);
    }
    [S$4.$deleteTexture](...args) {
      return this.deleteTexture.apply(this, args);
    }
    [S$4.$depthFunc](...args) {
      return this.depthFunc.apply(this, args);
    }
    [S$4.$depthMask](...args) {
      return this.depthMask.apply(this, args);
    }
    [S$4.$depthRange](...args) {
      return this.depthRange.apply(this, args);
    }
    [S$4.$detachShader](...args) {
      return this.detachShader.apply(this, args);
    }
    [S$1.$disable](...args) {
      return this.disable.apply(this, args);
    }
    [S$4.$disableVertexAttribArray](...args) {
      return this.disableVertexAttribArray.apply(this, args);
    }
    [S$4.$drawArrays](...args) {
      return this.drawArrays.apply(this, args);
    }
    [S$4.$drawElements](...args) {
      return this.drawElements.apply(this, args);
    }
    [S$1.$enable](...args) {
      return this.enable.apply(this, args);
    }
    [S$4.$enableVertexAttribArray](...args) {
      return this.enableVertexAttribArray.apply(this, args);
    }
    [S$.$finish](...args) {
      return this.finish.apply(this, args);
    }
    [S$4.$flush](...args) {
      return this.flush.apply(this, args);
    }
    [S$4.$framebufferRenderbuffer](...args) {
      return this.framebufferRenderbuffer.apply(this, args);
    }
    [S$4.$framebufferTexture2D](...args) {
      return this.framebufferTexture2D.apply(this, args);
    }
    [S$4.$frontFace](...args) {
      return this.frontFace.apply(this, args);
    }
    [S$4.$generateMipmap](...args) {
      return this.generateMipmap.apply(this, args);
    }
    [S$4.$getActiveAttrib](...args) {
      return this.getActiveAttrib.apply(this, args);
    }
    [S$4.$getActiveUniform](...args) {
      return this.getActiveUniform.apply(this, args);
    }
    [S$4.$getAttachedShaders](...args) {
      return this.getAttachedShaders.apply(this, args);
    }
    [S$4.$getAttribLocation](...args) {
      return this.getAttribLocation.apply(this, args);
    }
    [S$4.$getBufferParameter](...args) {
      return this.getBufferParameter.apply(this, args);
    }
    [S$.$getContextAttributes]() {
      return html_common.convertNativeToDart_Dictionary(this[S$4._getContextAttributes_1$1]());
    }
    [S$4._getContextAttributes_1$1](...args) {
      return this.getContextAttributes.apply(this, args);
    }
    [S$4.$getError](...args) {
      return this.getError.apply(this, args);
    }
    [S$4.$getExtension](...args) {
      return this.getExtension.apply(this, args);
    }
    [S$4.$getFramebufferAttachmentParameter](...args) {
      return this.getFramebufferAttachmentParameter.apply(this, args);
    }
    [S$3.$getParameter](...args) {
      return this.getParameter.apply(this, args);
    }
    [S$4.$getProgramInfoLog](...args) {
      return this.getProgramInfoLog.apply(this, args);
    }
    [S$4.$getProgramParameter](...args) {
      return this.getProgramParameter.apply(this, args);
    }
    [S$4.$getRenderbufferParameter](...args) {
      return this.getRenderbufferParameter.apply(this, args);
    }
    [S$4.$getShaderInfoLog](...args) {
      return this.getShaderInfoLog.apply(this, args);
    }
    [S$4.$getShaderParameter](...args) {
      return this.getShaderParameter.apply(this, args);
    }
    [S$4.$getShaderPrecisionFormat](...args) {
      return this.getShaderPrecisionFormat.apply(this, args);
    }
    [S$4.$getShaderSource](...args) {
      return this.getShaderSource.apply(this, args);
    }
    [S$4.$getSupportedExtensions](...args) {
      return this.getSupportedExtensions.apply(this, args);
    }
    [S$4.$getTexParameter](...args) {
      return this.getTexParameter.apply(this, args);
    }
    [S$4.$getUniform](...args) {
      return this.getUniform.apply(this, args);
    }
    [S$4.$getUniformLocation](...args) {
      return this.getUniformLocation.apply(this, args);
    }
    [S$4.$getVertexAttrib](...args) {
      return this.getVertexAttrib.apply(this, args);
    }
    [S$4.$getVertexAttribOffset](...args) {
      return this.getVertexAttribOffset.apply(this, args);
    }
    [S$4.$hint](...args) {
      return this.hint.apply(this, args);
    }
    [S$4.$isBuffer](...args) {
      return this.isBuffer.apply(this, args);
    }
    [S$.$isContextLost](...args) {
      return this.isContextLost.apply(this, args);
    }
    [S$4.$isEnabled](...args) {
      return this.isEnabled.apply(this, args);
    }
    [S$4.$isFramebuffer](...args) {
      return this.isFramebuffer.apply(this, args);
    }
    [S$4.$isProgram](...args) {
      return this.isProgram.apply(this, args);
    }
    [S$4.$isRenderbuffer](...args) {
      return this.isRenderbuffer.apply(this, args);
    }
    [S$4.$isShader](...args) {
      return this.isShader.apply(this, args);
    }
    [S$4.$isTexture](...args) {
      return this.isTexture.apply(this, args);
    }
    [S$.$lineWidth](...args) {
      return this.lineWidth.apply(this, args);
    }
    [S$4.$linkProgram](...args) {
      return this.linkProgram.apply(this, args);
    }
    [S$4.$pixelStorei](...args) {
      return this.pixelStorei.apply(this, args);
    }
    [S$4.$polygonOffset](...args) {
      return this.polygonOffset.apply(this, args);
    }
    [S$4._readPixels](...args) {
      return this.readPixels.apply(this, args);
    }
    [S$4.$renderbufferStorage](...args) {
      return this.renderbufferStorage.apply(this, args);
    }
    [S$4.$sampleCoverage](...args) {
      return this.sampleCoverage.apply(this, args);
    }
    [S$4.$scissor](...args) {
      return this.scissor.apply(this, args);
    }
    [S$4.$shaderSource](...args) {
      return this.shaderSource.apply(this, args);
    }
    [S$4.$stencilFunc](...args) {
      return this.stencilFunc.apply(this, args);
    }
    [S$4.$stencilFuncSeparate](...args) {
      return this.stencilFuncSeparate.apply(this, args);
    }
    [S$4.$stencilMask](...args) {
      return this.stencilMask.apply(this, args);
    }
    [S$4.$stencilMaskSeparate](...args) {
      return this.stencilMaskSeparate.apply(this, args);
    }
    [S$4.$stencilOp](...args) {
      return this.stencilOp.apply(this, args);
    }
    [S$4.$stencilOpSeparate](...args) {
      return this.stencilOpSeparate.apply(this, args);
    }
    [S$4.$texImage2D](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format = null, type = null, pixels = null) {
      if (target == null) dart.nullFailed(I[161], 980, 11, "target");
      if (level == null) dart.nullFailed(I[161], 981, 11, "level");
      if (internalformat == null) dart.nullFailed(I[161], 982, 11, "internalformat");
      if (format_OR_width == null) dart.nullFailed(I[161], 983, 11, "format_OR_width");
      if (height_OR_type == null) dart.nullFailed(I[161], 984, 11, "height_OR_type");
      if (type != null && format != null && core.int.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video)) {
        this[S$4._texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        this[S$4._texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_6](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texImage2D_1](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_2](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_3](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_4](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_5](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_6](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4.$texParameterf](...args) {
      return this.texParameterf.apply(this, args);
    }
    [S$4.$texParameteri](...args) {
      return this.texParameteri.apply(this, args);
    }
    [S$4.$texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type = null, pixels = null) {
      if (target == null) dart.nullFailed(I[161], 1097, 11, "target");
      if (level == null) dart.nullFailed(I[161], 1098, 11, "level");
      if (xoffset == null) dart.nullFailed(I[161], 1099, 11, "xoffset");
      if (yoffset == null) dart.nullFailed(I[161], 1100, 11, "yoffset");
      if (format_OR_width == null) dart.nullFailed(I[161], 1101, 11, "format_OR_width");
      if (height_OR_type == null) dart.nullFailed(I[161], 1102, 11, "height_OR_type");
      if (type != null && core.int.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video)) {
        this[S$4._texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        this[S$4._texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_6](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texSubImage2D_1](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_2](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_3](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_4](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_5](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_6](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4.$uniform1f](...args) {
      return this.uniform1f.apply(this, args);
    }
    [S$4.$uniform1fv](...args) {
      return this.uniform1fv.apply(this, args);
    }
    [S$4.$uniform1i](...args) {
      return this.uniform1i.apply(this, args);
    }
    [S$4.$uniform1iv](...args) {
      return this.uniform1iv.apply(this, args);
    }
    [S$4.$uniform2f](...args) {
      return this.uniform2f.apply(this, args);
    }
    [S$4.$uniform2fv](...args) {
      return this.uniform2fv.apply(this, args);
    }
    [S$4.$uniform2i](...args) {
      return this.uniform2i.apply(this, args);
    }
    [S$4.$uniform2iv](...args) {
      return this.uniform2iv.apply(this, args);
    }
    [S$4.$uniform3f](...args) {
      return this.uniform3f.apply(this, args);
    }
    [S$4.$uniform3fv](...args) {
      return this.uniform3fv.apply(this, args);
    }
    [S$4.$uniform3i](...args) {
      return this.uniform3i.apply(this, args);
    }
    [S$4.$uniform3iv](...args) {
      return this.uniform3iv.apply(this, args);
    }
    [S$4.$uniform4f](...args) {
      return this.uniform4f.apply(this, args);
    }
    [S$4.$uniform4fv](...args) {
      return this.uniform4fv.apply(this, args);
    }
    [S$4.$uniform4i](...args) {
      return this.uniform4i.apply(this, args);
    }
    [S$4.$uniform4iv](...args) {
      return this.uniform4iv.apply(this, args);
    }
    [S$4.$uniformMatrix2fv](...args) {
      return this.uniformMatrix2fv.apply(this, args);
    }
    [S$4.$uniformMatrix3fv](...args) {
      return this.uniformMatrix3fv.apply(this, args);
    }
    [S$4.$uniformMatrix4fv](...args) {
      return this.uniformMatrix4fv.apply(this, args);
    }
    [S$4.$useProgram](...args) {
      return this.useProgram.apply(this, args);
    }
    [S$4.$validateProgram](...args) {
      return this.validateProgram.apply(this, args);
    }
    [S$4.$vertexAttrib1f](...args) {
      return this.vertexAttrib1f.apply(this, args);
    }
    [S$4.$vertexAttrib1fv](...args) {
      return this.vertexAttrib1fv.apply(this, args);
    }
    [S$4.$vertexAttrib2f](...args) {
      return this.vertexAttrib2f.apply(this, args);
    }
    [S$4.$vertexAttrib2fv](...args) {
      return this.vertexAttrib2fv.apply(this, args);
    }
    [S$4.$vertexAttrib3f](...args) {
      return this.vertexAttrib3f.apply(this, args);
    }
    [S$4.$vertexAttrib3fv](...args) {
      return this.vertexAttrib3fv.apply(this, args);
    }
    [S$4.$vertexAttrib4f](...args) {
      return this.vertexAttrib4f.apply(this, args);
    }
    [S$4.$vertexAttrib4fv](...args) {
      return this.vertexAttrib4fv.apply(this, args);
    }
    [S$4.$vertexAttribPointer](...args) {
      return this.vertexAttribPointer.apply(this, args);
    }
    [S$4.$viewport](...args) {
      return this.viewport.apply(this, args);
    }
    [S$4.$readPixels](x, y, width, height, format, type, pixels) {
      if (x == null) dart.nullFailed(I[161], 1273, 23, "x");
      if (y == null) dart.nullFailed(I[161], 1273, 30, "y");
      if (width == null) dart.nullFailed(I[161], 1273, 37, "width");
      if (height == null) dart.nullFailed(I[161], 1273, 48, "height");
      if (format == null) dart.nullFailed(I[161], 1273, 60, "format");
      if (type == null) dart.nullFailed(I[161], 1273, 72, "type");
      this[S$4._readPixels](x, y, width, height, format, type, pixels);
    }
    [S$4.$texImage2DUntyped](targetTexture, levelOfDetail, internalFormat, format, type, data) {
      if (targetTexture == null) dart.nullFailed(I[161], 1287, 30, "targetTexture");
      if (levelOfDetail == null) dart.nullFailed(I[161], 1287, 49, "levelOfDetail");
      if (internalFormat == null) dart.nullFailed(I[161], 1288, 11, "internalFormat");
      if (format == null) dart.nullFailed(I[161], 1288, 31, "format");
      if (type == null) dart.nullFailed(I[161], 1288, 43, "type");
      this[S$4.$texImage2D](targetTexture, levelOfDetail, internalFormat, format, type, data);
    }
    [S$4.$texImage2DTyped](targetTexture, levelOfDetail, internalFormat, width, height, border, format, type, data) {
      if (targetTexture == null) dart.nullFailed(I[161], 1299, 28, "targetTexture");
      if (levelOfDetail == null) dart.nullFailed(I[161], 1299, 47, "levelOfDetail");
      if (internalFormat == null) dart.nullFailed(I[161], 1299, 66, "internalFormat");
      if (width == null) dart.nullFailed(I[161], 1300, 11, "width");
      if (height == null) dart.nullFailed(I[161], 1300, 22, "height");
      if (border == null) dart.nullFailed(I[161], 1300, 34, "border");
      if (format == null) dart.nullFailed(I[161], 1300, 46, "format");
      if (type == null) dart.nullFailed(I[161], 1300, 58, "type");
      if (data == null) dart.nullFailed(I[161], 1300, 74, "data");
      this[S$4.$texImage2D](targetTexture, levelOfDetail, internalFormat, width, height, border, format, type, data);
    }
    [S$4.$texSubImage2DUntyped](targetTexture, levelOfDetail, xOffset, yOffset, format, type, data) {
      if (targetTexture == null) dart.nullFailed(I[161], 1313, 33, "targetTexture");
      if (levelOfDetail == null) dart.nullFailed(I[161], 1313, 52, "levelOfDetail");
      if (xOffset == null) dart.nullFailed(I[161], 1313, 71, "xOffset");
      if (yOffset == null) dart.nullFailed(I[161], 1314, 11, "yOffset");
      if (format == null) dart.nullFailed(I[161], 1314, 24, "format");
      if (type == null) dart.nullFailed(I[161], 1314, 36, "type");
      this[S$4.$texSubImage2D](targetTexture, levelOfDetail, xOffset, yOffset, format, type, data);
    }
    [S$4.$texSubImage2DTyped](targetTexture, levelOfDetail, xOffset, yOffset, width, height, border, format, type, data) {
      if (targetTexture == null) dart.nullFailed(I[161], 1324, 11, "targetTexture");
      if (levelOfDetail == null) dart.nullFailed(I[161], 1325, 11, "levelOfDetail");
      if (xOffset == null) dart.nullFailed(I[161], 1326, 11, "xOffset");
      if (yOffset == null) dart.nullFailed(I[161], 1327, 11, "yOffset");
      if (width == null) dart.nullFailed(I[161], 1328, 11, "width");
      if (height == null) dart.nullFailed(I[161], 1329, 11, "height");
      if (border == null) dart.nullFailed(I[161], 1330, 11, "border");
      if (format == null) dart.nullFailed(I[161], 1331, 11, "format");
      if (type == null) dart.nullFailed(I[161], 1332, 11, "type");
      if (data == null) dart.nullFailed(I[161], 1333, 17, "data");
      this[S$4.$texSubImage2D](targetTexture, levelOfDetail, xOffset, yOffset, width, height, format, type, data);
    }
    [S$4.$bufferDataTyped](target, data, usage) {
      if (target == null) dart.nullFailed(I[161], 1342, 28, "target");
      if (data == null) dart.nullFailed(I[161], 1342, 46, "data");
      if (usage == null) dart.nullFailed(I[161], 1342, 56, "usage");
      this.bufferData(target, data, usage);
    }
    [S$4.$bufferSubDataTyped](target, offset, data) {
      if (target == null) dart.nullFailed(I[161], 1350, 31, "target");
      if (offset == null) dart.nullFailed(I[161], 1350, 43, "offset");
      if (data == null) dart.nullFailed(I[161], 1350, 61, "data");
      this.bufferSubData(target, offset, data);
    }
  };
  dart.addTypeTests(web_gl.RenderingContext);
  dart.addTypeCaches(web_gl.RenderingContext);
  web_gl.RenderingContext[dart.implements] = () => [html$.CanvasRenderingContext];
  dart.setMethodSignature(web_gl.RenderingContext, () => ({
    __proto__: dart.getMethods(web_gl.RenderingContext.__proto__),
    [S$4.$activeTexture]: dart.fnType(dart.void, [core.int]),
    [S$4.$attachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
    [S$4.$bindAttribLocation]: dart.fnType(dart.void, [web_gl.Program, core.int, core.String]),
    [S$4.$bindBuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Buffer)]),
    [S$4.$bindFramebuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Framebuffer)]),
    [S$4.$bindRenderbuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$bindTexture]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Texture)]),
    [S$4.$blendColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$4.$blendEquation]: dart.fnType(dart.void, [core.int]),
    [S$4.$blendEquationSeparate]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$blendFunc]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$blendFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$bufferData]: dart.fnType(dart.void, [core.int, dart.dynamic, core.int]),
    [S$4.$bufferSubData]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
    [S$4.$checkFramebufferStatus]: dart.fnType(core.int, [core.int]),
    [$clear]: dart.fnType(dart.void, [core.int]),
    [S$4.$clearColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$4.$clearDepth]: dart.fnType(dart.void, [core.num]),
    [S$4.$clearStencil]: dart.fnType(dart.void, [core.int]),
    [S$4.$colorMask]: dart.fnType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
    [S$2.$commit]: dart.fnType(async.Future, []),
    [S$4.$compileShader]: dart.fnType(dart.void, [web_gl.Shader]),
    [S$4.$compressedTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$compressedTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$copyTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$copyTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$3.$createBuffer]: dart.fnType(web_gl.Buffer, []),
    [S$4.$createFramebuffer]: dart.fnType(web_gl.Framebuffer, []),
    [S$4.$createProgram]: dart.fnType(web_gl.Program, []),
    [S$4.$createRenderbuffer]: dart.fnType(web_gl.Renderbuffer, []),
    [S$4.$createShader]: dart.fnType(web_gl.Shader, [core.int]),
    [S$4.$createTexture]: dart.fnType(web_gl.Texture, []),
    [S$4.$cullFace]: dart.fnType(dart.void, [core.int]),
    [S$4.$deleteBuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Buffer)]),
    [S$4.$deleteFramebuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Framebuffer)]),
    [S$4.$deleteProgram]: dart.fnType(dart.void, [dart.nullable(web_gl.Program)]),
    [S$4.$deleteRenderbuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$deleteShader]: dart.fnType(dart.void, [dart.nullable(web_gl.Shader)]),
    [S$4.$deleteTexture]: dart.fnType(dart.void, [dart.nullable(web_gl.Texture)]),
    [S$4.$depthFunc]: dart.fnType(dart.void, [core.int]),
    [S$4.$depthMask]: dart.fnType(dart.void, [core.bool]),
    [S$4.$depthRange]: dart.fnType(dart.void, [core.num, core.num]),
    [S$4.$detachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
    [S$1.$disable]: dart.fnType(dart.void, [core.int]),
    [S$4.$disableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
    [S$4.$drawArrays]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$drawElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$1.$enable]: dart.fnType(dart.void, [core.int]),
    [S$4.$enableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
    [S$.$finish]: dart.fnType(dart.void, []),
    [S$4.$flush]: dart.fnType(dart.void, []),
    [S$4.$framebufferRenderbuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$framebufferTexture2D]: dart.fnType(dart.void, [core.int, core.int, core.int, dart.nullable(web_gl.Texture), core.int]),
    [S$4.$frontFace]: dart.fnType(dart.void, [core.int]),
    [S$4.$generateMipmap]: dart.fnType(dart.void, [core.int]),
    [S$4.$getActiveAttrib]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
    [S$4.$getActiveUniform]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
    [S$4.$getAttachedShaders]: dart.fnType(dart.nullable(core.List$(web_gl.Shader)), [web_gl.Program]),
    [S$4.$getAttribLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
    [S$4.$getBufferParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$.$getContextAttributes]: dart.fnType(dart.nullable(core.Map), []),
    [S$4._getContextAttributes_1$1]: dart.fnType(dart.dynamic, []),
    [S$4.$getError]: dart.fnType(core.int, []),
    [S$4.$getExtension]: dart.fnType(dart.nullable(core.Object), [core.String]),
    [S$4.$getFramebufferAttachmentParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int, core.int]),
    [S$3.$getParameter]: dart.fnType(dart.nullable(core.Object), [core.int]),
    [S$4.$getProgramInfoLog]: dart.fnType(dart.nullable(core.String), [web_gl.Program]),
    [S$4.$getProgramParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, core.int]),
    [S$4.$getRenderbufferParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getShaderInfoLog]: dart.fnType(dart.nullable(core.String), [web_gl.Shader]),
    [S$4.$getShaderParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Shader, core.int]),
    [S$4.$getShaderPrecisionFormat]: dart.fnType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
    [S$4.$getShaderSource]: dart.fnType(dart.nullable(core.String), [web_gl.Shader]),
    [S$4.$getSupportedExtensions]: dart.fnType(dart.nullable(core.List$(core.String)), []),
    [S$4.$getTexParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getUniform]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, web_gl.UniformLocation]),
    [S$4.$getUniformLocation]: dart.fnType(web_gl.UniformLocation, [web_gl.Program, core.String]),
    [S$4.$getVertexAttrib]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getVertexAttribOffset]: dart.fnType(core.int, [core.int, core.int]),
    [S$4.$hint]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$isBuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Buffer)]),
    [S$.$isContextLost]: dart.fnType(core.bool, []),
    [S$4.$isEnabled]: dart.fnType(core.bool, [core.int]),
    [S$4.$isFramebuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Framebuffer)]),
    [S$4.$isProgram]: dart.fnType(core.bool, [dart.nullable(web_gl.Program)]),
    [S$4.$isRenderbuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$isShader]: dart.fnType(core.bool, [dart.nullable(web_gl.Shader)]),
    [S$4.$isTexture]: dart.fnType(core.bool, [dart.nullable(web_gl.Texture)]),
    [S$.$lineWidth]: dart.fnType(dart.void, [core.num]),
    [S$4.$linkProgram]: dart.fnType(dart.void, [web_gl.Program]),
    [S$4.$pixelStorei]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$polygonOffset]: dart.fnType(dart.void, [core.num, core.num]),
    [S$4._readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.nullable(typed_data.TypedData)]),
    [S$4.$renderbufferStorage]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$sampleCoverage]: dart.fnType(dart.void, [core.num, core.bool]),
    [S$4.$scissor]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$shaderSource]: dart.fnType(dart.void, [web_gl.Shader, core.String]),
    [S$4.$stencilFunc]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$stencilFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$stencilMask]: dart.fnType(dart.void, [core.int]),
    [S$4.$stencilMaskSeparate]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$stencilOp]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$stencilOpSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$texImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(typed_data.TypedData)]),
    [S$4._texImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, dart.nullable(typed_data.TypedData)]),
    [S$4._texImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4.$texParameterf]: dart.fnType(dart.void, [core.int, core.int, core.num]),
    [S$4.$texParameteri]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$texSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int), dart.nullable(typed_data.TypedData)]),
    [S$4._texSubImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.nullable(typed_data.TypedData)]),
    [S$4._texSubImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texSubImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texSubImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texSubImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texSubImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4.$uniform1f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num]),
    [S$4.$uniform1fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform1i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int]),
    [S$4.$uniform1iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform2f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num]),
    [S$4.$uniform2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform2i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int]),
    [S$4.$uniform2iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform3f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num, core.num]),
    [S$4.$uniform3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform3i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int]),
    [S$4.$uniform3iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform4f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num, core.num, core.num]),
    [S$4.$uniform4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform4i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int, core.int]),
    [S$4.$uniform4iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniformMatrix2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$uniformMatrix3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$uniformMatrix4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$useProgram]: dart.fnType(dart.void, [dart.nullable(web_gl.Program)]),
    [S$4.$validateProgram]: dart.fnType(dart.void, [web_gl.Program]),
    [S$4.$vertexAttrib1f]: dart.fnType(dart.void, [core.int, core.num]),
    [S$4.$vertexAttrib1fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib2f]: dart.fnType(dart.void, [core.int, core.num, core.num]),
    [S$4.$vertexAttrib2fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib3f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num]),
    [S$4.$vertexAttrib3fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib4f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
    [S$4.$vertexAttrib4fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttribPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
    [S$4.$viewport]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.nullable(typed_data.TypedData)]),
    [S$4.$texImage2DUntyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
    [S$4.$texImage2DTyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$texSubImage2DUntyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
    [S$4.$texSubImage2DTyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$bufferDataTyped]: dart.fnType(dart.void, [core.int, typed_data.TypedData, core.int]),
    [S$4.$bufferSubDataTyped]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData])
  }));
  dart.setGetterSignature(web_gl.RenderingContext, () => ({
    __proto__: dart.getGetters(web_gl.RenderingContext.__proto__),
    [S$.$canvas]: html$.CanvasElement,
    [S$4.$drawingBufferHeight]: dart.nullable(core.int),
    [S$4.$drawingBufferWidth]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_gl.RenderingContext, I[160]);
  dart.registerExtension("WebGLRenderingContext", web_gl.RenderingContext);
  web_gl.RenderingContext2 = class RenderingContext2 extends _interceptors.Interceptor {
    get [S$.$canvas]() {
      return this.canvas;
    }
    [S$4.$beginQuery](...args) {
      return this.beginQuery.apply(this, args);
    }
    [S$4.$beginTransformFeedback](...args) {
      return this.beginTransformFeedback.apply(this, args);
    }
    [S$4.$bindBufferBase](...args) {
      return this.bindBufferBase.apply(this, args);
    }
    [S$4.$bindBufferRange](...args) {
      return this.bindBufferRange.apply(this, args);
    }
    [S$4.$bindSampler](...args) {
      return this.bindSampler.apply(this, args);
    }
    [S$4.$bindTransformFeedback](...args) {
      return this.bindTransformFeedback.apply(this, args);
    }
    [S$4.$bindVertexArray](...args) {
      return this.bindVertexArray.apply(this, args);
    }
    [S$4.$blitFramebuffer](...args) {
      return this.blitFramebuffer.apply(this, args);
    }
    [S$4.$bufferData2](...args) {
      return this.bufferData.apply(this, args);
    }
    [S$4.$bufferSubData2](...args) {
      return this.bufferSubData.apply(this, args);
    }
    [S$4.$clearBufferfi](...args) {
      return this.clearBufferfi.apply(this, args);
    }
    [S$4.$clearBufferfv](...args) {
      return this.clearBufferfv.apply(this, args);
    }
    [S$4.$clearBufferiv](...args) {
      return this.clearBufferiv.apply(this, args);
    }
    [S$4.$clearBufferuiv](...args) {
      return this.clearBufferuiv.apply(this, args);
    }
    [S$4.$clientWaitSync](...args) {
      return this.clientWaitSync.apply(this, args);
    }
    [S$4.$compressedTexImage2D2](...args) {
      return this.compressedTexImage2D.apply(this, args);
    }
    [S$4.$compressedTexImage2D3](...args) {
      return this.compressedTexImage2D.apply(this, args);
    }
    [S$4.$compressedTexImage3D](...args) {
      return this.compressedTexImage3D.apply(this, args);
    }
    [S$4.$compressedTexImage3D2](...args) {
      return this.compressedTexImage3D.apply(this, args);
    }
    [S$4.$compressedTexSubImage2D2](...args) {
      return this.compressedTexSubImage2D.apply(this, args);
    }
    [S$4.$compressedTexSubImage2D3](...args) {
      return this.compressedTexSubImage2D.apply(this, args);
    }
    [S$4.$compressedTexSubImage3D](...args) {
      return this.compressedTexSubImage3D.apply(this, args);
    }
    [S$4.$compressedTexSubImage3D2](...args) {
      return this.compressedTexSubImage3D.apply(this, args);
    }
    [S$4.$copyBufferSubData](...args) {
      return this.copyBufferSubData.apply(this, args);
    }
    [S$4.$copyTexSubImage3D](...args) {
      return this.copyTexSubImage3D.apply(this, args);
    }
    [S$4.$createQuery](...args) {
      return this.createQuery.apply(this, args);
    }
    [S$4.$createSampler](...args) {
      return this.createSampler.apply(this, args);
    }
    [S$4.$createTransformFeedback](...args) {
      return this.createTransformFeedback.apply(this, args);
    }
    [S$4.$createVertexArray](...args) {
      return this.createVertexArray.apply(this, args);
    }
    [S$4.$deleteQuery](...args) {
      return this.deleteQuery.apply(this, args);
    }
    [S$4.$deleteSampler](...args) {
      return this.deleteSampler.apply(this, args);
    }
    [S$4.$deleteSync](...args) {
      return this.deleteSync.apply(this, args);
    }
    [S$4.$deleteTransformFeedback](...args) {
      return this.deleteTransformFeedback.apply(this, args);
    }
    [S$4.$deleteVertexArray](...args) {
      return this.deleteVertexArray.apply(this, args);
    }
    [S$4.$drawArraysInstanced](...args) {
      return this.drawArraysInstanced.apply(this, args);
    }
    [S$4.$drawBuffers](...args) {
      return this.drawBuffers.apply(this, args);
    }
    [S$4.$drawElementsInstanced](...args) {
      return this.drawElementsInstanced.apply(this, args);
    }
    [S$4.$drawRangeElements](...args) {
      return this.drawRangeElements.apply(this, args);
    }
    [S$4.$endQuery](...args) {
      return this.endQuery.apply(this, args);
    }
    [S$4.$endTransformFeedback](...args) {
      return this.endTransformFeedback.apply(this, args);
    }
    [S$4.$fenceSync](...args) {
      return this.fenceSync.apply(this, args);
    }
    [S$4.$framebufferTextureLayer](...args) {
      return this.framebufferTextureLayer.apply(this, args);
    }
    [S$4.$getActiveUniformBlockName](...args) {
      return this.getActiveUniformBlockName.apply(this, args);
    }
    [S$4.$getActiveUniformBlockParameter](...args) {
      return this.getActiveUniformBlockParameter.apply(this, args);
    }
    [S$4.$getActiveUniforms](...args) {
      return this.getActiveUniforms.apply(this, args);
    }
    [S$4.$getBufferSubData](...args) {
      return this.getBufferSubData.apply(this, args);
    }
    [S$4.$getFragDataLocation](...args) {
      return this.getFragDataLocation.apply(this, args);
    }
    [S$4.$getIndexedParameter](...args) {
      return this.getIndexedParameter.apply(this, args);
    }
    [S$4.$getInternalformatParameter](...args) {
      return this.getInternalformatParameter.apply(this, args);
    }
    [S$4.$getQuery](...args) {
      return this.getQuery.apply(this, args);
    }
    [S$4.$getQueryParameter](...args) {
      return this.getQueryParameter.apply(this, args);
    }
    [S$4.$getSamplerParameter](...args) {
      return this.getSamplerParameter.apply(this, args);
    }
    [S$4.$getSyncParameter](...args) {
      return this.getSyncParameter.apply(this, args);
    }
    [S$4.$getTransformFeedbackVarying](...args) {
      return this.getTransformFeedbackVarying.apply(this, args);
    }
    [S$4.$getUniformBlockIndex](...args) {
      return this.getUniformBlockIndex.apply(this, args);
    }
    [S$4.$getUniformIndices](program, uniformNames) {
      if (program == null) dart.nullFailed(I[161], 1537, 40, "program");
      if (uniformNames == null) dart.nullFailed(I[161], 1537, 62, "uniformNames");
      let uniformNames_1 = html_common.convertDartToNative_StringArray(uniformNames);
      return this[S$4._getUniformIndices_1](program, uniformNames_1);
    }
    [S$4._getUniformIndices_1](...args) {
      return this.getUniformIndices.apply(this, args);
    }
    [S$4.$invalidateFramebuffer](...args) {
      return this.invalidateFramebuffer.apply(this, args);
    }
    [S$4.$invalidateSubFramebuffer](...args) {
      return this.invalidateSubFramebuffer.apply(this, args);
    }
    [S$4.$isQuery](...args) {
      return this.isQuery.apply(this, args);
    }
    [S$4.$isSampler](...args) {
      return this.isSampler.apply(this, args);
    }
    [S$4.$isSync](...args) {
      return this.isSync.apply(this, args);
    }
    [S$4.$isTransformFeedback](...args) {
      return this.isTransformFeedback.apply(this, args);
    }
    [S$4.$isVertexArray](...args) {
      return this.isVertexArray.apply(this, args);
    }
    [S$4.$pauseTransformFeedback](...args) {
      return this.pauseTransformFeedback.apply(this, args);
    }
    [S$4.$readBuffer](...args) {
      return this.readBuffer.apply(this, args);
    }
    [S$4.$readPixels2](...args) {
      return this.readPixels.apply(this, args);
    }
    [S$4.$renderbufferStorageMultisample](...args) {
      return this.renderbufferStorageMultisample.apply(this, args);
    }
    [S$4.$resumeTransformFeedback](...args) {
      return this.resumeTransformFeedback.apply(this, args);
    }
    [S$4.$samplerParameterf](...args) {
      return this.samplerParameterf.apply(this, args);
    }
    [S$4.$samplerParameteri](...args) {
      return this.samplerParameteri.apply(this, args);
    }
    [S$4.$texImage2D2](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset = null) {
      if (target == null) dart.nullFailed(I[161], 1579, 11, "target");
      if (level == null) dart.nullFailed(I[161], 1580, 11, "level");
      if (internalformat == null) dart.nullFailed(I[161], 1581, 11, "internalformat");
      if (width == null) dart.nullFailed(I[161], 1582, 11, "width");
      if (height == null) dart.nullFailed(I[161], 1583, 11, "height");
      if (border == null) dart.nullFailed(I[161], 1584, 11, "border");
      if (format == null) dart.nullFailed(I[161], 1585, 11, "format");
      if (type == null) dart.nullFailed(I[161], 1586, 11, "type");
      if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texImage2D2_1](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        this[S$4._texImage2D2_2](target, level, internalformat, width, height, border, format, type, data_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texImage2D2_3](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texImage2D2_4](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texImage2D2_5](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texImage2D2_6](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video)) {
        this[S$4._texImage2D2_7](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texImage2D2_1](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_2](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_3](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_4](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_5](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_6](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D2_7](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4.$texImage3D](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset = null) {
      if (target == null) dart.nullFailed(I[161], 1715, 11, "target");
      if (level == null) dart.nullFailed(I[161], 1716, 11, "level");
      if (internalformat == null) dart.nullFailed(I[161], 1717, 11, "internalformat");
      if (width == null) dart.nullFailed(I[161], 1718, 11, "width");
      if (height == null) dart.nullFailed(I[161], 1719, 11, "height");
      if (depth == null) dart.nullFailed(I[161], 1720, 11, "depth");
      if (border == null) dart.nullFailed(I[161], 1721, 11, "border");
      if (format == null) dart.nullFailed(I[161], 1722, 11, "format");
      if (type == null) dart.nullFailed(I[161], 1723, 11, "type");
      if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texImage3D_1](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        this[S$4._texImage3D_2](target, level, internalformat, width, height, depth, border, format, type, data_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texImage3D_3](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texImage3D_4](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texImage3D_5](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texImage3D_6](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if ((typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) || bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video == null) && srcOffset == null) {
        this[S$4._texImage3D_7](target, level, internalformat, width, height, depth, border, format, type, T$0.TypedDataN().as(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video));
        return;
      }
      if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video)) {
        this[S$4._texImage3D_8](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texImage3D_1](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_2](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_3](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_4](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_5](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_6](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_7](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4._texImage3D_8](...args) {
      return this.texImage3D.apply(this, args);
    }
    [S$4.$texStorage2D](...args) {
      return this.texStorage2D.apply(this, args);
    }
    [S$4.$texStorage3D](...args) {
      return this.texStorage3D.apply(this, args);
    }
    [S$4.$texSubImage2D2](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset = null) {
      if (target == null) dart.nullFailed(I[161], 1885, 11, "target");
      if (level == null) dart.nullFailed(I[161], 1886, 11, "level");
      if (xoffset == null) dart.nullFailed(I[161], 1887, 11, "xoffset");
      if (yoffset == null) dart.nullFailed(I[161], 1888, 11, "yoffset");
      if (width == null) dart.nullFailed(I[161], 1889, 11, "width");
      if (height == null) dart.nullFailed(I[161], 1890, 11, "height");
      if (format == null) dart.nullFailed(I[161], 1891, 11, "format");
      if (type == null) dart.nullFailed(I[161], 1892, 11, "type");
      if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texSubImage2D2_1](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        this[S$4._texSubImage2D2_2](target, level, xoffset, yoffset, width, height, format, type, data_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texSubImage2D2_3](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texSubImage2D2_4](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texSubImage2D2_5](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
        this[S$4._texSubImage2D2_6](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
        return;
      }
      if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video)) {
        this[S$4._texSubImage2D2_7](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texSubImage2D2_1](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_2](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_3](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_4](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_5](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_6](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D2_7](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4.$texSubImage3D](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset = null) {
      if (target == null) dart.nullFailed(I[161], 2021, 11, "target");
      if (level == null) dart.nullFailed(I[161], 2022, 11, "level");
      if (xoffset == null) dart.nullFailed(I[161], 2023, 11, "xoffset");
      if (yoffset == null) dart.nullFailed(I[161], 2024, 11, "yoffset");
      if (zoffset == null) dart.nullFailed(I[161], 2025, 11, "zoffset");
      if (width == null) dart.nullFailed(I[161], 2026, 11, "width");
      if (height == null) dart.nullFailed(I[161], 2027, 11, "height");
      if (depth == null) dart.nullFailed(I[161], 2028, 11, "depth");
      if (format == null) dart.nullFailed(I[161], 2029, 11, "format");
      if (type == null) dart.nullFailed(I[161], 2030, 11, "type");
      if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_1](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        this[S$4._texSubImage3D_2](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_3](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_4](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_5](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_6](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
        this[S$4._texSubImage3D_7](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
        return;
      }
      if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video)) {
        this[S$4._texSubImage3D_8](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texSubImage3D_1](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_2](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_3](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_4](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_5](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_6](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_7](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4._texSubImage3D_8](...args) {
      return this.texSubImage3D.apply(this, args);
    }
    [S$4.$transformFeedbackVaryings](program, varyings, bufferMode) {
      if (program == null) dart.nullFailed(I[161], 2191, 15, "program");
      if (varyings == null) dart.nullFailed(I[161], 2191, 37, "varyings");
      if (bufferMode == null) dart.nullFailed(I[161], 2191, 51, "bufferMode");
      let varyings_1 = html_common.convertDartToNative_StringArray(varyings);
      this[S$4._transformFeedbackVaryings_1](program, varyings_1, bufferMode);
      return;
    }
    [S$4._transformFeedbackVaryings_1](...args) {
      return this.transformFeedbackVaryings.apply(this, args);
    }
    [S$4.$uniform1fv2](...args) {
      return this.uniform1fv.apply(this, args);
    }
    [S$4.$uniform1iv2](...args) {
      return this.uniform1iv.apply(this, args);
    }
    [S$4.$uniform1ui](...args) {
      return this.uniform1ui.apply(this, args);
    }
    [S$4.$uniform1uiv](...args) {
      return this.uniform1uiv.apply(this, args);
    }
    [S$4.$uniform2fv2](...args) {
      return this.uniform2fv.apply(this, args);
    }
    [S$4.$uniform2iv2](...args) {
      return this.uniform2iv.apply(this, args);
    }
    [S$4.$uniform2ui](...args) {
      return this.uniform2ui.apply(this, args);
    }
    [S$4.$uniform2uiv](...args) {
      return this.uniform2uiv.apply(this, args);
    }
    [S$4.$uniform3fv2](...args) {
      return this.uniform3fv.apply(this, args);
    }
    [S$4.$uniform3iv2](...args) {
      return this.uniform3iv.apply(this, args);
    }
    [S$4.$uniform3ui](...args) {
      return this.uniform3ui.apply(this, args);
    }
    [S$4.$uniform3uiv](...args) {
      return this.uniform3uiv.apply(this, args);
    }
    [S$4.$uniform4fv2](...args) {
      return this.uniform4fv.apply(this, args);
    }
    [S$4.$uniform4iv2](...args) {
      return this.uniform4iv.apply(this, args);
    }
    [S$4.$uniform4ui](...args) {
      return this.uniform4ui.apply(this, args);
    }
    [S$4.$uniform4uiv](...args) {
      return this.uniform4uiv.apply(this, args);
    }
    [S$4.$uniformBlockBinding](...args) {
      return this.uniformBlockBinding.apply(this, args);
    }
    [S$4.$uniformMatrix2fv2](...args) {
      return this.uniformMatrix2fv.apply(this, args);
    }
    [S$4.$uniformMatrix2x3fv](...args) {
      return this.uniformMatrix2x3fv.apply(this, args);
    }
    [S$4.$uniformMatrix2x4fv](...args) {
      return this.uniformMatrix2x4fv.apply(this, args);
    }
    [S$4.$uniformMatrix3fv2](...args) {
      return this.uniformMatrix3fv.apply(this, args);
    }
    [S$4.$uniformMatrix3x2fv](...args) {
      return this.uniformMatrix3x2fv.apply(this, args);
    }
    [S$4.$uniformMatrix3x4fv](...args) {
      return this.uniformMatrix3x4fv.apply(this, args);
    }
    [S$4.$uniformMatrix4fv2](...args) {
      return this.uniformMatrix4fv.apply(this, args);
    }
    [S$4.$uniformMatrix4x2fv](...args) {
      return this.uniformMatrix4x2fv.apply(this, args);
    }
    [S$4.$uniformMatrix4x3fv](...args) {
      return this.uniformMatrix4x3fv.apply(this, args);
    }
    [S$4.$vertexAttribDivisor](...args) {
      return this.vertexAttribDivisor.apply(this, args);
    }
    [S$4.$vertexAttribI4i](...args) {
      return this.vertexAttribI4i.apply(this, args);
    }
    [S$4.$vertexAttribI4iv](...args) {
      return this.vertexAttribI4iv.apply(this, args);
    }
    [S$4.$vertexAttribI4ui](...args) {
      return this.vertexAttribI4ui.apply(this, args);
    }
    [S$4.$vertexAttribI4uiv](...args) {
      return this.vertexAttribI4uiv.apply(this, args);
    }
    [S$4.$vertexAttribIPointer](...args) {
      return this.vertexAttribIPointer.apply(this, args);
    }
    [S$4.$waitSync](...args) {
      return this.waitSync.apply(this, args);
    }
    get [S$4.$drawingBufferHeight]() {
      return this.drawingBufferHeight;
    }
    get [S$4.$drawingBufferWidth]() {
      return this.drawingBufferWidth;
    }
    [S$4.$activeTexture](...args) {
      return this.activeTexture.apply(this, args);
    }
    [S$4.$attachShader](...args) {
      return this.attachShader.apply(this, args);
    }
    [S$4.$bindAttribLocation](...args) {
      return this.bindAttribLocation.apply(this, args);
    }
    [S$4.$bindBuffer](...args) {
      return this.bindBuffer.apply(this, args);
    }
    [S$4.$bindFramebuffer](...args) {
      return this.bindFramebuffer.apply(this, args);
    }
    [S$4.$bindRenderbuffer](...args) {
      return this.bindRenderbuffer.apply(this, args);
    }
    [S$4.$bindTexture](...args) {
      return this.bindTexture.apply(this, args);
    }
    [S$4.$blendColor](...args) {
      return this.blendColor.apply(this, args);
    }
    [S$4.$blendEquation](...args) {
      return this.blendEquation.apply(this, args);
    }
    [S$4.$blendEquationSeparate](...args) {
      return this.blendEquationSeparate.apply(this, args);
    }
    [S$4.$blendFunc](...args) {
      return this.blendFunc.apply(this, args);
    }
    [S$4.$blendFuncSeparate](...args) {
      return this.blendFuncSeparate.apply(this, args);
    }
    [S$4.$bufferData](...args) {
      return this.bufferData.apply(this, args);
    }
    [S$4.$bufferSubData](...args) {
      return this.bufferSubData.apply(this, args);
    }
    [S$4.$checkFramebufferStatus](...args) {
      return this.checkFramebufferStatus.apply(this, args);
    }
    [$clear](...args) {
      return this.clear.apply(this, args);
    }
    [S$4.$clearColor](...args) {
      return this.clearColor.apply(this, args);
    }
    [S$4.$clearDepth](...args) {
      return this.clearDepth.apply(this, args);
    }
    [S$4.$clearStencil](...args) {
      return this.clearStencil.apply(this, args);
    }
    [S$4.$colorMask](...args) {
      return this.colorMask.apply(this, args);
    }
    [S$2.$commit]() {
      return js_util.promiseToFuture(dart.dynamic, this.commit());
    }
    [S$4.$compileShader](...args) {
      return this.compileShader.apply(this, args);
    }
    [S$4.$compressedTexImage2D](...args) {
      return this.compressedTexImage2D.apply(this, args);
    }
    [S$4.$compressedTexSubImage2D](...args) {
      return this.compressedTexSubImage2D.apply(this, args);
    }
    [S$4.$copyTexImage2D](...args) {
      return this.copyTexImage2D.apply(this, args);
    }
    [S$4.$copyTexSubImage2D](...args) {
      return this.copyTexSubImage2D.apply(this, args);
    }
    [S$3.$createBuffer](...args) {
      return this.createBuffer.apply(this, args);
    }
    [S$4.$createFramebuffer](...args) {
      return this.createFramebuffer.apply(this, args);
    }
    [S$4.$createProgram](...args) {
      return this.createProgram.apply(this, args);
    }
    [S$4.$createRenderbuffer](...args) {
      return this.createRenderbuffer.apply(this, args);
    }
    [S$4.$createShader](...args) {
      return this.createShader.apply(this, args);
    }
    [S$4.$createTexture](...args) {
      return this.createTexture.apply(this, args);
    }
    [S$4.$cullFace](...args) {
      return this.cullFace.apply(this, args);
    }
    [S$4.$deleteBuffer](...args) {
      return this.deleteBuffer.apply(this, args);
    }
    [S$4.$deleteFramebuffer](...args) {
      return this.deleteFramebuffer.apply(this, args);
    }
    [S$4.$deleteProgram](...args) {
      return this.deleteProgram.apply(this, args);
    }
    [S$4.$deleteRenderbuffer](...args) {
      return this.deleteRenderbuffer.apply(this, args);
    }
    [S$4.$deleteShader](...args) {
      return this.deleteShader.apply(this, args);
    }
    [S$4.$deleteTexture](...args) {
      return this.deleteTexture.apply(this, args);
    }
    [S$4.$depthFunc](...args) {
      return this.depthFunc.apply(this, args);
    }
    [S$4.$depthMask](...args) {
      return this.depthMask.apply(this, args);
    }
    [S$4.$depthRange](...args) {
      return this.depthRange.apply(this, args);
    }
    [S$4.$detachShader](...args) {
      return this.detachShader.apply(this, args);
    }
    [S$1.$disable](...args) {
      return this.disable.apply(this, args);
    }
    [S$4.$disableVertexAttribArray](...args) {
      return this.disableVertexAttribArray.apply(this, args);
    }
    [S$4.$drawArrays](...args) {
      return this.drawArrays.apply(this, args);
    }
    [S$4.$drawElements](...args) {
      return this.drawElements.apply(this, args);
    }
    [S$1.$enable](...args) {
      return this.enable.apply(this, args);
    }
    [S$4.$enableVertexAttribArray](...args) {
      return this.enableVertexAttribArray.apply(this, args);
    }
    [S$.$finish](...args) {
      return this.finish.apply(this, args);
    }
    [S$4.$flush](...args) {
      return this.flush.apply(this, args);
    }
    [S$4.$framebufferRenderbuffer](...args) {
      return this.framebufferRenderbuffer.apply(this, args);
    }
    [S$4.$framebufferTexture2D](...args) {
      return this.framebufferTexture2D.apply(this, args);
    }
    [S$4.$frontFace](...args) {
      return this.frontFace.apply(this, args);
    }
    [S$4.$generateMipmap](...args) {
      return this.generateMipmap.apply(this, args);
    }
    [S$4.$getActiveAttrib](...args) {
      return this.getActiveAttrib.apply(this, args);
    }
    [S$4.$getActiveUniform](...args) {
      return this.getActiveUniform.apply(this, args);
    }
    [S$4.$getAttachedShaders](...args) {
      return this.getAttachedShaders.apply(this, args);
    }
    [S$4.$getAttribLocation](...args) {
      return this.getAttribLocation.apply(this, args);
    }
    [S$4.$getBufferParameter](...args) {
      return this.getBufferParameter.apply(this, args);
    }
    [S$.$getContextAttributes]() {
      return html_common.convertNativeToDart_Dictionary(this[S$4._getContextAttributes_1$1]());
    }
    [S$4._getContextAttributes_1$1](...args) {
      return this.getContextAttributes.apply(this, args);
    }
    [S$4.$getError](...args) {
      return this.getError.apply(this, args);
    }
    [S$4.$getExtension](...args) {
      return this.getExtension.apply(this, args);
    }
    [S$4.$getFramebufferAttachmentParameter](...args) {
      return this.getFramebufferAttachmentParameter.apply(this, args);
    }
    [S$3.$getParameter](...args) {
      return this.getParameter.apply(this, args);
    }
    [S$4.$getProgramInfoLog](...args) {
      return this.getProgramInfoLog.apply(this, args);
    }
    [S$4.$getProgramParameter](...args) {
      return this.getProgramParameter.apply(this, args);
    }
    [S$4.$getRenderbufferParameter](...args) {
      return this.getRenderbufferParameter.apply(this, args);
    }
    [S$4.$getShaderInfoLog](...args) {
      return this.getShaderInfoLog.apply(this, args);
    }
    [S$4.$getShaderParameter](...args) {
      return this.getShaderParameter.apply(this, args);
    }
    [S$4.$getShaderPrecisionFormat](...args) {
      return this.getShaderPrecisionFormat.apply(this, args);
    }
    [S$4.$getShaderSource](...args) {
      return this.getShaderSource.apply(this, args);
    }
    [S$4.$getSupportedExtensions](...args) {
      return this.getSupportedExtensions.apply(this, args);
    }
    [S$4.$getTexParameter](...args) {
      return this.getTexParameter.apply(this, args);
    }
    [S$4.$getUniform](...args) {
      return this.getUniform.apply(this, args);
    }
    [S$4.$getUniformLocation](...args) {
      return this.getUniformLocation.apply(this, args);
    }
    [S$4.$getVertexAttrib](...args) {
      return this.getVertexAttrib.apply(this, args);
    }
    [S$4.$getVertexAttribOffset](...args) {
      return this.getVertexAttribOffset.apply(this, args);
    }
    [S$4.$hint](...args) {
      return this.hint.apply(this, args);
    }
    [S$4.$isBuffer](...args) {
      return this.isBuffer.apply(this, args);
    }
    [S$.$isContextLost](...args) {
      return this.isContextLost.apply(this, args);
    }
    [S$4.$isEnabled](...args) {
      return this.isEnabled.apply(this, args);
    }
    [S$4.$isFramebuffer](...args) {
      return this.isFramebuffer.apply(this, args);
    }
    [S$4.$isProgram](...args) {
      return this.isProgram.apply(this, args);
    }
    [S$4.$isRenderbuffer](...args) {
      return this.isRenderbuffer.apply(this, args);
    }
    [S$4.$isShader](...args) {
      return this.isShader.apply(this, args);
    }
    [S$4.$isTexture](...args) {
      return this.isTexture.apply(this, args);
    }
    [S$.$lineWidth](...args) {
      return this.lineWidth.apply(this, args);
    }
    [S$4.$linkProgram](...args) {
      return this.linkProgram.apply(this, args);
    }
    [S$4.$pixelStorei](...args) {
      return this.pixelStorei.apply(this, args);
    }
    [S$4.$polygonOffset](...args) {
      return this.polygonOffset.apply(this, args);
    }
    [S$4._readPixels](...args) {
      return this.readPixels.apply(this, args);
    }
    [S$4.$renderbufferStorage](...args) {
      return this.renderbufferStorage.apply(this, args);
    }
    [S$4.$sampleCoverage](...args) {
      return this.sampleCoverage.apply(this, args);
    }
    [S$4.$scissor](...args) {
      return this.scissor.apply(this, args);
    }
    [S$4.$shaderSource](...args) {
      return this.shaderSource.apply(this, args);
    }
    [S$4.$stencilFunc](...args) {
      return this.stencilFunc.apply(this, args);
    }
    [S$4.$stencilFuncSeparate](...args) {
      return this.stencilFuncSeparate.apply(this, args);
    }
    [S$4.$stencilMask](...args) {
      return this.stencilMask.apply(this, args);
    }
    [S$4.$stencilMaskSeparate](...args) {
      return this.stencilMaskSeparate.apply(this, args);
    }
    [S$4.$stencilOp](...args) {
      return this.stencilOp.apply(this, args);
    }
    [S$4.$stencilOpSeparate](...args) {
      return this.stencilOpSeparate.apply(this, args);
    }
    [S$4.$texImage2D](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format = null, type = null, pixels = null) {
      if (target == null) dart.nullFailed(I[161], 2533, 11, "target");
      if (level == null) dart.nullFailed(I[161], 2534, 11, "level");
      if (internalformat == null) dart.nullFailed(I[161], 2535, 11, "internalformat");
      if (format_OR_width == null) dart.nullFailed(I[161], 2536, 11, "format_OR_width");
      if (height_OR_type == null) dart.nullFailed(I[161], 2537, 11, "height_OR_type");
      if (type != null && format != null && core.int.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video)) {
        this[S$4._texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        this[S$4._texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
        this[S$4._texImage2D_6](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texImage2D_1](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_2](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_3](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_4](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_5](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4._texImage2D_6](...args) {
      return this.texImage2D.apply(this, args);
    }
    [S$4.$texParameterf](...args) {
      return this.texParameterf.apply(this, args);
    }
    [S$4.$texParameteri](...args) {
      return this.texParameteri.apply(this, args);
    }
    [S$4.$texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type = null, pixels = null) {
      if (target == null) dart.nullFailed(I[161], 2650, 11, "target");
      if (level == null) dart.nullFailed(I[161], 2651, 11, "level");
      if (xoffset == null) dart.nullFailed(I[161], 2652, 11, "xoffset");
      if (yoffset == null) dart.nullFailed(I[161], 2653, 11, "yoffset");
      if (format_OR_width == null) dart.nullFailed(I[161], 2654, 11, "format_OR_width");
      if (height_OR_type == null) dart.nullFailed(I[161], 2655, 11, "height_OR_type");
      if (type != null && core.int.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video)) {
        this[S$4._texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
        return;
      }
      if (html$.ImageData.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        this[S$4._texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
        return;
      }
      if (html$.ImageElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.CanvasElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.VideoElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
        this[S$4._texSubImage2D_6](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
        return;
      }
      dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
    }
    [S$4._texSubImage2D_1](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_2](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_3](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_4](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_5](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4._texSubImage2D_6](...args) {
      return this.texSubImage2D.apply(this, args);
    }
    [S$4.$uniform1f](...args) {
      return this.uniform1f.apply(this, args);
    }
    [S$4.$uniform1fv](...args) {
      return this.uniform1fv.apply(this, args);
    }
    [S$4.$uniform1i](...args) {
      return this.uniform1i.apply(this, args);
    }
    [S$4.$uniform1iv](...args) {
      return this.uniform1iv.apply(this, args);
    }
    [S$4.$uniform2f](...args) {
      return this.uniform2f.apply(this, args);
    }
    [S$4.$uniform2fv](...args) {
      return this.uniform2fv.apply(this, args);
    }
    [S$4.$uniform2i](...args) {
      return this.uniform2i.apply(this, args);
    }
    [S$4.$uniform2iv](...args) {
      return this.uniform2iv.apply(this, args);
    }
    [S$4.$uniform3f](...args) {
      return this.uniform3f.apply(this, args);
    }
    [S$4.$uniform3fv](...args) {
      return this.uniform3fv.apply(this, args);
    }
    [S$4.$uniform3i](...args) {
      return this.uniform3i.apply(this, args);
    }
    [S$4.$uniform3iv](...args) {
      return this.uniform3iv.apply(this, args);
    }
    [S$4.$uniform4f](...args) {
      return this.uniform4f.apply(this, args);
    }
    [S$4.$uniform4fv](...args) {
      return this.uniform4fv.apply(this, args);
    }
    [S$4.$uniform4i](...args) {
      return this.uniform4i.apply(this, args);
    }
    [S$4.$uniform4iv](...args) {
      return this.uniform4iv.apply(this, args);
    }
    [S$4.$uniformMatrix2fv](...args) {
      return this.uniformMatrix2fv.apply(this, args);
    }
    [S$4.$uniformMatrix3fv](...args) {
      return this.uniformMatrix3fv.apply(this, args);
    }
    [S$4.$uniformMatrix4fv](...args) {
      return this.uniformMatrix4fv.apply(this, args);
    }
    [S$4.$useProgram](...args) {
      return this.useProgram.apply(this, args);
    }
    [S$4.$validateProgram](...args) {
      return this.validateProgram.apply(this, args);
    }
    [S$4.$vertexAttrib1f](...args) {
      return this.vertexAttrib1f.apply(this, args);
    }
    [S$4.$vertexAttrib1fv](...args) {
      return this.vertexAttrib1fv.apply(this, args);
    }
    [S$4.$vertexAttrib2f](...args) {
      return this.vertexAttrib2f.apply(this, args);
    }
    [S$4.$vertexAttrib2fv](...args) {
      return this.vertexAttrib2fv.apply(this, args);
    }
    [S$4.$vertexAttrib3f](...args) {
      return this.vertexAttrib3f.apply(this, args);
    }
    [S$4.$vertexAttrib3fv](...args) {
      return this.vertexAttrib3fv.apply(this, args);
    }
    [S$4.$vertexAttrib4f](...args) {
      return this.vertexAttrib4f.apply(this, args);
    }
    [S$4.$vertexAttrib4fv](...args) {
      return this.vertexAttrib4fv.apply(this, args);
    }
    [S$4.$vertexAttribPointer](...args) {
      return this.vertexAttribPointer.apply(this, args);
    }
    [S$4.$viewport](...args) {
      return this.viewport.apply(this, args);
    }
    [S$4.$readPixels](x, y, width, height, format, type, pixels) {
      if (x == null) dart.nullFailed(I[161], 2826, 23, "x");
      if (y == null) dart.nullFailed(I[161], 2826, 30, "y");
      if (width == null) dart.nullFailed(I[161], 2826, 37, "width");
      if (height == null) dart.nullFailed(I[161], 2826, 48, "height");
      if (format == null) dart.nullFailed(I[161], 2826, 60, "format");
      if (type == null) dart.nullFailed(I[161], 2826, 72, "type");
      if (pixels == null) dart.nullFailed(I[161], 2827, 17, "pixels");
      this[S$4._readPixels](x, y, width, height, format, type, pixels);
    }
  };
  dart.addTypeTests(web_gl.RenderingContext2);
  dart.addTypeCaches(web_gl.RenderingContext2);
  web_gl.RenderingContext2[dart.implements] = () => [web_gl._WebGL2RenderingContextBase, web_gl._WebGLRenderingContextBase];
  dart.setMethodSignature(web_gl.RenderingContext2, () => ({
    __proto__: dart.getMethods(web_gl.RenderingContext2.__proto__),
    [S$4.$beginQuery]: dart.fnType(dart.void, [core.int, web_gl.Query]),
    [S$4.$beginTransformFeedback]: dart.fnType(dart.void, [core.int]),
    [S$4.$bindBufferBase]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(web_gl.Buffer)]),
    [S$4.$bindBufferRange]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(web_gl.Buffer), core.int, core.int]),
    [S$4.$bindSampler]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Sampler)]),
    [S$4.$bindTransformFeedback]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.TransformFeedback)]),
    [S$4.$bindVertexArray]: dart.fnType(dart.void, [dart.nullable(web_gl.VertexArrayObject)]),
    [S$4.$blitFramebuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$bufferData2]: dart.fnType(dart.void, [core.int, typed_data.TypedData, core.int, core.int], [dart.nullable(core.int)]),
    [S$4.$bufferSubData2]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData, core.int], [dart.nullable(core.int)]),
    [S$4.$clearBufferfi]: dart.fnType(dart.void, [core.int, core.int, core.num, core.int]),
    [S$4.$clearBufferfv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4.$clearBufferiv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4.$clearBufferuiv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4.$clientWaitSync]: dart.fnType(core.int, [web_gl.Sync, core.int, core.int]),
    [S$4.$compressedTexImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData, core.int], [dart.nullable(core.int)]),
    [S$4.$compressedTexImage2D3]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$compressedTexImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$compressedTexImage3D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$compressedTexSubImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData, core.int], [dart.nullable(core.int)]),
    [S$4.$compressedTexSubImage2D3]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$compressedTexSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$compressedTexSubImage3D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$copyBufferSubData]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$copyTexSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$createQuery]: dart.fnType(dart.nullable(web_gl.Query), []),
    [S$4.$createSampler]: dart.fnType(dart.nullable(web_gl.Sampler), []),
    [S$4.$createTransformFeedback]: dart.fnType(dart.nullable(web_gl.TransformFeedback), []),
    [S$4.$createVertexArray]: dart.fnType(dart.nullable(web_gl.VertexArrayObject), []),
    [S$4.$deleteQuery]: dart.fnType(dart.void, [dart.nullable(web_gl.Query)]),
    [S$4.$deleteSampler]: dart.fnType(dart.void, [dart.nullable(web_gl.Sampler)]),
    [S$4.$deleteSync]: dart.fnType(dart.void, [dart.nullable(web_gl.Sync)]),
    [S$4.$deleteTransformFeedback]: dart.fnType(dart.void, [dart.nullable(web_gl.TransformFeedback)]),
    [S$4.$deleteVertexArray]: dart.fnType(dart.void, [dart.nullable(web_gl.VertexArrayObject)]),
    [S$4.$drawArraysInstanced]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$drawBuffers]: dart.fnType(dart.void, [core.List$(core.int)]),
    [S$4.$drawElementsInstanced]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$drawRangeElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$endQuery]: dart.fnType(dart.void, [core.int]),
    [S$4.$endTransformFeedback]: dart.fnType(dart.void, []),
    [S$4.$fenceSync]: dart.fnType(dart.nullable(web_gl.Sync), [core.int, core.int]),
    [S$4.$framebufferTextureLayer]: dart.fnType(dart.void, [core.int, core.int, dart.nullable(web_gl.Texture), core.int, core.int]),
    [S$4.$getActiveUniformBlockName]: dart.fnType(dart.nullable(core.String), [web_gl.Program, core.int]),
    [S$4.$getActiveUniformBlockParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, core.int, core.int]),
    [S$4.$getActiveUniforms]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, core.List$(core.int), core.int]),
    [S$4.$getBufferSubData]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$getFragDataLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
    [S$4.$getIndexedParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getInternalformatParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int, core.int]),
    [S$4.$getQuery]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getQueryParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Query, core.int]),
    [S$4.$getSamplerParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Sampler, core.int]),
    [S$4.$getSyncParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Sync, core.int]),
    [S$4.$getTransformFeedbackVarying]: dart.fnType(dart.nullable(web_gl.ActiveInfo), [web_gl.Program, core.int]),
    [S$4.$getUniformBlockIndex]: dart.fnType(core.int, [web_gl.Program, core.String]),
    [S$4.$getUniformIndices]: dart.fnType(dart.nullable(core.List$(core.int)), [web_gl.Program, core.List$(core.String)]),
    [S$4._getUniformIndices_1]: dart.fnType(dart.nullable(core.List$(core.int)), [web_gl.Program, core.List]),
    [S$4.$invalidateFramebuffer]: dart.fnType(dart.void, [core.int, core.List$(core.int)]),
    [S$4.$invalidateSubFramebuffer]: dart.fnType(dart.void, [core.int, core.List$(core.int), core.int, core.int, core.int, core.int]),
    [S$4.$isQuery]: dart.fnType(core.bool, [dart.nullable(web_gl.Query)]),
    [S$4.$isSampler]: dart.fnType(core.bool, [dart.nullable(web_gl.Sampler)]),
    [S$4.$isSync]: dart.fnType(core.bool, [dart.nullable(web_gl.Sync)]),
    [S$4.$isTransformFeedback]: dart.fnType(core.bool, [dart.nullable(web_gl.TransformFeedback)]),
    [S$4.$isVertexArray]: dart.fnType(core.bool, [dart.nullable(web_gl.VertexArrayObject)]),
    [S$4.$pauseTransformFeedback]: dart.fnType(dart.void, []),
    [S$4.$readBuffer]: dart.fnType(dart.void, [core.int]),
    [S$4.$readPixels2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4.$renderbufferStorageMultisample]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$resumeTransformFeedback]: dart.fnType(dart.void, []),
    [S$4.$samplerParameterf]: dart.fnType(dart.void, [web_gl.Sampler, core.int, core.num]),
    [S$4.$samplerParameteri]: dart.fnType(dart.void, [web_gl.Sampler, core.int, core.int]),
    [S$4.$texImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4._texImage2D2_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
    [S$4._texImage2D2_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texImage2D2_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texImage2D2_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texImage2D2_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texImage2D2_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4._texImage2D2_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
    [S$4.$texImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4._texImage3D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
    [S$4._texImage3D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texImage3D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texImage3D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texImage3D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texImage3D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4._texImage3D_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.nullable(typed_data.TypedData)]),
    [S$4._texImage3D_8]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
    [S$4.$texStorage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$texStorage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$texSubImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4._texSubImage2D2_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
    [S$4._texSubImage2D2_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texSubImage2D2_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texSubImage2D2_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texSubImage2D2_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texSubImage2D2_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4._texSubImage2D2_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
    [S$4.$texSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int)]),
    [S$4._texSubImage3D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
    [S$4._texSubImage3D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texSubImage3D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texSubImage3D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texSubImage3D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texSubImage3D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4._texSubImage3D_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData]),
    [S$4._texSubImage3D_8]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
    [S$4.$transformFeedbackVaryings]: dart.fnType(dart.void, [web_gl.Program, core.List$(core.String), core.int]),
    [S$4._transformFeedbackVaryings_1]: dart.fnType(dart.void, [web_gl.Program, core.List, dart.dynamic]),
    [S$4.$uniform1fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform1iv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform1ui]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int]),
    [S$4.$uniform1uiv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniform2fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform2iv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform2ui]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int]),
    [S$4.$uniform2uiv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniform3fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform3iv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform3ui]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int]),
    [S$4.$uniform3uiv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniform4fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform4iv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniform4ui]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int, core.int]),
    [S$4.$uniform4uiv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformBlockBinding]: dart.fnType(dart.void, [web_gl.Program, core.int, core.int]),
    [S$4.$uniformMatrix2fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniformMatrix2x3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformMatrix2x4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformMatrix3fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniformMatrix3x2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformMatrix3x4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformMatrix4fv2]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic, core.int], [dart.nullable(core.int)]),
    [S$4.$uniformMatrix4x2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$uniformMatrix4x3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int)]),
    [S$4.$vertexAttribDivisor]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$vertexAttribI4i]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$vertexAttribI4iv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttribI4ui]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$vertexAttribI4uiv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttribIPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
    [S$4.$waitSync]: dart.fnType(dart.void, [web_gl.Sync, core.int, core.int]),
    [S$4.$activeTexture]: dart.fnType(dart.void, [core.int]),
    [S$4.$attachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
    [S$4.$bindAttribLocation]: dart.fnType(dart.void, [web_gl.Program, core.int, core.String]),
    [S$4.$bindBuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Buffer)]),
    [S$4.$bindFramebuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Framebuffer)]),
    [S$4.$bindRenderbuffer]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$bindTexture]: dart.fnType(dart.void, [core.int, dart.nullable(web_gl.Texture)]),
    [S$4.$blendColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$4.$blendEquation]: dart.fnType(dart.void, [core.int]),
    [S$4.$blendEquationSeparate]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$blendFunc]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$blendFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$bufferData]: dart.fnType(dart.void, [core.int, dart.dynamic, core.int]),
    [S$4.$bufferSubData]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
    [S$4.$checkFramebufferStatus]: dart.fnType(core.int, [core.int]),
    [$clear]: dart.fnType(dart.void, [core.int]),
    [S$4.$clearColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
    [S$4.$clearDepth]: dart.fnType(dart.void, [core.num]),
    [S$4.$clearStencil]: dart.fnType(dart.void, [core.int]),
    [S$4.$colorMask]: dart.fnType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
    [S$2.$commit]: dart.fnType(async.Future, []),
    [S$4.$compileShader]: dart.fnType(dart.void, [web_gl.Shader]),
    [S$4.$compressedTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$compressedTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
    [S$4.$copyTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$4.$copyTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
    [S$3.$createBuffer]: dart.fnType(web_gl.Buffer, []),
    [S$4.$createFramebuffer]: dart.fnType(web_gl.Framebuffer, []),
    [S$4.$createProgram]: dart.fnType(web_gl.Program, []),
    [S$4.$createRenderbuffer]: dart.fnType(web_gl.Renderbuffer, []),
    [S$4.$createShader]: dart.fnType(web_gl.Shader, [core.int]),
    [S$4.$createTexture]: dart.fnType(web_gl.Texture, []),
    [S$4.$cullFace]: dart.fnType(dart.void, [core.int]),
    [S$4.$deleteBuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Buffer)]),
    [S$4.$deleteFramebuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Framebuffer)]),
    [S$4.$deleteProgram]: dart.fnType(dart.void, [dart.nullable(web_gl.Program)]),
    [S$4.$deleteRenderbuffer]: dart.fnType(dart.void, [dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$deleteShader]: dart.fnType(dart.void, [dart.nullable(web_gl.Shader)]),
    [S$4.$deleteTexture]: dart.fnType(dart.void, [dart.nullable(web_gl.Texture)]),
    [S$4.$depthFunc]: dart.fnType(dart.void, [core.int]),
    [S$4.$depthMask]: dart.fnType(dart.void, [core.bool]),
    [S$4.$depthRange]: dart.fnType(dart.void, [core.num, core.num]),
    [S$4.$detachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
    [S$1.$disable]: dart.fnType(dart.void, [core.int]),
    [S$4.$disableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
    [S$4.$drawArrays]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$drawElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$1.$enable]: dart.fnType(dart.void, [core.int]),
    [S$4.$enableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
    [S$.$finish]: dart.fnType(dart.void, []),
    [S$4.$flush]: dart.fnType(dart.void, []),
    [S$4.$framebufferRenderbuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$framebufferTexture2D]: dart.fnType(dart.void, [core.int, core.int, core.int, dart.nullable(web_gl.Texture), core.int]),
    [S$4.$frontFace]: dart.fnType(dart.void, [core.int]),
    [S$4.$generateMipmap]: dart.fnType(dart.void, [core.int]),
    [S$4.$getActiveAttrib]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
    [S$4.$getActiveUniform]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
    [S$4.$getAttachedShaders]: dart.fnType(dart.nullable(core.List$(web_gl.Shader)), [web_gl.Program]),
    [S$4.$getAttribLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
    [S$4.$getBufferParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$.$getContextAttributes]: dart.fnType(dart.nullable(core.Map), []),
    [S$4._getContextAttributes_1$1]: dart.fnType(dart.dynamic, []),
    [S$4.$getError]: dart.fnType(core.int, []),
    [S$4.$getExtension]: dart.fnType(dart.nullable(core.Object), [core.String]),
    [S$4.$getFramebufferAttachmentParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int, core.int]),
    [S$3.$getParameter]: dart.fnType(dart.nullable(core.Object), [core.int]),
    [S$4.$getProgramInfoLog]: dart.fnType(dart.nullable(core.String), [web_gl.Program]),
    [S$4.$getProgramParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, core.int]),
    [S$4.$getRenderbufferParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getShaderInfoLog]: dart.fnType(dart.nullable(core.String), [web_gl.Shader]),
    [S$4.$getShaderParameter]: dart.fnType(dart.nullable(core.Object), [web_gl.Shader, core.int]),
    [S$4.$getShaderPrecisionFormat]: dart.fnType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
    [S$4.$getShaderSource]: dart.fnType(dart.nullable(core.String), [web_gl.Shader]),
    [S$4.$getSupportedExtensions]: dart.fnType(dart.nullable(core.List$(core.String)), []),
    [S$4.$getTexParameter]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getUniform]: dart.fnType(dart.nullable(core.Object), [web_gl.Program, web_gl.UniformLocation]),
    [S$4.$getUniformLocation]: dart.fnType(web_gl.UniformLocation, [web_gl.Program, core.String]),
    [S$4.$getVertexAttrib]: dart.fnType(dart.nullable(core.Object), [core.int, core.int]),
    [S$4.$getVertexAttribOffset]: dart.fnType(core.int, [core.int, core.int]),
    [S$4.$hint]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$isBuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Buffer)]),
    [S$.$isContextLost]: dart.fnType(core.bool, []),
    [S$4.$isEnabled]: dart.fnType(core.bool, [core.int]),
    [S$4.$isFramebuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Framebuffer)]),
    [S$4.$isProgram]: dart.fnType(core.bool, [dart.nullable(web_gl.Program)]),
    [S$4.$isRenderbuffer]: dart.fnType(core.bool, [dart.nullable(web_gl.Renderbuffer)]),
    [S$4.$isShader]: dart.fnType(core.bool, [dart.nullable(web_gl.Shader)]),
    [S$4.$isTexture]: dart.fnType(core.bool, [dart.nullable(web_gl.Texture)]),
    [S$.$lineWidth]: dart.fnType(dart.void, [core.num]),
    [S$4.$linkProgram]: dart.fnType(dart.void, [web_gl.Program]),
    [S$4.$pixelStorei]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$polygonOffset]: dart.fnType(dart.void, [core.num, core.num]),
    [S$4._readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.nullable(typed_data.TypedData)]),
    [S$4.$renderbufferStorage]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$sampleCoverage]: dart.fnType(dart.void, [core.num, core.bool]),
    [S$4.$scissor]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$shaderSource]: dart.fnType(dart.void, [web_gl.Shader, core.String]),
    [S$4.$stencilFunc]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$stencilFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$stencilMask]: dart.fnType(dart.void, [core.int]),
    [S$4.$stencilMaskSeparate]: dart.fnType(dart.void, [core.int, core.int]),
    [S$4.$stencilOp]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$stencilOpSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$texImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int), dart.nullable(core.int), dart.nullable(typed_data.TypedData)]),
    [S$4._texImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, dart.nullable(typed_data.TypedData)]),
    [S$4._texImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4.$texParameterf]: dart.fnType(dart.void, [core.int, core.int, core.num]),
    [S$4.$texParameteri]: dart.fnType(dart.void, [core.int, core.int, core.int]),
    [S$4.$texSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [dart.nullable(core.int), dart.nullable(typed_data.TypedData)]),
    [S$4._texSubImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.nullable(typed_data.TypedData)]),
    [S$4._texSubImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
    [S$4._texSubImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
    [S$4._texSubImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
    [S$4._texSubImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
    [S$4._texSubImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
    [S$4.$uniform1f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num]),
    [S$4.$uniform1fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform1i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int]),
    [S$4.$uniform1iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform2f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num]),
    [S$4.$uniform2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform2i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int]),
    [S$4.$uniform2iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform3f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num, core.num]),
    [S$4.$uniform3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform3i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int]),
    [S$4.$uniform3iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform4f]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.num, core.num, core.num, core.num]),
    [S$4.$uniform4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniform4i]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.int, core.int, core.int, core.int]),
    [S$4.$uniform4iv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), dart.dynamic]),
    [S$4.$uniformMatrix2fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$uniformMatrix3fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$uniformMatrix4fv]: dart.fnType(dart.void, [dart.nullable(web_gl.UniformLocation), core.bool, dart.dynamic]),
    [S$4.$useProgram]: dart.fnType(dart.void, [dart.nullable(web_gl.Program)]),
    [S$4.$validateProgram]: dart.fnType(dart.void, [web_gl.Program]),
    [S$4.$vertexAttrib1f]: dart.fnType(dart.void, [core.int, core.num]),
    [S$4.$vertexAttrib1fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib2f]: dart.fnType(dart.void, [core.int, core.num, core.num]),
    [S$4.$vertexAttrib2fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib3f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num]),
    [S$4.$vertexAttrib3fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttrib4f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
    [S$4.$vertexAttrib4fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
    [S$4.$vertexAttribPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
    [S$4.$viewport]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
    [S$4.$readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData])
  }));
  dart.setGetterSignature(web_gl.RenderingContext2, () => ({
    __proto__: dart.getGetters(web_gl.RenderingContext2.__proto__),
    [S$.$canvas]: dart.nullable(web_gl.Canvas),
    [S$4.$drawingBufferHeight]: dart.nullable(core.int),
    [S$4.$drawingBufferWidth]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_gl.RenderingContext2, I[160]);
  dart.registerExtension("WebGL2RenderingContext", web_gl.RenderingContext2);
  web_gl.Sampler = class Sampler extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Sampler);
  dart.addTypeCaches(web_gl.Sampler);
  dart.setLibraryUri(web_gl.Sampler, I[160]);
  dart.registerExtension("WebGLSampler", web_gl.Sampler);
  web_gl.Shader = class Shader extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Shader);
  dart.addTypeCaches(web_gl.Shader);
  dart.setLibraryUri(web_gl.Shader, I[160]);
  dart.registerExtension("WebGLShader", web_gl.Shader);
  web_gl.ShaderPrecisionFormat = class ShaderPrecisionFormat extends _interceptors.Interceptor {
    get [S$4.$precision]() {
      return this.precision;
    }
    get [S$4.$rangeMax]() {
      return this.rangeMax;
    }
    get [S$4.$rangeMin]() {
      return this.rangeMin;
    }
  };
  dart.addTypeTests(web_gl.ShaderPrecisionFormat);
  dart.addTypeCaches(web_gl.ShaderPrecisionFormat);
  dart.setGetterSignature(web_gl.ShaderPrecisionFormat, () => ({
    __proto__: dart.getGetters(web_gl.ShaderPrecisionFormat.__proto__),
    [S$4.$precision]: core.int,
    [S$4.$rangeMax]: core.int,
    [S$4.$rangeMin]: core.int
  }));
  dart.setLibraryUri(web_gl.ShaderPrecisionFormat, I[160]);
  dart.registerExtension("WebGLShaderPrecisionFormat", web_gl.ShaderPrecisionFormat);
  web_gl.Sync = class Sync extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.Sync);
  dart.addTypeCaches(web_gl.Sync);
  dart.setLibraryUri(web_gl.Sync, I[160]);
  dart.registerExtension("WebGLSync", web_gl.Sync);
  web_gl.Texture = class Texture extends _interceptors.Interceptor {
    get [S$4.$lastUploadedVideoFrameWasSkipped]() {
      return this.lastUploadedVideoFrameWasSkipped;
    }
    get [S$4.$lastUploadedVideoHeight]() {
      return this.lastUploadedVideoHeight;
    }
    get [S$4.$lastUploadedVideoTimestamp]() {
      return this.lastUploadedVideoTimestamp;
    }
    get [S$4.$lastUploadedVideoWidth]() {
      return this.lastUploadedVideoWidth;
    }
  };
  dart.addTypeTests(web_gl.Texture);
  dart.addTypeCaches(web_gl.Texture);
  dart.setGetterSignature(web_gl.Texture, () => ({
    __proto__: dart.getGetters(web_gl.Texture.__proto__),
    [S$4.$lastUploadedVideoFrameWasSkipped]: dart.nullable(core.bool),
    [S$4.$lastUploadedVideoHeight]: dart.nullable(core.int),
    [S$4.$lastUploadedVideoTimestamp]: dart.nullable(core.num),
    [S$4.$lastUploadedVideoWidth]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_gl.Texture, I[160]);
  dart.registerExtension("WebGLTexture", web_gl.Texture);
  web_gl.TimerQueryExt = class TimerQueryExt extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.TimerQueryExt);
  dart.addTypeCaches(web_gl.TimerQueryExt);
  dart.setLibraryUri(web_gl.TimerQueryExt, I[160]);
  dart.registerExtension("WebGLTimerQueryEXT", web_gl.TimerQueryExt);
  web_gl.TransformFeedback = class TransformFeedback extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.TransformFeedback);
  dart.addTypeCaches(web_gl.TransformFeedback);
  dart.setLibraryUri(web_gl.TransformFeedback, I[160]);
  dart.registerExtension("WebGLTransformFeedback", web_gl.TransformFeedback);
  web_gl.UniformLocation = class UniformLocation extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.UniformLocation);
  dart.addTypeCaches(web_gl.UniformLocation);
  dart.setLibraryUri(web_gl.UniformLocation, I[160]);
  dart.registerExtension("WebGLUniformLocation", web_gl.UniformLocation);
  web_gl.VertexArrayObject = class VertexArrayObject extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.VertexArrayObject);
  dart.addTypeCaches(web_gl.VertexArrayObject);
  dart.setLibraryUri(web_gl.VertexArrayObject, I[160]);
  dart.registerExtension("WebGLVertexArrayObject", web_gl.VertexArrayObject);
  web_gl.VertexArrayObjectOes = class VertexArrayObjectOes extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl.VertexArrayObjectOes);
  dart.addTypeCaches(web_gl.VertexArrayObjectOes);
  dart.setLibraryUri(web_gl.VertexArrayObjectOes, I[160]);
  dart.registerExtension("WebGLVertexArrayObjectOES", web_gl.VertexArrayObjectOes);
  web_gl.WebGL = class WebGL extends core.Object {};
  (web_gl.WebGL[dart.mixinNew] = function() {
  }).prototype = web_gl.WebGL.prototype;
  dart.addTypeTests(web_gl.WebGL);
  dart.addTypeCaches(web_gl.WebGL);
  dart.setLibraryUri(web_gl.WebGL, I[160]);
  dart.defineLazy(web_gl.WebGL, {
    /*web_gl.WebGL.ACTIVE_ATTRIBUTES*/get ACTIVE_ATTRIBUTES() {
      return 35721;
    },
    /*web_gl.WebGL.ACTIVE_TEXTURE*/get ACTIVE_TEXTURE() {
      return 34016;
    },
    /*web_gl.WebGL.ACTIVE_UNIFORMS*/get ACTIVE_UNIFORMS() {
      return 35718;
    },
    /*web_gl.WebGL.ACTIVE_UNIFORM_BLOCKS*/get ACTIVE_UNIFORM_BLOCKS() {
      return 35382;
    },
    /*web_gl.WebGL.ALIASED_LINE_WIDTH_RANGE*/get ALIASED_LINE_WIDTH_RANGE() {
      return 33902;
    },
    /*web_gl.WebGL.ALIASED_POINT_SIZE_RANGE*/get ALIASED_POINT_SIZE_RANGE() {
      return 33901;
    },
    /*web_gl.WebGL.ALPHA*/get ALPHA() {
      return 6406;
    },
    /*web_gl.WebGL.ALPHA_BITS*/get ALPHA_BITS() {
      return 3413;
    },
    /*web_gl.WebGL.ALREADY_SIGNALED*/get ALREADY_SIGNALED() {
      return 37146;
    },
    /*web_gl.WebGL.ALWAYS*/get ALWAYS() {
      return 519;
    },
    /*web_gl.WebGL.ANY_SAMPLES_PASSED*/get ANY_SAMPLES_PASSED() {
      return 35887;
    },
    /*web_gl.WebGL.ANY_SAMPLES_PASSED_CONSERVATIVE*/get ANY_SAMPLES_PASSED_CONSERVATIVE() {
      return 36202;
    },
    /*web_gl.WebGL.ARRAY_BUFFER*/get ARRAY_BUFFER() {
      return 34962;
    },
    /*web_gl.WebGL.ARRAY_BUFFER_BINDING*/get ARRAY_BUFFER_BINDING() {
      return 34964;
    },
    /*web_gl.WebGL.ATTACHED_SHADERS*/get ATTACHED_SHADERS() {
      return 35717;
    },
    /*web_gl.WebGL.BACK*/get BACK() {
      return 1029;
    },
    /*web_gl.WebGL.BLEND*/get BLEND() {
      return 3042;
    },
    /*web_gl.WebGL.BLEND_COLOR*/get BLEND_COLOR() {
      return 32773;
    },
    /*web_gl.WebGL.BLEND_DST_ALPHA*/get BLEND_DST_ALPHA() {
      return 32970;
    },
    /*web_gl.WebGL.BLEND_DST_RGB*/get BLEND_DST_RGB() {
      return 32968;
    },
    /*web_gl.WebGL.BLEND_EQUATION*/get BLEND_EQUATION() {
      return 32777;
    },
    /*web_gl.WebGL.BLEND_EQUATION_ALPHA*/get BLEND_EQUATION_ALPHA() {
      return 34877;
    },
    /*web_gl.WebGL.BLEND_EQUATION_RGB*/get BLEND_EQUATION_RGB() {
      return 32777;
    },
    /*web_gl.WebGL.BLEND_SRC_ALPHA*/get BLEND_SRC_ALPHA() {
      return 32971;
    },
    /*web_gl.WebGL.BLEND_SRC_RGB*/get BLEND_SRC_RGB() {
      return 32969;
    },
    /*web_gl.WebGL.BLUE_BITS*/get BLUE_BITS() {
      return 3412;
    },
    /*web_gl.WebGL.BOOL*/get BOOL() {
      return 35670;
    },
    /*web_gl.WebGL.BOOL_VEC2*/get BOOL_VEC2() {
      return 35671;
    },
    /*web_gl.WebGL.BOOL_VEC3*/get BOOL_VEC3() {
      return 35672;
    },
    /*web_gl.WebGL.BOOL_VEC4*/get BOOL_VEC4() {
      return 35673;
    },
    /*web_gl.WebGL.BROWSER_DEFAULT_WEBGL*/get BROWSER_DEFAULT_WEBGL() {
      return 37444;
    },
    /*web_gl.WebGL.BUFFER_SIZE*/get BUFFER_SIZE() {
      return 34660;
    },
    /*web_gl.WebGL.BUFFER_USAGE*/get BUFFER_USAGE() {
      return 34661;
    },
    /*web_gl.WebGL.BYTE*/get BYTE() {
      return 5120;
    },
    /*web_gl.WebGL.CCW*/get CCW() {
      return 2305;
    },
    /*web_gl.WebGL.CLAMP_TO_EDGE*/get CLAMP_TO_EDGE() {
      return 33071;
    },
    /*web_gl.WebGL.COLOR*/get COLOR() {
      return 6144;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT0*/get COLOR_ATTACHMENT0() {
      return 36064;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT0_WEBGL*/get COLOR_ATTACHMENT0_WEBGL() {
      return 36064;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT1*/get COLOR_ATTACHMENT1() {
      return 36065;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT10*/get COLOR_ATTACHMENT10() {
      return 36074;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT10_WEBGL*/get COLOR_ATTACHMENT10_WEBGL() {
      return 36074;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT11*/get COLOR_ATTACHMENT11() {
      return 36075;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT11_WEBGL*/get COLOR_ATTACHMENT11_WEBGL() {
      return 36075;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT12*/get COLOR_ATTACHMENT12() {
      return 36076;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT12_WEBGL*/get COLOR_ATTACHMENT12_WEBGL() {
      return 36076;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT13*/get COLOR_ATTACHMENT13() {
      return 36077;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT13_WEBGL*/get COLOR_ATTACHMENT13_WEBGL() {
      return 36077;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT14*/get COLOR_ATTACHMENT14() {
      return 36078;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT14_WEBGL*/get COLOR_ATTACHMENT14_WEBGL() {
      return 36078;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT15*/get COLOR_ATTACHMENT15() {
      return 36079;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT15_WEBGL*/get COLOR_ATTACHMENT15_WEBGL() {
      return 36079;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT1_WEBGL*/get COLOR_ATTACHMENT1_WEBGL() {
      return 36065;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT2*/get COLOR_ATTACHMENT2() {
      return 36066;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT2_WEBGL*/get COLOR_ATTACHMENT2_WEBGL() {
      return 36066;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT3*/get COLOR_ATTACHMENT3() {
      return 36067;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT3_WEBGL*/get COLOR_ATTACHMENT3_WEBGL() {
      return 36067;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT4*/get COLOR_ATTACHMENT4() {
      return 36068;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT4_WEBGL*/get COLOR_ATTACHMENT4_WEBGL() {
      return 36068;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT5*/get COLOR_ATTACHMENT5() {
      return 36069;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT5_WEBGL*/get COLOR_ATTACHMENT5_WEBGL() {
      return 36069;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT6*/get COLOR_ATTACHMENT6() {
      return 36070;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT6_WEBGL*/get COLOR_ATTACHMENT6_WEBGL() {
      return 36070;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT7*/get COLOR_ATTACHMENT7() {
      return 36071;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT7_WEBGL*/get COLOR_ATTACHMENT7_WEBGL() {
      return 36071;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT8*/get COLOR_ATTACHMENT8() {
      return 36072;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT8_WEBGL*/get COLOR_ATTACHMENT8_WEBGL() {
      return 36072;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT9*/get COLOR_ATTACHMENT9() {
      return 36073;
    },
    /*web_gl.WebGL.COLOR_ATTACHMENT9_WEBGL*/get COLOR_ATTACHMENT9_WEBGL() {
      return 36073;
    },
    /*web_gl.WebGL.COLOR_BUFFER_BIT*/get COLOR_BUFFER_BIT() {
      return 16384;
    },
    /*web_gl.WebGL.COLOR_CLEAR_VALUE*/get COLOR_CLEAR_VALUE() {
      return 3106;
    },
    /*web_gl.WebGL.COLOR_WRITEMASK*/get COLOR_WRITEMASK() {
      return 3107;
    },
    /*web_gl.WebGL.COMPARE_REF_TO_TEXTURE*/get COMPARE_REF_TO_TEXTURE() {
      return 34894;
    },
    /*web_gl.WebGL.COMPILE_STATUS*/get COMPILE_STATUS() {
      return 35713;
    },
    /*web_gl.WebGL.COMPRESSED_TEXTURE_FORMATS*/get COMPRESSED_TEXTURE_FORMATS() {
      return 34467;
    },
    /*web_gl.WebGL.CONDITION_SATISFIED*/get CONDITION_SATISFIED() {
      return 37148;
    },
    /*web_gl.WebGL.CONSTANT_ALPHA*/get CONSTANT_ALPHA() {
      return 32771;
    },
    /*web_gl.WebGL.CONSTANT_COLOR*/get CONSTANT_COLOR() {
      return 32769;
    },
    /*web_gl.WebGL.CONTEXT_LOST_WEBGL*/get CONTEXT_LOST_WEBGL() {
      return 37442;
    },
    /*web_gl.WebGL.COPY_READ_BUFFER*/get COPY_READ_BUFFER() {
      return 36662;
    },
    /*web_gl.WebGL.COPY_READ_BUFFER_BINDING*/get COPY_READ_BUFFER_BINDING() {
      return 36662;
    },
    /*web_gl.WebGL.COPY_WRITE_BUFFER*/get COPY_WRITE_BUFFER() {
      return 36663;
    },
    /*web_gl.WebGL.COPY_WRITE_BUFFER_BINDING*/get COPY_WRITE_BUFFER_BINDING() {
      return 36663;
    },
    /*web_gl.WebGL.CULL_FACE*/get CULL_FACE() {
      return 2884;
    },
    /*web_gl.WebGL.CULL_FACE_MODE*/get CULL_FACE_MODE() {
      return 2885;
    },
    /*web_gl.WebGL.CURRENT_PROGRAM*/get CURRENT_PROGRAM() {
      return 35725;
    },
    /*web_gl.WebGL.CURRENT_QUERY*/get CURRENT_QUERY() {
      return 34917;
    },
    /*web_gl.WebGL.CURRENT_VERTEX_ATTRIB*/get CURRENT_VERTEX_ATTRIB() {
      return 34342;
    },
    /*web_gl.WebGL.CW*/get CW() {
      return 2304;
    },
    /*web_gl.WebGL.DECR*/get DECR() {
      return 7683;
    },
    /*web_gl.WebGL.DECR_WRAP*/get DECR_WRAP() {
      return 34056;
    },
    /*web_gl.WebGL.DELETE_STATUS*/get DELETE_STATUS() {
      return 35712;
    },
    /*web_gl.WebGL.DEPTH*/get DEPTH() {
      return 6145;
    },
    /*web_gl.WebGL.DEPTH24_STENCIL8*/get DEPTH24_STENCIL8() {
      return 35056;
    },
    /*web_gl.WebGL.DEPTH32F_STENCIL8*/get DEPTH32F_STENCIL8() {
      return 36013;
    },
    /*web_gl.WebGL.DEPTH_ATTACHMENT*/get DEPTH_ATTACHMENT() {
      return 36096;
    },
    /*web_gl.WebGL.DEPTH_BITS*/get DEPTH_BITS() {
      return 3414;
    },
    /*web_gl.WebGL.DEPTH_BUFFER_BIT*/get DEPTH_BUFFER_BIT() {
      return 256;
    },
    /*web_gl.WebGL.DEPTH_CLEAR_VALUE*/get DEPTH_CLEAR_VALUE() {
      return 2931;
    },
    /*web_gl.WebGL.DEPTH_COMPONENT*/get DEPTH_COMPONENT() {
      return 6402;
    },
    /*web_gl.WebGL.DEPTH_COMPONENT16*/get DEPTH_COMPONENT16() {
      return 33189;
    },
    /*web_gl.WebGL.DEPTH_COMPONENT24*/get DEPTH_COMPONENT24() {
      return 33190;
    },
    /*web_gl.WebGL.DEPTH_COMPONENT32F*/get DEPTH_COMPONENT32F() {
      return 36012;
    },
    /*web_gl.WebGL.DEPTH_FUNC*/get DEPTH_FUNC() {
      return 2932;
    },
    /*web_gl.WebGL.DEPTH_RANGE*/get DEPTH_RANGE() {
      return 2928;
    },
    /*web_gl.WebGL.DEPTH_STENCIL*/get DEPTH_STENCIL() {
      return 34041;
    },
    /*web_gl.WebGL.DEPTH_STENCIL_ATTACHMENT*/get DEPTH_STENCIL_ATTACHMENT() {
      return 33306;
    },
    /*web_gl.WebGL.DEPTH_TEST*/get DEPTH_TEST() {
      return 2929;
    },
    /*web_gl.WebGL.DEPTH_WRITEMASK*/get DEPTH_WRITEMASK() {
      return 2930;
    },
    /*web_gl.WebGL.DITHER*/get DITHER() {
      return 3024;
    },
    /*web_gl.WebGL.DONT_CARE*/get DONT_CARE() {
      return 4352;
    },
    /*web_gl.WebGL.DRAW_BUFFER0*/get DRAW_BUFFER0() {
      return 34853;
    },
    /*web_gl.WebGL.DRAW_BUFFER0_WEBGL*/get DRAW_BUFFER0_WEBGL() {
      return 34853;
    },
    /*web_gl.WebGL.DRAW_BUFFER1*/get DRAW_BUFFER1() {
      return 34854;
    },
    /*web_gl.WebGL.DRAW_BUFFER10*/get DRAW_BUFFER10() {
      return 34863;
    },
    /*web_gl.WebGL.DRAW_BUFFER10_WEBGL*/get DRAW_BUFFER10_WEBGL() {
      return 34863;
    },
    /*web_gl.WebGL.DRAW_BUFFER11*/get DRAW_BUFFER11() {
      return 34864;
    },
    /*web_gl.WebGL.DRAW_BUFFER11_WEBGL*/get DRAW_BUFFER11_WEBGL() {
      return 34864;
    },
    /*web_gl.WebGL.DRAW_BUFFER12*/get DRAW_BUFFER12() {
      return 34865;
    },
    /*web_gl.WebGL.DRAW_BUFFER12_WEBGL*/get DRAW_BUFFER12_WEBGL() {
      return 34865;
    },
    /*web_gl.WebGL.DRAW_BUFFER13*/get DRAW_BUFFER13() {
      return 34866;
    },
    /*web_gl.WebGL.DRAW_BUFFER13_WEBGL*/get DRAW_BUFFER13_WEBGL() {
      return 34866;
    },
    /*web_gl.WebGL.DRAW_BUFFER14*/get DRAW_BUFFER14() {
      return 34867;
    },
    /*web_gl.WebGL.DRAW_BUFFER14_WEBGL*/get DRAW_BUFFER14_WEBGL() {
      return 34867;
    },
    /*web_gl.WebGL.DRAW_BUFFER15*/get DRAW_BUFFER15() {
      return 34868;
    },
    /*web_gl.WebGL.DRAW_BUFFER15_WEBGL*/get DRAW_BUFFER15_WEBGL() {
      return 34868;
    },
    /*web_gl.WebGL.DRAW_BUFFER1_WEBGL*/get DRAW_BUFFER1_WEBGL() {
      return 34854;
    },
    /*web_gl.WebGL.DRAW_BUFFER2*/get DRAW_BUFFER2() {
      return 34855;
    },
    /*web_gl.WebGL.DRAW_BUFFER2_WEBGL*/get DRAW_BUFFER2_WEBGL() {
      return 34855;
    },
    /*web_gl.WebGL.DRAW_BUFFER3*/get DRAW_BUFFER3() {
      return 34856;
    },
    /*web_gl.WebGL.DRAW_BUFFER3_WEBGL*/get DRAW_BUFFER3_WEBGL() {
      return 34856;
    },
    /*web_gl.WebGL.DRAW_BUFFER4*/get DRAW_BUFFER4() {
      return 34857;
    },
    /*web_gl.WebGL.DRAW_BUFFER4_WEBGL*/get DRAW_BUFFER4_WEBGL() {
      return 34857;
    },
    /*web_gl.WebGL.DRAW_BUFFER5*/get DRAW_BUFFER5() {
      return 34858;
    },
    /*web_gl.WebGL.DRAW_BUFFER5_WEBGL*/get DRAW_BUFFER5_WEBGL() {
      return 34858;
    },
    /*web_gl.WebGL.DRAW_BUFFER6*/get DRAW_BUFFER6() {
      return 34859;
    },
    /*web_gl.WebGL.DRAW_BUFFER6_WEBGL*/get DRAW_BUFFER6_WEBGL() {
      return 34859;
    },
    /*web_gl.WebGL.DRAW_BUFFER7*/get DRAW_BUFFER7() {
      return 34860;
    },
    /*web_gl.WebGL.DRAW_BUFFER7_WEBGL*/get DRAW_BUFFER7_WEBGL() {
      return 34860;
    },
    /*web_gl.WebGL.DRAW_BUFFER8*/get DRAW_BUFFER8() {
      return 34861;
    },
    /*web_gl.WebGL.DRAW_BUFFER8_WEBGL*/get DRAW_BUFFER8_WEBGL() {
      return 34861;
    },
    /*web_gl.WebGL.DRAW_BUFFER9*/get DRAW_BUFFER9() {
      return 34862;
    },
    /*web_gl.WebGL.DRAW_BUFFER9_WEBGL*/get DRAW_BUFFER9_WEBGL() {
      return 34862;
    },
    /*web_gl.WebGL.DRAW_FRAMEBUFFER*/get DRAW_FRAMEBUFFER() {
      return 36009;
    },
    /*web_gl.WebGL.DRAW_FRAMEBUFFER_BINDING*/get DRAW_FRAMEBUFFER_BINDING() {
      return 36006;
    },
    /*web_gl.WebGL.DST_ALPHA*/get DST_ALPHA() {
      return 772;
    },
    /*web_gl.WebGL.DST_COLOR*/get DST_COLOR() {
      return 774;
    },
    /*web_gl.WebGL.DYNAMIC_COPY*/get DYNAMIC_COPY() {
      return 35050;
    },
    /*web_gl.WebGL.DYNAMIC_DRAW*/get DYNAMIC_DRAW() {
      return 35048;
    },
    /*web_gl.WebGL.DYNAMIC_READ*/get DYNAMIC_READ() {
      return 35049;
    },
    /*web_gl.WebGL.ELEMENT_ARRAY_BUFFER*/get ELEMENT_ARRAY_BUFFER() {
      return 34963;
    },
    /*web_gl.WebGL.ELEMENT_ARRAY_BUFFER_BINDING*/get ELEMENT_ARRAY_BUFFER_BINDING() {
      return 34965;
    },
    /*web_gl.WebGL.EQUAL*/get EQUAL() {
      return 514;
    },
    /*web_gl.WebGL.FASTEST*/get FASTEST() {
      return 4353;
    },
    /*web_gl.WebGL.FLOAT*/get FLOAT() {
      return 5126;
    },
    /*web_gl.WebGL.FLOAT_32_UNSIGNED_INT_24_8_REV*/get FLOAT_32_UNSIGNED_INT_24_8_REV() {
      return 36269;
    },
    /*web_gl.WebGL.FLOAT_MAT2*/get FLOAT_MAT2() {
      return 35674;
    },
    /*web_gl.WebGL.FLOAT_MAT2x3*/get FLOAT_MAT2x3() {
      return 35685;
    },
    /*web_gl.WebGL.FLOAT_MAT2x4*/get FLOAT_MAT2x4() {
      return 35686;
    },
    /*web_gl.WebGL.FLOAT_MAT3*/get FLOAT_MAT3() {
      return 35675;
    },
    /*web_gl.WebGL.FLOAT_MAT3x2*/get FLOAT_MAT3x2() {
      return 35687;
    },
    /*web_gl.WebGL.FLOAT_MAT3x4*/get FLOAT_MAT3x4() {
      return 35688;
    },
    /*web_gl.WebGL.FLOAT_MAT4*/get FLOAT_MAT4() {
      return 35676;
    },
    /*web_gl.WebGL.FLOAT_MAT4x2*/get FLOAT_MAT4x2() {
      return 35689;
    },
    /*web_gl.WebGL.FLOAT_MAT4x3*/get FLOAT_MAT4x3() {
      return 35690;
    },
    /*web_gl.WebGL.FLOAT_VEC2*/get FLOAT_VEC2() {
      return 35664;
    },
    /*web_gl.WebGL.FLOAT_VEC3*/get FLOAT_VEC3() {
      return 35665;
    },
    /*web_gl.WebGL.FLOAT_VEC4*/get FLOAT_VEC4() {
      return 35666;
    },
    /*web_gl.WebGL.FRAGMENT_SHADER*/get FRAGMENT_SHADER() {
      return 35632;
    },
    /*web_gl.WebGL.FRAGMENT_SHADER_DERIVATIVE_HINT*/get FRAGMENT_SHADER_DERIVATIVE_HINT() {
      return 35723;
    },
    /*web_gl.WebGL.FRAMEBUFFER*/get FRAMEBUFFER() {
      return 36160;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE*/get FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE() {
      return 33301;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE*/get FRAMEBUFFER_ATTACHMENT_BLUE_SIZE() {
      return 33300;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING*/get FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING() {
      return 33296;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE*/get FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE() {
      return 33297;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE*/get FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE() {
      return 33302;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE*/get FRAMEBUFFER_ATTACHMENT_GREEN_SIZE() {
      return 33299;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME*/get FRAMEBUFFER_ATTACHMENT_OBJECT_NAME() {
      return 36049;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE*/get FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE() {
      return 36048;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_RED_SIZE*/get FRAMEBUFFER_ATTACHMENT_RED_SIZE() {
      return 33298;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE*/get FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE() {
      return 33303;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE() {
      return 36051;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER() {
      return 36052;
    },
    /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL() {
      return 36050;
    },
    /*web_gl.WebGL.FRAMEBUFFER_BINDING*/get FRAMEBUFFER_BINDING() {
      return 36006;
    },
    /*web_gl.WebGL.FRAMEBUFFER_COMPLETE*/get FRAMEBUFFER_COMPLETE() {
      return 36053;
    },
    /*web_gl.WebGL.FRAMEBUFFER_DEFAULT*/get FRAMEBUFFER_DEFAULT() {
      return 33304;
    },
    /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT*/get FRAMEBUFFER_INCOMPLETE_ATTACHMENT() {
      return 36054;
    },
    /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS*/get FRAMEBUFFER_INCOMPLETE_DIMENSIONS() {
      return 36057;
    },
    /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT*/get FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT() {
      return 36055;
    },
    /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE*/get FRAMEBUFFER_INCOMPLETE_MULTISAMPLE() {
      return 36182;
    },
    /*web_gl.WebGL.FRAMEBUFFER_UNSUPPORTED*/get FRAMEBUFFER_UNSUPPORTED() {
      return 36061;
    },
    /*web_gl.WebGL.FRONT*/get FRONT() {
      return 1028;
    },
    /*web_gl.WebGL.FRONT_AND_BACK*/get FRONT_AND_BACK() {
      return 1032;
    },
    /*web_gl.WebGL.FRONT_FACE*/get FRONT_FACE() {
      return 2886;
    },
    /*web_gl.WebGL.FUNC_ADD*/get FUNC_ADD() {
      return 32774;
    },
    /*web_gl.WebGL.FUNC_REVERSE_SUBTRACT*/get FUNC_REVERSE_SUBTRACT() {
      return 32779;
    },
    /*web_gl.WebGL.FUNC_SUBTRACT*/get FUNC_SUBTRACT() {
      return 32778;
    },
    /*web_gl.WebGL.GENERATE_MIPMAP_HINT*/get GENERATE_MIPMAP_HINT() {
      return 33170;
    },
    /*web_gl.WebGL.GEQUAL*/get GEQUAL() {
      return 518;
    },
    /*web_gl.WebGL.GREATER*/get GREATER() {
      return 516;
    },
    /*web_gl.WebGL.GREEN_BITS*/get GREEN_BITS() {
      return 3411;
    },
    /*web_gl.WebGL.HALF_FLOAT*/get HALF_FLOAT() {
      return 5131;
    },
    /*web_gl.WebGL.HIGH_FLOAT*/get HIGH_FLOAT() {
      return 36338;
    },
    /*web_gl.WebGL.HIGH_INT*/get HIGH_INT() {
      return 36341;
    },
    /*web_gl.WebGL.IMPLEMENTATION_COLOR_READ_FORMAT*/get IMPLEMENTATION_COLOR_READ_FORMAT() {
      return 35739;
    },
    /*web_gl.WebGL.IMPLEMENTATION_COLOR_READ_TYPE*/get IMPLEMENTATION_COLOR_READ_TYPE() {
      return 35738;
    },
    /*web_gl.WebGL.INCR*/get INCR() {
      return 7682;
    },
    /*web_gl.WebGL.INCR_WRAP*/get INCR_WRAP() {
      return 34055;
    },
    /*web_gl.WebGL.INT*/get INT() {
      return 5124;
    },
    /*web_gl.WebGL.INTERLEAVED_ATTRIBS*/get INTERLEAVED_ATTRIBS() {
      return 35980;
    },
    /*web_gl.WebGL.INT_2_10_10_10_REV*/get INT_2_10_10_10_REV() {
      return 36255;
    },
    /*web_gl.WebGL.INT_SAMPLER_2D*/get INT_SAMPLER_2D() {
      return 36298;
    },
    /*web_gl.WebGL.INT_SAMPLER_2D_ARRAY*/get INT_SAMPLER_2D_ARRAY() {
      return 36303;
    },
    /*web_gl.WebGL.INT_SAMPLER_3D*/get INT_SAMPLER_3D() {
      return 36299;
    },
    /*web_gl.WebGL.INT_SAMPLER_CUBE*/get INT_SAMPLER_CUBE() {
      return 36300;
    },
    /*web_gl.WebGL.INT_VEC2*/get INT_VEC2() {
      return 35667;
    },
    /*web_gl.WebGL.INT_VEC3*/get INT_VEC3() {
      return 35668;
    },
    /*web_gl.WebGL.INT_VEC4*/get INT_VEC4() {
      return 35669;
    },
    /*web_gl.WebGL.INVALID_ENUM*/get INVALID_ENUM() {
      return 1280;
    },
    /*web_gl.WebGL.INVALID_FRAMEBUFFER_OPERATION*/get INVALID_FRAMEBUFFER_OPERATION() {
      return 1286;
    },
    /*web_gl.WebGL.INVALID_INDEX*/get INVALID_INDEX() {
      return 4294967295.0;
    },
    /*web_gl.WebGL.INVALID_OPERATION*/get INVALID_OPERATION() {
      return 1282;
    },
    /*web_gl.WebGL.INVALID_VALUE*/get INVALID_VALUE() {
      return 1281;
    },
    /*web_gl.WebGL.INVERT*/get INVERT() {
      return 5386;
    },
    /*web_gl.WebGL.KEEP*/get KEEP() {
      return 7680;
    },
    /*web_gl.WebGL.LEQUAL*/get LEQUAL() {
      return 515;
    },
    /*web_gl.WebGL.LESS*/get LESS() {
      return 513;
    },
    /*web_gl.WebGL.LINEAR*/get LINEAR() {
      return 9729;
    },
    /*web_gl.WebGL.LINEAR_MIPMAP_LINEAR*/get LINEAR_MIPMAP_LINEAR() {
      return 9987;
    },
    /*web_gl.WebGL.LINEAR_MIPMAP_NEAREST*/get LINEAR_MIPMAP_NEAREST() {
      return 9985;
    },
    /*web_gl.WebGL.LINES*/get LINES() {
      return 1;
    },
    /*web_gl.WebGL.LINE_LOOP*/get LINE_LOOP() {
      return 2;
    },
    /*web_gl.WebGL.LINE_STRIP*/get LINE_STRIP() {
      return 3;
    },
    /*web_gl.WebGL.LINE_WIDTH*/get LINE_WIDTH() {
      return 2849;
    },
    /*web_gl.WebGL.LINK_STATUS*/get LINK_STATUS() {
      return 35714;
    },
    /*web_gl.WebGL.LOW_FLOAT*/get LOW_FLOAT() {
      return 36336;
    },
    /*web_gl.WebGL.LOW_INT*/get LOW_INT() {
      return 36339;
    },
    /*web_gl.WebGL.LUMINANCE*/get LUMINANCE() {
      return 6409;
    },
    /*web_gl.WebGL.LUMINANCE_ALPHA*/get LUMINANCE_ALPHA() {
      return 6410;
    },
    /*web_gl.WebGL.MAX*/get MAX() {
      return 32776;
    },
    /*web_gl.WebGL.MAX_3D_TEXTURE_SIZE*/get MAX_3D_TEXTURE_SIZE() {
      return 32883;
    },
    /*web_gl.WebGL.MAX_ARRAY_TEXTURE_LAYERS*/get MAX_ARRAY_TEXTURE_LAYERS() {
      return 35071;
    },
    /*web_gl.WebGL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL*/get MAX_CLIENT_WAIT_TIMEOUT_WEBGL() {
      return 37447;
    },
    /*web_gl.WebGL.MAX_COLOR_ATTACHMENTS*/get MAX_COLOR_ATTACHMENTS() {
      return 36063;
    },
    /*web_gl.WebGL.MAX_COLOR_ATTACHMENTS_WEBGL*/get MAX_COLOR_ATTACHMENTS_WEBGL() {
      return 36063;
    },
    /*web_gl.WebGL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS*/get MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS() {
      return 35379;
    },
    /*web_gl.WebGL.MAX_COMBINED_TEXTURE_IMAGE_UNITS*/get MAX_COMBINED_TEXTURE_IMAGE_UNITS() {
      return 35661;
    },
    /*web_gl.WebGL.MAX_COMBINED_UNIFORM_BLOCKS*/get MAX_COMBINED_UNIFORM_BLOCKS() {
      return 35374;
    },
    /*web_gl.WebGL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS*/get MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS() {
      return 35377;
    },
    /*web_gl.WebGL.MAX_CUBE_MAP_TEXTURE_SIZE*/get MAX_CUBE_MAP_TEXTURE_SIZE() {
      return 34076;
    },
    /*web_gl.WebGL.MAX_DRAW_BUFFERS*/get MAX_DRAW_BUFFERS() {
      return 34852;
    },
    /*web_gl.WebGL.MAX_DRAW_BUFFERS_WEBGL*/get MAX_DRAW_BUFFERS_WEBGL() {
      return 34852;
    },
    /*web_gl.WebGL.MAX_ELEMENTS_INDICES*/get MAX_ELEMENTS_INDICES() {
      return 33001;
    },
    /*web_gl.WebGL.MAX_ELEMENTS_VERTICES*/get MAX_ELEMENTS_VERTICES() {
      return 33000;
    },
    /*web_gl.WebGL.MAX_ELEMENT_INDEX*/get MAX_ELEMENT_INDEX() {
      return 36203;
    },
    /*web_gl.WebGL.MAX_FRAGMENT_INPUT_COMPONENTS*/get MAX_FRAGMENT_INPUT_COMPONENTS() {
      return 37157;
    },
    /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_BLOCKS*/get MAX_FRAGMENT_UNIFORM_BLOCKS() {
      return 35373;
    },
    /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_COMPONENTS*/get MAX_FRAGMENT_UNIFORM_COMPONENTS() {
      return 35657;
    },
    /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_VECTORS*/get MAX_FRAGMENT_UNIFORM_VECTORS() {
      return 36349;
    },
    /*web_gl.WebGL.MAX_PROGRAM_TEXEL_OFFSET*/get MAX_PROGRAM_TEXEL_OFFSET() {
      return 35077;
    },
    /*web_gl.WebGL.MAX_RENDERBUFFER_SIZE*/get MAX_RENDERBUFFER_SIZE() {
      return 34024;
    },
    /*web_gl.WebGL.MAX_SAMPLES*/get MAX_SAMPLES() {
      return 36183;
    },
    /*web_gl.WebGL.MAX_SERVER_WAIT_TIMEOUT*/get MAX_SERVER_WAIT_TIMEOUT() {
      return 37137;
    },
    /*web_gl.WebGL.MAX_TEXTURE_IMAGE_UNITS*/get MAX_TEXTURE_IMAGE_UNITS() {
      return 34930;
    },
    /*web_gl.WebGL.MAX_TEXTURE_LOD_BIAS*/get MAX_TEXTURE_LOD_BIAS() {
      return 34045;
    },
    /*web_gl.WebGL.MAX_TEXTURE_SIZE*/get MAX_TEXTURE_SIZE() {
      return 3379;
    },
    /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS*/get MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS() {
      return 35978;
    },
    /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS*/get MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS() {
      return 35979;
    },
    /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS*/get MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS() {
      return 35968;
    },
    /*web_gl.WebGL.MAX_UNIFORM_BLOCK_SIZE*/get MAX_UNIFORM_BLOCK_SIZE() {
      return 35376;
    },
    /*web_gl.WebGL.MAX_UNIFORM_BUFFER_BINDINGS*/get MAX_UNIFORM_BUFFER_BINDINGS() {
      return 35375;
    },
    /*web_gl.WebGL.MAX_VARYING_COMPONENTS*/get MAX_VARYING_COMPONENTS() {
      return 35659;
    },
    /*web_gl.WebGL.MAX_VARYING_VECTORS*/get MAX_VARYING_VECTORS() {
      return 36348;
    },
    /*web_gl.WebGL.MAX_VERTEX_ATTRIBS*/get MAX_VERTEX_ATTRIBS() {
      return 34921;
    },
    /*web_gl.WebGL.MAX_VERTEX_OUTPUT_COMPONENTS*/get MAX_VERTEX_OUTPUT_COMPONENTS() {
      return 37154;
    },
    /*web_gl.WebGL.MAX_VERTEX_TEXTURE_IMAGE_UNITS*/get MAX_VERTEX_TEXTURE_IMAGE_UNITS() {
      return 35660;
    },
    /*web_gl.WebGL.MAX_VERTEX_UNIFORM_BLOCKS*/get MAX_VERTEX_UNIFORM_BLOCKS() {
      return 35371;
    },
    /*web_gl.WebGL.MAX_VERTEX_UNIFORM_COMPONENTS*/get MAX_VERTEX_UNIFORM_COMPONENTS() {
      return 35658;
    },
    /*web_gl.WebGL.MAX_VERTEX_UNIFORM_VECTORS*/get MAX_VERTEX_UNIFORM_VECTORS() {
      return 36347;
    },
    /*web_gl.WebGL.MAX_VIEWPORT_DIMS*/get MAX_VIEWPORT_DIMS() {
      return 3386;
    },
    /*web_gl.WebGL.MEDIUM_FLOAT*/get MEDIUM_FLOAT() {
      return 36337;
    },
    /*web_gl.WebGL.MEDIUM_INT*/get MEDIUM_INT() {
      return 36340;
    },
    /*web_gl.WebGL.MIN*/get MIN() {
      return 32775;
    },
    /*web_gl.WebGL.MIN_PROGRAM_TEXEL_OFFSET*/get MIN_PROGRAM_TEXEL_OFFSET() {
      return 35076;
    },
    /*web_gl.WebGL.MIRRORED_REPEAT*/get MIRRORED_REPEAT() {
      return 33648;
    },
    /*web_gl.WebGL.NEAREST*/get NEAREST() {
      return 9728;
    },
    /*web_gl.WebGL.NEAREST_MIPMAP_LINEAR*/get NEAREST_MIPMAP_LINEAR() {
      return 9986;
    },
    /*web_gl.WebGL.NEAREST_MIPMAP_NEAREST*/get NEAREST_MIPMAP_NEAREST() {
      return 9984;
    },
    /*web_gl.WebGL.NEVER*/get NEVER() {
      return 512;
    },
    /*web_gl.WebGL.NICEST*/get NICEST() {
      return 4354;
    },
    /*web_gl.WebGL.NONE*/get NONE() {
      return 0;
    },
    /*web_gl.WebGL.NOTEQUAL*/get NOTEQUAL() {
      return 517;
    },
    /*web_gl.WebGL.NO_ERROR*/get NO_ERROR() {
      return 0;
    },
    /*web_gl.WebGL.OBJECT_TYPE*/get OBJECT_TYPE() {
      return 37138;
    },
    /*web_gl.WebGL.ONE*/get ONE() {
      return 1;
    },
    /*web_gl.WebGL.ONE_MINUS_CONSTANT_ALPHA*/get ONE_MINUS_CONSTANT_ALPHA() {
      return 32772;
    },
    /*web_gl.WebGL.ONE_MINUS_CONSTANT_COLOR*/get ONE_MINUS_CONSTANT_COLOR() {
      return 32770;
    },
    /*web_gl.WebGL.ONE_MINUS_DST_ALPHA*/get ONE_MINUS_DST_ALPHA() {
      return 773;
    },
    /*web_gl.WebGL.ONE_MINUS_DST_COLOR*/get ONE_MINUS_DST_COLOR() {
      return 775;
    },
    /*web_gl.WebGL.ONE_MINUS_SRC_ALPHA*/get ONE_MINUS_SRC_ALPHA() {
      return 771;
    },
    /*web_gl.WebGL.ONE_MINUS_SRC_COLOR*/get ONE_MINUS_SRC_COLOR() {
      return 769;
    },
    /*web_gl.WebGL.OUT_OF_MEMORY*/get OUT_OF_MEMORY() {
      return 1285;
    },
    /*web_gl.WebGL.PACK_ALIGNMENT*/get PACK_ALIGNMENT() {
      return 3333;
    },
    /*web_gl.WebGL.PACK_ROW_LENGTH*/get PACK_ROW_LENGTH() {
      return 3330;
    },
    /*web_gl.WebGL.PACK_SKIP_PIXELS*/get PACK_SKIP_PIXELS() {
      return 3332;
    },
    /*web_gl.WebGL.PACK_SKIP_ROWS*/get PACK_SKIP_ROWS() {
      return 3331;
    },
    /*web_gl.WebGL.PIXEL_PACK_BUFFER*/get PIXEL_PACK_BUFFER() {
      return 35051;
    },
    /*web_gl.WebGL.PIXEL_PACK_BUFFER_BINDING*/get PIXEL_PACK_BUFFER_BINDING() {
      return 35053;
    },
    /*web_gl.WebGL.PIXEL_UNPACK_BUFFER*/get PIXEL_UNPACK_BUFFER() {
      return 35052;
    },
    /*web_gl.WebGL.PIXEL_UNPACK_BUFFER_BINDING*/get PIXEL_UNPACK_BUFFER_BINDING() {
      return 35055;
    },
    /*web_gl.WebGL.POINTS*/get POINTS() {
      return 0;
    },
    /*web_gl.WebGL.POLYGON_OFFSET_FACTOR*/get POLYGON_OFFSET_FACTOR() {
      return 32824;
    },
    /*web_gl.WebGL.POLYGON_OFFSET_FILL*/get POLYGON_OFFSET_FILL() {
      return 32823;
    },
    /*web_gl.WebGL.POLYGON_OFFSET_UNITS*/get POLYGON_OFFSET_UNITS() {
      return 10752;
    },
    /*web_gl.WebGL.QUERY_RESULT*/get QUERY_RESULT() {
      return 34918;
    },
    /*web_gl.WebGL.QUERY_RESULT_AVAILABLE*/get QUERY_RESULT_AVAILABLE() {
      return 34919;
    },
    /*web_gl.WebGL.R11F_G11F_B10F*/get R11F_G11F_B10F() {
      return 35898;
    },
    /*web_gl.WebGL.R16F*/get R16F() {
      return 33325;
    },
    /*web_gl.WebGL.R16I*/get R16I() {
      return 33331;
    },
    /*web_gl.WebGL.R16UI*/get R16UI() {
      return 33332;
    },
    /*web_gl.WebGL.R32F*/get R32F() {
      return 33326;
    },
    /*web_gl.WebGL.R32I*/get R32I() {
      return 33333;
    },
    /*web_gl.WebGL.R32UI*/get R32UI() {
      return 33334;
    },
    /*web_gl.WebGL.R8*/get R8() {
      return 33321;
    },
    /*web_gl.WebGL.R8I*/get R8I() {
      return 33329;
    },
    /*web_gl.WebGL.R8UI*/get R8UI() {
      return 33330;
    },
    /*web_gl.WebGL.R8_SNORM*/get R8_SNORM() {
      return 36756;
    },
    /*web_gl.WebGL.RASTERIZER_DISCARD*/get RASTERIZER_DISCARD() {
      return 35977;
    },
    /*web_gl.WebGL.READ_BUFFER*/get READ_BUFFER() {
      return 3074;
    },
    /*web_gl.WebGL.READ_FRAMEBUFFER*/get READ_FRAMEBUFFER() {
      return 36008;
    },
    /*web_gl.WebGL.READ_FRAMEBUFFER_BINDING*/get READ_FRAMEBUFFER_BINDING() {
      return 36010;
    },
    /*web_gl.WebGL.RED*/get RED() {
      return 6403;
    },
    /*web_gl.WebGL.RED_BITS*/get RED_BITS() {
      return 3410;
    },
    /*web_gl.WebGL.RED_INTEGER*/get RED_INTEGER() {
      return 36244;
    },
    /*web_gl.WebGL.RENDERBUFFER*/get RENDERBUFFER() {
      return 36161;
    },
    /*web_gl.WebGL.RENDERBUFFER_ALPHA_SIZE*/get RENDERBUFFER_ALPHA_SIZE() {
      return 36179;
    },
    /*web_gl.WebGL.RENDERBUFFER_BINDING*/get RENDERBUFFER_BINDING() {
      return 36007;
    },
    /*web_gl.WebGL.RENDERBUFFER_BLUE_SIZE*/get RENDERBUFFER_BLUE_SIZE() {
      return 36178;
    },
    /*web_gl.WebGL.RENDERBUFFER_DEPTH_SIZE*/get RENDERBUFFER_DEPTH_SIZE() {
      return 36180;
    },
    /*web_gl.WebGL.RENDERBUFFER_GREEN_SIZE*/get RENDERBUFFER_GREEN_SIZE() {
      return 36177;
    },
    /*web_gl.WebGL.RENDERBUFFER_HEIGHT*/get RENDERBUFFER_HEIGHT() {
      return 36163;
    },
    /*web_gl.WebGL.RENDERBUFFER_INTERNAL_FORMAT*/get RENDERBUFFER_INTERNAL_FORMAT() {
      return 36164;
    },
    /*web_gl.WebGL.RENDERBUFFER_RED_SIZE*/get RENDERBUFFER_RED_SIZE() {
      return 36176;
    },
    /*web_gl.WebGL.RENDERBUFFER_SAMPLES*/get RENDERBUFFER_SAMPLES() {
      return 36011;
    },
    /*web_gl.WebGL.RENDERBUFFER_STENCIL_SIZE*/get RENDERBUFFER_STENCIL_SIZE() {
      return 36181;
    },
    /*web_gl.WebGL.RENDERBUFFER_WIDTH*/get RENDERBUFFER_WIDTH() {
      return 36162;
    },
    /*web_gl.WebGL.RENDERER*/get RENDERER() {
      return 7937;
    },
    /*web_gl.WebGL.REPEAT*/get REPEAT() {
      return 10497;
    },
    /*web_gl.WebGL.REPLACE*/get REPLACE() {
      return 7681;
    },
    /*web_gl.WebGL.RG*/get RG() {
      return 33319;
    },
    /*web_gl.WebGL.RG16F*/get RG16F() {
      return 33327;
    },
    /*web_gl.WebGL.RG16I*/get RG16I() {
      return 33337;
    },
    /*web_gl.WebGL.RG16UI*/get RG16UI() {
      return 33338;
    },
    /*web_gl.WebGL.RG32F*/get RG32F() {
      return 33328;
    },
    /*web_gl.WebGL.RG32I*/get RG32I() {
      return 33339;
    },
    /*web_gl.WebGL.RG32UI*/get RG32UI() {
      return 33340;
    },
    /*web_gl.WebGL.RG8*/get RG8() {
      return 33323;
    },
    /*web_gl.WebGL.RG8I*/get RG8I() {
      return 33335;
    },
    /*web_gl.WebGL.RG8UI*/get RG8UI() {
      return 33336;
    },
    /*web_gl.WebGL.RG8_SNORM*/get RG8_SNORM() {
      return 36757;
    },
    /*web_gl.WebGL.RGB*/get RGB() {
      return 6407;
    },
    /*web_gl.WebGL.RGB10_A2*/get RGB10_A2() {
      return 32857;
    },
    /*web_gl.WebGL.RGB10_A2UI*/get RGB10_A2UI() {
      return 36975;
    },
    /*web_gl.WebGL.RGB16F*/get RGB16F() {
      return 34843;
    },
    /*web_gl.WebGL.RGB16I*/get RGB16I() {
      return 36233;
    },
    /*web_gl.WebGL.RGB16UI*/get RGB16UI() {
      return 36215;
    },
    /*web_gl.WebGL.RGB32F*/get RGB32F() {
      return 34837;
    },
    /*web_gl.WebGL.RGB32I*/get RGB32I() {
      return 36227;
    },
    /*web_gl.WebGL.RGB32UI*/get RGB32UI() {
      return 36209;
    },
    /*web_gl.WebGL.RGB565*/get RGB565() {
      return 36194;
    },
    /*web_gl.WebGL.RGB5_A1*/get RGB5_A1() {
      return 32855;
    },
    /*web_gl.WebGL.RGB8*/get RGB8() {
      return 32849;
    },
    /*web_gl.WebGL.RGB8I*/get RGB8I() {
      return 36239;
    },
    /*web_gl.WebGL.RGB8UI*/get RGB8UI() {
      return 36221;
    },
    /*web_gl.WebGL.RGB8_SNORM*/get RGB8_SNORM() {
      return 36758;
    },
    /*web_gl.WebGL.RGB9_E5*/get RGB9_E5() {
      return 35901;
    },
    /*web_gl.WebGL.RGBA*/get RGBA() {
      return 6408;
    },
    /*web_gl.WebGL.RGBA16F*/get RGBA16F() {
      return 34842;
    },
    /*web_gl.WebGL.RGBA16I*/get RGBA16I() {
      return 36232;
    },
    /*web_gl.WebGL.RGBA16UI*/get RGBA16UI() {
      return 36214;
    },
    /*web_gl.WebGL.RGBA32F*/get RGBA32F() {
      return 34836;
    },
    /*web_gl.WebGL.RGBA32I*/get RGBA32I() {
      return 36226;
    },
    /*web_gl.WebGL.RGBA32UI*/get RGBA32UI() {
      return 36208;
    },
    /*web_gl.WebGL.RGBA4*/get RGBA4() {
      return 32854;
    },
    /*web_gl.WebGL.RGBA8*/get RGBA8() {
      return 32856;
    },
    /*web_gl.WebGL.RGBA8I*/get RGBA8I() {
      return 36238;
    },
    /*web_gl.WebGL.RGBA8UI*/get RGBA8UI() {
      return 36220;
    },
    /*web_gl.WebGL.RGBA8_SNORM*/get RGBA8_SNORM() {
      return 36759;
    },
    /*web_gl.WebGL.RGBA_INTEGER*/get RGBA_INTEGER() {
      return 36249;
    },
    /*web_gl.WebGL.RGB_INTEGER*/get RGB_INTEGER() {
      return 36248;
    },
    /*web_gl.WebGL.RG_INTEGER*/get RG_INTEGER() {
      return 33320;
    },
    /*web_gl.WebGL.SAMPLER_2D*/get SAMPLER_2D() {
      return 35678;
    },
    /*web_gl.WebGL.SAMPLER_2D_ARRAY*/get SAMPLER_2D_ARRAY() {
      return 36289;
    },
    /*web_gl.WebGL.SAMPLER_2D_ARRAY_SHADOW*/get SAMPLER_2D_ARRAY_SHADOW() {
      return 36292;
    },
    /*web_gl.WebGL.SAMPLER_2D_SHADOW*/get SAMPLER_2D_SHADOW() {
      return 35682;
    },
    /*web_gl.WebGL.SAMPLER_3D*/get SAMPLER_3D() {
      return 35679;
    },
    /*web_gl.WebGL.SAMPLER_BINDING*/get SAMPLER_BINDING() {
      return 35097;
    },
    /*web_gl.WebGL.SAMPLER_CUBE*/get SAMPLER_CUBE() {
      return 35680;
    },
    /*web_gl.WebGL.SAMPLER_CUBE_SHADOW*/get SAMPLER_CUBE_SHADOW() {
      return 36293;
    },
    /*web_gl.WebGL.SAMPLES*/get SAMPLES() {
      return 32937;
    },
    /*web_gl.WebGL.SAMPLE_ALPHA_TO_COVERAGE*/get SAMPLE_ALPHA_TO_COVERAGE() {
      return 32926;
    },
    /*web_gl.WebGL.SAMPLE_BUFFERS*/get SAMPLE_BUFFERS() {
      return 32936;
    },
    /*web_gl.WebGL.SAMPLE_COVERAGE*/get SAMPLE_COVERAGE() {
      return 32928;
    },
    /*web_gl.WebGL.SAMPLE_COVERAGE_INVERT*/get SAMPLE_COVERAGE_INVERT() {
      return 32939;
    },
    /*web_gl.WebGL.SAMPLE_COVERAGE_VALUE*/get SAMPLE_COVERAGE_VALUE() {
      return 32938;
    },
    /*web_gl.WebGL.SCISSOR_BOX*/get SCISSOR_BOX() {
      return 3088;
    },
    /*web_gl.WebGL.SCISSOR_TEST*/get SCISSOR_TEST() {
      return 3089;
    },
    /*web_gl.WebGL.SEPARATE_ATTRIBS*/get SEPARATE_ATTRIBS() {
      return 35981;
    },
    /*web_gl.WebGL.SHADER_TYPE*/get SHADER_TYPE() {
      return 35663;
    },
    /*web_gl.WebGL.SHADING_LANGUAGE_VERSION*/get SHADING_LANGUAGE_VERSION() {
      return 35724;
    },
    /*web_gl.WebGL.SHORT*/get SHORT() {
      return 5122;
    },
    /*web_gl.WebGL.SIGNALED*/get SIGNALED() {
      return 37145;
    },
    /*web_gl.WebGL.SIGNED_NORMALIZED*/get SIGNED_NORMALIZED() {
      return 36764;
    },
    /*web_gl.WebGL.SRC_ALPHA*/get SRC_ALPHA() {
      return 770;
    },
    /*web_gl.WebGL.SRC_ALPHA_SATURATE*/get SRC_ALPHA_SATURATE() {
      return 776;
    },
    /*web_gl.WebGL.SRC_COLOR*/get SRC_COLOR() {
      return 768;
    },
    /*web_gl.WebGL.SRGB*/get SRGB() {
      return 35904;
    },
    /*web_gl.WebGL.SRGB8*/get SRGB8() {
      return 35905;
    },
    /*web_gl.WebGL.SRGB8_ALPHA8*/get SRGB8_ALPHA8() {
      return 35907;
    },
    /*web_gl.WebGL.STATIC_COPY*/get STATIC_COPY() {
      return 35046;
    },
    /*web_gl.WebGL.STATIC_DRAW*/get STATIC_DRAW() {
      return 35044;
    },
    /*web_gl.WebGL.STATIC_READ*/get STATIC_READ() {
      return 35045;
    },
    /*web_gl.WebGL.STENCIL*/get STENCIL() {
      return 6146;
    },
    /*web_gl.WebGL.STENCIL_ATTACHMENT*/get STENCIL_ATTACHMENT() {
      return 36128;
    },
    /*web_gl.WebGL.STENCIL_BACK_FAIL*/get STENCIL_BACK_FAIL() {
      return 34817;
    },
    /*web_gl.WebGL.STENCIL_BACK_FUNC*/get STENCIL_BACK_FUNC() {
      return 34816;
    },
    /*web_gl.WebGL.STENCIL_BACK_PASS_DEPTH_FAIL*/get STENCIL_BACK_PASS_DEPTH_FAIL() {
      return 34818;
    },
    /*web_gl.WebGL.STENCIL_BACK_PASS_DEPTH_PASS*/get STENCIL_BACK_PASS_DEPTH_PASS() {
      return 34819;
    },
    /*web_gl.WebGL.STENCIL_BACK_REF*/get STENCIL_BACK_REF() {
      return 36003;
    },
    /*web_gl.WebGL.STENCIL_BACK_VALUE_MASK*/get STENCIL_BACK_VALUE_MASK() {
      return 36004;
    },
    /*web_gl.WebGL.STENCIL_BACK_WRITEMASK*/get STENCIL_BACK_WRITEMASK() {
      return 36005;
    },
    /*web_gl.WebGL.STENCIL_BITS*/get STENCIL_BITS() {
      return 3415;
    },
    /*web_gl.WebGL.STENCIL_BUFFER_BIT*/get STENCIL_BUFFER_BIT() {
      return 1024;
    },
    /*web_gl.WebGL.STENCIL_CLEAR_VALUE*/get STENCIL_CLEAR_VALUE() {
      return 2961;
    },
    /*web_gl.WebGL.STENCIL_FAIL*/get STENCIL_FAIL() {
      return 2964;
    },
    /*web_gl.WebGL.STENCIL_FUNC*/get STENCIL_FUNC() {
      return 2962;
    },
    /*web_gl.WebGL.STENCIL_INDEX8*/get STENCIL_INDEX8() {
      return 36168;
    },
    /*web_gl.WebGL.STENCIL_PASS_DEPTH_FAIL*/get STENCIL_PASS_DEPTH_FAIL() {
      return 2965;
    },
    /*web_gl.WebGL.STENCIL_PASS_DEPTH_PASS*/get STENCIL_PASS_DEPTH_PASS() {
      return 2966;
    },
    /*web_gl.WebGL.STENCIL_REF*/get STENCIL_REF() {
      return 2967;
    },
    /*web_gl.WebGL.STENCIL_TEST*/get STENCIL_TEST() {
      return 2960;
    },
    /*web_gl.WebGL.STENCIL_VALUE_MASK*/get STENCIL_VALUE_MASK() {
      return 2963;
    },
    /*web_gl.WebGL.STENCIL_WRITEMASK*/get STENCIL_WRITEMASK() {
      return 2968;
    },
    /*web_gl.WebGL.STREAM_COPY*/get STREAM_COPY() {
      return 35042;
    },
    /*web_gl.WebGL.STREAM_DRAW*/get STREAM_DRAW() {
      return 35040;
    },
    /*web_gl.WebGL.STREAM_READ*/get STREAM_READ() {
      return 35041;
    },
    /*web_gl.WebGL.SUBPIXEL_BITS*/get SUBPIXEL_BITS() {
      return 3408;
    },
    /*web_gl.WebGL.SYNC_CONDITION*/get SYNC_CONDITION() {
      return 37139;
    },
    /*web_gl.WebGL.SYNC_FENCE*/get SYNC_FENCE() {
      return 37142;
    },
    /*web_gl.WebGL.SYNC_FLAGS*/get SYNC_FLAGS() {
      return 37141;
    },
    /*web_gl.WebGL.SYNC_FLUSH_COMMANDS_BIT*/get SYNC_FLUSH_COMMANDS_BIT() {
      return 1;
    },
    /*web_gl.WebGL.SYNC_GPU_COMMANDS_COMPLETE*/get SYNC_GPU_COMMANDS_COMPLETE() {
      return 37143;
    },
    /*web_gl.WebGL.SYNC_STATUS*/get SYNC_STATUS() {
      return 37140;
    },
    /*web_gl.WebGL.TEXTURE*/get TEXTURE() {
      return 5890;
    },
    /*web_gl.WebGL.TEXTURE0*/get TEXTURE0() {
      return 33984;
    },
    /*web_gl.WebGL.TEXTURE1*/get TEXTURE1() {
      return 33985;
    },
    /*web_gl.WebGL.TEXTURE10*/get TEXTURE10() {
      return 33994;
    },
    /*web_gl.WebGL.TEXTURE11*/get TEXTURE11() {
      return 33995;
    },
    /*web_gl.WebGL.TEXTURE12*/get TEXTURE12() {
      return 33996;
    },
    /*web_gl.WebGL.TEXTURE13*/get TEXTURE13() {
      return 33997;
    },
    /*web_gl.WebGL.TEXTURE14*/get TEXTURE14() {
      return 33998;
    },
    /*web_gl.WebGL.TEXTURE15*/get TEXTURE15() {
      return 33999;
    },
    /*web_gl.WebGL.TEXTURE16*/get TEXTURE16() {
      return 34000;
    },
    /*web_gl.WebGL.TEXTURE17*/get TEXTURE17() {
      return 34001;
    },
    /*web_gl.WebGL.TEXTURE18*/get TEXTURE18() {
      return 34002;
    },
    /*web_gl.WebGL.TEXTURE19*/get TEXTURE19() {
      return 34003;
    },
    /*web_gl.WebGL.TEXTURE2*/get TEXTURE2() {
      return 33986;
    },
    /*web_gl.WebGL.TEXTURE20*/get TEXTURE20() {
      return 34004;
    },
    /*web_gl.WebGL.TEXTURE21*/get TEXTURE21() {
      return 34005;
    },
    /*web_gl.WebGL.TEXTURE22*/get TEXTURE22() {
      return 34006;
    },
    /*web_gl.WebGL.TEXTURE23*/get TEXTURE23() {
      return 34007;
    },
    /*web_gl.WebGL.TEXTURE24*/get TEXTURE24() {
      return 34008;
    },
    /*web_gl.WebGL.TEXTURE25*/get TEXTURE25() {
      return 34009;
    },
    /*web_gl.WebGL.TEXTURE26*/get TEXTURE26() {
      return 34010;
    },
    /*web_gl.WebGL.TEXTURE27*/get TEXTURE27() {
      return 34011;
    },
    /*web_gl.WebGL.TEXTURE28*/get TEXTURE28() {
      return 34012;
    },
    /*web_gl.WebGL.TEXTURE29*/get TEXTURE29() {
      return 34013;
    },
    /*web_gl.WebGL.TEXTURE3*/get TEXTURE3() {
      return 33987;
    },
    /*web_gl.WebGL.TEXTURE30*/get TEXTURE30() {
      return 34014;
    },
    /*web_gl.WebGL.TEXTURE31*/get TEXTURE31() {
      return 34015;
    },
    /*web_gl.WebGL.TEXTURE4*/get TEXTURE4() {
      return 33988;
    },
    /*web_gl.WebGL.TEXTURE5*/get TEXTURE5() {
      return 33989;
    },
    /*web_gl.WebGL.TEXTURE6*/get TEXTURE6() {
      return 33990;
    },
    /*web_gl.WebGL.TEXTURE7*/get TEXTURE7() {
      return 33991;
    },
    /*web_gl.WebGL.TEXTURE8*/get TEXTURE8() {
      return 33992;
    },
    /*web_gl.WebGL.TEXTURE9*/get TEXTURE9() {
      return 33993;
    },
    /*web_gl.WebGL.TEXTURE_2D*/get TEXTURE_2D() {
      return 3553;
    },
    /*web_gl.WebGL.TEXTURE_2D_ARRAY*/get TEXTURE_2D_ARRAY() {
      return 35866;
    },
    /*web_gl.WebGL.TEXTURE_3D*/get TEXTURE_3D() {
      return 32879;
    },
    /*web_gl.WebGL.TEXTURE_BASE_LEVEL*/get TEXTURE_BASE_LEVEL() {
      return 33084;
    },
    /*web_gl.WebGL.TEXTURE_BINDING_2D*/get TEXTURE_BINDING_2D() {
      return 32873;
    },
    /*web_gl.WebGL.TEXTURE_BINDING_2D_ARRAY*/get TEXTURE_BINDING_2D_ARRAY() {
      return 35869;
    },
    /*web_gl.WebGL.TEXTURE_BINDING_3D*/get TEXTURE_BINDING_3D() {
      return 32874;
    },
    /*web_gl.WebGL.TEXTURE_BINDING_CUBE_MAP*/get TEXTURE_BINDING_CUBE_MAP() {
      return 34068;
    },
    /*web_gl.WebGL.TEXTURE_COMPARE_FUNC*/get TEXTURE_COMPARE_FUNC() {
      return 34893;
    },
    /*web_gl.WebGL.TEXTURE_COMPARE_MODE*/get TEXTURE_COMPARE_MODE() {
      return 34892;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP*/get TEXTURE_CUBE_MAP() {
      return 34067;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_X*/get TEXTURE_CUBE_MAP_NEGATIVE_X() {
      return 34070;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_Y*/get TEXTURE_CUBE_MAP_NEGATIVE_Y() {
      return 34072;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_Z*/get TEXTURE_CUBE_MAP_NEGATIVE_Z() {
      return 34074;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_X*/get TEXTURE_CUBE_MAP_POSITIVE_X() {
      return 34069;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_Y*/get TEXTURE_CUBE_MAP_POSITIVE_Y() {
      return 34071;
    },
    /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_Z*/get TEXTURE_CUBE_MAP_POSITIVE_Z() {
      return 34073;
    },
    /*web_gl.WebGL.TEXTURE_IMMUTABLE_FORMAT*/get TEXTURE_IMMUTABLE_FORMAT() {
      return 37167;
    },
    /*web_gl.WebGL.TEXTURE_IMMUTABLE_LEVELS*/get TEXTURE_IMMUTABLE_LEVELS() {
      return 33503;
    },
    /*web_gl.WebGL.TEXTURE_MAG_FILTER*/get TEXTURE_MAG_FILTER() {
      return 10240;
    },
    /*web_gl.WebGL.TEXTURE_MAX_LEVEL*/get TEXTURE_MAX_LEVEL() {
      return 33085;
    },
    /*web_gl.WebGL.TEXTURE_MAX_LOD*/get TEXTURE_MAX_LOD() {
      return 33083;
    },
    /*web_gl.WebGL.TEXTURE_MIN_FILTER*/get TEXTURE_MIN_FILTER() {
      return 10241;
    },
    /*web_gl.WebGL.TEXTURE_MIN_LOD*/get TEXTURE_MIN_LOD() {
      return 33082;
    },
    /*web_gl.WebGL.TEXTURE_WRAP_R*/get TEXTURE_WRAP_R() {
      return 32882;
    },
    /*web_gl.WebGL.TEXTURE_WRAP_S*/get TEXTURE_WRAP_S() {
      return 10242;
    },
    /*web_gl.WebGL.TEXTURE_WRAP_T*/get TEXTURE_WRAP_T() {
      return 10243;
    },
    /*web_gl.WebGL.TIMEOUT_EXPIRED*/get TIMEOUT_EXPIRED() {
      return 37147;
    },
    /*web_gl.WebGL.TIMEOUT_IGNORED*/get TIMEOUT_IGNORED() {
      return -1;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK*/get TRANSFORM_FEEDBACK() {
      return 36386;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_ACTIVE*/get TRANSFORM_FEEDBACK_ACTIVE() {
      return 36388;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BINDING*/get TRANSFORM_FEEDBACK_BINDING() {
      return 36389;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER*/get TRANSFORM_FEEDBACK_BUFFER() {
      return 35982;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_BINDING*/get TRANSFORM_FEEDBACK_BUFFER_BINDING() {
      return 35983;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_MODE*/get TRANSFORM_FEEDBACK_BUFFER_MODE() {
      return 35967;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_SIZE*/get TRANSFORM_FEEDBACK_BUFFER_SIZE() {
      return 35973;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_START*/get TRANSFORM_FEEDBACK_BUFFER_START() {
      return 35972;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_PAUSED*/get TRANSFORM_FEEDBACK_PAUSED() {
      return 36387;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN*/get TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN() {
      return 35976;
    },
    /*web_gl.WebGL.TRANSFORM_FEEDBACK_VARYINGS*/get TRANSFORM_FEEDBACK_VARYINGS() {
      return 35971;
    },
    /*web_gl.WebGL.TRIANGLES*/get TRIANGLES() {
      return 4;
    },
    /*web_gl.WebGL.TRIANGLE_FAN*/get TRIANGLE_FAN() {
      return 6;
    },
    /*web_gl.WebGL.TRIANGLE_STRIP*/get TRIANGLE_STRIP() {
      return 5;
    },
    /*web_gl.WebGL.UNIFORM_ARRAY_STRIDE*/get UNIFORM_ARRAY_STRIDE() {
      return 35388;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_ACTIVE_UNIFORMS*/get UNIFORM_BLOCK_ACTIVE_UNIFORMS() {
      return 35394;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES*/get UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES() {
      return 35395;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_BINDING*/get UNIFORM_BLOCK_BINDING() {
      return 35391;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_DATA_SIZE*/get UNIFORM_BLOCK_DATA_SIZE() {
      return 35392;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_INDEX*/get UNIFORM_BLOCK_INDEX() {
      return 35386;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER*/get UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER() {
      return 35398;
    },
    /*web_gl.WebGL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER*/get UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER() {
      return 35396;
    },
    /*web_gl.WebGL.UNIFORM_BUFFER*/get UNIFORM_BUFFER() {
      return 35345;
    },
    /*web_gl.WebGL.UNIFORM_BUFFER_BINDING*/get UNIFORM_BUFFER_BINDING() {
      return 35368;
    },
    /*web_gl.WebGL.UNIFORM_BUFFER_OFFSET_ALIGNMENT*/get UNIFORM_BUFFER_OFFSET_ALIGNMENT() {
      return 35380;
    },
    /*web_gl.WebGL.UNIFORM_BUFFER_SIZE*/get UNIFORM_BUFFER_SIZE() {
      return 35370;
    },
    /*web_gl.WebGL.UNIFORM_BUFFER_START*/get UNIFORM_BUFFER_START() {
      return 35369;
    },
    /*web_gl.WebGL.UNIFORM_IS_ROW_MAJOR*/get UNIFORM_IS_ROW_MAJOR() {
      return 35390;
    },
    /*web_gl.WebGL.UNIFORM_MATRIX_STRIDE*/get UNIFORM_MATRIX_STRIDE() {
      return 35389;
    },
    /*web_gl.WebGL.UNIFORM_OFFSET*/get UNIFORM_OFFSET() {
      return 35387;
    },
    /*web_gl.WebGL.UNIFORM_SIZE*/get UNIFORM_SIZE() {
      return 35384;
    },
    /*web_gl.WebGL.UNIFORM_TYPE*/get UNIFORM_TYPE() {
      return 35383;
    },
    /*web_gl.WebGL.UNPACK_ALIGNMENT*/get UNPACK_ALIGNMENT() {
      return 3317;
    },
    /*web_gl.WebGL.UNPACK_COLORSPACE_CONVERSION_WEBGL*/get UNPACK_COLORSPACE_CONVERSION_WEBGL() {
      return 37443;
    },
    /*web_gl.WebGL.UNPACK_FLIP_Y_WEBGL*/get UNPACK_FLIP_Y_WEBGL() {
      return 37440;
    },
    /*web_gl.WebGL.UNPACK_IMAGE_HEIGHT*/get UNPACK_IMAGE_HEIGHT() {
      return 32878;
    },
    /*web_gl.WebGL.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/get UNPACK_PREMULTIPLY_ALPHA_WEBGL() {
      return 37441;
    },
    /*web_gl.WebGL.UNPACK_ROW_LENGTH*/get UNPACK_ROW_LENGTH() {
      return 3314;
    },
    /*web_gl.WebGL.UNPACK_SKIP_IMAGES*/get UNPACK_SKIP_IMAGES() {
      return 32877;
    },
    /*web_gl.WebGL.UNPACK_SKIP_PIXELS*/get UNPACK_SKIP_PIXELS() {
      return 3316;
    },
    /*web_gl.WebGL.UNPACK_SKIP_ROWS*/get UNPACK_SKIP_ROWS() {
      return 3315;
    },
    /*web_gl.WebGL.UNSIGNALED*/get UNSIGNALED() {
      return 37144;
    },
    /*web_gl.WebGL.UNSIGNED_BYTE*/get UNSIGNED_BYTE() {
      return 5121;
    },
    /*web_gl.WebGL.UNSIGNED_INT*/get UNSIGNED_INT() {
      return 5125;
    },
    /*web_gl.WebGL.UNSIGNED_INT_10F_11F_11F_REV*/get UNSIGNED_INT_10F_11F_11F_REV() {
      return 35899;
    },
    /*web_gl.WebGL.UNSIGNED_INT_24_8*/get UNSIGNED_INT_24_8() {
      return 34042;
    },
    /*web_gl.WebGL.UNSIGNED_INT_2_10_10_10_REV*/get UNSIGNED_INT_2_10_10_10_REV() {
      return 33640;
    },
    /*web_gl.WebGL.UNSIGNED_INT_5_9_9_9_REV*/get UNSIGNED_INT_5_9_9_9_REV() {
      return 35902;
    },
    /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_2D*/get UNSIGNED_INT_SAMPLER_2D() {
      return 36306;
    },
    /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_2D_ARRAY*/get UNSIGNED_INT_SAMPLER_2D_ARRAY() {
      return 36311;
    },
    /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_3D*/get UNSIGNED_INT_SAMPLER_3D() {
      return 36307;
    },
    /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_CUBE*/get UNSIGNED_INT_SAMPLER_CUBE() {
      return 36308;
    },
    /*web_gl.WebGL.UNSIGNED_INT_VEC2*/get UNSIGNED_INT_VEC2() {
      return 36294;
    },
    /*web_gl.WebGL.UNSIGNED_INT_VEC3*/get UNSIGNED_INT_VEC3() {
      return 36295;
    },
    /*web_gl.WebGL.UNSIGNED_INT_VEC4*/get UNSIGNED_INT_VEC4() {
      return 36296;
    },
    /*web_gl.WebGL.UNSIGNED_NORMALIZED*/get UNSIGNED_NORMALIZED() {
      return 35863;
    },
    /*web_gl.WebGL.UNSIGNED_SHORT*/get UNSIGNED_SHORT() {
      return 5123;
    },
    /*web_gl.WebGL.UNSIGNED_SHORT_4_4_4_4*/get UNSIGNED_SHORT_4_4_4_4() {
      return 32819;
    },
    /*web_gl.WebGL.UNSIGNED_SHORT_5_5_5_1*/get UNSIGNED_SHORT_5_5_5_1() {
      return 32820;
    },
    /*web_gl.WebGL.UNSIGNED_SHORT_5_6_5*/get UNSIGNED_SHORT_5_6_5() {
      return 33635;
    },
    /*web_gl.WebGL.VALIDATE_STATUS*/get VALIDATE_STATUS() {
      return 35715;
    },
    /*web_gl.WebGL.VENDOR*/get VENDOR() {
      return 7936;
    },
    /*web_gl.WebGL.VERSION*/get VERSION() {
      return 7938;
    },
    /*web_gl.WebGL.VERTEX_ARRAY_BINDING*/get VERTEX_ARRAY_BINDING() {
      return 34229;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/get VERTEX_ATTRIB_ARRAY_BUFFER_BINDING() {
      return 34975;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_DIVISOR*/get VERTEX_ATTRIB_ARRAY_DIVISOR() {
      return 35070;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_ENABLED*/get VERTEX_ATTRIB_ARRAY_ENABLED() {
      return 34338;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_INTEGER*/get VERTEX_ATTRIB_ARRAY_INTEGER() {
      return 35069;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_NORMALIZED*/get VERTEX_ATTRIB_ARRAY_NORMALIZED() {
      return 34922;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_POINTER*/get VERTEX_ATTRIB_ARRAY_POINTER() {
      return 34373;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_SIZE*/get VERTEX_ATTRIB_ARRAY_SIZE() {
      return 34339;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_STRIDE*/get VERTEX_ATTRIB_ARRAY_STRIDE() {
      return 34340;
    },
    /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_TYPE*/get VERTEX_ATTRIB_ARRAY_TYPE() {
      return 34341;
    },
    /*web_gl.WebGL.VERTEX_SHADER*/get VERTEX_SHADER() {
      return 35633;
    },
    /*web_gl.WebGL.VIEWPORT*/get VIEWPORT() {
      return 2978;
    },
    /*web_gl.WebGL.WAIT_FAILED*/get WAIT_FAILED() {
      return 37149;
    },
    /*web_gl.WebGL.ZERO*/get ZERO() {
      return 0;
    }
  }, false);
  dart.registerExtension("WebGL", web_gl.WebGL);
  web_gl._WebGL2RenderingContextBase = class _WebGL2RenderingContextBase extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl._WebGL2RenderingContextBase);
  dart.addTypeCaches(web_gl._WebGL2RenderingContextBase);
  web_gl._WebGL2RenderingContextBase[dart.implements] = () => [web_gl._WebGLRenderingContextBase];
  dart.setLibraryUri(web_gl._WebGL2RenderingContextBase, I[160]);
  dart.registerExtension("WebGL2RenderingContextBase", web_gl._WebGL2RenderingContextBase);
  web_gl._WebGLRenderingContextBase = class _WebGLRenderingContextBase extends _interceptors.Interceptor {};
  dart.addTypeTests(web_gl._WebGLRenderingContextBase);
  dart.addTypeCaches(web_gl._WebGLRenderingContextBase);
  dart.setLibraryUri(web_gl._WebGLRenderingContextBase, I[160]);
  web_sql.SqlDatabase = class SqlDatabase extends _interceptors.Interceptor {
    static get supported() {
      return !!window.openDatabase;
    }
    get [S.$version]() {
      return this.version;
    }
    [S$4._changeVersion](...args) {
      return this.changeVersion.apply(this, args);
    }
    [S$4.$changeVersion](oldVersion, newVersion) {
      if (oldVersion == null) dart.nullFailed(I[162], 119, 47, "oldVersion");
      if (newVersion == null) dart.nullFailed(I[162], 119, 66, "newVersion");
      let completer = T$0.CompleterOfSqlTransaction().new();
      this[S$4._changeVersion](oldVersion, newVersion, dart.fn(value => {
        if (value == null) dart.nullFailed(I[162], 121, 45, "value");
        completer.complete(value);
      }, T$0.SqlTransactionTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[162], 123, 9, "error");
        completer.completeError(error);
      }, T$0.SqlErrorTovoid()));
      return completer.future;
    }
    [S$4._readTransaction](...args) {
      return this.readTransaction.apply(this, args);
    }
    [S$4.$readTransaction]() {
      let completer = T$0.CompleterOfSqlTransaction().new();
      this[S$4._readTransaction](dart.fn(value => {
        if (value == null) dart.nullFailed(I[162], 137, 23, "value");
        completer.complete(value);
      }, T$0.SqlTransactionTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[162], 139, 9, "error");
        completer.completeError(error);
      }, T$0.SqlErrorTovoid()));
      return completer.future;
    }
    [S.$transaction](...args) {
      return this.transaction.apply(this, args);
    }
    [S$4.$transaction_future]() {
      let completer = T$0.CompleterOfSqlTransaction().new();
      this.transaction(dart.fn(value => {
        if (value == null) dart.nullFailed(I[162], 152, 18, "value");
        _js_helper.applyExtension("SQLTransaction", value);
        completer.complete(value);
      }, T$0.SqlTransactionTovoid()), dart.fn(error => {
        if (error == null) dart.nullFailed(I[162], 155, 9, "error");
        completer.completeError(error);
      }, T$0.SqlErrorTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(web_sql.SqlDatabase);
  dart.addTypeCaches(web_sql.SqlDatabase);
  dart.setMethodSignature(web_sql.SqlDatabase, () => ({
    __proto__: dart.getMethods(web_sql.SqlDatabase.__proto__),
    [S$4._changeVersion]: dart.fnType(dart.void, [core.String, core.String], [dart.nullable(dart.fnType(dart.void, [web_sql.SqlTransaction])), dart.nullable(dart.fnType(dart.void, [web_sql.SqlError])), dart.nullable(dart.fnType(dart.void, []))]),
    [S$4.$changeVersion]: dart.fnType(async.Future$(web_sql.SqlTransaction), [core.String, core.String]),
    [S$4._readTransaction]: dart.fnType(dart.void, [dart.fnType(dart.void, [web_sql.SqlTransaction])], [dart.nullable(dart.fnType(dart.void, [web_sql.SqlError])), dart.nullable(dart.fnType(dart.void, []))]),
    [S$4.$readTransaction]: dart.fnType(async.Future$(web_sql.SqlTransaction), []),
    [S.$transaction]: dart.fnType(dart.void, [dart.fnType(dart.void, [web_sql.SqlTransaction])], [dart.nullable(dart.fnType(dart.void, [web_sql.SqlError])), dart.nullable(dart.fnType(dart.void, []))]),
    [S$4.$transaction_future]: dart.fnType(async.Future$(web_sql.SqlTransaction), [])
  }));
  dart.setGetterSignature(web_sql.SqlDatabase, () => ({
    __proto__: dart.getGetters(web_sql.SqlDatabase.__proto__),
    [S.$version]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_sql.SqlDatabase, I[163]);
  dart.registerExtension("Database", web_sql.SqlDatabase);
  web_sql.SqlError = class SqlError extends _interceptors.Interceptor {
    get [S$.$code]() {
      return this.code;
    }
    get [$message]() {
      return this.message;
    }
  };
  dart.addTypeTests(web_sql.SqlError);
  dart.addTypeCaches(web_sql.SqlError);
  dart.setGetterSignature(web_sql.SqlError, () => ({
    __proto__: dart.getGetters(web_sql.SqlError.__proto__),
    [S$.$code]: dart.nullable(core.int),
    [$message]: dart.nullable(core.String)
  }));
  dart.setLibraryUri(web_sql.SqlError, I[163]);
  dart.defineLazy(web_sql.SqlError, {
    /*web_sql.SqlError.CONSTRAINT_ERR*/get CONSTRAINT_ERR() {
      return 6;
    },
    /*web_sql.SqlError.DATABASE_ERR*/get DATABASE_ERR() {
      return 1;
    },
    /*web_sql.SqlError.QUOTA_ERR*/get QUOTA_ERR() {
      return 4;
    },
    /*web_sql.SqlError.SYNTAX_ERR*/get SYNTAX_ERR() {
      return 5;
    },
    /*web_sql.SqlError.TIMEOUT_ERR*/get TIMEOUT_ERR() {
      return 7;
    },
    /*web_sql.SqlError.TOO_LARGE_ERR*/get TOO_LARGE_ERR() {
      return 3;
    },
    /*web_sql.SqlError.UNKNOWN_ERR*/get UNKNOWN_ERR() {
      return 0;
    },
    /*web_sql.SqlError.VERSION_ERR*/get VERSION_ERR() {
      return 2;
    }
  }, false);
  dart.registerExtension("SQLError", web_sql.SqlError);
  web_sql.SqlResultSet = class SqlResultSet extends _interceptors.Interceptor {
    get [S$4.$insertId]() {
      return this.insertId;
    }
    get [S$2.$rows]() {
      return this.rows;
    }
    get [S$4.$rowsAffected]() {
      return this.rowsAffected;
    }
  };
  dart.addTypeTests(web_sql.SqlResultSet);
  dart.addTypeCaches(web_sql.SqlResultSet);
  dart.setGetterSignature(web_sql.SqlResultSet, () => ({
    __proto__: dart.getGetters(web_sql.SqlResultSet.__proto__),
    [S$4.$insertId]: dart.nullable(core.int),
    [S$2.$rows]: dart.nullable(web_sql.SqlResultSetRowList),
    [S$4.$rowsAffected]: dart.nullable(core.int)
  }));
  dart.setLibraryUri(web_sql.SqlResultSet, I[163]);
  dart.registerExtension("SQLResultSet", web_sql.SqlResultSet);
  core.Map$ = dart.generic((K, V) => {
    class Map extends core.Object {
      static unmodifiable(other) {
        if (other == null) dart.nullFailed(I[7], 562, 50, "other");
        return new (collection.UnmodifiableMapView$(K, V)).new(collection.LinkedHashMap$(K, V).from(other));
      }
      static castFrom(K, V, K2, V2, source) {
        if (source == null) dart.nullFailed(I[164], 166, 55, "source");
        return new (_internal.CastMap$(K, V, K2, V2)).new(source);
      }
      static fromEntries(entries) {
        let t247;
        if (entries == null) dart.nullFailed(I[164], 181, 52, "entries");
        t247 = new (_js_helper.LinkedMap$(K, V)).new();
        return (() => {
          t247[$addEntries](entries);
          return t247;
        })();
      }
    }
    (Map[dart.mixinNew] = function() {
    }).prototype = Map.prototype;
    dart.addTypeTests(Map);
    Map.prototype[dart.isMap] = true;
    dart.addTypeCaches(Map);
    dart.setLibraryUri(Map, I[8]);
    return Map;
  });
  core.Map = core.Map$();
  dart.addTypeTests(core.Map, dart.isMap);
  const Interceptor_ListMixin$36$17 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
  (Interceptor_ListMixin$36$17.new = function() {
    Interceptor_ListMixin$36$17.__proto__.new.call(this);
  }).prototype = Interceptor_ListMixin$36$17.prototype;
  dart.applyMixin(Interceptor_ListMixin$36$17, collection.ListMixin$(core.Map));
  const Interceptor_ImmutableListMixin$36$17 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$17 {};
  (Interceptor_ImmutableListMixin$36$17.new = function() {
    Interceptor_ImmutableListMixin$36$17.__proto__.new.call(this);
  }).prototype = Interceptor_ImmutableListMixin$36$17.prototype;
  dart.applyMixin(Interceptor_ImmutableListMixin$36$17, html$.ImmutableListMixin$(core.Map));
  web_sql.SqlResultSetRowList = class SqlResultSetRowList extends Interceptor_ImmutableListMixin$36$17 {
    get [$length]() {
      return this.length;
    }
    [$_get](index) {
      if (index == null) dart.nullFailed(I[162], 224, 23, "index");
      if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
      return dart.nullCheck(this[S$.$item](index));
    }
    [$_set](index, value$) {
      let value = value$;
      if (index == null) dart.nullFailed(I[162], 230, 25, "index");
      core.Map.as(value);
      if (value == null) dart.nullFailed(I[162], 230, 36, "value");
      dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
      return value$;
    }
    set [$length](value) {
      if (value == null) dart.nullFailed(I[162], 236, 18, "value");
      dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
    }
    get [$first]() {
      if (dart.notNull(this[$length]) > 0) {
        return this[0];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$first](value) {
      super[$first] = value;
    }
    get [$last]() {
      let len = this[$length];
      if (dart.notNull(len) > 0) {
        return this[dart.notNull(len) - 1];
      }
      dart.throw(new core.StateError.new("No elements"));
    }
    set [$last](value) {
      super[$last] = value;
    }
    get [$single]() {
      let len = this[$length];
      if (len === 1) {
        return this[0];
      }
      if (len === 0) dart.throw(new core.StateError.new("No elements"));
      dart.throw(new core.StateError.new("More than one element"));
    }
    [$elementAt](index) {
      if (index == null) dart.nullFailed(I[162], 264, 21, "index");
      return this[$_get](index);
    }
    [S$.$item](index) {
      if (index == null) dart.nullFailed(I[162], 267, 17, "index");
      return html_common.convertNativeToDart_Dictionary(this[S$4._item_1](index));
    }
    [S$4._item_1](...args) {
      return this.item.apply(this, args);
    }
  };
  web_sql.SqlResultSetRowList.prototype[dart.isList] = true;
  dart.addTypeTests(web_sql.SqlResultSetRowList);
  dart.addTypeCaches(web_sql.SqlResultSetRowList);
  web_sql.SqlResultSetRowList[dart.implements] = () => [core.List$(core.Map)];
  dart.setMethodSignature(web_sql.SqlResultSetRowList, () => ({
    __proto__: dart.getMethods(web_sql.SqlResultSetRowList.__proto__),
    [$_get]: dart.fnType(core.Map, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, dart.nullable(core.Object)]),
    [S$.$item]: dart.fnType(dart.nullable(core.Map), [core.int]),
    [S$4._item_1]: dart.fnType(dart.dynamic, [dart.dynamic])
  }));
  dart.setGetterSignature(web_sql.SqlResultSetRowList, () => ({
    __proto__: dart.getGetters(web_sql.SqlResultSetRowList.__proto__),
    [$length]: core.int
  }));
  dart.setSetterSignature(web_sql.SqlResultSetRowList, () => ({
    __proto__: dart.getSetters(web_sql.SqlResultSetRowList.__proto__),
    [$length]: core.int
  }));
  dart.setLibraryUri(web_sql.SqlResultSetRowList, I[163]);
  dart.registerExtension("SQLResultSetRowList", web_sql.SqlResultSetRowList);
  web_sql.SqlTransaction = class SqlTransaction extends _interceptors.Interceptor {
    [S$4._executeSql](...args) {
      return this.executeSql.apply(this, args);
    }
    [S$4.$executeSql](sqlStatement, $arguments = null) {
      if (sqlStatement == null) dart.nullFailed(I[162], 296, 42, "sqlStatement");
      let completer = T$0.CompleterOfSqlResultSet().new();
      this[S$4._executeSql](sqlStatement, $arguments, dart.fn((transaction, resultSet) => {
        if (transaction == null) dart.nullFailed(I[162], 298, 43, "transaction");
        if (resultSet == null) dart.nullFailed(I[162], 298, 56, "resultSet");
        _js_helper.applyExtension("SQLResultSet", resultSet);
        _js_helper.applyExtension("SQLResultSetRowList", resultSet.rows);
        completer.complete(resultSet);
      }, T$0.SqlTransactionAndSqlResultSetTovoid()), dart.fn((transaction, error) => {
        if (transaction == null) dart.nullFailed(I[162], 302, 9, "transaction");
        if (error == null) dart.nullFailed(I[162], 302, 22, "error");
        completer.completeError(error);
      }, T$0.SqlTransactionAndSqlErrorTovoid()));
      return completer.future;
    }
  };
  dart.addTypeTests(web_sql.SqlTransaction);
  dart.addTypeCaches(web_sql.SqlTransaction);
  dart.setMethodSignature(web_sql.SqlTransaction, () => ({
    __proto__: dart.getMethods(web_sql.SqlTransaction.__proto__),
    [S$4._executeSql]: dart.fnType(dart.void, [core.String], [dart.nullable(core.List), dart.nullable(dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlResultSet])), dart.nullable(dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlError]))]),
    [S$4.$executeSql]: dart.fnType(async.Future$(web_sql.SqlResultSet), [core.String], [dart.nullable(core.List)])
  }));
  dart.setLibraryUri(web_sql.SqlTransaction, I[163]);
  dart.registerExtension("SQLTransaction", web_sql.SqlTransaction);
  var _errorMsg$ = dart.privateName(core, "_errorMsg");
  core._CompileTimeError = class _CompileTimeError extends core.Error {
    toString() {
      return this[_errorMsg$];
    }
  };
  (core._CompileTimeError.new = function(_errorMsg) {
    if (_errorMsg == null) dart.nullFailed(I[7], 776, 26, "_errorMsg");
    this[_errorMsg$] = _errorMsg;
    core._CompileTimeError.__proto__.new.call(this);
    ;
  }).prototype = core._CompileTimeError.prototype;
  dart.addTypeTests(core._CompileTimeError);
  dart.addTypeCaches(core._CompileTimeError);
  dart.setLibraryUri(core._CompileTimeError, I[8]);
  dart.setFieldSignature(core._CompileTimeError, () => ({
    __proto__: dart.getFields(core._CompileTimeError.__proto__),
    [_errorMsg$]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core._CompileTimeError, ['toString']);
  var _name$6 = dart.privateName(core, "_name");
  core._DuplicatedFieldInitializerError = class _DuplicatedFieldInitializerError extends core.Object {
    toString() {
      return "Error: field '" + dart.str(this[_name$6]) + "' is already initialized.";
    }
  };
  (core._DuplicatedFieldInitializerError.new = function(_name) {
    if (_name == null) dart.nullFailed(I[7], 918, 41, "_name");
    this[_name$6] = _name;
    ;
  }).prototype = core._DuplicatedFieldInitializerError.prototype;
  dart.addTypeTests(core._DuplicatedFieldInitializerError);
  dart.addTypeCaches(core._DuplicatedFieldInitializerError);
  dart.setLibraryUri(core._DuplicatedFieldInitializerError, I[8]);
  dart.setFieldSignature(core._DuplicatedFieldInitializerError, () => ({
    __proto__: dart.getFields(core._DuplicatedFieldInitializerError.__proto__),
    [_name$6]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core._DuplicatedFieldInitializerError, ['toString']);
  var _used$ = dart.privateName(core, "_used");
  var _digits$ = dart.privateName(core, "_digits");
  var _isNegative = dart.privateName(core, "_isNegative");
  var _isZero = dart.privateName(core, "_isZero");
  var _dlShift = dart.privateName(core, "_dlShift");
  var _drShift = dart.privateName(core, "_drShift");
  var _absCompare = dart.privateName(core, "_absCompare");
  var _absAddSetSign = dart.privateName(core, "_absAddSetSign");
  var _absSubSetSign = dart.privateName(core, "_absSubSetSign");
  var _absAndSetSign = dart.privateName(core, "_absAndSetSign");
  var _absAndNotSetSign = dart.privateName(core, "_absAndNotSetSign");
  var _absOrSetSign = dart.privateName(core, "_absOrSetSign");
  var _absXorSetSign = dart.privateName(core, "_absXorSetSign");
  var _divRem = dart.privateName(core, "_divRem");
  var _div = dart.privateName(core, "_div");
  var _rem = dart.privateName(core, "_rem");
  var _toRadixCodeUnit = dart.privateName(core, "_toRadixCodeUnit");
  var _toHexString = dart.privateName(core, "_toHexString");
  core._BigIntImpl = class _BigIntImpl extends core.Object {
    static parse(source, opts) {
      if (source == null) dart.nullFailed(I[7], 1044, 35, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      let result = core._BigIntImpl._tryParse(source, {radix: radix});
      if (result == null) {
        dart.throw(new core.FormatException.new("Could not parse BigInt", source));
      }
      return result;
    }
    static _parseDecimal(source, isNegative) {
      if (source == null) dart.nullFailed(I[7], 1055, 43, "source");
      if (isNegative == null) dart.nullFailed(I[7], 1055, 56, "isNegative");
      let part = 0;
      let result = core._BigIntImpl.zero;
      let digitInPartCount = 4 - source.length[$remainder](4);
      if (digitInPartCount === 4) digitInPartCount = 0;
      for (let i = 0; i < source.length; i = i + 1) {
        part = part * 10 + source[$codeUnitAt](i) - 48;
        if ((digitInPartCount = digitInPartCount + 1) === 4) {
          result = result['*'](core._BigIntImpl._bigInt10000)['+'](core._BigIntImpl._fromInt(part));
          part = 0;
          digitInPartCount = 0;
        }
      }
      if (dart.test(isNegative)) return result._negate();
      return result;
    }
    static _codeUnitToRadixValue(codeUnit) {
      if (codeUnit == null) dart.nullFailed(I[7], 1085, 40, "codeUnit");
      if (48 <= dart.notNull(codeUnit) && dart.notNull(codeUnit) <= 57) return dart.notNull(codeUnit) - 48;
      codeUnit = (dart.notNull(codeUnit) | 32) >>> 0;
      let result = dart.notNull(codeUnit) - 97 + 10;
      return result;
    }
    static _parseHex(source, startPos, isNegative) {
      let t247, t247$, t247$0, t247$1;
      if (source == null) dart.nullFailed(I[7], 1105, 40, "source");
      if (startPos == null) dart.nullFailed(I[7], 1105, 52, "startPos");
      if (isNegative == null) dart.nullFailed(I[7], 1105, 67, "isNegative");
      let hexDigitsPerChunk = (16 / 4)[$truncate]();
      let sourceLength = source.length - dart.notNull(startPos);
      let chunkCount = (sourceLength / hexDigitsPerChunk)[$ceil]();
      let digits = _native_typed_data.NativeUint16List.new(chunkCount);
      let lastDigitLength = sourceLength - (chunkCount - 1) * hexDigitsPerChunk;
      let digitIndex = dart.notNull(digits[$length]) - 1;
      let i = startPos;
      let chunk = 0;
      for (let j = 0; j < lastDigitLength; j = j + 1) {
        let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt]((t247 = i, i = dart.notNull(t247) + 1, t247)));
        if (dart.notNull(digitValue) >= 16) return null;
        chunk = chunk * 16 + dart.notNull(digitValue);
      }
      digits[$_set]((t247$ = digitIndex, digitIndex = t247$ - 1, t247$), chunk);
      while (dart.notNull(i) < source.length) {
        chunk = 0;
        for (let j = 0; j < hexDigitsPerChunk; j = j + 1) {
          let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt]((t247$0 = i, i = dart.notNull(t247$0) + 1, t247$0)));
          if (dart.notNull(digitValue) >= 16) return null;
          chunk = chunk * 16 + dart.notNull(digitValue);
        }
        digits[$_set]((t247$1 = digitIndex, digitIndex = t247$1 - 1, t247$1), chunk);
      }
      if (digits[$length] === 1 && digits[$_get](0) === 0) return core._BigIntImpl.zero;
      return new core._BigIntImpl.__(isNegative, digits[$length], digits);
    }
    static _parseRadix(source, radix, isNegative) {
      if (source == null) dart.nullFailed(I[7], 1139, 42, "source");
      if (radix == null) dart.nullFailed(I[7], 1139, 54, "radix");
      if (isNegative == null) dart.nullFailed(I[7], 1139, 66, "isNegative");
      let result = core._BigIntImpl.zero;
      let base = core._BigIntImpl._fromInt(radix);
      for (let i = 0; i < source.length; i = i + 1) {
        let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt](i));
        if (dart.notNull(digitValue) >= dart.notNull(radix)) return null;
        result = result['*'](base)['+'](core._BigIntImpl._fromInt(digitValue));
      }
      if (dart.test(isNegative)) return result._negate();
      return result;
    }
    static _tryParse(source, opts) {
      let t247, t247$, t247$0;
      if (source == null) dart.nullFailed(I[7], 1156, 40, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      if (source === "") return null;
      let match = core._BigIntImpl._parseRE.firstMatch(source);
      let signIndex = 1;
      let hexIndex = 3;
      let decimalIndex = 4;
      let nonDecimalHexIndex = 5;
      if (match == null) return null;
      let isNegative = match._get(signIndex) === "-";
      let decimalMatch = match._get(decimalIndex);
      let hexMatch = match._get(hexIndex);
      let nonDecimalMatch = match._get(nonDecimalHexIndex);
      if (radix == null) {
        if (decimalMatch != null) {
          return core._BigIntImpl._parseDecimal(decimalMatch, isNegative);
        }
        if (hexMatch != null) {
          return core._BigIntImpl._parseHex(hexMatch, 2, isNegative);
        }
        return null;
      }
      if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
        dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
      }
      if (radix === 10 && decimalMatch != null) {
        return core._BigIntImpl._parseDecimal(decimalMatch, isNegative);
      }
      if (radix === 16 && (decimalMatch != null || nonDecimalMatch != null)) {
        return core._BigIntImpl._parseHex((t247 = decimalMatch, t247 == null ? dart.nullCheck(nonDecimalMatch) : t247), 0, isNegative);
      }
      return core._BigIntImpl._parseRadix((t247$0 = (t247$ = decimalMatch, t247$ == null ? nonDecimalMatch : t247$), t247$0 == null ? dart.nullCheck(hexMatch) : t247$0), radix, isNegative);
    }
    static _normalize(used, digits) {
      if (used == null) dart.nullFailed(I[7], 1203, 29, "used");
      if (digits == null) dart.nullFailed(I[7], 1203, 46, "digits");
      while (dart.notNull(used) > 0 && digits[$_get](dart.notNull(used) - 1) === 0)
        used = dart.notNull(used) - 1;
      return used;
    }
    get [_isZero]() {
      return this[_used$] === 0;
    }
    static _cloneDigits(digits, from, to, length) {
      if (digits == null) dart.nullFailed(I[7], 1224, 18, "digits");
      if (from == null) dart.nullFailed(I[7], 1224, 30, "from");
      if (to == null) dart.nullFailed(I[7], 1224, 40, "to");
      if (length == null) dart.nullFailed(I[7], 1224, 48, "length");
      let resultDigits = _native_typed_data.NativeUint16List.new(length);
      let n = dart.notNull(to) - dart.notNull(from);
      for (let i = 0; i < n; i = i + 1) {
        resultDigits[$_set](i, digits[$_get](dart.notNull(from) + i));
      }
      return resultDigits;
    }
    static from(value) {
      if (value == null) dart.nullFailed(I[7], 1234, 32, "value");
      if (value === 0) return core._BigIntImpl.zero;
      if (value === 1) return core._BigIntImpl.one;
      if (value === 2) return core._BigIntImpl.two;
      if (value[$abs]() < 4294967296) return core._BigIntImpl._fromInt(value[$toInt]());
      if (typeof value == 'number') return core._BigIntImpl._fromDouble(value);
      return core._BigIntImpl._fromInt(dart.asInt(value));
    }
    static _fromInt(value) {
      let t247;
      if (value == null) dart.nullFailed(I[7], 1246, 36, "value");
      let isNegative = dart.notNull(value) < 0;
      if (!(16 === 16)) dart.assertFailed(null, I[7], 1248, 12, "_digitBits == 16");
      if (isNegative) {
        if (value === -9223372036854776000.0) {
          let digits = _native_typed_data.NativeUint16List.new(4);
          digits[$_set](3, 32768);
          return new core._BigIntImpl.__(true, 4, digits);
        }
        value = -dart.notNull(value);
      }
      if (dart.notNull(value) < 65536) {
        let digits = _native_typed_data.NativeUint16List.new(1);
        digits[$_set](0, value);
        return new core._BigIntImpl.__(isNegative, 1, digits);
      }
      if (dart.notNull(value) <= 4294967295) {
        let digits = _native_typed_data.NativeUint16List.new(2);
        digits[$_set](0, (dart.notNull(value) & 65535) >>> 0);
        digits[$_set](1, value[$rightShift](16));
        return new core._BigIntImpl.__(isNegative, 2, digits);
      }
      let bits = value[$bitLength];
      let digits = _native_typed_data.NativeUint16List.new(((bits - 1) / 16)[$truncate]() + 1);
      let i = 0;
      while (value !== 0) {
        digits[$_set]((t247 = i, i = t247 + 1, t247), (dart.notNull(value) & 65535) >>> 0);
        value = (dart.notNull(value) / 65536)[$truncate]();
      }
      return new core._BigIntImpl.__(isNegative, digits[$length], digits);
    }
    static _fromDouble(value) {
      if (value == null) dart.nullFailed(I[7], 1286, 42, "value");
      if (value[$isNaN] || value[$isInfinite]) {
        dart.throw(new core.ArgumentError.new("Value must be finite: " + dart.str(value)));
      }
      let isNegative = dart.notNull(value) < 0;
      if (isNegative) value = -dart.notNull(value);
      value = value[$floorToDouble]();
      if (value === 0) return core._BigIntImpl.zero;
      let bits = core._BigIntImpl._bitsForFromDouble;
      for (let i = 0; i < 8; i = i + 1) {
        bits[$_set](i, 0);
      }
      bits[$buffer][$asByteData]()[$setFloat64](0, value, typed_data.Endian.little);
      let biasedExponent = (dart.notNull(bits[$_get](7)) << 4 >>> 0) + bits[$_get](6)[$rightShift](4);
      let exponent = biasedExponent - 1075;
      if (!(16 === 16)) dart.assertFailed(null, I[7], 1307, 12, "_digitBits == 16");
      let unshiftedDigits = _native_typed_data.NativeUint16List.new(4);
      unshiftedDigits[$_set](0, (dart.notNull(bits[$_get](1)) << 8 >>> 0) + dart.notNull(bits[$_get](0)));
      unshiftedDigits[$_set](1, (dart.notNull(bits[$_get](3)) << 8 >>> 0) + dart.notNull(bits[$_get](2)));
      unshiftedDigits[$_set](2, (dart.notNull(bits[$_get](5)) << 8 >>> 0) + dart.notNull(bits[$_get](4)));
      unshiftedDigits[$_set](3, 16 | dart.notNull(bits[$_get](6)) & 15);
      let unshiftedBig = new core._BigIntImpl._normalized(false, 4, unshiftedDigits);
      let absResult = unshiftedBig;
      if (exponent < 0) {
        absResult = unshiftedBig['>>'](-exponent);
      } else if (exponent > 0) {
        absResult = unshiftedBig['<<'](exponent);
      }
      if (isNegative) return absResult._negate();
      return absResult;
    }
    _negate() {
      if (this[_used$] === 0) return this;
      return new core._BigIntImpl.__(!dart.test(this[_isNegative]), this[_used$], this[_digits$]);
    }
    abs() {
      return dart.test(this[_isNegative]) ? this._negate() : this;
    }
    [_dlShift](n) {
      if (n == null) dart.nullFailed(I[7], 1346, 28, "n");
      let used = this[_used$];
      if (used === 0) {
        return core._BigIntImpl.zero;
      }
      let resultUsed = dart.notNull(used) + dart.notNull(n);
      let digits = this[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      for (let i = dart.notNull(used) - 1; i >= 0; i = i - 1) {
        resultDigits[$_set](i + dart.notNull(n), digits[$_get](i));
      }
      return new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
    }
    static _dlShiftDigits(xDigits, xUsed, n, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 1366, 18, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 1366, 31, "xUsed");
      if (n == null) dart.nullFailed(I[7], 1366, 42, "n");
      if (resultDigits == null) dart.nullFailed(I[7], 1366, 56, "resultDigits");
      if (xUsed === 0) {
        return 0;
      }
      if (n === 0 && resultDigits == xDigits) {
        return xUsed;
      }
      let resultUsed = dart.notNull(xUsed) + dart.notNull(n);
      for (let i = dart.notNull(xUsed) - 1; i >= 0; i = i - 1) {
        resultDigits[$_set](i + dart.notNull(n), xDigits[$_get](i));
      }
      for (let i = dart.notNull(n) - 1; i >= 0; i = i - 1) {
        resultDigits[$_set](i, 0);
      }
      return resultUsed;
    }
    [_drShift](n) {
      if (n == null) dart.nullFailed(I[7], 1384, 28, "n");
      let used = this[_used$];
      if (used === 0) {
        return core._BigIntImpl.zero;
      }
      let resultUsed = dart.notNull(used) - dart.notNull(n);
      if (resultUsed <= 0) {
        return dart.test(this[_isNegative]) ? core._BigIntImpl._minusOne : core._BigIntImpl.zero;
      }
      let digits = this[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      for (let i = n; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
        resultDigits[$_set](dart.notNull(i) - dart.notNull(n), digits[$_get](i));
      }
      let result = new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
      if (dart.test(this[_isNegative])) {
        for (let i = 0; i < dart.notNull(n); i = i + 1) {
          if (digits[$_get](i) !== 0) {
            return result['-'](core._BigIntImpl.one);
          }
        }
      }
      return result;
    }
    static _lsh(xDigits, xUsed, n, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 1417, 18, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 1417, 31, "xUsed");
      if (n == null) dart.nullFailed(I[7], 1417, 42, "n");
      if (resultDigits == null) dart.nullFailed(I[7], 1417, 56, "resultDigits");
      if (!(dart.notNull(xUsed) > 0)) dart.assertFailed(null, I[7], 1418, 12, "xUsed > 0");
      let digitShift = (dart.notNull(n) / 16)[$truncate]();
      let bitShift = n[$modulo](16);
      let carryBitShift = 16 - bitShift;
      let bitMask = (1)[$leftShift](carryBitShift) - 1;
      let carry = 0;
      for (let i = dart.notNull(xUsed) - 1; i >= 0; i = i - 1) {
        let digit = xDigits[$_get](i);
        resultDigits[$_set](i + digitShift + 1, (digit[$rightShift](carryBitShift) | carry) >>> 0);
        carry = ((dart.notNull(digit) & bitMask) >>> 0)[$leftShift](bitShift);
      }
      resultDigits[$_set](digitShift, carry);
    }
    ['<<'](shiftAmount) {
      if (shiftAmount == null) dart.nullFailed(I[7], 1444, 31, "shiftAmount");
      if (dart.notNull(shiftAmount) < 0) {
        dart.throw(new core.ArgumentError.new("shift-amount must be posititve " + dart.str(shiftAmount)));
      }
      if (dart.test(this[_isZero])) return this;
      let digitShift = (dart.notNull(shiftAmount) / 16)[$truncate]();
      let bitShift = shiftAmount[$modulo](16);
      if (bitShift === 0) {
        return this[_dlShift](digitShift);
      }
      let resultUsed = dart.notNull(this[_used$]) + digitShift + 1;
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      core._BigIntImpl._lsh(this[_digits$], this[_used$], shiftAmount, resultDigits);
      return new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
    }
    static _lShiftDigits(xDigits, xUsed, n, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 1463, 18, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 1463, 31, "xUsed");
      if (n == null) dart.nullFailed(I[7], 1463, 42, "n");
      if (resultDigits == null) dart.nullFailed(I[7], 1463, 56, "resultDigits");
      let digitsShift = (dart.notNull(n) / 16)[$truncate]();
      let bitShift = n[$modulo](16);
      if (bitShift === 0) {
        return core._BigIntImpl._dlShiftDigits(xDigits, xUsed, digitsShift, resultDigits);
      }
      let resultUsed = dart.notNull(xUsed) + digitsShift + 1;
      core._BigIntImpl._lsh(xDigits, xUsed, n, resultDigits);
      let i = digitsShift;
      while ((i = i - 1) >= 0) {
        resultDigits[$_set](i, 0);
      }
      if (resultDigits[$_get](resultUsed - 1) === 0) {
        resultUsed = resultUsed - 1;
      }
      return resultUsed;
    }
    static _rsh(xDigits, xUsed, n, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 1483, 18, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 1483, 31, "xUsed");
      if (n == null) dart.nullFailed(I[7], 1483, 42, "n");
      if (resultDigits == null) dart.nullFailed(I[7], 1483, 56, "resultDigits");
      if (!(dart.notNull(xUsed) > 0)) dart.assertFailed(null, I[7], 1484, 12, "xUsed > 0");
      let digitsShift = (dart.notNull(n) / 16)[$truncate]();
      let bitShift = n[$modulo](16);
      let carryBitShift = 16 - bitShift;
      let bitMask = (1)[$leftShift](bitShift) - 1;
      let carry = xDigits[$_get](digitsShift)[$rightShift](bitShift);
      let last = dart.notNull(xUsed) - digitsShift - 1;
      for (let i = 0; i < last; i = i + 1) {
        let digit = xDigits[$_get](i + digitsShift + 1);
        resultDigits[$_set](i, (((dart.notNull(digit) & bitMask) >>> 0)[$leftShift](carryBitShift) | carry) >>> 0);
        carry = digit[$rightShift](bitShift);
      }
      resultDigits[$_set](last, carry);
    }
    ['>>'](shiftAmount) {
      if (shiftAmount == null) dart.nullFailed(I[7], 1508, 31, "shiftAmount");
      if (dart.notNull(shiftAmount) < 0) {
        dart.throw(new core.ArgumentError.new("shift-amount must be posititve " + dart.str(shiftAmount)));
      }
      if (dart.test(this[_isZero])) return this;
      let digitShift = (dart.notNull(shiftAmount) / 16)[$truncate]();
      let bitShift = shiftAmount[$modulo](16);
      if (bitShift === 0) {
        return this[_drShift](digitShift);
      }
      let used = this[_used$];
      let resultUsed = dart.notNull(used) - digitShift;
      if (resultUsed <= 0) {
        return dart.test(this[_isNegative]) ? core._BigIntImpl._minusOne : core._BigIntImpl.zero;
      }
      let digits = this[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      core._BigIntImpl._rsh(digits, used, shiftAmount, resultDigits);
      let result = new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
      if (dart.test(this[_isNegative])) {
        if ((dart.notNull(digits[$_get](digitShift)) & (1)[$leftShift](bitShift) - 1) !== 0) {
          return result['-'](core._BigIntImpl.one);
        }
        for (let i = 0; i < digitShift; i = i + 1) {
          if (digits[$_get](i) !== 0) {
            return result['-'](core._BigIntImpl.one);
          }
        }
      }
      return result;
    }
    [_absCompare](other) {
      if (other == null) dart.nullFailed(I[7], 1545, 31, "other");
      return core._BigIntImpl._compareDigits(this[_digits$], this[_used$], other[_digits$], other[_used$]);
    }
    compareTo(other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1555, 39, "other");
      if (this[_isNegative] == other[_isNegative]) {
        let result = this[_absCompare](other);
        return dart.test(this[_isNegative]) ? 0 - dart.notNull(result) : result;
      }
      return dart.test(this[_isNegative]) ? -1 : 1;
    }
    static _compareDigits(digits, used, otherDigits, otherUsed) {
      if (digits == null) dart.nullFailed(I[7], 1569, 18, "digits");
      if (used == null) dart.nullFailed(I[7], 1569, 30, "used");
      if (otherDigits == null) dart.nullFailed(I[7], 1569, 47, "otherDigits");
      if (otherUsed == null) dart.nullFailed(I[7], 1569, 64, "otherUsed");
      let result = dart.notNull(used) - dart.notNull(otherUsed);
      if (result === 0) {
        for (let i = dart.notNull(used) - 1; i >= 0; i = i - 1) {
          result = dart.notNull(digits[$_get](i)) - dart.notNull(otherDigits[$_get](i));
          if (result !== 0) return result;
        }
      }
      return result;
    }
    static _absAdd(digits, used, otherDigits, otherUsed, resultDigits) {
      if (digits == null) dart.nullFailed(I[7], 1582, 34, "digits");
      if (used == null) dart.nullFailed(I[7], 1582, 46, "used");
      if (otherDigits == null) dart.nullFailed(I[7], 1582, 63, "otherDigits");
      if (otherUsed == null) dart.nullFailed(I[7], 1583, 11, "otherUsed");
      if (resultDigits == null) dart.nullFailed(I[7], 1583, 33, "resultDigits");
      if (!(dart.notNull(used) >= dart.notNull(otherUsed) && dart.notNull(otherUsed) > 0)) dart.assertFailed(null, I[7], 1584, 12, "used >= otherUsed && otherUsed > 0");
      let carry = 0;
      for (let i = 0; i < dart.notNull(otherUsed); i = i + 1) {
        carry = carry + (dart.notNull(digits[$_get](i)) + dart.notNull(otherDigits[$_get](i)));
        resultDigits[$_set](i, (carry & 65535) >>> 0);
        carry = carry[$rightShift](16);
      }
      for (let i = otherUsed; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
        carry = carry + dart.notNull(digits[$_get](i));
        resultDigits[$_set](i, (carry & 65535) >>> 0);
        carry = carry[$rightShift](16);
      }
      resultDigits[$_set](used, carry);
    }
    static _absSub(digits, used, otherDigits, otherUsed, resultDigits) {
      if (digits == null) dart.nullFailed(I[7], 1601, 34, "digits");
      if (used == null) dart.nullFailed(I[7], 1601, 46, "used");
      if (otherDigits == null) dart.nullFailed(I[7], 1601, 63, "otherDigits");
      if (otherUsed == null) dart.nullFailed(I[7], 1602, 11, "otherUsed");
      if (resultDigits == null) dart.nullFailed(I[7], 1602, 33, "resultDigits");
      if (!(dart.notNull(used) >= dart.notNull(otherUsed) && dart.notNull(otherUsed) > 0)) dart.assertFailed(null, I[7], 1603, 12, "used >= otherUsed && otherUsed > 0");
      let carry = 0;
      for (let i = 0; i < dart.notNull(otherUsed); i = i + 1) {
        carry = carry + (dart.notNull(digits[$_get](i)) - dart.notNull(otherDigits[$_get](i)));
        resultDigits[$_set](i, (carry & 65535) >>> 0);
        carry = 0 - (carry[$rightShift](16) & 1);
      }
      for (let i = otherUsed; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
        carry = carry + dart.notNull(digits[$_get](i));
        resultDigits[$_set](i, (carry & 65535) >>> 0);
        carry = 0 - (carry[$rightShift](16) & 1);
      }
    }
    [_absAddSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1623, 42, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1623, 54, "isNegative");
      let used = this[_used$];
      let otherUsed = other[_used$];
      if (dart.notNull(used) < dart.notNull(otherUsed)) {
        return other[_absAddSetSign](this, isNegative);
      }
      if (used === 0) {
        if (!!dart.test(isNegative)) dart.assertFailed(null, I[7], 1630, 14, "!isNegative");
        return core._BigIntImpl.zero;
      }
      if (otherUsed === 0) {
        return this[_isNegative] == isNegative ? this : this._negate();
      }
      let resultUsed = dart.notNull(used) + 1;
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      core._BigIntImpl._absAdd(this[_digits$], used, other[_digits$], otherUsed, resultDigits);
      return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
    }
    [_absSubSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1645, 42, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1645, 54, "isNegative");
      if (!(dart.notNull(this[_absCompare](other)) >= 0)) dart.assertFailed(null, I[7], 1646, 12, "_absCompare(other) >= 0");
      let used = this[_used$];
      if (used === 0) {
        if (!!dart.test(isNegative)) dart.assertFailed(null, I[7], 1649, 14, "!isNegative");
        return core._BigIntImpl.zero;
      }
      let otherUsed = other[_used$];
      if (otherUsed === 0) {
        return this[_isNegative] == isNegative ? this : this._negate();
      }
      let resultDigits = _native_typed_data.NativeUint16List.new(used);
      core._BigIntImpl._absSub(this[_digits$], used, other[_digits$], otherUsed, resultDigits);
      return new core._BigIntImpl.__(isNegative, used, resultDigits);
    }
    [_absAndSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1662, 42, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1662, 54, "isNegative");
      let resultUsed = core._min(this[_used$], other[_used$]);
      let digits = this[_digits$];
      let otherDigits = other[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      for (let i = 0; i < dart.notNull(resultUsed); i = i + 1) {
        resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) & dart.notNull(otherDigits[$_get](i))) >>> 0);
      }
      return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
    }
    [_absAndNotSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1674, 45, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1674, 57, "isNegative");
      let resultUsed = this[_used$];
      let digits = this[_digits$];
      let otherDigits = other[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      let m = core._min(resultUsed, other[_used$]);
      for (let i = 0; i < dart.notNull(m); i = i + 1) {
        resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) & ~dart.notNull(otherDigits[$_get](i)) >>> 0) >>> 0);
      }
      for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
        resultDigits[$_set](i, digits[$_get](i));
      }
      return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
    }
    [_absOrSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1690, 41, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1690, 53, "isNegative");
      let used = this[_used$];
      let otherUsed = other[_used$];
      let resultUsed = core._max(used, otherUsed);
      let digits = this[_digits$];
      let otherDigits = other[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      let l = null;
      let m = null;
      if (dart.notNull(used) < dart.notNull(otherUsed)) {
        l = other;
        m = used;
      } else {
        l = this;
        m = otherUsed;
      }
      for (let i = 0; i < dart.notNull(m); i = i + 1) {
        resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) | dart.notNull(otherDigits[$_get](i))) >>> 0);
      }
      let lDigits = l[_digits$];
      for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
        resultDigits[$_set](i, lDigits[$_get](i));
      }
      return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
    }
    [_absXorSetSign](other, isNegative) {
      if (other == null) dart.nullFailed(I[7], 1717, 42, "other");
      if (isNegative == null) dart.nullFailed(I[7], 1717, 54, "isNegative");
      let used = this[_used$];
      let otherUsed = other[_used$];
      let resultUsed = core._max(used, otherUsed);
      let digits = this[_digits$];
      let otherDigits = other[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      let l = null;
      let m = null;
      if (dart.notNull(used) < dart.notNull(otherUsed)) {
        l = other;
        m = used;
      } else {
        l = this;
        m = otherUsed;
      }
      for (let i = 0; i < dart.notNull(m); i = i + 1) {
        resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) ^ dart.notNull(otherDigits[$_get](i))) >>> 0);
      }
      let lDigits = l[_digits$];
      for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
        resultDigits[$_set](i, lDigits[$_get](i));
      }
      return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
    }
    ['&'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1753, 48, "other");
      if (dart.test(this[_isZero]) || dart.test(other[_isZero])) return core._BigIntImpl.zero;
      if (this[_isNegative] == other[_isNegative]) {
        if (dart.test(this[_isNegative])) {
          let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
          let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
          return this1[_absOrSetSign](other1, true)[_absAddSetSign](core._BigIntImpl.one, true);
        }
        return this[_absAndSetSign](other, false);
      }
      let p = null;
      let n = null;
      if (dart.test(this[_isNegative])) {
        p = other;
        n = this;
      } else {
        p = this;
        n = other;
      }
      let n1 = n[_absSubSetSign](core._BigIntImpl.one, false);
      return p[_absAndNotSetSign](n1, false);
    }
    ['|'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1792, 48, "other");
      if (dart.test(this[_isZero])) return other;
      if (dart.test(other[_isZero])) return this;
      if (this[_isNegative] == other[_isNegative]) {
        if (dart.test(this[_isNegative])) {
          let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
          let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
          return this1[_absAndSetSign](other1, true)[_absAddSetSign](core._BigIntImpl.one, true);
        }
        return this[_absOrSetSign](other, false);
      }
      let p = null;
      let n = null;
      if (dart.test(this[_isNegative])) {
        p = other;
        n = this;
      } else {
        p = this;
        n = other;
      }
      let n1 = n[_absSubSetSign](core._BigIntImpl.one, true);
      return n1[_absAndNotSetSign](p, true)[_absAddSetSign](core._BigIntImpl.one, true);
    }
    ['^'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1833, 48, "other");
      if (dart.test(this[_isZero])) return other;
      if (dart.test(other[_isZero])) return this;
      if (this[_isNegative] == other[_isNegative]) {
        if (dart.test(this[_isNegative])) {
          let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
          let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
          return this1[_absXorSetSign](other1, false);
        }
        return this[_absXorSetSign](other, false);
      }
      let p = null;
      let n = null;
      if (dart.test(this[_isNegative])) {
        p = other;
        n = this;
      } else {
        p = this;
        n = other;
      }
      let n1 = n[_absSubSetSign](core._BigIntImpl.one, true);
      return p[_absXorSetSign](n1, true)[_absAddSetSign](core._BigIntImpl.one, true);
    }
    ['~']() {
      if (dart.test(this[_isZero])) return core._BigIntImpl._minusOne;
      if (dart.test(this[_isNegative])) {
        return this[_absSubSetSign](core._BigIntImpl.one, false);
      }
      return this[_absAddSetSign](core._BigIntImpl.one, true);
    }
    ['+'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1881, 48, "other");
      if (dart.test(this[_isZero])) return other;
      if (dart.test(other[_isZero])) return this;
      let isNegative = this[_isNegative];
      if (isNegative == other[_isNegative]) {
        return this[_absAddSetSign](other, isNegative);
      }
      if (dart.notNull(this[_absCompare](other)) >= 0) {
        return this[_absSubSetSign](other, isNegative);
      }
      return other[_absSubSetSign](this, !dart.test(isNegative));
    }
    ['-'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1899, 48, "other");
      if (dart.test(this[_isZero])) return other._negate();
      if (dart.test(other[_isZero])) return this;
      let isNegative = this[_isNegative];
      if (isNegative != other[_isNegative]) {
        return this[_absAddSetSign](other, isNegative);
      }
      if (dart.notNull(this[_absCompare](other)) >= 0) {
        return this[_absSubSetSign](other, isNegative);
      }
      return other[_absSubSetSign](this, !dart.test(isNegative));
    }
    static _mulAdd(x, multiplicandDigits, i, accumulatorDigits, j, n) {
      let t247, t247$, t247$0;
      if (x == null) dart.nullFailed(I[7], 1928, 27, "x");
      if (multiplicandDigits == null) dart.nullFailed(I[7], 1928, 41, "multiplicandDigits");
      if (i == null) dart.nullFailed(I[7], 1928, 65, "i");
      if (accumulatorDigits == null) dart.nullFailed(I[7], 1929, 18, "accumulatorDigits");
      if (j == null) dart.nullFailed(I[7], 1929, 41, "j");
      if (n == null) dart.nullFailed(I[7], 1929, 48, "n");
      if (x === 0) {
        return;
      }
      let c = 0;
      while ((n = dart.notNull(n) - 1) >= 0) {
        let product = dart.notNull(x) * dart.notNull(multiplicandDigits[$_get]((t247 = i, i = dart.notNull(t247) + 1, t247)));
        let combined = product + dart.notNull(accumulatorDigits[$_get](j)) + c;
        accumulatorDigits[$_set]((t247$ = j, j = dart.notNull(t247$) + 1, t247$), (combined & 65535) >>> 0);
        c = (combined / 65536)[$truncate]();
      }
      while (c !== 0) {
        let l = dart.notNull(accumulatorDigits[$_get](j)) + c;
        accumulatorDigits[$_set]((t247$0 = j, j = dart.notNull(t247$0) + 1, t247$0), (l & 65535) >>> 0);
        c = (l / 65536)[$truncate]();
      }
    }
    ['*'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 1951, 48, "other");
      let used = this[_used$];
      let otherUsed = other[_used$];
      if (used === 0 || otherUsed === 0) {
        return core._BigIntImpl.zero;
      }
      let resultUsed = dart.notNull(used) + dart.notNull(otherUsed);
      let digits = this[_digits$];
      let otherDigits = other[_digits$];
      let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
      let i = 0;
      while (i < dart.notNull(otherUsed)) {
        core._BigIntImpl._mulAdd(otherDigits[$_get](i), digits, 0, resultDigits, i, used);
        i = i + 1;
      }
      return new core._BigIntImpl.__(this[_isNegative] != other[_isNegative], resultUsed, resultDigits);
    }
    static _mulDigits(xDigits, xUsed, otherDigits, otherUsed, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 1972, 36, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 1972, 49, "xUsed");
      if (otherDigits == null) dart.nullFailed(I[7], 1972, 67, "otherDigits");
      if (otherUsed == null) dart.nullFailed(I[7], 1973, 11, "otherUsed");
      if (resultDigits == null) dart.nullFailed(I[7], 1973, 33, "resultDigits");
      let resultUsed = dart.notNull(xUsed) + dart.notNull(otherUsed);
      let i = resultUsed;
      if (!(dart.notNull(resultDigits[$length]) >= i)) dart.assertFailed(null, I[7], 1976, 12, "resultDigits.length >= i");
      while ((i = i - 1) >= 0) {
        resultDigits[$_set](i, 0);
      }
      i = 0;
      while (i < dart.notNull(otherUsed)) {
        core._BigIntImpl._mulAdd(otherDigits[$_get](i), xDigits, 0, resultDigits, i, xUsed);
        i = i + 1;
      }
      return resultUsed;
    }
    static _estimateQuotientDigit(topDigitDivisor, digits, i) {
      if (topDigitDivisor == null) dart.nullFailed(I[7], 1990, 11, "topDigitDivisor");
      if (digits == null) dart.nullFailed(I[7], 1990, 39, "digits");
      if (i == null) dart.nullFailed(I[7], 1990, 51, "i");
      if (digits[$_get](i) == topDigitDivisor) return 65535;
      let quotientDigit = (((digits[$_get](i)[$leftShift](16) | dart.notNull(digits[$_get](dart.notNull(i) - 1))) >>> 0) / dart.notNull(topDigitDivisor))[$truncate]();
      if (quotientDigit > 65535) return 65535;
      return quotientDigit;
    }
    [_div](other) {
      if (other == null) dart.nullFailed(I[7], 1999, 32, "other");
      if (!(dart.notNull(other[_used$]) > 0)) dart.assertFailed(null, I[7], 2000, 12, "other._used > 0");
      if (dart.notNull(this[_used$]) < dart.notNull(other[_used$])) {
        return core._BigIntImpl.zero;
      }
      this[_divRem](other);
      let lastQuo_used = dart.nullCheck(core._BigIntImpl._lastQuoRemUsed) - dart.nullCheck(core._BigIntImpl._lastRemUsed);
      let quo_digits = core._BigIntImpl._cloneDigits(dart.nullCheck(core._BigIntImpl._lastQuoRemDigits), dart.nullCheck(core._BigIntImpl._lastRemUsed), dart.nullCheck(core._BigIntImpl._lastQuoRemUsed), lastQuo_used);
      let quo = new core._BigIntImpl.__(false, lastQuo_used, quo_digits);
      if (this[_isNegative] != other[_isNegative] && dart.notNull(quo[_used$]) > 0) {
        quo = quo._negate();
      }
      return quo;
    }
    [_rem](other) {
      if (other == null) dart.nullFailed(I[7], 2018, 32, "other");
      if (!(dart.notNull(other[_used$]) > 0)) dart.assertFailed(null, I[7], 2019, 12, "other._used > 0");
      if (dart.notNull(this[_used$]) < dart.notNull(other[_used$])) {
        return this;
      }
      this[_divRem](other);
      let remDigits = core._BigIntImpl._cloneDigits(dart.nullCheck(core._BigIntImpl._lastQuoRemDigits), 0, dart.nullCheck(core._BigIntImpl._lastRemUsed), dart.nullCheck(core._BigIntImpl._lastRemUsed));
      let rem = new core._BigIntImpl.__(false, dart.nullCheck(core._BigIntImpl._lastRemUsed), remDigits);
      if (dart.nullCheck(core._BigIntImpl._lastRem_nsh) > 0) {
        rem = rem['>>'](dart.nullCheck(core._BigIntImpl._lastRem_nsh));
      }
      if (dart.test(this[_isNegative]) && dart.notNull(rem[_used$]) > 0) {
        rem = rem._negate();
      }
      return rem;
    }
    [_divRem](other) {
      let t247, t247$;
      if (other == null) dart.nullFailed(I[7], 2046, 28, "other");
      if (this[_used$] == core._BigIntImpl._lastDividendUsed && other[_used$] == core._BigIntImpl._lastDivisorUsed && this[_digits$] == core._BigIntImpl._lastDividendDigits && other[_digits$] == core._BigIntImpl._lastDivisorDigits) {
        return;
      }
      if (!(dart.notNull(this[_used$]) >= dart.notNull(other[_used$]))) dart.assertFailed(null, I[7], 2054, 12, "_used >= other._used");
      let nsh = 16 - other[_digits$][$_get](dart.notNull(other[_used$]) - 1)[$bitLength];
      let resultDigits = null;
      let resultUsed = null;
      let yDigits = null;
      let yUsed = null;
      if (nsh > 0) {
        yDigits = _native_typed_data.NativeUint16List.new(dart.notNull(other[_used$]) + 5);
        yUsed = core._BigIntImpl._lShiftDigits(other[_digits$], other[_used$], nsh, yDigits);
        resultDigits = _native_typed_data.NativeUint16List.new(dart.notNull(this[_used$]) + 5);
        resultUsed = core._BigIntImpl._lShiftDigits(this[_digits$], this[_used$], nsh, resultDigits);
      } else {
        yDigits = other[_digits$];
        yUsed = other[_used$];
        resultDigits = core._BigIntImpl._cloneDigits(this[_digits$], 0, this[_used$], dart.notNull(this[_used$]) + 2);
        resultUsed = this[_used$];
      }
      let topDigitDivisor = yDigits[$_get](dart.notNull(yUsed) - 1);
      let i = resultUsed;
      let j = dart.notNull(i) - dart.notNull(yUsed);
      let tmpDigits = _native_typed_data.NativeUint16List.new(i);
      let tmpUsed = core._BigIntImpl._dlShiftDigits(yDigits, yUsed, j, tmpDigits);
      if (dart.notNull(core._BigIntImpl._compareDigits(resultDigits, resultUsed, tmpDigits, tmpUsed)) >= 0) {
        if (!(i == resultUsed)) dart.assertFailed(null, I[7], 2087, 14, "i == resultUsed");
        resultDigits[$_set]((t247 = resultUsed, resultUsed = dart.notNull(t247) + 1, t247), 1);
        core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
      } else {
        resultDigits[$_set]((t247$ = resultUsed, resultUsed = dart.notNull(t247$) + 1, t247$), 0);
      }
      let nyDigits = _native_typed_data.NativeUint16List.new(dart.notNull(yUsed) + 2);
      nyDigits[$_set](yUsed, 1);
      core._BigIntImpl._absSub(nyDigits, dart.notNull(yUsed) + 1, yDigits, yUsed, nyDigits);
      i = dart.notNull(i) - 1;
      while (j > 0) {
        let estimatedQuotientDigit = core._BigIntImpl._estimateQuotientDigit(topDigitDivisor, resultDigits, i);
        j = j - 1;
        core._BigIntImpl._mulAdd(estimatedQuotientDigit, nyDigits, 0, resultDigits, j, yUsed);
        if (dart.notNull(resultDigits[$_get](i)) < dart.notNull(estimatedQuotientDigit)) {
          let tmpUsed = core._BigIntImpl._dlShiftDigits(nyDigits, yUsed, j, tmpDigits);
          core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
          while (dart.notNull(resultDigits[$_get](i)) < (estimatedQuotientDigit = dart.notNull(estimatedQuotientDigit) - 1)) {
            core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
          }
        }
        i = dart.notNull(i) - 1;
      }
      core._BigIntImpl._lastDividendDigits = this[_digits$];
      core._BigIntImpl._lastDividendUsed = this[_used$];
      core._BigIntImpl._lastDivisorDigits = other[_digits$];
      core._BigIntImpl._lastDivisorUsed = other[_used$];
      core._BigIntImpl._lastQuoRemDigits = resultDigits;
      core._BigIntImpl._lastQuoRemUsed = resultUsed;
      core._BigIntImpl._lastRemUsed = yUsed;
      core._BigIntImpl._lastRem_nsh = nsh;
    }
    get hashCode() {
      function combine(hash, value) {
        if (hash == null) dart.nullFailed(I[7], 2139, 21, "hash");
        if (value == null) dart.nullFailed(I[7], 2139, 31, "value");
        hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
        hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
        return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
      }
      dart.fn(combine, T$0.intAndintToint());
      function finish(hash) {
        if (hash == null) dart.nullFailed(I[7], 2145, 20, "hash");
        hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
        hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
        return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
      }
      dart.fn(finish, T$0.intToint());
      if (dart.test(this[_isZero])) return 6707;
      let hash = dart.test(this[_isNegative]) ? 83585 : 429689;
      for (let i = 0; i < dart.notNull(this[_used$]); i = i + 1) {
        hash = combine(hash, this[_digits$][$_get](i));
      }
      return finish(hash);
    }
    _equals(other) {
      if (other == null) return false;
      return core._BigIntImpl.is(other) && this.compareTo(other) === 0;
    }
    get bitLength() {
      if (this[_used$] === 0) return 0;
      if (dart.test(this[_isNegative])) return this['~']().bitLength;
      return 16 * (dart.notNull(this[_used$]) - 1) + this[_digits$][$_get](dart.notNull(this[_used$]) - 1)[$bitLength];
    }
    ['~/'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2218, 49, "other");
      if (other[_used$] === 0) {
        dart.throw(C[419] || CT.C419);
      }
      return this[_div](other);
    }
    remainder(other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2232, 47, "other");
      if (other[_used$] === 0) {
        dart.throw(C[419] || CT.C419);
      }
      return this[_rem](other);
    }
    ['/'](other) {
      if (other == null) dart.nullFailed(I[7], 2240, 28, "other");
      return dart.notNull(this.toDouble()) / dart.notNull(other.toDouble());
    }
    ['<'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2243, 41, "other");
      return dart.notNull(this.compareTo(other)) < 0;
    }
    ['<='](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2246, 42, "other");
      return dart.notNull(this.compareTo(other)) <= 0;
    }
    ['>'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2249, 41, "other");
      return dart.notNull(this.compareTo(other)) > 0;
    }
    ['>='](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2252, 42, "other");
      return dart.notNull(this.compareTo(other)) >= 0;
    }
    ['%'](other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2265, 48, "other");
      if (other[_used$] === 0) {
        dart.throw(C[419] || CT.C419);
      }
      let result = this[_rem](other);
      if (dart.test(result[_isNegative])) {
        if (dart.test(other[_isNegative])) {
          result = result['-'](other);
        } else {
          result = result['+'](other);
        }
      }
      return result;
    }
    get sign() {
      if (this[_used$] === 0) return 0;
      return dart.test(this[_isNegative]) ? -1 : 1;
    }
    get isEven() {
      return this[_used$] === 0 || (dart.notNull(this[_digits$][$_get](0)) & 1) === 0;
    }
    get isOdd() {
      return !dart.test(this.isEven);
    }
    get isNegative() {
      return this[_isNegative];
    }
    pow(exponent) {
      if (exponent == null) dart.nullFailed(I[7], 2300, 23, "exponent");
      if (dart.notNull(exponent) < 0) {
        dart.throw(new core.ArgumentError.new("Exponent must not be negative: " + dart.str(exponent)));
      }
      if (exponent === 0) return core._BigIntImpl.one;
      let result = core._BigIntImpl.one;
      let base = this;
      while (exponent !== 0) {
        if ((dart.notNull(exponent) & 1) === 1) {
          result = result['*'](base);
        }
        exponent = exponent[$rightShift](1);
        if (exponent !== 0) {
          base = base['*'](base);
        }
      }
      return result;
    }
    modPow(exponent, modulus) {
      core._BigIntImpl.as(exponent);
      if (exponent == null) dart.nullFailed(I[7], 2329, 29, "exponent");
      core._BigIntImpl.as(modulus);
      if (modulus == null) dart.nullFailed(I[7], 2329, 61, "modulus");
      if (dart.test(exponent[_isNegative])) {
        dart.throw(new core.ArgumentError.new("exponent must be positive: " + dart.str(exponent)));
      }
      if (dart.test(modulus['<='](core._BigIntImpl.zero))) {
        dart.throw(new core.ArgumentError.new("modulus must be strictly positive: " + dart.str(modulus)));
      }
      if (dart.test(exponent[_isZero])) return core._BigIntImpl.one;
      let modulusUsed = modulus[_used$];
      let modulusUsed2p4 = 2 * dart.notNull(modulusUsed) + 4;
      let exponentBitlen = exponent.bitLength;
      if (dart.notNull(exponentBitlen) <= 0) return core._BigIntImpl.one;
      let z = new core._BigIntClassic.new(modulus);
      let resultDigits = _native_typed_data.NativeUint16List.new(modulusUsed2p4);
      let result2Digits = _native_typed_data.NativeUint16List.new(modulusUsed2p4);
      let gDigits = _native_typed_data.NativeUint16List.new(modulusUsed);
      let gUsed = z.convert(this, gDigits);
      for (let j = dart.notNull(gUsed) - 1; j >= 0; j = j - 1) {
        resultDigits[$_set](j, gDigits[$_get](j));
      }
      let resultUsed = gUsed;
      let result2Used = null;
      for (let i = dart.notNull(exponentBitlen) - 2; i >= 0; i = i - 1) {
        result2Used = z.sqr(resultDigits, resultUsed, result2Digits);
        if (!dart.test(exponent['&'](core._BigIntImpl.one['<<'](i))[_isZero])) {
          resultUsed = z.mul(result2Digits, result2Used, gDigits, gUsed, resultDigits);
        } else {
          let tmpDigits = resultDigits;
          let tmpUsed = resultUsed;
          resultDigits = result2Digits;
          resultUsed = result2Used;
          result2Digits = tmpDigits;
          result2Used = tmpUsed;
        }
      }
      return z.revert(resultDigits, resultUsed);
    }
    static _binaryGcd(x, y, inv) {
      if (x == null) dart.nullFailed(I[7], 2375, 45, "x");
      if (y == null) dart.nullFailed(I[7], 2375, 60, "y");
      if (inv == null) dart.nullFailed(I[7], 2375, 68, "inv");
      let xDigits = x[_digits$];
      let yDigits = y[_digits$];
      let xUsed = x[_used$];
      let yUsed = y[_used$];
      let maxUsed = dart.notNull(xUsed) > dart.notNull(yUsed) ? xUsed : yUsed;
      let unshiftedMaxUsed = maxUsed;
      xDigits = core._BigIntImpl._cloneDigits(xDigits, 0, xUsed, maxUsed);
      yDigits = core._BigIntImpl._cloneDigits(yDigits, 0, yUsed, maxUsed);
      let shiftAmount = 0;
      if (dart.test(inv)) {
        if (yUsed === 1 && yDigits[$_get](0) === 1) return core._BigIntImpl.one;
        if (yUsed === 0 || yDigits[$_get](0)[$isEven] && xDigits[$_get](0)[$isEven]) {
          dart.throw(core.Exception.new("Not coprime"));
        }
      } else {
        if (dart.test(x[_isZero])) {
          dart.throw(new core.ArgumentError.value(0, "this", "must not be zero"));
        }
        if (dart.test(y[_isZero])) {
          dart.throw(new core.ArgumentError.value(0, "other", "must not be zero"));
        }
        if (xUsed === 1 && xDigits[$_get](0) === 1 || yUsed === 1 && yDigits[$_get](0) === 1) return core._BigIntImpl.one;
        while ((dart.notNull(xDigits[$_get](0)) & 1) === 0 && (dart.notNull(yDigits[$_get](0)) & 1) === 0) {
          core._BigIntImpl._rsh(xDigits, xUsed, 1, xDigits);
          core._BigIntImpl._rsh(yDigits, yUsed, 1, yDigits);
          shiftAmount = shiftAmount + 1;
        }
        if (shiftAmount >= 16) {
          let digitShiftAmount = (shiftAmount / 16)[$truncate]();
          xUsed = dart.notNull(xUsed) - digitShiftAmount;
          yUsed = dart.notNull(yUsed) - digitShiftAmount;
          maxUsed = dart.notNull(maxUsed) - digitShiftAmount;
        }
        if ((dart.notNull(yDigits[$_get](0)) & 1) === 1) {
          let tmpDigits = xDigits;
          let tmpUsed = xUsed;
          xDigits = yDigits;
          xUsed = yUsed;
          yDigits = tmpDigits;
          yUsed = tmpUsed;
        }
      }
      let uDigits = core._BigIntImpl._cloneDigits(xDigits, 0, xUsed, unshiftedMaxUsed);
      let vDigits = core._BigIntImpl._cloneDigits(yDigits, 0, yUsed, dart.notNull(unshiftedMaxUsed) + 2);
      let ac = (dart.notNull(xDigits[$_get](0)) & 1) === 0;
      let abcdUsed = dart.notNull(maxUsed) + 1;
      let abcdLen = abcdUsed + 2;
      let aDigits = core._dummyList;
      let aIsNegative = false;
      let cDigits = core._dummyList;
      let cIsNegative = false;
      if (ac) {
        aDigits = _native_typed_data.NativeUint16List.new(abcdLen);
        aDigits[$_set](0, 1);
        cDigits = _native_typed_data.NativeUint16List.new(abcdLen);
      }
      let bDigits = _native_typed_data.NativeUint16List.new(abcdLen);
      let bIsNegative = false;
      let dDigits = _native_typed_data.NativeUint16List.new(abcdLen);
      let dIsNegative = false;
      dDigits[$_set](0, 1);
      while (true) {
        while ((dart.notNull(uDigits[$_get](0)) & 1) === 0) {
          core._BigIntImpl._rsh(uDigits, maxUsed, 1, uDigits);
          if (ac) {
            if ((dart.notNull(aDigits[$_get](0)) & 1) === 1 || (dart.notNull(bDigits[$_get](0)) & 1) === 1) {
              if (aIsNegative) {
                if (aDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(aDigits, maxUsed, yDigits, maxUsed)) > 0) {
                  core._BigIntImpl._absSub(aDigits, abcdUsed, yDigits, maxUsed, aDigits);
                } else {
                  core._BigIntImpl._absSub(yDigits, maxUsed, aDigits, maxUsed, aDigits);
                  aIsNegative = false;
                }
              } else {
                core._BigIntImpl._absAdd(aDigits, abcdUsed, yDigits, maxUsed, aDigits);
              }
              if (bIsNegative) {
                core._BigIntImpl._absAdd(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
              } else if (bDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(bDigits, maxUsed, xDigits, maxUsed)) > 0) {
                core._BigIntImpl._absSub(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
              } else {
                core._BigIntImpl._absSub(xDigits, maxUsed, bDigits, maxUsed, bDigits);
                bIsNegative = true;
              }
            }
            core._BigIntImpl._rsh(aDigits, abcdUsed, 1, aDigits);
          } else if ((dart.notNull(bDigits[$_get](0)) & 1) === 1) {
            if (bIsNegative) {
              core._BigIntImpl._absAdd(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
            } else if (bDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(bDigits, maxUsed, xDigits, maxUsed)) > 0) {
              core._BigIntImpl._absSub(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
            } else {
              core._BigIntImpl._absSub(xDigits, maxUsed, bDigits, maxUsed, bDigits);
              bIsNegative = true;
            }
          }
          core._BigIntImpl._rsh(bDigits, abcdUsed, 1, bDigits);
        }
        while ((dart.notNull(vDigits[$_get](0)) & 1) === 0) {
          core._BigIntImpl._rsh(vDigits, maxUsed, 1, vDigits);
          if (ac) {
            if ((dart.notNull(cDigits[$_get](0)) & 1) === 1 || (dart.notNull(dDigits[$_get](0)) & 1) === 1) {
              if (cIsNegative) {
                if (cDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(cDigits, maxUsed, yDigits, maxUsed)) > 0) {
                  core._BigIntImpl._absSub(cDigits, abcdUsed, yDigits, maxUsed, cDigits);
                } else {
                  core._BigIntImpl._absSub(yDigits, maxUsed, cDigits, maxUsed, cDigits);
                  cIsNegative = false;
                }
              } else {
                core._BigIntImpl._absAdd(cDigits, abcdUsed, yDigits, maxUsed, cDigits);
              }
              if (dIsNegative) {
                core._BigIntImpl._absAdd(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
              } else if (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
                core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
              } else {
                core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
                dIsNegative = true;
              }
            }
            core._BigIntImpl._rsh(cDigits, abcdUsed, 1, cDigits);
          } else if ((dart.notNull(dDigits[$_get](0)) & 1) === 1) {
            if (dIsNegative) {
              core._BigIntImpl._absAdd(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
            } else if (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
              core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
            } else {
              core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
              dIsNegative = true;
            }
          }
          core._BigIntImpl._rsh(dDigits, abcdUsed, 1, dDigits);
        }
        if (dart.notNull(core._BigIntImpl._compareDigits(uDigits, maxUsed, vDigits, maxUsed)) >= 0) {
          core._BigIntImpl._absSub(uDigits, maxUsed, vDigits, maxUsed, uDigits);
          if (ac) {
            if (aIsNegative === cIsNegative) {
              let a_cmp_c = core._BigIntImpl._compareDigits(aDigits, abcdUsed, cDigits, abcdUsed);
              if (dart.notNull(a_cmp_c) > 0) {
                core._BigIntImpl._absSub(aDigits, abcdUsed, cDigits, abcdUsed, aDigits);
              } else {
                core._BigIntImpl._absSub(cDigits, abcdUsed, aDigits, abcdUsed, aDigits);
                aIsNegative = !aIsNegative && a_cmp_c !== 0;
              }
            } else {
              core._BigIntImpl._absAdd(aDigits, abcdUsed, cDigits, abcdUsed, aDigits);
            }
          }
          if (bIsNegative === dIsNegative) {
            let b_cmp_d = core._BigIntImpl._compareDigits(bDigits, abcdUsed, dDigits, abcdUsed);
            if (dart.notNull(b_cmp_d) > 0) {
              core._BigIntImpl._absSub(bDigits, abcdUsed, dDigits, abcdUsed, bDigits);
            } else {
              core._BigIntImpl._absSub(dDigits, abcdUsed, bDigits, abcdUsed, bDigits);
              bIsNegative = !bIsNegative && b_cmp_d !== 0;
            }
          } else {
            core._BigIntImpl._absAdd(bDigits, abcdUsed, dDigits, abcdUsed, bDigits);
          }
        } else {
          core._BigIntImpl._absSub(vDigits, maxUsed, uDigits, maxUsed, vDigits);
          if (ac) {
            if (cIsNegative === aIsNegative) {
              let c_cmp_a = core._BigIntImpl._compareDigits(cDigits, abcdUsed, aDigits, abcdUsed);
              if (dart.notNull(c_cmp_a) > 0) {
                core._BigIntImpl._absSub(cDigits, abcdUsed, aDigits, abcdUsed, cDigits);
              } else {
                core._BigIntImpl._absSub(aDigits, abcdUsed, cDigits, abcdUsed, cDigits);
                cIsNegative = !cIsNegative && c_cmp_a !== 0;
              }
            } else {
              core._BigIntImpl._absAdd(cDigits, abcdUsed, aDigits, abcdUsed, cDigits);
            }
          }
          if (dIsNegative === bIsNegative) {
            let d_cmp_b = core._BigIntImpl._compareDigits(dDigits, abcdUsed, bDigits, abcdUsed);
            if (dart.notNull(d_cmp_b) > 0) {
              core._BigIntImpl._absSub(dDigits, abcdUsed, bDigits, abcdUsed, dDigits);
            } else {
              core._BigIntImpl._absSub(bDigits, abcdUsed, dDigits, abcdUsed, dDigits);
              dIsNegative = !dIsNegative && d_cmp_b !== 0;
            }
          } else {
            core._BigIntImpl._absAdd(dDigits, abcdUsed, bDigits, abcdUsed, dDigits);
          }
        }
        let i = maxUsed;
        while (dart.notNull(i) > 0 && uDigits[$_get](dart.notNull(i) - 1) === 0)
          i = dart.notNull(i) - 1;
        if (i === 0) break;
      }
      if (!dart.test(inv)) {
        if (shiftAmount > 0) {
          maxUsed = core._BigIntImpl._lShiftDigits(vDigits, maxUsed, shiftAmount, vDigits);
        }
        return new core._BigIntImpl.__(false, maxUsed, vDigits);
      }
      let i = dart.notNull(maxUsed) - 1;
      while (i > 0 && vDigits[$_get](i) === 0)
        i = i - 1;
      if (i !== 0 || vDigits[$_get](0) !== 1) {
        dart.throw(core.Exception.new("Not coprime"));
      }
      if (dIsNegative) {
        while (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
          core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
        }
        core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
        dIsNegative = false;
      } else {
        while (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) >= 0) {
          core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
        }
      }
      return new core._BigIntImpl.__(false, maxUsed, dDigits);
    }
    modInverse(modulus) {
      core._BigIntImpl.as(modulus);
      if (modulus == null) dart.nullFailed(I[7], 2633, 48, "modulus");
      if (dart.test(modulus['<='](core._BigIntImpl.zero))) {
        dart.throw(new core.ArgumentError.new("Modulus must be strictly positive: " + dart.str(modulus)));
      }
      if (dart.equals(modulus, core._BigIntImpl.one)) return core._BigIntImpl.zero;
      let tmp = this;
      if (dart.test(tmp[_isNegative]) || dart.notNull(tmp[_absCompare](modulus)) >= 0) {
        tmp = tmp['%'](modulus);
      }
      return core._BigIntImpl._binaryGcd(modulus, tmp, true);
    }
    gcd(other) {
      core._BigIntImpl.as(other);
      if (other == null) dart.nullFailed(I[7], 2658, 41, "other");
      if (dart.test(this[_isZero])) return other.abs();
      if (dart.test(other[_isZero])) return this.abs();
      return core._BigIntImpl._binaryGcd(this, other, false);
    }
    toUnsigned(width) {
      if (width == null) dart.nullFailed(I[7], 2690, 30, "width");
      return this['&'](core._BigIntImpl.one['<<'](width)['-'](core._BigIntImpl.one));
    }
    toSigned(width) {
      if (width == null) dart.nullFailed(I[7], 2728, 28, "width");
      let signMask = core._BigIntImpl.one['<<'](dart.notNull(width) - 1);
      return this['&'](signMask['-'](core._BigIntImpl.one))['-'](this['&'](signMask));
    }
    get isValidInt() {
      if (dart.notNull(this[_used$]) <= 3) return true;
      let asInt = this.toInt();
      if (!asInt[$toDouble]()[$isFinite]) return false;
      return this._equals(core._BigIntImpl._fromInt(asInt));
    }
    toInt() {
      let result = 0;
      for (let i = dart.notNull(this[_used$]) - 1; i >= 0; i = i - 1) {
        result = result * 65536 + dart.notNull(this[_digits$][$_get](i));
      }
      return dart.test(this[_isNegative]) ? -result : result;
    }
    toDouble() {
      let t248, t247, t248$, t247$;
      if (dart.test(this[_isZero])) return 0.0;
      let resultBits = _native_typed_data.NativeUint8List.new(8);
      let length = 16 * (dart.notNull(this[_used$]) - 1) + this[_digits$][$_get](dart.notNull(this[_used$]) - 1)[$bitLength];
      if (length > 971 + 53) {
        return dart.test(this[_isNegative]) ? -1 / 0 : 1 / 0;
      }
      if (dart.test(this[_isNegative])) resultBits[$_set](7, 128);
      let biasedExponent = length - 53 + 1075;
      resultBits[$_set](6, (biasedExponent & 15) << 4);
      t247 = resultBits;
      t248 = 7;
      t247[$_set](t248, (dart.notNull(t247[$_get](t248)) | biasedExponent[$rightShift](4)) >>> 0);
      let cachedBits = 0;
      let cachedBitsLength = 0;
      let digitIndex = dart.notNull(this[_used$]) - 1;
      const readBits = n => {
        if (n == null) dart.nullFailed(I[7], 2791, 22, "n");
        while (cachedBitsLength < dart.notNull(n)) {
          let nextDigit = null;
          let nextDigitLength = 16;
          if (digitIndex < 0) {
            nextDigit = 0;
            digitIndex = digitIndex - 1;
          } else {
            nextDigit = this[_digits$][$_get](digitIndex);
            if (digitIndex === dart.notNull(this[_used$]) - 1) nextDigitLength = nextDigit[$bitLength];
            digitIndex = digitIndex - 1;
          }
          cachedBits = cachedBits[$leftShift](nextDigitLength) + dart.notNull(nextDigit);
          cachedBitsLength = cachedBitsLength + nextDigitLength;
        }
        let result = cachedBits[$rightShift](cachedBitsLength - dart.notNull(n));
        cachedBits = cachedBits - result[$leftShift](cachedBitsLength - dart.notNull(n));
        cachedBitsLength = cachedBitsLength - dart.notNull(n);
        return result;
      };
      dart.fn(readBits, T$0.intToint());
      let leadingBits = dart.notNull(readBits(5)) & 15;
      t247$ = resultBits;
      t248$ = 6;
      t247$[$_set](t248$, (dart.notNull(t247$[$_get](t248$)) | leadingBits) >>> 0);
      for (let i = 5; i >= 0; i = i - 1) {
        resultBits[$_set](i, readBits(8));
      }
      function roundUp() {
        let carry = 1;
        for (let i = 0; i < 8; i = i + 1) {
          if (carry === 0) break;
          let sum = dart.notNull(resultBits[$_get](i)) + carry;
          resultBits[$_set](i, sum & 255);
          carry = sum[$rightShift](8);
        }
      }
      dart.fn(roundUp, T$.VoidTovoid());
      if (readBits(1) === 1) {
        if (resultBits[$_get](0)[$isOdd]) {
          roundUp();
        } else {
          if (cachedBits !== 0) {
            roundUp();
          } else {
            for (let i = digitIndex; i >= 0; i = i - 1) {
              if (this[_digits$][$_get](i) !== 0) {
                roundUp();
                break;
              }
            }
          }
        }
      }
      return resultBits[$buffer][$asByteData]()[$getFloat64](0, typed_data.Endian.little);
    }
    toString() {
      if (this[_used$] === 0) return "0";
      if (this[_used$] === 1) {
        if (dart.test(this[_isNegative])) return (-dart.notNull(this[_digits$][$_get](0)))[$toString]();
        return dart.toString(this[_digits$][$_get](0));
      }
      let decimalDigitChunks = T$.JSArrayOfString().of([]);
      let rest = dart.test(this.isNegative) ? this._negate() : this;
      while (dart.notNull(rest[_used$]) > 1) {
        let digits4 = dart.toString(rest.remainder(core._BigIntImpl._bigInt10000));
        decimalDigitChunks[$add](digits4);
        if (digits4.length === 1) decimalDigitChunks[$add]("000");
        if (digits4.length === 2) decimalDigitChunks[$add]("00");
        if (digits4.length === 3) decimalDigitChunks[$add]("0");
        rest = rest['~/'](core._BigIntImpl._bigInt10000);
      }
      decimalDigitChunks[$add](dart.toString(rest[_digits$][$_get](0)));
      if (dart.test(this[_isNegative])) decimalDigitChunks[$add]("-");
      return decimalDigitChunks[$reversed][$join]();
    }
    [_toRadixCodeUnit](digit) {
      if (digit == null) dart.nullFailed(I[7], 2891, 28, "digit");
      if (dart.notNull(digit) < 10) return 48 + dart.notNull(digit);
      return 97 + dart.notNull(digit) - 10;
    }
    toRadixString(radix) {
      if (radix == null) dart.nullFailed(I[7], 2906, 28, "radix");
      if (dart.notNull(radix) > 36) dart.throw(new core.RangeError.range(radix, 2, 36));
      if (this[_used$] === 0) return "0";
      if (this[_used$] === 1) {
        let digitString = this[_digits$][$_get](0)[$toRadixString](radix);
        if (dart.test(this[_isNegative])) return "-" + digitString;
        return digitString;
      }
      if (radix === 16) return this[_toHexString]();
      let base = core._BigIntImpl._fromInt(radix);
      let reversedDigitCodeUnits = T$.JSArrayOfint().of([]);
      let rest = this.abs();
      while (!dart.test(rest[_isZero])) {
        let digit = rest.remainder(base).toInt();
        rest = rest['~/'](base);
        reversedDigitCodeUnits[$add](this[_toRadixCodeUnit](digit));
      }
      let digitString = core.String.fromCharCodes(reversedDigitCodeUnits[$reversed]);
      if (dart.test(this[_isNegative])) return "-" + dart.notNull(digitString);
      return digitString;
    }
    [_toHexString]() {
      let chars = T$.JSArrayOfint().of([]);
      for (let i = 0; i < dart.notNull(this[_used$]) - 1; i = i + 1) {
        let chunk = this[_digits$][$_get](i);
        for (let j = 0; j < (16 / 4)[$truncate](); j = j + 1) {
          chars[$add](this[_toRadixCodeUnit](dart.notNull(chunk) & 15));
          chunk = chunk[$rightShift](4);
        }
      }
      let msbChunk = this[_digits$][$_get](dart.notNull(this[_used$]) - 1);
      while (msbChunk !== 0) {
        chars[$add](this[_toRadixCodeUnit](dart.notNull(msbChunk) & 15));
        msbChunk = msbChunk[$rightShift](4);
      }
      if (dart.test(this[_isNegative])) {
        chars[$add](45);
      }
      return core.String.fromCharCodes(chars[$reversed]);
    }
  };
  (core._BigIntImpl.__ = function(isNegative, used, digits) {
    if (isNegative == null) dart.nullFailed(I[7], 1211, 22, "isNegative");
    if (used == null) dart.nullFailed(I[7], 1211, 38, "used");
    if (digits == null) dart.nullFailed(I[7], 1211, 55, "digits");
    core._BigIntImpl._normalized.call(this, isNegative, core._BigIntImpl._normalize(used, digits), digits);
  }).prototype = core._BigIntImpl.prototype;
  (core._BigIntImpl._normalized = function(isNegative, _used, _digits) {
    if (isNegative == null) dart.nullFailed(I[7], 1214, 32, "isNegative");
    if (_used == null) dart.nullFailed(I[7], 1214, 49, "_used");
    if (_digits == null) dart.nullFailed(I[7], 1214, 61, "_digits");
    this[_used$] = _used;
    this[_digits$] = _digits;
    this[_isNegative] = _used === 0 ? false : isNegative;
    ;
  }).prototype = core._BigIntImpl.prototype;
  dart.addTypeTests(core._BigIntImpl);
  dart.addTypeCaches(core._BigIntImpl);
  core._BigIntImpl[dart.implements] = () => [core.BigInt];
  dart.setMethodSignature(core._BigIntImpl, () => ({
    __proto__: dart.getMethods(core._BigIntImpl.__proto__),
    _negate: dart.fnType(core._BigIntImpl, []),
    abs: dart.fnType(core._BigIntImpl, []),
    [_dlShift]: dart.fnType(core._BigIntImpl, [core.int]),
    [_drShift]: dart.fnType(core._BigIntImpl, [core.int]),
    '<<': dart.fnType(core._BigIntImpl, [core.int]),
    '>>': dart.fnType(core._BigIntImpl, [core.int]),
    [_absCompare]: dart.fnType(core.int, [core._BigIntImpl]),
    compareTo: dart.fnType(core.int, [dart.nullable(core.Object)]),
    [$compareTo]: dart.fnType(core.int, [dart.nullable(core.Object)]),
    [_absAddSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    [_absSubSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    [_absAndSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    [_absAndNotSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    [_absOrSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    [_absXorSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
    '&': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '|': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '^': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '~': dart.fnType(core._BigIntImpl, []),
    '+': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '-': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '*': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    [_div]: dart.fnType(core._BigIntImpl, [core._BigIntImpl]),
    [_rem]: dart.fnType(core._BigIntImpl, [core._BigIntImpl]),
    [_divRem]: dart.fnType(dart.void, [core._BigIntImpl]),
    '~/': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    remainder: dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    '/': dart.fnType(core.double, [core.BigInt]),
    '<': dart.fnType(core.bool, [dart.nullable(core.Object)]),
    '<=': dart.fnType(core.bool, [dart.nullable(core.Object)]),
    '>': dart.fnType(core.bool, [dart.nullable(core.Object)]),
    '>=': dart.fnType(core.bool, [dart.nullable(core.Object)]),
    '%': dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    pow: dart.fnType(core._BigIntImpl, [core.int]),
    modPow: dart.fnType(core._BigIntImpl, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    modInverse: dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    gcd: dart.fnType(core._BigIntImpl, [dart.nullable(core.Object)]),
    toUnsigned: dart.fnType(core._BigIntImpl, [core.int]),
    toSigned: dart.fnType(core._BigIntImpl, [core.int]),
    toInt: dart.fnType(core.int, []),
    toDouble: dart.fnType(core.double, []),
    [_toRadixCodeUnit]: dart.fnType(core.int, [core.int]),
    toRadixString: dart.fnType(core.String, [core.int]),
    [_toHexString]: dart.fnType(core.String, [])
  }));
  dart.setGetterSignature(core._BigIntImpl, () => ({
    __proto__: dart.getGetters(core._BigIntImpl.__proto__),
    [_isZero]: core.bool,
    bitLength: core.int,
    sign: core.int,
    isEven: core.bool,
    isOdd: core.bool,
    isNegative: core.bool,
    isValidInt: core.bool
  }));
  dart.setLibraryUri(core._BigIntImpl, I[8]);
  dart.setFieldSignature(core._BigIntImpl, () => ({
    __proto__: dart.getFields(core._BigIntImpl.__proto__),
    [_isNegative]: dart.finalFieldType(core.bool),
    [_digits$]: dart.finalFieldType(typed_data.Uint16List),
    [_used$]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(core._BigIntImpl, ['compareTo', '_equals', 'toString']);
  dart.defineExtensionAccessors(core._BigIntImpl, ['hashCode']);
  dart.defineLazy(core._BigIntImpl, {
    /*core._BigIntImpl._digitBits*/get _digitBits() {
      return 16;
    },
    /*core._BigIntImpl._digitBase*/get _digitBase() {
      return 65536;
    },
    /*core._BigIntImpl._digitMask*/get _digitMask() {
      return 65535;
    },
    /*core._BigIntImpl.zero*/get zero() {
      return core._BigIntImpl._fromInt(0);
    },
    /*core._BigIntImpl.one*/get one() {
      return core._BigIntImpl._fromInt(1);
    },
    /*core._BigIntImpl.two*/get two() {
      return core._BigIntImpl._fromInt(2);
    },
    /*core._BigIntImpl._minusOne*/get _minusOne() {
      return core._BigIntImpl.one._negate();
    },
    /*core._BigIntImpl._bigInt10000*/get _bigInt10000() {
      return core._BigIntImpl._fromInt(10000);
    },
    /*core._BigIntImpl._lastDividendDigits*/get _lastDividendDigits() {
      return null;
    },
    set _lastDividendDigits(_) {},
    /*core._BigIntImpl._lastDividendUsed*/get _lastDividendUsed() {
      return null;
    },
    set _lastDividendUsed(_) {},
    /*core._BigIntImpl._lastDivisorDigits*/get _lastDivisorDigits() {
      return null;
    },
    set _lastDivisorDigits(_) {},
    /*core._BigIntImpl._lastDivisorUsed*/get _lastDivisorUsed() {
      return null;
    },
    set _lastDivisorUsed(_) {},
    /*core._BigIntImpl._lastQuoRemDigits*/get _lastQuoRemDigits() {
      return null;
    },
    set _lastQuoRemDigits(_) {},
    /*core._BigIntImpl._lastQuoRemUsed*/get _lastQuoRemUsed() {
      return null;
    },
    set _lastQuoRemUsed(_) {},
    /*core._BigIntImpl._lastRemUsed*/get _lastRemUsed() {
      return null;
    },
    set _lastRemUsed(_) {},
    /*core._BigIntImpl._lastRem_nsh*/get _lastRem_nsh() {
      return null;
    },
    set _lastRem_nsh(_) {},
    /*core._BigIntImpl._parseRE*/get _parseRE() {
      return core.RegExp.new("^\\s*([+-]?)((0x[a-f0-9]+)|(\\d+)|([a-z0-9]+))\\s*$", {caseSensitive: false});
    },
    set _parseRE(_) {},
    /*core._BigIntImpl._bitsForFromDouble*/get _bitsForFromDouble() {
      return _native_typed_data.NativeUint8List.new(8);
    },
    /*core._BigIntImpl._simpleValidIntDigits*/get _simpleValidIntDigits() {
      return 3;
    }
  }, false);
  core._BigIntReduction = class _BigIntReduction extends core.Object {};
  (core._BigIntReduction.new = function() {
    ;
  }).prototype = core._BigIntReduction.prototype;
  dart.addTypeTests(core._BigIntReduction);
  dart.addTypeCaches(core._BigIntReduction);
  dart.setLibraryUri(core._BigIntReduction, I[8]);
  var _modulus$ = dart.privateName(core, "_modulus");
  var _normalizedModulus = dart.privateName(core, "_normalizedModulus");
  var _reduce = dart.privateName(core, "_reduce");
  core._BigIntClassic = class _BigIntClassic extends core.Object {
    convert(x, resultDigits) {
      if (x == null) dart.nullFailed(I[7], 2976, 27, "x");
      if (resultDigits == null) dart.nullFailed(I[7], 2976, 41, "resultDigits");
      let digits = null;
      let used = null;
      if (dart.test(x[_isNegative]) || dart.notNull(x[_absCompare](this[_modulus$])) >= 0) {
        let remainder = x[_rem](this[_modulus$]);
        if (dart.test(x[_isNegative]) && dart.notNull(remainder[_used$]) > 0) {
          if (!dart.test(remainder[_isNegative])) dart.assertFailed(null, I[7], 2982, 16, "remainder._isNegative");
          remainder = remainder['+'](this[_modulus$]);
        }
        if (!!dart.test(remainder[_isNegative])) dart.assertFailed(null, I[7], 2985, 14, "!remainder._isNegative");
        used = remainder[_used$];
        digits = remainder[_digits$];
      } else {
        used = x[_used$];
        digits = x[_digits$];
      }
      let i = used;
      while ((i = dart.notNull(i) - 1) >= 0) {
        resultDigits[$_set](i, digits[$_get](i));
      }
      return used;
    }
    revert(xDigits, xUsed) {
      if (xDigits == null) dart.nullFailed(I[7], 2999, 33, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 2999, 46, "xUsed");
      return new core._BigIntImpl.__(false, xUsed, xDigits);
    }
    [_reduce](xDigits, xUsed) {
      if (xDigits == null) dart.nullFailed(I[7], 3003, 26, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 3003, 39, "xUsed");
      if (dart.notNull(xUsed) < dart.notNull(this[_modulus$][_used$])) {
        return xUsed;
      }
      let reverted = this.revert(xDigits, xUsed);
      let rem = reverted[_rem](this[_normalizedModulus]);
      return this.convert(rem, xDigits);
    }
    sqr(xDigits, xUsed, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 3012, 22, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 3012, 35, "xUsed");
      if (resultDigits == null) dart.nullFailed(I[7], 3012, 53, "resultDigits");
      let b = new core._BigIntImpl.__(false, xUsed, xDigits);
      let b2 = b['*'](b);
      for (let i = 0; i < dart.notNull(b2[_used$]); i = i + 1) {
        resultDigits[$_set](i, b2[_digits$][$_get](i));
      }
      for (let i = b2[_used$]; dart.notNull(i) < 2 * dart.notNull(xUsed); i = dart.notNull(i) + 1) {
        resultDigits[$_set](i, 0);
      }
      return this[_reduce](resultDigits, 2 * dart.notNull(xUsed));
    }
    mul(xDigits, xUsed, yDigits, yUsed, resultDigits) {
      if (xDigits == null) dart.nullFailed(I[7], 3024, 22, "xDigits");
      if (xUsed == null) dart.nullFailed(I[7], 3024, 35, "xUsed");
      if (yDigits == null) dart.nullFailed(I[7], 3024, 53, "yDigits");
      if (yUsed == null) dart.nullFailed(I[7], 3024, 66, "yUsed");
      if (resultDigits == null) dart.nullFailed(I[7], 3025, 18, "resultDigits");
      let resultUsed = core._BigIntImpl._mulDigits(xDigits, xUsed, yDigits, yUsed, resultDigits);
      return this[_reduce](resultDigits, resultUsed);
    }
  };
  (core._BigIntClassic.new = function(_modulus) {
    if (_modulus == null) dart.nullFailed(I[7], 2971, 23, "_modulus");
    this[_modulus$] = _modulus;
    this[_normalizedModulus] = _modulus['<<'](16 - _modulus[_digits$][$_get](dart.notNull(_modulus[_used$]) - 1)[$bitLength]);
    ;
  }).prototype = core._BigIntClassic.prototype;
  dart.addTypeTests(core._BigIntClassic);
  dart.addTypeCaches(core._BigIntClassic);
  core._BigIntClassic[dart.implements] = () => [core._BigIntReduction];
  dart.setMethodSignature(core._BigIntClassic, () => ({
    __proto__: dart.getMethods(core._BigIntClassic.__proto__),
    convert: dart.fnType(core.int, [core._BigIntImpl, typed_data.Uint16List]),
    revert: dart.fnType(core._BigIntImpl, [typed_data.Uint16List, core.int]),
    [_reduce]: dart.fnType(core.int, [typed_data.Uint16List, core.int]),
    sqr: dart.fnType(core.int, [typed_data.Uint16List, core.int, typed_data.Uint16List]),
    mul: dart.fnType(core.int, [typed_data.Uint16List, core.int, typed_data.Uint16List, core.int, typed_data.Uint16List])
  }));
  dart.setLibraryUri(core._BigIntClassic, I[8]);
  dart.setFieldSignature(core._BigIntClassic, () => ({
    __proto__: dart.getFields(core._BigIntClassic.__proto__),
    [_modulus$]: dart.finalFieldType(core._BigIntImpl),
    [_normalizedModulus]: dart.finalFieldType(core._BigIntImpl)
  }));
  var message$11 = dart.privateName(core, "Deprecated.message");
  core.Deprecated = class Deprecated extends core.Object {
    get message() {
      return this[message$11];
    }
    set message(value) {
      super.message = value;
    }
    get expires() {
      return this.message;
    }
    toString() {
      return "Deprecated feature: " + dart.str(this.message);
    }
  };
  (core.Deprecated.new = function(message) {
    if (message == null) dart.nullFailed(I[165], 77, 25, "message");
    this[message$11] = message;
    ;
  }).prototype = core.Deprecated.prototype;
  dart.addTypeTests(core.Deprecated);
  dart.addTypeCaches(core.Deprecated);
  dart.setGetterSignature(core.Deprecated, () => ({
    __proto__: dart.getGetters(core.Deprecated.__proto__),
    expires: core.String
  }));
  dart.setLibraryUri(core.Deprecated, I[8]);
  dart.setFieldSignature(core.Deprecated, () => ({
    __proto__: dart.getFields(core.Deprecated.__proto__),
    message: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core.Deprecated, ['toString']);
  core._Override = class _Override extends core.Object {};
  (core._Override.new = function() {
    ;
  }).prototype = core._Override.prototype;
  dart.addTypeTests(core._Override);
  dart.addTypeCaches(core._Override);
  dart.setLibraryUri(core._Override, I[8]);
  core.Provisional = class Provisional extends core.Object {
    get message() {
      return null;
    }
  };
  (core.Provisional.new = function(opts) {
    let message = opts && 'message' in opts ? opts.message : null;
    ;
  }).prototype = core.Provisional.prototype;
  dart.addTypeTests(core.Provisional);
  dart.addTypeCaches(core.Provisional);
  dart.setGetterSignature(core.Provisional, () => ({
    __proto__: dart.getGetters(core.Provisional.__proto__),
    message: dart.nullable(core.String)
  }));
  dart.setLibraryUri(core.Provisional, I[8]);
  var name$12 = dart.privateName(core, "pragma.name");
  var options$ = dart.privateName(core, "pragma.options");
  core.pragma = class pragma extends core.Object {
    get name() {
      return this[name$12];
    }
    set name(value) {
      super.name = value;
    }
    get options() {
      return this[options$];
    }
    set options(value) {
      super.options = value;
    }
  };
  (core.pragma.__ = function(name, options = null) {
    if (name == null) dart.nullFailed(I[165], 188, 23, "name");
    this[name$12] = name;
    this[options$] = options;
    ;
  }).prototype = core.pragma.prototype;
  dart.addTypeTests(core.pragma);
  dart.addTypeCaches(core.pragma);
  dart.setLibraryUri(core.pragma, I[8]);
  dart.setFieldSignature(core.pragma, () => ({
    __proto__: dart.getFields(core.pragma.__proto__),
    name: dart.finalFieldType(core.String),
    options: dart.finalFieldType(dart.nullable(core.Object))
  }));
  core.BigInt = class BigInt extends core.Object {
    static get zero() {
      return core._BigIntImpl.zero;
    }
    static get one() {
      return core._BigIntImpl.one;
    }
    static get two() {
      return core._BigIntImpl.two;
    }
    static parse(source, opts) {
      if (source == null) dart.nullFailed(I[7], 262, 30, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      return core._BigIntImpl.parse(source, {radix: radix});
    }
    static tryParse(source, opts) {
      if (source == null) dart.nullFailed(I[7], 266, 34, "source");
      let radix = opts && 'radix' in opts ? opts.radix : null;
      return core._BigIntImpl._tryParse(source, {radix: radix});
    }
  };
  (core.BigInt[dart.mixinNew] = function() {
  }).prototype = core.BigInt.prototype;
  dart.addTypeTests(core.BigInt);
  dart.addTypeCaches(core.BigInt);
  core.BigInt[dart.implements] = () => [core.Comparable$(core.BigInt)];
  dart.setLibraryUri(core.BigInt, I[8]);
  core.bool = class bool extends core.Object {
    static is(o) {
      return o === true || o === false;
    }
    static as(o) {
      if (o === true || o === false) return o;
      return dart.as(o, core.bool);
    }
    static fromEnvironment(name, opts) {
      if (name == null) dart.nullFailed(I[7], 657, 39, "name");
      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : false;
      if (defaultValue == null) dart.nullFailed(I[7], 657, 51, "defaultValue");
      dart.throw(new core.UnsupportedError.new("bool.fromEnvironment can only be used as a const constructor"));
    }
    static hasEnvironment(name) {
      if (name == null) dart.nullFailed(I[7], 664, 38, "name");
      dart.throw(new core.UnsupportedError.new("bool.hasEnvironment can only be used as a const constructor"));
    }
    get [$hashCode]() {
      return super[$hashCode];
    }
    [$bitAnd](other) {
      if (other == null) dart.nullFailed(I[166], 93, 24, "other");
      return dart.test(other) && this;
    }
    [$bitOr](other) {
      if (other == null) dart.nullFailed(I[166], 99, 24, "other");
      return dart.test(other) || this;
    }
    [$bitXor](other) {
      if (other == null) dart.nullFailed(I[166], 105, 24, "other");
      return !dart.test(other) === this;
    }
    [$toString]() {
      return this ? "true" : "false";
    }
  };
  (core.bool[dart.mixinNew] = function() {
  }).prototype = core.bool.prototype;
  dart.addTypeCaches(core.bool);
  dart.setMethodSignature(core.bool, () => ({
    __proto__: dart.getMethods(core.bool.__proto__),
    [$bitAnd]: dart.fnType(core.bool, [core.bool]),
    [$bitOr]: dart.fnType(core.bool, [core.bool]),
    [$bitXor]: dart.fnType(core.bool, [core.bool])
  }));
  dart.setLibraryUri(core.bool, I[8]);
  const _is_Comparable_default = Symbol('_is_Comparable_default');
  core.Comparable$ = dart.generic(T => {
    class Comparable extends core.Object {
      static compare(a, b) {
        if (a == null) dart.nullFailed(I[167], 88, 33, "a");
        if (b == null) dart.nullFailed(I[167], 88, 47, "b");
        return a[$compareTo](b);
      }
    }
    (Comparable.new = function() {
      ;
    }).prototype = Comparable.prototype;
    dart.addTypeTests(Comparable);
    Comparable.prototype[_is_Comparable_default] = true;
    dart.addTypeCaches(Comparable);
    dart.setLibraryUri(Comparable, I[8]);
    return Comparable;
  });
  core.Comparable = core.Comparable$();
  dart.addTypeTests(core.Comparable, _is_Comparable_default);
  var isUtc$ = dart.privateName(core, "DateTime.isUtc");
  var _value$4 = dart.privateName(core, "_value");
  core.DateTime = class DateTime extends core.Object {
    get isUtc() {
      return this[isUtc$];
    }
    set isUtc(value) {
      super.isUtc = value;
    }
    static _microsecondInRoundedMilliseconds(microsecond) {
      if (microsecond == null) dart.nullFailed(I[7], 341, 52, "microsecond");
      return (dart.notNull(microsecond) / 1000)[$round]();
    }
    static parse(formattedString) {
      if (formattedString == null) dart.nullFailed(I[168], 264, 32, "formattedString");
      let re = core.DateTime._parseFormat;
      let match = re.firstMatch(formattedString);
      if (match != null) {
        function parseIntOrZero(matched) {
          if (matched == null) return 0;
          return core.int.parse(matched);
        }
        dart.fn(parseIntOrZero, T$0.StringNToint());
        function parseMilliAndMicroseconds(matched) {
          if (matched == null) return 0;
          let length = matched.length;
          if (!(length >= 1)) dart.assertFailed(null, I[168], 279, 16, "length >= 1");
          let result = 0;
          for (let i = 0; i < 6; i = i + 1) {
            result = result * 10;
            if (i < matched.length) {
              result = result + ((matched[$codeUnitAt](i) ^ 48) >>> 0);
            }
          }
          return result;
        }
        dart.fn(parseMilliAndMicroseconds, T$0.StringNToint());
        let years = core.int.parse(dart.nullCheck(match._get(1)));
        let month = core.int.parse(dart.nullCheck(match._get(2)));
        let day = core.int.parse(dart.nullCheck(match._get(3)));
        let hour = parseIntOrZero(match._get(4));
        let minute = parseIntOrZero(match._get(5));
        let second = parseIntOrZero(match._get(6));
        let milliAndMicroseconds = parseMilliAndMicroseconds(match._get(7));
        let millisecond = (dart.notNull(milliAndMicroseconds) / 1000)[$truncate]();
        let microsecond = milliAndMicroseconds[$remainder](1000);
        let isUtc = false;
        if (match._get(8) != null) {
          isUtc = true;
          let tzSign = match._get(9);
          if (tzSign != null) {
            let sign = tzSign === "-" ? -1 : 1;
            let hourDifference = core.int.parse(dart.nullCheck(match._get(10)));
            let minuteDifference = parseIntOrZero(match._get(11));
            minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNull(hourDifference);
            minute = dart.notNull(minute) - sign * dart.notNull(minuteDifference);
          }
        }
        let value = core.DateTime._brokenDownDateToValue(years, month, day, hour, minute, second, millisecond, microsecond, isUtc);
        if (value == null) {
          dart.throw(new core.FormatException.new("Time out of range", formattedString));
        }
        return new core.DateTime._withValue(value, {isUtc: isUtc});
      } else {
        dart.throw(new core.FormatException.new("Invalid date format", formattedString));
      }
    }
    static tryParse(formattedString) {
      if (formattedString == null) dart.nullFailed(I[168], 330, 36, "formattedString");
      try {
        return core.DateTime.parse(formattedString);
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.FormatException.is(ex)) {
          return null;
        } else
          throw e;
      }
    }
    _equals(other) {
      if (other == null) return false;
      return core.DateTime.is(other) && this[_value$4] == other.millisecondsSinceEpoch && this.isUtc == other.isUtc;
    }
    isBefore(other) {
      if (other == null) dart.nullFailed(I[7], 426, 26, "other");
      return dart.notNull(this[_value$4]) < dart.notNull(other.millisecondsSinceEpoch);
    }
    isAfter(other) {
      if (other == null) dart.nullFailed(I[7], 429, 25, "other");
      return dart.notNull(this[_value$4]) > dart.notNull(other.millisecondsSinceEpoch);
    }
    isAtSameMomentAs(other) {
      if (other == null) dart.nullFailed(I[7], 432, 34, "other");
      return this[_value$4] == other.millisecondsSinceEpoch;
    }
    compareTo(other) {
      if (other == null) dart.nullFailed(I[7], 436, 26, "other");
      return this[_value$4][$compareTo](other.millisecondsSinceEpoch);
    }
    get hashCode() {
      return (dart.notNull(this[_value$4]) ^ this[_value$4][$rightShift](30)) & 1073741823;
    }
    toLocal() {
      if (dart.test(this.isUtc)) {
        return new core.DateTime._withValue(this[_value$4], {isUtc: false});
      }
      return this;
    }
    toUtc() {
      if (dart.test(this.isUtc)) return this;
      return new core.DateTime._withValue(this[_value$4], {isUtc: true});
    }
    static _fourDigits(n) {
      if (n == null) dart.nullFailed(I[168], 492, 33, "n");
      let absN = n[$abs]();
      let sign = dart.notNull(n) < 0 ? "-" : "";
      if (absN >= 1000) return dart.str(n);
      if (absN >= 100) return sign + "0" + dart.str(absN);
      if (absN >= 10) return sign + "00" + dart.str(absN);
      return sign + "000" + dart.str(absN);
    }
    static _sixDigits(n) {
      if (n == null) dart.nullFailed(I[168], 501, 32, "n");
      if (!(dart.notNull(n) < -9999 || dart.notNull(n) > 9999)) dart.assertFailed(null, I[168], 502, 12, "n < -9999 || n > 9999");
      let absN = n[$abs]();
      let sign = dart.notNull(n) < 0 ? "-" : "+";
      if (absN >= 100000) return sign + dart.str(absN);
      return sign + "0" + dart.str(absN);
    }
    static _threeDigits(n) {
      if (n == null) dart.nullFailed(I[168], 509, 34, "n");
      if (dart.notNull(n) >= 100) return dart.str(n);
      if (dart.notNull(n) >= 10) return "0" + dart.str(n);
      return "00" + dart.str(n);
    }
    static _twoDigits(n) {
      if (n == null) dart.nullFailed(I[168], 515, 32, "n");
      if (dart.notNull(n) >= 10) return dart.str(n);
      return "0" + dart.str(n);
    }
    toString() {
      let y = core.DateTime._fourDigits(this.year);
      let m = core.DateTime._twoDigits(this.month);
      let d = core.DateTime._twoDigits(this.day);
      let h = core.DateTime._twoDigits(this.hour);
      let min = core.DateTime._twoDigits(this.minute);
      let sec = core.DateTime._twoDigits(this.second);
      let ms = core.DateTime._threeDigits(this.millisecond);
      let us = this.microsecond === 0 ? "" : core.DateTime._threeDigits(this.microsecond);
      if (dart.test(this.isUtc)) {
        return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + " " + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us) + "Z";
      } else {
        return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + " " + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us);
      }
    }
    toIso8601String() {
      let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 9999 ? core.DateTime._fourDigits(this.year) : core.DateTime._sixDigits(this.year);
      let m = core.DateTime._twoDigits(this.month);
      let d = core.DateTime._twoDigits(this.day);
      let h = core.DateTime._twoDigits(this.hour);
      let min = core.DateTime._twoDigits(this.minute);
      let sec = core.DateTime._twoDigits(this.second);
      let ms = core.DateTime._threeDigits(this.millisecond);
      let us = this.microsecond === 0 ? "" : core.DateTime._threeDigits(this.microsecond);
      if (dart.test(this.isUtc)) {
        return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + "T" + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us) + "Z";
      } else {
        return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + "T" + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us);
      }
    }
    add(duration) {
      if (duration == null) dart.nullFailed(I[7], 372, 25, "duration");
      return new core.DateTime._withValue(dart.notNull(this[_value$4]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
    }
    subtract(duration) {
      if (duration == null) dart.nullFailed(I[7], 377, 30, "duration");
      return new core.DateTime._withValue(dart.notNull(this[_value$4]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
    }
    difference(other) {
      if (other == null) dart.nullFailed(I[7], 382, 32, "other");
      return new core.Duration.new({milliseconds: dart.notNull(this[_value$4]) - dart.notNull(other[_value$4])});
    }
    static _brokenDownDateToValue(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
      if (year == null) dart.nullFailed(I[7], 346, 42, "year");
      if (month == null) dart.nullFailed(I[7], 346, 52, "month");
      if (day == null) dart.nullFailed(I[7], 346, 63, "day");
      if (hour == null) dart.nullFailed(I[7], 346, 72, "hour");
      if (minute == null) dart.nullFailed(I[7], 347, 11, "minute");
      if (second == null) dart.nullFailed(I[7], 347, 23, "second");
      if (millisecond == null) dart.nullFailed(I[7], 347, 35, "millisecond");
      if (microsecond == null) dart.nullFailed(I[7], 347, 52, "microsecond");
      if (isUtc == null) dart.nullFailed(I[7], 347, 70, "isUtc");
      return _js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc);
    }
    get millisecondsSinceEpoch() {
      return this[_value$4];
    }
    get microsecondsSinceEpoch() {
      return dart.notNull(this[_value$4]) * 1000;
    }
    get timeZoneName() {
      if (dart.test(this.isUtc)) return "UTC";
      return _js_helper.Primitives.getTimeZoneName(this);
    }
    get timeZoneOffset() {
      if (dart.test(this.isUtc)) return core.Duration.zero;
      return new core.Duration.new({minutes: _js_helper.Primitives.getTimeZoneOffsetInMinutes(this)});
    }
    get year() {
      return _js_helper.Primitives.getYear(this);
    }
    get month() {
      return _js_helper.Primitives.getMonth(this);
    }
    get day() {
      return _js_helper.Primitives.getDay(this);
    }
    get hour() {
      return _js_helper.Primitives.getHours(this);
    }
    get minute() {
      return _js_helper.Primitives.getMinutes(this);
    }
    get second() {
      return _js_helper.Primitives.getSeconds(this);
    }
    get millisecond() {
      return _js_helper.Primitives.getMilliseconds(this);
    }
    get microsecond() {
      return 0;
    }
    get weekday() {
      return _js_helper.Primitives.getWeekday(this);
    }
  };
  (core.DateTime.new = function(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, microsecond = 0) {
    if (year == null) dart.nullFailed(I[168], 172, 16, "year");
    if (month == null) dart.nullFailed(I[168], 173, 12, "month");
    if (day == null) dart.nullFailed(I[168], 174, 11, "day");
    if (hour == null) dart.nullFailed(I[168], 175, 11, "hour");
    if (minute == null) dart.nullFailed(I[168], 176, 11, "minute");
    if (second == null) dart.nullFailed(I[168], 177, 11, "second");
    if (millisecond == null) dart.nullFailed(I[168], 178, 11, "millisecond");
    if (microsecond == null) dart.nullFailed(I[168], 179, 11, "microsecond");
    core.DateTime._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, false);
  }).prototype = core.DateTime.prototype;
  (core.DateTime.utc = function(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, microsecond = 0) {
    if (year == null) dart.nullFailed(I[168], 192, 20, "year");
    if (month == null) dart.nullFailed(I[168], 193, 12, "month");
    if (day == null) dart.nullFailed(I[168], 194, 11, "day");
    if (hour == null) dart.nullFailed(I[168], 195, 11, "hour");
    if (minute == null) dart.nullFailed(I[168], 196, 11, "minute");
    if (second == null) dart.nullFailed(I[168], 197, 11, "second");
    if (millisecond == null) dart.nullFailed(I[168], 198, 11, "millisecond");
    if (microsecond == null) dart.nullFailed(I[168], 199, 11, "microsecond");
    core.DateTime._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, true);
  }).prototype = core.DateTime.prototype;
  (core.DateTime.now = function() {
    core.DateTime._now.call(this);
  }).prototype = core.DateTime.prototype;
  (core.DateTime.fromMillisecondsSinceEpoch = function(millisecondsSinceEpoch, opts) {
    if (millisecondsSinceEpoch == null) dart.nullFailed(I[7], 308, 43, "millisecondsSinceEpoch");
    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
    if (isUtc == null) dart.nullFailed(I[7], 309, 13, "isUtc");
    core.DateTime._withValue.call(this, millisecondsSinceEpoch, {isUtc: isUtc});
  }).prototype = core.DateTime.prototype;
  (core.DateTime.fromMicrosecondsSinceEpoch = function(microsecondsSinceEpoch, opts) {
    if (microsecondsSinceEpoch == null) dart.nullFailed(I[7], 313, 43, "microsecondsSinceEpoch");
    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
    if (isUtc == null) dart.nullFailed(I[7], 314, 13, "isUtc");
    core.DateTime._withValue.call(this, core.DateTime._microsecondInRoundedMilliseconds(microsecondsSinceEpoch), {isUtc: isUtc});
  }).prototype = core.DateTime.prototype;
  (core.DateTime._withValue = function(_value, opts) {
    if (_value == null) dart.nullFailed(I[168], 366, 28, "_value");
    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : null;
    if (isUtc == null) dart.nullFailed(I[168], 366, 51, "isUtc");
    this[_value$4] = _value;
    this[isUtc$] = isUtc;
    if (this.millisecondsSinceEpoch[$abs]() > 8640000000000000.0 || this.millisecondsSinceEpoch[$abs]() === 8640000000000000.0 && this.microsecond !== 0) {
      dart.throw(new core.ArgumentError.new("DateTime is outside valid range: " + dart.str(this.millisecondsSinceEpoch)));
    }
    _internal.checkNotNullable(core.bool, this.isUtc, "isUtc");
  }).prototype = core.DateTime.prototype;
  (core.DateTime._internal = function(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
    if (year == null) dart.nullFailed(I[7], 320, 26, "year");
    if (month == null) dart.nullFailed(I[7], 320, 36, "month");
    if (day == null) dart.nullFailed(I[7], 320, 47, "day");
    if (hour == null) dart.nullFailed(I[7], 320, 56, "hour");
    if (minute == null) dart.nullFailed(I[7], 320, 66, "minute");
    if (second == null) dart.nullFailed(I[7], 321, 11, "second");
    if (millisecond == null) dart.nullFailed(I[7], 321, 23, "millisecond");
    if (microsecond == null) dart.nullFailed(I[7], 321, 40, "microsecond");
    if (isUtc == null) dart.nullFailed(I[7], 321, 58, "isUtc");
    this[isUtc$] = isUtc;
    this[_value$4] = core.int.as(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
    ;
  }).prototype = core.DateTime.prototype;
  (core.DateTime._now = function() {
    this[isUtc$] = false;
    this[_value$4] = _js_helper.Primitives.dateNow();
    ;
  }).prototype = core.DateTime.prototype;
  dart.addTypeTests(core.DateTime);
  dart.addTypeCaches(core.DateTime);
  core.DateTime[dart.implements] = () => [core.Comparable$(core.DateTime)];
  dart.setMethodSignature(core.DateTime, () => ({
    __proto__: dart.getMethods(core.DateTime.__proto__),
    isBefore: dart.fnType(core.bool, [core.DateTime]),
    isAfter: dart.fnType(core.bool, [core.DateTime]),
    isAtSameMomentAs: dart.fnType(core.bool, [core.DateTime]),
    compareTo: dart.fnType(core.int, [core.DateTime]),
    [$compareTo]: dart.fnType(core.int, [core.DateTime]),
    toLocal: dart.fnType(core.DateTime, []),
    toUtc: dart.fnType(core.DateTime, []),
    toIso8601String: dart.fnType(core.String, []),
    add: dart.fnType(core.DateTime, [core.Duration]),
    subtract: dart.fnType(core.DateTime, [core.Duration]),
    difference: dart.fnType(core.Duration, [core.DateTime])
  }));
  dart.setGetterSignature(core.DateTime, () => ({
    __proto__: dart.getGetters(core.DateTime.__proto__),
    millisecondsSinceEpoch: core.int,
    microsecondsSinceEpoch: core.int,
    timeZoneName: core.String,
    timeZoneOffset: core.Duration,
    year: core.int,
    month: core.int,
    day: core.int,
    hour: core.int,
    minute: core.int,
    second: core.int,
    millisecond: core.int,
    microsecond: core.int,
    weekday: core.int
  }));
  dart.setLibraryUri(core.DateTime, I[8]);
  dart.setFieldSignature(core.DateTime, () => ({
    __proto__: dart.getFields(core.DateTime.__proto__),
    [_value$4]: dart.finalFieldType(core.int),
    isUtc: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(core.DateTime, ['_equals', 'compareTo', 'toString']);
  dart.defineExtensionAccessors(core.DateTime, ['hashCode']);
  dart.defineLazy(core.DateTime, {
    /*core.DateTime.monday*/get monday() {
      return 1;
    },
    /*core.DateTime.tuesday*/get tuesday() {
      return 2;
    },
    /*core.DateTime.wednesday*/get wednesday() {
      return 3;
    },
    /*core.DateTime.thursday*/get thursday() {
      return 4;
    },
    /*core.DateTime.friday*/get friday() {
      return 5;
    },
    /*core.DateTime.saturday*/get saturday() {
      return 6;
    },
    /*core.DateTime.sunday*/get sunday() {
      return 7;
    },
    /*core.DateTime.daysPerWeek*/get daysPerWeek() {
      return 7;
    },
    /*core.DateTime.january*/get january() {
      return 1;
    },
    /*core.DateTime.february*/get february() {
      return 2;
    },
    /*core.DateTime.march*/get march() {
      return 3;
    },
    /*core.DateTime.april*/get april() {
      return 4;
    },
    /*core.DateTime.may*/get may() {
      return 5;
    },
    /*core.DateTime.june*/get june() {
      return 6;
    },
    /*core.DateTime.july*/get july() {
      return 7;
    },
    /*core.DateTime.august*/get august() {
      return 8;
    },
    /*core.DateTime.september*/get september() {
      return 9;
    },
    /*core.DateTime.october*/get october() {
      return 10;
    },
    /*core.DateTime.november*/get november() {
      return 11;
    },
    /*core.DateTime.december*/get december() {
      return 12;
    },
    /*core.DateTime.monthsPerYear*/get monthsPerYear() {
      return 12;
    },
    /*core.DateTime._maxMillisecondsSinceEpoch*/get _maxMillisecondsSinceEpoch() {
      return 8640000000000000.0;
    },
    /*core.DateTime._parseFormat*/get _parseFormat() {
      return core.RegExp.new("^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)" + "(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d+))?)?)?" + "( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$");
    }
  }, false);
  var _duration$ = dart.privateName(core, "Duration._duration");
  var _duration = dart.privateName(core, "_duration");
  core.Duration = class Duration extends core.Object {
    get [_duration]() {
      return this[_duration$];
    }
    set [_duration](value) {
      super[_duration] = value;
    }
    ['+'](other) {
      if (other == null) dart.nullFailed(I[169], 148, 32, "other");
      return new core.Duration._microseconds(dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
    }
    ['-'](other) {
      if (other == null) dart.nullFailed(I[169], 154, 32, "other");
      return new core.Duration._microseconds(dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
    }
    ['*'](factor) {
      if (factor == null) dart.nullFailed(I[169], 163, 27, "factor");
      return new core.Duration._microseconds((dart.notNull(this[_duration]) * dart.notNull(factor))[$round]());
    }
    ['~/'](quotient) {
      if (quotient == null) dart.nullFailed(I[169], 171, 28, "quotient");
      if (quotient === 0) dart.throw(new core.IntegerDivisionByZeroException.new());
      return new core.Duration._microseconds((dart.notNull(this[_duration]) / dart.notNull(quotient))[$truncate]());
    }
    ['<'](other) {
      if (other == null) dart.nullFailed(I[169], 179, 28, "other");
      return dart.notNull(this[_duration]) < dart.notNull(other[_duration]);
    }
    ['>'](other) {
      if (other == null) dart.nullFailed(I[169], 182, 28, "other");
      return dart.notNull(this[_duration]) > dart.notNull(other[_duration]);
    }
    ['<='](other) {
      if (other == null) dart.nullFailed(I[169], 185, 29, "other");
      return dart.notNull(this[_duration]) <= dart.notNull(other[_duration]);
    }
    ['>='](other) {
      if (other == null) dart.nullFailed(I[169], 188, 29, "other");
      return dart.notNull(this[_duration]) >= dart.notNull(other[_duration]);
    }
    get inDays() {
      return (dart.notNull(this[_duration]) / 86400000000.0)[$truncate]();
    }
    get inHours() {
      return (dart.notNull(this[_duration]) / 3600000000.0)[$truncate]();
    }
    get inMinutes() {
      return (dart.notNull(this[_duration]) / 60000000)[$truncate]();
    }
    get inSeconds() {
      return (dart.notNull(this[_duration]) / 1000000)[$truncate]();
    }
    get inMilliseconds() {
      return (dart.notNull(this[_duration]) / 1000)[$truncate]();
    }
    get inMicroseconds() {
      return this[_duration];
    }
    _equals(other) {
      if (other == null) return false;
      return core.Duration.is(other) && this[_duration] == other.inMicroseconds;
    }
    get hashCode() {
      return dart.hashCode(this[_duration]);
    }
    compareTo(other) {
      core.Duration.as(other);
      if (other == null) dart.nullFailed(I[169], 246, 26, "other");
      return this[_duration][$compareTo](other[_duration]);
    }
    toString() {
      function sixDigits(n) {
        if (n == null) dart.nullFailed(I[169], 260, 26, "n");
        if (dart.notNull(n) >= 100000) return dart.str(n);
        if (dart.notNull(n) >= 10000) return "0" + dart.str(n);
        if (dart.notNull(n) >= 1000) return "00" + dart.str(n);
        if (dart.notNull(n) >= 100) return "000" + dart.str(n);
        if (dart.notNull(n) >= 10) return "0000" + dart.str(n);
        return "00000" + dart.str(n);
      }
      dart.fn(sixDigits, T$0.intToString());
      function twoDigits(n) {
        if (n == null) dart.nullFailed(I[169], 269, 26, "n");
        if (dart.notNull(n) >= 10) return dart.str(n);
        return "0" + dart.str(n);
      }
      dart.fn(twoDigits, T$0.intToString());
      if (dart.notNull(this.inMicroseconds) < 0) {
        return "-" + dart.str(this._negate());
      }
      let twoDigitMinutes = twoDigits(this.inMinutes[$remainder](60));
      let twoDigitSeconds = twoDigits(this.inSeconds[$remainder](60));
      let sixDigitUs = sixDigits(this.inMicroseconds[$remainder](1000000));
      return dart.str(this.inHours) + ":" + dart.str(twoDigitMinutes) + ":" + dart.str(twoDigitSeconds) + "." + dart.str(sixDigitUs);
    }
    get isNegative() {
      return dart.notNull(this[_duration]) < 0;
    }
    abs() {
      return new core.Duration._microseconds(this[_duration][$abs]());
    }
    _negate() {
      return new core.Duration._microseconds(0 - dart.notNull(this[_duration]));
    }
  };
  (core.Duration.new = function(opts) {
    let days = opts && 'days' in opts ? opts.days : 0;
    if (days == null) dart.nullFailed(I[169], 129, 12, "days");
    let hours = opts && 'hours' in opts ? opts.hours : 0;
    if (hours == null) dart.nullFailed(I[169], 130, 11, "hours");
    let minutes = opts && 'minutes' in opts ? opts.minutes : 0;
    if (minutes == null) dart.nullFailed(I[169], 131, 11, "minutes");
    let seconds = opts && 'seconds' in opts ? opts.seconds : 0;
    if (seconds == null) dart.nullFailed(I[169], 132, 11, "seconds");
    let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0;
    if (milliseconds == null) dart.nullFailed(I[169], 133, 11, "milliseconds");
    let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0;
    if (microseconds == null) dart.nullFailed(I[169], 134, 11, "microseconds");
    core.Duration._microseconds.call(this, 86400000000.0 * dart.notNull(days) + 3600000000.0 * dart.notNull(hours) + 60000000 * dart.notNull(minutes) + 1000000 * dart.notNull(seconds) + 1000 * dart.notNull(milliseconds) + dart.notNull(microseconds));
  }).prototype = core.Duration.prototype;
  (core.Duration._microseconds = function(_duration) {
    if (_duration == null) dart.nullFailed(I[169], 144, 37, "_duration");
    this[_duration$] = _duration;
    ;
  }).prototype = core.Duration.prototype;
  dart.addTypeTests(core.Duration);
  dart.addTypeCaches(core.Duration);
  core.Duration[dart.implements] = () => [core.Comparable$(core.Duration)];
  dart.setMethodSignature(core.Duration, () => ({
    __proto__: dart.getMethods(core.Duration.__proto__),
    '+': dart.fnType(core.Duration, [core.Duration]),
    '-': dart.fnType(core.Duration, [core.Duration]),
    '*': dart.fnType(core.Duration, [core.num]),
    '~/': dart.fnType(core.Duration, [core.int]),
    '<': dart.fnType(core.bool, [core.Duration]),
    '>': dart.fnType(core.bool, [core.Duration]),
    '<=': dart.fnType(core.bool, [core.Duration]),
    '>=': dart.fnType(core.bool, [core.Duration]),
    compareTo: dart.fnType(core.int, [dart.nullable(core.Object)]),
    [$compareTo]: dart.fnType(core.int, [dart.nullable(core.Object)]),
    abs: dart.fnType(core.Duration, []),
    _negate: dart.fnType(core.Duration, [])
  }));
  dart.setGetterSignature(core.Duration, () => ({
    __proto__: dart.getGetters(core.Duration.__proto__),
    inDays: core.int,
    inHours: core.int,
    inMinutes: core.int,
    inSeconds: core.int,
    inMilliseconds: core.int,
    inMicroseconds: core.int,
    isNegative: core.bool
  }));
  dart.setLibraryUri(core.Duration, I[8]);
  dart.setFieldSignature(core.Duration, () => ({
    __proto__: dart.getFields(core.Duration.__proto__),
    [_duration]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(core.Duration, ['_equals', 'compareTo', 'toString']);
  dart.defineExtensionAccessors(core.Duration, ['hashCode']);
  dart.defineLazy(core.Duration, {
    /*core.Duration.microsecondsPerMillisecond*/get microsecondsPerMillisecond() {
      return 1000;
    },
    /*core.Duration.millisecondsPerSecond*/get millisecondsPerSecond() {
      return 1000;
    },
    /*core.Duration.secondsPerMinute*/get secondsPerMinute() {
      return 60;
    },
    /*core.Duration.minutesPerHour*/get minutesPerHour() {
      return 60;
    },
    /*core.Duration.hoursPerDay*/get hoursPerDay() {
      return 24;
    },
    /*core.Duration.microsecondsPerSecond*/get microsecondsPerSecond() {
      return 1000000;
    },
    /*core.Duration.microsecondsPerMinute*/get microsecondsPerMinute() {
      return 60000000;
    },
    /*core.Duration.microsecondsPerHour*/get microsecondsPerHour() {
      return 3600000000.0;
    },
    /*core.Duration.microsecondsPerDay*/get microsecondsPerDay() {
      return 86400000000.0;
    },
    /*core.Duration.millisecondsPerMinute*/get millisecondsPerMinute() {
      return 60000;
    },
    /*core.Duration.millisecondsPerHour*/get millisecondsPerHour() {
      return 3600000;
    },
    /*core.Duration.millisecondsPerDay*/get millisecondsPerDay() {
      return 86400000;
    },
    /*core.Duration.secondsPerHour*/get secondsPerHour() {
      return 3600;
    },
    /*core.Duration.secondsPerDay*/get secondsPerDay() {
      return 86400;
    },
    /*core.Duration.minutesPerDay*/get minutesPerDay() {
      return 1440;
    },
    /*core.Duration.zero*/get zero() {
      return C[420] || CT.C420;
    }
  }, false);
  core.TypeError = class TypeError extends core.Error {};
  (core.TypeError.new = function() {
    core.TypeError.__proto__.new.call(this);
    ;
  }).prototype = core.TypeError.prototype;
  dart.addTypeTests(core.TypeError);
  dart.addTypeCaches(core.TypeError);
  dart.setLibraryUri(core.TypeError, I[8]);
  core.CastError = class CastError extends core.Error {};
  (core.CastError.new = function() {
    core.CastError.__proto__.new.call(this);
    ;
  }).prototype = core.CastError.prototype;
  dart.addTypeTests(core.CastError);
  dart.addTypeCaches(core.CastError);
  dart.setLibraryUri(core.CastError, I[8]);
  core.NullThrownError = class NullThrownError extends core.Error {
    toString() {
      return "Throw of null.";
    }
  };
  (core.NullThrownError.new = function() {
    core.NullThrownError.__proto__.new.call(this);
    ;
  }).prototype = core.NullThrownError.prototype;
  dart.addTypeTests(core.NullThrownError);
  dart.addTypeCaches(core.NullThrownError);
  dart.setLibraryUri(core.NullThrownError, I[8]);
  dart.defineExtensionMethods(core.NullThrownError, ['toString']);
  var invalidValue = dart.privateName(core, "ArgumentError.invalidValue");
  var name$13 = dart.privateName(core, "ArgumentError.name");
  var message$12 = dart.privateName(core, "ArgumentError.message");
  core.ArgumentError = class ArgumentError extends core.Error {
    get invalidValue() {
      return this[invalidValue];
    }
    set invalidValue(value) {
      super.invalidValue = value;
    }
    get name() {
      return this[name$13];
    }
    set name(value) {
      super.name = value;
    }
    get message() {
      return this[message$12];
    }
    set message(value) {
      super.message = value;
    }
    static checkNotNull(T, argument, name = null) {
      if (argument == null) dart.throw(new core.ArgumentError.notNull(name));
      return argument;
    }
    get [_errorName$]() {
      return "Invalid argument" + (!dart.test(this[_hasValue$]) ? "(s)" : "");
    }
    get [_errorExplanation$]() {
      return "";
    }
    toString() {
      let name = this[$name];
      let nameString = name == null ? "" : " (" + dart.str(name) + ")";
      let message = this[$message];
      let messageString = message == null ? "" : ": " + dart.str(message);
      let prefix = dart.str(this[_errorName$]) + nameString + messageString;
      if (!dart.test(this[_hasValue$])) return prefix;
      let explanation = this[_errorExplanation$];
      let errorValue = core.Error.safeToString(this[$invalidValue]);
      return prefix + dart.str(explanation) + ": " + dart.str(errorValue);
    }
  };
  (core.ArgumentError.new = function(message = null) {
    this[message$12] = message;
    this[invalidValue] = null;
    this[_hasValue$] = false;
    this[name$13] = null;
    core.ArgumentError.__proto__.new.call(this);
    ;
  }).prototype = core.ArgumentError.prototype;
  (core.ArgumentError.value = function(value, name = null, message = null) {
    this[name$13] = name;
    this[message$12] = message;
    this[invalidValue] = value;
    this[_hasValue$] = true;
    core.ArgumentError.__proto__.new.call(this);
    ;
  }).prototype = core.ArgumentError.prototype;
  (core.ArgumentError.notNull = function(name = null) {
    this[name$13] = name;
    this[_hasValue$] = false;
    this[message$12] = "Must not be null";
    this[invalidValue] = null;
    core.ArgumentError.__proto__.new.call(this);
    ;
  }).prototype = core.ArgumentError.prototype;
  dart.addTypeTests(core.ArgumentError);
  dart.addTypeCaches(core.ArgumentError);
  dart.setGetterSignature(core.ArgumentError, () => ({
    __proto__: dart.getGetters(core.ArgumentError.__proto__),
    [_errorName$]: core.String,
    [_errorExplanation$]: core.String
  }));
  dart.setLibraryUri(core.ArgumentError, I[8]);
  dart.setFieldSignature(core.ArgumentError, () => ({
    __proto__: dart.getFields(core.ArgumentError.__proto__),
    [_hasValue$]: dart.finalFieldType(core.bool),
    invalidValue: dart.finalFieldType(dart.dynamic),
    name: dart.finalFieldType(dart.nullable(core.String)),
    message: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(core.ArgumentError, ['toString']);
  dart.defineExtensionAccessors(core.ArgumentError, ['invalidValue', 'name', 'message']);
  var start = dart.privateName(core, "RangeError.start");
  var end = dart.privateName(core, "RangeError.end");
  core.RangeError = class RangeError extends core.ArgumentError {
    get start() {
      return this[start];
    }
    set start(value) {
      super.start = value;
    }
    get end() {
      return this[end];
    }
    set end(value) {
      super.end = value;
    }
    static checkValueInInterval(value, minValue, maxValue, name = null, message = null) {
      if (value == null) dart.nullFailed(I[170], 274, 39, "value");
      if (minValue == null) dart.nullFailed(I[170], 274, 50, "minValue");
      if (maxValue == null) dart.nullFailed(I[170], 274, 64, "maxValue");
      if (dart.notNull(value) < dart.notNull(minValue) || dart.notNull(value) > dart.notNull(maxValue)) {
        dart.throw(new core.RangeError.range(value, minValue, maxValue, name, message));
      }
      return value;
    }
    static checkValidIndex(index, indexable, name = null, length = null, message = null) {
      if (index == null) dart.nullFailed(I[170], 297, 34, "index");
      length == null ? length = core.int.as(dart.dload(indexable, 'length')) : null;
      if (0 > dart.notNull(index) || dart.notNull(index) >= dart.notNull(length)) {
        name == null ? name = "index" : null;
        dart.throw(new core.IndexError.new(index, indexable, name, message, length));
      }
      return index;
    }
    static checkValidRange(start, end, length, startName = null, endName = null, message = null) {
      if (start == null) dart.nullFailed(I[170], 322, 34, "start");
      if (length == null) dart.nullFailed(I[170], 322, 55, "length");
      if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(length)) {
        startName == null ? startName = "start" : null;
        dart.throw(new core.RangeError.range(start, 0, length, startName, message));
      }
      if (end != null) {
        if (dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length)) {
          endName == null ? endName = "end" : null;
          dart.throw(new core.RangeError.range(end, start, length, endName, message));
        }
        return end;
      }
      return length;
    }
    static checkNotNegative(value, name = null, message = null) {
      let t249;
      if (value == null) dart.nullFailed(I[170], 349, 35, "value");
      if (dart.notNull(value) < 0) {
        dart.throw(new core.RangeError.range(value, 0, null, (t249 = name, t249 == null ? "index" : t249), message));
      }
      return value;
    }
    get [_errorName$]() {
      return "RangeError";
    }
    get [_errorExplanation$]() {
      if (!dart.test(this[_hasValue$])) dart.assertFailed(null, I[170], 358, 12, "_hasValue");
      let explanation = "";
      let start = this.start;
      let end = this.end;
      if (start == null) {
        if (end != null) {
          explanation = ": Not less than or equal to " + dart.str(end);
        }
      } else if (end == null) {
        explanation = ": Not greater than or equal to " + dart.str(start);
      } else if (dart.notNull(end) > dart.notNull(start)) {
        explanation = ": Not in inclusive range " + dart.str(start) + ".." + dart.str(end);
      } else if (dart.notNull(end) < dart.notNull(start)) {
        explanation = ": Valid value range is empty";
      } else {
        explanation = ": Only valid value is " + dart.str(start);
      }
      return explanation;
    }
  };
  (core.RangeError.new = function(message) {
    this[start] = null;
    this[end] = null;
    core.RangeError.__proto__.new.call(this, message);
    ;
  }).prototype = core.RangeError.prototype;
  (core.RangeError.value = function(value, name = null, message = null) {
    let t249;
    if (value == null) dart.nullFailed(I[170], 229, 24, "value");
    this[start] = null;
    this[end] = null;
    core.RangeError.__proto__.value.call(this, value, name, (t249 = message, t249 == null ? "Value not in range" : t249));
    ;
  }).prototype = core.RangeError.prototype;
  (core.RangeError.range = function(invalidValue, minValue, maxValue, name = null, message = null) {
    let t249;
    if (invalidValue == null) dart.nullFailed(I[170], 247, 24, "invalidValue");
    this[start] = minValue;
    this[end] = maxValue;
    core.RangeError.__proto__.value.call(this, invalidValue, name, (t249 = message, t249 == null ? "Invalid value" : t249));
    ;
  }).prototype = core.RangeError.prototype;
  dart.addTypeTests(core.RangeError);
  dart.addTypeCaches(core.RangeError);
  dart.setLibraryUri(core.RangeError, I[8]);
  dart.setFieldSignature(core.RangeError, () => ({
    __proto__: dart.getFields(core.RangeError.__proto__),
    start: dart.finalFieldType(dart.nullable(core.num)),
    end: dart.finalFieldType(dart.nullable(core.num))
  }));
  var indexable$ = dart.privateName(core, "IndexError.indexable");
  var length$ = dart.privateName(core, "IndexError.length");
  core.IndexError = class IndexError extends core.ArgumentError {
    get indexable() {
      return this[indexable$];
    }
    set indexable(value) {
      super.indexable = value;
    }
    get length() {
      return this[length$];
    }
    set length(value) {
      super.length = value;
    }
    get start() {
      return 0;
    }
    get end() {
      return dart.notNull(this.length) - 1;
    }
    get [_errorName$]() {
      return "RangeError";
    }
    get [_errorExplanation$]() {
      if (!dart.test(this[_hasValue$])) dart.assertFailed(null, I[170], 412, 12, "_hasValue");
      let invalidValue = core.int.as(this[$invalidValue]);
      if (dart.notNull(invalidValue) < 0) {
        return ": index must not be negative";
      }
      if (this.length === 0) {
        return ": no indices are valid";
      }
      return ": index should be less than " + dart.str(this.length);
    }
  };
  (core.IndexError.new = function(invalidValue, indexable, name = null, message = null, length = null) {
    let t249, t249$;
    if (invalidValue == null) dart.nullFailed(I[170], 400, 18, "invalidValue");
    this[indexable$] = indexable;
    this[length$] = core.int.as((t249 = length, t249 == null ? dart.dload(indexable, 'length') : t249));
    core.IndexError.__proto__.value.call(this, invalidValue, name, (t249$ = message, t249$ == null ? "Index out of range" : t249$));
    ;
  }).prototype = core.IndexError.prototype;
  dart.addTypeTests(core.IndexError);
  dart.addTypeCaches(core.IndexError);
  core.IndexError[dart.implements] = () => [core.RangeError];
  dart.setGetterSignature(core.IndexError, () => ({
    __proto__: dart.getGetters(core.IndexError.__proto__),
    start: core.int,
    end: core.int
  }));
  dart.setLibraryUri(core.IndexError, I[8]);
  dart.setFieldSignature(core.IndexError, () => ({
    __proto__: dart.getFields(core.IndexError.__proto__),
    indexable: dart.finalFieldType(dart.dynamic),
    length: dart.finalFieldType(core.int)
  }));
  var _className = dart.privateName(core, "_className");
  core.AbstractClassInstantiationError = class AbstractClassInstantiationError extends core.Error {
    toString() {
      return "Cannot instantiate abstract class: '" + dart.str(this[_className]) + "'";
    }
  };
  (core.AbstractClassInstantiationError.new = function(className) {
    if (className == null) dart.nullFailed(I[170], 444, 42, "className");
    this[_className] = className;
    core.AbstractClassInstantiationError.__proto__.new.call(this);
    ;
  }).prototype = core.AbstractClassInstantiationError.prototype;
  dart.addTypeTests(core.AbstractClassInstantiationError);
  dart.addTypeCaches(core.AbstractClassInstantiationError);
  dart.setLibraryUri(core.AbstractClassInstantiationError, I[8]);
  dart.setFieldSignature(core.AbstractClassInstantiationError, () => ({
    __proto__: dart.getFields(core.AbstractClassInstantiationError.__proto__),
    [_className]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core.AbstractClassInstantiationError, ['toString']);
  core.NoSuchMethodError = class NoSuchMethodError extends core.Error {
    toString() {
      let sb = new core.StringBuffer.new("");
      let comma = "";
      let $arguments = this[_arguments$];
      if ($arguments != null) {
        for (let argument of $arguments) {
          sb.write(comma);
          sb.write(core.Error.safeToString(argument));
          comma = ", ";
        }
      }
      let namedArguments = this[_namedArguments$];
      if (namedArguments != null) {
        namedArguments[$forEach](dart.fn((key, value) => {
          if (key == null) dart.nullFailed(I[7], 822, 38, "key");
          sb.write(comma);
          sb.write(core._symbolToString(key));
          sb.write(": ");
          sb.write(core.Error.safeToString(value));
          comma = ", ";
        }, T$0.SymbolAnddynamicTovoid()));
      }
      let memberName = core._symbolToString(this[_memberName$]);
      let receiverText = core.Error.safeToString(this[_receiver$]);
      let actualParameters = dart.str(sb);
      let invocation = this[_invocation$];
      let failureMessage = dart.InvocationImpl.is(invocation) ? invocation.failureMessage : "method not found";
      return "NoSuchMethodError: '" + dart.str(memberName) + "'\n" + dart.str(failureMessage) + "\n" + "Receiver: " + dart.str(receiverText) + "\n" + "Arguments: [" + actualParameters + "]";
    }
  };
  (core.NoSuchMethodError._withInvocation = function(_receiver, invocation) {
    if (invocation == null) dart.nullFailed(I[7], 802, 64, "invocation");
    this[_receiver$] = _receiver;
    this[_memberName$] = invocation.memberName;
    this[_arguments$] = invocation.positionalArguments;
    this[_namedArguments$] = invocation.namedArguments;
    this[_invocation$] = invocation;
    core.NoSuchMethodError.__proto__.new.call(this);
    ;
  }).prototype = core.NoSuchMethodError.prototype;
  (core.NoSuchMethodError.new = function(receiver, memberName, positionalArguments, namedArguments) {
    if (memberName == null) dart.nullFailed(I[7], 789, 46, "memberName");
    this[_receiver$] = receiver;
    this[_memberName$] = memberName;
    this[_arguments$] = positionalArguments;
    this[_namedArguments$] = namedArguments;
    this[_invocation$] = null;
    core.NoSuchMethodError.__proto__.new.call(this);
    ;
  }).prototype = core.NoSuchMethodError.prototype;
  dart.addTypeTests(core.NoSuchMethodError);
  dart.addTypeCaches(core.NoSuchMethodError);
  dart.setLibraryUri(core.NoSuchMethodError, I[8]);
  dart.setFieldSignature(core.NoSuchMethodError, () => ({
    __proto__: dart.getFields(core.NoSuchMethodError.__proto__),
    [_receiver$]: dart.finalFieldType(dart.nullable(core.Object)),
    [_memberName$]: dart.finalFieldType(core.Symbol),
    [_arguments$]: dart.finalFieldType(dart.nullable(core.List)),
    [_namedArguments$]: dart.finalFieldType(dart.nullable(core.Map$(core.Symbol, dart.dynamic))),
    [_invocation$]: dart.finalFieldType(dart.nullable(core.Invocation))
  }));
  dart.defineExtensionMethods(core.NoSuchMethodError, ['toString']);
  var message$13 = dart.privateName(core, "UnsupportedError.message");
  core.UnsupportedError = class UnsupportedError extends core.Error {
    get message() {
      return this[message$13];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      return "Unsupported operation: " + dart.str(this.message);
    }
  };
  (core.UnsupportedError.new = function(message) {
    if (message == null) dart.nullFailed(I[170], 498, 32, "message");
    this[message$13] = message;
    core.UnsupportedError.__proto__.new.call(this);
    ;
  }).prototype = core.UnsupportedError.prototype;
  dart.addTypeTests(core.UnsupportedError);
  dart.addTypeCaches(core.UnsupportedError);
  dart.setLibraryUri(core.UnsupportedError, I[8]);
  dart.setFieldSignature(core.UnsupportedError, () => ({
    __proto__: dart.getFields(core.UnsupportedError.__proto__),
    message: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(core.UnsupportedError, ['toString']);
  var message$14 = dart.privateName(core, "UnimplementedError.message");
  core.UnimplementedError = class UnimplementedError extends core.Error {
    get message() {
      return this[message$14];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      let message = this.message;
      return message != null ? "UnimplementedError: " + dart.str(message) : "UnimplementedError";
    }
  };
  (core.UnimplementedError.new = function(message = null) {
    this[message$14] = message;
    core.UnimplementedError.__proto__.new.call(this);
    ;
  }).prototype = core.UnimplementedError.prototype;
  dart.addTypeTests(core.UnimplementedError);
  dart.addTypeCaches(core.UnimplementedError);
  core.UnimplementedError[dart.implements] = () => [core.UnsupportedError];
  dart.setLibraryUri(core.UnimplementedError, I[8]);
  dart.setFieldSignature(core.UnimplementedError, () => ({
    __proto__: dart.getFields(core.UnimplementedError.__proto__),
    message: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(core.UnimplementedError, ['toString']);
  var message$15 = dart.privateName(core, "StateError.message");
  core.StateError = class StateError extends core.Error {
    get message() {
      return this[message$15];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      return "Bad state: " + dart.str(this.message);
    }
  };
  (core.StateError.new = function(message) {
    if (message == null) dart.nullFailed(I[170], 535, 19, "message");
    this[message$15] = message;
    core.StateError.__proto__.new.call(this);
    ;
  }).prototype = core.StateError.prototype;
  dart.addTypeTests(core.StateError);
  dart.addTypeCaches(core.StateError);
  dart.setLibraryUri(core.StateError, I[8]);
  dart.setFieldSignature(core.StateError, () => ({
    __proto__: dart.getFields(core.StateError.__proto__),
    message: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core.StateError, ['toString']);
  var modifiedObject$ = dart.privateName(core, "ConcurrentModificationError.modifiedObject");
  core.ConcurrentModificationError = class ConcurrentModificationError extends core.Error {
    get modifiedObject() {
      return this[modifiedObject$];
    }
    set modifiedObject(value) {
      super.modifiedObject = value;
    }
    toString() {
      if (this.modifiedObject == null) {
        return "Concurrent modification during iteration.";
      }
      return "Concurrent modification during iteration: " + dart.str(core.Error.safeToString(this.modifiedObject)) + ".";
    }
  };
  (core.ConcurrentModificationError.new = function(modifiedObject = null) {
    this[modifiedObject$] = modifiedObject;
    core.ConcurrentModificationError.__proto__.new.call(this);
    ;
  }).prototype = core.ConcurrentModificationError.prototype;
  dart.addTypeTests(core.ConcurrentModificationError);
  dart.addTypeCaches(core.ConcurrentModificationError);
  dart.setLibraryUri(core.ConcurrentModificationError, I[8]);
  dart.setFieldSignature(core.ConcurrentModificationError, () => ({
    __proto__: dart.getFields(core.ConcurrentModificationError.__proto__),
    modifiedObject: dart.finalFieldType(dart.nullable(core.Object))
  }));
  dart.defineExtensionMethods(core.ConcurrentModificationError, ['toString']);
  core.OutOfMemoryError = class OutOfMemoryError extends core.Object {
    toString() {
      return "Out of Memory";
    }
    get stackTrace() {
      return null;
    }
  };
  (core.OutOfMemoryError.new = function() {
    ;
  }).prototype = core.OutOfMemoryError.prototype;
  dart.addTypeTests(core.OutOfMemoryError);
  dart.addTypeCaches(core.OutOfMemoryError);
  core.OutOfMemoryError[dart.implements] = () => [core.Error];
  dart.setGetterSignature(core.OutOfMemoryError, () => ({
    __proto__: dart.getGetters(core.OutOfMemoryError.__proto__),
    stackTrace: dart.nullable(core.StackTrace),
    [$stackTrace]: dart.nullable(core.StackTrace)
  }));
  dart.setLibraryUri(core.OutOfMemoryError, I[8]);
  dart.defineExtensionMethods(core.OutOfMemoryError, ['toString']);
  dart.defineExtensionAccessors(core.OutOfMemoryError, ['stackTrace']);
  core.StackOverflowError = class StackOverflowError extends core.Object {
    toString() {
      return "Stack Overflow";
    }
    get stackTrace() {
      return null;
    }
  };
  (core.StackOverflowError.new = function() {
    ;
  }).prototype = core.StackOverflowError.prototype;
  dart.addTypeTests(core.StackOverflowError);
  dart.addTypeCaches(core.StackOverflowError);
  core.StackOverflowError[dart.implements] = () => [core.Error];
  dart.setGetterSignature(core.StackOverflowError, () => ({
    __proto__: dart.getGetters(core.StackOverflowError.__proto__),
    stackTrace: dart.nullable(core.StackTrace),
    [$stackTrace]: dart.nullable(core.StackTrace)
  }));
  dart.setLibraryUri(core.StackOverflowError, I[8]);
  dart.defineExtensionMethods(core.StackOverflowError, ['toString']);
  dart.defineExtensionAccessors(core.StackOverflowError, ['stackTrace']);
  var variableName$ = dart.privateName(core, "CyclicInitializationError.variableName");
  core.CyclicInitializationError = class CyclicInitializationError extends core.Error {
    get variableName() {
      return this[variableName$];
    }
    set variableName(value) {
      super.variableName = value;
    }
    toString() {
      let variableName = this.variableName;
      return variableName == null ? "Reading static variable during its initialization" : "Reading static variable '" + dart.str(variableName) + "' during its initialization";
    }
  };
  (core.CyclicInitializationError.new = function(variableName = null) {
    this[variableName$] = variableName;
    core.CyclicInitializationError.__proto__.new.call(this);
    ;
  }).prototype = core.CyclicInitializationError.prototype;
  dart.addTypeTests(core.CyclicInitializationError);
  dart.addTypeCaches(core.CyclicInitializationError);
  dart.setLibraryUri(core.CyclicInitializationError, I[8]);
  dart.setFieldSignature(core.CyclicInitializationError, () => ({
    __proto__: dart.getFields(core.CyclicInitializationError.__proto__),
    variableName: dart.finalFieldType(dart.nullable(core.String))
  }));
  dart.defineExtensionMethods(core.CyclicInitializationError, ['toString']);
  core.Exception = class Exception extends core.Object {
    static new(message = null) {
      return new core._Exception.new(message);
    }
  };
  (core.Exception[dart.mixinNew] = function() {
  }).prototype = core.Exception.prototype;
  dart.addTypeTests(core.Exception);
  dart.addTypeCaches(core.Exception);
  dart.setLibraryUri(core.Exception, I[8]);
  core._Exception = class _Exception extends core.Object {
    toString() {
      let message = this.message;
      if (message == null) return "Exception";
      return "Exception: " + dart.str(message);
    }
  };
  (core._Exception.new = function(message = null) {
    this.message = message;
    ;
  }).prototype = core._Exception.prototype;
  dart.addTypeTests(core._Exception);
  dart.addTypeCaches(core._Exception);
  core._Exception[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(core._Exception, I[8]);
  dart.setFieldSignature(core._Exception, () => ({
    __proto__: dart.getFields(core._Exception.__proto__),
    message: dart.finalFieldType(dart.dynamic)
  }));
  dart.defineExtensionMethods(core._Exception, ['toString']);
  var message$16 = dart.privateName(core, "FormatException.message");
  var source$ = dart.privateName(core, "FormatException.source");
  var offset$ = dart.privateName(core, "FormatException.offset");
  core.FormatException = class FormatException extends core.Object {
    get message() {
      return this[message$16];
    }
    set message(value) {
      super.message = value;
    }
    get source() {
      return this[source$];
    }
    set source(value) {
      super.source = value;
    }
    get offset() {
      return this[offset$];
    }
    set offset(value) {
      super.offset = value;
    }
    toString() {
      let report = "FormatException";
      let message = this.message;
      if (message != null && "" !== message) {
        report = report + ": " + dart.str(message);
      }
      let offset = this.offset;
      let source = this.source;
      if (typeof source == 'string') {
        if (offset != null && (dart.notNull(offset) < 0 || dart.notNull(offset) > source.length)) {
          offset = null;
        }
        if (offset == null) {
          if (source.length > 78) {
            source = source[$substring](0, 75) + "...";
          }
          return report + "\n" + dart.str(source);
        }
        let lineNum = 1;
        let lineStart = 0;
        let previousCharWasCR = false;
        for (let i = 0; i < dart.notNull(offset); i = i + 1) {
          let char = source[$codeUnitAt](i);
          if (char === 10) {
            if (lineStart !== i || !previousCharWasCR) {
              lineNum = lineNum + 1;
            }
            lineStart = i + 1;
            previousCharWasCR = false;
          } else if (char === 13) {
            lineNum = lineNum + 1;
            lineStart = i + 1;
            previousCharWasCR = true;
          }
        }
        if (lineNum > 1) {
          report = report + (" (at line " + dart.str(lineNum) + ", character " + dart.str(dart.notNull(offset) - lineStart + 1) + ")\n");
        } else {
          report = report + (" (at character " + dart.str(dart.notNull(offset) + 1) + ")\n");
        }
        let lineEnd = source.length;
        for (let i = offset; dart.notNull(i) < source.length; i = dart.notNull(i) + 1) {
          let char = source[$codeUnitAt](i);
          if (char === 10 || char === 13) {
            lineEnd = i;
            break;
          }
        }
        let length = dart.notNull(lineEnd) - lineStart;
        let start = lineStart;
        let end = lineEnd;
        let prefix = "";
        let postfix = "";
        if (length > 78) {
          let index = dart.notNull(offset) - lineStart;
          if (index < 75) {
            end = start + 75;
            postfix = "...";
          } else if (dart.notNull(end) - dart.notNull(offset) < 75) {
            start = dart.notNull(end) - 75;
            prefix = "...";
          } else {
            start = dart.notNull(offset) - 36;
            end = dart.notNull(offset) + 36;
            prefix = postfix = "...";
          }
        }
        let slice = source[$substring](start, end);
        let markOffset = dart.notNull(offset) - start + prefix.length;
        return report + prefix + slice + postfix + "\n" + " "[$times](markOffset) + "^\n";
      } else {
        if (offset != null) {
          report = report + (" (at offset " + dart.str(offset) + ")");
        }
        return report;
      }
    }
  };
  (core.FormatException.new = function(message = "", source = null, offset = null) {
    if (message == null) dart.nullFailed(I[171], 68, 31, "message");
    this[message$16] = message;
    this[source$] = source;
    this[offset$] = offset;
    ;
  }).prototype = core.FormatException.prototype;
  dart.addTypeTests(core.FormatException);
  dart.addTypeCaches(core.FormatException);
  core.FormatException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(core.FormatException, I[8]);
  dart.setFieldSignature(core.FormatException, () => ({
    __proto__: dart.getFields(core.FormatException.__proto__),
    message: dart.finalFieldType(core.String),
    source: dart.finalFieldType(dart.dynamic),
    offset: dart.finalFieldType(dart.nullable(core.int))
  }));
  dart.defineExtensionMethods(core.FormatException, ['toString']);
  core.IntegerDivisionByZeroException = class IntegerDivisionByZeroException extends core.Object {
    toString() {
      return "IntegerDivisionByZeroException";
    }
  };
  (core.IntegerDivisionByZeroException.new = function() {
    ;
  }).prototype = core.IntegerDivisionByZeroException.prototype;
  dart.addTypeTests(core.IntegerDivisionByZeroException);
  dart.addTypeCaches(core.IntegerDivisionByZeroException);
  core.IntegerDivisionByZeroException[dart.implements] = () => [core.Exception];
  dart.setLibraryUri(core.IntegerDivisionByZeroException, I[8]);
  dart.defineExtensionMethods(core.IntegerDivisionByZeroException, ['toString']);
  var name$14 = dart.privateName(core, "Expando.name");
  var _getKey = dart.privateName(core, "_getKey");
  const _is_Expando_default = Symbol('_is_Expando_default');
  core.Expando$ = dart.generic(T => {
    var TN = () => (TN = dart.constFn(dart.nullable(T)))();
    class Expando extends core.Object {
      get name() {
        return this[name$14];
      }
      set name(value) {
        super.name = value;
      }
      [_getKey]() {
        let t249;
        let key = T$.StringN().as(_js_helper.Primitives.getProperty(this, "expando$key"));
        if (key == null) {
          key = "expando$key$" + dart.str((t249 = core.Expando._keyCount, core.Expando._keyCount = dart.notNull(t249) + 1, t249));
          _js_helper.Primitives.setProperty(this, "expando$key", key);
        }
        return key;
      }
      toString() {
        return "Expando:" + dart.str(this.name);
      }
      _get(object) {
        if (object == null) dart.nullFailed(I[7], 139, 25, "object");
        let values = _js_helper.Primitives.getProperty(object, "expando$values");
        return values == null ? null : TN().as(_js_helper.Primitives.getProperty(values, this[_getKey]()));
      }
      _set(object, value$) {
        let value = value$;
        if (object == null) dart.nullFailed(I[7], 147, 28, "object");
        TN().as(value);
        let values = _js_helper.Primitives.getProperty(object, "expando$values");
        if (values == null) {
          values = new core.Object.new();
          _js_helper.Primitives.setProperty(object, "expando$values", values);
        }
        _js_helper.Primitives.setProperty(values, this[_getKey](), value);
        return value$;
      }
    }
    (Expando.new = function(name = null) {
      this[name$14] = name;
      ;
    }).prototype = Expando.prototype;
    dart.addTypeTests(Expando);
    Expando.prototype[_is_Expando_default] = true;
    dart.addTypeCaches(Expando);
    dart.setMethodSignature(Expando, () => ({
      __proto__: dart.getMethods(Expando.__proto__),
      [_getKey]: dart.fnType(core.String, []),
      _get: dart.fnType(dart.nullable(T), [core.Object]),
      _set: dart.fnType(dart.void, [core.Object, dart.nullable(core.Object)])
    }));
    dart.setLibraryUri(Expando, I[8]);
    dart.setFieldSignature(Expando, () => ({
      __proto__: dart.getFields(Expando.__proto__),
      name: dart.finalFieldType(dart.nullable(core.String))
    }));
    dart.defineExtensionMethods(Expando, ['toString']);
    return Expando;
  });
  core.Expando = core.Expando$();
  dart.defineLazy(core.Expando, {
    /*core.Expando._KEY_PROPERTY_NAME*/get _KEY_PROPERTY_NAME() {
      return "expando$key";
    },
    /*core.Expando._EXPANDO_PROPERTY_NAME*/get _EXPANDO_PROPERTY_NAME() {
      return "expando$values";
    },
    /*core.Expando._keyCount*/get _keyCount() {
      return 0;
    },
    set _keyCount(_) {}
  }, false);
  dart.addTypeTests(core.Expando, _is_Expando_default);
  core.Function = class Function extends core.Object {
    static _toMangledNames(namedArguments) {
      if (namedArguments == null) dart.nullFailed(I[7], 111, 28, "namedArguments");
      let result = new (T$0.IdentityMapOfString$dynamic()).new();
      namedArguments[$forEach](dart.fn((symbol, value) => {
        if (symbol == null) dart.nullFailed(I[7], 113, 29, "symbol");
        result[$_set](core._symbolToString(symbol), value);
      }, T$0.SymbolAnddynamicTovoid()));
      return result;
    }
    static is(o) {
      return typeof o == "function";
    }
    static as(o) {
      if (typeof o == "function") return o;
      return dart.as(o, core.Function);
    }
    static apply($function, positionalArguments, namedArguments = null) {
      if ($function == null) dart.nullFailed(I[7], 96, 25, "function");
      positionalArguments == null ? positionalArguments = [] : null;
      if (namedArguments != null && dart.test(namedArguments[$isNotEmpty])) {
        let map = {};
        namedArguments[$forEach](dart.fn((symbol, arg) => {
          if (symbol == null) dart.nullFailed(I[7], 102, 31, "symbol");
          map[core._symbolToString(symbol)] = arg;
        }, T$0.SymbolAnddynamicTovoid()));
        return dart.dcall($function, positionalArguments, map);
      }
      return dart.dcall($function, positionalArguments);
    }
  };
  (core.Function.new = function() {
    ;
  }).prototype = core.Function.prototype;
  dart.addTypeCaches(core.Function);
  dart.setLibraryUri(core.Function, I[8]);
  var _positional = dart.privateName(core, "_positional");
  var _named = dart.privateName(core, "_named");
  core._Invocation = class _Invocation extends core.Object {
    get positionalArguments() {
      let t249;
      t249 = this[_positional];
      return t249 == null ? C[423] || CT.C423 : t249;
    }
    get namedArguments() {
      let t249;
      t249 = this[_named];
      return t249 == null ? C[424] || CT.C424 : t249;
    }
    get isMethod() {
      return this[_named] != null;
    }
    get isGetter() {
      return this[_positional] == null;
    }
    get isSetter() {
      return this[_positional] != null && this[_named] == null;
    }
    get isAccessor() {
      return this[_named] == null;
    }
    static _ensureNonNullTypes(types) {
      if (types == null) return C[0] || CT.C0;
      let typeArguments = T$.ListOfType().unmodifiable(types);
      for (let i = 0; i < dart.notNull(typeArguments[$length]); i = i + 1) {
        if (typeArguments[$_get](i) == null) {
          dart.throw(new core.ArgumentError.value(types, "types", "Type arguments must be non-null, was null at index " + dart.str(i) + "."));
        }
      }
      return typeArguments;
    }
  };
  (core._Invocation.method = function(memberName, types, positional, named) {
    if (memberName == null) dart.nullFailed(I[10], 99, 27, "memberName");
    this.memberName = memberName;
    this.typeArguments = core._Invocation._ensureNonNullTypes(types);
    this[_positional] = positional == null ? C[421] || CT.C421 : T$.ListOfObjectN().unmodifiable(positional);
    this[_named] = named == null || dart.test(named[$isEmpty]) ? C[422] || CT.C422 : T$0.MapOfSymbol$ObjectN().unmodifiable(named);
    ;
  }).prototype = core._Invocation.prototype;
  (core._Invocation.getter = function(memberName) {
    if (memberName == null) dart.nullFailed(I[10], 109, 27, "memberName");
    this.memberName = memberName;
    this.typeArguments = C[0] || CT.C0;
    this[_positional] = null;
    this[_named] = null;
    ;
  }).prototype = core._Invocation.prototype;
  (core._Invocation.setter = function(memberName, argument) {
    if (memberName == null) dart.nullFailed(I[10], 114, 27, "memberName");
    this.memberName = memberName;
    this.typeArguments = C[0] || CT.C0;
    this[_positional] = T$.ListOfObjectN().unmodifiable([argument]);
    this[_named] = null;
    ;
  }).prototype = core._Invocation.prototype;
  dart.addTypeTests(core._Invocation);
  dart.addTypeCaches(core._Invocation);
  core._Invocation[dart.implements] = () => [core.Invocation];
  dart.setGetterSignature(core._Invocation, () => ({
    __proto__: dart.getGetters(core._Invocation.__proto__),
    positionalArguments: core.List,
    namedArguments: core.Map$(core.Symbol, dart.dynamic),
    isMethod: core.bool,
    isGetter: core.bool,
    isSetter: core.bool,
    isAccessor: core.bool
  }));
  dart.setLibraryUri(core._Invocation, I[8]);
  dart.setFieldSignature(core._Invocation, () => ({
    __proto__: dart.getFields(core._Invocation.__proto__),
    memberName: dart.finalFieldType(core.Symbol),
    typeArguments: dart.finalFieldType(core.List$(core.Type)),
    [_positional]: dart.finalFieldType(dart.nullable(core.List$(dart.nullable(core.Object)))),
    [_named]: dart.finalFieldType(dart.nullable(core.Map$(core.Symbol, dart.nullable(core.Object))))
  }));
  var length$0 = dart.privateName(core, "_GeneratorIterable.length");
  var _generator = dart.privateName(core, "_generator");
  const _is__GeneratorIterable_default = Symbol('_is__GeneratorIterable_default');
  core._GeneratorIterable$ = dart.generic(E => {
    var intToE = () => (intToE = dart.constFn(dart.fnType(E, [core.int])))();
    class _GeneratorIterable extends _internal.ListIterable$(E) {
      get length() {
        return this[length$0];
      }
      set length(value) {
        super.length = value;
      }
      elementAt(index) {
        let t249;
        if (index == null) dart.nullFailed(I[34], 620, 19, "index");
        core.RangeError.checkValidIndex(index, this);
        t249 = index;
        return this[_generator](t249);
      }
      static _id(n) {
        if (n == null) dart.nullFailed(I[34], 626, 22, "n");
        return n;
      }
    }
    (_GeneratorIterable.new = function(length, generator) {
      let t249;
      if (length == null) dart.nullFailed(I[34], 615, 27, "length");
      this[length$0] = length;
      this[_generator] = (t249 = generator, t249 == null ? intToE().as(C[425] || CT.C425) : t249);
      _GeneratorIterable.__proto__.new.call(this);
      ;
    }).prototype = _GeneratorIterable.prototype;
    dart.addTypeTests(_GeneratorIterable);
    _GeneratorIterable.prototype[_is__GeneratorIterable_default] = true;
    dart.addTypeCaches(_GeneratorIterable);
    dart.setLibraryUri(_GeneratorIterable, I[8]);
    dart.setFieldSignature(_GeneratorIterable, () => ({
      __proto__: dart.getFields(_GeneratorIterable.__proto__),
      length: dart.finalFieldType(core.int),
      [_generator]: dart.finalFieldType(dart.fnType(E, [core.int]))
    }));
    dart.defineExtensionMethods(_GeneratorIterable, ['elementAt']);
    dart.defineExtensionAccessors(_GeneratorIterable, ['length']);
    return _GeneratorIterable;
  });
  core._GeneratorIterable = core._GeneratorIterable$();
  dart.addTypeTests(core._GeneratorIterable, _is__GeneratorIterable_default);
  const _is_BidirectionalIterator_default = Symbol('_is_BidirectionalIterator_default');
  core.BidirectionalIterator$ = dart.generic(E => {
    class BidirectionalIterator extends core.Object {}
    (BidirectionalIterator.new = function() {
      ;
    }).prototype = BidirectionalIterator.prototype;
    dart.addTypeTests(BidirectionalIterator);
    BidirectionalIterator.prototype[_is_BidirectionalIterator_default] = true;
    dart.addTypeCaches(BidirectionalIterator);
    BidirectionalIterator[dart.implements] = () => [core.Iterator$(E)];
    dart.setLibraryUri(BidirectionalIterator, I[8]);
    return BidirectionalIterator;
  });
  core.BidirectionalIterator = core.BidirectionalIterator$();
  dart.addTypeTests(core.BidirectionalIterator, _is_BidirectionalIterator_default);
  core.Null = class Null extends core.Object {
    static is(o) {
      return o == null;
    }
    static as(o) {
      if (o == null) return o;
      return dart.as(o, core.Null);
    }
    get hashCode() {
      return super[$hashCode];
    }
    toString() {
      return "null";
    }
  };
  (core.Null[dart.mixinNew] = function() {
  }).prototype = core.Null.prototype;
  dart.addTypeCaches(core.Null);
  dart.setLibraryUri(core.Null, I[8]);
  dart.defineExtensionMethods(core.Null, ['toString']);
  dart.defineExtensionAccessors(core.Null, ['hashCode']);
  core.Pattern = class Pattern extends core.Object {};
  (core.Pattern.new = function() {
    ;
  }).prototype = core.Pattern.prototype;
  dart.addTypeTests(core.Pattern);
  dart.addTypeCaches(core.Pattern);
  dart.setLibraryUri(core.Pattern, I[8]);
  core.RegExp = class RegExp extends core.Object {
    static new(source, opts) {
      if (source == null) dart.nullFailed(I[7], 688, 25, "source");
      let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
      if (multiLine == null) dart.nullFailed(I[7], 689, 17, "multiLine");
      let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
      if (caseSensitive == null) dart.nullFailed(I[7], 690, 16, "caseSensitive");
      let unicode = opts && 'unicode' in opts ? opts.unicode : false;
      if (unicode == null) dart.nullFailed(I[7], 691, 16, "unicode");
      let dotAll = opts && 'dotAll' in opts ? opts.dotAll : false;
      if (dotAll == null) dart.nullFailed(I[7], 692, 16, "dotAll");
      return new _js_helper.JSSyntaxRegExp.new(source, {multiLine: multiLine, caseSensitive: caseSensitive, unicode: unicode, dotAll: dotAll});
    }
    static escape(text) {
      if (text == null) dart.nullFailed(I[7], 700, 31, "text");
      return _js_helper.quoteStringForRegExp(text);
    }
  };
  (core.RegExp[dart.mixinNew] = function() {
  }).prototype = core.RegExp.prototype;
  dart.addTypeTests(core.RegExp);
  dart.addTypeCaches(core.RegExp);
  core.RegExp[dart.implements] = () => [core.Pattern];
  dart.setLibraryUri(core.RegExp, I[8]);
  const _is_Set_default = Symbol('_is_Set_default');
  core.Set$ = dart.generic(E => {
    class Set extends _internal.EfficientLengthIterable$(E) {
      static unmodifiable(elements) {
        if (elements == null) dart.nullFailed(I[172], 88, 40, "elements");
        return new (collection.UnmodifiableSetView$(E)).new((() => {
          let t249 = collection.LinkedHashSet$(E).of(elements);
          return t249;
        })());
      }
      static castFrom(S, T, source, opts) {
        if (source == null) dart.nullFailed(I[172], 109, 39, "source");
        let newSet = opts && 'newSet' in opts ? opts.newSet : null;
        return new (_internal.CastSet$(S, T)).new(source, newSet);
      }
    }
    dart.addTypeTests(Set);
    Set.prototype[_is_Set_default] = true;
    dart.addTypeCaches(Set);
    dart.setLibraryUri(Set, I[8]);
    return Set;
  });
  core.Set = core.Set$();
  dart.addTypeTests(core.Set, _is_Set_default);
  const _is_Sink_default = Symbol('_is_Sink_default');
  core.Sink$ = dart.generic(T => {
    class Sink extends core.Object {}
    (Sink.new = function() {
      ;
    }).prototype = Sink.prototype;
    dart.addTypeTests(Sink);
    Sink.prototype[_is_Sink_default] = true;
    dart.addTypeCaches(Sink);
    dart.setLibraryUri(Sink, I[8]);
    return Sink;
  });
  core.Sink = core.Sink$();
  dart.addTypeTests(core.Sink, _is_Sink_default);
  var _StringStackTrace__stackTrace = dart.privateName(core, "_StringStackTrace._stackTrace");
  core.StackTrace = class StackTrace extends core.Object {
    static get current() {
      return dart.stackTrace(Error());
    }
  };
  (core.StackTrace.new = function() {
    ;
  }).prototype = core.StackTrace.prototype;
  dart.addTypeTests(core.StackTrace);
  dart.addTypeCaches(core.StackTrace);
  dart.setLibraryUri(core.StackTrace, I[8]);
  dart.defineLazy(core.StackTrace, {
    /*core.StackTrace.empty*/get empty() {
      return C[426] || CT.C426;
    }
  }, false);
  var _stackTrace = dart.privateName(core, "_stackTrace");
  const _stackTrace$ = _StringStackTrace__stackTrace;
  core._StringStackTrace = class _StringStackTrace extends core.Object {
    get [_stackTrace]() {
      return this[_stackTrace$];
    }
    set [_stackTrace](value) {
      super[_stackTrace] = value;
    }
    toString() {
      return this[_stackTrace];
    }
  };
  (core._StringStackTrace.new = function(_stackTrace) {
    if (_stackTrace == null) dart.nullFailed(I[173], 56, 32, "_stackTrace");
    this[_stackTrace$] = _stackTrace;
    ;
  }).prototype = core._StringStackTrace.prototype;
  dart.addTypeTests(core._StringStackTrace);
  dart.addTypeCaches(core._StringStackTrace);
  core._StringStackTrace[dart.implements] = () => [core.StackTrace];
  dart.setLibraryUri(core._StringStackTrace, I[8]);
  dart.setFieldSignature(core._StringStackTrace, () => ({
    __proto__: dart.getFields(core._StringStackTrace.__proto__),
    [_stackTrace]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(core._StringStackTrace, ['toString']);
  var _start$2 = dart.privateName(core, "_start");
  var _stop = dart.privateName(core, "_stop");
  core.Stopwatch = class Stopwatch extends core.Object {
    get frequency() {
      return core.Stopwatch._frequency;
    }
    start() {
      let stop = this[_stop];
      if (stop != null) {
        this[_start$2] = dart.notNull(this[_start$2]) + (dart.notNull(core.Stopwatch._now()) - dart.notNull(stop));
        this[_stop] = null;
      }
    }
    stop() {
      this[_stop] == null ? this[_stop] = core.Stopwatch._now() : null;
    }
    reset() {
      let t250;
      this[_start$2] = (t250 = this[_stop], t250 == null ? core.Stopwatch._now() : t250);
    }
    get elapsedTicks() {
      let t250;
      return dart.notNull((t250 = this[_stop], t250 == null ? core.Stopwatch._now() : t250)) - dart.notNull(this[_start$2]);
    }
    get elapsed() {
      return new core.Duration.new({microseconds: this.elapsedMicroseconds});
    }
    get elapsedMicroseconds() {
      let ticks = this.elapsedTicks;
      if (core.Stopwatch._frequency === 1000000) return ticks;
      if (!(core.Stopwatch._frequency === 1000)) dart.assertFailed(null, I[7], 456, 12, "_frequency == 1000");
      return dart.notNull(ticks) * 1000;
    }
    get elapsedMilliseconds() {
      let ticks = this.elapsedTicks;
      if (core.Stopwatch._frequency === 1000) return ticks;
      if (!(core.Stopwatch._frequency === 1000000)) dart.assertFailed(null, I[7], 464, 12, "_frequency == 1000000");
      return (dart.notNull(ticks) / 1000)[$truncate]();
    }
    get isRunning() {
      return this[_stop] == null;
    }
    static _initTicker() {
      _js_helper.Primitives.initTicker();
      return _js_helper.Primitives.timerFrequency;
    }
    static _now() {
      return _js_helper.Primitives.timerTicks();
    }
  };
  (core.Stopwatch.new = function() {
    this[_start$2] = 0;
    this[_stop] = 0;
    core.Stopwatch._frequency;
  }).prototype = core.Stopwatch.prototype;
  dart.addTypeTests(core.Stopwatch);
  dart.addTypeCaches(core.Stopwatch);
  dart.setMethodSignature(core.Stopwatch, () => ({
    __proto__: dart.getMethods(core.Stopwatch.__proto__),
    start: dart.fnType(dart.void, []),
    stop: dart.fnType(dart.void, []),
    reset: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(core.Stopwatch, () => ({
    __proto__: dart.getGetters(core.Stopwatch.__proto__),
    frequency: core.int,
    elapsedTicks: core.int,
    elapsed: core.Duration,
    elapsedMicroseconds: core.int,
    elapsedMilliseconds: core.int,
    isRunning: core.bool
  }));
  dart.setLibraryUri(core.Stopwatch, I[8]);
  dart.setFieldSignature(core.Stopwatch, () => ({
    __proto__: dart.getFields(core.Stopwatch.__proto__),
    [_start$2]: dart.fieldType(core.int),
    [_stop]: dart.fieldType(dart.nullable(core.int))
  }));
  dart.defineLazy(core.Stopwatch, {
    /*core.Stopwatch._frequency*/get _frequency() {
      return core.Stopwatch._initTicker();
    }
  }, false);
  var string$ = dart.privateName(core, "Runes.string");
  core.Runes = class Runes extends core.Iterable$(core.int) {
    get string() {
      return this[string$];
    }
    set string(value) {
      super.string = value;
    }
    get iterator() {
      return new core.RuneIterator.new(this.string);
    }
    get last() {
      if (this.string.length === 0) {
        dart.throw(new core.StateError.new("No elements."));
      }
      let length = this.string.length;
      let code = this.string[$codeUnitAt](length - 1);
      if (dart.test(core._isTrailSurrogate(code)) && this.string.length > 1) {
        let previousCode = this.string[$codeUnitAt](length - 2);
        if (dart.test(core._isLeadSurrogate(previousCode))) {
          return core._combineSurrogatePair(previousCode, code);
        }
      }
      return code;
    }
  };
  (core.Runes.new = function(string) {
    if (string == null) dart.nullFailed(I[174], 604, 14, "string");
    this[string$] = string;
    core.Runes.__proto__.new.call(this);
    ;
  }).prototype = core.Runes.prototype;
  dart.addTypeTests(core.Runes);
  dart.addTypeCaches(core.Runes);
  dart.setGetterSignature(core.Runes, () => ({
    __proto__: dart.getGetters(core.Runes.__proto__),
    iterator: core.RuneIterator,
    [$iterator]: core.RuneIterator
  }));
  dart.setLibraryUri(core.Runes, I[8]);
  dart.setFieldSignature(core.Runes, () => ({
    __proto__: dart.getFields(core.Runes.__proto__),
    string: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionAccessors(core.Runes, ['iterator', 'last']);
  var string$0 = dart.privateName(core, "RuneIterator.string");
  var _currentCodePoint = dart.privateName(core, "_currentCodePoint");
  var _position$0 = dart.privateName(core, "_position");
  var _nextPosition = dart.privateName(core, "_nextPosition");
  var _checkSplitSurrogate = dart.privateName(core, "_checkSplitSurrogate");
  core.RuneIterator = class RuneIterator extends core.Object {
    get string() {
      return this[string$0];
    }
    set string(value) {
      super.string = value;
    }
    [_checkSplitSurrogate](index) {
      if (index == null) dart.nullFailed(I[174], 675, 33, "index");
      if (dart.notNull(index) > 0 && dart.notNull(index) < this.string.length && dart.test(core._isLeadSurrogate(this.string[$codeUnitAt](dart.notNull(index) - 1))) && dart.test(core._isTrailSurrogate(this.string[$codeUnitAt](index)))) {
        dart.throw(new core.ArgumentError.new("Index inside surrogate pair: " + dart.str(index)));
      }
    }
    get rawIndex() {
      return this[_position$0] != this[_nextPosition] ? this[_position$0] : -1;
    }
    set rawIndex(rawIndex) {
      if (rawIndex == null) dart.nullFailed(I[174], 697, 25, "rawIndex");
      core.RangeError.checkValidIndex(rawIndex, this.string, "rawIndex");
      this.reset(rawIndex);
      this.moveNext();
    }
    reset(rawIndex = 0) {
      if (rawIndex == null) dart.nullFailed(I[174], 712, 19, "rawIndex");
      core.RangeError.checkValueInInterval(rawIndex, 0, this.string.length, "rawIndex");
      this[_checkSplitSurrogate](rawIndex);
      this[_position$0] = this[_nextPosition] = rawIndex;
      this[_currentCodePoint] = -1;
    }
    get current() {
      return this[_currentCodePoint];
    }
    get currentSize() {
      return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position$0]);
    }
    get currentAsString() {
      if (this[_position$0] == this[_nextPosition]) return "";
      if (dart.notNull(this[_position$0]) + 1 === this[_nextPosition]) return this.string[$_get](this[_position$0]);
      return this.string[$substring](this[_position$0], this[_nextPosition]);
    }
    moveNext() {
      this[_position$0] = this[_nextPosition];
      if (this[_position$0] === this.string.length) {
        this[_currentCodePoint] = -1;
        return false;
      }
      let codeUnit = this.string[$codeUnitAt](this[_position$0]);
      let nextPosition = dart.notNull(this[_position$0]) + 1;
      if (dart.test(core._isLeadSurrogate(codeUnit)) && nextPosition < this.string.length) {
        let nextCodeUnit = this.string[$codeUnitAt](nextPosition);
        if (dart.test(core._isTrailSurrogate(nextCodeUnit))) {
          this[_nextPosition] = nextPosition + 1;
          this[_currentCodePoint] = core._combineSurrogatePair(codeUnit, nextCodeUnit);
          return true;
        }
      }
      this[_nextPosition] = nextPosition;
      this[_currentCodePoint] = codeUnit;
      return true;
    }
    movePrevious() {
      this[_nextPosition] = this[_position$0];
      if (this[_position$0] === 0) {
        this[_currentCodePoint] = -1;
        return false;
      }
      let position = dart.notNull(this[_position$0]) - 1;
      let codeUnit = this.string[$codeUnitAt](position);
      if (dart.test(core._isTrailSurrogate(codeUnit)) && position > 0) {
        let prevCodeUnit = this.string[$codeUnitAt](position - 1);
        if (dart.test(core._isLeadSurrogate(prevCodeUnit))) {
          this[_position$0] = position - 1;
          this[_currentCodePoint] = core._combineSurrogatePair(prevCodeUnit, codeUnit);
          return true;
        }
      }
      this[_position$0] = position;
      this[_currentCodePoint] = codeUnit;
      return true;
    }
  };
  (core.RuneIterator.new = function(string) {
    if (string == null) dart.nullFailed(I[174], 653, 23, "string");
    this[_currentCodePoint] = -1;
    this[string$0] = string;
    this[_position$0] = 0;
    this[_nextPosition] = 0;
    ;
  }).prototype = core.RuneIterator.prototype;
  (core.RuneIterator.at = function(string, index) {
    if (string == null) dart.nullFailed(I[174], 666, 26, "string");
    if (index == null) dart.nullFailed(I[174], 666, 38, "index");
    this[_currentCodePoint] = -1;
    this[string$0] = string;
    this[_position$0] = index;
    this[_nextPosition] = index;
    core.RangeError.checkValueInInterval(index, 0, string.length);
    this[_checkSplitSurrogate](index);
  }).prototype = core.RuneIterator.prototype;
  dart.addTypeTests(core.RuneIterator);
  dart.addTypeCaches(core.RuneIterator);
  core.RuneIterator[dart.implements] = () => [core.BidirectionalIterator$(core.int)];
  dart.setMethodSignature(core.RuneIterator, () => ({
    __proto__: dart.getMethods(core.RuneIterator.__proto__),
    [_checkSplitSurrogate]: dart.fnType(dart.void, [core.int]),
    reset: dart.fnType(dart.void, [], [core.int]),
    moveNext: dart.fnType(core.bool, []),
    movePrevious: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(core.RuneIterator, () => ({
    __proto__: dart.getGetters(core.RuneIterator.__proto__),
    rawIndex: core.int,
    current: core.int,
    currentSize: core.int,
    currentAsString: core.String
  }));
  dart.setSetterSignature(core.RuneIterator, () => ({
    __proto__: dart.getSetters(core.RuneIterator.__proto__),
    rawIndex: core.int
  }));
  dart.setLibraryUri(core.RuneIterator, I[8]);
  dart.setFieldSignature(core.RuneIterator, () => ({
    __proto__: dart.getFields(core.RuneIterator.__proto__),
    string: dart.finalFieldType(core.String),
    [_position$0]: dart.fieldType(core.int),
    [_nextPosition]: dart.fieldType(core.int),
    [_currentCodePoint]: dart.fieldType(core.int)
  }));
  core.Symbol = class Symbol extends core.Object {};
  (core.Symbol[dart.mixinNew] = function() {
  }).prototype = core.Symbol.prototype;
  dart.addTypeTests(core.Symbol);
  dart.addTypeCaches(core.Symbol);
  dart.setLibraryUri(core.Symbol, I[8]);
  dart.defineLazy(core.Symbol, {
    /*core.Symbol.unaryMinus*/get unaryMinus() {
      return C[427] || CT.C427;
    },
    /*core.Symbol.empty*/get empty() {
      return C[428] || CT.C428;
    }
  }, false);
  core.Uri = class Uri extends core.Object {
    static get base() {
      let uri = _js_helper.Primitives.currentUri();
      if (uri != null) return core.Uri.parse(uri);
      dart.throw(new core.UnsupportedError.new("'Uri.base' is not supported"));
    }
    static dataFromString(content, opts) {
      if (content == null) dart.nullFailed(I[175], 283, 37, "content");
      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
      let base64 = opts && 'base64' in opts ? opts.base64 : false;
      if (base64 == null) dart.nullFailed(I[175], 287, 12, "base64");
      let data = core.UriData.fromString(content, {mimeType: mimeType, encoding: encoding, parameters: parameters, base64: base64});
      return data.uri;
    }
    static dataFromBytes(bytes, opts) {
      if (bytes == null) dart.nullFailed(I[175], 310, 39, "bytes");
      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
      if (mimeType == null) dart.nullFailed(I[175], 311, 15, "mimeType");
      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
      let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
      if (percentEncoded == null) dart.nullFailed(I[175], 313, 12, "percentEncoded");
      let data = core.UriData.fromBytes(bytes, {mimeType: mimeType, parameters: parameters, percentEncoded: percentEncoded});
      return data.uri;
    }
    get hasScheme() {
      return this.scheme[$isNotEmpty];
    }
    static parse(uri, start = 0, end = null) {
      let t250;
      if (uri == null) dart.nullFailed(I[175], 669, 27, "uri");
      if (start == null) dart.nullFailed(I[175], 669, 37, "start");
      end == null ? end = uri.length : null;
      if (dart.notNull(end) >= dart.notNull(start) + 5) {
        let dataDelta = core._startsWithData(uri, start);
        if (dataDelta === 0) {
          if (dart.notNull(start) > 0 || dart.notNull(end) < uri.length) uri = uri[$substring](start, end);
          return core.UriData._parse(uri, 5, null).uri;
        } else if (dataDelta === 32) {
          return core.UriData._parse(uri[$substring](dart.notNull(start) + 5, end), 0, null).uri;
        }
      }
      let indices = T$0.ListOfint().filled(8, 0, {growable: false});
      t250 = indices;
      (() => {
        t250[$_set](0, 0);
        t250[$_set](1, dart.notNull(start) - 1);
        t250[$_set](2, dart.notNull(start) - 1);
        t250[$_set](7, dart.notNull(start) - 1);
        t250[$_set](3, start);
        t250[$_set](4, start);
        t250[$_set](5, end);
        t250[$_set](6, end);
        return t250;
      })();
      let state = core._scan(uri, start, end, 0, indices);
      if (dart.notNull(state) >= 14) {
        indices[$_set](7, end);
      }
      let schemeEnd = indices[$_get](1);
      if (dart.notNull(schemeEnd) >= dart.notNull(start)) {
        state = core._scan(uri, start, schemeEnd, 20, indices);
        if (state === 20) {
          indices[$_set](7, schemeEnd);
        }
      }
      let hostStart = dart.notNull(indices[$_get](2)) + 1;
      let portStart = indices[$_get](3);
      let pathStart = indices[$_get](4);
      let queryStart = indices[$_get](5);
      let fragmentStart = indices[$_get](6);
      let scheme = null;
      if (dart.notNull(fragmentStart) < dart.notNull(queryStart)) queryStart = fragmentStart;
      if (dart.notNull(pathStart) < hostStart) {
        pathStart = queryStart;
      } else if (dart.notNull(pathStart) <= dart.notNull(schemeEnd)) {
        pathStart = dart.notNull(schemeEnd) + 1;
      }
      if (dart.notNull(portStart) < hostStart) portStart = pathStart;
      if (!(hostStart === start || dart.notNull(schemeEnd) <= hostStart)) dart.assertFailed(null, I[175], 808, 12, "hostStart == start || schemeEnd <= hostStart");
      if (!(hostStart <= dart.notNull(portStart))) dart.assertFailed(null, I[175], 809, 12, "hostStart <= portStart");
      if (!(dart.notNull(schemeEnd) <= dart.notNull(pathStart))) dart.assertFailed(null, I[175], 810, 12, "schemeEnd <= pathStart");
      if (!(dart.notNull(portStart) <= dart.notNull(pathStart))) dart.assertFailed(null, I[175], 811, 12, "portStart <= pathStart");
      if (!(dart.notNull(pathStart) <= dart.notNull(queryStart))) dart.assertFailed(null, I[175], 812, 12, "pathStart <= queryStart");
      if (!(dart.notNull(queryStart) <= dart.notNull(fragmentStart))) dart.assertFailed(null, I[175], 813, 12, "queryStart <= fragmentStart");
      let isSimple = dart.notNull(indices[$_get](7)) < dart.notNull(start);
      if (isSimple) {
        if (hostStart > dart.notNull(schemeEnd) + 3) {
          isSimple = false;
        } else if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 1 === pathStart) {
          isSimple = false;
        } else if (dart.notNull(queryStart) < dart.notNull(end) && queryStart === dart.notNull(pathStart) + 2 && uri[$startsWith]("..", pathStart) || dart.notNull(queryStart) > dart.notNull(pathStart) + 2 && uri[$startsWith]("/..", dart.notNull(queryStart) - 3)) {
          isSimple = false;
        } else {
          if (schemeEnd === dart.notNull(start) + 4) {
            if (uri[$startsWith]("file", start)) {
              scheme = "file";
              if (hostStart <= dart.notNull(start)) {
                let schemeAuth = "file://";
                let delta = 2;
                if (!uri[$startsWith]("/", pathStart)) {
                  schemeAuth = "file:///";
                  delta = 3;
                }
                uri = schemeAuth + uri[$substring](pathStart, end);
                schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                hostStart = 7;
                portStart = 7;
                pathStart = 7;
                queryStart = dart.notNull(queryStart) + (delta - dart.notNull(start));
                fragmentStart = dart.notNull(fragmentStart) + (delta - dart.notNull(start));
                start = 0;
                end = uri.length;
              } else if (pathStart == queryStart) {
                if (start === 0 && end === uri.length) {
                  uri = uri[$replaceRange](pathStart, queryStart, "/");
                  queryStart = dart.notNull(queryStart) + 1;
                  fragmentStart = dart.notNull(fragmentStart) + 1;
                  end = dart.notNull(end) + 1;
                } else {
                  uri = uri[$substring](start, pathStart) + "/" + uri[$substring](queryStart, end);
                  schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                  hostStart = hostStart - dart.notNull(start);
                  portStart = dart.notNull(portStart) - dart.notNull(start);
                  pathStart = dart.notNull(pathStart) - dart.notNull(start);
                  queryStart = dart.notNull(queryStart) + (1 - dart.notNull(start));
                  fragmentStart = dart.notNull(fragmentStart) + (1 - dart.notNull(start));
                  start = 0;
                  end = uri.length;
                }
              }
            } else if (uri[$startsWith]("http", start)) {
              scheme = "http";
              if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 3 === pathStart && uri[$startsWith]("80", dart.notNull(portStart) + 1)) {
                if (start === 0 && end === uri.length) {
                  uri = uri[$replaceRange](portStart, pathStart, "");
                  pathStart = dart.notNull(pathStart) - 3;
                  queryStart = dart.notNull(queryStart) - 3;
                  fragmentStart = dart.notNull(fragmentStart) - 3;
                  end = dart.notNull(end) - 3;
                } else {
                  uri = uri[$substring](start, portStart) + uri[$substring](pathStart, end);
                  schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                  hostStart = hostStart - dart.notNull(start);
                  portStart = dart.notNull(portStart) - dart.notNull(start);
                  pathStart = dart.notNull(pathStart) - (3 + dart.notNull(start));
                  queryStart = dart.notNull(queryStart) - (3 + dart.notNull(start));
                  fragmentStart = dart.notNull(fragmentStart) - (3 + dart.notNull(start));
                  start = 0;
                  end = uri.length;
                }
              }
            }
          } else if (schemeEnd === dart.notNull(start) + 5 && uri[$startsWith]("https", start)) {
            scheme = "https";
            if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 4 === pathStart && uri[$startsWith]("443", dart.notNull(portStart) + 1)) {
              if (start === 0 && end === uri.length) {
                uri = uri[$replaceRange](portStart, pathStart, "");
                pathStart = dart.notNull(pathStart) - 4;
                queryStart = dart.notNull(queryStart) - 4;
                fragmentStart = dart.notNull(fragmentStart) - 4;
                end = dart.notNull(end) - 3;
              } else {
                uri = uri[$substring](start, portStart) + uri[$substring](pathStart, end);
                schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                hostStart = hostStart - dart.notNull(start);
                portStart = dart.notNull(portStart) - dart.notNull(start);
                pathStart = dart.notNull(pathStart) - (4 + dart.notNull(start));
                queryStart = dart.notNull(queryStart) - (4 + dart.notNull(start));
                fragmentStart = dart.notNull(fragmentStart) - (4 + dart.notNull(start));
                start = 0;
                end = uri.length;
              }
            }
          }
        }
      }
      if (isSimple) {
        if (dart.notNull(start) > 0 || dart.notNull(end) < uri.length) {
          uri = uri[$substring](start, end);
          schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
          hostStart = hostStart - dart.notNull(start);
          portStart = dart.notNull(portStart) - dart.notNull(start);
          pathStart = dart.notNull(pathStart) - dart.notNull(start);
          queryStart = dart.notNull(queryStart) - dart.notNull(start);
          fragmentStart = dart.notNull(fragmentStart) - dart.notNull(start);
        }
        return new core._SimpleUri.new(uri, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
      }
      return core._Uri.notSimple(uri, start, end, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
    }
    static tryParse(uri, start = 0, end = null) {
      if (uri == null) dart.nullFailed(I[175], 966, 31, "uri");
      if (start == null) dart.nullFailed(I[175], 966, 41, "start");
      try {
        return core.Uri.parse(uri, start, end);
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.FormatException.is(ex)) {
          return null;
        } else
          throw e;
      }
    }
    static encodeComponent(component) {
      if (component == null) dart.nullFailed(I[175], 993, 40, "component");
      return core._Uri._uriEncode(core._Uri._unreserved2396Table, component, convert.utf8, false);
    }
    static encodeQueryComponent(component, opts) {
      if (component == null) dart.nullFailed(I[175], 1030, 45, "component");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[175], 1031, 17, "encoding");
      return core._Uri._uriEncode(core._Uri._unreservedTable, component, encoding, true);
    }
    static decodeComponent(encodedComponent) {
      if (encodedComponent == null) dart.nullFailed(I[175], 1046, 40, "encodedComponent");
      return core._Uri._uriDecode(encodedComponent, 0, encodedComponent.length, convert.utf8, false);
    }
    static decodeQueryComponent(encodedComponent, opts) {
      if (encodedComponent == null) dart.nullFailed(I[175], 1057, 45, "encodedComponent");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[175], 1058, 17, "encoding");
      return core._Uri._uriDecode(encodedComponent, 0, encodedComponent.length, encoding, true);
    }
    static encodeFull(uri) {
      if (uri == null) dart.nullFailed(I[175], 1070, 35, "uri");
      return core._Uri._uriEncode(core._Uri._encodeFullTable, uri, convert.utf8, false);
    }
    static decodeFull(uri) {
      if (uri == null) dart.nullFailed(I[175], 1080, 35, "uri");
      return core._Uri._uriDecode(uri, 0, uri.length, convert.utf8, false);
    }
    static splitQueryString(query, opts) {
      if (query == null) dart.nullFailed(I[175], 1096, 54, "query");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[175], 1097, 17, "encoding");
      return query[$split]("&")[$fold](T$0.MapOfString$String(), new (T$.IdentityMapOfString$String()).new(), dart.fn((map, element) => {
        if (map == null) dart.nullFailed(I[175], 1098, 39, "map");
        if (element == null) dart.nullFailed(I[175], 1098, 44, "element");
        let index = element[$indexOf]("=");
        if (index === -1) {
          if (element !== "") {
            map[$_set](core.Uri.decodeQueryComponent(element, {encoding: encoding}), "");
          }
        } else if (index !== 0) {
          let key = element[$substring](0, index);
          let value = element[$substring](index + 1);
          map[$_set](core.Uri.decodeQueryComponent(key, {encoding: encoding}), core.Uri.decodeQueryComponent(value, {encoding: encoding}));
        }
        return map;
      }, T$0.MapOfString$StringAndStringToMapOfString$String()));
    }
    static parseIPv4Address(host) {
      if (host == null) dart.nullFailed(I[175], 1119, 44, "host");
      return core.Uri._parseIPv4Address(host, 0, host.length);
    }
    static _parseIPv4Address(host, start, end) {
      let t252;
      if (host == null) dart.nullFailed(I[175], 1123, 45, "host");
      if (start == null) dart.nullFailed(I[175], 1123, 55, "start");
      if (end == null) dart.nullFailed(I[175], 1123, 66, "end");
      function error(msg, position) {
        if (msg == null) dart.nullFailed(I[175], 1124, 23, "msg");
        if (position == null) dart.nullFailed(I[175], 1124, 32, "position");
        dart.throw(new core.FormatException.new("Illegal IPv4 address, " + dart.str(msg), host, position));
      }
      dart.fn(error, T$0.StringAndintTovoid());
      let result = _native_typed_data.NativeUint8List.new(4);
      let partIndex = 0;
      let partStart = start;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = host[$codeUnitAt](i);
        if (char !== 46) {
          if ((char ^ 48) >>> 0 > 9) {
            error("invalid character", i);
          }
        } else {
          if (partIndex === 3) {
            error("IPv4 address should contain exactly 4 parts", i);
          }
          let part = core.int.parse(host[$substring](partStart, i));
          if (dart.notNull(part) > 255) {
            error("each part must be in the range 0..255", partStart);
          }
          result[$_set]((t252 = partIndex, partIndex = t252 + 1, t252), part);
          partStart = dart.notNull(i) + 1;
        }
      }
      if (partIndex !== 3) {
        error("IPv4 address should contain exactly 4 parts", end);
      }
      let part = core.int.parse(host[$substring](partStart, end));
      if (dart.notNull(part) > 255) {
        error("each part must be in the range 0..255", partStart);
      }
      result[$_set](partIndex, part);
      return result;
    }
    static parseIPv6Address(host, start = 0, end = null) {
      if (host == null) dart.nullFailed(I[175], 1181, 44, "host");
      if (start == null) dart.nullFailed(I[175], 1181, 55, "start");
      end == null ? end = host.length : null;
      function error(msg, position = null) {
        if (msg == null) dart.nullFailed(I[175], 1191, 23, "msg");
        dart.throw(new core.FormatException.new("Illegal IPv6 address, " + dart.str(msg), host, T$.intN().as(position)));
      }
      dart.fn(error, T$0.StringAnddynamicTovoid$1());
      function parseHex(start, end) {
        if (start == null) dart.nullFailed(I[175], 1196, 22, "start");
        if (end == null) dart.nullFailed(I[175], 1196, 33, "end");
        if (dart.notNull(end) - dart.notNull(start) > 4) {
          error("an IPv6 part can only contain a maximum of 4 hex digits", start);
        }
        let value = core.int.parse(host[$substring](start, end), {radix: 16});
        if (dart.notNull(value) < 0 || dart.notNull(value) > 65535) {
          error("each part must be in the range of `0x0..0xFFFF`", start);
        }
        return value;
      }
      dart.fn(parseHex, T$0.intAndintToint());
      if (host.length < 2) error("address is too short");
      let parts = T$.JSArrayOfint().of([]);
      let wildcardSeen = false;
      let seenDot = false;
      let partStart = start;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = host[$codeUnitAt](i);
        if (char === 58) {
          if (i == start) {
            i = dart.notNull(i) + 1;
            if (host[$codeUnitAt](i) !== 58) {
              error("invalid start colon.", i);
            }
            partStart = i;
          }
          if (i == partStart) {
            if (wildcardSeen) {
              error("only one wildcard `::` is allowed", i);
            }
            wildcardSeen = true;
            parts[$add](-1);
          } else {
            parts[$add](parseHex(partStart, i));
          }
          partStart = dart.notNull(i) + 1;
        } else if (char === 46) {
          seenDot = true;
        }
      }
      if (parts[$length] === 0) error("too few parts");
      let atEnd = partStart == end;
      let isLastWildcard = parts[$last] === -1;
      if (atEnd && !isLastWildcard) {
        error("expected a part after last `:`", end);
      }
      if (!atEnd) {
        if (!seenDot) {
          parts[$add](parseHex(partStart, end));
        } else {
          let last = core.Uri._parseIPv4Address(host, partStart, end);
          parts[$add]((dart.notNull(last[$_get](0)) << 8 | dart.notNull(last[$_get](1))) >>> 0);
          parts[$add]((dart.notNull(last[$_get](2)) << 8 | dart.notNull(last[$_get](3))) >>> 0);
        }
      }
      if (wildcardSeen) {
        if (dart.notNull(parts[$length]) > 7) {
          error("an address with a wildcard must have less than 7 parts");
        }
      } else if (parts[$length] !== 8) {
        error("an address without a wildcard must contain exactly 8 parts");
      }
      let bytes = _native_typed_data.NativeUint8List.new(16);
      for (let i = 0, index = 0; i < dart.notNull(parts[$length]); i = i + 1) {
        let value = parts[$_get](i);
        if (value === -1) {
          let wildCardLength = 9 - dart.notNull(parts[$length]);
          for (let j = 0; j < wildCardLength; j = j + 1) {
            bytes[$_set](index, 0);
            bytes[$_set](index + 1, 0);
            index = index + 2;
          }
        } else {
          bytes[$_set](index, value[$rightShift](8));
          bytes[$_set](index + 1, dart.notNull(value) & 255);
          index = index + 2;
        }
      }
      return bytes;
    }
  };
  (core.Uri[dart.mixinNew] = function() {
  }).prototype = core.Uri.prototype;
  dart.addTypeTests(core.Uri);
  dart.addTypeCaches(core.Uri);
  dart.setGetterSignature(core.Uri, () => ({
    __proto__: dart.getGetters(core.Uri.__proto__),
    hasScheme: core.bool
  }));
  dart.setLibraryUri(core.Uri, I[8]);
  var ___Uri__text = dart.privateName(core, "_#_Uri#_text");
  var ___Uri__text_isSet = dart.privateName(core, "_#_Uri#_text#isSet");
  var ___Uri_pathSegments = dart.privateName(core, "_#_Uri#pathSegments");
  var ___Uri_pathSegments_isSet = dart.privateName(core, "_#_Uri#pathSegments#isSet");
  var ___Uri_hashCode = dart.privateName(core, "_#_Uri#hashCode");
  var ___Uri_hashCode_isSet = dart.privateName(core, "_#_Uri#hashCode#isSet");
  var ___Uri_queryParameters = dart.privateName(core, "_#_Uri#queryParameters");
  var ___Uri_queryParameters_isSet = dart.privateName(core, "_#_Uri#queryParameters#isSet");
  var ___Uri_queryParametersAll = dart.privateName(core, "_#_Uri#queryParametersAll");
  var ___Uri_queryParametersAll_isSet = dart.privateName(core, "_#_Uri#queryParametersAll#isSet");
  var _userInfo$ = dart.privateName(core, "_userInfo");
  var _host$ = dart.privateName(core, "_host");
  var _port$ = dart.privateName(core, "_port");
  var _query$ = dart.privateName(core, "_query");
  var _fragment$ = dart.privateName(core, "_fragment");
  var _initializeText = dart.privateName(core, "_initializeText");
  var _text$ = dart.privateName(core, "_text");
  var _writeAuthority = dart.privateName(core, "_writeAuthority");
  var _mergePaths = dart.privateName(core, "_mergePaths");
  var _toFilePath = dart.privateName(core, "_toFilePath");
  core._Uri = class _Uri extends core.Object {
    get [_text$]() {
      let t253;
      if (!dart.test(this[___Uri__text_isSet])) {
        let t252 = this[_initializeText]();
        if (dart.test(this[___Uri__text_isSet])) dart.throw(new _internal.LateError.fieldADI("_text"));
        this[___Uri__text] = t252;
        this[___Uri__text_isSet] = true;
      }
      t253 = this[___Uri__text];
      return t253;
    }
    get pathSegments() {
      let t254;
      if (!dart.test(this[___Uri_pathSegments_isSet])) {
        let t253 = core._Uri._computePathSegments(this.path);
        if (dart.test(this[___Uri_pathSegments_isSet])) dart.throw(new _internal.LateError.fieldADI("pathSegments"));
        this[___Uri_pathSegments] = t253;
        this[___Uri_pathSegments_isSet] = true;
      }
      t254 = this[___Uri_pathSegments];
      return t254;
    }
    get hashCode() {
      let t255;
      if (!dart.test(this[___Uri_hashCode_isSet])) {
        let t254 = dart.hashCode(this[_text$]);
        if (dart.test(this[___Uri_hashCode_isSet])) dart.throw(new _internal.LateError.fieldADI("hashCode"));
        this[___Uri_hashCode] = t254;
        this[___Uri_hashCode_isSet] = true;
      }
      t255 = this[___Uri_hashCode];
      return t255;
    }
    get queryParameters() {
      let t256;
      if (!dart.test(this[___Uri_queryParameters_isSet])) {
        let t255 = new (T$0.UnmodifiableMapViewOfString$String()).new(core.Uri.splitQueryString(this.query));
        if (dart.test(this[___Uri_queryParameters_isSet])) dart.throw(new _internal.LateError.fieldADI("queryParameters"));
        this[___Uri_queryParameters] = t255;
        this[___Uri_queryParameters_isSet] = true;
      }
      t256 = this[___Uri_queryParameters];
      return t256;
    }
    get queryParametersAll() {
      let t257;
      if (!dart.test(this[___Uri_queryParametersAll_isSet])) {
        let t256 = core._Uri._computeQueryParametersAll(this.query);
        if (dart.test(this[___Uri_queryParametersAll_isSet])) dart.throw(new _internal.LateError.fieldADI("queryParametersAll"));
        this[___Uri_queryParametersAll] = t256;
        this[___Uri_queryParametersAll_isSet] = true;
      }
      t257 = this[___Uri_queryParametersAll];
      return t257;
    }
    static notSimple(uri, start, end, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme) {
      let t257;
      if (uri == null) dart.nullFailed(I[175], 1356, 14, "uri");
      if (start == null) dart.nullFailed(I[175], 1357, 11, "start");
      if (end == null) dart.nullFailed(I[175], 1358, 11, "end");
      if (schemeEnd == null) dart.nullFailed(I[175], 1359, 11, "schemeEnd");
      if (hostStart == null) dart.nullFailed(I[175], 1360, 11, "hostStart");
      if (portStart == null) dart.nullFailed(I[175], 1361, 11, "portStart");
      if (pathStart == null) dart.nullFailed(I[175], 1362, 11, "pathStart");
      if (queryStart == null) dart.nullFailed(I[175], 1363, 11, "queryStart");
      if (fragmentStart == null) dart.nullFailed(I[175], 1364, 11, "fragmentStart");
      if (scheme == null) {
        scheme = "";
        if (dart.notNull(schemeEnd) > dart.notNull(start)) {
          scheme = core._Uri._makeScheme(uri, start, schemeEnd);
        } else if (schemeEnd == start) {
          core._Uri._fail(uri, start, "Invalid empty scheme");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
      }
      let userInfo = "";
      let host = null;
      let port = null;
      if (dart.notNull(hostStart) > dart.notNull(start)) {
        let userInfoStart = dart.notNull(schemeEnd) + 3;
        if (userInfoStart < dart.notNull(hostStart)) {
          userInfo = core._Uri._makeUserInfo(uri, userInfoStart, dart.notNull(hostStart) - 1);
        }
        host = core._Uri._makeHost(uri, hostStart, portStart, false);
        if (dart.notNull(portStart) + 1 < dart.notNull(pathStart)) {
          let portNumber = (t257 = core.int.tryParse(uri[$substring](dart.notNull(portStart) + 1, pathStart)), t257 == null ? dart.throw(new core.FormatException.new("Invalid port", uri, dart.notNull(portStart) + 1)) : t257);
          port = core._Uri._makePort(portNumber, scheme);
        }
      }
      let path = core._Uri._makePath(uri, pathStart, queryStart, null, scheme, host != null);
      let query = null;
      if (dart.notNull(queryStart) < dart.notNull(fragmentStart)) {
        query = core._Uri._makeQuery(uri, dart.notNull(queryStart) + 1, fragmentStart, null);
      }
      let fragment = null;
      if (dart.notNull(fragmentStart) < dart.notNull(end)) {
        fragment = core._Uri._makeFragment(uri, dart.notNull(fragmentStart) + 1, end);
      }
      return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
    }
    static new(opts) {
      let scheme = opts && 'scheme' in opts ? opts.scheme : null;
      let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
      let host = opts && 'host' in opts ? opts.host : null;
      let port = opts && 'port' in opts ? opts.port : null;
      let path = opts && 'path' in opts ? opts.path : null;
      let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
      let query = opts && 'query' in opts ? opts.query : null;
      let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
      let fragment = opts && 'fragment' in opts ? opts.fragment : null;
      if (scheme == null) {
        scheme = "";
      } else {
        scheme = core._Uri._makeScheme(scheme, 0, scheme.length);
      }
      userInfo = core._Uri._makeUserInfo(userInfo, 0, core._stringOrNullLength(userInfo));
      if (userInfo == null) {
        dart.throw("unreachable");
      }
      host = core._Uri._makeHost(host, 0, core._stringOrNullLength(host), false);
      if (query === "") query = null;
      query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
      fragment = core._Uri._makeFragment(fragment, 0, core._stringOrNullLength(fragment));
      port = core._Uri._makePort(port, scheme);
      let isFile = scheme === "file";
      if (host == null && (userInfo[$isNotEmpty] || port != null || isFile)) {
        host = "";
      }
      let hasAuthority = host != null;
      path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
      if (path == null) {
        dart.throw("unreachable");
      }
      if (scheme[$isEmpty] && host == null && !path[$startsWith]("/")) {
        let allowScheme = scheme[$isNotEmpty] || host != null;
        path = core._Uri._normalizeRelativePath(path, allowScheme);
      } else {
        path = core._Uri._removeDotSegments(path);
      }
      if (host == null && path[$startsWith]("//")) {
        host = "";
      }
      return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
    }
    static http(authority, unencodedPath, queryParameters = null) {
      if (authority == null) dart.nullFailed(I[175], 1454, 28, "authority");
      if (unencodedPath == null) dart.nullFailed(I[175], 1454, 46, "unencodedPath");
      return core._Uri._makeHttpUri("http", authority, unencodedPath, queryParameters);
    }
    static https(authority, unencodedPath, queryParameters = null) {
      if (authority == null) dart.nullFailed(I[175], 1460, 29, "authority");
      if (unencodedPath == null) dart.nullFailed(I[175], 1460, 47, "unencodedPath");
      return core._Uri._makeHttpUri("https", authority, unencodedPath, queryParameters);
    }
    get authority() {
      if (!dart.test(this.hasAuthority)) return "";
      let sb = new core.StringBuffer.new();
      this[_writeAuthority](sb);
      return sb.toString();
    }
    get userInfo() {
      return this[_userInfo$];
    }
    get host() {
      let host = this[_host$];
      if (host == null) return "";
      if (host[$startsWith]("[")) {
        return host[$substring](1, host.length - 1);
      }
      return host;
    }
    get port() {
      let t257;
      t257 = this[_port$];
      return t257 == null ? core._Uri._defaultPort(this.scheme) : t257;
    }
    static _defaultPort(scheme) {
      if (scheme == null) dart.nullFailed(I[175], 1488, 34, "scheme");
      if (scheme === "http") return 80;
      if (scheme === "https") return 443;
      return 0;
    }
    get query() {
      let t257;
      t257 = this[_query$];
      return t257 == null ? "" : t257;
    }
    get fragment() {
      let t257;
      t257 = this[_fragment$];
      return t257 == null ? "" : t257;
    }
    isScheme(scheme) {
      if (scheme == null) dart.nullFailed(I[175], 1498, 24, "scheme");
      let thisScheme = this.scheme;
      if (scheme == null) return thisScheme[$isEmpty];
      if (scheme.length !== thisScheme.length) return false;
      return core._Uri._compareScheme(scheme, thisScheme);
    }
    static _compareScheme(scheme, uri) {
      if (scheme == null) dart.nullFailed(I[175], 1517, 37, "scheme");
      if (uri == null) dart.nullFailed(I[175], 1517, 52, "uri");
      for (let i = 0; i < scheme.length; i = i + 1) {
        let schemeChar = scheme[$codeUnitAt](i);
        let uriChar = uri[$codeUnitAt](i);
        let delta = (schemeChar ^ uriChar) >>> 0;
        if (delta !== 0) {
          if (delta === 32) {
            let lowerChar = (uriChar | delta) >>> 0;
            if (97 <= lowerChar && lowerChar <= 122) {
              continue;
            }
          }
          return false;
        }
      }
      return true;
    }
    static _fail(uri, index, message) {
      if (uri == null) dart.nullFailed(I[175], 1537, 29, "uri");
      if (index == null) dart.nullFailed(I[175], 1537, 38, "index");
      if (message == null) dart.nullFailed(I[175], 1537, 52, "message");
      dart.throw(new core.FormatException.new(message, uri, index));
    }
    static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) {
      if (scheme == null) dart.nullFailed(I[175], 1541, 35, "scheme");
      if (unencodedPath == null) dart.nullFailed(I[175], 1542, 14, "unencodedPath");
      let userInfo = "";
      let host = null;
      let port = null;
      if (authority != null && authority[$isNotEmpty]) {
        let hostStart = 0;
        for (let i = 0; i < authority.length; i = i + 1) {
          if (authority[$codeUnitAt](i) === 64) {
            userInfo = authority[$substring](0, i);
            hostStart = i + 1;
            break;
          }
        }
        let hostEnd = hostStart;
        if (hostStart < authority.length && authority[$codeUnitAt](hostStart) === 91) {
          let escapeForZoneID = -1;
          for (; hostEnd < authority.length; hostEnd = hostEnd + 1) {
            let char = authority[$codeUnitAt](hostEnd);
            if (char === 37 && escapeForZoneID < 0) {
              escapeForZoneID = hostEnd;
              if (authority[$startsWith]("25", hostEnd + 1)) {
                hostEnd = hostEnd + 2;
              }
            } else if (char === 93) {
              break;
            }
          }
          if (hostEnd === authority.length) {
            dart.throw(new core.FormatException.new("Invalid IPv6 host entry.", authority, hostStart));
          }
          core.Uri.parseIPv6Address(authority, hostStart + 1, escapeForZoneID < 0 ? hostEnd : escapeForZoneID);
          hostEnd = hostEnd + 1;
          if (hostEnd !== authority.length && authority[$codeUnitAt](hostEnd) !== 58) {
            dart.throw(new core.FormatException.new("Invalid end of authority", authority, hostEnd));
          }
        }
        for (; hostEnd < authority.length; hostEnd = hostEnd + 1) {
          if (authority[$codeUnitAt](hostEnd) === 58) {
            let portString = authority[$substring](hostEnd + 1);
            if (portString[$isNotEmpty]) port = core.int.parse(portString);
            break;
          }
        }
        host = authority[$substring](hostStart, hostEnd);
      }
      return core._Uri.new({scheme: scheme, userInfo: userInfo, host: host, port: port, pathSegments: unencodedPath[$split]("/"), queryParameters: queryParameters});
    }
    static file(path, opts) {
      let t257;
      if (path == null) dart.nullFailed(I[175], 1607, 28, "path");
      let windows = opts && 'windows' in opts ? opts.windows : null;
      return core._Uri.as(dart.test((t257 = windows, t257 == null ? core._Uri._isWindows : t257)) ? core._Uri._makeWindowsFileUrl(path, false) : core._Uri._makeFileUri(path, false));
    }
    static directory(path, opts) {
      let t257;
      if (path == null) dart.nullFailed(I[175], 1614, 33, "path");
      let windows = opts && 'windows' in opts ? opts.windows : null;
      return core._Uri.as(dart.test((t257 = windows, t257 == null ? core._Uri._isWindows : t257)) ? core._Uri._makeWindowsFileUrl(path, true) : core._Uri._makeFileUri(path, true));
    }
    static get _isWindows() {
      return core._Uri._isWindowsCached;
    }
    static _checkNonWindowsPathReservedCharacters(segments, argumentError) {
      if (segments == null) dart.nullFailed(I[175], 1624, 20, "segments");
      if (argumentError == null) dart.nullFailed(I[175], 1624, 35, "argumentError");
      for (let segment of segments) {
        if (segment[$contains]("/")) {
          if (dart.test(argumentError)) {
            dart.throw(new core.ArgumentError.new("Illegal path character " + dart.str(segment)));
          } else {
            dart.throw(new core.UnsupportedError.new("Illegal path character " + dart.str(segment)));
          }
        }
      }
    }
    static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment = 0) {
      if (segments == null) dart.nullFailed(I[175], 1637, 20, "segments");
      if (argumentError == null) dart.nullFailed(I[175], 1637, 35, "argumentError");
      if (firstSegment == null) dart.nullFailed(I[175], 1638, 12, "firstSegment");
      for (let segment of segments[$skip](firstSegment)) {
        if (segment[$contains](core.RegExp.new("[\"*/:<>?\\\\|]"))) {
          if (dart.test(argumentError)) {
            dart.throw(new core.ArgumentError.new("Illegal character in path"));
          } else {
            dart.throw(new core.UnsupportedError.new("Illegal character in path: " + dart.str(segment)));
          }
        }
      }
    }
    static _checkWindowsDriveLetter(charCode, argumentError) {
      if (charCode == null) dart.nullFailed(I[175], 1650, 44, "charCode");
      if (argumentError == null) dart.nullFailed(I[175], 1650, 59, "argumentError");
      if (65 <= dart.notNull(charCode) && dart.notNull(charCode) <= 90 || 97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 122) {
        return;
      }
      if (dart.test(argumentError)) {
        dart.throw(new core.ArgumentError.new("Illegal drive letter " + dart.notNull(core.String.fromCharCode(charCode))));
      } else {
        dart.throw(new core.UnsupportedError.new("Illegal drive letter " + dart.notNull(core.String.fromCharCode(charCode))));
      }
    }
    static _makeFileUri(path, slashTerminated) {
      if (path == null) dart.nullFailed(I[175], 1664, 34, "path");
      if (slashTerminated == null) dart.nullFailed(I[175], 1664, 45, "slashTerminated");
      let segments = path[$split]("/");
      if (dart.test(slashTerminated) && dart.test(segments[$isNotEmpty]) && segments[$last][$isNotEmpty]) {
        segments[$add]("");
      }
      if (path[$startsWith]("/")) {
        return core._Uri.new({scheme: "file", pathSegments: segments});
      } else {
        return core._Uri.new({pathSegments: segments});
      }
    }
    static _makeWindowsFileUrl(path, slashTerminated) {
      if (path == null) dart.nullFailed(I[175], 1679, 37, "path");
      if (slashTerminated == null) dart.nullFailed(I[175], 1679, 48, "slashTerminated");
      if (path[$startsWith]("\\\\?\\")) {
        if (path[$startsWith]("UNC\\", 4)) {
          path = path[$replaceRange](0, 7, "\\");
        } else {
          path = path[$substring](4);
          if (path.length < 3 || path[$codeUnitAt](1) !== 58 || path[$codeUnitAt](2) !== 92) {
            dart.throw(new core.ArgumentError.new("Windows paths with \\\\?\\ prefix must be absolute"));
          }
        }
      } else {
        path = path[$replaceAll]("/", "\\");
      }
      if (path.length > 1 && path[$codeUnitAt](1) === 58) {
        core._Uri._checkWindowsDriveLetter(path[$codeUnitAt](0), true);
        if (path.length === 2 || path[$codeUnitAt](2) !== 92) {
          dart.throw(new core.ArgumentError.new("Windows paths with drive letter must be absolute"));
        }
        let pathSegments = path[$split]("\\");
        if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
          pathSegments[$add]("");
        }
        core._Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1);
        return core._Uri.new({scheme: "file", pathSegments: pathSegments});
      }
      if (path[$startsWith]("\\")) {
        if (path[$startsWith]("\\", 1)) {
          let pathStart = path[$indexOf]("\\", 2);
          let hostPart = pathStart < 0 ? path[$substring](2) : path[$substring](2, pathStart);
          let pathPart = pathStart < 0 ? "" : path[$substring](pathStart + 1);
          let pathSegments = pathPart[$split]("\\");
          core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
          if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
            pathSegments[$add]("");
          }
          return core._Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegments});
        } else {
          let pathSegments = path[$split]("\\");
          if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
            pathSegments[$add]("");
          }
          core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
          return core._Uri.new({scheme: "file", pathSegments: pathSegments});
        }
      } else {
        let pathSegments = path[$split]("\\");
        core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
        if (dart.test(slashTerminated) && dart.test(pathSegments[$isNotEmpty]) && pathSegments[$last][$isNotEmpty]) {
          pathSegments[$add]("");
        }
        return core._Uri.new({pathSegments: pathSegments});
      }
    }
    replace(opts) {
      let scheme = opts && 'scheme' in opts ? opts.scheme : null;
      let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
      let host = opts && 'host' in opts ? opts.host : null;
      let port = opts && 'port' in opts ? opts.port : null;
      let path = opts && 'path' in opts ? opts.path : null;
      let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
      let query = opts && 'query' in opts ? opts.query : null;
      let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
      let fragment = opts && 'fragment' in opts ? opts.fragment : null;
      let schemeChanged = false;
      if (scheme != null) {
        scheme = core._Uri._makeScheme(scheme, 0, scheme.length);
        schemeChanged = scheme != this.scheme;
      } else {
        scheme = this.scheme;
      }
      let isFile = scheme === "file";
      if (userInfo != null) {
        userInfo = core._Uri._makeUserInfo(userInfo, 0, userInfo.length);
      } else {
        userInfo = this[_userInfo$];
      }
      if (port != null) {
        port = core._Uri._makePort(port, scheme);
      } else {
        port = this[_port$];
        if (schemeChanged) {
          port = core._Uri._makePort(port, scheme);
        }
      }
      if (host != null) {
        host = core._Uri._makeHost(host, 0, host.length, false);
      } else if (dart.test(this.hasAuthority)) {
        host = this[_host$];
      } else if (userInfo[$isNotEmpty] || port != null || isFile) {
        host = "";
      }
      let hasAuthority = host != null;
      if (path != null || pathSegments != null) {
        path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
      } else {
        let currentPath = this.path;
        if ((isFile || hasAuthority && !currentPath[$isEmpty]) && !currentPath[$startsWith]("/")) {
          currentPath = "/" + dart.notNull(currentPath);
        }
        path = currentPath;
      }
      if (query != null || queryParameters != null) {
        query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
      } else {
        query = this[_query$];
      }
      if (fragment != null) {
        fragment = core._Uri._makeFragment(fragment, 0, fragment.length);
      } else {
        fragment = this[_fragment$];
      }
      return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
    }
    removeFragment() {
      if (!dart.test(this.hasFragment)) return this;
      return new core._Uri._internal(this.scheme, this[_userInfo$], this[_host$], this[_port$], this.path, this[_query$], null);
    }
    static _computePathSegments(pathToSplit) {
      if (pathToSplit == null) dart.nullFailed(I[175], 1823, 51, "pathToSplit");
      if (pathToSplit[$isNotEmpty] && pathToSplit[$codeUnitAt](0) === 47) {
        pathToSplit = pathToSplit[$substring](1);
      }
      return pathToSplit[$isEmpty] ? C[404] || CT.C404 : T$.ListOfString().unmodifiable(pathToSplit[$split]("/")[$map](dart.dynamic, C[429] || CT.C429));
    }
    static _computeQueryParametersAll(query) {
      if (query == null || query[$isEmpty]) return C[430] || CT.C430;
      let queryParameterLists = core._Uri._splitQueryStringAll(query);
      queryParameterLists[$updateAll](C[431] || CT.C431);
      return T$0.MapOfString$ListOfString().unmodifiable(queryParameterLists);
    }
    normalizePath() {
      let path = core._Uri._normalizePath(this.path, this.scheme, this.hasAuthority);
      if (path == this.path) return this;
      return this.replace({path: path});
    }
    static _makePort(port, scheme) {
      if (scheme == null) dart.nullFailed(I[175], 1846, 43, "scheme");
      if (port != null && port == core._Uri._defaultPort(scheme)) return null;
      return port;
    }
    static _makeHost(host, start, end, strictIPv6) {
      if (start == null) dart.nullFailed(I[175], 1861, 46, "start");
      if (end == null) dart.nullFailed(I[175], 1861, 57, "end");
      if (strictIPv6 == null) dart.nullFailed(I[175], 1861, 67, "strictIPv6");
      if (host == null) return null;
      if (start == end) return "";
      if (host[$codeUnitAt](start) === 91) {
        if (host[$codeUnitAt](dart.notNull(end) - 1) !== 93) {
          core._Uri._fail(host, start, "Missing end `]` to match `[` in host");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
        let zoneID = "";
        let index = core._Uri._checkZoneID(host, dart.notNull(start) + 1, dart.notNull(end) - 1);
        if (dart.notNull(index) < dart.notNull(end) - 1) {
          let zoneIDstart = host[$startsWith]("25", dart.notNull(index) + 1) ? dart.notNull(index) + 3 : dart.notNull(index) + 1;
          zoneID = core._Uri._normalizeZoneID(host, zoneIDstart, dart.notNull(end) - 1, "%25");
        }
        core.Uri.parseIPv6Address(host, dart.notNull(start) + 1, index);
        return host[$substring](start, index)[$toLowerCase]() + dart.notNull(zoneID) + "]";
      }
      if (!dart.test(strictIPv6)) {
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          if (host[$codeUnitAt](i) === 58) {
            let zoneID = "";
            let index = core._Uri._checkZoneID(host, start, end);
            if (dart.notNull(index) < dart.notNull(end)) {
              let zoneIDstart = host[$startsWith]("25", dart.notNull(index) + 1) ? dart.notNull(index) + 3 : dart.notNull(index) + 1;
              zoneID = core._Uri._normalizeZoneID(host, zoneIDstart, end, "%25");
            }
            core.Uri.parseIPv6Address(host, start, index);
            return "[" + host[$substring](start, index) + dart.notNull(zoneID) + "]";
          }
        }
      }
      return core._Uri._normalizeRegName(host, start, end);
    }
    static _checkZoneID(host, start, end) {
      if (host == null) dart.nullFailed(I[175], 1902, 34, "host");
      if (start == null) dart.nullFailed(I[175], 1902, 44, "start");
      if (end == null) dart.nullFailed(I[175], 1902, 55, "end");
      let index = host[$indexOf]("%", start);
      index = dart.notNull(index) >= dart.notNull(start) && dart.notNull(index) < dart.notNull(end) ? index : end;
      return index;
    }
    static _isZoneIDChar(char) {
      if (char == null) dart.nullFailed(I[175], 1908, 33, "char");
      return dart.notNull(char) < 127 && (dart.notNull(core._Uri._zoneIDTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
    }
    static _normalizeZoneID(host, start, end, prefix = "") {
      let t257, t257$;
      if (host == null) dart.nullFailed(I[175], 1918, 41, "host");
      if (start == null) dart.nullFailed(I[175], 1918, 51, "start");
      if (end == null) dart.nullFailed(I[175], 1918, 62, "end");
      if (prefix == null) dart.nullFailed(I[175], 1919, 15, "prefix");
      let buffer = null;
      if (prefix !== "") {
        buffer = new core.StringBuffer.new(prefix);
      }
      let sectionStart = start;
      let index = start;
      let isNormalized = true;
      while (dart.notNull(index) < dart.notNull(end)) {
        let char = host[$codeUnitAt](index);
        if (char === 37) {
          let replacement = core._Uri._normalizeEscape(host, index, true);
          if (replacement == null && isNormalized) {
            index = dart.notNull(index) + 3;
            continue;
          }
          buffer == null ? buffer = new core.StringBuffer.new() : null;
          let slice = host[$substring](sectionStart, index);
          buffer.write(slice);
          let sourceLength = 3;
          if (replacement == null) {
            replacement = host[$substring](index, dart.notNull(index) + 3);
          } else if (replacement === "%") {
            core._Uri._fail(host, index, "ZoneID should not contain % anymore");
            dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
          }
          buffer.write(replacement);
          index = dart.notNull(index) + sourceLength;
          sectionStart = index;
          isNormalized = true;
        } else if (dart.test(core._Uri._isZoneIDChar(char))) {
          if (isNormalized && 65 <= char && 90 >= char) {
            buffer == null ? buffer = new core.StringBuffer.new() : null;
            if (dart.notNull(sectionStart) < dart.notNull(index)) {
              buffer.write(host[$substring](sectionStart, index));
              sectionStart = index;
            }
            isNormalized = false;
          }
          index = dart.notNull(index) + 1;
        } else {
          let sourceLength = 1;
          if ((char & 64512) === 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
            let tail = host[$codeUnitAt](dart.notNull(index) + 1);
            if ((tail & 64512) === 56320) {
              char = 65536 | (char & 1023) << 10 | tail & 1023;
              sourceLength = 2;
            }
          }
          let slice = host[$substring](sectionStart, index);
          t257$ = (t257 = buffer, t257 == null ? buffer = new core.StringBuffer.new() : t257);
          (() => {
            t257$.write(slice);
            t257$.write(core._Uri._escapeChar(char));
            return t257$;
          })();
          index = dart.notNull(index) + sourceLength;
          sectionStart = index;
        }
      }
      if (buffer == null) return host[$substring](start, end);
      if (dart.notNull(sectionStart) < dart.notNull(end)) {
        let slice = host[$substring](sectionStart, end);
        buffer.write(slice);
      }
      return dart.toString(buffer);
    }
    static _isRegNameChar(char) {
      if (char == null) dart.nullFailed(I[175], 1984, 34, "char");
      return dart.notNull(char) < 127 && (dart.notNull(core._Uri._regNameTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
    }
    static _normalizeRegName(host, start, end) {
      let t257, t257$;
      if (host == null) dart.nullFailed(I[175], 1993, 42, "host");
      if (start == null) dart.nullFailed(I[175], 1993, 52, "start");
      if (end == null) dart.nullFailed(I[175], 1993, 63, "end");
      let buffer = null;
      let sectionStart = start;
      let index = start;
      let isNormalized = true;
      while (dart.notNull(index) < dart.notNull(end)) {
        let char = host[$codeUnitAt](index);
        if (char === 37) {
          let replacement = core._Uri._normalizeEscape(host, index, true);
          if (replacement == null && isNormalized) {
            index = dart.notNull(index) + 3;
            continue;
          }
          buffer == null ? buffer = new core.StringBuffer.new() : null;
          let slice = host[$substring](sectionStart, index);
          if (!isNormalized) slice = slice[$toLowerCase]();
          buffer.write(slice);
          let sourceLength = 3;
          if (replacement == null) {
            replacement = host[$substring](index, dart.notNull(index) + 3);
          } else if (replacement === "%") {
            replacement = "%25";
            sourceLength = 1;
          }
          buffer.write(replacement);
          index = dart.notNull(index) + sourceLength;
          sectionStart = index;
          isNormalized = true;
        } else if (dart.test(core._Uri._isRegNameChar(char))) {
          if (isNormalized && 65 <= char && 90 >= char) {
            buffer == null ? buffer = new core.StringBuffer.new() : null;
            if (dart.notNull(sectionStart) < dart.notNull(index)) {
              buffer.write(host[$substring](sectionStart, index));
              sectionStart = index;
            }
            isNormalized = false;
          }
          index = dart.notNull(index) + 1;
        } else if (dart.test(core._Uri._isGeneralDelimiter(char))) {
          core._Uri._fail(host, index, "Invalid character");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        } else {
          let sourceLength = 1;
          if ((char & 64512) === 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
            let tail = host[$codeUnitAt](dart.notNull(index) + 1);
            if ((tail & 64512) === 56320) {
              char = 65536 | (char & 1023) << 10 | tail & 1023;
              sourceLength = 2;
            }
          }
          let slice = host[$substring](sectionStart, index);
          if (!isNormalized) slice = slice[$toLowerCase]();
          t257$ = (t257 = buffer, t257 == null ? buffer = new core.StringBuffer.new() : t257);
          (() => {
            t257$.write(slice);
            t257$.write(core._Uri._escapeChar(char));
            return t257$;
          })();
          index = dart.notNull(index) + sourceLength;
          sectionStart = index;
        }
      }
      if (buffer == null) return host[$substring](start, end);
      if (dart.notNull(sectionStart) < dart.notNull(end)) {
        let slice = host[$substring](sectionStart, end);
        if (!isNormalized) slice = slice[$toLowerCase]();
        buffer.write(slice);
      }
      return dart.toString(buffer);
    }
    static _makeScheme(scheme, start, end) {
      if (scheme == null) dart.nullFailed(I[175], 2065, 36, "scheme");
      if (start == null) dart.nullFailed(I[175], 2065, 48, "start");
      if (end == null) dart.nullFailed(I[175], 2065, 59, "end");
      if (start == end) return "";
      let firstCodeUnit = scheme[$codeUnitAt](start);
      if (!dart.test(core._Uri._isAlphabeticCharacter(firstCodeUnit))) {
        core._Uri._fail(scheme, start, "Scheme not starting with alphabetic character");
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      let containsUpperCase = false;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let codeUnit = scheme[$codeUnitAt](i);
        if (!dart.test(core._Uri._isSchemeCharacter(codeUnit))) {
          core._Uri._fail(scheme, i, "Illegal scheme character");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
        if (65 <= codeUnit && codeUnit <= 90) {
          containsUpperCase = true;
        }
      }
      scheme = scheme[$substring](start, end);
      if (containsUpperCase) scheme = scheme[$toLowerCase]();
      return core._Uri._canonicalizeScheme(scheme);
    }
    static _canonicalizeScheme(scheme) {
      if (scheme == null) dart.nullFailed(I[175], 2089, 44, "scheme");
      if (scheme === "http") return "http";
      if (scheme === "file") return "file";
      if (scheme === "https") return "https";
      if (scheme === "package") return "package";
      return scheme;
    }
    static _makeUserInfo(userInfo, start, end) {
      if (start == null) dart.nullFailed(I[175], 2097, 53, "start");
      if (end == null) dart.nullFailed(I[175], 2097, 64, "end");
      if (userInfo == null) return "";
      return core._Uri._normalizeOrSubstring(userInfo, start, end, core._Uri._userinfoTable);
    }
    static _makePath(path, start, end, pathSegments, scheme, hasAuthority) {
      if (start == null) dart.nullFailed(I[175], 2102, 45, "start");
      if (end == null) dart.nullFailed(I[175], 2102, 56, "end");
      if (scheme == null) dart.nullFailed(I[175], 2103, 46, "scheme");
      if (hasAuthority == null) dart.nullFailed(I[175], 2103, 59, "hasAuthority");
      let isFile = scheme === "file";
      let ensureLeadingSlash = isFile || dart.test(hasAuthority);
      let result = null;
      if (path == null) {
        if (pathSegments == null) return isFile ? "/" : "";
        result = pathSegments[$map](core.String, dart.fn(s => {
          if (s == null) dart.nullFailed(I[175], 2110, 17, "s");
          return core._Uri._uriEncode(core._Uri._pathCharTable, s, convert.utf8, false);
        }, T$.StringToString()))[$join]("/");
      } else if (pathSegments != null) {
        dart.throw(new core.ArgumentError.new("Both path and pathSegments specified"));
      } else {
        result = core._Uri._normalizeOrSubstring(path, start, end, core._Uri._pathCharOrSlashTable, {escapeDelimiters: true});
      }
      if (result[$isEmpty]) {
        if (isFile) return "/";
      } else if (ensureLeadingSlash && !result[$startsWith]("/")) {
        result = "/" + dart.notNull(result);
      }
      result = core._Uri._normalizePath(result, scheme, hasAuthority);
      return result;
    }
    static _normalizePath(path, scheme, hasAuthority) {
      if (path == null) dart.nullFailed(I[175], 2132, 39, "path");
      if (scheme == null) dart.nullFailed(I[175], 2132, 52, "scheme");
      if (hasAuthority == null) dart.nullFailed(I[175], 2132, 65, "hasAuthority");
      if (scheme[$isEmpty] && !dart.test(hasAuthority) && !path[$startsWith]("/")) {
        return core._Uri._normalizeRelativePath(path, scheme[$isNotEmpty] || dart.test(hasAuthority));
      }
      return core._Uri._removeDotSegments(path);
    }
    static _makeQuery(query, start, end, queryParameters) {
      if (start == null) dart.nullFailed(I[175], 2139, 48, "start");
      if (end == null) dart.nullFailed(I[175], 2139, 59, "end");
      if (query != null) {
        if (queryParameters != null) {
          dart.throw(new core.ArgumentError.new("Both query and queryParameters specified"));
        }
        return core._Uri._normalizeOrSubstring(query, start, end, core._Uri._queryCharTable, {escapeDelimiters: true});
      }
      if (queryParameters == null) return null;
      let result = new core.StringBuffer.new();
      let separator = "";
      function writeParameter(key, value) {
        if (key == null) dart.nullFailed(I[175], 2153, 32, "key");
        result.write(separator);
        separator = "&";
        result.write(core.Uri.encodeQueryComponent(key));
        if (value != null && value[$isNotEmpty]) {
          result.write("=");
          result.write(core.Uri.encodeQueryComponent(value));
        }
      }
      dart.fn(writeParameter, T$0.StringAndStringNTovoid());
      queryParameters[$forEach](dart.fn((key, value) => {
        if (key == null) dart.nullFailed(I[175], 2163, 30, "key");
        if (value == null || typeof value == 'string') {
          writeParameter(key, T$.StringN().as(value));
        } else {
          let values = core.Iterable.as(value);
          for (let t257 of values) {
            let value = core.String.as(t257);
            writeParameter(key, value);
          }
        }
      }, T$0.StringAnddynamicTovoid()));
      return result.toString();
    }
    static _makeFragment(fragment, start, end) {
      if (start == null) dart.nullFailed(I[175], 2176, 54, "start");
      if (end == null) dart.nullFailed(I[175], 2176, 65, "end");
      if (fragment == null) return null;
      return core._Uri._normalizeOrSubstring(fragment, start, end, core._Uri._queryCharTable, {escapeDelimiters: true});
    }
    static _normalizeEscape(source, index, lowerCase) {
      if (source == null) dart.nullFailed(I[175], 2193, 42, "source");
      if (index == null) dart.nullFailed(I[175], 2193, 54, "index");
      if (lowerCase == null) dart.nullFailed(I[175], 2193, 66, "lowerCase");
      if (!(source[$codeUnitAt](index) === 37)) dart.assertFailed(null, I[175], 2194, 12, "source.codeUnitAt(index) == _PERCENT");
      if (dart.notNull(index) + 2 >= source.length) {
        return "%";
      }
      let firstDigit = source[$codeUnitAt](dart.notNull(index) + 1);
      let secondDigit = source[$codeUnitAt](dart.notNull(index) + 2);
      let firstDigitValue = _internal.hexDigitValue(firstDigit);
      let secondDigitValue = _internal.hexDigitValue(secondDigit);
      if (dart.notNull(firstDigitValue) < 0 || dart.notNull(secondDigitValue) < 0) {
        return "%";
      }
      let value = dart.notNull(firstDigitValue) * 16 + dart.notNull(secondDigitValue);
      if (dart.test(core._Uri._isUnreservedChar(value))) {
        if (dart.test(lowerCase) && 65 <= value && 90 >= value) {
          value = (value | 32) >>> 0;
        }
        return core.String.fromCharCode(value);
      }
      if (firstDigit >= 97 || secondDigit >= 97) {
        return source[$substring](index, dart.notNull(index) + 3)[$toUpperCase]();
      }
      return null;
    }
    static _escapeChar(char) {
      if (char == null) dart.nullFailed(I[175], 2221, 33, "char");
      if (!(dart.notNull(char) <= 1114111)) dart.assertFailed(null, I[175], 2222, 12, "char <= 0x10ffff");
      let codeUnits = null;
      if (dart.notNull(char) < 128) {
        codeUnits = _native_typed_data.NativeUint8List.new(3);
        codeUnits[$_set](0, 37);
        codeUnits[$_set](1, "0123456789ABCDEF"[$codeUnitAt](char[$rightShift](4)));
        codeUnits[$_set](2, "0123456789ABCDEF"[$codeUnitAt](dart.notNull(char) & 15));
      } else {
        let flag = 192;
        let encodedBytes = 2;
        if (dart.notNull(char) > 2047) {
          flag = 224;
          encodedBytes = 3;
          if (dart.notNull(char) > 65535) {
            encodedBytes = 4;
            flag = 240;
          }
        }
        codeUnits = _native_typed_data.NativeUint8List.new(3 * encodedBytes);
        let index = 0;
        while ((encodedBytes = encodedBytes - 1) >= 0) {
          let byte = (char[$rightShift](6 * encodedBytes) & 63 | flag) >>> 0;
          codeUnits[$_set](index, 37);
          codeUnits[$_set](index + 1, "0123456789ABCDEF"[$codeUnitAt](byte[$rightShift](4)));
          codeUnits[$_set](index + 2, "0123456789ABCDEF"[$codeUnitAt](byte & 15));
          index = index + 3;
          flag = 128;
        }
      }
      return core.String.fromCharCodes(codeUnits);
    }
    static _normalizeOrSubstring(component, start, end, charTable, opts) {
      let t258;
      if (component == null) dart.nullFailed(I[175], 2261, 14, "component");
      if (start == null) dart.nullFailed(I[175], 2261, 29, "start");
      if (end == null) dart.nullFailed(I[175], 2261, 40, "end");
      if (charTable == null) dart.nullFailed(I[175], 2261, 55, "charTable");
      let escapeDelimiters = opts && 'escapeDelimiters' in opts ? opts.escapeDelimiters : false;
      if (escapeDelimiters == null) dart.nullFailed(I[175], 2262, 13, "escapeDelimiters");
      t258 = core._Uri._normalize(component, start, end, charTable, {escapeDelimiters: escapeDelimiters});
      return t258 == null ? component[$substring](start, end) : t258;
    }
    static _normalize(component, start, end, charTable, opts) {
      let t258, t258$;
      if (component == null) dart.nullFailed(I[175], 2278, 14, "component");
      if (start == null) dart.nullFailed(I[175], 2278, 29, "start");
      if (end == null) dart.nullFailed(I[175], 2278, 40, "end");
      if (charTable == null) dart.nullFailed(I[175], 2278, 55, "charTable");
      let escapeDelimiters = opts && 'escapeDelimiters' in opts ? opts.escapeDelimiters : false;
      if (escapeDelimiters == null) dart.nullFailed(I[175], 2279, 13, "escapeDelimiters");
      let buffer = null;
      let sectionStart = start;
      let index = start;
      while (dart.notNull(index) < dart.notNull(end)) {
        let char = component[$codeUnitAt](index);
        if (char < 127 && (dart.notNull(charTable[$_get](char[$rightShift](4))) & 1 << (char & 15)) !== 0) {
          index = dart.notNull(index) + 1;
        } else {
          let replacement = null;
          let sourceLength = null;
          if (char === 37) {
            replacement = core._Uri._normalizeEscape(component, index, false);
            if (replacement == null) {
              index = dart.notNull(index) + 3;
              continue;
            }
            if ("%" === replacement) {
              replacement = "%25";
              sourceLength = 1;
            } else {
              sourceLength = 3;
            }
          } else if (!dart.test(escapeDelimiters) && dart.test(core._Uri._isGeneralDelimiter(char))) {
            core._Uri._fail(component, index, "Invalid character");
            dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
            dart.throw("unreachable");
          } else {
            sourceLength = 1;
            if ((char & 64512) === 55296) {
              if (dart.notNull(index) + 1 < dart.notNull(end)) {
                let tail = component[$codeUnitAt](dart.notNull(index) + 1);
                if ((tail & 64512) === 56320) {
                  sourceLength = 2;
                  char = 65536 | (char & 1023) << 10 | tail & 1023;
                }
              }
            }
            replacement = core._Uri._escapeChar(char);
          }
          t258$ = (t258 = buffer, t258 == null ? buffer = new core.StringBuffer.new() : t258);
          (() => {
            t258$.write(component[$substring](sectionStart, index));
            t258$.write(replacement);
            return t258$;
          })();
          index = dart.notNull(index) + dart.notNull(sourceLength);
          sectionStart = index;
        }
      }
      if (buffer == null) {
        return null;
      }
      if (dart.notNull(sectionStart) < dart.notNull(end)) {
        buffer.write(component[$substring](sectionStart, end));
      }
      return dart.toString(buffer);
    }
    static _isSchemeCharacter(ch) {
      if (ch == null) dart.nullFailed(I[175], 2339, 38, "ch");
      return dart.notNull(ch) < 128 && (dart.notNull(core._Uri._schemeTable[$_get](ch[$rightShift](4))) & 1 << (dart.notNull(ch) & 15)) !== 0;
    }
    static _isGeneralDelimiter(ch) {
      if (ch == null) dart.nullFailed(I[175], 2343, 39, "ch");
      return dart.notNull(ch) <= 93 && (dart.notNull(core._Uri._genDelimitersTable[$_get](ch[$rightShift](4))) & 1 << (dart.notNull(ch) & 15)) !== 0;
    }
    get isAbsolute() {
      return this.scheme !== "" && this.fragment === "";
    }
    [_mergePaths](base, reference) {
      if (base == null) dart.nullFailed(I[175], 2351, 29, "base");
      if (reference == null) dart.nullFailed(I[175], 2351, 42, "reference");
      let backCount = 0;
      let refStart = 0;
      while (reference[$startsWith]("../", refStart)) {
        refStart = refStart + 3;
        backCount = backCount + 1;
      }
      let baseEnd = base[$lastIndexOf]("/");
      while (baseEnd > 0 && backCount > 0) {
        let newEnd = base[$lastIndexOf]("/", baseEnd - 1);
        if (newEnd < 0) {
          break;
        }
        let delta = baseEnd - newEnd;
        if ((delta === 2 || delta === 3) && base[$codeUnitAt](newEnd + 1) === 46 && (delta === 2 || base[$codeUnitAt](newEnd + 2) === 46)) {
          break;
        }
        baseEnd = newEnd;
        backCount = backCount - 1;
      }
      return base[$replaceRange](baseEnd + 1, null, reference[$substring](refStart - 3 * backCount));
    }
    static _mayContainDotSegments(path) {
      if (path == null) dart.nullFailed(I[175], 2389, 45, "path");
      if (path[$startsWith](".")) return true;
      let index = path[$indexOf]("/.");
      return index !== -1;
    }
    static _removeDotSegments(path) {
      if (path == null) dart.nullFailed(I[175], 2400, 43, "path");
      if (!dart.test(core._Uri._mayContainDotSegments(path))) return path;
      if (!path[$isNotEmpty]) dart.assertFailed(null, I[175], 2402, 12, "path.isNotEmpty");
      let output = T$.JSArrayOfString().of([]);
      let appendSlash = false;
      for (let segment of path[$split]("/")) {
        appendSlash = false;
        if (segment === "..") {
          if (dart.test(output[$isNotEmpty])) {
            output[$removeLast]();
            if (dart.test(output[$isEmpty])) {
              output[$add]("");
            }
          }
          appendSlash = true;
        } else if ("." === segment) {
          appendSlash = true;
        } else {
          output[$add](segment);
        }
      }
      if (appendSlash) output[$add]("");
      return output[$join]("/");
    }
    static _normalizeRelativePath(path, allowScheme) {
      if (path == null) dart.nullFailed(I[175], 2436, 47, "path");
      if (allowScheme == null) dart.nullFailed(I[175], 2436, 58, "allowScheme");
      if (!!path[$startsWith]("/")) dart.assertFailed(null, I[175], 2437, 12, "!path.startsWith('/')");
      if (!dart.test(core._Uri._mayContainDotSegments(path))) {
        if (!dart.test(allowScheme)) path = core._Uri._escapeScheme(path);
        return path;
      }
      if (!path[$isNotEmpty]) dart.assertFailed(null, I[175], 2442, 12, "path.isNotEmpty");
      let output = T$.JSArrayOfString().of([]);
      let appendSlash = false;
      for (let segment of path[$split]("/")) {
        appendSlash = false;
        if (".." === segment) {
          if (!dart.test(output[$isEmpty]) && output[$last] !== "..") {
            output[$removeLast]();
            appendSlash = true;
          } else {
            output[$add]("..");
          }
        } else if ("." === segment) {
          appendSlash = true;
        } else {
          output[$add](segment);
        }
      }
      if (dart.test(output[$isEmpty]) || output[$length] === 1 && output[$_get](0)[$isEmpty]) {
        return "./";
      }
      if (appendSlash || output[$last] === "..") output[$add]("");
      if (!dart.test(allowScheme)) output[$_set](0, core._Uri._escapeScheme(output[$_get](0)));
      return output[$join]("/");
    }
    static _escapeScheme(path) {
      if (path == null) dart.nullFailed(I[175], 2469, 38, "path");
      if (path.length >= 2 && dart.test(core._Uri._isAlphabeticCharacter(path[$codeUnitAt](0)))) {
        for (let i = 1; i < path.length; i = i + 1) {
          let char = path[$codeUnitAt](i);
          if (char === 58) {
            return path[$substring](0, i) + "%3A" + path[$substring](i + 1);
          }
          if (char > 127 || (dart.notNull(core._Uri._schemeTable[$_get](char[$rightShift](4))) & 1 << (char & 15)) === 0) {
            break;
          }
        }
      }
      return path;
    }
    resolve(reference) {
      if (reference == null) dart.nullFailed(I[175], 2485, 22, "reference");
      return this.resolveUri(core.Uri.parse(reference));
    }
    static _packageNameEnd(uri, path) {
      if (uri == null) dart.nullFailed(I[175], 2499, 34, "uri");
      if (path == null) dart.nullFailed(I[175], 2499, 46, "path");
      if (dart.test(uri.isScheme("package")) && !dart.test(uri.hasAuthority)) {
        return core._skipPackageNameChars(path, 0, path.length);
      }
      return -1;
    }
    resolveUri(reference) {
      if (reference == null) dart.nullFailed(I[175], 2506, 22, "reference");
      let targetScheme = null;
      let targetUserInfo = "";
      let targetHost = null;
      let targetPort = null;
      let targetPath = null;
      let targetQuery = null;
      if (reference.scheme[$isNotEmpty]) {
        targetScheme = reference.scheme;
        if (dart.test(reference.hasAuthority)) {
          targetUserInfo = reference.userInfo;
          targetHost = reference.host;
          targetPort = dart.test(reference.hasPort) ? reference.port : null;
        }
        targetPath = core._Uri._removeDotSegments(reference.path);
        if (dart.test(reference.hasQuery)) {
          targetQuery = reference.query;
        }
      } else {
        targetScheme = this.scheme;
        if (dart.test(reference.hasAuthority)) {
          targetUserInfo = reference.userInfo;
          targetHost = reference.host;
          targetPort = core._Uri._makePort(dart.test(reference.hasPort) ? reference.port : null, targetScheme);
          targetPath = core._Uri._removeDotSegments(reference.path);
          if (dart.test(reference.hasQuery)) targetQuery = reference.query;
        } else {
          targetUserInfo = this[_userInfo$];
          targetHost = this[_host$];
          targetPort = this[_port$];
          if (reference.path === "") {
            targetPath = this.path;
            if (dart.test(reference.hasQuery)) {
              targetQuery = reference.query;
            } else {
              targetQuery = this[_query$];
            }
          } else {
            let basePath = this.path;
            let packageNameEnd = core._Uri._packageNameEnd(this, basePath);
            if (dart.notNull(packageNameEnd) > 0) {
              if (!(targetScheme === "package")) dart.assertFailed(null, I[175], 2549, 20, "targetScheme == \"package\"");
              if (!!dart.test(this.hasAuthority)) dart.assertFailed(null, I[175], 2550, 20, "!this.hasAuthority");
              if (!!dart.test(this.hasEmptyPath)) dart.assertFailed(null, I[175], 2551, 20, "!this.hasEmptyPath");
              let packageName = basePath[$substring](0, packageNameEnd);
              if (dart.test(reference.hasAbsolutePath)) {
                targetPath = packageName + dart.notNull(core._Uri._removeDotSegments(reference.path));
              } else {
                targetPath = packageName + dart.notNull(core._Uri._removeDotSegments(this[_mergePaths](basePath[$substring](packageName.length), reference.path)));
              }
            } else if (dart.test(reference.hasAbsolutePath)) {
              targetPath = core._Uri._removeDotSegments(reference.path);
            } else {
              if (dart.test(this.hasEmptyPath)) {
                if (!dart.test(this.hasAuthority)) {
                  if (!dart.test(this.hasScheme)) {
                    targetPath = reference.path;
                  } else {
                    targetPath = core._Uri._removeDotSegments(reference.path);
                  }
                } else {
                  targetPath = core._Uri._removeDotSegments("/" + dart.notNull(reference.path));
                }
              } else {
                let mergedPath = this[_mergePaths](this.path, reference.path);
                if (dart.test(this.hasScheme) || dart.test(this.hasAuthority) || dart.test(this.hasAbsolutePath)) {
                  targetPath = core._Uri._removeDotSegments(mergedPath);
                } else {
                  targetPath = core._Uri._normalizeRelativePath(mergedPath, dart.test(this.hasScheme) || dart.test(this.hasAuthority));
                }
              }
            }
            if (dart.test(reference.hasQuery)) targetQuery = reference.query;
          }
        }
      }
      let fragment = dart.test(reference.hasFragment) ? reference.fragment : null;
      return new core._Uri._internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
    }
    get hasScheme() {
      return this.scheme[$isNotEmpty];
    }
    get hasAuthority() {
      return this[_host$] != null;
    }
    get hasPort() {
      return this[_port$] != null;
    }
    get hasQuery() {
      return this[_query$] != null;
    }
    get hasFragment() {
      return this[_fragment$] != null;
    }
    get hasEmptyPath() {
      return this.path[$isEmpty];
    }
    get hasAbsolutePath() {
      return this.path[$startsWith]("/");
    }
    get origin() {
      if (this.scheme === "") {
        dart.throw(new core.StateError.new("Cannot use origin without a scheme: " + dart.str(this)));
      }
      if (this.scheme !== "http" && this.scheme !== "https") {
        dart.throw(new core.StateError.new("Origin is only applicable schemes http and https: " + dart.str(this)));
      }
      let host = this[_host$];
      if (host == null || host === "") {
        dart.throw(new core.StateError.new("A " + dart.str(this.scheme) + ": URI should have a non-empty host name: " + dart.str(this)));
      }
      let port = this[_port$];
      if (port == null) return dart.str(this.scheme) + "://" + dart.str(host);
      return dart.str(this.scheme) + "://" + dart.str(host) + ":" + dart.str(port);
    }
    toFilePath(opts) {
      let t258;
      let windows = opts && 'windows' in opts ? opts.windows : null;
      if (this.scheme !== "" && this.scheme !== "file") {
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a " + dart.str(this.scheme) + " URI"));
      }
      if (this.query !== "") {
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a query component"));
      }
      if (this.fragment !== "") {
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a fragment component"));
      }
      return dart.test((t258 = windows, t258 == null ? core._Uri._isWindows : t258)) ? core._Uri._toWindowsFilePath(this) : this[_toFilePath]();
    }
    [_toFilePath]() {
      if (dart.test(this.hasAuthority) && this.host !== "") {
        dart.throw(new core.UnsupportedError.new("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
      }
      let pathSegments = this.pathSegments;
      core._Uri._checkNonWindowsPathReservedCharacters(pathSegments, false);
      let result = new core.StringBuffer.new();
      if (dart.test(this.hasAbsolutePath)) result.write("/");
      result.writeAll(pathSegments, "/");
      return result.toString();
    }
    static _toWindowsFilePath(uri) {
      if (uri == null) dart.nullFailed(I[175], 2664, 40, "uri");
      let hasDriveLetter = false;
      let segments = uri.pathSegments;
      if (dart.notNull(segments[$length]) > 0 && segments[$_get](0).length === 2 && segments[$_get](0)[$codeUnitAt](1) === 58) {
        core._Uri._checkWindowsDriveLetter(segments[$_get](0)[$codeUnitAt](0), false);
        core._Uri._checkWindowsPathReservedCharacters(segments, false, 1);
        hasDriveLetter = true;
      } else {
        core._Uri._checkWindowsPathReservedCharacters(segments, false, 0);
      }
      let result = new core.StringBuffer.new();
      if (dart.test(uri.hasAbsolutePath) && !hasDriveLetter) result.write("\\");
      if (dart.test(uri.hasAuthority)) {
        let host = uri.host;
        if (host[$isNotEmpty]) {
          result.write("\\");
          result.write(host);
          result.write("\\");
        }
      }
      result.writeAll(segments, "\\");
      if (hasDriveLetter && segments[$length] === 1) result.write("\\");
      return result.toString();
    }
    [_writeAuthority](ss) {
      if (ss == null) dart.nullFailed(I[175], 2691, 35, "ss");
      if (this[_userInfo$][$isNotEmpty]) {
        ss.write(this[_userInfo$]);
        ss.write("@");
      }
      if (this[_host$] != null) ss.write(this[_host$]);
      if (this[_port$] != null) {
        ss.write(":");
        ss.write(this[_port$]);
      }
    }
    get data() {
      return this.scheme === "data" ? core.UriData.fromUri(this) : null;
    }
    toString() {
      return this[_text$];
    }
    [_initializeText]() {
      let t258, t258$, t258$0;
      let sb = new core.StringBuffer.new();
      if (this.scheme[$isNotEmpty]) {
        t258 = sb;
        (() => {
          t258.write(this.scheme);
          t258.write(":");
          return t258;
        })();
      }
      if (dart.test(this.hasAuthority) || this.scheme === "file") {
        sb.write("//");
        this[_writeAuthority](sb);
      }
      sb.write(this.path);
      if (this[_query$] != null) {
        t258$ = sb;
        (() => {
          t258$.write("?");
          t258$.write(this[_query$]);
          return t258$;
        })();
      }
      if (this[_fragment$] != null) {
        t258$0 = sb;
        (() => {
          t258$0.write("#");
          t258$0.write(this[_fragment$]);
          return t258$0;
        })();
      }
      return sb.toString();
    }
    _equals(other) {
      if (other == null) return false;
      if (this === other) return true;
      return core.Uri.is(other) && this.scheme == other.scheme && this.hasAuthority == other.hasAuthority && this.userInfo == other.userInfo && this.host == other.host && this.port == other.port && this.path == other.path && this.hasQuery == other.hasQuery && this.query == other.query && this.hasFragment == other.hasFragment && this.fragment == other.fragment;
    }
    static _createList() {
      return T$.JSArrayOfString().of([]);
    }
    static _splitQueryStringAll(query, opts) {
      if (query == null) dart.nullFailed(I[175], 2745, 64, "query");
      let encoding = opts && 'encoding' in opts ? opts.encoding : C[108] || CT.C108;
      if (encoding == null) dart.nullFailed(I[175], 2746, 17, "encoding");
      let result = new (T$0.IdentityMapOfString$ListOfString()).new();
      let i = 0;
      let start = 0;
      let equalsIndex = -1;
      function parsePair(start, equalsIndex, end) {
        if (start == null) dart.nullFailed(I[175], 2752, 24, "start");
        if (equalsIndex == null) dart.nullFailed(I[175], 2752, 35, "equalsIndex");
        if (end == null) dart.nullFailed(I[175], 2752, 52, "end");
        let key = null;
        let value = null;
        if (start == end) return;
        if (dart.notNull(equalsIndex) < 0) {
          key = core._Uri._uriDecode(query, start, end, encoding, true);
          value = "";
        } else {
          key = core._Uri._uriDecode(query, start, equalsIndex, encoding, true);
          value = core._Uri._uriDecode(query, dart.notNull(equalsIndex) + 1, end, encoding, true);
        }
        result[$putIfAbsent](key, C[432] || CT.C432)[$add](value);
      }
      dart.fn(parsePair, T$0.intAndintAndintTovoid());
      while (i < query.length) {
        let char = query[$codeUnitAt](i);
        if (char === 61) {
          if (equalsIndex < 0) equalsIndex = i;
        } else if (char === 38) {
          parsePair(start, equalsIndex, i);
          start = i + 1;
          equalsIndex = -1;
        }
        i = i + 1;
      }
      parsePair(start, equalsIndex, i);
      return result;
    }
    static _uriEncode(canonicalTable, text, encoding, spaceToPlus) {
      if (canonicalTable == null) dart.nullFailed(I[7], 876, 38, "canonicalTable");
      if (text == null) dart.nullFailed(I[7], 876, 61, "text");
      if (encoding == null) dart.nullFailed(I[7], 877, 16, "encoding");
      if (spaceToPlus == null) dart.nullFailed(I[7], 877, 31, "spaceToPlus");
      if (encoding == convert.utf8 && dart.test(core._Uri._needsNoEncoding.hasMatch(text))) {
        return text;
      }
      let result = new core.StringBuffer.new("");
      let bytes = encoding.encode(text);
      for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
        let byte = bytes[$_get](i);
        if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$_get](byte[$rightShift](4))) & 1 << (dart.notNull(byte) & 15)) !== 0) {
          result.writeCharCode(byte);
        } else if (dart.test(spaceToPlus) && byte === 32) {
          result.write("+");
        } else {
          result.write("%");
          result.write("0123456789ABCDEF"[$_get](dart.notNull(byte) >> 4 & 15));
          result.write("0123456789ABCDEF"[$_get](dart.notNull(byte) & 15));
        }
      }
      return result.toString();
    }
    static _hexCharPairToByte(s, pos) {
      if (s == null) dart.nullFailed(I[175], 2786, 40, "s");
      if (pos == null) dart.nullFailed(I[175], 2786, 47, "pos");
      let byte = 0;
      for (let i = 0; i < 2; i = i + 1) {
        let charCode = s[$codeUnitAt](dart.notNull(pos) + i);
        if (48 <= charCode && charCode <= 57) {
          byte = byte * 16 + charCode - 48;
        } else {
          charCode = (charCode | 32) >>> 0;
          if (97 <= charCode && charCode <= 102) {
            byte = byte * 16 + charCode - 87;
          } else {
            dart.throw(new core.ArgumentError.new("Invalid URL encoding"));
          }
        }
      }
      return byte;
    }
    static _uriDecode(text, start, end, encoding, plusToSpace) {
      if (text == null) dart.nullFailed(I[175], 2816, 14, "text");
      if (start == null) dart.nullFailed(I[175], 2816, 24, "start");
      if (end == null) dart.nullFailed(I[175], 2816, 35, "end");
      if (encoding == null) dart.nullFailed(I[175], 2816, 49, "encoding");
      if (plusToSpace == null) dart.nullFailed(I[175], 2816, 64, "plusToSpace");
      if (!(0 <= dart.notNull(start))) dart.assertFailed(null, I[175], 2817, 12, "0 <= start");
      if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, I[175], 2818, 12, "start <= end");
      if (!(dart.notNull(end) <= text.length)) dart.assertFailed(null, I[175], 2819, 12, "end <= text.length");
      let simple = true;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let codeUnit = text[$codeUnitAt](i);
        if (codeUnit > 127 || codeUnit === 37 || dart.test(plusToSpace) && codeUnit === 43) {
          simple = false;
          break;
        }
      }
      let bytes = null;
      if (simple) {
        if (dart.equals(convert.utf8, encoding) || dart.equals(convert.latin1, encoding) || dart.equals(convert.ascii, encoding)) {
          return text[$substring](start, end);
        } else {
          bytes = text[$substring](start, end)[$codeUnits];
        }
      } else {
        bytes = T$.JSArrayOfint().of([]);
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          let codeUnit = text[$codeUnitAt](i);
          if (codeUnit > 127) {
            dart.throw(new core.ArgumentError.new("Illegal percent encoding in URI"));
          }
          if (codeUnit === 37) {
            if (dart.notNull(i) + 3 > text.length) {
              dart.throw(new core.ArgumentError.new("Truncated URI"));
            }
            bytes[$add](core._Uri._hexCharPairToByte(text, dart.notNull(i) + 1));
            i = dart.notNull(i) + 2;
          } else if (dart.test(plusToSpace) && codeUnit === 43) {
            bytes[$add](32);
          } else {
            bytes[$add](codeUnit);
          }
        }
      }
      return encoding.decode(bytes);
    }
    static _isAlphabeticCharacter(codeUnit) {
      if (codeUnit == null) dart.nullFailed(I[175], 2861, 42, "codeUnit");
      let lowerCase = (dart.notNull(codeUnit) | 32) >>> 0;
      return 97 <= lowerCase && lowerCase <= 122;
    }
    static _isUnreservedChar(char) {
      if (char == null) dart.nullFailed(I[175], 2866, 37, "char");
      return dart.notNull(char) < 127 && (dart.notNull(core._Uri._unreservedTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
    }
  };
  (core._Uri._internal = function(scheme, _userInfo, _host, _port, path, _query, _fragment) {
    if (scheme == null) dart.nullFailed(I[175], 1347, 23, "scheme");
    if (_userInfo == null) dart.nullFailed(I[175], 1347, 36, "_userInfo");
    if (path == null) dart.nullFailed(I[175], 1347, 76, "path");
    this[___Uri__text] = null;
    this[___Uri__text_isSet] = false;
    this[___Uri_pathSegments] = null;
    this[___Uri_pathSegments_isSet] = false;
    this[___Uri_hashCode] = null;
    this[___Uri_hashCode_isSet] = false;
    this[___Uri_queryParameters] = null;
    this[___Uri_queryParameters_isSet] = false;
    this[___Uri_queryParametersAll] = null;
    this[___Uri_queryParametersAll_isSet] = false;
    this.scheme = scheme;
    this[_userInfo$] = _userInfo;
    this[_host$] = _host;
    this[_port$] = _port;
    this.path = path;
    this[_query$] = _query;
    this[_fragment$] = _fragment;
    ;
  }).prototype = core._Uri.prototype;
  dart.addTypeTests(core._Uri);
  dart.addTypeCaches(core._Uri);
  core._Uri[dart.implements] = () => [core.Uri];
  dart.setMethodSignature(core._Uri, () => ({
    __proto__: dart.getMethods(core._Uri.__proto__),
    isScheme: dart.fnType(core.bool, [core.String]),
    replace: dart.fnType(core.Uri, [], {fragment: dart.nullable(core.String), host: dart.nullable(core.String), path: dart.nullable(core.String), pathSegments: dart.nullable(core.Iterable$(core.String)), port: dart.nullable(core.int), query: dart.nullable(core.String), queryParameters: dart.nullable(core.Map$(core.String, dart.dynamic)), scheme: dart.nullable(core.String), userInfo: dart.nullable(core.String)}, {}),
    removeFragment: dart.fnType(core.Uri, []),
    normalizePath: dart.fnType(core.Uri, []),
    [_mergePaths]: dart.fnType(core.String, [core.String, core.String]),
    resolve: dart.fnType(core.Uri, [core.String]),
    resolveUri: dart.fnType(core.Uri, [core.Uri]),
    toFilePath: dart.fnType(core.String, [], {windows: dart.nullable(core.bool)}, {}),
    [_toFilePath]: dart.fnType(core.String, []),
    [_writeAuthority]: dart.fnType(dart.void, [core.StringSink]),
    [_initializeText]: dart.fnType(core.String, [])
  }));
  dart.setGetterSignature(core._Uri, () => ({
    __proto__: dart.getGetters(core._Uri.__proto__),
    [_text$]: core.String,
    pathSegments: core.List$(core.String),
    queryParameters: core.Map$(core.String, core.String),
    queryParametersAll: core.Map$(core.String, core.List$(core.String)),
    authority: core.String,
    userInfo: core.String,
    host: core.String,
    port: core.int,
    query: core.String,
    fragment: core.String,
    isAbsolute: core.bool,
    hasScheme: core.bool,
    hasAuthority: core.bool,
    hasPort: core.bool,
    hasQuery: core.bool,
    hasFragment: core.bool,
    hasEmptyPath: core.bool,
    hasAbsolutePath: core.bool,
    origin: core.String,
    data: dart.nullable(core.UriData)
  }));
  dart.setLibraryUri(core._Uri, I[8]);
  dart.setFieldSignature(core._Uri, () => ({
    __proto__: dart.getFields(core._Uri.__proto__),
    scheme: dart.finalFieldType(core.String),
    [_userInfo$]: dart.finalFieldType(core.String),
    [_host$]: dart.finalFieldType(dart.nullable(core.String)),
    [_port$]: dart.fieldType(dart.nullable(core.int)),
    path: dart.finalFieldType(core.String),
    [_query$]: dart.finalFieldType(dart.nullable(core.String)),
    [_fragment$]: dart.finalFieldType(dart.nullable(core.String)),
    [___Uri__text]: dart.fieldType(dart.nullable(core.String)),
    [___Uri__text_isSet]: dart.fieldType(core.bool),
    [___Uri_pathSegments]: dart.fieldType(dart.nullable(core.List$(core.String))),
    [___Uri_pathSegments_isSet]: dart.fieldType(core.bool),
    [___Uri_hashCode]: dart.fieldType(dart.nullable(core.int)),
    [___Uri_hashCode_isSet]: dart.fieldType(core.bool),
    [___Uri_queryParameters]: dart.fieldType(dart.nullable(core.Map$(core.String, core.String))),
    [___Uri_queryParameters_isSet]: dart.fieldType(core.bool),
    [___Uri_queryParametersAll]: dart.fieldType(dart.nullable(core.Map$(core.String, core.List$(core.String)))),
    [___Uri_queryParametersAll_isSet]: dart.fieldType(core.bool)
  }));
  dart.defineExtensionMethods(core._Uri, ['toString', '_equals']);
  dart.defineExtensionAccessors(core._Uri, ['hashCode']);
  dart.defineLazy(core._Uri, {
    /*core._Uri._isWindowsCached*/get _isWindowsCached() {
      return typeof process != "undefined" && Object.prototype.toString.call(process) == "[object process]" && process.platform == "win32";
    },
    /*core._Uri._needsNoEncoding*/get _needsNoEncoding() {
      return core.RegExp.new("^[\\-\\.0-9A-Z_a-z~]*$");
    },
    /*core._Uri._unreservedTable*/get _unreservedTable() {
      return C[433] || CT.C433;
    },
    /*core._Uri._unreserved2396Table*/get _unreserved2396Table() {
      return C[434] || CT.C434;
    },
    /*core._Uri._encodeFullTable*/get _encodeFullTable() {
      return C[435] || CT.C435;
    },
    /*core._Uri._schemeTable*/get _schemeTable() {
      return C[436] || CT.C436;
    },
    /*core._Uri._genDelimitersTable*/get _genDelimitersTable() {
      return C[437] || CT.C437;
    },
    /*core._Uri._userinfoTable*/get _userinfoTable() {
      return C[438] || CT.C438;
    },
    /*core._Uri._regNameTable*/get _regNameTable() {
      return C[439] || CT.C439;
    },
    /*core._Uri._pathCharTable*/get _pathCharTable() {
      return C[440] || CT.C440;
    },
    /*core._Uri._pathCharOrSlashTable*/get _pathCharOrSlashTable() {
      return C[441] || CT.C441;
    },
    /*core._Uri._queryCharTable*/get _queryCharTable() {
      return C[442] || CT.C442;
    },
    /*core._Uri._zoneIDTable*/get _zoneIDTable() {
      return C[433] || CT.C433;
    }
  }, false);
  var _separatorIndices$ = dart.privateName(core, "_separatorIndices");
  var _uriCache$ = dart.privateName(core, "_uriCache");
  var _computeUri = dart.privateName(core, "_computeUri");
  core.UriData = class UriData extends core.Object {
    static fromString(content, opts) {
      let t258;
      if (content == null) dart.nullFailed(I[175], 3163, 37, "content");
      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
      let base64 = opts && 'base64' in opts ? opts.base64 : false;
      if (base64 == null) dart.nullFailed(I[175], 3167, 12, "base64");
      let buffer = new core.StringBuffer.new();
      let indices = T$.JSArrayOfint().of([-1]);
      let charsetName = (t258 = parameters, t258 == null ? null : t258[$_get]("charset"));
      let encodingName = null;
      if (encoding == null) {
        if (charsetName != null) {
          encoding = convert.Encoding.getByName(charsetName);
        }
      } else if (charsetName == null) {
        encodingName = encoding.name;
      }
      encoding == null ? encoding = convert.ascii : null;
      core.UriData._writeUri(mimeType, encodingName, parameters, buffer, indices);
      indices[$add](buffer.length);
      if (dart.test(base64)) {
        buffer.write(";base64,");
        indices[$add](dart.notNull(buffer.length) - 1);
        buffer.write(encoding.fuse(core.String, core.UriData._base64).encode(content));
      } else {
        buffer.write(",");
        core.UriData._uriEncodeBytes(core.UriData._uricTable, encoding.encode(content), buffer);
      }
      return new core.UriData.__(buffer.toString(), indices, null);
    }
    static fromBytes(bytes, opts) {
      if (bytes == null) dart.nullFailed(I[175], 3198, 39, "bytes");
      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
      if (mimeType == null) dart.nullFailed(I[175], 3199, 15, "mimeType");
      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
      let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
      if (percentEncoded == null) dart.nullFailed(I[175], 3201, 12, "percentEncoded");
      let buffer = new core.StringBuffer.new();
      let indices = T$.JSArrayOfint().of([-1]);
      core.UriData._writeUri(mimeType, null, parameters, buffer, indices);
      indices[$add](buffer.length);
      if (dart.test(percentEncoded)) {
        buffer.write(",");
        core.UriData._uriEncodeBytes(core.UriData._uricTable, bytes, buffer);
      } else {
        buffer.write(";base64,");
        indices[$add](dart.notNull(buffer.length) - 1);
        core.UriData._base64.encoder.startChunkedConversion(new (T$0._StringSinkConversionSinkOfStringSink()).new(buffer)).addSlice(bytes, 0, bytes[$length], true);
      }
      return new core.UriData.__(buffer.toString(), indices, null);
    }
    static fromUri(uri) {
      if (uri == null) dart.nullFailed(I[175], 3225, 31, "uri");
      if (uri.scheme !== "data") {
        dart.throw(new core.ArgumentError.value(uri, "uri", "Scheme must be 'data'"));
      }
      if (dart.test(uri.hasAuthority)) {
        dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have authority"));
      }
      if (dart.test(uri.hasFragment)) {
        dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have a fragment part"));
      }
      if (!dart.test(uri.hasQuery)) {
        return core.UriData._parse(uri.path, 0, uri);
      }
      return core.UriData._parse(dart.toString(uri), 5, uri);
    }
    static _writeUri(mimeType, charsetName, parameters, buffer, indices) {
      let t258, t258$;
      if (buffer == null) dart.nullFailed(I[175], 3253, 20, "buffer");
      if (mimeType == null || mimeType === "text/plain") {
        mimeType = "";
      }
      if (mimeType[$isEmpty] || mimeType === "application/octet-stream") {
        buffer.write(mimeType);
      } else {
        let slashIndex = core.UriData._validateMimeType(mimeType);
        if (dart.notNull(slashIndex) < 0) {
          dart.throw(new core.ArgumentError.value(mimeType, "mimeType", "Invalid MIME type"));
        }
        buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, mimeType[$substring](0, slashIndex), convert.utf8, false));
        buffer.write("/");
        buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, mimeType[$substring](dart.notNull(slashIndex) + 1), convert.utf8, false));
      }
      if (charsetName != null) {
        if (indices != null) {
          t258 = indices;
          (() => {
            t258[$add](buffer.length);
            t258[$add](dart.notNull(buffer.length) + 8);
            return t258;
          })();
        }
        buffer.write(";charset=");
        buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, charsetName, convert.utf8, false));
      }
      t258$ = parameters;
      t258$ == null ? null : t258$[$forEach](dart.fn((key, value) => {
        let t259, t259$;
        if (key == null) dart.nullFailed(I[175], 3278, 26, "key");
        if (value == null) dart.nullFailed(I[175], 3278, 31, "value");
        if (key[$isEmpty]) {
          dart.throw(new core.ArgumentError.value("", "Parameter names must not be empty"));
        }
        if (value[$isEmpty]) {
          dart.throw(new core.ArgumentError.value("", "Parameter values must not be empty", "parameters[\"" + dart.str(key) + "\"]"));
        }
        t259 = indices;
        t259 == null ? null : t259[$add](buffer.length);
        buffer.write(";");
        buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, key, convert.utf8, false));
        t259$ = indices;
        t259$ == null ? null : t259$[$add](buffer.length);
        buffer.write("=");
        buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, value, convert.utf8, false));
      }, T$0.StringAndStringTovoid()));
    }
    static _validateMimeType(mimeType) {
      if (mimeType == null) dart.nullFailed(I[175], 3303, 39, "mimeType");
      let slashIndex = -1;
      for (let i = 0; i < mimeType.length; i = i + 1) {
        let char = mimeType[$codeUnitAt](i);
        if (char !== 47) continue;
        if (slashIndex < 0) {
          slashIndex = i;
          continue;
        }
        return -1;
      }
      return slashIndex;
    }
    static parse(uri) {
      if (uri == null) dart.nullFailed(I[175], 3343, 31, "uri");
      if (uri.length >= 5) {
        let dataDelta = core._startsWithData(uri, 0);
        if (dataDelta === 0) {
          return core.UriData._parse(uri, 5, null);
        }
        if (dataDelta === 32) {
          return core.UriData._parse(uri[$substring](5), 0, null);
        }
      }
      dart.throw(new core.FormatException.new("Does not start with 'data:'", uri, 0));
    }
    get uri() {
      let t258;
      t258 = this[_uriCache$];
      return t258 == null ? this[_uriCache$] = this[_computeUri]() : t258;
    }
    [_computeUri]() {
      let path = this[_text$];
      let query = null;
      let colonIndex = this[_separatorIndices$][$_get](0);
      let queryIndex = this[_text$][$indexOf]("?", dart.notNull(colonIndex) + 1);
      let end = this[_text$].length;
      if (queryIndex >= 0) {
        query = core._Uri._normalizeOrSubstring(this[_text$], queryIndex + 1, end, core._Uri._queryCharTable);
        end = queryIndex;
      }
      path = core._Uri._normalizeOrSubstring(this[_text$], dart.notNull(colonIndex) + 1, end, core._Uri._pathCharOrSlashTable);
      return new core._DataUri.new(this, path, query);
    }
    get mimeType() {
      let start = dart.notNull(this[_separatorIndices$][$_get](0)) + 1;
      let end = this[_separatorIndices$][$_get](1);
      if (start === end) return "text/plain";
      return core._Uri._uriDecode(this[_text$], start, end, convert.utf8, false);
    }
    get charset() {
      let parameterStart = 1;
      let parameterEnd = dart.notNull(this[_separatorIndices$][$length]) - 1;
      if (dart.test(this.isBase64)) {
        parameterEnd = parameterEnd - 1;
      }
      for (let i = parameterStart; i < parameterEnd; i = i + 2) {
        let keyStart = dart.notNull(this[_separatorIndices$][$_get](i)) + 1;
        let keyEnd = this[_separatorIndices$][$_get](i + 1);
        if (keyEnd === keyStart + 7 && this[_text$][$startsWith]("charset", keyStart)) {
          return core._Uri._uriDecode(this[_text$], dart.notNull(keyEnd) + 1, this[_separatorIndices$][$_get](i + 2), convert.utf8, false);
        }
      }
      return "US-ASCII";
    }
    get isBase64() {
      return this[_separatorIndices$][$length][$isOdd];
    }
    get contentText() {
      return this[_text$][$substring](dart.notNull(this[_separatorIndices$][$last]) + 1);
    }
    contentAsBytes() {
      let t258, t258$;
      let text = this[_text$];
      let start = dart.notNull(this[_separatorIndices$][$last]) + 1;
      if (dart.test(this.isBase64)) {
        return convert.base64.decoder.convert(text, start);
      }
      let length = text.length - start;
      for (let i = start; i < text.length; i = i + 1) {
        let codeUnit = text[$codeUnitAt](i);
        if (codeUnit === 37) {
          i = i + 2;
          length = length - 2;
        }
      }
      let result = _native_typed_data.NativeUint8List.new(length);
      if (length === text.length) {
        result[$setRange](0, length, text[$codeUnits], start);
        return result;
      }
      let index = 0;
      for (let i = start; i < text.length; i = i + 1) {
        let codeUnit = text[$codeUnitAt](i);
        if (codeUnit !== 37) {
          result[$_set]((t258 = index, index = t258 + 1, t258), codeUnit);
        } else {
          if (i + 2 < text.length) {
            let byte = _internal.parseHexByte(text, i + 1);
            if (dart.notNull(byte) >= 0) {
              result[$_set]((t258$ = index, index = t258$ + 1, t258$), byte);
              i = i + 2;
              continue;
            }
          }
          dart.throw(new core.FormatException.new("Invalid percent escape", text, i));
        }
      }
      if (!(index === result[$length])) dart.assertFailed(null, I[175], 3491, 12, "index == result.length");
      return result;
    }
    contentAsString(opts) {
      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
      if (encoding == null) {
        let charset = this.charset;
        encoding = convert.Encoding.getByName(charset);
        if (encoding == null) {
          dart.throw(new core.UnsupportedError.new("Unknown charset: " + dart.str(charset)));
        }
      }
      let text = this[_text$];
      let start = dart.notNull(this[_separatorIndices$][$last]) + 1;
      if (dart.test(this.isBase64)) {
        let converter = convert.base64.decoder.fuse(core.String, encoding.decoder);
        return converter.convert(text[$substring](start));
      }
      return core._Uri._uriDecode(text, start, text.length, encoding, false);
    }
    get parameters() {
      let result = new (T$.IdentityMapOfString$String()).new();
      for (let i = 3; i < dart.notNull(this[_separatorIndices$][$length]); i = i + 2) {
        let start = dart.notNull(this[_separatorIndices$][$_get](i - 2)) + 1;
        let equals = this[_separatorIndices$][$_get](i - 1);
        let end = this[_separatorIndices$][$_get](i);
        let key = core._Uri._uriDecode(this[_text$], start, equals, convert.utf8, false);
        let value = core._Uri._uriDecode(this[_text$], dart.notNull(equals) + 1, end, convert.utf8, false);
        result[$_set](key, value);
      }
      return result;
    }
    static _parse(text, start, sourceUri) {
      if (text == null) dart.nullFailed(I[175], 3549, 32, "text");
      if (start == null) dart.nullFailed(I[175], 3549, 42, "start");
      if (!(start === 0 || start === 5)) dart.assertFailed(null, I[175], 3550, 12, "start == 0 || start == 5");
      if (!(start === 5 === text[$startsWith]("data:"))) dart.assertFailed(null, I[175], 3551, 12, "(start == 5) == text.startsWith(\"data:\")");
      let indices = T$.JSArrayOfint().of([dart.notNull(start) - 1]);
      let slashIndex = -1;
      let char = null;
      let i = start;
      for (; dart.notNull(i) < text.length; i = dart.notNull(i) + 1) {
        char = text[$codeUnitAt](i);
        if (dart.equals(char, 44) || dart.equals(char, 59)) break;
        if (dart.equals(char, 47)) {
          if (dart.notNull(slashIndex) < 0) {
            slashIndex = i;
            continue;
          }
          dart.throw(new core.FormatException.new("Invalid MIME type", text, i));
        }
      }
      if (dart.notNull(slashIndex) < 0 && dart.notNull(i) > dart.notNull(start)) {
        dart.throw(new core.FormatException.new("Invalid MIME type", text, i));
      }
      while (!dart.equals(char, 44)) {
        indices[$add](i);
        i = dart.notNull(i) + 1;
        let equalsIndex = -1;
        for (; dart.notNull(i) < text.length; i = dart.notNull(i) + 1) {
          char = text[$codeUnitAt](i);
          if (dart.equals(char, 61)) {
            if (dart.notNull(equalsIndex) < 0) equalsIndex = i;
          } else if (dart.equals(char, 59) || dart.equals(char, 44)) {
            break;
          }
        }
        if (dart.notNull(equalsIndex) >= 0) {
          indices[$add](equalsIndex);
        } else {
          let lastSeparator = indices[$last];
          if (!dart.equals(char, 44) || i !== dart.notNull(lastSeparator) + 7 || !text[$startsWith]("base64", dart.notNull(lastSeparator) + 1)) {
            dart.throw(new core.FormatException.new("Expecting '='", text, i));
          }
          break;
        }
      }
      indices[$add](i);
      let isBase64 = indices[$length][$isOdd];
      if (isBase64) {
        text = convert.base64.normalize(text, dart.notNull(i) + 1, text.length);
      } else {
        let data = core._Uri._normalize(text, dart.notNull(i) + 1, text.length, core.UriData._uricTable, {escapeDelimiters: true});
        if (data != null) {
          text = text[$replaceRange](dart.notNull(i) + 1, text.length, data);
        }
      }
      return new core.UriData.__(text, indices, sourceUri);
    }
    static _uriEncodeBytes(canonicalTable, bytes, buffer) {
      if (canonicalTable == null) dart.nullFailed(I[175], 3625, 17, "canonicalTable");
      if (bytes == null) dart.nullFailed(I[175], 3625, 43, "bytes");
      if (buffer == null) dart.nullFailed(I[175], 3625, 61, "buffer");
      let byteOr = 0;
      for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
        let byte = bytes[$_get](i);
        byteOr = (byteOr | dart.notNull(byte)) >>> 0;
        if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$_get](byte[$rightShift](4))) & 1 << (dart.notNull(byte) & 15)) !== 0) {
          buffer.writeCharCode(byte);
        } else {
          buffer.writeCharCode(37);
          buffer.writeCharCode("0123456789ABCDEF"[$codeUnitAt](byte[$rightShift](4)));
          buffer.writeCharCode("0123456789ABCDEF"[$codeUnitAt](dart.notNull(byte) & 15));
        }
      }
      if ((byteOr & ~255 >>> 0) !== 0) {
        for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
          let byte = bytes[$_get](i);
          if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
            dart.throw(new core.ArgumentError.value(byte, "non-byte value"));
          }
        }
      }
    }
    toString() {
      return this[_separatorIndices$][$_get](0) === -1 ? "data:" + dart.str(this[_text$]) : this[_text$];
    }
  };
  (core.UriData.__ = function(_text, _separatorIndices, _uriCache) {
    if (_text == null) dart.nullFailed(I[175], 3154, 18, "_text");
    if (_separatorIndices == null) dart.nullFailed(I[175], 3154, 30, "_separatorIndices");
    this[_text$] = _text;
    this[_separatorIndices$] = _separatorIndices;
    this[_uriCache$] = _uriCache;
    ;
  }).prototype = core.UriData.prototype;
  dart.addTypeTests(core.UriData);
  dart.addTypeCaches(core.UriData);
  dart.setMethodSignature(core.UriData, () => ({
    __proto__: dart.getMethods(core.UriData.__proto__),
    [_computeUri]: dart.fnType(core.Uri, []),
    contentAsBytes: dart.fnType(typed_data.Uint8List, []),
    contentAsString: dart.fnType(core.String, [], {encoding: dart.nullable(convert.Encoding)}, {})
  }));
  dart.setGetterSignature(core.UriData, () => ({
    __proto__: dart.getGetters(core.UriData.__proto__),
    uri: core.Uri,
    mimeType: core.String,
    charset: core.String,
    isBase64: core.bool,
    contentText: core.String,
    parameters: core.Map$(core.String, core.String)
  }));
  dart.setLibraryUri(core.UriData, I[8]);
  dart.setFieldSignature(core.UriData, () => ({
    __proto__: dart.getFields(core.UriData.__proto__),
    [_text$]: dart.finalFieldType(core.String),
    [_separatorIndices$]: dart.finalFieldType(core.List$(core.int)),
    [_uriCache$]: dart.fieldType(dart.nullable(core.Uri))
  }));
  dart.defineExtensionMethods(core.UriData, ['toString']);
  dart.defineLazy(core.UriData, {
    /*core.UriData._noScheme*/get _noScheme() {
      return -1;
    },
    /*core.UriData._base64*/get _base64() {
      return C[103] || CT.C103;
    },
    /*core.UriData._tokenCharTable*/get _tokenCharTable() {
      return C[443] || CT.C443;
    },
    /*core.UriData._uricTable*/get _uricTable() {
      return C[442] || CT.C442;
    }
  }, false);
  var _hashCodeCache = dart.privateName(core, "_hashCodeCache");
  var _uri$ = dart.privateName(core, "_uri");
  var _schemeEnd$ = dart.privateName(core, "_schemeEnd");
  var _hostStart$ = dart.privateName(core, "_hostStart");
  var _portStart$ = dart.privateName(core, "_portStart");
  var _pathStart$ = dart.privateName(core, "_pathStart");
  var _queryStart$ = dart.privateName(core, "_queryStart");
  var _fragmentStart$ = dart.privateName(core, "_fragmentStart");
  var _schemeCache$ = dart.privateName(core, "_schemeCache");
  var _isFile = dart.privateName(core, "_isFile");
  var _isHttp = dart.privateName(core, "_isHttp");
  var _isHttps = dart.privateName(core, "_isHttps");
  var _isPackage = dart.privateName(core, "_isPackage");
  var _isScheme = dart.privateName(core, "_isScheme");
  var _computeScheme = dart.privateName(core, "_computeScheme");
  var _isPort = dart.privateName(core, "_isPort");
  var _simpleMerge = dart.privateName(core, "_simpleMerge");
  var _toNonSimple = dart.privateName(core, "_toNonSimple");
  core._SimpleUri = class _SimpleUri extends core.Object {
    get hasScheme() {
      return dart.notNull(this[_schemeEnd$]) > 0;
    }
    get hasAuthority() {
      return dart.notNull(this[_hostStart$]) > 0;
    }
    get hasUserInfo() {
      return dart.notNull(this[_hostStart$]) > dart.notNull(this[_schemeEnd$]) + 4;
    }
    get hasPort() {
      return dart.notNull(this[_hostStart$]) > 0 && dart.notNull(this[_portStart$]) + 1 < dart.notNull(this[_pathStart$]);
    }
    get hasQuery() {
      return dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$]);
    }
    get hasFragment() {
      return dart.notNull(this[_fragmentStart$]) < this[_uri$].length;
    }
    get [_isFile]() {
      return this[_schemeEnd$] === 4 && this[_uri$][$startsWith]("file");
    }
    get [_isHttp]() {
      return this[_schemeEnd$] === 4 && this[_uri$][$startsWith]("http");
    }
    get [_isHttps]() {
      return this[_schemeEnd$] === 5 && this[_uri$][$startsWith]("https");
    }
    get [_isPackage]() {
      return this[_schemeEnd$] === 7 && this[_uri$][$startsWith]("package");
    }
    [_isScheme](scheme) {
      if (scheme == null) dart.nullFailed(I[175], 4118, 25, "scheme");
      return this[_schemeEnd$] === scheme.length && this[_uri$][$startsWith](scheme);
    }
    get hasAbsolutePath() {
      return this[_uri$][$startsWith]("/", this[_pathStart$]);
    }
    get hasEmptyPath() {
      return this[_pathStart$] == this[_queryStart$];
    }
    get isAbsolute() {
      return dart.test(this.hasScheme) && !dart.test(this.hasFragment);
    }
    isScheme(scheme) {
      if (scheme == null) dart.nullFailed(I[175], 4126, 24, "scheme");
      if (scheme == null || scheme[$isEmpty]) return dart.notNull(this[_schemeEnd$]) < 0;
      if (scheme.length !== this[_schemeEnd$]) return false;
      return core._Uri._compareScheme(scheme, this[_uri$]);
    }
    get scheme() {
      let t258;
      t258 = this[_schemeCache$];
      return t258 == null ? this[_schemeCache$] = this[_computeScheme]() : t258;
    }
    [_computeScheme]() {
      if (dart.notNull(this[_schemeEnd$]) <= 0) return "";
      if (dart.test(this[_isHttp])) return "http";
      if (dart.test(this[_isHttps])) return "https";
      if (dart.test(this[_isFile])) return "file";
      if (dart.test(this[_isPackage])) return "package";
      return this[_uri$][$substring](0, this[_schemeEnd$]);
    }
    get authority() {
      return dart.notNull(this[_hostStart$]) > 0 ? this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, this[_pathStart$]) : "";
    }
    get userInfo() {
      return dart.notNull(this[_hostStart$]) > dart.notNull(this[_schemeEnd$]) + 3 ? this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, dart.notNull(this[_hostStart$]) - 1) : "";
    }
    get host() {
      return dart.notNull(this[_hostStart$]) > 0 ? this[_uri$][$substring](this[_hostStart$], this[_portStart$]) : "";
    }
    get port() {
      if (dart.test(this.hasPort)) return core.int.parse(this[_uri$][$substring](dart.notNull(this[_portStart$]) + 1, this[_pathStart$]));
      if (dart.test(this[_isHttp])) return 80;
      if (dart.test(this[_isHttps])) return 443;
      return 0;
    }
    get path() {
      return this[_uri$][$substring](this[_pathStart$], this[_queryStart$]);
    }
    get query() {
      return dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$]) ? this[_uri$][$substring](dart.notNull(this[_queryStart$]) + 1, this[_fragmentStart$]) : "";
    }
    get fragment() {
      return dart.notNull(this[_fragmentStart$]) < this[_uri$].length ? this[_uri$][$substring](dart.notNull(this[_fragmentStart$]) + 1) : "";
    }
    get origin() {
      let isHttp = this[_isHttp];
      if (dart.notNull(this[_schemeEnd$]) < 0) {
        dart.throw(new core.StateError.new("Cannot use origin without a scheme: " + dart.str(this)));
      }
      if (!dart.test(isHttp) && !dart.test(this[_isHttps])) {
        dart.throw(new core.StateError.new("Origin is only applicable to schemes http and https: " + dart.str(this)));
      }
      if (this[_hostStart$] == this[_portStart$]) {
        dart.throw(new core.StateError.new("A " + dart.str(this.scheme) + ": URI should have a non-empty host name: " + dart.str(this)));
      }
      if (this[_hostStart$] === dart.notNull(this[_schemeEnd$]) + 3) {
        return this[_uri$][$substring](0, this[_pathStart$]);
      }
      return this[_uri$][$substring](0, dart.notNull(this[_schemeEnd$]) + 3) + this[_uri$][$substring](this[_hostStart$], this[_pathStart$]);
    }
    get pathSegments() {
      let start = this[_pathStart$];
      let end = this[_queryStart$];
      if (this[_uri$][$startsWith]("/", start)) start = dart.notNull(start) + 1;
      if (start == end) return C[404] || CT.C404;
      let parts = T$.JSArrayOfString().of([]);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let char = this[_uri$][$codeUnitAt](i);
        if (char === 47) {
          parts[$add](this[_uri$][$substring](start, i));
          start = dart.notNull(i) + 1;
        }
      }
      parts[$add](this[_uri$][$substring](start, end));
      return T$.ListOfString().unmodifiable(parts);
    }
    get queryParameters() {
      if (!dart.test(this.hasQuery)) return C[444] || CT.C444;
      return new (T$0.UnmodifiableMapViewOfString$String()).new(core.Uri.splitQueryString(this.query));
    }
    get queryParametersAll() {
      if (!dart.test(this.hasQuery)) return C[430] || CT.C430;
      let queryParameterLists = core._Uri._splitQueryStringAll(this.query);
      queryParameterLists[$updateAll](C[431] || CT.C431);
      return T$0.MapOfString$ListOfString().unmodifiable(queryParameterLists);
    }
    [_isPort](port) {
      if (port == null) dart.nullFailed(I[175], 4218, 23, "port");
      let portDigitStart = dart.notNull(this[_portStart$]) + 1;
      return portDigitStart + port.length === this[_pathStart$] && this[_uri$][$startsWith](port, portDigitStart);
    }
    normalizePath() {
      return this;
    }
    removeFragment() {
      if (!dart.test(this.hasFragment)) return this;
      return new core._SimpleUri.new(this[_uri$][$substring](0, this[_fragmentStart$]), this[_schemeEnd$], this[_hostStart$], this[_portStart$], this[_pathStart$], this[_queryStart$], this[_fragmentStart$], this[_schemeCache$]);
    }
    replace(opts) {
      let scheme = opts && 'scheme' in opts ? opts.scheme : null;
      let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
      let host = opts && 'host' in opts ? opts.host : null;
      let port = opts && 'port' in opts ? opts.port : null;
      let path = opts && 'path' in opts ? opts.path : null;
      let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
      let query = opts && 'query' in opts ? opts.query : null;
      let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
      let fragment = opts && 'fragment' in opts ? opts.fragment : null;
      let schemeChanged = false;
      if (scheme != null) {
        scheme = core._Uri._makeScheme(scheme, 0, scheme.length);
        schemeChanged = !dart.test(this[_isScheme](scheme));
      } else {
        scheme = this.scheme;
      }
      let isFile = scheme === "file";
      if (userInfo != null) {
        userInfo = core._Uri._makeUserInfo(userInfo, 0, userInfo.length);
      } else if (dart.notNull(this[_hostStart$]) > 0) {
        userInfo = this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, this[_hostStart$]);
      } else {
        userInfo = "";
      }
      if (port != null) {
        port = core._Uri._makePort(port, scheme);
      } else {
        port = dart.test(this.hasPort) ? this.port : null;
        if (schemeChanged) {
          port = core._Uri._makePort(port, scheme);
        }
      }
      if (host != null) {
        host = core._Uri._makeHost(host, 0, host.length, false);
      } else if (dart.notNull(this[_hostStart$]) > 0) {
        host = this[_uri$][$substring](this[_hostStart$], this[_portStart$]);
      } else if (userInfo[$isNotEmpty] || port != null || isFile) {
        host = "";
      }
      let hasAuthority = host != null;
      if (path != null || pathSegments != null) {
        path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
      } else {
        path = this[_uri$][$substring](this[_pathStart$], this[_queryStart$]);
        if ((isFile || hasAuthority && !path[$isEmpty]) && !path[$startsWith]("/")) {
          path = "/" + dart.notNull(path);
        }
      }
      if (query != null || queryParameters != null) {
        query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
      } else if (dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$])) {
        query = this[_uri$][$substring](dart.notNull(this[_queryStart$]) + 1, this[_fragmentStart$]);
      }
      if (fragment != null) {
        fragment = core._Uri._makeFragment(fragment, 0, fragment.length);
      } else if (dart.notNull(this[_fragmentStart$]) < this[_uri$].length) {
        fragment = this[_uri$][$substring](dart.notNull(this[_fragmentStart$]) + 1);
      }
      return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
    }
    resolve(reference) {
      if (reference == null) dart.nullFailed(I[175], 4302, 22, "reference");
      return this.resolveUri(core.Uri.parse(reference));
    }
    resolveUri(reference) {
      if (reference == null) dart.nullFailed(I[175], 4306, 22, "reference");
      if (core._SimpleUri.is(reference)) {
        return this[_simpleMerge](this, reference);
      }
      return this[_toNonSimple]().resolveUri(reference);
    }
    static _packageNameEnd(uri) {
      if (uri == null) dart.nullFailed(I[175], 4323, 41, "uri");
      if (dart.test(uri[_isPackage]) && !dart.test(uri.hasAuthority)) {
        return core._skipPackageNameChars(uri[_uri$], uri[_pathStart$], uri[_queryStart$]);
      }
      return -1;
    }
    [_simpleMerge](base, ref) {
      if (base == null) dart.nullFailed(I[175], 4337, 31, "base");
      if (ref == null) dart.nullFailed(I[175], 4337, 48, "ref");
      if (dart.test(ref.hasScheme)) return ref;
      if (dart.test(ref.hasAuthority)) {
        if (!dart.test(base.hasScheme)) return ref;
        let isSimple = true;
        if (dart.test(base[_isFile])) {
          isSimple = !dart.test(ref.hasEmptyPath);
        } else if (dart.test(base[_isHttp])) {
          isSimple = !dart.test(ref[_isPort]("80"));
        } else if (dart.test(base[_isHttps])) {
          isSimple = !dart.test(ref[_isPort]("443"));
        }
        if (isSimple) {
          let delta = dart.notNull(base[_schemeEnd$]) + 1;
          let newUri = base[_uri$][$substring](0, dart.notNull(base[_schemeEnd$]) + 1) + ref[_uri$][$substring](dart.notNull(ref[_schemeEnd$]) + 1);
          return new core._SimpleUri.new(newUri, base[_schemeEnd$], dart.notNull(ref[_hostStart$]) + delta, dart.notNull(ref[_portStart$]) + delta, dart.notNull(ref[_pathStart$]) + delta, dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
        } else {
          return this[_toNonSimple]().resolveUri(ref);
        }
      }
      if (dart.test(ref.hasEmptyPath)) {
        if (dart.test(ref.hasQuery)) {
          let delta = dart.notNull(base[_queryStart$]) - dart.notNull(ref[_queryStart$]);
          let newUri = base[_uri$][$substring](0, base[_queryStart$]) + ref[_uri$][$substring](ref[_queryStart$]);
          return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
        }
        if (dart.test(ref.hasFragment)) {
          let delta = dart.notNull(base[_fragmentStart$]) - dart.notNull(ref[_fragmentStart$]);
          let newUri = base[_uri$][$substring](0, base[_fragmentStart$]) + ref[_uri$][$substring](ref[_fragmentStart$]);
          return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], base[_queryStart$], dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
        }
        return base.removeFragment();
      }
      if (dart.test(ref.hasAbsolutePath)) {
        let basePathStart = base[_pathStart$];
        let packageNameEnd = core._SimpleUri._packageNameEnd(this);
        if (dart.notNull(packageNameEnd) > 0) basePathStart = packageNameEnd;
        let delta = dart.notNull(basePathStart) - dart.notNull(ref[_pathStart$]);
        let newUri = base[_uri$][$substring](0, basePathStart) + ref[_uri$][$substring](ref[_pathStart$]);
        return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
      }
      if (dart.test(base.hasEmptyPath) && dart.test(base.hasAuthority)) {
        let refStart = ref[_pathStart$];
        while (ref[_uri$][$startsWith]("../", refStart)) {
          refStart = dart.notNull(refStart) + 3;
        }
        let delta = dart.notNull(base[_pathStart$]) - dart.notNull(refStart) + 1;
        let newUri = base[_uri$][$substring](0, base[_pathStart$]) + "/" + ref[_uri$][$substring](refStart);
        return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
      }
      let baseUri = base[_uri$];
      let refUri = ref[_uri$];
      let baseStart = base[_pathStart$];
      let baseEnd = base[_queryStart$];
      let packageNameEnd = core._SimpleUri._packageNameEnd(this);
      if (dart.notNull(packageNameEnd) >= 0) {
        baseStart = packageNameEnd;
      } else {
        while (baseUri[$startsWith]("../", baseStart))
          baseStart = dart.notNull(baseStart) + 3;
      }
      let refStart = ref[_pathStart$];
      let refEnd = ref[_queryStart$];
      let backCount = 0;
      while (dart.notNull(refStart) + 3 <= dart.notNull(refEnd) && refUri[$startsWith]("../", refStart)) {
        refStart = dart.notNull(refStart) + 3;
        backCount = backCount + 1;
      }
      let insert = "";
      while (dart.notNull(baseEnd) > dart.notNull(baseStart)) {
        baseEnd = dart.notNull(baseEnd) - 1;
        let char = baseUri[$codeUnitAt](baseEnd);
        if (char === 47) {
          insert = "/";
          if (backCount === 0) break;
          backCount = backCount - 1;
        }
      }
      if (baseEnd == baseStart && !dart.test(base.hasScheme) && !dart.test(base.hasAbsolutePath)) {
        insert = "";
        refStart = dart.notNull(refStart) - backCount * 3;
      }
      let delta = dart.notNull(baseEnd) - dart.notNull(refStart) + insert.length;
      let newUri = base[_uri$][$substring](0, baseEnd) + insert + ref[_uri$][$substring](refStart);
      return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
    }
    toFilePath(opts) {
      let t258;
      let windows = opts && 'windows' in opts ? opts.windows : null;
      if (dart.notNull(this[_schemeEnd$]) >= 0 && !dart.test(this[_isFile])) {
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a " + dart.str(this.scheme) + " URI"));
      }
      if (dart.notNull(this[_queryStart$]) < this[_uri$].length) {
        if (dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$])) {
          dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a query component"));
        }
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a fragment component"));
      }
      return dart.test((t258 = windows, t258 == null ? core._Uri._isWindows : t258)) ? core._Uri._toWindowsFilePath(this) : this[_toFilePath]();
    }
    [_toFilePath]() {
      if (dart.notNull(this[_hostStart$]) < dart.notNull(this[_portStart$])) {
        dart.throw(new core.UnsupportedError.new("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
      }
      return this.path;
    }
    get data() {
      if (!(this.scheme !== "data")) dart.assertFailed(null, I[175], 4548, 12, "scheme != \"data\"");
      return null;
    }
    get hashCode() {
      let t258;
      t258 = this[_hashCodeCache];
      return t258 == null ? this[_hashCodeCache] = dart.hashCode(this[_uri$]) : t258;
    }
    _equals(other) {
      if (other == null) return false;
      if (this === other) return true;
      return core.Uri.is(other) && this[_uri$] == dart.toString(other);
    }
    [_toNonSimple]() {
      return new core._Uri._internal(this.scheme, this.userInfo, dart.test(this.hasAuthority) ? this.host : null, dart.test(this.hasPort) ? this.port : null, this.path, dart.test(this.hasQuery) ? this.query : null, dart.test(this.hasFragment) ? this.fragment : null);
    }
    toString() {
      return this[_uri$];
    }
  };
  (core._SimpleUri.new = function(_uri, _schemeEnd, _hostStart, _portStart, _pathStart, _queryStart, _fragmentStart, _schemeCache) {
    if (_uri == null) dart.nullFailed(I[175], 4096, 12, "_uri");
    if (_schemeEnd == null) dart.nullFailed(I[175], 4097, 12, "_schemeEnd");
    if (_hostStart == null) dart.nullFailed(I[175], 4098, 12, "_hostStart");
    if (_portStart == null) dart.nullFailed(I[175], 4099, 12, "_portStart");
    if (_pathStart == null) dart.nullFailed(I[175], 4100, 12, "_pathStart");
    if (_queryStart == null) dart.nullFailed(I[175], 4101, 12, "_queryStart");
    if (_fragmentStart == null) dart.nullFailed(I[175], 4102, 12, "_fragmentStart");
    this[_hashCodeCache] = null;
    this[_uri$] = _uri;
    this[_schemeEnd$] = _schemeEnd;
    this[_hostStart$] = _hostStart;
    this[_portStart$] = _portStart;
    this[_pathStart$] = _pathStart;
    this[_queryStart$] = _queryStart;
    this[_fragmentStart$] = _fragmentStart;
    this[_schemeCache$] = _schemeCache;
    ;
  }).prototype = core._SimpleUri.prototype;
  dart.addTypeTests(core._SimpleUri);
  dart.addTypeCaches(core._SimpleUri);
  core._SimpleUri[dart.implements] = () => [core.Uri];
  dart.setMethodSignature(core._SimpleUri, () => ({
    __proto__: dart.getMethods(core._SimpleUri.__proto__),
    [_isScheme]: dart.fnType(core.bool, [core.String]),
    isScheme: dart.fnType(core.bool, [core.String]),
    [_computeScheme]: dart.fnType(core.String, []),
    [_isPort]: dart.fnType(core.bool, [core.String]),
    normalizePath: dart.fnType(core.Uri, []),
    removeFragment: dart.fnType(core.Uri, []),
    replace: dart.fnType(core.Uri, [], {fragment: dart.nullable(core.String), host: dart.nullable(core.String), path: dart.nullable(core.String), pathSegments: dart.nullable(core.Iterable$(core.String)), port: dart.nullable(core.int), query: dart.nullable(core.String), queryParameters: dart.nullable(core.Map$(core.String, dart.dynamic)), scheme: dart.nullable(core.String), userInfo: dart.nullable(core.String)}, {}),
    resolve: dart.fnType(core.Uri, [core.String]),
    resolveUri: dart.fnType(core.Uri, [core.Uri]),
    [_simpleMerge]: dart.fnType(core.Uri, [core._SimpleUri, core._SimpleUri]),
    toFilePath: dart.fnType(core.String, [], {windows: dart.nullable(core.bool)}, {}),
    [_toFilePath]: dart.fnType(core.String, []),
    [_toNonSimple]: dart.fnType(core.Uri, [])
  }));
  dart.setGetterSignature(core._SimpleUri, () => ({
    __proto__: dart.getGetters(core._SimpleUri.__proto__),
    hasScheme: core.bool,
    hasAuthority: core.bool,
    hasUserInfo: core.bool,
    hasPort: core.bool,
    hasQuery: core.bool,
    hasFragment: core.bool,
    [_isFile]: core.bool,
    [_isHttp]: core.bool,
    [_isHttps]: core.bool,
    [_isPackage]: core.bool,
    hasAbsolutePath: core.bool,
    hasEmptyPath: core.bool,
    isAbsolute: core.bool,
    scheme: core.String,
    authority: core.String,
    userInfo: core.String,
    host: core.String,
    port: core.int,
    path: core.String,
    query: core.String,
    fragment: core.String,
    origin: core.String,
    pathSegments: core.List$(core.String),
    queryParameters: core.Map$(core.String, core.String),
    queryParametersAll: core.Map$(core.String, core.List$(core.String)),
    data: dart.nullable(core.UriData)
  }));
  dart.setLibraryUri(core._SimpleUri, I[8]);
  dart.setFieldSignature(core._SimpleUri, () => ({
    __proto__: dart.getFields(core._SimpleUri.__proto__),
    [_uri$]: dart.finalFieldType(core.String),
    [_schemeEnd$]: dart.finalFieldType(core.int),
    [_hostStart$]: dart.finalFieldType(core.int),
    [_portStart$]: dart.finalFieldType(core.int),
    [_pathStart$]: dart.finalFieldType(core.int),
    [_queryStart$]: dart.finalFieldType(core.int),
    [_fragmentStart$]: dart.finalFieldType(core.int),
    [_schemeCache$]: dart.fieldType(dart.nullable(core.String)),
    [_hashCodeCache]: dart.fieldType(dart.nullable(core.int))
  }));
  dart.defineExtensionMethods(core._SimpleUri, ['_equals', 'toString']);
  dart.defineExtensionAccessors(core._SimpleUri, ['hashCode']);
  var _data$0 = dart.privateName(core, "_data");
  core._DataUri = class _DataUri extends core._Uri {
    get data() {
      return this[_data$0];
    }
  };
  (core._DataUri.new = function(_data, path, query) {
    if (_data == null) dart.nullFailed(I[175], 4577, 17, "_data");
    if (path == null) dart.nullFailed(I[175], 4577, 31, "path");
    this[_data$0] = _data;
    core._DataUri.__proto__._internal.call(this, "data", "", null, null, path, query, null);
    ;
  }).prototype = core._DataUri.prototype;
  dart.addTypeTests(core._DataUri);
  dart.addTypeCaches(core._DataUri);
  dart.setLibraryUri(core._DataUri, I[8]);
  dart.setFieldSignature(core._DataUri, () => ({
    __proto__: dart.getFields(core._DataUri.__proto__),
    [_data$0]: dart.finalFieldType(core.UriData)
  }));
  core._symbolToString = function _symbolToString(symbol) {
    if (symbol == null) dart.nullFailed(I[7], 29, 31, "symbol");
    return _js_helper.PrivateSymbol.is(symbol) ? _js_helper.PrivateSymbol.getName(symbol) : _internal.Symbol.getName(_internal.Symbol.as(symbol));
  };
  core._max = function _max(a, b) {
    if (a == null) dart.nullFailed(I[7], 933, 14, "a");
    if (b == null) dart.nullFailed(I[7], 933, 21, "b");
    return dart.notNull(a) > dart.notNull(b) ? a : b;
  };
  core._min = function _min(a, b) {
    if (a == null) dart.nullFailed(I[7], 934, 14, "a");
    if (b == null) dart.nullFailed(I[7], 934, 21, "b");
    return dart.notNull(a) < dart.notNull(b) ? a : b;
  };
  core.identical = function identical(a, b) {
    return a == null ? b == null : a === b;
  };
  core.identityHashCode = function identityHashCode(object) {
    if (object == null) return 0;
    let hash = object[dart.identityHashCode_];
    if (hash == null) {
      hash = Math.random() * 0x3fffffff | 0;
      object[dart.identityHashCode_] = hash;
    }
    return hash;
  };
  core.print = function print$0(object) {
    let line = dart.toString(object);
    let toZone = _internal.printToZone;
    if (toZone == null) {
      _internal.printToConsole(line);
    } else {
      toZone(line);
    }
  };
  core._isLeadSurrogate = function _isLeadSurrogate$(code) {
    if (code == null) dart.nullFailed(I[174], 625, 27, "code");
    return (dart.notNull(code) & 64512) === 55296;
  };
  core._isTrailSurrogate = function _isTrailSurrogate(code) {
    if (code == null) dart.nullFailed(I[174], 628, 28, "code");
    return (dart.notNull(code) & 64512) === 56320;
  };
  core._combineSurrogatePair = function _combineSurrogatePair$(start, end) {
    if (start == null) dart.nullFailed(I[174], 631, 31, "start");
    if (end == null) dart.nullFailed(I[174], 631, 42, "end");
    return 65536 + ((dart.notNull(start) & 1023) << 10) + (dart.notNull(end) & 1023);
  };
  core._createTables = function _createTables() {
    let unreserved = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~";
    let pchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=";
    let tables = T$0.ListOfUint8List().generate(22, dart.fn(_ => {
      if (_ == null) dart.nullFailed(I[175], 3872, 54, "_");
      return _native_typed_data.NativeUint8List.new(96);
    }, T$0.intToUint8List()));
    function build(state, defaultTransition) {
      let t258;
      t258 = tables[$_get](core.int.as(state));
      return (() => {
        t258[$fillRange](0, 96, T$.intN().as(defaultTransition));
        return t258;
      })();
    }
    dart.fn(build, T$0.dynamicAnddynamicToUint8List());
    function setChars(target, chars, transition) {
      if (target == null) dart.nullFailed(I[175], 3883, 27, "target");
      if (chars == null) dart.nullFailed(I[175], 3883, 42, "chars");
      if (transition == null) dart.nullFailed(I[175], 3883, 53, "transition");
      for (let i = 0; i < chars.length; i = i + 1) {
        let char = chars[$codeUnitAt](i);
        target[$_set]((char ^ 96) >>> 0, transition);
      }
    }
    dart.fn(setChars, T$0.Uint8ListAndStringAndintTovoid());
    function setRange(target, range, transition) {
      if (target == null) dart.nullFailed(I[175], 3896, 27, "target");
      if (range == null) dart.nullFailed(I[175], 3896, 42, "range");
      if (transition == null) dart.nullFailed(I[175], 3896, 53, "transition");
      for (let i = range[$codeUnitAt](0), n = range[$codeUnitAt](1); i <= n; i = i + 1) {
        target[$_set]((i ^ 96) >>> 0, transition);
      }
    }
    dart.fn(setRange, T$0.Uint8ListAndStringAndintTovoid());
    let b = null;
    b = build(0, (1 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 1);
    setChars(typed_data.Uint8List.as(b), ".", 14);
    setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", 3);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(14, (1 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 1);
    setChars(typed_data.Uint8List.as(b), ".", 15);
    setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(15, (1 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 1);
    setChars(typed_data.Uint8List.as(b), "%", (1 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", 9);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(1, (1 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 1);
    setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", 10);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(2, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, (11 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (3 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), ".", (18 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(3, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), "/", (4 | 64) >>> 0);
    setChars(typed_data.Uint8List.as(b), ".", 18);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(4, (5 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 5);
    setRange(typed_data.Uint8List.as(b), "AZ", (5 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), ":", (6 | 96) >>> 0);
    setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
    setChars(typed_data.Uint8List.as(b), "[", (8 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(5, (5 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 5);
    setRange(typed_data.Uint8List.as(b), "AZ", (5 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), ":", (6 | 96) >>> 0);
    setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(6, (7 | 224) >>> 0);
    setRange(typed_data.Uint8List.as(b), "19", 7);
    setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(7, (7 | 224) >>> 0);
    setRange(typed_data.Uint8List.as(b), "09", 7);
    setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(8, 8);
    setChars(typed_data.Uint8List.as(b), "]", 5);
    b = build(9, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), ".", 16);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(16, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), ".", 17);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(17, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), "/", 9);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(10, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), ".", 18);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(18, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), ".", 19);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(19, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(11, (11 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 11);
    setChars(typed_data.Uint8List.as(b), "/", 10);
    setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(12, (12 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 12);
    setChars(typed_data.Uint8List.as(b), "?", 12);
    setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
    b = build(13, (13 | 224) >>> 0);
    setChars(typed_data.Uint8List.as(b), pchar, 13);
    setChars(typed_data.Uint8List.as(b), "?", 13);
    b = build(20, (21 | 224) >>> 0);
    setRange(typed_data.Uint8List.as(b), "az", 21);
    b = build(21, (21 | 224) >>> 0);
    setRange(typed_data.Uint8List.as(b), "az", 21);
    setRange(typed_data.Uint8List.as(b), "09", 21);
    setChars(typed_data.Uint8List.as(b), "+-.", 21);
    return tables;
  };
  core._scan = function _scan(uri, start, end, state, indices) {
    if (uri == null) dart.nullFailed(I[175], 4064, 18, "uri");
    if (start == null) dart.nullFailed(I[175], 4064, 27, "start");
    if (end == null) dart.nullFailed(I[175], 4064, 38, "end");
    if (state == null) dart.nullFailed(I[175], 4064, 47, "state");
    if (indices == null) dart.nullFailed(I[175], 4064, 64, "indices");
    let tables = core._scannerTables;
    if (!(dart.notNull(end) <= uri.length)) dart.assertFailed(null, I[175], 4066, 10, "end <= uri.length");
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let table = tables[$_get](state);
      let char = (uri[$codeUnitAt](i) ^ 96) >>> 0;
      if (char > 95) char = 31;
      let transition = table[$_get](char);
      state = dart.notNull(transition) & 31;
      indices[$_set](transition[$rightShift](5), i);
    }
    return state;
  };
  core._startsWithData = function _startsWithData(text, start) {
    if (text == null) dart.nullFailed(I[175], 4591, 28, "text");
    if (start == null) dart.nullFailed(I[175], 4591, 38, "start");
    let delta = ((text[$codeUnitAt](dart.notNull(start) + 4) ^ 58) >>> 0) * 3;
    delta = (delta | (text[$codeUnitAt](start) ^ 100) >>> 0) >>> 0;
    delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 1) ^ 97) >>> 0) >>> 0;
    delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 2) ^ 116) >>> 0) >>> 0;
    delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 3) ^ 97) >>> 0) >>> 0;
    return delta;
  };
  core._stringOrNullLength = function _stringOrNullLength(s) {
    return s == null ? 0 : s.length;
  };
  core._toUnmodifiableStringList = function _toUnmodifiableStringList(key, list) {
    if (key == null) dart.nullFailed(I[175], 4604, 47, "key");
    if (list == null) dart.nullFailed(I[175], 4604, 65, "list");
    return T$.ListOfString().unmodifiable(list);
  };
  core._skipPackageNameChars = function _skipPackageNameChars(source, start, end) {
    if (source == null) dart.nullFailed(I[175], 4616, 34, "source");
    if (start == null) dart.nullFailed(I[175], 4616, 46, "start");
    if (end == null) dart.nullFailed(I[175], 4616, 57, "end");
    let dots = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = source[$codeUnitAt](i);
      if (char === 47) return dots !== 0 ? i : -1;
      if (char === 37 || char === 58) return -1;
      dots = (dots | (char ^ 46) >>> 0) >>> 0;
    }
    return -1;
  };
  dart.defineLazy(core, {
    /*core._dummyList*/get _dummyList() {
      return _native_typed_data.NativeUint16List.new(0);
    },
    /*core.deprecated*/get deprecated() {
      return C[445] || CT.C445;
    },
    /*core.override*/get override() {
      return C[446] || CT.C446;
    },
    /*core.provisional*/get provisional() {
      return null;
    },
    /*core.proxy*/get proxy() {
      return null;
    },
    /*core._SPACE*/get _SPACE() {
      return 32;
    },
    /*core._PERCENT*/get _PERCENT() {
      return 37;
    },
    /*core._AMPERSAND*/get _AMPERSAND() {
      return 38;
    },
    /*core._PLUS*/get _PLUS() {
      return 43;
    },
    /*core._DOT*/get _DOT() {
      return 46;
    },
    /*core._SLASH*/get _SLASH() {
      return 47;
    },
    /*core._COLON*/get _COLON() {
      return 58;
    },
    /*core._EQUALS*/get _EQUALS() {
      return 61;
    },
    /*core._UPPER_CASE_A*/get _UPPER_CASE_A() {
      return 65;
    },
    /*core._UPPER_CASE_Z*/get _UPPER_CASE_Z() {
      return 90;
    },
    /*core._LEFT_BRACKET*/get _LEFT_BRACKET() {
      return 91;
    },
    /*core._BACKSLASH*/get _BACKSLASH() {
      return 92;
    },
    /*core._RIGHT_BRACKET*/get _RIGHT_BRACKET() {
      return 93;
    },
    /*core._LOWER_CASE_A*/get _LOWER_CASE_A() {
      return 97;
    },
    /*core._LOWER_CASE_F*/get _LOWER_CASE_F() {
      return 102;
    },
    /*core._LOWER_CASE_Z*/get _LOWER_CASE_Z() {
      return 122;
    },
    /*core._hexDigits*/get _hexDigits() {
      return "0123456789ABCDEF";
    },
    /*core._schemeEndIndex*/get _schemeEndIndex() {
      return 1;
    },
    /*core._hostStartIndex*/get _hostStartIndex() {
      return 2;
    },
    /*core._portStartIndex*/get _portStartIndex() {
      return 3;
    },
    /*core._pathStartIndex*/get _pathStartIndex() {
      return 4;
    },
    /*core._queryStartIndex*/get _queryStartIndex() {
      return 5;
    },
    /*core._fragmentStartIndex*/get _fragmentStartIndex() {
      return 6;
    },
    /*core._notSimpleIndex*/get _notSimpleIndex() {
      return 7;
    },
    /*core._uriStart*/get _uriStart() {
      return 0;
    },
    /*core._nonSimpleEndStates*/get _nonSimpleEndStates() {
      return 14;
    },
    /*core._schemeStart*/get _schemeStart() {
      return 20;
    },
    /*core._scannerTables*/get _scannerTables() {
      return core._createTables();
    }
  }, false);
  var serverHeader = dart.privateName(_http, "HttpServer.serverHeader");
  var autoCompress = dart.privateName(_http, "HttpServer.autoCompress");
  var idleTimeout = dart.privateName(_http, "HttpServer.idleTimeout");
  _http.HttpServer = class HttpServer extends core.Object {
    get serverHeader() {
      return this[serverHeader];
    }
    set serverHeader(value) {
      this[serverHeader] = value;
    }
    get autoCompress() {
      return this[autoCompress];
    }
    set autoCompress(value) {
      this[autoCompress] = value;
    }
    get idleTimeout() {
      return this[idleTimeout];
    }
    set idleTimeout(value) {
      this[idleTimeout] = value;
    }
    static bind(address, port, opts) {
      if (port == null) dart.nullFailed(I[176], 227, 47, "port");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[176], 228, 16, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[176], 228, 34, "v6Only");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[176], 228, 55, "shared");
      return _http._HttpServer.bind(address, port, backlog, v6Only, shared);
    }
    static bindSecure(address, port, context, opts) {
      if (port == null) dart.nullFailed(I[176], 272, 24, "port");
      if (context == null) dart.nullFailed(I[176], 272, 46, "context");
      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
      if (backlog == null) dart.nullFailed(I[176], 273, 16, "backlog");
      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
      if (v6Only == null) dart.nullFailed(I[176], 274, 16, "v6Only");
      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
      if (requestClientCertificate == null) dart.nullFailed(I[176], 275, 16, "requestClientCertificate");
      let shared = opts && 'shared' in opts ? opts.shared : false;
      if (shared == null) dart.nullFailed(I[176], 276, 16, "shared");
      return _http._HttpServer.bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared);
    }
    static listenOn(serverSocket) {
      if (serverSocket == null) dart.nullFailed(I[176], 285, 44, "serverSocket");
      return new _http._HttpServer.listenOn(serverSocket);
    }
  };
  (_http.HttpServer[dart.mixinNew] = function() {
    this[serverHeader] = null;
    this[autoCompress] = false;
    this[idleTimeout] = C[447] || CT.C447;
  }).prototype = _http.HttpServer.prototype;
  _http.HttpServer.prototype[dart.isStream] = true;
  dart.addTypeTests(_http.HttpServer);
  dart.addTypeCaches(_http.HttpServer);
  _http.HttpServer[dart.implements] = () => [async.Stream$(_http.HttpRequest)];
  dart.setLibraryUri(_http.HttpServer, I[177]);
  dart.setFieldSignature(_http.HttpServer, () => ({
    __proto__: dart.getFields(_http.HttpServer.__proto__),
    serverHeader: dart.fieldType(dart.nullable(core.String)),
    autoCompress: dart.fieldType(core.bool),
    idleTimeout: dart.fieldType(dart.nullable(core.Duration))
  }));
  var total = dart.privateName(_http, "HttpConnectionsInfo.total");
  var active = dart.privateName(_http, "HttpConnectionsInfo.active");
  var idle = dart.privateName(_http, "HttpConnectionsInfo.idle");
  var closing = dart.privateName(_http, "HttpConnectionsInfo.closing");
  _http.HttpConnectionsInfo = class HttpConnectionsInfo extends core.Object {
    get total() {
      return this[total];
    }
    set total(value) {
      this[total] = value;
    }
    get active() {
      return this[active];
    }
    set active(value) {
      this[active] = value;
    }
    get idle() {
      return this[idle];
    }
    set idle(value) {
      this[idle] = value;
    }
    get closing() {
      return this[closing];
    }
    set closing(value) {
      this[closing] = value;
    }
  };
  (_http.HttpConnectionsInfo.new = function() {
    this[total] = 0;
    this[active] = 0;
    this[idle] = 0;
    this[closing] = 0;
    ;
  }).prototype = _http.HttpConnectionsInfo.prototype;
  dart.addTypeTests(_http.HttpConnectionsInfo);
  dart.addTypeCaches(_http.HttpConnectionsInfo);
  dart.setLibraryUri(_http.HttpConnectionsInfo, I[177]);
  dart.setFieldSignature(_http.HttpConnectionsInfo, () => ({
    __proto__: dart.getFields(_http.HttpConnectionsInfo.__proto__),
    total: dart.fieldType(core.int),
    active: dart.fieldType(core.int),
    idle: dart.fieldType(core.int),
    closing: dart.fieldType(core.int)
  }));
  var date = dart.privateName(_http, "HttpHeaders.date");
  var expires = dart.privateName(_http, "HttpHeaders.expires");
  var ifModifiedSince = dart.privateName(_http, "HttpHeaders.ifModifiedSince");
  var host = dart.privateName(_http, "HttpHeaders.host");
  var port = dart.privateName(_http, "HttpHeaders.port");
  var contentType = dart.privateName(_http, "HttpHeaders.contentType");
  var contentLength = dart.privateName(_http, "HttpHeaders.contentLength");
  var __HttpHeaders_persistentConnection = dart.privateName(_http, "_#HttpHeaders#persistentConnection");
  var __HttpHeaders_persistentConnection_isSet = dart.privateName(_http, "_#HttpHeaders#persistentConnection#isSet");
  var __HttpHeaders_chunkedTransferEncoding = dart.privateName(_http, "_#HttpHeaders#chunkedTransferEncoding");
  var __HttpHeaders_chunkedTransferEncoding_isSet = dart.privateName(_http, "_#HttpHeaders#chunkedTransferEncoding#isSet");
  _http.HttpHeaders = class HttpHeaders extends core.Object {
    get date() {
      return this[date];
    }
    set date(value) {
      this[date] = value;
    }
    get expires() {
      return this[expires];
    }
    set expires(value) {
      this[expires] = value;
    }
    get ifModifiedSince() {
      return this[ifModifiedSince];
    }
    set ifModifiedSince(value) {
      this[ifModifiedSince] = value;
    }
    get host() {
      return this[host];
    }
    set host(value) {
      this[host] = value;
    }
    get port() {
      return this[port];
    }
    set port(value) {
      this[port] = value;
    }
    get contentType() {
      return this[contentType];
    }
    set contentType(value) {
      this[contentType] = value;
    }
    get contentLength() {
      return this[contentLength];
    }
    set contentLength(value) {
      this[contentLength] = value;
    }
    get persistentConnection() {
      let t258;
      return dart.test(this[__HttpHeaders_persistentConnection_isSet]) ? (t258 = this[__HttpHeaders_persistentConnection], t258) : dart.throw(new _internal.LateError.fieldNI("persistentConnection"));
    }
    set persistentConnection(t258) {
      if (t258 == null) dart.nullFailed(I[176], 652, 13, "null");
      this[__HttpHeaders_persistentConnection_isSet] = true;
      this[__HttpHeaders_persistentConnection] = t258;
    }
    get chunkedTransferEncoding() {
      let t259;
      return dart.test(this[__HttpHeaders_chunkedTransferEncoding_isSet]) ? (t259 = this[__HttpHeaders_chunkedTransferEncoding], t259) : dart.throw(new _internal.LateError.fieldNI("chunkedTransferEncoding"));
    }
    set chunkedTransferEncoding(t259) {
      if (t259 == null) dart.nullFailed(I[176], 659, 13, "null");
      this[__HttpHeaders_chunkedTransferEncoding_isSet] = true;
      this[__HttpHeaders_chunkedTransferEncoding] = t259;
    }
  };
  (_http.HttpHeaders.new = function() {
    this[date] = null;
    this[expires] = null;
    this[ifModifiedSince] = null;
    this[host] = null;
    this[port] = null;
    this[contentType] = null;
    this[contentLength] = -1;
    this[__HttpHeaders_persistentConnection] = null;
    this[__HttpHeaders_persistentConnection_isSet] = false;
    this[__HttpHeaders_chunkedTransferEncoding] = null;
    this[__HttpHeaders_chunkedTransferEncoding_isSet] = false;
    ;
  }).prototype = _http.HttpHeaders.prototype;
  dart.addTypeTests(_http.HttpHeaders);
  dart.addTypeCaches(_http.HttpHeaders);
  dart.setGetterSignature(_http.HttpHeaders, () => ({
    __proto__: dart.getGetters(_http.HttpHeaders.__proto__),
    persistentConnection: core.bool,
    chunkedTransferEncoding: core.bool
  }));
  dart.setSetterSignature(_http.HttpHeaders, () => ({
    __proto__: dart.getSetters(_http.HttpHeaders.__proto__),
    persistentConnection: core.bool,
    chunkedTransferEncoding: core.bool
  }));
  dart.setLibraryUri(_http.HttpHeaders, I[177]);
  dart.setFieldSignature(_http.HttpHeaders, () => ({
    __proto__: dart.getFields(_http.HttpHeaders.__proto__),
    date: dart.fieldType(dart.nullable(core.DateTime)),
    expires: dart.fieldType(dart.nullable(core.DateTime)),
    ifModifiedSince: dart.fieldType(dart.nullable(core.DateTime)),
    host: dart.fieldType(dart.nullable(core.String)),
    port: dart.fieldType(dart.nullable(core.int)),
    contentType: dart.fieldType(dart.nullable(_http.ContentType)),
    contentLength: dart.fieldType(core.int),
    [__HttpHeaders_persistentConnection]: dart.fieldType(dart.nullable(core.bool)),
    [__HttpHeaders_persistentConnection_isSet]: dart.fieldType(core.bool),
    [__HttpHeaders_chunkedTransferEncoding]: dart.fieldType(dart.nullable(core.bool)),
    [__HttpHeaders_chunkedTransferEncoding_isSet]: dart.fieldType(core.bool)
  }));
  dart.defineLazy(_http.HttpHeaders, {
    /*_http.HttpHeaders.acceptHeader*/get acceptHeader() {
      return "accept";
    },
    /*_http.HttpHeaders.acceptCharsetHeader*/get acceptCharsetHeader() {
      return "accept-charset";
    },
    /*_http.HttpHeaders.acceptEncodingHeader*/get acceptEncodingHeader() {
      return "accept-encoding";
    },
    /*_http.HttpHeaders.acceptLanguageHeader*/get acceptLanguageHeader() {
      return "accept-language";
    },
    /*_http.HttpHeaders.acceptRangesHeader*/get acceptRangesHeader() {
      return "accept-ranges";
    },
    /*_http.HttpHeaders.ageHeader*/get ageHeader() {
      return "age";
    },
    /*_http.HttpHeaders.allowHeader*/get allowHeader() {
      return "allow";
    },
    /*_http.HttpHeaders.authorizationHeader*/get authorizationHeader() {
      return "authorization";
    },
    /*_http.HttpHeaders.cacheControlHeader*/get cacheControlHeader() {
      return "cache-control";
    },
    /*_http.HttpHeaders.connectionHeader*/get connectionHeader() {
      return "connection";
    },
    /*_http.HttpHeaders.contentEncodingHeader*/get contentEncodingHeader() {
      return "content-encoding";
    },
    /*_http.HttpHeaders.contentLanguageHeader*/get contentLanguageHeader() {
      return "content-language";
    },
    /*_http.HttpHeaders.contentLengthHeader*/get contentLengthHeader() {
      return "content-length";
    },
    /*_http.HttpHeaders.contentLocationHeader*/get contentLocationHeader() {
      return "content-location";
    },
    /*_http.HttpHeaders.contentMD5Header*/get contentMD5Header() {
      return "content-md5";
    },
    /*_http.HttpHeaders.contentRangeHeader*/get contentRangeHeader() {
      return "content-range";
    },
    /*_http.HttpHeaders.contentTypeHeader*/get contentTypeHeader() {
      return "content-type";
    },
    /*_http.HttpHeaders.dateHeader*/get dateHeader() {
      return "date";
    },
    /*_http.HttpHeaders.etagHeader*/get etagHeader() {
      return "etag";
    },
    /*_http.HttpHeaders.expectHeader*/get expectHeader() {
      return "expect";
    },
    /*_http.HttpHeaders.expiresHeader*/get expiresHeader() {
      return "expires";
    },
    /*_http.HttpHeaders.fromHeader*/get fromHeader() {
      return "from";
    },
    /*_http.HttpHeaders.hostHeader*/get hostHeader() {
      return "host";
    },
    /*_http.HttpHeaders.ifMatchHeader*/get ifMatchHeader() {
      return "if-match";
    },
    /*_http.HttpHeaders.ifModifiedSinceHeader*/get ifModifiedSinceHeader() {
      return "if-modified-since";
    },
    /*_http.HttpHeaders.ifNoneMatchHeader*/get ifNoneMatchHeader() {
      return "if-none-match";
    },
    /*_http.HttpHeaders.ifRangeHeader*/get ifRangeHeader() {
      return "if-range";
    },
    /*_http.HttpHeaders.ifUnmodifiedSinceHeader*/get ifUnmodifiedSinceHeader() {
      return "if-unmodified-since";
    },
    /*_http.HttpHeaders.lastModifiedHeader*/get lastModifiedHeader() {
      return "last-modified";
    },
    /*_http.HttpHeaders.locationHeader*/get locationHeader() {
      return "location";
    },
    /*_http.HttpHeaders.maxForwardsHeader*/get maxForwardsHeader() {
      return "max-forwards";
    },
    /*_http.HttpHeaders.pragmaHeader*/get pragmaHeader() {
      return "pragma";
    },
    /*_http.HttpHeaders.proxyAuthenticateHeader*/get proxyAuthenticateHeader() {
      return "proxy-authenticate";
    },
    /*_http.HttpHeaders.proxyAuthorizationHeader*/get proxyAuthorizationHeader() {
      return "proxy-authorization";
    },
    /*_http.HttpHeaders.rangeHeader*/get rangeHeader() {
      return "range";
    },
    /*_http.HttpHeaders.refererHeader*/get refererHeader() {
      return "referer";
    },
    /*_http.HttpHeaders.retryAfterHeader*/get retryAfterHeader() {
      return "retry-after";
    },
    /*_http.HttpHeaders.serverHeader*/get serverHeader() {
      return "server";
    },
    /*_http.HttpHeaders.teHeader*/get teHeader() {
      return "te";
    },
    /*_http.HttpHeaders.trailerHeader*/get trailerHeader() {
      return "trailer";
    },
    /*_http.HttpHeaders.transferEncodingHeader*/get transferEncodingHeader() {
      return "transfer-encoding";
    },
    /*_http.HttpHeaders.upgradeHeader*/get upgradeHeader() {
      return "upgrade";
    },
    /*_http.HttpHeaders.userAgentHeader*/get userAgentHeader() {
      return "user-agent";
    },
    /*_http.HttpHeaders.varyHeader*/get varyHeader() {
      return "vary";
    },
    /*_http.HttpHeaders.viaHeader*/get viaHeader() {
      return "via";
    },
    /*_http.HttpHeaders.warningHeader*/get warningHeader() {
      return "warning";
    },
    /*_http.HttpHeaders.wwwAuthenticateHeader*/get wwwAuthenticateHeader() {
      return "www-authenticate";
    },
    /*_http.HttpHeaders.ACCEPT*/get ACCEPT() {
      return "accept";
    },
    /*_http.HttpHeaders.ACCEPT_CHARSET*/get ACCEPT_CHARSET() {
      return "accept-charset";
    },
    /*_http.HttpHeaders.ACCEPT_ENCODING*/get ACCEPT_ENCODING() {
      return "accept-encoding";
    },
    /*_http.HttpHeaders.ACCEPT_LANGUAGE*/get ACCEPT_LANGUAGE() {
      return "accept-language";
    },
    /*_http.HttpHeaders.ACCEPT_RANGES*/get ACCEPT_RANGES() {
      return "accept-ranges";
    },
    /*_http.HttpHeaders.AGE*/get AGE() {
      return "age";
    },
    /*_http.HttpHeaders.ALLOW*/get ALLOW() {
      return "allow";
    },
    /*_http.HttpHeaders.AUTHORIZATION*/get AUTHORIZATION() {
      return "authorization";
    },
    /*_http.HttpHeaders.CACHE_CONTROL*/get CACHE_CONTROL() {
      return "cache-control";
    },
    /*_http.HttpHeaders.CONNECTION*/get CONNECTION() {
      return "connection";
    },
    /*_http.HttpHeaders.CONTENT_ENCODING*/get CONTENT_ENCODING() {
      return "content-encoding";
    },
    /*_http.HttpHeaders.CONTENT_LANGUAGE*/get CONTENT_LANGUAGE() {
      return "content-language";
    },
    /*_http.HttpHeaders.CONTENT_LENGTH*/get CONTENT_LENGTH() {
      return "content-length";
    },
    /*_http.HttpHeaders.CONTENT_LOCATION*/get CONTENT_LOCATION() {
      return "content-location";
    },
    /*_http.HttpHeaders.CONTENT_MD5*/get CONTENT_MD5() {
      return "content-md5";
    },
    /*_http.HttpHeaders.CONTENT_RANGE*/get CONTENT_RANGE() {
      return "content-range";
    },
    /*_http.HttpHeaders.CONTENT_TYPE*/get CONTENT_TYPE() {
      return "content-type";
    },
    /*_http.HttpHeaders.DATE*/get DATE() {
      return "date";
    },
    /*_http.HttpHeaders.ETAG*/get ETAG() {
      return "etag";
    },
    /*_http.HttpHeaders.EXPECT*/get EXPECT() {
      return "expect";
    },
    /*_http.HttpHeaders.EXPIRES*/get EXPIRES() {
      return "expires";
    },
    /*_http.HttpHeaders.FROM*/get FROM() {
      return "from";
    },
    /*_http.HttpHeaders.HOST*/get HOST() {
      return "host";
    },
    /*_http.HttpHeaders.IF_MATCH*/get IF_MATCH() {
      return "if-match";
    },
    /*_http.HttpHeaders.IF_MODIFIED_SINCE*/get IF_MODIFIED_SINCE() {
      return "if-modified-since";
    },
    /*_http.HttpHeaders.IF_NONE_MATCH*/get IF_NONE_MATCH() {
      return "if-none-match";
    },
    /*_http.HttpHeaders.IF_RANGE*/get IF_RANGE() {
      return "if-range";
    },
    /*_http.HttpHeaders.IF_UNMODIFIED_SINCE*/get IF_UNMODIFIED_SINCE() {
      return "if-unmodified-since";
    },
    /*_http.HttpHeaders.LAST_MODIFIED*/get LAST_MODIFIED() {
      return "last-modified";
    },
    /*_http.HttpHeaders.LOCATION*/get LOCATION() {
      return "location";
    },
    /*_http.HttpHeaders.MAX_FORWARDS*/get MAX_FORWARDS() {
      return "max-forwards";
    },
    /*_http.HttpHeaders.PRAGMA*/get PRAGMA() {
      return "pragma";
    },
    /*_http.HttpHeaders.PROXY_AUTHENTICATE*/get PROXY_AUTHENTICATE() {
      return "proxy-authenticate";
    },
    /*_http.HttpHeaders.PROXY_AUTHORIZATION*/get PROXY_AUTHORIZATION() {
      return "proxy-authorization";
    },
    /*_http.HttpHeaders.RANGE*/get RANGE() {
      return "range";
    },
    /*_http.HttpHeaders.REFERER*/get REFERER() {
      return "referer";
    },
    /*_http.HttpHeaders.RETRY_AFTER*/get RETRY_AFTER() {
      return "retry-after";
    },
    /*_http.HttpHeaders.SERVER*/get SERVER() {
      return "server";
    },
    /*_http.HttpHeaders.TE*/get TE() {
      return "te";
    },
    /*_http.HttpHeaders.TRAILER*/get TRAILER() {
      return "trailer";
    },
    /*_http.HttpHeaders.TRANSFER_ENCODING*/get TRANSFER_ENCODING() {
      return "transfer-encoding";
    },
    /*_http.HttpHeaders.UPGRADE*/get UPGRADE() {
      return "upgrade";
    },
    /*_http.HttpHeaders.USER_AGENT*/get USER_AGENT() {
      return "user-agent";
    },
    /*_http.HttpHeaders.VARY*/get VARY() {
      return "vary";
    },
    /*_http.HttpHeaders.VIA*/get VIA() {
      return "via";
    },
    /*_http.HttpHeaders.WARNING*/get WARNING() {
      return "warning";
    },
    /*_http.HttpHeaders.WWW_AUTHENTICATE*/get WWW_AUTHENTICATE() {
      return "www-authenticate";
    },
    /*_http.HttpHeaders.cookieHeader*/get cookieHeader() {
      return "cookie";
    },
    /*_http.HttpHeaders.setCookieHeader*/get setCookieHeader() {
      return "set-cookie";
    },
    /*_http.HttpHeaders.COOKIE*/get COOKIE() {
      return "cookie";
    },
    /*_http.HttpHeaders.SET_COOKIE*/get SET_COOKIE() {
      return "set-cookie";
    },
    /*_http.HttpHeaders.generalHeaders*/get generalHeaders() {
      return C[448] || CT.C448;
    },
    /*_http.HttpHeaders.GENERAL_HEADERS*/get GENERAL_HEADERS() {
      return C[448] || CT.C448;
    },
    /*_http.HttpHeaders.entityHeaders*/get entityHeaders() {
      return C[449] || CT.C449;
    },
    /*_http.HttpHeaders.ENTITY_HEADERS*/get ENTITY_HEADERS() {
      return C[449] || CT.C449;
    },
    /*_http.HttpHeaders.responseHeaders*/get responseHeaders() {
      return C[450] || CT.C450;
    },
    /*_http.HttpHeaders.RESPONSE_HEADERS*/get RESPONSE_HEADERS() {
      return C[450] || CT.C450;
    },
    /*_http.HttpHeaders.requestHeaders*/get requestHeaders() {
      return C[451] || CT.C451;
    },
    /*_http.HttpHeaders.REQUEST_HEADERS*/get REQUEST_HEADERS() {
      return C[451] || CT.C451;
    }
  }, false);
  _http.HeaderValue = class HeaderValue extends core.Object {
    static new(value = "", parameters = C[452] || CT.C452) {
      if (value == null) dart.nullFailed(I[176], 805, 15, "value");
      if (parameters == null) dart.nullFailed(I[176], 805, 48, "parameters");
      return new _http._HeaderValue.new(value, parameters);
    }
    static parse(value, opts) {
      if (value == null) dart.nullFailed(I[176], 813, 35, "value");
      let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
      if (parameterSeparator == null) dart.nullFailed(I[176], 814, 15, "parameterSeparator");
      let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
      let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
      if (preserveBackslash == null) dart.nullFailed(I[176], 816, 12, "preserveBackslash");
      return _http._HeaderValue.parse(value, {parameterSeparator: parameterSeparator, valueSeparator: valueSeparator, preserveBackslash: preserveBackslash});
    }
  };
  (_http.HeaderValue[dart.mixinNew] = function() {
  }).prototype = _http.HeaderValue.prototype;
  dart.addTypeTests(_http.HeaderValue);
  dart.addTypeCaches(_http.HeaderValue);
  dart.setLibraryUri(_http.HeaderValue, I[177]);
  _http.HttpSession = class HttpSession extends core.Object {};
  (_http.HttpSession.new = function() {
    ;
  }).prototype = _http.HttpSession.prototype;
  _http.HttpSession.prototype[dart.isMap] = true;
  dart.addTypeTests(_http.HttpSession);
  dart.addTypeCaches(_http.HttpSession);
  _http.HttpSession[dart.implements] = () => [core.Map];
  dart.setLibraryUri(_http.HttpSession, I[177]);
  _http.ContentType = class ContentType extends core.Object {
    static new(primaryType, subType, opts) {
      if (primaryType == null) dart.nullFailed(I[176], 923, 30, "primaryType");
      if (subType == null) dart.nullFailed(I[176], 923, 50, "subType");
      let charset = opts && 'charset' in opts ? opts.charset : null;
      let parameters = opts && 'parameters' in opts ? opts.parameters : C[452] || CT.C452;
      if (parameters == null) dart.nullFailed(I[176], 924, 46, "parameters");
      return new _http._ContentType.new(primaryType, subType, charset, parameters);
    }
    static parse(value) {
      if (value == null) dart.nullFailed(I[176], 941, 35, "value");
      return _http._ContentType.parse(value);
    }
  };
  (_http.ContentType[dart.mixinNew] = function() {
  }).prototype = _http.ContentType.prototype;
  dart.addTypeTests(_http.ContentType);
  dart.addTypeCaches(_http.ContentType);
  _http.ContentType[dart.implements] = () => [_http.HeaderValue];
  dart.setLibraryUri(_http.ContentType, I[177]);
  dart.defineLazy(_http.ContentType, {
    /*_http.ContentType.text*/get text() {
      return _http.ContentType.new("text", "plain", {charset: "utf-8"});
    },
    /*_http.ContentType.TEXT*/get TEXT() {
      return _http.ContentType.text;
    },
    /*_http.ContentType.html*/get html() {
      return _http.ContentType.new("text", "html", {charset: "utf-8"});
    },
    /*_http.ContentType.HTML*/get HTML() {
      return _http.ContentType.html;
    },
    /*_http.ContentType.json*/get json() {
      return _http.ContentType.new("application", "json", {charset: "utf-8"});
    },
    /*_http.ContentType.JSON*/get JSON() {
      return _http.ContentType.json;
    },
    /*_http.ContentType.binary*/get binary() {
      return _http.ContentType.new("application", "octet-stream");
    },
    /*_http.ContentType.BINARY*/get BINARY() {
      return _http.ContentType.binary;
    }
  }, false);
  var expires$ = dart.privateName(_http, "Cookie.expires");
  var maxAge = dart.privateName(_http, "Cookie.maxAge");
  var domain = dart.privateName(_http, "Cookie.domain");
  var path = dart.privateName(_http, "Cookie.path");
  var secure = dart.privateName(_http, "Cookie.secure");
  var httpOnly = dart.privateName(_http, "Cookie.httpOnly");
  var __Cookie_name = dart.privateName(_http, "_#Cookie#name");
  var __Cookie_name_isSet = dart.privateName(_http, "_#Cookie#name#isSet");
  var __Cookie_value = dart.privateName(_http, "_#Cookie#value");
  var __Cookie_value_isSet = dart.privateName(_http, "_#Cookie#value#isSet");
  _http.Cookie = class Cookie extends core.Object {
    get expires() {
      return this[expires$];
    }
    set expires(value) {
      this[expires$] = value;
    }
    get maxAge() {
      return this[maxAge];
    }
    set maxAge(value) {
      this[maxAge] = value;
    }
    get domain() {
      return this[domain];
    }
    set domain(value) {
      this[domain] = value;
    }
    get path() {
      return this[path];
    }
    set path(value) {
      this[path] = value;
    }
    get secure() {
      return this[secure];
    }
    set secure(value) {
      this[secure] = value;
    }
    get httpOnly() {
      return this[httpOnly];
    }
    set httpOnly(value) {
      this[httpOnly] = value;
    }
    get name() {
      let t260;
      return dart.test(this[__Cookie_name_isSet]) ? (t260 = this[__Cookie_name], t260) : dart.throw(new _internal.LateError.fieldNI("name"));
    }
    set name(t260) {
      if (t260 == null) dart.nullFailed(I[176], 996, 15, "null");
      this[__Cookie_name_isSet] = true;
      this[__Cookie_name] = t260;
    }
    get value() {
      let t261;
      return dart.test(this[__Cookie_value_isSet]) ? (t261 = this[__Cookie_value], t261) : dart.throw(new _internal.LateError.fieldNI("value"));
    }
    set value(t261) {
      if (t261 == null) dart.nullFailed(I[176], 1009, 15, "null");
      this[__Cookie_value_isSet] = true;
      this[__Cookie_value] = t261;
    }
    static new(name, value) {
      if (name == null) dart.nullFailed(I[176], 1051, 25, "name");
      if (value == null) dart.nullFailed(I[176], 1051, 38, "value");
      return new _http._Cookie.new(name, value);
    }
    static fromSetCookieValue(value) {
      if (value == null) dart.nullFailed(I[176], 1057, 44, "value");
      return new _http._Cookie.fromSetCookieValue(value);
    }
  };
  (_http.Cookie[dart.mixinNew] = function() {
    this[__Cookie_name] = null;
    this[__Cookie_name_isSet] = false;
    this[__Cookie_value] = null;
    this[__Cookie_value_isSet] = false;
    this[expires$] = null;
    this[maxAge] = null;
    this[domain] = null;
    this[path] = null;
    this[secure] = false;
    this[httpOnly] = false;
  }).prototype = _http.Cookie.prototype;
  dart.addTypeTests(_http.Cookie);
  dart.addTypeCaches(_http.Cookie);
  dart.setGetterSignature(_http.Cookie, () => ({
    __proto__: dart.getGetters(_http.Cookie.__proto__),
    name: core.String,
    value: core.String
  }));
  dart.setSetterSignature(_http.Cookie, () => ({
    __proto__: dart.getSetters(_http.Cookie.__proto__),
    name: core.String,
    value: core.String
  }));
  dart.setLibraryUri(_http.Cookie, I[177]);
  dart.setFieldSignature(_http.Cookie, () => ({
    __proto__: dart.getFields(_http.Cookie.__proto__),
    [__Cookie_name]: dart.fieldType(dart.nullable(core.String)),
    [__Cookie_name_isSet]: dart.fieldType(core.bool),
    [__Cookie_value]: dart.fieldType(dart.nullable(core.String)),
    [__Cookie_value_isSet]: dart.fieldType(core.bool),
    expires: dart.fieldType(dart.nullable(core.DateTime)),
    maxAge: dart.fieldType(dart.nullable(core.int)),
    domain: dart.fieldType(dart.nullable(core.String)),
    path: dart.fieldType(dart.nullable(core.String)),
    secure: dart.fieldType(core.bool),
    httpOnly: dart.fieldType(core.bool)
  }));
  _http.HttpRequest = class HttpRequest extends core.Object {};
  (_http.HttpRequest.new = function() {
    ;
  }).prototype = _http.HttpRequest.prototype;
  _http.HttpRequest.prototype[dart.isStream] = true;
  dart.addTypeTests(_http.HttpRequest);
  dart.addTypeCaches(_http.HttpRequest);
  _http.HttpRequest[dart.implements] = () => [async.Stream$(typed_data.Uint8List)];
  dart.setLibraryUri(_http.HttpRequest, I[177]);
  var contentLength$ = dart.privateName(_http, "HttpResponse.contentLength");
  var statusCode = dart.privateName(_http, "HttpResponse.statusCode");
  var deadline = dart.privateName(_http, "HttpResponse.deadline");
  var bufferOutput = dart.privateName(_http, "HttpResponse.bufferOutput");
  var __HttpResponse_reasonPhrase = dart.privateName(_http, "_#HttpResponse#reasonPhrase");
  var __HttpResponse_reasonPhrase_isSet = dart.privateName(_http, "_#HttpResponse#reasonPhrase#isSet");
  var __HttpResponse_persistentConnection = dart.privateName(_http, "_#HttpResponse#persistentConnection");
  var __HttpResponse_persistentConnection_isSet = dart.privateName(_http, "_#HttpResponse#persistentConnection#isSet");
  _http.HttpResponse = class HttpResponse extends core.Object {
    get contentLength() {
      return this[contentLength$];
    }
    set contentLength(value) {
      this[contentLength$] = value;
    }
    get statusCode() {
      return this[statusCode];
    }
    set statusCode(value) {
      this[statusCode] = value;
    }
    get deadline() {
      return this[deadline];
    }
    set deadline(value) {
      this[deadline] = value;
    }
    get bufferOutput() {
      return this[bufferOutput];
    }
    set bufferOutput(value) {
      this[bufferOutput] = value;
    }
    get reasonPhrase() {
      let t262;
      return dart.test(this[__HttpResponse_reasonPhrase_isSet]) ? (t262 = this[__HttpResponse_reasonPhrase], t262) : dart.throw(new _internal.LateError.fieldNI("reasonPhrase"));
    }
    set reasonPhrase(t262) {
      if (t262 == null) dart.nullFailed(I[176], 1295, 15, "null");
      this[__HttpResponse_reasonPhrase_isSet] = true;
      this[__HttpResponse_reasonPhrase] = t262;
    }
    get persistentConnection() {
      let t263;
      return dart.test(this[__HttpResponse_persistentConnection_isSet]) ? (t263 = this[__HttpResponse_persistentConnection], t263) : dart.throw(new _internal.LateError.fieldNI("persistentConnection"));
    }
    set persistentConnection(t263) {
      if (t263 == null) dart.nullFailed(I[176], 1302, 13, "null");
      this[__HttpResponse_persistentConnection_isSet] = true;
      this[__HttpResponse_persistentConnection] = t263;
    }
  };
  (_http.HttpResponse.new = function() {
    this[contentLength$] = -1;
    this[statusCode] = 200;
    this[__HttpResponse_reasonPhrase] = null;
    this[__HttpResponse_reasonPhrase_isSet] = false;
    this[__HttpResponse_persistentConnection] = null;
    this[__HttpResponse_persistentConnection_isSet] = false;
    this[deadline] = null;
    this[bufferOutput] = true;
    ;
  }).prototype = _http.HttpResponse.prototype;
  dart.addTypeTests(_http.HttpResponse);
  dart.addTypeCaches(_http.HttpResponse);
  _http.HttpResponse[dart.implements] = () => [io.IOSink];
  dart.setGetterSignature(_http.HttpResponse, () => ({
    __proto__: dart.getGetters(_http.HttpResponse.__proto__),
    reasonPhrase: core.String,
    persistentConnection: core.bool
  }));
  dart.setSetterSignature(_http.HttpResponse, () => ({
    __proto__: dart.getSetters(_http.HttpResponse.__proto__),
    reasonPhrase: core.String,
    persistentConnection: core.bool
  }));
  dart.setLibraryUri(_http.HttpResponse, I[177]);
  dart.setFieldSignature(_http.HttpResponse, () => ({
    __proto__: dart.getFields(_http.HttpResponse.__proto__),
    contentLength: dart.fieldType(core.int),
    statusCode: dart.fieldType(core.int),
    [__HttpResponse_reasonPhrase]: dart.fieldType(dart.nullable(core.String)),
    [__HttpResponse_reasonPhrase_isSet]: dart.fieldType(core.bool),
    [__HttpResponse_persistentConnection]: dart.fieldType(dart.nullable(core.bool)),
    [__HttpResponse_persistentConnection_isSet]: dart.fieldType(core.bool),
    deadline: dart.fieldType(dart.nullable(core.Duration)),
    bufferOutput: dart.fieldType(core.bool)
  }));
  var idleTimeout$ = dart.privateName(_http, "HttpClient.idleTimeout");
  var connectionTimeout = dart.privateName(_http, "HttpClient.connectionTimeout");
  var maxConnectionsPerHost = dart.privateName(_http, "HttpClient.maxConnectionsPerHost");
  var autoUncompress = dart.privateName(_http, "HttpClient.autoUncompress");
  var userAgent = dart.privateName(_http, "HttpClient.userAgent");
  _http.HttpClient = class HttpClient extends core.Object {
    get idleTimeout() {
      return this[idleTimeout$];
    }
    set idleTimeout(value) {
      this[idleTimeout$] = value;
    }
    get connectionTimeout() {
      return this[connectionTimeout];
    }
    set connectionTimeout(value) {
      this[connectionTimeout] = value;
    }
    get maxConnectionsPerHost() {
      return this[maxConnectionsPerHost];
    }
    set maxConnectionsPerHost(value) {
      this[maxConnectionsPerHost] = value;
    }
    get autoUncompress() {
      return this[autoUncompress];
    }
    set autoUncompress(value) {
      this[autoUncompress] = value;
    }
    get userAgent() {
      return this[userAgent];
    }
    set userAgent(value) {
      this[userAgent] = value;
    }
    static set enableTimelineLogging(value) {
      if (value == null) dart.nullFailed(I[176], 1476, 41, "value");
      let enabled = _internal.valueOfNonNullableParamWithDefault(core.bool, value, false);
      if (enabled != _http.HttpClient._enableTimelineLogging) {
        developer.postEvent("HttpTimelineLoggingStateChange", new _js_helper.LinkedMap.from(["isolateId", developer.Service.getIsolateID(isolate$.Isolate.current), "enabled", enabled]));
      }
      _http.HttpClient._enableTimelineLogging = enabled;
    }
    static get enableTimelineLogging() {
      return _http.HttpClient._enableTimelineLogging;
    }
    static new(opts) {
      let context = opts && 'context' in opts ? opts.context : null;
      let overrides = _http.HttpOverrides.current;
      if (overrides == null) {
        return new _http._HttpClient.new(context);
      }
      return overrides.createHttpClient(context);
    }
    static findProxyFromEnvironment(url, opts) {
      if (url == null) dart.nullFailed(I[176], 1829, 46, "url");
      let environment = opts && 'environment' in opts ? opts.environment : null;
      let overrides = _http.HttpOverrides.current;
      if (overrides == null) {
        return _http._HttpClient._findProxyFromEnvironment(url, environment);
      }
      return overrides.findProxyFromEnvironment(url, environment);
    }
  };
  (_http.HttpClient[dart.mixinNew] = function() {
    this[idleTimeout$] = C[453] || CT.C453;
    this[connectionTimeout] = null;
    this[maxConnectionsPerHost] = null;
    this[autoUncompress] = true;
    this[userAgent] = null;
  }).prototype = _http.HttpClient.prototype;
  dart.addTypeTests(_http.HttpClient);
  dart.addTypeCaches(_http.HttpClient);
  dart.setLibraryUri(_http.HttpClient, I[177]);
  dart.setFieldSignature(_http.HttpClient, () => ({
    __proto__: dart.getFields(_http.HttpClient.__proto__),
    idleTimeout: dart.fieldType(core.Duration),
    connectionTimeout: dart.fieldType(dart.nullable(core.Duration)),
    maxConnectionsPerHost: dart.fieldType(dart.nullable(core.int)),
    autoUncompress: dart.fieldType(core.bool),
    userAgent: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineLazy(_http.HttpClient, {
    /*_http.HttpClient.defaultHttpPort*/get defaultHttpPort() {
      return 80;
    },
    /*_http.HttpClient.DEFAULT_HTTP_PORT*/get DEFAULT_HTTP_PORT() {
      return 80;
    },
    /*_http.HttpClient.defaultHttpsPort*/get defaultHttpsPort() {
      return 443;
    },
    /*_http.HttpClient.DEFAULT_HTTPS_PORT*/get DEFAULT_HTTPS_PORT() {
      return 443;
    },
    /*_http.HttpClient._enableTimelineLogging*/get _enableTimelineLogging() {
      return false;
    },
    set _enableTimelineLogging(_) {}
  }, false);
  var persistentConnection = dart.privateName(_http, "HttpClientRequest.persistentConnection");
  var followRedirects = dart.privateName(_http, "HttpClientRequest.followRedirects");
  var maxRedirects = dart.privateName(_http, "HttpClientRequest.maxRedirects");
  var contentLength$0 = dart.privateName(_http, "HttpClientRequest.contentLength");
  var bufferOutput$ = dart.privateName(_http, "HttpClientRequest.bufferOutput");
  _http.HttpClientRequest = class HttpClientRequest extends core.Object {
    get persistentConnection() {
      return this[persistentConnection];
    }
    set persistentConnection(value) {
      this[persistentConnection] = value;
    }
    get followRedirects() {
      return this[followRedirects];
    }
    set followRedirects(value) {
      this[followRedirects] = value;
    }
    get maxRedirects() {
      return this[maxRedirects];
    }
    set maxRedirects(value) {
      this[maxRedirects] = value;
    }
    get contentLength() {
      return this[contentLength$0];
    }
    set contentLength(value) {
      this[contentLength$0] = value;
    }
    get bufferOutput() {
      return this[bufferOutput$];
    }
    set bufferOutput(value) {
      this[bufferOutput$] = value;
    }
  };
  (_http.HttpClientRequest.new = function() {
    this[persistentConnection] = true;
    this[followRedirects] = true;
    this[maxRedirects] = 5;
    this[contentLength$0] = -1;
    this[bufferOutput$] = true;
    ;
  }).prototype = _http.HttpClientRequest.prototype;
  dart.addTypeTests(_http.HttpClientRequest);
  dart.addTypeCaches(_http.HttpClientRequest);
  _http.HttpClientRequest[dart.implements] = () => [io.IOSink];
  dart.setLibraryUri(_http.HttpClientRequest, I[177]);
  dart.setFieldSignature(_http.HttpClientRequest, () => ({
    __proto__: dart.getFields(_http.HttpClientRequest.__proto__),
    persistentConnection: dart.fieldType(core.bool),
    followRedirects: dart.fieldType(core.bool),
    maxRedirects: dart.fieldType(core.int),
    contentLength: dart.fieldType(core.int),
    bufferOutput: dart.fieldType(core.bool)
  }));
  _http.HttpClientResponse = class HttpClientResponse extends core.Object {};
  (_http.HttpClientResponse.new = function() {
    ;
  }).prototype = _http.HttpClientResponse.prototype;
  _http.HttpClientResponse.prototype[dart.isStream] = true;
  dart.addTypeTests(_http.HttpClientResponse);
  dart.addTypeCaches(_http.HttpClientResponse);
  _http.HttpClientResponse[dart.implements] = () => [async.Stream$(core.List$(core.int))];
  dart.setLibraryUri(_http.HttpClientResponse, I[177]);
  var _name$7 = dart.privateName(_http, "_name");
  _http.HttpClientResponseCompressionState = class HttpClientResponseCompressionState extends core.Object {
    toString() {
      return this[_name$7];
    }
  };
  (_http.HttpClientResponseCompressionState.new = function(index, _name) {
    if (index == null) dart.nullFailed(I[176], 2198, 6, "index");
    if (_name == null) dart.nullFailed(I[176], 2198, 6, "_name");
    this.index = index;
    this[_name$7] = _name;
    ;
  }).prototype = _http.HttpClientResponseCompressionState.prototype;
  dart.addTypeTests(_http.HttpClientResponseCompressionState);
  dart.addTypeCaches(_http.HttpClientResponseCompressionState);
  dart.setLibraryUri(_http.HttpClientResponseCompressionState, I[177]);
  dart.setFieldSignature(_http.HttpClientResponseCompressionState, () => ({
    __proto__: dart.getFields(_http.HttpClientResponseCompressionState.__proto__),
    index: dart.finalFieldType(core.int),
    [_name$7]: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_http.HttpClientResponseCompressionState, ['toString']);
  _http.HttpClientResponseCompressionState.notCompressed = C[454] || CT.C454;
  _http.HttpClientResponseCompressionState.decompressed = C[455] || CT.C455;
  _http.HttpClientResponseCompressionState.compressed = C[456] || CT.C456;
  _http.HttpClientResponseCompressionState.values = C[457] || CT.C457;
  _http.HttpClientCredentials = class HttpClientCredentials extends core.Object {};
  (_http.HttpClientCredentials.new = function() {
    ;
  }).prototype = _http.HttpClientCredentials.prototype;
  dart.addTypeTests(_http.HttpClientCredentials);
  dart.addTypeCaches(_http.HttpClientCredentials);
  dart.setLibraryUri(_http.HttpClientCredentials, I[177]);
  _http.HttpClientBasicCredentials = class HttpClientBasicCredentials extends _http.HttpClientCredentials {
    static new(username, password) {
      if (username == null) dart.nullFailed(I[176], 2236, 45, "username");
      if (password == null) dart.nullFailed(I[176], 2236, 62, "password");
      return new _http._HttpClientBasicCredentials.new(username, password);
    }
  };
  dart.addTypeTests(_http.HttpClientBasicCredentials);
  dart.addTypeCaches(_http.HttpClientBasicCredentials);
  dart.setLibraryUri(_http.HttpClientBasicCredentials, I[177]);
  _http.HttpClientDigestCredentials = class HttpClientDigestCredentials extends _http.HttpClientCredentials {
    static new(username, password) {
      if (username == null) dart.nullFailed(I[176], 2247, 46, "username");
      if (password == null) dart.nullFailed(I[176], 2247, 63, "password");
      return new _http._HttpClientDigestCredentials.new(username, password);
    }
  };
  dart.addTypeTests(_http.HttpClientDigestCredentials);
  dart.addTypeCaches(_http.HttpClientDigestCredentials);
  dart.setLibraryUri(_http.HttpClientDigestCredentials, I[177]);
  _http.HttpConnectionInfo = class HttpConnectionInfo extends core.Object {};
  (_http.HttpConnectionInfo.new = function() {
    ;
  }).prototype = _http.HttpConnectionInfo.prototype;
  dart.addTypeTests(_http.HttpConnectionInfo);
  dart.addTypeCaches(_http.HttpConnectionInfo);
  dart.setLibraryUri(_http.HttpConnectionInfo, I[177]);
  _http.RedirectInfo = class RedirectInfo extends core.Object {};
  (_http.RedirectInfo.new = function() {
    ;
  }).prototype = _http.RedirectInfo.prototype;
  dart.addTypeTests(_http.RedirectInfo);
  dart.addTypeCaches(_http.RedirectInfo);
  dart.setLibraryUri(_http.RedirectInfo, I[177]);
  _http.DetachedSocket = class DetachedSocket extends core.Object {};
  (_http.DetachedSocket.new = function() {
    ;
  }).prototype = _http.DetachedSocket.prototype;
  dart.addTypeTests(_http.DetachedSocket);
  dart.addTypeCaches(_http.DetachedSocket);
  dart.setLibraryUri(_http.DetachedSocket, I[177]);
  var message$17 = dart.privateName(_http, "HttpException.message");
  var uri$0 = dart.privateName(_http, "HttpException.uri");
  _http.HttpException = class HttpException extends core.Object {
    get message() {
      return this[message$17];
    }
    set message(value) {
      super.message = value;
    }
    get uri() {
      return this[uri$0];
    }
    set uri(value) {
      super.uri = value;
    }
    toString() {
      let t264;
      let b = (t264 = new core.StringBuffer.new(), (() => {
        t264.write("HttpException: ");
        t264.write(this.message);
        return t264;
      })());
      let uri = this.uri;
      if (uri != null) {
        b.write(", uri = " + dart.str(uri));
      }
      return dart.toString(b);
    }
  };
  (_http.HttpException.new = function(message, opts) {
    if (message == null) dart.nullFailed(I[176], 2297, 28, "message");
    let uri = opts && 'uri' in opts ? opts.uri : null;
    this[message$17] = message;
    this[uri$0] = uri;
    ;
  }).prototype = _http.HttpException.prototype;
  dart.addTypeTests(_http.HttpException);
  dart.addTypeCaches(_http.HttpException);
  _http.HttpException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(_http.HttpException, I[177]);
  dart.setFieldSignature(_http.HttpException, () => ({
    __proto__: dart.getFields(_http.HttpException.__proto__),
    message: dart.finalFieldType(core.String),
    uri: dart.finalFieldType(dart.nullable(core.Uri))
  }));
  dart.defineExtensionMethods(_http.HttpException, ['toString']);
  var message$18 = dart.privateName(_http, "RedirectException.message");
  var redirects$ = dart.privateName(_http, "RedirectException.redirects");
  _http.RedirectException = class RedirectException extends core.Object {
    get message() {
      return this[message$18];
    }
    set message(value) {
      super.message = value;
    }
    get redirects() {
      return this[redirects$];
    }
    set redirects(value) {
      super.redirects = value;
    }
    toString() {
      return "RedirectException: " + dart.str(this.message);
    }
    get uri() {
      return this.redirects[$last].location;
    }
  };
  (_http.RedirectException.new = function(message, redirects) {
    if (message == null) dart.nullFailed(I[176], 2313, 32, "message");
    if (redirects == null) dart.nullFailed(I[176], 2313, 46, "redirects");
    this[message$18] = message;
    this[redirects$] = redirects;
    ;
  }).prototype = _http.RedirectException.prototype;
  dart.addTypeTests(_http.RedirectException);
  dart.addTypeCaches(_http.RedirectException);
  _http.RedirectException[dart.implements] = () => [_http.HttpException];
  dart.setGetterSignature(_http.RedirectException, () => ({
    __proto__: dart.getGetters(_http.RedirectException.__proto__),
    uri: core.Uri
  }));
  dart.setLibraryUri(_http.RedirectException, I[177]);
  dart.setFieldSignature(_http.RedirectException, () => ({
    __proto__: dart.getFields(_http.RedirectException.__proto__),
    message: dart.finalFieldType(core.String),
    redirects: dart.finalFieldType(core.List$(_http.RedirectInfo))
  }));
  dart.defineExtensionMethods(_http.RedirectException, ['toString']);
  _http._CryptoUtils = class _CryptoUtils extends core.Object {
    static getRandomBytes(count) {
      if (count == null) dart.nullFailed(I[178], 45, 39, "count");
      let result = _native_typed_data.NativeUint8List.new(count);
      for (let i = 0; i < dart.notNull(count); i = i + 1) {
        result[$_set](i, _http._CryptoUtils._rng.nextInt(255));
      }
      return result;
    }
    static bytesToHex(bytes) {
      if (bytes == null) dart.nullFailed(I[178], 53, 38, "bytes");
      let result = new core.StringBuffer.new();
      for (let part of bytes) {
        result.write((dart.notNull(part) < 16 ? "0" : "") + part[$toRadixString](16));
      }
      return result.toString();
    }
    static bytesToBase64(bytes, urlSafe = false, addLineSeparator = false) {
      let t264, t264$, t264$0, t264$1, t264$2, t264$3, t264$4, t264$5, t264$6, t264$7, t264$8, t264$9, t264$10, t264$11, t264$12, t264$13, t264$14;
      if (bytes == null) dart.nullFailed(I[178], 61, 41, "bytes");
      if (urlSafe == null) dart.nullFailed(I[178], 62, 13, "urlSafe");
      if (addLineSeparator == null) dart.nullFailed(I[178], 62, 35, "addLineSeparator");
      let len = bytes[$length];
      if (len === 0) {
        return "";
      }
      let lookup = dart.test(urlSafe) ? _http._CryptoUtils._encodeTableUrlSafe : _http._CryptoUtils._encodeTable;
      let remainderLength = len[$remainder](3);
      let chunkLength = dart.notNull(len) - remainderLength;
      let outputLen = (dart.notNull(len) / 3)[$truncate]() * 4 + (remainderLength > 0 ? 4 : 0);
      if (dart.test(addLineSeparator)) {
        outputLen = outputLen + (((outputLen - 1) / 76)[$truncate]() << 1 >>> 0);
      }
      let out = T$0.ListOfint().filled(outputLen, 0);
      let j = 0;
      let i = 0;
      let c = 0;
      while (i < chunkLength) {
        let x = (dart.notNull(bytes[$_get]((t264 = i, i = t264 + 1, t264))) << 16 & 16777215 | dart.notNull(bytes[$_get]((t264$ = i, i = t264$ + 1, t264$))) << 8 & 16777215 | dart.notNull(bytes[$_get]((t264$0 = i, i = t264$0 + 1, t264$0)))) >>> 0;
        out[$_set]((t264$1 = j, j = t264$1 + 1, t264$1), lookup[$codeUnitAt](x[$rightShift](18)));
        out[$_set]((t264$2 = j, j = t264$2 + 1, t264$2), lookup[$codeUnitAt](x >> 12 & 63));
        out[$_set]((t264$3 = j, j = t264$3 + 1, t264$3), lookup[$codeUnitAt](x >> 6 & 63));
        out[$_set]((t264$4 = j, j = t264$4 + 1, t264$4), lookup[$codeUnitAt](x & 63));
        if (dart.test(addLineSeparator) && (c = c + 1) === 19 && j < outputLen - 2) {
          out[$_set]((t264$5 = j, j = t264$5 + 1, t264$5), 13);
          out[$_set]((t264$6 = j, j = t264$6 + 1, t264$6), 10);
          c = 0;
        }
      }
      if (remainderLength === 1) {
        let x = bytes[$_get](i);
        out[$_set]((t264$7 = j, j = t264$7 + 1, t264$7), lookup[$codeUnitAt](x[$rightShift](2)));
        out[$_set]((t264$8 = j, j = t264$8 + 1, t264$8), lookup[$codeUnitAt](dart.notNull(x) << 4 & 63));
        out[$_set]((t264$9 = j, j = t264$9 + 1, t264$9), 61);
        out[$_set]((t264$10 = j, j = t264$10 + 1, t264$10), 61);
      } else if (remainderLength === 2) {
        let x = bytes[$_get](i);
        let y = bytes[$_get](i + 1);
        out[$_set]((t264$11 = j, j = t264$11 + 1, t264$11), lookup[$codeUnitAt](x[$rightShift](2)));
        out[$_set]((t264$12 = j, j = t264$12 + 1, t264$12), lookup[$codeUnitAt]((dart.notNull(x) << 4 | y[$rightShift](4)) & 63));
        out[$_set]((t264$13 = j, j = t264$13 + 1, t264$13), lookup[$codeUnitAt](dart.notNull(y) << 2 & 63));
        out[$_set]((t264$14 = j, j = t264$14 + 1, t264$14), 61);
      }
      return core.String.fromCharCodes(out);
    }
    static base64StringToBytes(input, ignoreInvalidCharacters = true) {
      let t264, t264$, t264$0, t264$1;
      if (input == null) dart.nullFailed(I[178], 117, 47, "input");
      if (ignoreInvalidCharacters == null) dart.nullFailed(I[178], 118, 13, "ignoreInvalidCharacters");
      let len = input.length;
      if (len === 0) {
        return T$0.ListOfint().empty();
      }
      let extrasLen = 0;
      for (let i = 0; i < len; i = i + 1) {
        let c = _http._CryptoUtils._decodeTable[$_get](input[$codeUnitAt](i));
        if (dart.notNull(c) < 0) {
          extrasLen = extrasLen + 1;
          if (c === -2 && !dart.test(ignoreInvalidCharacters)) {
            dart.throw(new core.FormatException.new("Invalid character: " + input[$_get](i)));
          }
        }
      }
      if ((len - extrasLen)[$modulo](4) !== 0) {
        dart.throw(new core.FormatException.new("Size of Base 64 characters in Input\n          must be a multiple of 4. Input: " + dart.str(input)));
      }
      let padLength = 0;
      for (let i = len - 1; i >= 0; i = i - 1) {
        let currentCodeUnit = input[$codeUnitAt](i);
        if (dart.notNull(_http._CryptoUtils._decodeTable[$_get](currentCodeUnit)) > 0) break;
        if (currentCodeUnit === 61) padLength = padLength + 1;
      }
      let outputLen = ((len - extrasLen) * 6)[$rightShift](3) - padLength;
      let out = T$0.ListOfint().filled(outputLen, 0);
      for (let i = 0, o = 0; o < outputLen;) {
        let x = 0;
        for (let j = 4; j > 0;) {
          let c = _http._CryptoUtils._decodeTable[$_get](input[$codeUnitAt]((t264 = i, i = t264 + 1, t264)));
          if (dart.notNull(c) >= 0) {
            x = (x << 6 & 16777215 | dart.notNull(c)) >>> 0;
            j = j - 1;
          }
        }
        out[$_set]((t264$ = o, o = t264$ + 1, t264$), x[$rightShift](16));
        if (o < outputLen) {
          out[$_set]((t264$0 = o, o = t264$0 + 1, t264$0), x >> 8 & 255);
          if (o < outputLen) out[$_set]((t264$1 = o, o = t264$1 + 1, t264$1), x & 255);
        }
      }
      return out;
    }
  };
  (_http._CryptoUtils.new = function() {
    ;
  }).prototype = _http._CryptoUtils.prototype;
  dart.addTypeTests(_http._CryptoUtils);
  dart.addTypeCaches(_http._CryptoUtils);
  dart.setLibraryUri(_http._CryptoUtils, I[177]);
  dart.defineLazy(_http._CryptoUtils, {
    /*_http._CryptoUtils.PAD*/get PAD() {
      return 61;
    },
    /*_http._CryptoUtils.CR*/get CR() {
      return 13;
    },
    /*_http._CryptoUtils.LF*/get LF() {
      return 10;
    },
    /*_http._CryptoUtils.LINE_LENGTH*/get LINE_LENGTH() {
      return 76;
    },
    /*_http._CryptoUtils._encodeTable*/get _encodeTable() {
      return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    },
    /*_http._CryptoUtils._encodeTableUrlSafe*/get _encodeTableUrlSafe() {
      return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
    },
    /*_http._CryptoUtils._decodeTable*/get _decodeTable() {
      return C[458] || CT.C458;
    },
    /*_http._CryptoUtils._rng*/get _rng() {
      return math.Random.secure();
    },
    set _rng(_) {}
  }, false);
  var _lengthInBytes = dart.privateName(_http, "_lengthInBytes");
  var _digestCalled = dart.privateName(_http, "_digestCalled");
  var _chunkSizeInWords$ = dart.privateName(_http, "_chunkSizeInWords");
  var _bigEndianWords$ = dart.privateName(_http, "_bigEndianWords");
  var _pendingData = dart.privateName(_http, "_pendingData");
  var _currentChunk = dart.privateName(_http, "_currentChunk");
  var _h = dart.privateName(_http, "_h");
  var _iterate = dart.privateName(_http, "_iterate");
  var _resultAsBytes = dart.privateName(_http, "_resultAsBytes");
  var _finalizeData = dart.privateName(_http, "_finalizeData");
  var _add32 = dart.privateName(_http, "_add32");
  var _roundUp = dart.privateName(_http, "_roundUp");
  var _rotl32 = dart.privateName(_http, "_rotl32");
  var _wordToBytes = dart.privateName(_http, "_wordToBytes");
  var _bytesToChunk = dart.privateName(_http, "_bytesToChunk");
  var _updateHash = dart.privateName(_http, "_updateHash");
  _http._HashBase = class _HashBase extends core.Object {
    add(data) {
      if (data == null) dart.nullFailed(I[178], 196, 17, "data");
      if (dart.test(this[_digestCalled])) {
        dart.throw(new core.StateError.new("Hash update method called after digest was retrieved"));
      }
      this[_lengthInBytes] = dart.notNull(this[_lengthInBytes]) + dart.notNull(data[$length]);
      this[_pendingData][$addAll](data);
      this[_iterate]();
    }
    close() {
      if (dart.test(this[_digestCalled])) {
        return this[_resultAsBytes]();
      }
      this[_digestCalled] = true;
      this[_finalizeData]();
      this[_iterate]();
      if (!(this[_pendingData][$length] === 0)) dart.assertFailed(null, I[178], 214, 12, "_pendingData.length == 0");
      return this[_resultAsBytes]();
    }
    get blockSize() {
      return dart.notNull(this[_chunkSizeInWords$]) * 4;
    }
    [_add32](x, y) {
      return dart.dsend(dart.dsend(x, '+', [y]), '&', [4294967295.0]);
    }
    [_roundUp](val, n) {
      return dart.dsend(dart.dsend(dart.dsend(val, '+', [n]), '-', [1]), '&', [dart.dsend(n, '_negate', [])]);
    }
    [_rotl32](val, shift) {
      if (val == null) dart.nullFailed(I[178], 234, 19, "val");
      if (shift == null) dart.nullFailed(I[178], 234, 28, "shift");
      let mod_shift = dart.notNull(shift) & 31;
      return (val[$leftShift](mod_shift) & 4294967295.0 | ((dart.notNull(val) & 4294967295.0) >>> 0)[$rightShift](32 - mod_shift)) >>> 0;
    }
    [_resultAsBytes]() {
      let result = T$.JSArrayOfint().of([]);
      for (let i = 0; i < dart.notNull(this[_h][$length]); i = i + 1) {
        result[$addAll](this[_wordToBytes](this[_h][$_get](i)));
      }
      return result;
    }
    [_bytesToChunk](data, dataIndex) {
      if (data == null) dart.nullFailed(I[178], 250, 27, "data");
      if (dataIndex == null) dart.nullFailed(I[178], 250, 37, "dataIndex");
      if (!(dart.notNull(data[$length]) - dart.notNull(dataIndex) >= dart.notNull(this[_chunkSizeInWords$]) * 4)) dart.assertFailed(null, I[178], 251, 12, "(data.length - dataIndex) >= (_chunkSizeInWords * _BYTES_PER_WORD)");
      for (let wordIndex = 0; wordIndex < dart.notNull(this[_chunkSizeInWords$]); wordIndex = wordIndex + 1) {
        let w3 = dart.test(this[_bigEndianWords$]) ? data[$_get](dataIndex) : data[$_get](dart.notNull(dataIndex) + 3);
        let w2 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 1) : data[$_get](dart.notNull(dataIndex) + 2);
        let w1 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 2) : data[$_get](dart.notNull(dataIndex) + 1);
        let w0 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 3) : data[$_get](dataIndex);
        dataIndex = dart.notNull(dataIndex) + 4;
        let word = (dart.notNull(w3) & 255) << 24 >>> 0;
        word = (word | (dart.notNull(w2) & 255) >>> 0 << 16 >>> 0) >>> 0;
        word = (word | (dart.notNull(w1) & 255) >>> 0 << 8 >>> 0) >>> 0;
        word = (word | (dart.notNull(w0) & 255) >>> 0) >>> 0;
        this[_currentChunk][$_set](wordIndex, word);
      }
    }
    [_wordToBytes](word) {
      if (word == null) dart.nullFailed(I[178], 268, 30, "word");
      let bytes = T$0.ListOfint().filled(4, 0);
      bytes[$_set](0, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 24 : 0) & 255) >>> 0);
      bytes[$_set](1, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 16 : 8) & 255) >>> 0);
      bytes[$_set](2, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 8 : 16) & 255) >>> 0);
      bytes[$_set](3, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 0 : 24) & 255) >>> 0);
      return bytes;
    }
    [_iterate]() {
      let len = this[_pendingData][$length];
      let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords$]) * 4;
      if (dart.notNull(len) >= chunkSizeInBytes) {
        let index = 0;
        for (; dart.notNull(len) - index >= chunkSizeInBytes; index = index + chunkSizeInBytes) {
          this[_bytesToChunk](this[_pendingData], index);
          this[_updateHash](this[_currentChunk]);
        }
        this[_pendingData] = this[_pendingData][$sublist](index, len);
      }
    }
    [_finalizeData]() {
      this[_pendingData][$add](128);
      let contentsLength = dart.notNull(this[_lengthInBytes]) + 9;
      let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords$]) * 4;
      let finalizedLength = this[_roundUp](contentsLength, chunkSizeInBytes);
      let zeroPadding = dart.dsend(finalizedLength, '-', [contentsLength]);
      for (let i = 0; i < dart.notNull(core.num.as(zeroPadding)); i = i + 1) {
        this[_pendingData][$add](0);
      }
      let lengthInBits = dart.notNull(this[_lengthInBytes]) * 8;
      if (!(lengthInBits < math.pow(2, 32))) dart.assertFailed(null, I[178], 304, 12, "lengthInBits < pow(2, 32)");
      if (dart.test(this[_bigEndianWords$])) {
        this[_pendingData][$addAll](this[_wordToBytes](0));
        this[_pendingData][$addAll](this[_wordToBytes]((lengthInBits & 4294967295.0) >>> 0));
      } else {
        this[_pendingData][$addAll](this[_wordToBytes]((lengthInBits & 4294967295.0) >>> 0));
        this[_pendingData][$addAll](this[_wordToBytes](0));
      }
    }
  };
  (_http._HashBase.new = function(_chunkSizeInWords, digestSizeInWords, _bigEndianWords) {
    if (_chunkSizeInWords == null) dart.nullFailed(I[178], 190, 18, "_chunkSizeInWords");
    if (digestSizeInWords == null) dart.nullFailed(I[178], 190, 41, "digestSizeInWords");
    if (_bigEndianWords == null) dart.nullFailed(I[178], 190, 65, "_bigEndianWords");
    this[_lengthInBytes] = 0;
    this[_digestCalled] = false;
    this[_chunkSizeInWords$] = _chunkSizeInWords;
    this[_bigEndianWords$] = _bigEndianWords;
    this[_pendingData] = T$.JSArrayOfint().of([]);
    this[_currentChunk] = T$0.ListOfint().filled(_chunkSizeInWords, 0);
    this[_h] = T$0.ListOfint().filled(digestSizeInWords, 0);
    ;
  }).prototype = _http._HashBase.prototype;
  dart.addTypeTests(_http._HashBase);
  dart.addTypeCaches(_http._HashBase);
  dart.setMethodSignature(_http._HashBase, () => ({
    __proto__: dart.getMethods(_http._HashBase.__proto__),
    add: dart.fnType(dart.dynamic, [core.List$(core.int)]),
    close: dart.fnType(core.List$(core.int), []),
    [_add32]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
    [_roundUp]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
    [_rotl32]: dart.fnType(core.int, [core.int, core.int]),
    [_resultAsBytes]: dart.fnType(core.List$(core.int), []),
    [_bytesToChunk]: dart.fnType(dart.dynamic, [core.List$(core.int), core.int]),
    [_wordToBytes]: dart.fnType(core.List$(core.int), [core.int]),
    [_iterate]: dart.fnType(dart.dynamic, []),
    [_finalizeData]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(_http._HashBase, () => ({
    __proto__: dart.getGetters(_http._HashBase.__proto__),
    blockSize: core.int
  }));
  dart.setLibraryUri(_http._HashBase, I[177]);
  dart.setFieldSignature(_http._HashBase, () => ({
    __proto__: dart.getFields(_http._HashBase.__proto__),
    [_chunkSizeInWords$]: dart.finalFieldType(core.int),
    [_bigEndianWords$]: dart.finalFieldType(core.bool),
    [_lengthInBytes]: dart.fieldType(core.int),
    [_pendingData]: dart.fieldType(core.List$(core.int)),
    [_currentChunk]: dart.fieldType(core.List$(core.int)),
    [_h]: dart.fieldType(core.List$(core.int)),
    [_digestCalled]: dart.fieldType(core.bool)
  }));
  _http._MD5 = class _MD5 extends _http._HashBase {
    newInstance() {
      return new _http._MD5.new();
    }
    [_updateHash](m) {
      if (m == null) dart.nullFailed(I[178], 352, 30, "m");
      if (!(m[$length] === 16)) dart.assertFailed(null, I[178], 353, 12, "m.length == 16");
      let a = this[_h][$_get](0);
      let b = this[_h][$_get](1);
      let c = this[_h][$_get](2);
      let d = this[_h][$_get](3);
      let t0 = null;
      let t1 = null;
      for (let i = 0; i < 64; i = i + 1) {
        if (i < 16) {
          t0 = (dart.notNull(b) & dart.notNull(c) | (~dart.notNull(b) & 4294967295.0 & dart.notNull(d)) >>> 0) >>> 0;
          t1 = i;
        } else if (i < 32) {
          t0 = (dart.notNull(d) & dart.notNull(b) | (~dart.notNull(d) & 4294967295.0 & dart.notNull(c)) >>> 0) >>> 0;
          t1 = (5 * i + 1)[$modulo](16);
        } else if (i < 48) {
          t0 = (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0;
          t1 = (3 * i + 5)[$modulo](16);
        } else {
          t0 = (dart.notNull(c) ^ (dart.notNull(b) | (~dart.notNull(d) & 4294967295.0) >>> 0) >>> 0) >>> 0;
          t1 = (7 * i)[$modulo](16);
        }
        let temp = d;
        d = c;
        c = b;
        b = core.int.as(this[_add32](b, this[_rotl32](core.int.as(this[_add32](this[_add32](a, t0), this[_add32](_http._MD5._k[$_get](i), m[$_get](core.int.as(t1))))), _http._MD5._r[$_get](i))));
        a = temp;
      }
      this[_h][$_set](0, core.int.as(this[_add32](a, this[_h][$_get](0))));
      this[_h][$_set](1, core.int.as(this[_add32](b, this[_h][$_get](1))));
      this[_h][$_set](2, core.int.as(this[_add32](c, this[_h][$_get](2))));
      this[_h][$_set](3, core.int.as(this[_add32](d, this[_h][$_get](3))));
    }
  };
  (_http._MD5.new = function() {
    _http._MD5.__proto__.new.call(this, 16, 4, false);
    this[_h][$_set](0, 1732584193);
    this[_h][$_set](1, 4023233417);
    this[_h][$_set](2, 2562383102);
    this[_h][$_set](3, 271733878);
  }).prototype = _http._MD5.prototype;
  dart.addTypeTests(_http._MD5);
  dart.addTypeCaches(_http._MD5);
  dart.setMethodSignature(_http._MD5, () => ({
    __proto__: dart.getMethods(_http._MD5.__proto__),
    newInstance: dart.fnType(_http._MD5, []),
    [_updateHash]: dart.fnType(dart.void, [core.List$(core.int)])
  }));
  dart.setLibraryUri(_http._MD5, I[177]);
  dart.defineLazy(_http._MD5, {
    /*_http._MD5._k*/get _k() {
      return C[459] || CT.C459;
    },
    /*_http._MD5._r*/get _r() {
      return C[460] || CT.C460;
    }
  }, false);
  var _w = dart.privateName(_http, "_w");
  _http._SHA1 = class _SHA1 extends _http._HashBase {
    newInstance() {
      return new _http._SHA1.new();
    }
    [_updateHash](m) {
      if (m == null) dart.nullFailed(I[178], 415, 30, "m");
      if (!(m[$length] === 16)) dart.assertFailed(null, I[178], 416, 12, "m.length == 16");
      let a = this[_h][$_get](0);
      let b = this[_h][$_get](1);
      let c = this[_h][$_get](2);
      let d = this[_h][$_get](3);
      let e = this[_h][$_get](4);
      for (let i = 0; i < 80; i = i + 1) {
        if (i < 16) {
          this[_w][$_set](i, m[$_get](i));
        } else {
          let n = (dart.notNull(this[_w][$_get](i - 3)) ^ dart.notNull(this[_w][$_get](i - 8)) ^ dart.notNull(this[_w][$_get](i - 14)) ^ dart.notNull(this[_w][$_get](i - 16))) >>> 0;
          this[_w][$_set](i, this[_rotl32](n, 1));
        }
        let t = this[_add32](this[_add32](this[_rotl32](a, 5), e), this[_w][$_get](i));
        if (i < 20) {
          t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | (~dart.notNull(b) & dart.notNull(d)) >>> 0) >>> 0), 1518500249);
        } else if (i < 40) {
          t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 1859775393);
        } else if (i < 60) {
          t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | (dart.notNull(b) & dart.notNull(d)) >>> 0 | (dart.notNull(c) & dart.notNull(d)) >>> 0) >>> 0), 2400959708);
        } else {
          t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 3395469782);
        }
        e = d;
        d = c;
        c = this[_rotl32](b, 30);
        b = a;
        a = core.int.as(dart.dsend(t, '&', [4294967295.0]));
      }
      this[_h][$_set](0, core.int.as(this[_add32](a, this[_h][$_get](0))));
      this[_h][$_set](1, core.int.as(this[_add32](b, this[_h][$_get](1))));
      this[_h][$_set](2, core.int.as(this[_add32](c, this[_h][$_get](2))));
      this[_h][$_set](3, core.int.as(this[_add32](d, this[_h][$_get](3))));
      this[_h][$_set](4, core.int.as(this[_add32](e, this[_h][$_get](4))));
    }
  };
  (_http._SHA1.new = function() {
    this[_w] = T$0.ListOfint().filled(80, 0);
    _http._SHA1.__proto__.new.call(this, 16, 5, true);
    this[_h][$_set](0, 1732584193);
    this[_h][$_set](1, 4023233417);
    this[_h][$_set](2, 2562383102);
    this[_h][$_set](3, 271733878);
    this[_h][$_set](4, 3285377520);
  }).prototype = _http._SHA1.prototype;
  dart.addTypeTests(_http._SHA1);
  dart.addTypeCaches(_http._SHA1);
  dart.setMethodSignature(_http._SHA1, () => ({
    __proto__: dart.getMethods(_http._SHA1.__proto__),
    newInstance: dart.fnType(_http._SHA1, []),
    [_updateHash]: dart.fnType(dart.void, [core.List$(core.int)])
  }));
  dart.setLibraryUri(_http._SHA1, I[177]);
  dart.setFieldSignature(_http._SHA1, () => ({
    __proto__: dart.getFields(_http._SHA1.__proto__),
    [_w]: dart.fieldType(core.List$(core.int))
  }));
  _http.HttpDate = class HttpDate extends core.Object {
    static format(date) {
      let t264;
      if (date == null) dart.nullFailed(I[179], 40, 33, "date");
      let wkday = C[461] || CT.C461;
      let month = C[462] || CT.C462;
      let d = date.toUtc();
      let sb = (t264 = new core.StringBuffer.new(), (() => {
        t264.write(wkday[$_get](dart.notNull(d.weekday) - 1));
        t264.write(", ");
        t264.write(dart.notNull(d.day) <= 9 ? "0" : "");
        t264.write(dart.toString(d.day));
        t264.write(" ");
        t264.write(month[$_get](dart.notNull(d.month) - 1));
        t264.write(" ");
        t264.write(dart.toString(d.year));
        t264.write(dart.notNull(d.hour) <= 9 ? " 0" : " ");
        t264.write(dart.toString(d.hour));
        t264.write(dart.notNull(d.minute) <= 9 ? ":0" : ":");
        t264.write(dart.toString(d.minute));
        t264.write(dart.notNull(d.second) <= 9 ? ":0" : ":");
        t264.write(dart.toString(d.second));
        t264.write(" GMT");
        return t264;
      })());
      return dart.toString(sb);
    }
    static parse(date) {
      if (date == null) dart.nullFailed(I[179], 91, 32, "date");
      let SP = 32;
      let wkdays = C[461] || CT.C461;
      let weekdays = C[463] || CT.C463;
      let months = C[462] || CT.C462;
      let formatRfc1123 = 0;
      let formatRfc850 = 1;
      let formatAsctime = 2;
      let index = 0;
      let tmp = null;
      function expect(s) {
        if (s == null) dart.nullFailed(I[179], 125, 24, "s");
        if (date.length - index < s.length) {
          dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        }
        let tmp = date[$substring](index, index + s.length);
        if (tmp !== s) {
          dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        }
        index = index + s.length;
      }
      dart.fn(expect, T$.StringTovoid());
      function expectWeekday() {
        let weekday = null;
        let pos = date[$indexOf](",", index);
        if (pos === -1) {
          let pos = date[$indexOf](" ", index);
          if (pos === -1) dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
          tmp = date[$substring](index, pos);
          index = pos + 1;
          weekday = wkdays[$indexOf](tmp);
          if (weekday !== -1) {
            return formatAsctime;
          }
        } else {
          tmp = date[$substring](index, pos);
          index = pos + 1;
          weekday = wkdays[$indexOf](tmp);
          if (weekday !== -1) {
            return formatRfc1123;
          }
          weekday = weekdays[$indexOf](tmp);
          if (weekday !== -1) {
            return formatRfc850;
          }
        }
        dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      }
      dart.fn(expectWeekday, T$.VoidToint());
      function expectMonth(separator) {
        if (separator == null) dart.nullFailed(I[179], 164, 28, "separator");
        let pos = date[$indexOf](separator, index);
        if (pos - index !== 3) dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        tmp = date[$substring](index, pos);
        index = pos + 1;
        let month = months[$indexOf](tmp);
        if (month !== -1) return month;
        dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      }
      dart.fn(expectMonth, T$0.StringToint());
      function expectNum(separator) {
        if (separator == null) dart.nullFailed(I[179], 174, 26, "separator");
        let pos = null;
        if (separator.length > 0) {
          pos = date[$indexOf](separator, index);
        } else {
          pos = date.length;
        }
        let tmp = date[$substring](index, pos);
        index = dart.notNull(pos) + separator.length;
        try {
          let value = core.int.parse(tmp);
          return value;
        } catch (e) {
          let ex = dart.getThrown(e);
          if (core.FormatException.is(ex)) {
            dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
          } else
            throw e;
        }
      }
      dart.fn(expectNum, T$0.StringToint());
      function expectEnd() {
        if (index !== date.length) {
          dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        }
      }
      dart.fn(expectEnd, T$.VoidTovoid());
      let format = expectWeekday();
      let year = null;
      let month = null;
      let day = null;
      let hours = null;
      let minutes = null;
      let seconds = null;
      if (format === formatAsctime) {
        month = expectMonth(" ");
        if (date[$codeUnitAt](index) === SP) index = index + 1;
        day = expectNum(" ");
        hours = expectNum(":");
        minutes = expectNum(":");
        seconds = expectNum(" ");
        year = expectNum("");
      } else {
        expect(" ");
        day = expectNum(format === formatRfc1123 ? " " : "-");
        month = expectMonth(format === formatRfc1123 ? " " : "-");
        year = expectNum(" ");
        hours = expectNum(":");
        minutes = expectNum(":");
        seconds = expectNum(" ");
        expect("GMT");
      }
      expectEnd();
      return new core.DateTime.utc(year, dart.notNull(month) + 1, day, hours, minutes, seconds, 0);
    }
    static _parseCookieDate(date) {
      if (date == null) dart.nullFailed(I[179], 227, 43, "date");
      let monthsLowerCase = C[464] || CT.C464;
      let position = 0;
      function error() {
        dart.throw(new _http.HttpException.new("Invalid cookie date " + dart.str(date)));
      }
      dart.fn(error, T$0.VoidToNever());
      function isEnd() {
        return position === date.length;
      }
      dart.fn(isEnd, T$.VoidTobool());
      function isDelimiter(s) {
        if (s == null) dart.nullFailed(I[179], 251, 29, "s");
        let char = s[$codeUnitAt](0);
        if (char === 9) return true;
        if (char >= 32 && char <= 47) return true;
        if (char >= 59 && char <= 64) return true;
        if (char >= 91 && char <= 96) return true;
        if (char >= 123 && char <= 126) return true;
        return false;
      }
      dart.fn(isDelimiter, T$.StringTobool());
      function isNonDelimiter(s) {
        if (s == null) dart.nullFailed(I[179], 261, 32, "s");
        let char = s[$codeUnitAt](0);
        if (char >= 0 && char <= 8) return true;
        if (char >= 10 && char <= 31) return true;
        if (char >= 48 && char <= 57) return true;
        if (char === 58) return true;
        if (char >= 65 && char <= 90) return true;
        if (char >= 97 && char <= 122) return true;
        if (char >= 127 && char <= 255) return true;
        return false;
      }
      dart.fn(isNonDelimiter, T$.StringTobool());
      function isDigit(s) {
        if (s == null) dart.nullFailed(I[179], 273, 25, "s");
        let char = s[$codeUnitAt](0);
        if (char > 47 && char < 58) return true;
        return false;
      }
      dart.fn(isDigit, T$.StringTobool());
      function getMonth(month) {
        if (month == null) dart.nullFailed(I[179], 279, 25, "month");
        if (month.length < 3) return -1;
        return monthsLowerCase[$indexOf](month[$substring](0, 3));
      }
      dart.fn(getMonth, T$0.StringToint());
      function toInt(s) {
        if (s == null) dart.nullFailed(I[179], 284, 22, "s");
        let index = 0;
        for (; index < s.length && dart.test(isDigit(s[$_get](index))); index = index + 1)
          ;
        return core.int.parse(s[$substring](0, index));
      }
      dart.fn(toInt, T$0.StringToint());
      let tokens = [];
      while (!dart.test(isEnd())) {
        while (!dart.test(isEnd()) && dart.test(isDelimiter(date[$_get](position))))
          position = position + 1;
        let start = position;
        while (!dart.test(isEnd()) && dart.test(isNonDelimiter(date[$_get](position))))
          position = position + 1;
        tokens[$add](date[$substring](start, position)[$toLowerCase]());
        while (!dart.test(isEnd()) && dart.test(isDelimiter(date[$_get](position))))
          position = position + 1;
      }
      let timeStr = null;
      let dayOfMonthStr = null;
      let monthStr = null;
      let yearStr = null;
      for (let token of tokens) {
        if (dart.dtest(dart.dsend(dart.dload(token, 'length'), '<', [1]))) continue;
        if (timeStr == null && dart.dtest(dart.dsend(dart.dload(token, 'length'), '>=', [5])) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0])))) && (dart.equals(dart.dsend(token, '_get', [1]), ":") || dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [1])))) && dart.equals(dart.dsend(token, '_get', [2]), ":"))) {
          timeStr = T$.StringN().as(token);
        } else if (dayOfMonthStr == null && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0]))))) {
          dayOfMonthStr = T$.StringN().as(token);
        } else if (monthStr == null && dart.notNull(getMonth(core.String.as(token))) >= 0) {
          monthStr = T$.StringN().as(token);
        } else if (yearStr == null && dart.dtest(dart.dsend(dart.dload(token, 'length'), '>=', [2])) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0])))) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [1]))))) {
          yearStr = T$.StringN().as(token);
        }
      }
      if (timeStr == null || dayOfMonthStr == null || monthStr == null || yearStr == null) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      let year = toInt(yearStr);
      if (dart.notNull(year) >= 70 && dart.notNull(year) <= 99)
        year = dart.notNull(year) + 1900;
      else if (dart.notNull(year) >= 0 && dart.notNull(year) <= 69) year = dart.notNull(year) + 2000;
      if (dart.notNull(year) < 1601) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      let dayOfMonth = toInt(dayOfMonthStr);
      if (dart.notNull(dayOfMonth) < 1 || dart.notNull(dayOfMonth) > 31) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      let month = dart.notNull(getMonth(monthStr)) + 1;
      let timeList = timeStr[$split](":");
      if (timeList[$length] !== 3) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      let hour = toInt(timeList[$_get](0));
      let minute = toInt(timeList[$_get](1));
      let second = toInt(timeList[$_get](2));
      if (dart.notNull(hour) > 23) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      if (dart.notNull(minute) > 59) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      if (dart.notNull(second) > 59) {
        error();
        dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
      }
      return new core.DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0);
    }
  };
  (_http.HttpDate.new = function() {
    ;
  }).prototype = _http.HttpDate.prototype;
  dart.addTypeTests(_http.HttpDate);
  dart.addTypeCaches(_http.HttpDate);
  dart.setLibraryUri(_http.HttpDate, I[177]);
  var _originalHeaderNames = dart.privateName(_http, "_originalHeaderNames");
  var _mutable = dart.privateName(_http, "_mutable");
  var _noFoldingHeaders = dart.privateName(_http, "_noFoldingHeaders");
  var _contentLength = dart.privateName(_http, "_contentLength");
  var _persistentConnection = dart.privateName(_http, "_persistentConnection");
  var _chunkedTransferEncoding = dart.privateName(_http, "_chunkedTransferEncoding");
  var _host = dart.privateName(_http, "_host");
  var _port = dart.privateName(_http, "_port");
  var _headers = dart.privateName(_http, "_headers");
  var _defaultPortForScheme = dart.privateName(_http, "_defaultPortForScheme");
  var _checkMutable = dart.privateName(_http, "_checkMutable");
  var _addAll = dart.privateName(_http, "_addAll");
  var _add$1 = dart.privateName(_http, "_add");
  var _valueToString = dart.privateName(_http, "_valueToString");
  var _originalHeaderName = dart.privateName(_http, "_originalHeaderName");
  var _set = dart.privateName(_http, "_set");
  var _addValue = dart.privateName(_http, "_addValue");
  var _updateHostHeader = dart.privateName(_http, "_updateHostHeader");
  var _addDate = dart.privateName(_http, "_addDate");
  var _addHost = dart.privateName(_http, "_addHost");
  var _addExpires = dart.privateName(_http, "_addExpires");
  var _addConnection = dart.privateName(_http, "_addConnection");
  var _addContentType = dart.privateName(_http, "_addContentType");
  var _addContentLength = dart.privateName(_http, "_addContentLength");
  var _addTransferEncoding = dart.privateName(_http, "_addTransferEncoding");
  var _addIfModifiedSince = dart.privateName(_http, "_addIfModifiedSince");
  var _foldHeader = dart.privateName(_http, "_foldHeader");
  var _finalize = dart.privateName(_http, "_finalize");
  var _build = dart.privateName(_http, "_build");
  var _parseCookies = dart.privateName(_http, "_parseCookies");
  _http._HttpHeaders = class _HttpHeaders extends core.Object {
    _get(name) {
      if (name == null) dart.nullFailed(I[180], 43, 36, "name");
      return this[_headers][$_get](_http._HttpHeaders._validateField(name));
    }
    value(name) {
      if (name == null) dart.nullFailed(I[180], 45, 24, "name");
      name = _http._HttpHeaders._validateField(name);
      let values = this[_headers][$_get](name);
      if (values == null) return null;
      if (!dart.test(values[$isNotEmpty])) dart.assertFailed(null, I[180], 49, 12, "values.isNotEmpty");
      if (dart.notNull(values[$length]) > 1) {
        dart.throw(new _http.HttpException.new("More than one value for header " + dart.str(name)));
      }
      return values[$_get](0);
    }
    add(name, value, opts) {
      let t266, t266$;
      if (name == null) dart.nullFailed(I[180], 56, 19, "name");
      if (value == null) dart.nullFailed(I[180], 56, 25, "value");
      let preserveHeaderCase = opts && 'preserveHeaderCase' in opts ? opts.preserveHeaderCase : false;
      if (preserveHeaderCase == null) dart.nullFailed(I[180], 56, 38, "preserveHeaderCase");
      this[_checkMutable]();
      let lowercaseName = _http._HttpHeaders._validateField(name);
      if (dart.test(preserveHeaderCase) && name != lowercaseName) {
        (t266 = this[_originalHeaderNames], t266 == null ? this[_originalHeaderNames] = new (T$.IdentityMapOfString$String()).new() : t266)[$_set](lowercaseName, name);
      } else {
        t266$ = this[_originalHeaderNames];
        t266$ == null ? null : t266$[$remove](lowercaseName);
      }
      this[_addAll](lowercaseName, value);
    }
    [_addAll](name, value) {
      if (name == null) dart.nullFailed(I[180], 68, 23, "name");
      if (core.Iterable.is(value)) {
        for (let v of value) {
          this[_add$1](name, _http._HttpHeaders._validateValue(core.Object.as(v)));
        }
      } else {
        this[_add$1](name, _http._HttpHeaders._validateValue(core.Object.as(value)));
      }
    }
    set(name, value, opts) {
      let t266, t266$;
      if (name == null) dart.nullFailed(I[180], 78, 19, "name");
      if (value == null) dart.nullFailed(I[180], 78, 32, "value");
      let preserveHeaderCase = opts && 'preserveHeaderCase' in opts ? opts.preserveHeaderCase : false;
      if (preserveHeaderCase == null) dart.nullFailed(I[180], 78, 45, "preserveHeaderCase");
      this[_checkMutable]();
      let lowercaseName = _http._HttpHeaders._validateField(name);
      this[_headers][$remove](lowercaseName);
      t266 = this[_originalHeaderNames];
      t266 == null ? null : t266[$remove](lowercaseName);
      if (lowercaseName === "content-length") {
        this[_contentLength] = -1;
      }
      if (lowercaseName === "transfer-encoding") {
        this[_chunkedTransferEncoding] = false;
      }
      if (dart.test(preserveHeaderCase) && name != lowercaseName) {
        (t266$ = this[_originalHeaderNames], t266$ == null ? this[_originalHeaderNames] = new (T$.IdentityMapOfString$String()).new() : t266$)[$_set](lowercaseName, name);
      }
      this[_addAll](lowercaseName, value);
    }
    remove(name, value) {
      let t266;
      if (name == null) dart.nullFailed(I[180], 95, 22, "name");
      if (value == null) dart.nullFailed(I[180], 95, 35, "value");
      this[_checkMutable]();
      name = _http._HttpHeaders._validateField(name);
      value = _http._HttpHeaders._validateValue(value);
      let values = this[_headers][$_get](name);
      if (values != null) {
        values[$remove](this[_valueToString](value));
        if (values[$length] === 0) {
          this[_headers][$remove](name);
          t266 = this[_originalHeaderNames];
          t266 == null ? null : t266[$remove](name);
        }
      }
      if (name === "transfer-encoding" && dart.equals(value, "chunked")) {
        this[_chunkedTransferEncoding] = false;
      }
    }
    removeAll(name) {
      let t266;
      if (name == null) dart.nullFailed(I[180], 112, 25, "name");
      this[_checkMutable]();
      name = _http._HttpHeaders._validateField(name);
      this[_headers][$remove](name);
      t266 = this[_originalHeaderNames];
      t266 == null ? null : t266[$remove](name);
    }
    forEach(action) {
      if (action == null) dart.nullFailed(I[180], 119, 21, "action");
      this[_headers][$forEach](dart.fn((name, values) => {
        if (name == null) dart.nullFailed(I[180], 120, 30, "name");
        if (values == null) dart.nullFailed(I[180], 120, 49, "values");
        let originalName = this[_originalHeaderName](name);
        action(originalName, values);
      }, T$0.StringAndListOfStringTovoid()));
    }
    noFolding(name) {
      let t266;
      if (name == null) dart.nullFailed(I[180], 126, 25, "name");
      name = _http._HttpHeaders._validateField(name);
      (t266 = this[_noFoldingHeaders], t266 == null ? this[_noFoldingHeaders] = T$.JSArrayOfString().of([]) : t266)[$add](name);
    }
    get persistentConnection() {
      return this[_persistentConnection];
    }
    set persistentConnection(persistentConnection) {
      if (persistentConnection == null) dart.nullFailed(I[180], 133, 38, "persistentConnection");
      this[_checkMutable]();
      if (persistentConnection == this[_persistentConnection]) return;
      let originalName = this[_originalHeaderName]("connection");
      if (dart.test(persistentConnection)) {
        if (this.protocolVersion === "1.1") {
          this.remove("connection", "close");
        } else {
          if (dart.notNull(this[_contentLength]) < 0) {
            dart.throw(new _http.HttpException.new("Trying to set 'Connection: Keep-Alive' on HTTP 1.0 headers with " + "no ContentLength"));
          }
          this.add(originalName, "keep-alive", {preserveHeaderCase: true});
        }
      } else {
        if (this.protocolVersion === "1.1") {
          this.add(originalName, "close", {preserveHeaderCase: true});
        } else {
          this.remove("connection", "keep-alive");
        }
      }
      this[_persistentConnection] = persistentConnection;
    }
    get contentLength() {
      return this[_contentLength];
    }
    set contentLength(contentLength) {
      if (contentLength == null) dart.nullFailed(I[180], 160, 30, "contentLength");
      this[_checkMutable]();
      if (this.protocolVersion === "1.0" && dart.test(this.persistentConnection) && contentLength === -1) {
        dart.throw(new _http.HttpException.new("Trying to clear ContentLength on HTTP 1.0 headers with " + "'Connection: Keep-Alive' set"));
      }
      if (this[_contentLength] == contentLength) return;
      this[_contentLength] = contentLength;
      if (dart.notNull(this[_contentLength]) >= 0) {
        if (dart.test(this.chunkedTransferEncoding)) this.chunkedTransferEncoding = false;
        this[_set]("content-length", dart.toString(contentLength));
      } else {
        this[_headers][$remove]("content-length");
        if (this.protocolVersion === "1.1") {
          this.chunkedTransferEncoding = true;
        }
      }
    }
    get chunkedTransferEncoding() {
      return this[_chunkedTransferEncoding];
    }
    set chunkedTransferEncoding(chunkedTransferEncoding) {
      if (chunkedTransferEncoding == null) dart.nullFailed(I[180], 184, 41, "chunkedTransferEncoding");
      this[_checkMutable]();
      if (dart.test(chunkedTransferEncoding) && this.protocolVersion === "1.0") {
        dart.throw(new _http.HttpException.new("Trying to set 'Transfer-Encoding: Chunked' on HTTP 1.0 headers"));
      }
      if (chunkedTransferEncoding == this[_chunkedTransferEncoding]) return;
      if (dart.test(chunkedTransferEncoding)) {
        let values = this[_headers][$_get]("transfer-encoding");
        if (values == null || !dart.test(values[$contains]("chunked"))) {
          this[_addValue]("transfer-encoding", "chunked");
        }
        this.contentLength = -1;
      } else {
        this.remove("transfer-encoding", "chunked");
      }
      this[_chunkedTransferEncoding] = chunkedTransferEncoding;
    }
    get host() {
      return this[_host];
    }
    set host(host) {
      this[_checkMutable]();
      this[_host] = host;
      this[_updateHostHeader]();
    }
    get port() {
      return this[_port];
    }
    set port(port) {
      this[_checkMutable]();
      this[_port] = port;
      this[_updateHostHeader]();
    }
    get ifModifiedSince() {
      let values = this[_headers][$_get]("if-modified-since");
      if (values != null) {
        if (!dart.test(values[$isNotEmpty])) dart.assertFailed(null, I[180], 224, 14, "values.isNotEmpty");
        try {
          return _http.HttpDate.parse(values[$_get](0));
        } catch (e) {
          let ex = dart.getThrown(e);
          if (core.Exception.is(ex)) {
            return null;
          } else
            throw e;
        }
      }
      return null;
    }
    set ifModifiedSince(ifModifiedSince) {
      this[_checkMutable]();
      if (ifModifiedSince == null) {
        this[_headers][$remove]("if-modified-since");
      } else {
        let formatted = _http.HttpDate.format(ifModifiedSince.toUtc());
        this[_set]("if-modified-since", formatted);
      }
    }
    get date() {
      let values = this[_headers][$_get]("date");
      if (values != null) {
        if (!dart.test(values[$isNotEmpty])) dart.assertFailed(null, I[180], 248, 14, "values.isNotEmpty");
        try {
          return _http.HttpDate.parse(values[$_get](0));
        } catch (e) {
          let ex = dart.getThrown(e);
          if (core.Exception.is(ex)) {
            return null;
          } else
            throw e;
        }
      }
      return null;
    }
    set date(date) {
      this[_checkMutable]();
      if (date == null) {
        this[_headers][$remove]("date");
      } else {
        let formatted = _http.HttpDate.format(date.toUtc());
        this[_set]("date", formatted);
      }
    }
    get expires() {
      let values = this[_headers][$_get]("expires");
      if (values != null) {
        if (!dart.test(values[$isNotEmpty])) dart.assertFailed(null, I[180], 272, 14, "values.isNotEmpty");
        try {
          return _http.HttpDate.parse(values[$_get](0));
        } catch (e) {
          let ex = dart.getThrown(e);
          if (core.Exception.is(ex)) {
            return null;
          } else
            throw e;
        }
      }
      return null;
    }
    set expires(expires) {
      this[_checkMutable]();
      if (expires == null) {
        this[_headers][$remove]("expires");
      } else {
        let formatted = _http.HttpDate.format(expires.toUtc());
        this[_set]("expires", formatted);
      }
    }
    get contentType() {
      let values = this[_headers][$_get]("content-type");
      if (values != null) {
        return _http.ContentType.parse(values[$_get](0));
      } else {
        return null;
      }
    }
    set contentType(contentType) {
      this[_checkMutable]();
      if (contentType == null) {
        this[_headers][$remove]("content-type");
      } else {
        this[_set]("content-type", dart.toString(contentType));
      }
    }
    clear() {
      this[_checkMutable]();
      this[_headers][$clear]();
      this[_contentLength] = -1;
      this[_persistentConnection] = true;
      this[_chunkedTransferEncoding] = false;
      this[_host] = null;
      this[_port] = null;
    }
    [_add$1](name, value) {
      if (name == null) dart.nullFailed(I[180], 322, 20, "name");
      if (!(name == _http._HttpHeaders._validateField(name))) dart.assertFailed(null, I[180], 323, 12, "name == _validateField(name)");
      switch (name.length) {
        case 4:
        {
          if ("date" === name) {
            this[_addDate](name, value);
            return;
          }
          if ("host" === name) {
            this[_addHost](name, value);
            return;
          }
          break;
        }
        case 7:
        {
          if ("expires" === name) {
            this[_addExpires](name, value);
            return;
          }
          break;
        }
        case 10:
        {
          if ("connection" === name) {
            this[_addConnection](name, value);
            return;
          }
          break;
        }
        case 12:
        {
          if ("content-type" === name) {
            this[_addContentType](name, value);
            return;
          }
          break;
        }
        case 14:
        {
          if ("content-length" === name) {
            this[_addContentLength](name, value);
            return;
          }
          break;
        }
        case 17:
        {
          if ("transfer-encoding" === name) {
            this[_addTransferEncoding](name, value);
            return;
          }
          if ("if-modified-since" === name) {
            this[_addIfModifiedSince](name, value);
            return;
          }
        }
      }
      this[_addValue](name, core.Object.as(value));
    }
    [_addContentLength](name, value) {
      if (name == null) dart.nullFailed(I[180], 374, 33, "name");
      if (core.int.is(value)) {
        this.contentLength = value;
      } else if (typeof value == 'string') {
        this.contentLength = core.int.parse(value);
      } else {
        dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
      }
    }
    [_addTransferEncoding](name, value) {
      if (name == null) dart.nullFailed(I[180], 384, 36, "name");
      if (dart.equals(value, "chunked")) {
        this.chunkedTransferEncoding = true;
      } else {
        this[_addValue]("transfer-encoding", core.Object.as(value));
      }
    }
    [_addDate](name, value) {
      if (name == null) dart.nullFailed(I[180], 392, 24, "name");
      if (core.DateTime.is(value)) {
        this.date = value;
      } else if (typeof value == 'string') {
        this[_set]("date", value);
      } else {
        dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
      }
    }
    [_addExpires](name, value) {
      if (name == null) dart.nullFailed(I[180], 402, 27, "name");
      if (core.DateTime.is(value)) {
        this.expires = value;
      } else if (typeof value == 'string') {
        this[_set]("expires", value);
      } else {
        dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
      }
    }
    [_addIfModifiedSince](name, value) {
      if (name == null) dart.nullFailed(I[180], 412, 35, "name");
      if (core.DateTime.is(value)) {
        this.ifModifiedSince = value;
      } else if (typeof value == 'string') {
        this[_set]("if-modified-since", value);
      } else {
        dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
      }
    }
    [_addHost](name, value) {
      if (name == null) dart.nullFailed(I[180], 422, 24, "name");
      if (typeof value == 'string') {
        let pos = value[$indexOf](":");
        if (pos === -1) {
          this[_host] = value;
          this[_port] = 80;
        } else {
          if (pos > 0) {
            this[_host] = value[$substring](0, pos);
          } else {
            this[_host] = null;
          }
          if (pos + 1 === value.length) {
            this[_port] = 80;
          } else {
            try {
              this[_port] = core.int.parse(value[$substring](pos + 1));
            } catch (e) {
              let ex = dart.getThrown(e);
              if (core.FormatException.is(ex)) {
                this[_port] = null;
              } else
                throw e;
            }
          }
        }
        this[_set]("host", value);
      } else {
        dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
      }
    }
    [_addConnection](name, value) {
      if (name == null) dart.nullFailed(I[180], 450, 30, "name");
      let lowerCaseValue = dart.dsend(value, 'toLowerCase', []);
      if (dart.equals(lowerCaseValue, "close")) {
        this[_persistentConnection] = false;
      } else if (dart.equals(lowerCaseValue, "keep-alive")) {
        this[_persistentConnection] = true;
      }
      this[_addValue](name, core.Object.as(value));
    }
    [_addContentType](name, value) {
      if (name == null) dart.nullFailed(I[180], 460, 31, "name");
      this[_set]("content-type", core.String.as(value));
    }
    [_addValue](name, value) {
      let t277, t276, t275, t274;
      if (name == null) dart.nullFailed(I[180], 464, 25, "name");
      if (value == null) dart.nullFailed(I[180], 464, 38, "value");
      let values = (t274 = this[_headers], t275 = name, t276 = t274[$_get](t275), t276 == null ? (t277 = T$.JSArrayOfString().of([]), t274[$_set](t275, t277), t277) : t276);
      values[$add](this[_valueToString](value));
    }
    [_valueToString](value) {
      if (value == null) dart.nullFailed(I[180], 469, 32, "value");
      if (core.DateTime.is(value)) {
        return _http.HttpDate.format(value);
      } else if (typeof value == 'string') {
        return value;
      } else {
        return core.String.as(_http._HttpHeaders._validateValue(dart.toString(value)));
      }
    }
    [_set](name, value) {
      if (name == null) dart.nullFailed(I[180], 479, 20, "name");
      if (value == null) dart.nullFailed(I[180], 479, 33, "value");
      if (!(name == _http._HttpHeaders._validateField(name))) dart.assertFailed(null, I[180], 480, 12, "name == _validateField(name)");
      this[_headers][$_set](name, T$.JSArrayOfString().of([value]));
    }
    [_checkMutable]() {
      if (!dart.test(this[_mutable])) dart.throw(new _http.HttpException.new("HTTP headers are not mutable"));
    }
    [_updateHostHeader]() {
      let host = this[_host];
      if (host != null) {
        let defaultPort = this[_port] == null || this[_port] == this[_defaultPortForScheme];
        this[_set]("host", defaultPort ? host : dart.str(host) + ":" + dart.str(this[_port]));
      }
    }
    [_foldHeader](name) {
      if (name == null) dart.nullFailed(I[180], 496, 27, "name");
      if (name === "set-cookie") return false;
      let noFoldingHeaders = this[_noFoldingHeaders];
      return noFoldingHeaders == null || !dart.test(noFoldingHeaders[$contains](name));
    }
    [_finalize]() {
      this[_mutable] = false;
    }
    [_build](builder) {
      if (builder == null) dart.nullFailed(I[180], 506, 28, "builder");
      this[_headers][$forEach](dart.fn((name, values) => {
        if (name == null) dart.nullFailed(I[180], 507, 30, "name");
        if (values == null) dart.nullFailed(I[180], 507, 49, "values");
        let originalName = this[_originalHeaderName](name);
        let fold = this[_foldHeader](name);
        let nameData = originalName[$codeUnits];
        builder.add(nameData);
        builder.addByte(58);
        builder.addByte(32);
        for (let i = 0; i < dart.notNull(values[$length]); i = i + 1) {
          if (i > 0) {
            if (dart.test(fold)) {
              builder.addByte(44);
              builder.addByte(32);
            } else {
              builder.addByte(13);
              builder.addByte(10);
              builder.add(nameData);
              builder.addByte(58);
              builder.addByte(32);
            }
          }
          builder.add(values[$_get](i)[$codeUnits]);
        }
        builder.addByte(13);
        builder.addByte(10);
      }, T$0.StringAndListOfStringTovoid()));
    }
    toString() {
      let sb = new core.StringBuffer.new();
      this[_headers][$forEach](dart.fn((name, values) => {
        let t274, t274$;
        if (name == null) dart.nullFailed(I[180], 536, 30, "name");
        if (values == null) dart.nullFailed(I[180], 536, 49, "values");
        let originalName = this[_originalHeaderName](name);
        t274 = sb;
        (() => {
          t274.write(originalName);
          t274.write(": ");
          return t274;
        })();
        let fold = this[_foldHeader](name);
        for (let i = 0; i < dart.notNull(values[$length]); i = i + 1) {
          if (i > 0) {
            if (dart.test(fold)) {
              sb.write(", ");
            } else {
              t274$ = sb;
              (() => {
                t274$.write("\n");
                t274$.write(originalName);
                t274$.write(": ");
                return t274$;
              })();
            }
          }
          sb.write(values[$_get](i));
        }
        sb.write("\n");
      }, T$0.StringAndListOfStringTovoid()));
      return sb.toString();
    }
    [_parseCookies]() {
      let cookies = T$0.JSArrayOfCookie().of([]);
      function parseCookieString(s) {
        if (s == null) dart.nullFailed(I[180], 558, 35, "s");
        let index = 0;
        function done() {
          return index === -1 || index === s.length;
        }
        dart.fn(done, T$.VoidTobool());
        function skipWS() {
          while (!dart.test(done())) {
            if (s[$_get](index) !== " " && s[$_get](index) !== "\t") return;
            index = index + 1;
          }
        }
        dart.fn(skipWS, T$.VoidTovoid());
        function parseName() {
          let start = index;
          while (!dart.test(done())) {
            if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === "=") break;
            index = index + 1;
          }
          return s[$substring](start, index);
        }
        dart.fn(parseName, T$.VoidToString());
        function parseValue() {
          let start = index;
          while (!dart.test(done())) {
            if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === ";") break;
            index = index + 1;
          }
          return s[$substring](start, index);
        }
        dart.fn(parseValue, T$.VoidToString());
        function expect(expected) {
          if (expected == null) dart.nullFailed(I[180], 588, 26, "expected");
          if (dart.test(done())) return false;
          if (s[$_get](index) !== expected) return false;
          index = index + 1;
          return true;
        }
        dart.fn(expect, T$.StringTobool());
        while (!dart.test(done())) {
          skipWS();
          if (dart.test(done())) return;
          let name = parseName();
          skipWS();
          if (!dart.test(expect("="))) {
            index = s[$indexOf](";", index);
            continue;
          }
          skipWS();
          let value = parseValue();
          try {
            cookies[$add](new _http._Cookie.new(name, value));
          } catch (e) {
            let _ = dart.getThrown(e);
            if (core.Object.is(_)) {
            } else
              throw e;
          }
          skipWS();
          if (dart.test(done())) return;
          if (!dart.test(expect(";"))) {
            index = s[$indexOf](";", index);
            continue;
          }
        }
      }
      dart.fn(parseCookieString, T$.StringTovoid());
      let values = this[_headers][$_get]("cookie");
      if (values != null) {
        values[$forEach](dart.fn(headerValue => {
          if (headerValue == null) dart.nullFailed(I[180], 622, 23, "headerValue");
          return parseCookieString(headerValue);
        }, T$.StringTovoid()));
      }
      return cookies;
    }
    static _validateField(field) {
      if (field == null) dart.nullFailed(I[180], 627, 39, "field");
      for (let i = 0; i < field.length; i = i + 1) {
        if (!dart.test(_http._HttpParser._isTokenChar(field[$codeUnitAt](i)))) {
          dart.throw(new core.FormatException.new("Invalid HTTP header field name: " + dart.str(convert.json.encode(field)), field, i));
        }
      }
      return field[$toLowerCase]();
    }
    static _validateValue(value) {
      if (value == null) dart.nullFailed(I[180], 637, 39, "value");
      if (!(typeof value == 'string')) return value;
      for (let i = 0; i < value.length; i = i + 1) {
        if (!dart.test(_http._HttpParser._isValueChar(value[$codeUnitAt](i)))) {
          dart.throw(new core.FormatException.new("Invalid HTTP header field value: " + dart.str(convert.json.encode(value)), value, i));
        }
      }
      return value;
    }
    [_originalHeaderName](name) {
      let t275, t275$;
      if (name == null) dart.nullFailed(I[180], 648, 37, "name");
      t275$ = (t275 = this[_originalHeaderNames], t275 == null ? null : t275[$_get](name));
      return t275$ == null ? name : t275$;
    }
  };
  (_http._HttpHeaders.new = function(protocolVersion, opts) {
    if (protocolVersion == null) dart.nullFailed(I[180], 24, 21, "protocolVersion");
    let defaultPortForScheme = opts && 'defaultPortForScheme' in opts ? opts.defaultPortForScheme : 80;
    if (defaultPortForScheme == null) dart.nullFailed(I[180], 25, 12, "defaultPortForScheme");
    let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
    this[_originalHeaderNames] = null;
    this[_mutable] = true;
    this[_noFoldingHeaders] = null;
    this[_contentLength] = -1;
    this[_persistentConnection] = true;
    this[_chunkedTransferEncoding] = false;
    this[_host] = null;
    this[_port] = null;
    this.protocolVersion = protocolVersion;
    this[_headers] = new (T$0.IdentityMapOfString$ListOfString()).new();
    this[_defaultPortForScheme] = defaultPortForScheme;
    if (initialHeaders != null) {
      initialHeaders[_headers][$forEach](dart.fn((name, value) => {
        let t268, t267, t266;
        if (name == null) dart.nullFailed(I[180], 30, 40, "name");
        if (value == null) dart.nullFailed(I[180], 30, 46, "value");
        t266 = this[_headers];
        t267 = name;
        t268 = value;
        t266[$_set](t267, t268);
        return t268;
      }, T$0.StringAndListOfStringTovoid()));
      this[_contentLength] = initialHeaders[_contentLength];
      this[_persistentConnection] = initialHeaders[_persistentConnection];
      this[_chunkedTransferEncoding] = initialHeaders[_chunkedTransferEncoding];
      this[_host] = initialHeaders[_host];
      this[_port] = initialHeaders[_port];
    }
    if (this.protocolVersion === "1.0") {
      this[_persistentConnection] = false;
      this[_chunkedTransferEncoding] = false;
    }
  }).prototype = _http._HttpHeaders.prototype;
  dart.addTypeTests(_http._HttpHeaders);
  dart.addTypeCaches(_http._HttpHeaders);
  _http._HttpHeaders[dart.implements] = () => [_http.HttpHeaders];
  dart.setMethodSignature(_http._HttpHeaders, () => ({
    __proto__: dart.getMethods(_http._HttpHeaders.__proto__),
    _get: dart.fnType(dart.nullable(core.List$(core.String)), [core.String]),
    value: dart.fnType(dart.nullable(core.String), [core.String]),
    add: dart.fnType(dart.void, [core.String, core.Object], {preserveHeaderCase: core.bool}, {}),
    [_addAll]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    set: dart.fnType(dart.void, [core.String, core.Object], {preserveHeaderCase: core.bool}, {}),
    remove: dart.fnType(dart.void, [core.String, core.Object]),
    removeAll: dart.fnType(dart.void, [core.String]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [core.String, core.List$(core.String)])]),
    noFolding: dart.fnType(dart.void, [core.String]),
    clear: dart.fnType(dart.void, []),
    [_add$1]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addContentLength]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addTransferEncoding]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addDate]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addExpires]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addIfModifiedSince]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addHost]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addConnection]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addContentType]: dart.fnType(dart.void, [core.String, dart.dynamic]),
    [_addValue]: dart.fnType(dart.void, [core.String, core.Object]),
    [_valueToString]: dart.fnType(core.String, [core.Object]),
    [_set]: dart.fnType(dart.void, [core.String, core.String]),
    [_checkMutable]: dart.fnType(dart.void, []),
    [_updateHostHeader]: dart.fnType(dart.void, []),
    [_foldHeader]: dart.fnType(core.bool, [core.String]),
    [_finalize]: dart.fnType(dart.void, []),
    [_build]: dart.fnType(dart.void, [_internal.BytesBuilder]),
    [_parseCookies]: dart.fnType(core.List$(_http.Cookie), []),
    [_originalHeaderName]: dart.fnType(core.String, [core.String])
  }));
  dart.setGetterSignature(_http._HttpHeaders, () => ({
    __proto__: dart.getGetters(_http._HttpHeaders.__proto__),
    persistentConnection: core.bool,
    contentLength: core.int,
    chunkedTransferEncoding: core.bool,
    host: dart.nullable(core.String),
    port: dart.nullable(core.int),
    ifModifiedSince: dart.nullable(core.DateTime),
    date: dart.nullable(core.DateTime),
    expires: dart.nullable(core.DateTime),
    contentType: dart.nullable(_http.ContentType)
  }));
  dart.setSetterSignature(_http._HttpHeaders, () => ({
    __proto__: dart.getSetters(_http._HttpHeaders.__proto__),
    persistentConnection: core.bool,
    contentLength: core.int,
    chunkedTransferEncoding: core.bool,
    host: dart.nullable(core.String),
    port: dart.nullable(core.int),
    ifModifiedSince: dart.nullable(core.DateTime),
    date: dart.nullable(core.DateTime),
    expires: dart.nullable(core.DateTime),
    contentType: dart.nullable(_http.ContentType)
  }));
  dart.setLibraryUri(_http._HttpHeaders, I[177]);
  dart.setFieldSignature(_http._HttpHeaders, () => ({
    __proto__: dart.getFields(_http._HttpHeaders.__proto__),
    [_headers]: dart.finalFieldType(core.Map$(core.String, core.List$(core.String))),
    [_originalHeaderNames]: dart.fieldType(dart.nullable(core.Map$(core.String, core.String))),
    protocolVersion: dart.finalFieldType(core.String),
    [_mutable]: dart.fieldType(core.bool),
    [_noFoldingHeaders]: dart.fieldType(dart.nullable(core.List$(core.String))),
    [_contentLength]: dart.fieldType(core.int),
    [_persistentConnection]: dart.fieldType(core.bool),
    [_chunkedTransferEncoding]: dart.fieldType(core.bool),
    [_host]: dart.fieldType(dart.nullable(core.String)),
    [_port]: dart.fieldType(dart.nullable(core.int)),
    [_defaultPortForScheme]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(_http._HttpHeaders, ['toString']);
  var _parameters = dart.privateName(_http, "_parameters");
  var _unmodifiableParameters = dart.privateName(_http, "_unmodifiableParameters");
  var _value$5 = dart.privateName(_http, "_value");
  var _parse = dart.privateName(_http, "_parse");
  var _ensureParameters = dart.privateName(_http, "_ensureParameters");
  _http._HeaderValue = class _HeaderValue extends core.Object {
    static parse(value, opts) {
      if (value == null) dart.nullFailed(I[180], 666, 36, "value");
      let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
      if (parameterSeparator == null) dart.nullFailed(I[180], 667, 15, "parameterSeparator");
      let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
      let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
      if (preserveBackslash == null) dart.nullFailed(I[180], 669, 12, "preserveBackslash");
      let result = new _http._HeaderValue.new();
      result[_parse](value, parameterSeparator, valueSeparator, preserveBackslash);
      return result;
    }
    get value() {
      return this[_value$5];
    }
    [_ensureParameters]() {
      let t275;
      t275 = this[_parameters];
      return t275 == null ? this[_parameters] = new (T$0.IdentityMapOfString$StringN()).new() : t275;
    }
    get parameters() {
      let t275;
      t275 = this[_unmodifiableParameters];
      return t275 == null ? this[_unmodifiableParameters] = new (T$0.UnmodifiableMapViewOfString$StringN()).new(this[_ensureParameters]()) : t275;
    }
    static _isToken(token) {
      if (token == null) dart.nullFailed(I[180], 684, 31, "token");
      if (token[$isEmpty]) {
        return false;
      }
      let delimiters = "\"(),/:;<=>?@[]{}";
      for (let i = 0; i < token.length; i = i + 1) {
        let codeUnit = token[$codeUnitAt](i);
        if (codeUnit <= 32 || codeUnit >= 127 || delimiters[$indexOf](token[$_get](i)) >= 0) {
          return false;
        }
      }
      return true;
    }
    toString() {
      let sb = new core.StringBuffer.new();
      sb.write(this[_value$5]);
      let parameters = this[_parameters];
      if (parameters != null && dart.notNull(parameters[$length]) > 0) {
        parameters[$forEach](dart.fn((name, value) => {
          let t275, t275$;
          if (name == null) dart.nullFailed(I[180], 705, 34, "name");
          t275 = sb;
          (() => {
            t275.write("; ");
            t275.write(name);
            return t275;
          })();
          if (value != null) {
            sb.write("=");
            if (dart.test(_http._HeaderValue._isToken(value))) {
              sb.write(value);
            } else {
              sb.write("\"");
              let start = 0;
              for (let i = 0; i < value.length; i = i + 1) {
                let codeUnit = value[$codeUnitAt](i);
                if (codeUnit === 92 || codeUnit === 34) {
                  sb.write(value[$substring](start, i));
                  sb.write("\\");
                  start = i;
                }
              }
              t275$ = sb;
              (() => {
                t275$.write(value[$substring](start));
                t275$.write("\"");
                return t275$;
              })();
            }
          }
        }, T$0.StringAndStringNTovoid()));
      }
      return sb.toString();
    }
    [_parse](s, parameterSeparator, valueSeparator, preserveBackslash) {
      if (s == null) dart.nullFailed(I[180], 732, 22, "s");
      if (parameterSeparator == null) dart.nullFailed(I[180], 732, 32, "parameterSeparator");
      if (preserveBackslash == null) dart.nullFailed(I[180], 733, 12, "preserveBackslash");
      let index = 0;
      function done() {
        return index === s.length;
      }
      dart.fn(done, T$.VoidTobool());
      function skipWS() {
        while (!dart.test(done())) {
          if (s[$_get](index) !== " " && s[$_get](index) !== "\t") return;
          index = index + 1;
        }
      }
      dart.fn(skipWS, T$.VoidTovoid());
      function parseValue() {
        let start = index;
        while (!dart.test(done())) {
          let char = s[$_get](index);
          if (char === " " || char === "\t" || char === valueSeparator || char === parameterSeparator) break;
          index = index + 1;
        }
        return s[$substring](start, index);
      }
      dart.fn(parseValue, T$.VoidToString());
      function expect(expected) {
        if (expected == null) dart.nullFailed(I[180], 758, 24, "expected");
        if (dart.test(done()) || s[$_get](index) !== expected) {
          dart.throw(new _http.HttpException.new("Failed to parse header value"));
        }
        index = index + 1;
      }
      dart.fn(expect, T$.StringTovoid());
      function maybeExpect(expected) {
        if (expected == null) dart.nullFailed(I[180], 765, 29, "expected");
        if (dart.test(done()) || !s[$startsWith](expected, index)) {
          return false;
        }
        index = index + 1;
        return true;
      }
      dart.fn(maybeExpect, T$.StringTobool());
      const parseParameters = () => {
        let parameters = this[_ensureParameters]();
        function parseParameterName() {
          let start = index;
          while (!dart.test(done())) {
            let char = s[$_get](index);
            if (char === " " || char === "\t" || char === "=" || char === parameterSeparator || char === valueSeparator) break;
            index = index + 1;
          }
          return s[$substring](start, index)[$toLowerCase]();
        }
        dart.fn(parseParameterName, T$.VoidToString());
        function parseParameterValue() {
          if (!dart.test(done()) && s[$_get](index) === "\"") {
            let sb = new core.StringBuffer.new();
            index = index + 1;
            while (!dart.test(done())) {
              let char = s[$_get](index);
              if (char === "\\") {
                if (index + 1 === s.length) {
                  dart.throw(new _http.HttpException.new("Failed to parse header value"));
                }
                if (dart.test(preserveBackslash) && s[$_get](index + 1) !== "\"") {
                  sb.write(char);
                }
                index = index + 1;
              } else if (char === "\"") {
                index = index + 1;
                return sb.toString();
              }
              char = s[$_get](index);
              sb.write(char);
              index = index + 1;
            }
            dart.throw(new _http.HttpException.new("Failed to parse header value"));
          } else {
            return parseValue();
          }
        }
        dart.fn(parseParameterValue, T$.VoidToString());
        while (!dart.test(done())) {
          skipWS();
          if (dart.test(done())) return;
          let name = parseParameterName();
          skipWS();
          if (dart.test(maybeExpect("="))) {
            skipWS();
            let value = parseParameterValue();
            if (name === "charset" && _http._ContentType.is(this)) {
              value = value[$toLowerCase]();
            }
            parameters[$_set](name, value);
            skipWS();
          } else if (name[$isNotEmpty]) {
            parameters[$_set](name, null);
          }
          if (dart.test(done())) return;
          if (s[$_get](index) === valueSeparator) return;
          expect(parameterSeparator);
        }
      };
      dart.fn(parseParameters, T$.VoidTovoid());
      skipWS();
      this[_value$5] = parseValue();
      skipWS();
      if (dart.test(done())) return;
      if (s[$_get](index) === valueSeparator) return;
      maybeExpect(parameterSeparator);
      parseParameters();
    }
  };
  (_http._HeaderValue.new = function(_value = "", parameters = C[452] || CT.C452) {
    if (_value == null) dart.nullFailed(I[180], 658, 22, "_value");
    if (parameters == null) dart.nullFailed(I[180], 658, 56, "parameters");
    this[_parameters] = null;
    this[_unmodifiableParameters] = null;
    this[_value$5] = _value;
    let nullableParameters = parameters;
    if (nullableParameters != null && dart.test(nullableParameters[$isNotEmpty])) {
      this[_parameters] = T$0.HashMapOfString$StringN().from(nullableParameters);
    }
  }).prototype = _http._HeaderValue.prototype;
  dart.addTypeTests(_http._HeaderValue);
  dart.addTypeCaches(_http._HeaderValue);
  _http._HeaderValue[dart.implements] = () => [_http.HeaderValue];
  dart.setMethodSignature(_http._HeaderValue, () => ({
    __proto__: dart.getMethods(_http._HeaderValue.__proto__),
    [_ensureParameters]: dart.fnType(core.Map$(core.String, dart.nullable(core.String)), []),
    [_parse]: dart.fnType(dart.void, [core.String, core.String, dart.nullable(core.String), core.bool])
  }));
  dart.setGetterSignature(_http._HeaderValue, () => ({
    __proto__: dart.getGetters(_http._HeaderValue.__proto__),
    value: core.String,
    parameters: core.Map$(core.String, dart.nullable(core.String))
  }));
  dart.setLibraryUri(_http._HeaderValue, I[177]);
  dart.setFieldSignature(_http._HeaderValue, () => ({
    __proto__: dart.getFields(_http._HeaderValue.__proto__),
    [_value$5]: dart.fieldType(core.String),
    [_parameters]: dart.fieldType(dart.nullable(core.Map$(core.String, dart.nullable(core.String)))),
    [_unmodifiableParameters]: dart.fieldType(dart.nullable(core.Map$(core.String, dart.nullable(core.String))))
  }));
  dart.defineExtensionMethods(_http._HeaderValue, ['toString']);
  var _primaryType = dart.privateName(_http, "_primaryType");
  var _subType = dart.privateName(_http, "_subType");
  _http._ContentType = class _ContentType extends _http._HeaderValue {
    static parse(value) {
      if (value == null) dart.nullFailed(I[180], 887, 36, "value");
      let result = new _http._ContentType.__();
      result[_parse](value, ";", null, false);
      let index = result[_value$5][$indexOf]("/");
      if (index === -1 || index === result[_value$5].length - 1) {
        result[_primaryType] = result[_value$5][$trim]()[$toLowerCase]();
      } else {
        result[_primaryType] = result[_value$5][$substring](0, index)[$trim]()[$toLowerCase]();
        result[_subType] = result[_value$5][$substring](index + 1)[$trim]()[$toLowerCase]();
      }
      return result;
    }
    get mimeType() {
      return dart.str(this.primaryType) + "/" + dart.str(this.subType);
    }
    get primaryType() {
      return this[_primaryType];
    }
    get subType() {
      return this[_subType];
    }
    get charset() {
      return this.parameters[$_get]("charset");
    }
  };
  (_http._ContentType.new = function(primaryType, subType, charset, parameters) {
    if (primaryType == null) dart.nullFailed(I[180], 858, 23, "primaryType");
    if (subType == null) dart.nullFailed(I[180], 858, 43, "subType");
    if (parameters == null) dart.nullFailed(I[180], 859, 28, "parameters");
    this[_primaryType] = "";
    this[_subType] = "";
    this[_primaryType] = primaryType;
    this[_subType] = subType;
    _http._ContentType.__proto__.new.call(this, "");
    function emptyIfNull(string) {
      let t275;
      t275 = string;
      return t275 == null ? "" : t275;
    }
    dart.fn(emptyIfNull, T$0.StringNToString());
    this[_primaryType] = emptyIfNull(this[_primaryType]);
    this[_subType] = emptyIfNull(this[_subType]);
    this[_value$5] = dart.str(this[_primaryType]) + "/" + dart.str(this[_subType]);
    let nullableParameters = parameters;
    if (nullableParameters != null) {
      let parameterMap = this[_ensureParameters]();
      nullableParameters[$forEach](dart.fn((key, value) => {
        let t275;
        if (key == null) dart.nullFailed(I[180], 872, 42, "key");
        let lowerCaseKey = key[$toLowerCase]();
        if (lowerCaseKey === "charset") {
          value = (t275 = value, t275 == null ? null : t275[$toLowerCase]());
        }
        parameterMap[$_set](lowerCaseKey, value);
      }, T$0.StringAndStringNTovoid()));
    }
    if (charset != null) {
      this[_ensureParameters]()[$_set]("charset", charset[$toLowerCase]());
    }
  }).prototype = _http._ContentType.prototype;
  (_http._ContentType.__ = function() {
    this[_primaryType] = "";
    this[_subType] = "";
    _http._ContentType.__proto__.new.call(this);
    ;
  }).prototype = _http._ContentType.prototype;
  dart.addTypeTests(_http._ContentType);
  dart.addTypeCaches(_http._ContentType);
  _http._ContentType[dart.implements] = () => [_http.ContentType];
  dart.setGetterSignature(_http._ContentType, () => ({
    __proto__: dart.getGetters(_http._ContentType.__proto__),
    mimeType: core.String,
    primaryType: core.String,
    subType: core.String,
    charset: dart.nullable(core.String)
  }));
  dart.setLibraryUri(_http._ContentType, I[177]);
  dart.setFieldSignature(_http._ContentType, () => ({
    __proto__: dart.getFields(_http._ContentType.__proto__),
    [_primaryType]: dart.fieldType(core.String),
    [_subType]: dart.fieldType(core.String)
  }));
  var _path$3 = dart.privateName(_http, "_path");
  var _parseSetCookieValue = dart.privateName(_http, "_parseSetCookieValue");
  _http._Cookie = class _Cookie extends core.Object {
    get name() {
      return this[_name$7];
    }
    get value() {
      return this[_value$5];
    }
    get path() {
      return this[_path$3];
    }
    set path(newPath) {
      _http._Cookie._validatePath(newPath);
      this[_path$3] = newPath;
    }
    set name(newName) {
      if (newName == null) dart.nullFailed(I[180], 935, 19, "newName");
      _http._Cookie._validateName(newName);
      this[_name$7] = newName;
    }
    set value(newValue) {
      if (newValue == null) dart.nullFailed(I[180], 940, 20, "newValue");
      _http._Cookie._validateValue(newValue);
      this[_value$5] = newValue;
    }
    [_parseSetCookieValue](s) {
      if (s == null) dart.nullFailed(I[180], 953, 36, "s");
      let index = 0;
      function done() {
        return index === s.length;
      }
      dart.fn(done, T$.VoidTobool());
      function parseName() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === "=") break;
          index = index + 1;
        }
        return s[$substring](start, index)[$trim]();
      }
      dart.fn(parseName, T$.VoidToString());
      function parseValue() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === ";") break;
          index = index + 1;
        }
        return s[$substring](start, index)[$trim]();
      }
      dart.fn(parseValue, T$.VoidToString());
      const parseAttributes = () => {
        function parseAttributeName() {
          let start = index;
          while (!dart.test(done())) {
            if (s[$_get](index) === "=" || s[$_get](index) === ";") break;
            index = index + 1;
          }
          return s[$substring](start, index)[$trim]()[$toLowerCase]();
        }
        dart.fn(parseAttributeName, T$.VoidToString());
        function parseAttributeValue() {
          let start = index;
          while (!dart.test(done())) {
            if (s[$_get](index) === ";") break;
            index = index + 1;
          }
          return s[$substring](start, index)[$trim]()[$toLowerCase]();
        }
        dart.fn(parseAttributeValue, T$.VoidToString());
        while (!dart.test(done())) {
          let name = parseAttributeName();
          let value = "";
          if (!dart.test(done()) && s[$_get](index) === "=") {
            index = index + 1;
            value = parseAttributeValue();
          }
          if (name === "expires") {
            this.expires = _http.HttpDate._parseCookieDate(value);
          } else if (name === "max-age") {
            this.maxAge = core.int.parse(value);
          } else if (name === "domain") {
            this.domain = value;
          } else if (name === "path") {
            this.path = value;
          } else if (name === "httponly") {
            this.httpOnly = true;
          } else if (name === "secure") {
            this.secure = true;
          }
          if (!dart.test(done())) index = index + 1;
        }
      };
      dart.fn(parseAttributes, T$.VoidTovoid());
      this[_name$7] = _http._Cookie._validateName(parseName());
      if (dart.test(done()) || this[_name$7].length === 0) {
        dart.throw(new _http.HttpException.new("Failed to parse header value [" + dart.str(s) + "]"));
      }
      index = index + 1;
      this[_value$5] = _http._Cookie._validateValue(parseValue());
      if (dart.test(done())) return;
      index = index + 1;
      parseAttributes();
    }
    toString() {
      let t275, t275$, t275$0, t275$1, t275$2;
      let sb = new core.StringBuffer.new();
      t275 = sb;
      (() => {
        t275.write(this[_name$7]);
        t275.write("=");
        t275.write(this[_value$5]);
        return t275;
      })();
      let expires = this.expires;
      if (expires != null) {
        t275$ = sb;
        (() => {
          t275$.write("; Expires=");
          t275$.write(_http.HttpDate.format(expires));
          return t275$;
        })();
      }
      if (this.maxAge != null) {
        t275$0 = sb;
        (() => {
          t275$0.write("; Max-Age=");
          t275$0.write(this.maxAge);
          return t275$0;
        })();
      }
      if (this.domain != null) {
        t275$1 = sb;
        (() => {
          t275$1.write("; Domain=");
          t275$1.write(this.domain);
          return t275$1;
        })();
      }
      if (this.path != null) {
        t275$2 = sb;
        (() => {
          t275$2.write("; Path=");
          t275$2.write(this.path);
          return t275$2;
        })();
      }
      if (dart.test(this.secure)) sb.write("; Secure");
      if (dart.test(this.httpOnly)) sb.write("; HttpOnly");
      return sb.toString();
    }
    static _validateName(newName) {
      if (newName == null) dart.nullFailed(I[180], 1051, 38, "newName");
      let separators = C[465] || CT.C465;
      if (newName == null) dart.throw(new core.ArgumentError.notNull("name"));
      for (let i = 0; i < newName.length; i = i + 1) {
        let codeUnit = newName[$codeUnitAt](i);
        if (codeUnit <= 32 || codeUnit >= 127 || dart.notNull(separators[$indexOf](newName[$_get](i))) >= 0) {
          dart.throw(new core.FormatException.new("Invalid character in cookie name, code unit: '" + dart.str(codeUnit) + "'", newName, i));
        }
      }
      return newName;
    }
    static _validateValue(newValue) {
      if (newValue == null) dart.nullFailed(I[180], 1086, 39, "newValue");
      if (newValue == null) dart.throw(new core.ArgumentError.notNull("value"));
      let start = 0;
      let end = newValue.length;
      if (2 <= newValue.length && newValue[$codeUnits][$_get](start) === 34 && newValue[$codeUnits][$_get](end - 1) === 34) {
        start = start + 1;
        end = end - 1;
      }
      for (let i = start; i < end; i = i + 1) {
        let codeUnit = newValue[$codeUnits][$_get](i);
        if (!(codeUnit === 33 || dart.notNull(codeUnit) >= 35 && dart.notNull(codeUnit) <= 43 || dart.notNull(codeUnit) >= 45 && dart.notNull(codeUnit) <= 58 || dart.notNull(codeUnit) >= 60 && dart.notNull(codeUnit) <= 91 || dart.notNull(codeUnit) >= 93 && dart.notNull(codeUnit) <= 126)) {
          dart.throw(new core.FormatException.new("Invalid character in cookie value, code unit: '" + dart.str(codeUnit) + "'", newValue, i));
        }
      }
      return newValue;
    }
    static _validatePath(path) {
      if (path == null) return;
      for (let i = 0; i < path.length; i = i + 1) {
        let codeUnit = path[$codeUnitAt](i);
        if (codeUnit < 32 || codeUnit >= 127 || codeUnit === 59) {
          dart.throw(new core.FormatException.new("Invalid character in cookie path, code unit: '" + dart.str(codeUnit) + "'"));
        }
      }
    }
  };
  (_http._Cookie.new = function(name, value) {
    if (name == null) dart.nullFailed(I[180], 920, 18, "name");
    if (value == null) dart.nullFailed(I[180], 920, 31, "value");
    this.expires = null;
    this.maxAge = null;
    this.domain = null;
    this[_path$3] = null;
    this.httpOnly = false;
    this.secure = false;
    this[_name$7] = _http._Cookie._validateName(name);
    this[_value$5] = _http._Cookie._validateValue(value);
    this.httpOnly = true;
    ;
  }).prototype = _http._Cookie.prototype;
  (_http._Cookie.fromSetCookieValue = function(value) {
    if (value == null) dart.nullFailed(I[180], 945, 37, "value");
    this.expires = null;
    this.maxAge = null;
    this.domain = null;
    this[_path$3] = null;
    this.httpOnly = false;
    this.secure = false;
    this[_name$7] = "";
    this[_value$5] = "";
    this[_parseSetCookieValue](value);
  }).prototype = _http._Cookie.prototype;
  dart.addTypeTests(_http._Cookie);
  dart.addTypeCaches(_http._Cookie);
  _http._Cookie[dart.implements] = () => [_http.Cookie];
  dart.setMethodSignature(_http._Cookie, () => ({
    __proto__: dart.getMethods(_http._Cookie.__proto__),
    [_parseSetCookieValue]: dart.fnType(dart.void, [core.String])
  }));
  dart.setGetterSignature(_http._Cookie, () => ({
    __proto__: dart.getGetters(_http._Cookie.__proto__),
    name: core.String,
    value: core.String,
    path: dart.nullable(core.String)
  }));
  dart.setSetterSignature(_http._Cookie, () => ({
    __proto__: dart.getSetters(_http._Cookie.__proto__),
    path: dart.nullable(core.String),
    name: core.String,
    value: core.String
  }));
  dart.setLibraryUri(_http._Cookie, I[177]);
  dart.setFieldSignature(_http._Cookie, () => ({
    __proto__: dart.getFields(_http._Cookie.__proto__),
    [_name$7]: dart.fieldType(core.String),
    [_value$5]: dart.fieldType(core.String),
    expires: dart.fieldType(dart.nullable(core.DateTime)),
    maxAge: dart.fieldType(dart.nullable(core.int)),
    domain: dart.fieldType(dart.nullable(core.String)),
    [_path$3]: dart.fieldType(dart.nullable(core.String)),
    httpOnly: dart.fieldType(core.bool),
    secure: dart.fieldType(core.bool)
  }));
  dart.defineExtensionMethods(_http._Cookie, ['toString']);
  var _timeline = dart.privateName(_http, "_timeline");
  _http.HttpProfiler = class HttpProfiler extends core.Object {
    static startRequest(method, uri, opts) {
      let t275;
      if (method == null) dart.nullFailed(I[181], 13, 12, "method");
      if (uri == null) dart.nullFailed(I[181], 14, 9, "uri");
      let parentRequest = opts && 'parentRequest' in opts ? opts.parentRequest : null;
      let data = new _http._HttpProfileData.new(method, uri, (t275 = parentRequest, t275 == null ? null : t275[_timeline]));
      _http.HttpProfiler._profile[$_set](data.id, data);
      return data;
    }
    static getHttpProfileRequest(id) {
      if (id == null) dart.nullFailed(I[181], 22, 54, "id");
      return _http.HttpProfiler._profile[$_get](id);
    }
    static clear() {
      return _http.HttpProfiler._profile[$clear]();
    }
    static toJson(updatedSince) {
      return convert.json.encode(new (T$.IdentityMapOfString$Object()).from(["type", "HttpProfile", "timestamp", developer.Timeline.now, "requests", (() => {
          let t275 = T$0.JSArrayOfMapOfString$dynamic().of([]);
          for (let request of _http.HttpProfiler._profile[$values][$where](dart.fn(e => {
            if (e == null) dart.nullFailed(I[181], 32, 12, "e");
            return updatedSince == null || dart.notNull(e.lastUpdateTime) >= dart.notNull(updatedSince);
          }, T$0._HttpProfileDataTobool())))
            t275[$add](request.toJson());
          return t275;
        })()]));
    }
  };
  (_http.HttpProfiler.new = function() {
    ;
  }).prototype = _http.HttpProfiler.prototype;
  dart.addTypeTests(_http.HttpProfiler);
  dart.addTypeCaches(_http.HttpProfiler);
  dart.setLibraryUri(_http.HttpProfiler, I[177]);
  dart.defineLazy(_http.HttpProfiler, {
    /*_http.HttpProfiler._kType*/get _kType() {
      return "HttpProfile";
    },
    /*_http.HttpProfiler._profile*/get _profile() {
      return new (T$0.IdentityMapOfint$_HttpProfileData()).new();
    },
    set _profile(_) {}
  }, false);
  _http._HttpProfileEvent = class _HttpProfileEvent extends core.Object {
    toJson() {
      return (() => {
        let t276 = new (T$0.IdentityMapOfString$dynamic()).new();
        t276[$_set]("timestamp", this.timestamp);
        t276[$_set]("event", this.name);
        if (this.arguments != null) t276[$_set]("arguments", this.arguments);
        return t276;
      })();
    }
  };
  (_http._HttpProfileEvent.new = function(name, $arguments) {
    if (name == null) dart.nullFailed(I[181], 43, 26, "name");
    this.timestamp = developer.Timeline.now;
    this.name = name;
    this.arguments = $arguments;
    ;
  }).prototype = _http._HttpProfileEvent.prototype;
  dart.addTypeTests(_http._HttpProfileEvent);
  dart.addTypeCaches(_http._HttpProfileEvent);
  dart.setMethodSignature(_http._HttpProfileEvent, () => ({
    __proto__: dart.getMethods(_http._HttpProfileEvent.__proto__),
    toJson: dart.fnType(core.Map$(core.String, dart.dynamic), [])
  }));
  dart.setLibraryUri(_http._HttpProfileEvent, I[177]);
  dart.setFieldSignature(_http._HttpProfileEvent, () => ({
    __proto__: dart.getFields(_http._HttpProfileEvent.__proto__),
    timestamp: dart.finalFieldType(core.int),
    name: dart.finalFieldType(core.String),
    arguments: dart.finalFieldType(dart.nullable(core.Map))
  }));
  var ___HttpProfileData_id = dart.privateName(_http, "_#_HttpProfileData#id");
  var ___HttpProfileData_id_isSet = dart.privateName(_http, "_#_HttpProfileData#id#isSet");
  var ___HttpProfileData_requestStartTimestamp = dart.privateName(_http, "_#_HttpProfileData#requestStartTimestamp");
  var ___HttpProfileData_requestStartTimestamp_isSet = dart.privateName(_http, "_#_HttpProfileData#requestStartTimestamp#isSet");
  var ___HttpProfileData_requestEndTimestamp = dart.privateName(_http, "_#_HttpProfileData#requestEndTimestamp");
  var ___HttpProfileData_requestEndTimestamp_isSet = dart.privateName(_http, "_#_HttpProfileData#requestEndTimestamp#isSet");
  var ___HttpProfileData_responseStartTimestamp = dart.privateName(_http, "_#_HttpProfileData#responseStartTimestamp");
  var ___HttpProfileData_responseStartTimestamp_isSet = dart.privateName(_http, "_#_HttpProfileData#responseStartTimestamp#isSet");
  var ___HttpProfileData_responseEndTimestamp = dart.privateName(_http, "_#_HttpProfileData#responseEndTimestamp");
  var ___HttpProfileData_responseEndTimestamp_isSet = dart.privateName(_http, "_#_HttpProfileData#responseEndTimestamp#isSet");
  var _lastUpdateTime = dart.privateName(_http, "_lastUpdateTime");
  var ___HttpProfileData__responseTimeline = dart.privateName(_http, "_#_HttpProfileData#_responseTimeline");
  var ___HttpProfileData__responseTimeline_isSet = dart.privateName(_http, "_#_HttpProfileData#_responseTimeline#isSet");
  var _updated = dart.privateName(_http, "_updated");
  var _responseTimeline = dart.privateName(_http, "_responseTimeline");
  _http._HttpProfileData = class _HttpProfileData extends core.Object {
    requestEvent(name, opts) {
      if (name == null) dart.nullFailed(I[181], 76, 28, "name");
      let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
      this[_timeline].instant(name, {arguments: $arguments});
      this.requestEvents[$add](new _http._HttpProfileEvent.new(name, $arguments));
      this[_updated]();
    }
    proxyEvent(proxy) {
      if (proxy == null) dart.nullFailed(I[181], 82, 26, "proxy");
      this.proxyDetails = (() => {
        let t277 = new (T$0.IdentityMapOfString$dynamic()).new();
        if (proxy.host != null) t277[$_set]("host", proxy.host);
        if (proxy.port != null) t277[$_set]("port", proxy.port);
        if (proxy.username != null) t277[$_set]("username", proxy.username);
        return t277;
      })();
      this[_timeline].instant("Establishing proxy tunnel", {arguments: new _js_helper.LinkedMap.from(["proxyDetails", this.proxyDetails])});
      this[_updated]();
    }
    appendRequestData(data) {
      if (data == null) dart.nullFailed(I[181], 94, 36, "data");
      this.requestBody[$addAll](data);
      this[_updated]();
    }
    formatHeaders(r) {
      let headers = new (T$0.IdentityMapOfString$ListOfString()).new();
      dart.dsend(dart.dload(r, 'headers'), 'forEach', [dart.fn((name, values) => {
          headers[$_set](core.String.as(name), T$.ListOfString().as(values));
        }, T$.dynamicAnddynamicToNull())]);
      return headers;
    }
    formatConnectionInfo(r) {
      let t278, t278$, t278$0;
      return dart.dload(r, 'connectionInfo') == null ? null : new _js_helper.LinkedMap.from(["localPort", (t278 = dart.dload(r, 'connectionInfo'), t278 == null ? null : dart.dload(t278, 'localPort')), "remoteAddress", (t278$ = dart.dload(r, 'connectionInfo'), t278$ == null ? null : dart.dload(dart.dload(t278$, 'remoteAddress'), 'address')), "remotePort", (t278$0 = dart.dload(r, 'connectionInfo'), t278$0 == null ? null : dart.dload(t278$0, 'remotePort'))]);
    }
    finishRequest(opts) {
      let request = opts && 'request' in opts ? opts.request : null;
      if (request == null) dart.nullFailed(I[181], 116, 32, "request");
      this.requestInProgress = false;
      this.requestEndTimestamp = developer.Timeline.now;
      this.requestDetails = new (T$0.IdentityMapOfString$dynamic()).from(["headers", this.formatHeaders(request), "connectionInfo", this.formatConnectionInfo(request), "contentLength", request.contentLength, "cookies", (() => {
          let t278 = T$.JSArrayOfString().of([]);
          for (let cookie of request.cookies)
            t278[$add](dart.toString(cookie));
          return t278;
        })(), "followRedirects", request.followRedirects, "maxRedirects", request.maxRedirects, "method", request.method, "persistentConnection", request.persistentConnection, "uri", dart.toString(request.uri)]);
      this[_timeline].finish({arguments: this.requestDetails});
      this[_updated]();
    }
    startResponse(opts) {
      let response = opts && 'response' in opts ? opts.response : null;
      if (response == null) dart.nullFailed(I[181], 142, 51, "response");
      function formatRedirectInfo() {
        let redirects = T$0.JSArrayOfMapOfString$dynamic().of([]);
        for (let redirect of response.redirects) {
          redirects[$add](new (T$0.IdentityMapOfString$dynamic()).from(["location", dart.toString(redirect.location), "method", redirect.method, "statusCode", redirect.statusCode]));
        }
        return redirects;
      }
      dart.fn(formatRedirectInfo, T$0.VoidToListOfMapOfString$dynamic());
      this.responseDetails = new (T$0.IdentityMapOfString$dynamic()).from(["headers", this.formatHeaders(response), "compressionState", dart.toString(response.compressionState), "connectionInfo", this.formatConnectionInfo(response), "contentLength", response.contentLength, "cookies", (() => {
          let t279 = T$.JSArrayOfString().of([]);
          for (let cookie of response.cookies)
            t279[$add](dart.toString(cookie));
          return t279;
        })(), "isRedirect", response.isRedirect, "persistentConnection", response.persistentConnection, "reasonPhrase", response.reasonPhrase, "redirects", formatRedirectInfo(), "statusCode", response.statusCode]);
      if (!!dart.test(this.requestInProgress)) dart.assertFailed(null, I[181], 170, 12, "!requestInProgress");
      this.responseInProgress = true;
      this[_responseTimeline] = new developer.TimelineTask.new({parent: this[_timeline], filterKey: "HTTP/client"});
      this.responseStartTimestamp = developer.Timeline.now;
      this[_responseTimeline].start("HTTP CLIENT response of " + dart.str(this.method), {arguments: (() => {
          let t280 = new _js_helper.LinkedMap.new();
          t280[$_set]("requestUri", dart.toString(this.uri));
          for (let t281 of dart.nullCheck(this.responseDetails)[$entries])
            t280[$_set](t281.key, t281.value);
          return t280;
        })()});
      this[_updated]();
    }
    finishRequestWithError(error) {
      if (error == null) dart.nullFailed(I[181], 188, 38, "error");
      this.requestInProgress = false;
      this.requestEndTimestamp = developer.Timeline.now;
      this.requestError = error;
      this[_timeline].finish({arguments: new _js_helper.LinkedMap.from(["error", error])});
      this[_updated]();
    }
    finishResponse() {
      this.responseInProgress = false;
      this.responseEndTimestamp = developer.Timeline.now;
      this.requestEvent("Content Download");
      this[_responseTimeline].finish();
      this[_updated]();
    }
    finishResponseWithError(error) {
      if (error == null) dart.nullFailed(I[181], 206, 39, "error");
      if (!dart.nullCheck(this.responseInProgress)) return;
      this.responseInProgress = false;
      this.responseEndTimestamp = developer.Timeline.now;
      this.responseError = error;
      this[_responseTimeline].finish({arguments: new _js_helper.LinkedMap.from(["error", error])});
      this[_updated]();
    }
    appendResponseData(data) {
      if (data == null) dart.nullFailed(I[181], 219, 37, "data");
      this.responseBody[$addAll](data);
      this[_updated]();
    }
    toJson(opts) {
      let ref = opts && 'ref' in opts ? opts.ref : true;
      if (ref == null) dart.nullFailed(I[181], 224, 37, "ref");
      return (() => {
        let t282 = new (T$0.IdentityMapOfString$dynamic()).new();
        t282[$_set]("type", (dart.test(ref) ? "@" : "") + "HttpProfileRequest");
        t282[$_set]("id", this.id);
        t282[$_set]("isolateId", _http._HttpProfileData.isolateId);
        t282[$_set]("method", this.method);
        t282[$_set]("uri", dart.toString(this.uri));
        t282[$_set]("startTime", this.requestStartTimestamp);
        if (!dart.test(this.requestInProgress)) t282[$_set]("endTime", this.requestEndTimestamp);
        if (!dart.test(this.requestInProgress)) t282[$_set]("request", (() => {
          let t283 = new (T$0.IdentityMapOfString$dynamic()).new();
          t283[$_set]("events", (() => {
            let t284 = T$0.JSArrayOfMapOfString$dynamic().of([]);
            for (let event of this.requestEvents)
              t284[$add](event.toJson());
            return t284;
          })());
          if (this.proxyDetails != null) t283[$_set]("proxyDetails", dart.nullCheck(this.proxyDetails));
          if (this.requestDetails != null) for (let t285 of dart.nullCheck(this.requestDetails)[$entries])
            t283[$_set](t285.key, t285.value);
          if (this.requestError != null) t283[$_set]("error", this.requestError);
          return t283;
        })());
        if (this.responseInProgress != null) t282[$_set]("response", (() => {
          let t286 = new (T$0.IdentityMapOfString$dynamic()).new();
          t286[$_set]("startTime", this.responseStartTimestamp);
          for (let t287 of dart.nullCheck(this.responseDetails)[$entries])
            t286[$_set](t287.key, t287.value);
          if (!dart.nullCheck(this.responseInProgress)) t286[$_set]("endTime", this.responseEndTimestamp);
          if (this.responseError != null) t286[$_set]("error", this.responseError);
          return t286;
        })());
        if (!dart.test(ref)) for (let t289 of (() => {
          let t288 = new (T$0.IdentityMapOfString$dynamic()).new();
          if (!dart.test(this.requestInProgress)) t288[$_set]("requestBody", this.requestBody);
          if (this.responseInProgress != null) t288[$_set]("responseBody", this.responseBody);
          return t288;
        })()[$entries])
          t282[$_set](t289.key, t289.value);
        return t282;
      })();
    }
    [_updated]() {
      return this[_lastUpdateTime] = developer.Timeline.now;
    }
    get id() {
      let t290;
      return dart.test(this[___HttpProfileData_id_isSet]) ? (t290 = this[___HttpProfileData_id], t290) : dart.throw(new _internal.LateError.fieldNI("id"));
    }
    set id(t290) {
      if (t290 == null) dart.nullFailed(I[181], 263, 18, "null");
      if (dart.test(this[___HttpProfileData_id_isSet]))
        dart.throw(new _internal.LateError.fieldAI("id"));
      else {
        this[___HttpProfileData_id_isSet] = true;
        this[___HttpProfileData_id] = t290;
      }
    }
    get requestStartTimestamp() {
      let t291;
      return dart.test(this[___HttpProfileData_requestStartTimestamp_isSet]) ? (t291 = this[___HttpProfileData_requestStartTimestamp], t291) : dart.throw(new _internal.LateError.fieldNI("requestStartTimestamp"));
    }
    set requestStartTimestamp(t291) {
      if (t291 == null) dart.nullFailed(I[181], 267, 18, "null");
      if (dart.test(this[___HttpProfileData_requestStartTimestamp_isSet]))
        dart.throw(new _internal.LateError.fieldAI("requestStartTimestamp"));
      else {
        this[___HttpProfileData_requestStartTimestamp_isSet] = true;
        this[___HttpProfileData_requestStartTimestamp] = t291;
      }
    }
    get requestEndTimestamp() {
      let t292;
      return dart.test(this[___HttpProfileData_requestEndTimestamp_isSet]) ? (t292 = this[___HttpProfileData_requestEndTimestamp], t292) : dart.throw(new _internal.LateError.fieldNI("requestEndTimestamp"));
    }
    set requestEndTimestamp(t292) {
      if (t292 == null) dart.nullFailed(I[181], 268, 18, "null");
      if (dart.test(this[___HttpProfileData_requestEndTimestamp_isSet]))
        dart.throw(new _internal.LateError.fieldAI("requestEndTimestamp"));
      else {
        this[___HttpProfileData_requestEndTimestamp_isSet] = true;
        this[___HttpProfileData_requestEndTimestamp] = t292;
      }
    }
    get responseStartTimestamp() {
      let t293;
      return dart.test(this[___HttpProfileData_responseStartTimestamp_isSet]) ? (t293 = this[___HttpProfileData_responseStartTimestamp], t293) : dart.throw(new _internal.LateError.fieldNI("responseStartTimestamp"));
    }
    set responseStartTimestamp(t293) {
      if (t293 == null) dart.nullFailed(I[181], 275, 18, "null");
      if (dart.test(this[___HttpProfileData_responseStartTimestamp_isSet]))
        dart.throw(new _internal.LateError.fieldAI("responseStartTimestamp"));
      else {
        this[___HttpProfileData_responseStartTimestamp_isSet] = true;
        this[___HttpProfileData_responseStartTimestamp] = t293;
      }
    }
    get responseEndTimestamp() {
      let t294;
      return dart.test(this[___HttpProfileData_responseEndTimestamp_isSet]) ? (t294 = this[___HttpProfileData_responseEndTimestamp], t294) : dart.throw(new _internal.LateError.fieldNI("responseEndTimestamp"));
    }
    set responseEndTimestamp(t294) {
      if (t294 == null) dart.nullFailed(I[181], 276, 18, "null");
      if (dart.test(this[___HttpProfileData_responseEndTimestamp_isSet]))
        dart.throw(new _internal.LateError.fieldAI("responseEndTimestamp"));
      else {
        this[___HttpProfileData_responseEndTimestamp_isSet] = true;
        this[___HttpProfileData_responseEndTimestamp] = t294;
      }
    }
    get lastUpdateTime() {
      return this[_lastUpdateTime];
    }
    get [_responseTimeline]() {
      let t295;
      return dart.test(this[___HttpProfileData__responseTimeline_isSet]) ? (t295 = this[___HttpProfileData__responseTimeline], t295) : dart.throw(new _internal.LateError.fieldNI("_responseTimeline"));
    }
    set [_responseTimeline](t295) {
      if (t295 == null) dart.nullFailed(I[181], 285, 21, "null");
      this[___HttpProfileData__responseTimeline_isSet] = true;
      this[___HttpProfileData__responseTimeline] = t295;
    }
  };
  (_http._HttpProfileData.new = function(method, uri, parent) {
    if (method == null) dart.nullFailed(I[181], 58, 27, "method");
    if (uri == null) dart.nullFailed(I[181], 58, 40, "uri");
    this.requestInProgress = true;
    this.responseInProgress = null;
    this[___HttpProfileData_id] = null;
    this[___HttpProfileData_id_isSet] = false;
    this[___HttpProfileData_requestStartTimestamp] = null;
    this[___HttpProfileData_requestStartTimestamp_isSet] = false;
    this[___HttpProfileData_requestEndTimestamp] = null;
    this[___HttpProfileData_requestEndTimestamp_isSet] = false;
    this.requestDetails = null;
    this.proxyDetails = null;
    this.requestBody = T$.JSArrayOfint().of([]);
    this.requestError = null;
    this.requestEvents = T$0.JSArrayOf_HttpProfileEvent().of([]);
    this[___HttpProfileData_responseStartTimestamp] = null;
    this[___HttpProfileData_responseStartTimestamp_isSet] = false;
    this[___HttpProfileData_responseEndTimestamp] = null;
    this[___HttpProfileData_responseEndTimestamp_isSet] = false;
    this.responseDetails = null;
    this.responseBody = T$.JSArrayOfint().of([]);
    this.responseError = null;
    this[_lastUpdateTime] = 0;
    this[___HttpProfileData__responseTimeline] = null;
    this[___HttpProfileData__responseTimeline_isSet] = false;
    this.uri = uri;
    this.method = method[$toUpperCase]();
    this[_timeline] = new developer.TimelineTask.new({filterKey: "HTTP/client", parent: parent});
    this.id = this[_timeline].pass();
    this.requestInProgress = true;
    this.requestStartTimestamp = developer.Timeline.now;
    this[_timeline].start("HTTP CLIENT " + dart.str(method), {arguments: new _js_helper.LinkedMap.from(["method", method[$toUpperCase](), "uri", dart.toString(this.uri)])});
    this[_updated]();
  }).prototype = _http._HttpProfileData.prototype;
  dart.addTypeTests(_http._HttpProfileData);
  dart.addTypeCaches(_http._HttpProfileData);
  dart.setMethodSignature(_http._HttpProfileData, () => ({
    __proto__: dart.getMethods(_http._HttpProfileData.__proto__),
    requestEvent: dart.fnType(dart.void, [core.String], {arguments: dart.nullable(core.Map)}, {}),
    proxyEvent: dart.fnType(dart.void, [_http._Proxy]),
    appendRequestData: dart.fnType(dart.void, [typed_data.Uint8List]),
    formatHeaders: dart.fnType(core.Map, [dart.dynamic]),
    formatConnectionInfo: dart.fnType(dart.nullable(core.Map), [dart.dynamic]),
    finishRequest: dart.fnType(dart.void, [], {}, {request: _http.HttpClientRequest}),
    startResponse: dart.fnType(dart.void, [], {}, {response: _http.HttpClientResponse}),
    finishRequestWithError: dart.fnType(dart.void, [core.String]),
    finishResponse: dart.fnType(dart.void, []),
    finishResponseWithError: dart.fnType(dart.void, [core.String]),
    appendResponseData: dart.fnType(dart.void, [typed_data.Uint8List]),
    toJson: dart.fnType(core.Map$(core.String, dart.dynamic), [], {ref: core.bool}, {}),
    [_updated]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_http._HttpProfileData, () => ({
    __proto__: dart.getGetters(_http._HttpProfileData.__proto__),
    id: core.int,
    requestStartTimestamp: core.int,
    requestEndTimestamp: core.int,
    responseStartTimestamp: core.int,
    responseEndTimestamp: core.int,
    lastUpdateTime: core.int,
    [_responseTimeline]: developer.TimelineTask
  }));
  dart.setSetterSignature(_http._HttpProfileData, () => ({
    __proto__: dart.getSetters(_http._HttpProfileData.__proto__),
    id: core.int,
    requestStartTimestamp: core.int,
    requestEndTimestamp: core.int,
    responseStartTimestamp: core.int,
    responseEndTimestamp: core.int,
    [_responseTimeline]: developer.TimelineTask
  }));
  dart.setLibraryUri(_http._HttpProfileData, I[177]);
  dart.setFieldSignature(_http._HttpProfileData, () => ({
    __proto__: dart.getFields(_http._HttpProfileData.__proto__),
    requestInProgress: dart.fieldType(core.bool),
    responseInProgress: dart.fieldType(dart.nullable(core.bool)),
    [___HttpProfileData_id]: dart.fieldType(dart.nullable(core.int)),
    [___HttpProfileData_id_isSet]: dart.fieldType(core.bool),
    method: dart.finalFieldType(core.String),
    uri: dart.finalFieldType(core.Uri),
    [___HttpProfileData_requestStartTimestamp]: dart.fieldType(dart.nullable(core.int)),
    [___HttpProfileData_requestStartTimestamp_isSet]: dart.fieldType(core.bool),
    [___HttpProfileData_requestEndTimestamp]: dart.fieldType(dart.nullable(core.int)),
    [___HttpProfileData_requestEndTimestamp_isSet]: dart.fieldType(core.bool),
    requestDetails: dart.fieldType(dart.nullable(core.Map$(core.String, dart.dynamic))),
    proxyDetails: dart.fieldType(dart.nullable(core.Map$(core.String, dart.dynamic))),
    requestBody: dart.finalFieldType(core.List$(core.int)),
    requestError: dart.fieldType(dart.nullable(core.String)),
    requestEvents: dart.finalFieldType(core.List$(_http._HttpProfileEvent)),
    [___HttpProfileData_responseStartTimestamp]: dart.fieldType(dart.nullable(core.int)),
    [___HttpProfileData_responseStartTimestamp_isSet]: dart.fieldType(core.bool),
    [___HttpProfileData_responseEndTimestamp]: dart.fieldType(dart.nullable(core.int)),
    [___HttpProfileData_responseEndTimestamp_isSet]: dart.fieldType(core.bool),
    responseDetails: dart.fieldType(dart.nullable(core.Map$(core.String, dart.dynamic))),
    responseBody: dart.finalFieldType(core.List$(core.int)),
    responseError: dart.fieldType(dart.nullable(core.String)),
    [_lastUpdateTime]: dart.fieldType(core.int),
    [_timeline]: dart.fieldType(developer.TimelineTask),
    [___HttpProfileData__responseTimeline]: dart.fieldType(dart.nullable(developer.TimelineTask)),
    [___HttpProfileData__responseTimeline_isSet]: dart.fieldType(core.bool)
  }));
  dart.defineLazy(_http._HttpProfileData, {
    /*_http._HttpProfileData.isolateId*/get isolateId() {
      return dart.nullCheck(developer.Service.getIsolateID(isolate$.Isolate.current));
    }
  }, false);
  var __serviceId$ = dart.privateName(_http, "_ServiceObject.__serviceId");
  var __serviceId$0 = dart.privateName(_http, "__serviceId");
  var _serviceId$ = dart.privateName(_http, "_serviceId");
  var _serviceTypePath$ = dart.privateName(_http, "_serviceTypePath");
  var _servicePath$ = dart.privateName(_http, "_servicePath");
  var _serviceTypeName$ = dart.privateName(_http, "_serviceTypeName");
  var _serviceType$ = dart.privateName(_http, "_serviceType");
  _http._ServiceObject = class _ServiceObject extends core.Object {
    get [__serviceId$0]() {
      return this[__serviceId$];
    }
    set [__serviceId$0](value) {
      this[__serviceId$] = value;
    }
    get [_serviceId$]() {
      let t296;
      if (this[__serviceId$0] === 0) this[__serviceId$0] = (t296 = _http._nextServiceId, _http._nextServiceId = dart.notNull(t296) + 1, t296);
      return this[__serviceId$0];
    }
    get [_servicePath$]() {
      return dart.str(this[_serviceTypePath$]) + "/" + dart.str(this[_serviceId$]);
    }
    [_serviceType$](ref) {
      if (ref == null) dart.nullFailed(I[181], 306, 28, "ref");
      if (dart.test(ref)) return "@" + dart.str(this[_serviceTypeName$]);
      return this[_serviceTypeName$];
    }
  };
  (_http._ServiceObject.new = function() {
    this[__serviceId$] = 0;
    ;
  }).prototype = _http._ServiceObject.prototype;
  dart.addTypeTests(_http._ServiceObject);
  dart.addTypeCaches(_http._ServiceObject);
  dart.setMethodSignature(_http._ServiceObject, () => ({
    __proto__: dart.getMethods(_http._ServiceObject.__proto__),
    [_serviceType$]: dart.fnType(core.String, [core.bool])
  }));
  dart.setGetterSignature(_http._ServiceObject, () => ({
    __proto__: dart.getGetters(_http._ServiceObject.__proto__),
    [_serviceId$]: core.int,
    [_servicePath$]: core.String
  }));
  dart.setLibraryUri(_http._ServiceObject, I[177]);
  dart.setFieldSignature(_http._ServiceObject, () => ({
    __proto__: dart.getFields(_http._ServiceObject.__proto__),
    [__serviceId$0]: dart.fieldType(core.int)
  }));
  var _length$1 = dart.privateName(_http, "_length");
  var _buffer$1 = dart.privateName(_http, "_buffer");
  var _grow$0 = dart.privateName(_http, "_grow");
  _http._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
    add(bytes) {
      if (bytes == null) dart.nullFailed(I[181], 326, 22, "bytes");
      let bytesLength = bytes[$length];
      if (bytesLength === 0) return;
      let required = dart.notNull(this[_length$1]) + dart.notNull(bytesLength);
      if (dart.notNull(this[_buffer$1][$length]) < required) {
        this[_grow$0](required);
      }
      if (!(dart.notNull(this[_buffer$1][$length]) >= required)) dart.assertFailed(null, I[181], 333, 12, "_buffer.length >= required");
      if (typed_data.Uint8List.is(bytes)) {
        this[_buffer$1][$setRange](this[_length$1], required, bytes);
      } else {
        for (let i = 0; i < dart.notNull(bytesLength); i = i + 1) {
          this[_buffer$1][$_set](dart.notNull(this[_length$1]) + i, bytes[$_get](i));
        }
      }
      this[_length$1] = required;
    }
    addByte(byte) {
      if (byte == null) dart.nullFailed(I[181], 344, 20, "byte");
      if (this[_buffer$1][$length] == this[_length$1]) {
        this[_grow$0](this[_length$1]);
      }
      if (!(dart.notNull(this[_buffer$1][$length]) > dart.notNull(this[_length$1]))) dart.assertFailed(null, I[181], 350, 12, "_buffer.length > _length");
      this[_buffer$1][$_set](this[_length$1], byte);
      this[_length$1] = dart.notNull(this[_length$1]) + 1;
    }
    [_grow$0](required) {
      if (required == null) dart.nullFailed(I[181], 355, 18, "required");
      let newSize = dart.notNull(required) * 2;
      if (dart.notNull(newSize) < 1024) {
        newSize = 1024;
      } else {
        newSize = _http._CopyingBytesBuilder._pow2roundup(newSize);
      }
      let newBuffer = _native_typed_data.NativeUint8List.new(newSize);
      newBuffer[$setRange](0, this[_buffer$1][$length], this[_buffer$1]);
      this[_buffer$1] = newBuffer;
    }
    takeBytes() {
      if (this[_length$1] === 0) return _http._CopyingBytesBuilder._emptyList;
      let buffer = typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$1]);
      this.clear();
      return buffer;
    }
    toBytes() {
      if (this[_length$1] === 0) return _http._CopyingBytesBuilder._emptyList;
      return _native_typed_data.NativeUint8List.fromList(typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$1]));
    }
    get length() {
      return this[_length$1];
    }
    get isEmpty() {
      return this[_length$1] === 0;
    }
    get isNotEmpty() {
      return this[_length$1] !== 0;
    }
    clear() {
      this[_length$1] = 0;
      this[_buffer$1] = _http._CopyingBytesBuilder._emptyList;
    }
    static _pow2roundup(x) {
      if (x == null) dart.nullFailed(I[181], 394, 31, "x");
      if (!(dart.notNull(x) > 0)) dart.assertFailed(null, I[181], 395, 12, "x > 0");
      x = dart.notNull(x) - 1;
      x = (dart.notNull(x) | x[$rightShift](1)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](2)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](4)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](8)) >>> 0;
      x = (dart.notNull(x) | x[$rightShift](16)) >>> 0;
      return dart.notNull(x) + 1;
    }
  };
  (_http._CopyingBytesBuilder.new = function(initialCapacity = 0) {
    if (initialCapacity == null) dart.nullFailed(I[181], 321, 29, "initialCapacity");
    this[_length$1] = 0;
    this[_buffer$1] = dart.notNull(initialCapacity) <= 0 ? _http._CopyingBytesBuilder._emptyList : _native_typed_data.NativeUint8List.new(_http._CopyingBytesBuilder._pow2roundup(initialCapacity));
    ;
  }).prototype = _http._CopyingBytesBuilder.prototype;
  dart.addTypeTests(_http._CopyingBytesBuilder);
  dart.addTypeCaches(_http._CopyingBytesBuilder);
  _http._CopyingBytesBuilder[dart.implements] = () => [_internal.BytesBuilder];
  dart.setMethodSignature(_http._CopyingBytesBuilder, () => ({
    __proto__: dart.getMethods(_http._CopyingBytesBuilder.__proto__),
    add: dart.fnType(dart.void, [core.List$(core.int)]),
    addByte: dart.fnType(dart.void, [core.int]),
    [_grow$0]: dart.fnType(dart.void, [core.int]),
    takeBytes: dart.fnType(typed_data.Uint8List, []),
    toBytes: dart.fnType(typed_data.Uint8List, []),
    clear: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_http._CopyingBytesBuilder, () => ({
    __proto__: dart.getGetters(_http._CopyingBytesBuilder.__proto__),
    length: core.int,
    isEmpty: core.bool,
    isNotEmpty: core.bool
  }));
  dart.setLibraryUri(_http._CopyingBytesBuilder, I[177]);
  dart.setFieldSignature(_http._CopyingBytesBuilder, () => ({
    __proto__: dart.getFields(_http._CopyingBytesBuilder.__proto__),
    [_length$1]: dart.fieldType(core.int),
    [_buffer$1]: dart.fieldType(typed_data.Uint8List)
  }));
  dart.defineLazy(_http._CopyingBytesBuilder, {
    /*_http._CopyingBytesBuilder._INIT_SIZE*/get _INIT_SIZE() {
      return 1024;
    },
    /*_http._CopyingBytesBuilder._emptyList*/get _emptyList() {
      return _native_typed_data.NativeUint8List.new(0);
    }
  }, false);
  var _dataCompleter = dart.privateName(_http, "_dataCompleter");
  var _transferLength$ = dart.privateName(_http, "_transferLength");
  var _stream$1 = dart.privateName(_http, "_stream");
  _http._HttpIncoming = class _HttpIncoming extends async.Stream$(typed_data.Uint8List) {
    get transferLength() {
      return this[_transferLength$];
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      this.hasSubscriber = true;
      return this[_stream$1].handleError(dart.fn(error => {
        dart.throw(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this.uri}));
      }, T$0.dynamicToNever())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get dataDone() {
      return this[_dataCompleter].future;
    }
    close(closing) {
      if (closing == null) dart.nullFailed(I[181], 451, 19, "closing");
      this.fullBodyRead = true;
      this.hasSubscriber = true;
      this[_dataCompleter].complete(closing);
    }
  };
  (_http._HttpIncoming.new = function(headers, _transferLength, _stream) {
    if (headers == null) dart.nullFailed(I[181], 437, 22, "headers");
    if (_transferLength == null) dart.nullFailed(I[181], 437, 36, "_transferLength");
    if (_stream == null) dart.nullFailed(I[181], 437, 58, "_stream");
    this[_dataCompleter] = async.Completer.new();
    this.fullBodyRead = false;
    this.upgraded = false;
    this.statusCode = null;
    this.reasonPhrase = null;
    this.method = null;
    this.uri = null;
    this.hasSubscriber = false;
    this.headers = headers;
    this[_transferLength$] = _transferLength;
    this[_stream$1] = _stream;
    _http._HttpIncoming.__proto__.new.call(this);
    ;
  }).prototype = _http._HttpIncoming.prototype;
  dart.addTypeTests(_http._HttpIncoming);
  dart.addTypeCaches(_http._HttpIncoming);
  dart.setMethodSignature(_http._HttpIncoming, () => ({
    __proto__: dart.getMethods(_http._HttpIncoming.__proto__),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    close: dart.fnType(dart.void, [core.bool])
  }));
  dart.setGetterSignature(_http._HttpIncoming, () => ({
    __proto__: dart.getGetters(_http._HttpIncoming.__proto__),
    transferLength: core.int,
    dataDone: async.Future
  }));
  dart.setLibraryUri(_http._HttpIncoming, I[177]);
  dart.setFieldSignature(_http._HttpIncoming, () => ({
    __proto__: dart.getFields(_http._HttpIncoming.__proto__),
    [_transferLength$]: dart.finalFieldType(core.int),
    [_dataCompleter]: dart.finalFieldType(async.Completer),
    [_stream$1]: dart.fieldType(async.Stream$(typed_data.Uint8List)),
    fullBodyRead: dart.fieldType(core.bool),
    headers: dart.finalFieldType(_http._HttpHeaders),
    upgraded: dart.fieldType(core.bool),
    statusCode: dart.fieldType(dart.nullable(core.int)),
    reasonPhrase: dart.fieldType(dart.nullable(core.String)),
    method: dart.fieldType(dart.nullable(core.String)),
    uri: dart.fieldType(dart.nullable(core.Uri)),
    hasSubscriber: dart.fieldType(core.bool)
  }));
  var _cookies = dart.privateName(_http, "_cookies");
  var _incoming$ = dart.privateName(_http, "_incoming");
  _http._HttpInboundMessageListInt = class _HttpInboundMessageListInt extends async.Stream$(core.List$(core.int)) {
    get cookies() {
      let t296;
      t296 = this[_cookies];
      return t296 == null ? this[_cookies] = this.headers[_parseCookies]() : t296;
    }
    get headers() {
      return this[_incoming$].headers;
    }
    get protocolVersion() {
      return this.headers.protocolVersion;
    }
    get contentLength() {
      return this.headers.contentLength;
    }
    get persistentConnection() {
      return this.headers.persistentConnection;
    }
  };
  (_http._HttpInboundMessageListInt.new = function(_incoming) {
    if (_incoming == null) dart.nullFailed(I[181], 462, 35, "_incoming");
    this[_cookies] = null;
    this[_incoming$] = _incoming;
    _http._HttpInboundMessageListInt.__proto__.new.call(this);
    ;
  }).prototype = _http._HttpInboundMessageListInt.prototype;
  dart.addTypeTests(_http._HttpInboundMessageListInt);
  dart.addTypeCaches(_http._HttpInboundMessageListInt);
  dart.setGetterSignature(_http._HttpInboundMessageListInt, () => ({
    __proto__: dart.getGetters(_http._HttpInboundMessageListInt.__proto__),
    cookies: core.List$(_http.Cookie),
    headers: _http._HttpHeaders,
    protocolVersion: core.String,
    contentLength: core.int,
    persistentConnection: core.bool
  }));
  dart.setLibraryUri(_http._HttpInboundMessageListInt, I[177]);
  dart.setFieldSignature(_http._HttpInboundMessageListInt, () => ({
    __proto__: dart.getFields(_http._HttpInboundMessageListInt.__proto__),
    [_incoming$]: dart.finalFieldType(_http._HttpIncoming),
    [_cookies]: dart.fieldType(dart.nullable(core.List$(_http.Cookie)))
  }));
  _http._HttpInboundMessage = class _HttpInboundMessage extends async.Stream$(typed_data.Uint8List) {
    get cookies() {
      let t296;
      t296 = this[_cookies];
      return t296 == null ? this[_cookies] = this.headers[_parseCookies]() : t296;
    }
    get headers() {
      return this[_incoming$].headers;
    }
    get protocolVersion() {
      return this.headers.protocolVersion;
    }
    get contentLength() {
      return this.headers.contentLength;
    }
    get persistentConnection() {
      return this.headers.persistentConnection;
    }
  };
  (_http._HttpInboundMessage.new = function(_incoming) {
    if (_incoming == null) dart.nullFailed(I[181], 476, 28, "_incoming");
    this[_cookies] = null;
    this[_incoming$] = _incoming;
    _http._HttpInboundMessage.__proto__.new.call(this);
    ;
  }).prototype = _http._HttpInboundMessage.prototype;
  dart.addTypeTests(_http._HttpInboundMessage);
  dart.addTypeCaches(_http._HttpInboundMessage);
  dart.setGetterSignature(_http._HttpInboundMessage, () => ({
    __proto__: dart.getGetters(_http._HttpInboundMessage.__proto__),
    cookies: core.List$(_http.Cookie),
    headers: _http._HttpHeaders,
    protocolVersion: core.String,
    contentLength: core.int,
    persistentConnection: core.bool
  }));
  dart.setLibraryUri(_http._HttpInboundMessage, I[177]);
  dart.setFieldSignature(_http._HttpInboundMessage, () => ({
    __proto__: dart.getFields(_http._HttpInboundMessage.__proto__),
    [_incoming$]: dart.finalFieldType(_http._HttpIncoming),
    [_cookies]: dart.fieldType(dart.nullable(core.List$(_http.Cookie)))
  }));
  var _session = dart.privateName(_http, "_session");
  var _requestedUri = dart.privateName(_http, "_requestedUri");
  var _httpServer$ = dart.privateName(_http, "_httpServer");
  var _httpConnection$ = dart.privateName(_http, "_httpConnection");
  var _sessionManagerInstance = dart.privateName(_http, "_sessionManagerInstance");
  var _sessionManager$ = dart.privateName(_http, "_sessionManager");
  var _markSeen = dart.privateName(_http, "_markSeen");
  var _socket$0 = dart.privateName(_http, "_socket");
  var _destroyed = dart.privateName(_http, "_destroyed");
  _http._HttpRequest = class _HttpRequest extends _http._HttpInboundMessage {
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_incoming$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get uri() {
      return dart.nullCheck(this[_incoming$].uri);
    }
    get requestedUri() {
      let requestedUri = this[_requestedUri];
      if (requestedUri != null) return requestedUri;
      let proto = this.headers._get("x-forwarded-proto");
      let scheme = proto != null ? proto[$first] : io.SecureSocket.is(this[_httpConnection$][_socket$0]) ? "https" : "http";
      let hostList = this.headers._get("x-forwarded-host");
      let host = null;
      if (hostList != null) {
        host = hostList[$first];
      } else {
        hostList = this.headers._get("host");
        if (hostList != null) {
          host = hostList[$first];
        } else {
          host = dart.str(this[_httpServer$].address.host) + ":" + dart.str(this[_httpServer$].port);
        }
      }
      return this[_requestedUri] = core.Uri.parse(dart.str(scheme) + "://" + dart.str(host) + dart.str(this.uri));
    }
    get method() {
      return dart.nullCheck(this[_incoming$].method);
    }
    get session() {
      let session = this[_session];
      if (session != null && !dart.test(session[_destroyed])) {
        return session;
      }
      return this[_session] = this[_httpServer$][_sessionManager$].createSession();
    }
    get connectionInfo() {
      return this[_httpConnection$].connectionInfo;
    }
    get certificate() {
      let socket = this[_httpConnection$][_socket$0];
      if (io.SecureSocket.is(socket)) return socket.peerCertificate;
      return null;
    }
  };
  (_http._HttpRequest.new = function(response, _incoming, _httpServer, _httpConnection) {
    let t296;
    if (response == null) dart.nullFailed(I[181], 497, 21, "response");
    if (_incoming == null) dart.nullFailed(I[181], 497, 45, "_incoming");
    if (_httpServer == null) dart.nullFailed(I[181], 497, 61, "_httpServer");
    if (_httpConnection == null) dart.nullFailed(I[181], 498, 12, "_httpConnection");
    this[_session] = null;
    this[_requestedUri] = null;
    this.response = response;
    this[_httpServer$] = _httpServer;
    this[_httpConnection$] = _httpConnection;
    _http._HttpRequest.__proto__.new.call(this, _incoming);
    if (this.headers.protocolVersion === "1.1") {
      t296 = this.response.headers;
      (() => {
        t296.chunkedTransferEncoding = true;
        t296.persistentConnection = this.headers.persistentConnection;
        return t296;
      })();
    }
    if (this[_httpServer$][_sessionManagerInstance] != null) {
      let sessionIds = this.cookies[$where](dart.fn(cookie => {
        if (cookie == null) dart.nullFailed(I[181], 509, 19, "cookie");
        return cookie.name[$toUpperCase]() === "DARTSESSID";
      }, T$0.CookieTobool()))[$map](core.String, dart.fn(cookie => {
        if (cookie == null) dart.nullFailed(I[181], 510, 25, "cookie");
        return cookie.value;
      }, T$0.CookieToString()));
      for (let sessionId of sessionIds) {
        let session = this[_httpServer$][_sessionManager$].getSession(sessionId);
        this[_session] = session;
        if (session != null) {
          session[_markSeen]();
          break;
        }
      }
    }
  }).prototype = _http._HttpRequest.prototype;
  dart.addTypeTests(_http._HttpRequest);
  dart.addTypeCaches(_http._HttpRequest);
  _http._HttpRequest[dart.implements] = () => [_http.HttpRequest];
  dart.setMethodSignature(_http._HttpRequest, () => ({
    __proto__: dart.getMethods(_http._HttpRequest.__proto__),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
  }));
  dart.setGetterSignature(_http._HttpRequest, () => ({
    __proto__: dart.getGetters(_http._HttpRequest.__proto__),
    uri: core.Uri,
    requestedUri: core.Uri,
    method: core.String,
    session: _http.HttpSession,
    connectionInfo: dart.nullable(_http.HttpConnectionInfo),
    certificate: dart.nullable(io.X509Certificate)
  }));
  dart.setLibraryUri(_http._HttpRequest, I[177]);
  dart.setFieldSignature(_http._HttpRequest, () => ({
    __proto__: dart.getFields(_http._HttpRequest.__proto__),
    response: dart.finalFieldType(_http.HttpResponse),
    [_httpServer$]: dart.finalFieldType(_http._HttpServer),
    [_httpConnection$]: dart.finalFieldType(_http._HttpConnection),
    [_session]: dart.fieldType(dart.nullable(_http._HttpSession)),
    [_requestedUri]: dart.fieldType(dart.nullable(core.Uri))
  }));
  var _httpRequest$ = dart.privateName(_http, "_httpRequest");
  var _httpClient$ = dart.privateName(_http, "_httpClient");
  var _profileData$ = dart.privateName(_http, "_profileData");
  var _responseRedirects = dart.privateName(_http, "_responseRedirects");
  var _httpClientConnection$ = dart.privateName(_http, "_httpClientConnection");
  var _openUrlFromRequest = dart.privateName(_http, "_openUrlFromRequest");
  var _connectionClosed = dart.privateName(_http, "_connectionClosed");
  var _shouldAuthenticateProxy = dart.privateName(_http, "_shouldAuthenticateProxy");
  var _shouldAuthenticate = dart.privateName(_http, "_shouldAuthenticate");
  var _proxy$ = dart.privateName(_http, "_proxy");
  var _findProxyCredentials = dart.privateName(_http, "_findProxyCredentials");
  var _findCredentials = dart.privateName(_http, "_findCredentials");
  var _removeProxyCredentials = dart.privateName(_http, "_removeProxyCredentials");
  var _removeCredentials = dart.privateName(_http, "_removeCredentials");
  var _authenticateProxy = dart.privateName(_http, "_authenticateProxy");
  var _authenticate = dart.privateName(_http, "_authenticate");
  _http._HttpClientResponse = class _HttpClientResponse extends _http._HttpInboundMessageListInt {
    get redirects() {
      return this[_httpRequest$][_responseRedirects];
    }
    static _getCompressionState(httpClient, headers) {
      if (httpClient == null) dart.nullFailed(I[181], 598, 19, "httpClient");
      if (headers == null) dart.nullFailed(I[181], 598, 44, "headers");
      if (headers.value("content-encoding") === "gzip") {
        return dart.test(httpClient.autoUncompress) ? _http.HttpClientResponseCompressionState.decompressed : _http.HttpClientResponseCompressionState.compressed;
      } else {
        return _http.HttpClientResponseCompressionState.notCompressed;
      }
    }
    get statusCode() {
      return dart.nullCheck(this[_incoming$].statusCode);
    }
    get reasonPhrase() {
      return dart.nullCheck(this[_incoming$].reasonPhrase);
    }
    get certificate() {
      let socket = this[_httpRequest$][_httpClientConnection$][_socket$0];
      if (io.SecureSocket.is(socket)) return socket.peerCertificate;
      return null;
    }
    get cookies() {
      let cookies = this[_cookies];
      if (cookies != null) return cookies;
      cookies = T$0.JSArrayOfCookie().of([]);
      let values = this.headers._get("set-cookie");
      if (values != null) {
        for (let value of values) {
          cookies[$add](_http.Cookie.fromSetCookieValue(value));
        }
      }
      this[_cookies] = cookies;
      return cookies;
    }
    get isRedirect() {
      if (this[_httpRequest$].method === "GET" || this[_httpRequest$].method === "HEAD") {
        return this.statusCode === 301 || this.statusCode === 308 || this.statusCode === 302 || this.statusCode === 303 || this.statusCode === 307;
      } else if (this[_httpRequest$].method === "POST") {
        return this.statusCode === 303;
      }
      return false;
    }
    redirect(method = null, url = null, followLoops = null) {
      if (method == null) {
        if (this.statusCode === 303 && this[_httpRequest$].method === "POST") {
          method = "GET";
        } else {
          method = this[_httpRequest$].method;
        }
      }
      if (url == null) {
        let location = this.headers.value("location");
        if (location == null) {
          dart.throw(new core.StateError.new("Response has no Location header for redirect"));
        }
        url = core.Uri.parse(location);
      }
      if (followLoops !== true) {
        for (let redirect of this.redirects) {
          if (dart.equals(redirect.location, url)) {
            return T$0.FutureOfHttpClientResponse().error(new _http.RedirectException.new("Redirect loop detected", this.redirects));
          }
        }
      }
      return this[_httpClient$][_openUrlFromRequest](method, url, this[_httpRequest$]).then(_http.HttpClientResponse, dart.fn(request => {
        let t296;
        if (request == null) dart.nullFailed(I[181], 671, 16, "request");
        t296 = request[_responseRedirects];
        (() => {
          t296[$addAll](this.redirects);
          t296[$add](new _http._RedirectInfo.new(this.statusCode, dart.nullCheck(method), dart.nullCheck(url)));
          return t296;
        })();
        return request.close();
      }, T$0._HttpClientRequestToFutureOfHttpClientResponse()));
    }
    listen(onData, opts) {
      let t296;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      if (dart.test(this[_incoming$].upgraded)) {
        t296 = this[_profileData$];
        t296 == null ? null : t296.finishResponseWithError("Connection was upgraded");
        this[_httpRequest$][_httpClientConnection$].destroy();
        return new (T$0._EmptyStreamOfUint8List()).new().listen(null, {onDone: onDone});
      }
      let stream = this[_incoming$];
      if (this.compressionState == _http.HttpClientResponseCompressionState.decompressed) {
        stream = stream.cast(T$0.ListOfint()).transform(T$0.ListOfint(), io.gzip.decoder).transform(typed_data.Uint8List, C[466] || CT.C466);
      }
      if (this[_profileData$] != null) {
        stream = stream.map(typed_data.Uint8List, dart.fn(data => {
          let t296;
          if (data == null) dart.nullFailed(I[181], 698, 28, "data");
          t296 = this[_profileData$];
          t296 == null ? null : t296.appendResponseData(data);
          return data;
        }, T$0.Uint8ListToUint8List()));
      }
      return stream.listen(onData, {onError: dart.fn((e, st) => {
          let t296;
          t296 = this[_profileData$];
          t296 == null ? null : t296.finishResponseWithError(dart.toString(e));
          if (onError == null) {
            return;
          }
          if (T$.ObjectTovoid().is(onError)) {
            onError(core.Object.as(e));
          } else {
            if (!T$.ObjectAndStackTraceTovoid().is(onError)) dart.assertFailed(null, I[181], 711, 16, "onError is void Function(Object, StackTrace)");
            dart.dcall(onError, [e, st]);
          }
        }, T$.dynamicAnddynamicToNull()), onDone: dart.fn(() => {
          let t296;
          t296 = this[_profileData$];
          t296 == null ? null : t296.finishResponse();
          if (onDone != null) {
            onDone();
          }
        }, T$.VoidTovoid()), cancelOnError: cancelOnError});
    }
    detachSocket() {
      let t296;
      t296 = this[_profileData$];
      t296 == null ? null : t296.finishResponseWithError("Socket has been detached");
      this[_httpClient$][_connectionClosed](this[_httpRequest$][_httpClientConnection$]);
      return this[_httpRequest$][_httpClientConnection$].detachSocket();
    }
    get connectionInfo() {
      return this[_httpRequest$].connectionInfo;
    }
    get [_shouldAuthenticateProxy]() {
      let challenge = this.headers._get("proxy-authenticate");
      return this.statusCode === 407 && challenge != null && challenge[$length] === 1;
    }
    get [_shouldAuthenticate]() {
      let challenge = this.headers._get("www-authenticate");
      return this.statusCode === 401 && challenge != null && challenge[$length] === 1;
    }
    [_authenticate](proxyAuth) {
      let t296, t296$;
      if (proxyAuth == null) dart.nullFailed(I[181], 746, 49, "proxyAuth");
      t296 = this[_httpRequest$][_profileData$];
      t296 == null ? null : t296.requestEvent("Authentication");
      const retry = () => {
        let t296;
        t296 = this[_httpRequest$][_profileData$];
        t296 == null ? null : t296.requestEvent("Retrying");
        return this.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => this[_httpClient$][_openUrlFromRequest](this[_httpRequest$].method, this[_httpRequest$].uri, this[_httpRequest$]).then(_http.HttpClientResponse, dart.fn(request => {
          if (request == null) dart.nullFailed(I[181], 755, 20, "request");
          return request.close();
        }, T$0._HttpClientRequestToFutureOfHttpClientResponse())), T$0.dynamicToFutureOfHttpClientResponse()));
      };
      dart.fn(retry, T$0.VoidToFutureOfHttpClientResponse());
      const authChallenge = () => {
        return dart.test(proxyAuth) ? this.headers._get("proxy-authenticate") : this.headers._get("www-authenticate");
      };
      dart.fn(authChallenge, T$0.VoidToListNOfString());
      const findCredentials = scheme => {
        if (scheme == null) dart.nullFailed(I[181], 765, 57, "scheme");
        return dart.test(proxyAuth) ? this[_httpClient$][_findProxyCredentials](this[_httpRequest$][_proxy$], scheme) : this[_httpClient$][_findCredentials](this[_httpRequest$].uri, scheme);
      };
      dart.fn(findCredentials, T$0._AuthenticationSchemeTo_CredentialsN());
      const removeCredentials = cr => {
        if (cr == null) dart.nullFailed(I[181], 771, 41, "cr");
        if (dart.test(proxyAuth)) {
          this[_httpClient$][_removeProxyCredentials](cr);
        } else {
          this[_httpClient$][_removeCredentials](cr);
        }
      };
      dart.fn(removeCredentials, T$0._CredentialsTovoid());
      const requestAuthentication = (scheme, realm) => {
        if (scheme == null) dart.nullFailed(I[181], 780, 31, "scheme");
        if (dart.test(proxyAuth)) {
          let authenticateProxy = this[_httpClient$][_authenticateProxy];
          if (authenticateProxy == null) {
            return T$.FutureOfbool().value(false);
          }
          let proxy = this[_httpRequest$][_proxy$];
          return T$.FutureOfbool().as(dart.dcall(authenticateProxy, [proxy.host, proxy.port, dart.toString(scheme), realm]));
        } else {
          let authenticate = this[_httpClient$][_authenticate];
          if (authenticate == null) {
            return T$.FutureOfbool().value(false);
          }
          return T$.FutureOfbool().as(dart.dcall(authenticate, [this[_httpRequest$].uri, dart.toString(scheme), realm]));
        }
      };
      dart.fn(requestAuthentication, T$0._AuthenticationSchemeAndStringNToFutureOfbool());
      let challenge = dart.nullCheck(authChallenge());
      if (!(challenge[$length] === 1)) dart.assertFailed(null, I[181], 799, 12, "challenge.length == 1");
      let header = _http._HeaderValue.parse(challenge[$_get](0), {parameterSeparator: ","});
      let scheme = _http._AuthenticationScheme.fromString(header.value);
      let realm = header.parameters[$_get]("realm");
      let cr = findCredentials(scheme);
      if (cr != null) {
        if (dart.equals(cr.scheme, _http._AuthenticationScheme.BASIC) && !dart.test(cr.used)) {
          return retry();
        }
        if (dart.equals(cr.scheme, _http._AuthenticationScheme.DIGEST)) {
          let algorithm = header.parameters[$_get]("algorithm");
          if (algorithm == null || algorithm[$toLowerCase]() === "md5") {
            let nonce = cr.nonce;
            if (nonce == null || nonce == header.parameters[$_get]("nonce")) {
              if (nonce == null) {
                t296$ = cr;
                (() => {
                  t296$.nonce = header.parameters[$_get]("nonce");
                  t296$.algorithm = "MD5";
                  t296$.qop = header.parameters[$_get]("qop");
                  t296$.nonceCount = 0;
                  return t296$;
                })();
              }
              return retry();
            } else {
              let staleHeader = header.parameters[$_get]("stale");
              if (staleHeader != null && staleHeader[$toLowerCase]() === "true") {
                cr.nonce = header.parameters[$_get]("nonce");
                return retry();
              }
            }
          }
        }
      }
      if (cr != null) {
        removeCredentials(cr);
        cr = null;
      }
      return requestAuthentication(scheme, realm).then(_http.HttpClientResponse, dart.fn(credsAvailable => {
        if (credsAvailable == null) dart.nullFailed(I[181], 854, 55, "credsAvailable");
        if (dart.test(credsAvailable)) {
          cr = this[_httpClient$][_findCredentials](this[_httpRequest$].uri, scheme);
          return retry();
        } else {
          return this;
        }
      }, T$0.boolToFutureOrOfHttpClientResponse()));
    }
  };
  (_http._HttpClientResponse.new = function(_incoming, _httpRequest, _httpClient, _profileData) {
    if (_incoming == null) dart.nullFailed(I[181], 589, 37, "_incoming");
    if (_httpRequest == null) dart.nullFailed(I[181], 589, 53, "_httpRequest");
    if (_httpClient == null) dart.nullFailed(I[181], 590, 12, "_httpClient");
    this[_httpRequest$] = _httpRequest;
    this[_httpClient$] = _httpClient;
    this[_profileData$] = _profileData;
    this.compressionState = _http._HttpClientResponse._getCompressionState(_httpClient, _incoming.headers);
    _http._HttpClientResponse.__proto__.new.call(this, _incoming);
    _incoming.uri = this[_httpRequest$].uri;
  }).prototype = _http._HttpClientResponse.prototype;
  dart.addTypeTests(_http._HttpClientResponse);
  dart.addTypeCaches(_http._HttpClientResponse);
  _http._HttpClientResponse[dart.implements] = () => [_http.HttpClientResponse];
  dart.setMethodSignature(_http._HttpClientResponse, () => ({
    __proto__: dart.getMethods(_http._HttpClientResponse.__proto__),
    redirect: dart.fnType(async.Future$(_http.HttpClientResponse), [], [dart.nullable(core.String), dart.nullable(core.Uri), dart.nullable(core.bool)]),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    detachSocket: dart.fnType(async.Future$(io.Socket), []),
    [_authenticate]: dart.fnType(async.Future$(_http.HttpClientResponse), [core.bool])
  }));
  dart.setGetterSignature(_http._HttpClientResponse, () => ({
    __proto__: dart.getGetters(_http._HttpClientResponse.__proto__),
    redirects: core.List$(_http.RedirectInfo),
    statusCode: core.int,
    reasonPhrase: core.String,
    certificate: dart.nullable(io.X509Certificate),
    isRedirect: core.bool,
    connectionInfo: dart.nullable(_http.HttpConnectionInfo),
    [_shouldAuthenticateProxy]: core.bool,
    [_shouldAuthenticate]: core.bool
  }));
  dart.setLibraryUri(_http._HttpClientResponse, I[177]);
  dart.setFieldSignature(_http._HttpClientResponse, () => ({
    __proto__: dart.getFields(_http._HttpClientResponse.__proto__),
    [_httpClient$]: dart.finalFieldType(_http._HttpClient),
    [_httpRequest$]: dart.finalFieldType(_http._HttpClientRequest),
    compressionState: dart.finalFieldType(_http.HttpClientResponseCompressionState),
    [_profileData$]: dart.finalFieldType(dart.nullable(_http._HttpProfileData))
  }));
  _http._ToUint8List = class _ToUint8List extends convert.Converter$(core.List$(core.int), typed_data.Uint8List) {
    convert(input) {
      T$0.ListOfint().as(input);
      if (input == null) dart.nullFailed(I[181], 869, 31, "input");
      return _native_typed_data.NativeUint8List.fromList(input);
    }
    startChunkedConversion(sink) {
      T$0.SinkOfUint8List().as(sink);
      if (sink == null) dart.nullFailed(I[181], 871, 58, "sink");
      return new _http._Uint8ListConversionSink.new(sink);
    }
  };
  (_http._ToUint8List.new = function() {
    _http._ToUint8List.__proto__.new.call(this);
    ;
  }).prototype = _http._ToUint8List.prototype;
  dart.addTypeTests(_http._ToUint8List);
  dart.addTypeCaches(_http._ToUint8List);
  dart.setMethodSignature(_http._ToUint8List, () => ({
    __proto__: dart.getMethods(_http._ToUint8List.__proto__),
    convert: dart.fnType(typed_data.Uint8List, [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(_http._ToUint8List, I[177]);
  var _target$1 = dart.privateName(_http, "_Uint8ListConversionSink._target");
  var _target$2 = dart.privateName(_http, "_target");
  _http._Uint8ListConversionSink = class _Uint8ListConversionSink extends core.Object {
    get [_target$2]() {
      return this[_target$1];
    }
    set [_target$2](value) {
      super[_target$2] = value;
    }
    add(data) {
      T$0.ListOfint().as(data);
      if (data == null) dart.nullFailed(I[181], 881, 22, "data");
      this[_target$2].add(_native_typed_data.NativeUint8List.fromList(data));
    }
    close() {
      this[_target$2].close();
    }
  };
  (_http._Uint8ListConversionSink.new = function(_target) {
    if (_target == null) dart.nullFailed(I[181], 877, 39, "_target");
    this[_target$1] = _target;
    ;
  }).prototype = _http._Uint8ListConversionSink.prototype;
  dart.addTypeTests(_http._Uint8ListConversionSink);
  dart.addTypeCaches(_http._Uint8ListConversionSink);
  _http._Uint8ListConversionSink[dart.implements] = () => [core.Sink$(core.List$(core.int))];
  dart.setMethodSignature(_http._Uint8ListConversionSink, () => ({
    __proto__: dart.getMethods(_http._Uint8ListConversionSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_http._Uint8ListConversionSink, I[177]);
  dart.setFieldSignature(_http._Uint8ListConversionSink, () => ({
    __proto__: dart.getFields(_http._Uint8ListConversionSink.__proto__),
    [_target$2]: dart.finalFieldType(core.Sink$(typed_data.Uint8List))
  }));
  var _doneCompleter$ = dart.privateName(_http, "_doneCompleter");
  var _controllerInstance$ = dart.privateName(_http, "_controllerInstance");
  var _controllerCompleter$ = dart.privateName(_http, "_controllerCompleter");
  var _isClosed$0 = dart.privateName(_http, "_isClosed");
  var _isBound$ = dart.privateName(_http, "_isBound");
  var _hasError$0 = dart.privateName(_http, "_hasError");
  var _controller$0 = dart.privateName(_http, "_controller");
  var _closeTarget$ = dart.privateName(_http, "_closeTarget");
  var _completeDoneValue$ = dart.privateName(_http, "_completeDoneValue");
  var _completeDoneError$ = dart.privateName(_http, "_completeDoneError");
  const _is__StreamSinkImpl_default$ = Symbol('_is__StreamSinkImpl_default');
  _http._StreamSinkImpl$ = dart.generic(T => {
    var StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
    var StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
    class _StreamSinkImpl extends core.Object {
      add(data) {
        T.as(data);
        if (dart.test(this[_isClosed$0])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        this[_controller$0].add(data);
      }
      addError(error, stackTrace = null) {
        if (error == null) dart.nullFailed(I[181], 908, 24, "error");
        if (dart.test(this[_isClosed$0])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        this[_controller$0].addError(error, stackTrace);
      }
      addStream(stream) {
        StreamOfT().as(stream);
        if (stream == null) dart.nullFailed(I[181], 915, 30, "stream");
        if (dart.test(this[_isBound$])) {
          dart.throw(new core.StateError.new("StreamSink is already bound to a stream"));
        }
        this[_isBound$] = true;
        if (dart.test(this[_hasError$0])) return this.done;
        const targetAddStream = () => {
          return this[_target$2].addStream(stream).whenComplete(dart.fn(() => {
            this[_isBound$] = false;
          }, T$.VoidToNull()));
        };
        dart.fn(targetAddStream, T$0.VoidToFuture());
        let controller = this[_controllerInstance$];
        if (controller == null) return targetAddStream();
        let future = dart.nullCheck(this[_controllerCompleter$]).future;
        controller.close();
        return future.then(dart.dynamic, dart.fn(_ => targetAddStream(), T$.dynamicToFuture()));
      }
      flush() {
        if (dart.test(this[_isBound$])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        let controller = this[_controllerInstance$];
        if (controller == null) return async.Future.value(this);
        this[_isBound$] = true;
        let future = dart.nullCheck(this[_controllerCompleter$]).future;
        controller.close();
        return future.whenComplete(dart.fn(() => {
          this[_isBound$] = false;
        }, T$.VoidToNull()));
      }
      close() {
        if (dart.test(this[_isBound$])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        if (!dart.test(this[_isClosed$0])) {
          this[_isClosed$0] = true;
          let controller = this[_controllerInstance$];
          if (controller != null) {
            controller.close();
          } else {
            this[_closeTarget$]();
          }
        }
        return this.done;
      }
      [_closeTarget$]() {
        this[_target$2].close().then(dart.void, dart.bind(this, _completeDoneValue$), {onError: dart.bind(this, _completeDoneError$)});
      }
      get done() {
        return this[_doneCompleter$].future;
      }
      [_completeDoneValue$](value) {
        if (!dart.test(this[_doneCompleter$].isCompleted)) {
          this[_doneCompleter$].complete(value);
        }
      }
      [_completeDoneError$](error, stackTrace) {
        if (error == null) dart.nullFailed(I[181], 979, 34, "error");
        if (stackTrace == null) dart.nullFailed(I[181], 979, 52, "stackTrace");
        if (!dart.test(this[_doneCompleter$].isCompleted)) {
          this[_hasError$0] = true;
          this[_doneCompleter$].completeError(error, stackTrace);
        }
      }
      get [_controller$0]() {
        if (dart.test(this[_isBound$])) {
          dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
        }
        if (dart.test(this[_isClosed$0])) {
          dart.throw(new core.StateError.new("StreamSink is closed"));
        }
        if (this[_controllerInstance$] == null) {
          this[_controllerInstance$] = StreamControllerOfT().new({sync: true});
          this[_controllerCompleter$] = async.Completer.new();
          this[_target$2].addStream(this[_controller$0].stream).then(core.Null, dart.fn(_ => {
            if (dart.test(this[_isBound$])) {
              dart.nullCheck(this[_controllerCompleter$]).complete(this);
              this[_controllerCompleter$] = null;
              this[_controllerInstance$] = null;
            } else {
              this[_closeTarget$]();
            }
          }, T$.dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
              if (error == null) dart.nullFailed(I[181], 1006, 27, "error");
              if (stackTrace == null) dart.nullFailed(I[181], 1006, 45, "stackTrace");
              if (dart.test(this[_isBound$])) {
                dart.nullCheck(this[_controllerCompleter$]).completeError(error, stackTrace);
                this[_controllerCompleter$] = null;
                this[_controllerInstance$] = null;
              } else {
                this[_completeDoneError$](error, stackTrace);
              }
            }, T$.ObjectAndStackTraceToNull())});
        }
        return dart.nullCheck(this[_controllerInstance$]);
      }
    }
    (_StreamSinkImpl.new = function(_target) {
      if (_target == null) dart.nullFailed(I[181], 899, 24, "_target");
      this[_doneCompleter$] = T$0.CompleterOfvoid().new();
      this[_controllerInstance$] = null;
      this[_controllerCompleter$] = null;
      this[_isClosed$0] = false;
      this[_isBound$] = false;
      this[_hasError$0] = false;
      this[_target$2] = _target;
      ;
    }).prototype = _StreamSinkImpl.prototype;
    dart.addTypeTests(_StreamSinkImpl);
    _StreamSinkImpl.prototype[_is__StreamSinkImpl_default$] = true;
    dart.addTypeCaches(_StreamSinkImpl);
    _StreamSinkImpl[dart.implements] = () => [async.StreamSink$(T)];
    dart.setMethodSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getMethods(_StreamSinkImpl.__proto__),
      add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
      addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
      addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
      flush: dart.fnType(async.Future, []),
      close: dart.fnType(async.Future, []),
      [_closeTarget$]: dart.fnType(dart.void, []),
      [_completeDoneValue$]: dart.fnType(dart.void, [dart.dynamic]),
      [_completeDoneError$]: dart.fnType(dart.void, [core.Object, core.StackTrace])
    }));
    dart.setGetterSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getGetters(_StreamSinkImpl.__proto__),
      done: async.Future,
      [_controller$0]: async.StreamController$(T)
    }));
    dart.setLibraryUri(_StreamSinkImpl, I[177]);
    dart.setFieldSignature(_StreamSinkImpl, () => ({
      __proto__: dart.getFields(_StreamSinkImpl.__proto__),
      [_target$2]: dart.finalFieldType(async.StreamConsumer$(T)),
      [_doneCompleter$]: dart.finalFieldType(async.Completer$(dart.void)),
      [_controllerInstance$]: dart.fieldType(dart.nullable(async.StreamController$(T))),
      [_controllerCompleter$]: dart.fieldType(dart.nullable(async.Completer)),
      [_isClosed$0]: dart.fieldType(core.bool),
      [_isBound$]: dart.fieldType(core.bool),
      [_hasError$0]: dart.fieldType(core.bool)
    }));
    return _StreamSinkImpl;
  });
  _http._StreamSinkImpl = _http._StreamSinkImpl$();
  dart.addTypeTests(_http._StreamSinkImpl, _is__StreamSinkImpl_default$);
  var _profileData$0 = dart.privateName(_http, "_IOSinkImpl._profileData");
  var _encodingMutable$ = dart.privateName(_http, "_encodingMutable");
  var _encoding$0 = dart.privateName(_http, "_encoding");
  var __IOSink_encoding_isSet$ = dart.privateName(_http, "_#IOSink#encoding#isSet");
  var __IOSink_encoding$ = dart.privateName(_http, "_#IOSink#encoding");
  var __IOSink_encoding_isSet_ = dart.privateName(_http, "_#IOSink#encoding#isSet=");
  var __IOSink_encoding_ = dart.privateName(_http, "_#IOSink#encoding=");
  _http._IOSinkImpl = class _IOSinkImpl extends _http._StreamSinkImpl$(core.List$(core.int)) {
    get [_profileData$]() {
      return this[_profileData$0];
    }
    set [_profileData$](value) {
      super[_profileData$] = value;
    }
    get encoding() {
      return this[_encoding$0];
    }
    set encoding(value) {
      if (value == null) dart.nullFailed(I[181], 1034, 30, "value");
      if (!dart.test(this[_encodingMutable$])) {
        dart.throw(new core.StateError.new("IOSink encoding is not mutable"));
      }
      this[_encoding$0] = value;
    }
    write(obj) {
      let t296;
      let string = dart.str(obj);
      if (string[$isEmpty]) return;
      t296 = this[_profileData$];
      t296 == null ? null : t296.appendRequestData(_native_typed_data.NativeUint8List.fromList(convert.utf8.encode(string)));
      super.add(this[_encoding$0].encode(string));
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[181], 1052, 26, "objects");
      if (separator == null) dart.nullFailed(I[181], 1052, 43, "separator");
      let iterator = objects[$iterator];
      if (!dart.test(iterator.moveNext())) return;
      if (separator[$isEmpty]) {
        do {
          this.write(iterator.current);
        } while (dart.test(iterator.moveNext()));
      } else {
        this.write(iterator.current);
        while (dart.test(iterator.moveNext())) {
          this.write(separator);
          this.write(iterator.current);
        }
      }
    }
    writeln(object = "") {
      this.write(object);
      this.write("\n");
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[181], 1073, 26, "charCode");
      this.write(core.String.fromCharCode(charCode));
    }
    get [__IOSink_encoding_isSet]() {
      return this[$noSuchMethod](new core._Invocation.getter(C[467] || CT.C467));
    }
    get [__IOSink_encoding]() {
      return T$0.EncodingN().as(this[$noSuchMethod](new core._Invocation.getter(C[468] || CT.C468)));
    }
    set [__IOSink_encoding_isSet](value) {
      return this[$noSuchMethod](new core._Invocation.setter(C[469] || CT.C469, value));
    }
    set [__IOSink_encoding](value) {
      return this[$noSuchMethod](new core._Invocation.setter(C[470] || CT.C470, value));
    }
  };
  (_http._IOSinkImpl.new = function(target, _encoding, _profileData) {
    if (target == null) dart.nullFailed(I[181], 1029, 33, "target");
    if (_encoding == null) dart.nullFailed(I[181], 1029, 46, "_encoding");
    this[_encodingMutable$] = true;
    this[_encoding$0] = _encoding;
    this[_profileData$0] = _profileData;
    _http._IOSinkImpl.__proto__.new.call(this, target);
    ;
  }).prototype = _http._IOSinkImpl.prototype;
  dart.addTypeTests(_http._IOSinkImpl);
  dart.addTypeCaches(_http._IOSinkImpl);
  _http._IOSinkImpl[dart.implements] = () => [io.IOSink];
  dart.setMethodSignature(_http._IOSinkImpl, () => ({
    __proto__: dart.getMethods(_http._IOSinkImpl.__proto__),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeCharCode: dart.fnType(dart.void, [core.int])
  }));
  dart.setGetterSignature(_http._IOSinkImpl, () => ({
    __proto__: dart.getGetters(_http._IOSinkImpl.__proto__),
    encoding: convert.Encoding,
    [__IOSink_encoding_isSet]: dart.dynamic,
    [__IOSink_encoding]: dart.nullable(convert.Encoding)
  }));
  dart.setSetterSignature(_http._IOSinkImpl, () => ({
    __proto__: dart.getSetters(_http._IOSinkImpl.__proto__),
    encoding: convert.Encoding,
    [__IOSink_encoding_isSet]: dart.dynamic,
    [__IOSink_encoding]: dart.nullable(convert.Encoding)
  }));
  dart.setLibraryUri(_http._IOSinkImpl, I[177]);
  dart.setFieldSignature(_http._IOSinkImpl, () => ({
    __proto__: dart.getFields(_http._IOSinkImpl.__proto__),
    [_encoding$0]: dart.fieldType(convert.Encoding),
    [_encodingMutable$]: dart.fieldType(core.bool),
    [_profileData$]: dart.finalFieldType(dart.nullable(_http._HttpProfileData))
  }));
  var _encodingSet = dart.privateName(_http, "_encodingSet");
  var _bufferOutput = dart.privateName(_http, "_bufferOutput");
  var _uri = dart.privateName(_http, "_uri");
  var _outgoing = dart.privateName(_http, "_outgoing");
  var _isConnectionClosed = dart.privateName(_http, "_isConnectionClosed");
  const _is__HttpOutboundMessage_default = Symbol('_is__HttpOutboundMessage_default');
  _http._HttpOutboundMessage$ = dart.generic(T => {
    class _HttpOutboundMessage extends _http._IOSinkImpl {
      get contentLength() {
        return this.headers.contentLength;
      }
      set contentLength(contentLength) {
        if (contentLength == null) dart.nullFailed(I[181], 1106, 30, "contentLength");
        this.headers.contentLength = contentLength;
      }
      get persistentConnection() {
        return this.headers.persistentConnection;
      }
      set persistentConnection(p) {
        if (p == null) dart.nullFailed(I[181], 1111, 38, "p");
        this.headers.persistentConnection = p;
      }
      get bufferOutput() {
        return this[_bufferOutput];
      }
      set bufferOutput(bufferOutput) {
        if (bufferOutput == null) dart.nullFailed(I[181], 1116, 30, "bufferOutput");
        if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
        this[_bufferOutput] = bufferOutput;
      }
      get encoding() {
        let t296;
        if (dart.test(this[_encodingSet]) && dart.test(this[_outgoing].headersWritten)) {
          return this[_encoding$0];
        }
        let charset = null;
        let contentType = this.headers.contentType;
        if (contentType != null && contentType.charset != null) {
          charset = dart.nullCheck(contentType.charset);
        } else {
          charset = "iso-8859-1";
        }
        t296 = convert.Encoding.getByName(charset);
        return t296 == null ? convert.latin1 : t296;
      }
      set encoding(value) {
        super.encoding = value;
      }
      add(data) {
        let t296;
        T$0.ListOfint().as(data);
        if (data == null) dart.nullFailed(I[181], 1135, 22, "data");
        if (data[$length] === 0) return;
        t296 = this[_profileData$];
        t296 == null ? null : t296.appendRequestData(_native_typed_data.NativeUint8List.fromList(data));
        super.add(data);
      }
      addStream(s) {
        T$0.StreamOfListOfint().as(s);
        if (s == null) dart.nullFailed(I[181], 1141, 38, "s");
        if (this[_profileData$] == null) {
          return super.addStream(s);
        }
        return super.addStream(s.map(T$0.ListOfint(), dart.fn(data => {
          let t296;
          if (data == null) dart.nullFailed(I[181], 1145, 35, "data");
          t296 = this[_profileData$];
          t296 == null ? null : t296.appendRequestData(_native_typed_data.NativeUint8List.fromList(data));
          return data;
        }, T$0.ListOfintToListOfint())));
      }
      write(obj) {
        if (!dart.test(this[_encodingSet])) {
          this[_encoding$0] = this.encoding;
          this[_encodingSet] = true;
        }
        super.write(obj);
      }
      get [_isConnectionClosed]() {
        return false;
      }
    }
    (_HttpOutboundMessage.new = function(uri, protocolVersion, outgoing, profileData, opts) {
      if (uri == null) dart.nullFailed(I[181], 1090, 28, "uri");
      if (protocolVersion == null) dart.nullFailed(I[181], 1090, 40, "protocolVersion");
      if (outgoing == null) dart.nullFailed(I[181], 1090, 71, "outgoing");
      let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
      this[_encodingSet] = false;
      this[_bufferOutput] = true;
      this[_uri] = uri;
      this.headers = new _http._HttpHeaders.new(protocolVersion, {defaultPortForScheme: uri.scheme === "https" ? 443 : 80, initialHeaders: initialHeaders});
      this[_outgoing] = outgoing;
      _HttpOutboundMessage.__proto__.new.call(this, outgoing, convert.latin1, profileData);
      this[_outgoing].outbound = this;
      this[_encodingMutable$] = false;
    }).prototype = _HttpOutboundMessage.prototype;
    dart.addTypeTests(_HttpOutboundMessage);
    _HttpOutboundMessage.prototype[_is__HttpOutboundMessage_default] = true;
    dart.addTypeCaches(_HttpOutboundMessage);
    dart.setGetterSignature(_HttpOutboundMessage, () => ({
      __proto__: dart.getGetters(_HttpOutboundMessage.__proto__),
      contentLength: core.int,
      persistentConnection: core.bool,
      bufferOutput: core.bool,
      [_isConnectionClosed]: core.bool
    }));
    dart.setSetterSignature(_HttpOutboundMessage, () => ({
      __proto__: dart.getSetters(_HttpOutboundMessage.__proto__),
      contentLength: core.int,
      persistentConnection: core.bool,
      bufferOutput: core.bool
    }));
    dart.setLibraryUri(_HttpOutboundMessage, I[177]);
    dart.setFieldSignature(_HttpOutboundMessage, () => ({
      __proto__: dart.getFields(_HttpOutboundMessage.__proto__),
      [_encodingSet]: dart.fieldType(core.bool),
      [_bufferOutput]: dart.fieldType(core.bool),
      [_uri]: dart.finalFieldType(core.Uri),
      [_outgoing]: dart.finalFieldType(_http._HttpOutgoing),
      headers: dart.finalFieldType(_http._HttpHeaders)
    }));
    return _HttpOutboundMessage;
  });
  _http._HttpOutboundMessage = _http._HttpOutboundMessage$();
  dart.addTypeTests(_http._HttpOutboundMessage, _is__HttpOutboundMessage_default);
  var _statusCode = dart.privateName(_http, "_statusCode");
  var _reasonPhrase = dart.privateName(_http, "_reasonPhrase");
  var _deadline = dart.privateName(_http, "_deadline");
  var _deadlineTimer = dart.privateName(_http, "_deadlineTimer");
  var _isClosing = dart.privateName(_http, "_isClosing");
  var _findReasonPhrase = dart.privateName(_http, "_findReasonPhrase");
  var _isNew = dart.privateName(_http, "_isNew");
  var _writeHeader = dart.privateName(_http, "_writeHeader");
  _http._HttpResponse = class _HttpResponse extends _http._HttpOutboundMessage$(_http.HttpResponse) {
    get [_isConnectionClosed]() {
      return dart.nullCheck(this[_httpRequest$])[_httpConnection$][_isClosing];
    }
    get cookies() {
      let t296;
      t296 = this[_cookies];
      return t296 == null ? this[_cookies] = T$0.JSArrayOfCookie().of([]) : t296;
    }
    get statusCode() {
      return this[_statusCode];
    }
    set statusCode(statusCode) {
      if (statusCode == null) dart.nullFailed(I[181], 1187, 27, "statusCode");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
      this[_statusCode] = statusCode;
    }
    get reasonPhrase() {
      return this[_findReasonPhrase](this.statusCode);
    }
    set reasonPhrase(reasonPhrase) {
      if (reasonPhrase == null) dart.nullFailed(I[181], 1193, 32, "reasonPhrase");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
      this[_reasonPhrase] = reasonPhrase;
    }
    redirect(location, opts) {
      if (location == null) dart.nullFailed(I[181], 1198, 23, "location");
      let status = opts && 'status' in opts ? opts.status : 302;
      if (status == null) dart.nullFailed(I[181], 1198, 38, "status");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
      this.statusCode = status;
      this.headers.set("location", dart.toString(location));
      return this.close();
    }
    detachSocket(opts) {
      let writeHeaders = opts && 'writeHeaders' in opts ? opts.writeHeaders : true;
      if (writeHeaders == null) dart.nullFailed(I[181], 1205, 37, "writeHeaders");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Headers already sent"));
      this.deadline = null;
      let future = dart.nullCheck(this[_httpRequest$])[_httpConnection$].detachSocket();
      if (dart.test(writeHeaders)) {
        let headersFuture = this[_outgoing].writeHeaders({drainRequest: false, setOutgoing: false});
        if (!(headersFuture == null)) dart.assertFailed(null, I[181], 1212, 14, "headersFuture == null");
      } else {
        this[_outgoing].headersWritten = true;
      }
      this.close();
      this.done.catchError(dart.fn(_ => {
      }, T$.dynamicToNull()));
      return future;
    }
    get connectionInfo() {
      return dart.nullCheck(this[_httpRequest$]).connectionInfo;
    }
    get deadline() {
      return this[_deadline];
    }
    set deadline(d) {
      let t296;
      t296 = this[_deadlineTimer];
      t296 == null ? null : t296.cancel();
      this[_deadline] = d;
      if (d == null) return;
      this[_deadlineTimer] = async.Timer.new(d, dart.fn(() => {
        dart.nullCheck(this[_httpRequest$])[_httpConnection$].destroy();
      }, T$.VoidTovoid()));
    }
    [_writeHeader]() {
      let t296, t296$, t296$0;
      let buffer = new _http._CopyingBytesBuilder.new(8192);
      if (this.headers.protocolVersion === "1.1") {
        buffer.add(_http._Const.HTTP11);
      } else {
        buffer.add(_http._Const.HTTP10);
      }
      buffer.addByte(32);
      buffer.add(dart.toString(this.statusCode)[$codeUnits]);
      buffer.addByte(32);
      buffer.add(this.reasonPhrase[$codeUnits]);
      buffer.addByte(13);
      buffer.addByte(10);
      let session = dart.nullCheck(this[_httpRequest$])[_session];
      if (session != null && !dart.test(session[_destroyed])) {
        session[_isNew] = false;
        let found = false;
        for (let i = 0; i < dart.notNull(this.cookies[$length]); i = i + 1) {
          if (this.cookies[$_get](i).name[$toUpperCase]() === "DARTSESSID") {
            t296 = this.cookies[$_get](i);
            (() => {
              t296.value = session.id;
              t296.httpOnly = true;
              t296.path = "/";
              return t296;
            })();
            found = true;
          }
        }
        if (!found) {
          let cookie = _http.Cookie.new("DARTSESSID", session.id);
          this.cookies[$add]((t296$ = cookie, (() => {
            t296$.httpOnly = true;
            t296$.path = "/";
            return t296$;
          })()));
        }
      }
      t296$0 = this[_cookies];
      t296$0 == null ? null : t296$0[$forEach](dart.fn(cookie => {
        if (cookie == null) dart.nullFailed(I[181], 1279, 24, "cookie");
        this.headers.add("set-cookie", cookie);
      }, T$0.CookieTovoid()));
      this.headers[_finalize]();
      this.headers[_build](buffer);
      buffer.addByte(13);
      buffer.addByte(10);
      let headerBytes = buffer.takeBytes();
      this[_outgoing].setHeader(headerBytes, headerBytes[$length]);
    }
    [_findReasonPhrase](statusCode) {
      if (statusCode == null) dart.nullFailed(I[181], 1293, 32, "statusCode");
      let reasonPhrase = this[_reasonPhrase];
      if (reasonPhrase != null) {
        return reasonPhrase;
      }
      switch (statusCode) {
        case 100:
        {
          return "Continue";
        }
        case 101:
        {
          return "Switching Protocols";
        }
        case 200:
        {
          return "OK";
        }
        case 201:
        {
          return "Created";
        }
        case 202:
        {
          return "Accepted";
        }
        case 203:
        {
          return "Non-Authoritative Information";
        }
        case 204:
        {
          return "No Content";
        }
        case 205:
        {
          return "Reset Content";
        }
        case 206:
        {
          return "Partial Content";
        }
        case 300:
        {
          return "Multiple Choices";
        }
        case 301:
        {
          return "Moved Permanently";
        }
        case 302:
        {
          return "Found";
        }
        case 303:
        {
          return "See Other";
        }
        case 304:
        {
          return "Not Modified";
        }
        case 305:
        {
          return "Use Proxy";
        }
        case 307:
        {
          return "Temporary Redirect";
        }
        case 400:
        {
          return "Bad Request";
        }
        case 401:
        {
          return "Unauthorized";
        }
        case 402:
        {
          return "Payment Required";
        }
        case 403:
        {
          return "Forbidden";
        }
        case 404:
        {
          return "Not Found";
        }
        case 405:
        {
          return "Method Not Allowed";
        }
        case 406:
        {
          return "Not Acceptable";
        }
        case 407:
        {
          return "Proxy Authentication Required";
        }
        case 408:
        {
          return "Request Time-out";
        }
        case 409:
        {
          return "Conflict";
        }
        case 410:
        {
          return "Gone";
        }
        case 411:
        {
          return "Length Required";
        }
        case 412:
        {
          return "Precondition Failed";
        }
        case 413:
        {
          return "Request Entity Too Large";
        }
        case 414:
        {
          return "Request-URI Too Long";
        }
        case 415:
        {
          return "Unsupported Media Type";
        }
        case 416:
        {
          return "Requested range not satisfiable";
        }
        case 417:
        {
          return "Expectation Failed";
        }
        case 500:
        {
          return "Internal Server Error";
        }
        case 501:
        {
          return "Not Implemented";
        }
        case 502:
        {
          return "Bad Gateway";
        }
        case 503:
        {
          return "Service Unavailable";
        }
        case 504:
        {
          return "Gateway Time-out";
        }
        case 505:
        {
          return "Http Version not supported";
        }
        default:
        {
          return "Status " + dart.str(statusCode);
        }
      }
    }
  };
  (_http._HttpResponse.new = function(uri, protocolVersion, outgoing, defaultHeaders, serverHeader) {
    if (uri == null) dart.nullFailed(I[181], 1173, 21, "uri");
    if (protocolVersion == null) dart.nullFailed(I[181], 1173, 33, "protocolVersion");
    if (outgoing == null) dart.nullFailed(I[181], 1173, 64, "outgoing");
    if (defaultHeaders == null) dart.nullFailed(I[181], 1174, 19, "defaultHeaders");
    this[_statusCode] = 200;
    this[_reasonPhrase] = null;
    this[_cookies] = null;
    this[_httpRequest$] = null;
    this[_deadline] = null;
    this[_deadlineTimer] = null;
    _http._HttpResponse.__proto__.new.call(this, uri, protocolVersion, outgoing, null, {initialHeaders: _http._HttpHeaders.as(defaultHeaders)});
    if (serverHeader != null) {
      this.headers.set("server", serverHeader);
    }
  }).prototype = _http._HttpResponse.prototype;
  dart.addTypeTests(_http._HttpResponse);
  dart.addTypeCaches(_http._HttpResponse);
  _http._HttpResponse[dart.implements] = () => [_http.HttpResponse];
  dart.setMethodSignature(_http._HttpResponse, () => ({
    __proto__: dart.getMethods(_http._HttpResponse.__proto__),
    redirect: dart.fnType(async.Future, [core.Uri], {status: core.int}, {}),
    detachSocket: dart.fnType(async.Future$(io.Socket), [], {writeHeaders: core.bool}, {}),
    [_writeHeader]: dart.fnType(dart.void, []),
    [_findReasonPhrase]: dart.fnType(core.String, [core.int])
  }));
  dart.setGetterSignature(_http._HttpResponse, () => ({
    __proto__: dart.getGetters(_http._HttpResponse.__proto__),
    cookies: core.List$(_http.Cookie),
    statusCode: core.int,
    reasonPhrase: core.String,
    connectionInfo: dart.nullable(_http.HttpConnectionInfo),
    deadline: dart.nullable(core.Duration)
  }));
  dart.setSetterSignature(_http._HttpResponse, () => ({
    __proto__: dart.getSetters(_http._HttpResponse.__proto__),
    statusCode: core.int,
    reasonPhrase: core.String,
    deadline: dart.nullable(core.Duration)
  }));
  dart.setLibraryUri(_http._HttpResponse, I[177]);
  dart.setFieldSignature(_http._HttpResponse, () => ({
    __proto__: dart.getFields(_http._HttpResponse.__proto__),
    [_statusCode]: dart.fieldType(core.int),
    [_reasonPhrase]: dart.fieldType(dart.nullable(core.String)),
    [_cookies]: dart.fieldType(dart.nullable(core.List$(_http.Cookie))),
    [_httpRequest$]: dart.fieldType(dart.nullable(_http._HttpRequest)),
    [_deadline]: dart.fieldType(dart.nullable(core.Duration)),
    [_deadlineTimer]: dart.fieldType(dart.nullable(async.Timer))
  }));
  var _profileData$1 = dart.privateName(_http, "_HttpClientRequest._profileData");
  var _responseCompleter = dart.privateName(_http, "_responseCompleter");
  var _response = dart.privateName(_http, "_response");
  var _followRedirects = dart.privateName(_http, "_followRedirects");
  var _maxRedirects = dart.privateName(_http, "_maxRedirects");
  var _aborted = dart.privateName(_http, "_aborted");
  var _onIncoming = dart.privateName(_http, "_onIncoming");
  var _onError$ = dart.privateName(_http, "_onError");
  var _proxyTunnel$ = dart.privateName(_http, "_proxyTunnel");
  var _requestUri = dart.privateName(_http, "_requestUri");
  _http._HttpClientRequest = class _HttpClientRequest extends _http._HttpOutboundMessage$(_http.HttpClientResponse) {
    get [_profileData$]() {
      return this[_profileData$1];
    }
    set [_profileData$](value) {
      super[_profileData$] = value;
    }
    get done() {
      let t296;
      t296 = this[_response];
      return t296 == null ? this[_response] = async.Future.wait(dart.dynamic, T$0.JSArrayOfFuture().of([this[_responseCompleter].future, super.done]), {eagerError: true}).then(_http.HttpClientResponse, dart.fn(list => {
        if (list == null) dart.nullFailed(I[181], 1445, 18, "list");
        return T$0.FutureOrOfHttpClientResponse().as(list[$_get](0));
      }, T$0.ListToFutureOrOfHttpClientResponse())) : t296;
    }
    close() {
      if (!dart.test(this[_aborted])) {
        super.close();
      }
      return this.done;
    }
    get maxRedirects() {
      return this[_maxRedirects];
    }
    set maxRedirects(maxRedirects) {
      if (maxRedirects == null) dart.nullFailed(I[181], 1456, 29, "maxRedirects");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Request already sent"));
      this[_maxRedirects] = maxRedirects;
    }
    get followRedirects() {
      return this[_followRedirects];
    }
    set followRedirects(followRedirects) {
      if (followRedirects == null) dart.nullFailed(I[181], 1462, 33, "followRedirects");
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Request already sent"));
      this[_followRedirects] = followRedirects;
    }
    get connectionInfo() {
      return this[_httpClientConnection$].connectionInfo;
    }
    [_onIncoming](incoming) {
      if (incoming == null) dart.nullFailed(I[181], 1470, 34, "incoming");
      if (dart.test(this[_aborted])) {
        return;
      }
      let response = new _http._HttpClientResponse.new(incoming, this, this[_httpClient$], this[_profileData$]);
      let future = null;
      if (dart.test(this.followRedirects) && dart.test(response.isRedirect)) {
        if (dart.notNull(response.redirects[$length]) < dart.notNull(this.maxRedirects)) {
          future = response.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => response.redirect(), T$0.dynamicToFutureOfHttpClientResponse()));
        } else {
          future = response.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => T$0.FutureOfHttpClientResponse().error(new _http.RedirectException.new("Redirect limit exceeded", response.redirects)), T$0.dynamicToFutureOfHttpClientResponse()));
        }
      } else if (dart.test(response[_shouldAuthenticateProxy])) {
        future = response[_authenticate](true);
      } else if (dart.test(response[_shouldAuthenticate])) {
        future = response[_authenticate](false);
      } else {
        future = T$0.FutureOfHttpClientResponse().value(response);
      }
      future.then(core.Null, dart.fn(v => {
        if (v == null) dart.nullFailed(I[181], 1497, 18, "v");
        if (!dart.test(this[_responseCompleter].isCompleted)) {
          this[_responseCompleter].complete(v);
        }
      }, T$0.HttpClientResponseToNull()), {onError: dart.fn((e, s) => {
          if (!dart.test(this[_responseCompleter].isCompleted)) {
            this[_responseCompleter].completeError(core.Object.as(e), T$.StackTraceN().as(s));
          }
        }, T$.dynamicAnddynamicToNull())});
    }
    [_onError$](error, stackTrace) {
      if (stackTrace == null) dart.nullFailed(I[181], 1508, 35, "stackTrace");
      if (!dart.test(this[_responseCompleter].isCompleted)) {
        this[_responseCompleter].completeError(core.Object.as(error), stackTrace);
      }
    }
    [_requestUri]() {
      const uriStartingFromPath = () => {
        let result = this.uri.path;
        if (result[$isEmpty]) result = "/";
        if (dart.test(this.uri.hasQuery)) {
          result = dart.str(result) + "?" + dart.str(this.uri.query);
        }
        return result;
      };
      dart.fn(uriStartingFromPath, T$.VoidToString());
      if (dart.test(this[_proxy$].isDirect)) {
        return uriStartingFromPath();
      } else {
        if (this.method === "CONNECT") {
          return dart.str(this.uri.host) + ":" + dart.str(this.uri.port);
        } else {
          if (dart.test(this[_httpClientConnection$][_proxyTunnel$])) {
            return uriStartingFromPath();
          } else {
            return dart.toString(this.uri.removeFragment());
          }
        }
      }
    }
    add(data) {
      T$0.ListOfint().as(data);
      if (data == null) dart.nullFailed(I[181], 1544, 22, "data");
      if (data[$length] === 0 || dart.test(this[_aborted])) return;
      super.add(data);
    }
    write(obj) {
      if (dart.test(this[_aborted])) return;
      super.write(obj);
    }
    [_writeHeader]() {
      let t296;
      if (dart.test(this[_aborted])) {
        this[_outgoing].setHeader(_native_typed_data.NativeUint8List.new(0), 0);
        return;
      }
      let buffer = new _http._CopyingBytesBuilder.new(8192);
      buffer.add(this.method[$codeUnits]);
      buffer.addByte(32);
      buffer.add(this[_requestUri]()[$codeUnits]);
      buffer.addByte(32);
      buffer.add(_http._Const.HTTP11);
      buffer.addByte(13);
      buffer.addByte(10);
      if (!dart.test(this.cookies[$isEmpty])) {
        let sb = new core.StringBuffer.new();
        for (let i = 0; i < dart.notNull(this.cookies[$length]); i = i + 1) {
          if (i > 0) sb.write("; ");
          t296 = sb;
          (() => {
            t296.write(this.cookies[$_get](i).name);
            t296.write("=");
            t296.write(this.cookies[$_get](i).value);
            return t296;
          })();
        }
        this.headers.add("cookie", sb.toString());
      }
      this.headers[_finalize]();
      this.headers[_build](buffer);
      buffer.addByte(13);
      buffer.addByte(10);
      let headerBytes = buffer.takeBytes();
      this[_outgoing].setHeader(headerBytes, headerBytes[$length]);
    }
    abort(exception = null, stackTrace = null) {
      this[_aborted] = true;
      if (!dart.test(this[_responseCompleter].isCompleted)) {
        exception == null ? exception = new _http.HttpException.new("Request has been aborted") : null;
        this[_responseCompleter].completeError(exception, stackTrace);
        this[_httpClientConnection$].destroy();
      }
    }
  };
  (_http._HttpClientRequest.new = function(outgoing, uri, method, _proxy, _httpClient, _httpClientConnection, _profileData) {
    let t296, t296$;
    if (outgoing == null) dart.nullFailed(I[181], 1414, 19, "outgoing");
    if (uri == null) dart.nullFailed(I[181], 1415, 9, "uri");
    if (method == null) dart.nullFailed(I[181], 1416, 10, "method");
    if (_proxy == null) dart.nullFailed(I[181], 1417, 10, "_proxy");
    if (_httpClient == null) dart.nullFailed(I[181], 1418, 10, "_httpClient");
    if (_httpClientConnection == null) dart.nullFailed(I[181], 1419, 10, "_httpClientConnection");
    this.cookies = T$0.JSArrayOfCookie().of([]);
    this[_responseCompleter] = T$0.CompleterOfHttpClientResponse().new();
    this[_response] = null;
    this[_followRedirects] = true;
    this[_maxRedirects] = 5;
    this[_responseRedirects] = T$0.JSArrayOfRedirectInfo().of([]);
    this[_aborted] = false;
    this.method = method;
    this[_proxy$] = _proxy;
    this[_httpClient$] = _httpClient;
    this[_httpClientConnection$] = _httpClientConnection;
    this[_profileData$1] = _profileData;
    this.uri = uri;
    _http._HttpClientRequest.__proto__.new.call(this, uri, "1.1", outgoing, _profileData);
    t296 = this[_profileData$];
    t296 == null ? null : t296.requestEvent("Request sent");
    if (this.method === "GET" || this.method === "HEAD") {
      this.contentLength = 0;
    } else {
      this.headers.chunkedTransferEncoding = true;
    }
    t296$ = this[_profileData$];
    t296$ == null ? null : t296$.finishRequest({request: this});
    this[_responseCompleter].future.then(core.Null, dart.fn(response => {
      let t296, t296$;
      if (response == null) dart.nullFailed(I[181], 1433, 37, "response");
      t296 = this[_profileData$];
      t296 == null ? null : t296.requestEvent("Waiting (TTFB)");
      t296$ = this[_profileData$];
      t296$ == null ? null : t296$.startResponse({response: response});
    }, T$0.HttpClientResponseToNull()), {onError: dart.fn(e => {
      }, T$.dynamicToNull())});
  }).prototype = _http._HttpClientRequest.prototype;
  dart.addTypeTests(_http._HttpClientRequest);
  dart.addTypeCaches(_http._HttpClientRequest);
  _http._HttpClientRequest[dart.implements] = () => [_http.HttpClientRequest];
  dart.setMethodSignature(_http._HttpClientRequest, () => ({
    __proto__: dart.getMethods(_http._HttpClientRequest.__proto__),
    close: dart.fnType(async.Future$(_http.HttpClientResponse), []),
    [_onIncoming]: dart.fnType(dart.void, [_http._HttpIncoming]),
    [_onError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
    [_requestUri]: dart.fnType(core.String, []),
    [_writeHeader]: dart.fnType(dart.void, []),
    abort: dart.fnType(dart.void, [], [dart.nullable(core.Object), dart.nullable(core.StackTrace)])
  }));
  dart.setGetterSignature(_http._HttpClientRequest, () => ({
    __proto__: dart.getGetters(_http._HttpClientRequest.__proto__),
    done: async.Future$(_http.HttpClientResponse),
    maxRedirects: core.int,
    followRedirects: core.bool,
    connectionInfo: dart.nullable(_http.HttpConnectionInfo)
  }));
  dart.setSetterSignature(_http._HttpClientRequest, () => ({
    __proto__: dart.getSetters(_http._HttpClientRequest.__proto__),
    maxRedirects: core.int,
    followRedirects: core.bool
  }));
  dart.setLibraryUri(_http._HttpClientRequest, I[177]);
  dart.setFieldSignature(_http._HttpClientRequest, () => ({
    __proto__: dart.getFields(_http._HttpClientRequest.__proto__),
    method: dart.finalFieldType(core.String),
    uri: dart.finalFieldType(core.Uri),
    cookies: dart.finalFieldType(core.List$(_http.Cookie)),
    [_httpClient$]: dart.finalFieldType(_http._HttpClient),
    [_httpClientConnection$]: dart.finalFieldType(_http._HttpClientConnection),
    [_profileData$]: dart.finalFieldType(dart.nullable(_http._HttpProfileData)),
    [_responseCompleter]: dart.finalFieldType(async.Completer$(_http.HttpClientResponse)),
    [_proxy$]: dart.finalFieldType(_http._Proxy),
    [_response]: dart.fieldType(dart.nullable(async.Future$(_http.HttpClientResponse))),
    [_followRedirects]: dart.fieldType(core.bool),
    [_maxRedirects]: dart.fieldType(core.int),
    [_responseRedirects]: dart.fieldType(core.List$(_http.RedirectInfo)),
    [_aborted]: dart.fieldType(core.bool)
  }));
  var _consume$ = dart.privateName(_http, "_consume");
  _http._HttpGZipSink = class _HttpGZipSink extends convert.ByteConversionSink {
    add(chunk) {
      let t296;
      T$0.ListOfint().as(chunk);
      if (chunk == null) dart.nullFailed(I[181], 1608, 22, "chunk");
      t296 = chunk;
      this[_consume$](t296);
    }
    addSlice(chunk, start, end, isLast) {
      let t296, t296$;
      if (chunk == null) dart.nullFailed(I[181], 1612, 27, "chunk");
      if (start == null) dart.nullFailed(I[181], 1612, 38, "start");
      if (end == null) dart.nullFailed(I[181], 1612, 49, "end");
      if (isLast == null) dart.nullFailed(I[181], 1612, 59, "isLast");
      if (typed_data.Uint8List.is(chunk)) {
        t296 = typed_data.Uint8List.view(chunk[$buffer], dart.notNull(chunk[$offsetInBytes]) + dart.notNull(start), dart.notNull(end) - dart.notNull(start));
        this[_consume$](t296);
      } else {
        t296$ = chunk[$sublist](start, dart.notNull(end) - dart.notNull(start));
        this[_consume$](t296$);
      }
    }
    close() {
    }
  };
  (_http._HttpGZipSink.new = function(_consume) {
    if (_consume == null) dart.nullFailed(I[181], 1606, 22, "_consume");
    this[_consume$] = _consume;
    _http._HttpGZipSink.__proto__.new.call(this);
    ;
  }).prototype = _http._HttpGZipSink.prototype;
  dart.addTypeTests(_http._HttpGZipSink);
  dart.addTypeCaches(_http._HttpGZipSink);
  dart.setMethodSignature(_http._HttpGZipSink, () => ({
    __proto__: dart.getMethods(_http._HttpGZipSink.__proto__),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_http._HttpGZipSink, I[177]);
  dart.setFieldSignature(_http._HttpGZipSink, () => ({
    __proto__: dart.getFields(_http._HttpGZipSink.__proto__),
    [_consume$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(core.int)]))
  }));
  var _closeFuture = dart.privateName(_http, "_closeFuture");
  var _pendingChunkedFooter = dart.privateName(_http, "_pendingChunkedFooter");
  var _bytesWritten = dart.privateName(_http, "_bytesWritten");
  var _gzip = dart.privateName(_http, "_gzip");
  var _gzipSink = dart.privateName(_http, "_gzipSink");
  var _gzipAdd = dart.privateName(_http, "_gzipAdd");
  var _gzipBuffer = dart.privateName(_http, "_gzipBuffer");
  var _gzipBufferLength = dart.privateName(_http, "_gzipBufferLength");
  var _socketError = dart.privateName(_http, "_socketError");
  var _addGZipChunk = dart.privateName(_http, "_addGZipChunk");
  var _chunkHeader = dart.privateName(_http, "_chunkHeader");
  var _addChunk$ = dart.privateName(_http, "_addChunk");
  var _ignoreError = dart.privateName(_http, "_ignoreError");
  _http._HttpOutgoing = class _HttpOutgoing extends core.Object {
    writeHeaders(opts) {
      let drainRequest = opts && 'drainRequest' in opts ? opts.drainRequest : true;
      if (drainRequest == null) dart.nullFailed(I[181], 1685, 13, "drainRequest");
      let setOutgoing = opts && 'setOutgoing' in opts ? opts.setOutgoing : true;
      if (setOutgoing == null) dart.nullFailed(I[181], 1685, 39, "setOutgoing");
      if (dart.test(this.headersWritten)) return null;
      this.headersWritten = true;
      let drainFuture = null;
      let gzip = false;
      let response = dart.nullCheck(this.outbound);
      if (_http._HttpResponse.is(response)) {
        if (dart.test(dart.nullCheck(response[_httpRequest$])[_httpServer$].autoCompress) && dart.test(response.bufferOutput) && dart.test(response.headers.chunkedTransferEncoding)) {
          let acceptEncodings = dart.nullCheck(response[_httpRequest$]).headers._get("accept-encoding");
          let contentEncoding = response.headers._get("content-encoding");
          if (acceptEncodings != null && contentEncoding == null && dart.test(acceptEncodings[$expand](core.String, dart.fn(list => {
            if (list == null) dart.nullFailed(I[181], 1703, 26, "list");
            return list[$split](",");
          }, T$0.StringToListOfString()))[$any](dart.fn(encoding => {
            if (encoding == null) dart.nullFailed(I[181], 1704, 23, "encoding");
            return encoding[$trim]()[$toLowerCase]() === "gzip";
          }, T$.StringTobool())))) {
            response.headers.set("content-encoding", "gzip");
            gzip = true;
          }
        }
        if (dart.test(drainRequest) && !dart.test(dart.nullCheck(response[_httpRequest$])[_incoming$].hasSubscriber)) {
          drainFuture = dart.nullCheck(response[_httpRequest$]).drain(dart.void).catchError(dart.fn(_ => {
          }, T$.dynamicToNull()));
        }
      } else {
        drainRequest = false;
      }
      if (!dart.test(this.ignoreBody)) {
        if (dart.test(setOutgoing)) {
          let contentLength = response.headers.contentLength;
          if (dart.test(response.headers.chunkedTransferEncoding)) {
            this.chunked = true;
            if (gzip) this.gzip = true;
          } else if (dart.notNull(contentLength) >= 0) {
            this.contentLength = contentLength;
          }
        }
        if (drainFuture != null) {
          return drainFuture.then(dart.void, dart.fn(_ => response[_writeHeader](), T$0.voidTovoid()));
        }
      }
      response[_writeHeader]();
      return null;
    }
    addStream(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[181], 1733, 38, "stream");
      if (dart.test(this[_socketError])) {
        stream.listen(null).cancel();
        return async.Future.value(this.outbound);
      }
      if (dart.test(this.ignoreBody)) {
        stream.drain(dart.dynamic).catchError(dart.fn(_ => {
        }, T$.dynamicToNull()));
        let future = this.writeHeaders();
        if (future != null) {
          return future.then(dart.dynamic, dart.fn(_ => this.close(), T$0.voidToFuture()));
        }
        return this.close();
      }
      let controller = T$0.StreamControllerOfListOfint().new({sync: true});
      const onData = data => {
        if (data == null) dart.nullFailed(I[181], 1751, 27, "data");
        if (dart.test(this[_socketError])) return;
        if (data[$length] === 0) return;
        if (dart.test(this.chunked)) {
          if (dart.test(this[_gzip])) {
            this[_gzipAdd] = dart.bind(controller, 'add');
            this[_addGZipChunk](data, dart.bind(dart.nullCheck(this[_gzipSink]), 'add'));
            this[_gzipAdd] = null;
            return;
          }
          this[_addChunk$](this[_chunkHeader](data[$length]), dart.bind(controller, 'add'));
          this[_pendingChunkedFooter] = 2;
        } else {
          let contentLength = this.contentLength;
          if (contentLength != null) {
            this[_bytesWritten] = dart.notNull(this[_bytesWritten]) + dart.notNull(data[$length]);
            if (dart.notNull(this[_bytesWritten]) > dart.notNull(contentLength)) {
              controller.addError(new _http.HttpException.new("Content size exceeds specified contentLength. " + dart.str(this[_bytesWritten]) + " bytes written while expected " + dart.str(contentLength) + ". " + "[" + dart.str(core.String.fromCharCodes(data)) + "]"));
              return;
            }
          }
        }
        this[_addChunk$](data, dart.bind(controller, 'add'));
      };
      dart.fn(onData, T$0.ListOfintTovoid());
      let sub = stream.listen(onData, {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close'), cancelOnError: true});
      controller.onPause = dart.bind(sub, 'pause');
      controller.onResume = dart.bind(sub, 'resume');
      if (!dart.test(this.headersWritten)) {
        let future = this.writeHeaders();
        if (future != null) {
          sub.pause(future);
        }
      }
      return this.socket.addStream(controller.stream).then(dart.dynamic, dart.fn(_ => this.outbound, T$0.dynamicTo_HttpOutboundMessageN()), {onError: dart.fn((error, stackTrace) => {
          if (dart.test(this[_gzip])) dart.nullCheck(this[_gzipSink]).close();
          this[_socketError] = true;
          this[_doneCompleter$].completeError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
          if (dart.test(this[_ignoreError](error))) {
            return this.outbound;
          } else {
            dart.throw(error);
          }
        }, T$0.dynamicAnddynamicTo_HttpOutboundMessageN())});
    }
    close() {
      let closeFuture = this[_closeFuture];
      if (closeFuture != null) return closeFuture;
      let outbound = dart.nullCheck(this.outbound);
      if (dart.test(this[_socketError])) return async.Future.value(outbound);
      if (dart.test(outbound[_isConnectionClosed])) return async.Future.value(outbound);
      if (!dart.test(this.headersWritten) && !dart.test(this.ignoreBody)) {
        if (outbound.headers.contentLength === -1) {
          outbound.headers.chunkedTransferEncoding = false;
          outbound.headers.contentLength = 0;
        } else if (dart.notNull(outbound.headers.contentLength) > 0) {
          let error = new _http.HttpException.new("No content even though contentLength was specified to be " + "greater than 0: " + dart.str(outbound.headers.contentLength) + ".", {uri: outbound[_uri]});
          this[_doneCompleter$].completeError(error);
          return this[_closeFuture] = async.Future.error(error);
        }
      }
      let contentLength = this.contentLength;
      if (contentLength != null) {
        if (dart.notNull(this[_bytesWritten]) < dart.notNull(contentLength)) {
          let error = new _http.HttpException.new("Content size below specified contentLength. " + " " + dart.str(this[_bytesWritten]) + " bytes written but expected " + dart.str(contentLength) + ".", {uri: outbound[_uri]});
          this[_doneCompleter$].completeError(error);
          return this[_closeFuture] = async.Future.error(error);
        }
      }
      const finalize = () => {
        if (dart.test(this.chunked)) {
          if (dart.test(this[_gzip])) {
            this[_gzipAdd] = dart.bind(this.socket, 'add');
            if (dart.notNull(this[_gzipBufferLength]) > 0) {
              dart.nullCheck(this[_gzipSink]).add(typed_data.Uint8List.view(dart.nullCheck(this[_gzipBuffer])[$buffer], dart.nullCheck(this[_gzipBuffer])[$offsetInBytes], this[_gzipBufferLength]));
            }
            this[_gzipBuffer] = null;
            dart.nullCheck(this[_gzipSink]).close();
            this[_gzipAdd] = null;
          }
          this[_addChunk$](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
        }
        if (dart.notNull(this[_length$1]) > 0) {
          this.socket.add(typed_data.Uint8List.view(dart.nullCheck(this[_buffer$1])[$buffer], dart.nullCheck(this[_buffer$1])[$offsetInBytes], this[_length$1]));
        }
        this[_buffer$1] = null;
        return this.socket.flush().then(dart.dynamic, dart.fn(_ => {
          this[_doneCompleter$].complete(this.socket);
          return outbound;
        }, T$0.dynamicTo_HttpOutboundMessage()), {onError: dart.fn((error, stackTrace) => {
            this[_doneCompleter$].completeError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
            if (dart.test(this[_ignoreError](error))) {
              return outbound;
            } else {
              dart.throw(error);
            }
          }, T.dynamicAnddynamicTo_HttpOutboundMessage())});
      };
      dart.fn(finalize, T$0.VoidToFuture());
      let future = this.writeHeaders();
      if (future != null) {
        return this[_closeFuture] = future.whenComplete(finalize);
      }
      return this[_closeFuture] = finalize();
    }
    get done() {
      return this[_doneCompleter$].future;
    }
    setHeader(data, length) {
      if (data == null) dart.nullFailed(I[181], 1898, 28, "data");
      if (length == null) dart.nullFailed(I[181], 1898, 38, "length");
      if (!(this[_length$1] === 0)) dart.assertFailed(null, I[181], 1899, 12, "_length == 0");
      this[_buffer$1] = typed_data.Uint8List.as(data);
      this[_length$1] = length;
    }
    set gzip(value) {
      if (value == null) dart.nullFailed(I[181], 1904, 22, "value");
      this[_gzip] = value;
      if (dart.test(value)) {
        this[_gzipBuffer] = _native_typed_data.NativeUint8List.new(8192);
        if (!(this[_gzipSink] == null)) dart.assertFailed(null, I[181], 1908, 14, "_gzipSink == null");
        this[_gzipSink] = new io.ZLibEncoder.new({gzip: true}).startChunkedConversion(new _http._HttpGZipSink.new(dart.fn(data => {
          if (data == null) dart.nullFailed(I[181], 1910, 54, "data");
          if (this[_gzipAdd] == null) return;
          this[_addChunk$](this[_chunkHeader](data[$length]), dart.nullCheck(this[_gzipAdd]));
          this[_pendingChunkedFooter] = 2;
          this[_addChunk$](data, dart.nullCheck(this[_gzipAdd]));
        }, T$0.ListOfintTovoid())));
      }
    }
    [_ignoreError](error) {
      return (io.SocketException.is(error) || io.TlsException.is(error)) && _http.HttpResponse.is(this.outbound);
    }
    [_addGZipChunk](chunk, add) {
      if (chunk == null) dart.nullFailed(I[181], 1924, 32, "chunk");
      if (add == null) dart.nullFailed(I[181], 1924, 44, "add");
      let bufferOutput = dart.nullCheck(this.outbound).bufferOutput;
      if (!dart.test(bufferOutput)) {
        add(chunk);
        return;
      }
      let gzipBuffer = dart.nullCheck(this[_gzipBuffer]);
      if (dart.notNull(chunk[$length]) > dart.notNull(gzipBuffer[$length]) - dart.notNull(this[_gzipBufferLength])) {
        add(typed_data.Uint8List.view(gzipBuffer[$buffer], gzipBuffer[$offsetInBytes], this[_gzipBufferLength]));
        this[_gzipBuffer] = _native_typed_data.NativeUint8List.new(8192);
        this[_gzipBufferLength] = 0;
      }
      if (dart.notNull(chunk[$length]) > 8192) {
        add(chunk);
      } else {
        let currentLength = this[_gzipBufferLength];
        let newLength = dart.notNull(currentLength) + dart.notNull(chunk[$length]);
        dart.nullCheck(this[_gzipBuffer])[$setRange](currentLength, newLength, chunk);
        this[_gzipBufferLength] = newLength;
      }
    }
    [_addChunk$](chunk, add) {
      if (chunk == null) dart.nullFailed(I[181], 1947, 28, "chunk");
      if (add == null) dart.nullFailed(I[181], 1947, 40, "add");
      let bufferOutput = dart.nullCheck(this.outbound).bufferOutput;
      if (!dart.test(bufferOutput)) {
        if (this[_buffer$1] != null) {
          add(typed_data.Uint8List.view(dart.nullCheck(this[_buffer$1])[$buffer], dart.nullCheck(this[_buffer$1])[$offsetInBytes], this[_length$1]));
          this[_buffer$1] = null;
          this[_length$1] = 0;
        }
        add(chunk);
        return;
      }
      if (dart.notNull(chunk[$length]) > dart.notNull(dart.nullCheck(this[_buffer$1])[$length]) - dart.notNull(this[_length$1])) {
        add(typed_data.Uint8List.view(dart.nullCheck(this[_buffer$1])[$buffer], dart.nullCheck(this[_buffer$1])[$offsetInBytes], this[_length$1]));
        this[_buffer$1] = _native_typed_data.NativeUint8List.new(8192);
        this[_length$1] = 0;
      }
      if (dart.notNull(chunk[$length]) > 8192) {
        add(chunk);
      } else {
        dart.nullCheck(this[_buffer$1])[$setRange](this[_length$1], dart.notNull(this[_length$1]) + dart.notNull(chunk[$length]), chunk);
        this[_length$1] = dart.notNull(this[_length$1]) + dart.notNull(chunk[$length]);
      }
    }
    [_chunkHeader](length) {
      if (length == null) dart.nullFailed(I[181], 1974, 30, "length");
      let hexDigits = C[471] || CT.C471;
      if (length === 0) {
        if (this[_pendingChunkedFooter] === 2) return _http._HttpOutgoing._footerAndChunk0Length;
        return _http._HttpOutgoing._chunk0Length;
      }
      let size = this[_pendingChunkedFooter];
      let len = length;
      while (dart.notNull(len) > 0) {
        size = dart.notNull(size) + 1;
        len = len[$rightShift](4);
      }
      let footerAndHeader = _native_typed_data.NativeUint8List.new(dart.notNull(size) + 2);
      if (this[_pendingChunkedFooter] === 2) {
        footerAndHeader[$_set](0, 13);
        footerAndHeader[$_set](1, 10);
      }
      let index = size;
      while (dart.notNull(index) > dart.notNull(this[_pendingChunkedFooter])) {
        footerAndHeader[$_set](index = dart.notNull(index) - 1, hexDigits[$_get](dart.notNull(length) & 15));
        length = length[$rightShift](4);
      }
      footerAndHeader[$_set](dart.notNull(size) + 0, 13);
      footerAndHeader[$_set](dart.notNull(size) + 1, 10);
      return footerAndHeader;
    }
  };
  (_http._HttpOutgoing.new = function(socket) {
    if (socket == null) dart.nullFailed(I[181], 1680, 22, "socket");
    this[_doneCompleter$] = T$0.CompleterOfSocket().new();
    this.ignoreBody = false;
    this.headersWritten = false;
    this[_buffer$1] = null;
    this[_length$1] = 0;
    this[_closeFuture] = null;
    this.chunked = false;
    this[_pendingChunkedFooter] = 0;
    this.contentLength = null;
    this[_bytesWritten] = 0;
    this[_gzip] = false;
    this[_gzipSink] = null;
    this[_gzipAdd] = null;
    this[_gzipBuffer] = null;
    this[_gzipBufferLength] = 0;
    this[_socketError] = false;
    this.outbound = null;
    this.socket = socket;
    ;
  }).prototype = _http._HttpOutgoing.prototype;
  dart.addTypeTests(_http._HttpOutgoing);
  dart.addTypeCaches(_http._HttpOutgoing);
  _http._HttpOutgoing[dart.implements] = () => [async.StreamConsumer$(core.List$(core.int))];
  dart.setMethodSignature(_http._HttpOutgoing, () => ({
    __proto__: dart.getMethods(_http._HttpOutgoing.__proto__),
    writeHeaders: dart.fnType(dart.nullable(async.Future$(dart.void)), [], {drainRequest: core.bool, setOutgoing: core.bool}, {}),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    close: dart.fnType(async.Future, []),
    setHeader: dart.fnType(dart.void, [core.List$(core.int), core.int]),
    [_ignoreError]: dart.fnType(core.bool, [dart.dynamic]),
    [_addGZipChunk]: dart.fnType(dart.void, [core.List$(core.int), dart.fnType(dart.void, [core.List$(core.int)])]),
    [_addChunk$]: dart.fnType(dart.void, [core.List$(core.int), dart.fnType(dart.void, [core.List$(core.int)])]),
    [_chunkHeader]: dart.fnType(core.List$(core.int), [core.int])
  }));
  dart.setGetterSignature(_http._HttpOutgoing, () => ({
    __proto__: dart.getGetters(_http._HttpOutgoing.__proto__),
    done: async.Future$(io.Socket)
  }));
  dart.setSetterSignature(_http._HttpOutgoing, () => ({
    __proto__: dart.getSetters(_http._HttpOutgoing.__proto__),
    gzip: core.bool
  }));
  dart.setLibraryUri(_http._HttpOutgoing, I[177]);
  dart.setFieldSignature(_http._HttpOutgoing, () => ({
    __proto__: dart.getFields(_http._HttpOutgoing.__proto__),
    [_doneCompleter$]: dart.finalFieldType(async.Completer$(io.Socket)),
    socket: dart.finalFieldType(io.Socket),
    ignoreBody: dart.fieldType(core.bool),
    headersWritten: dart.fieldType(core.bool),
    [_buffer$1]: dart.fieldType(dart.nullable(typed_data.Uint8List)),
    [_length$1]: dart.fieldType(core.int),
    [_closeFuture]: dart.fieldType(dart.nullable(async.Future)),
    chunked: dart.fieldType(core.bool),
    [_pendingChunkedFooter]: dart.fieldType(core.int),
    contentLength: dart.fieldType(dart.nullable(core.int)),
    [_bytesWritten]: dart.fieldType(core.int),
    [_gzip]: dart.fieldType(core.bool),
    [_gzipSink]: dart.fieldType(dart.nullable(convert.ByteConversionSink)),
    [_gzipAdd]: dart.fieldType(dart.nullable(dart.fnType(dart.void, [core.List$(core.int)]))),
    [_gzipBuffer]: dart.fieldType(dart.nullable(typed_data.Uint8List)),
    [_gzipBufferLength]: dart.fieldType(core.int),
    [_socketError]: dart.fieldType(core.bool),
    outbound: dart.fieldType(dart.nullable(_http._HttpOutboundMessage))
  }));
  dart.defineLazy(_http._HttpOutgoing, {
    /*_http._HttpOutgoing._footerAndChunk0Length*/get _footerAndChunk0Length() {
      return C[472] || CT.C472;
    },
    /*_http._HttpOutgoing._chunk0Length*/get _chunk0Length() {
      return C[473] || CT.C473;
    }
  }, false);
  var _subscription$0 = dart.privateName(_http, "_subscription");
  var _dispose = dart.privateName(_http, "_dispose");
  var _idleTimer = dart.privateName(_http, "_idleTimer");
  var _currentUri = dart.privateName(_http, "_currentUri");
  var _nextResponseCompleter = dart.privateName(_http, "_nextResponseCompleter");
  var _streamFuture = dart.privateName(_http, "_streamFuture");
  var _context$0 = dart.privateName(_http, "_context");
  var _httpParser = dart.privateName(_http, "_httpParser");
  var _proxyCredentials = dart.privateName(_http, "_proxyCredentials");
  var _returnConnection = dart.privateName(_http, "_returnConnection");
  var _connectionClosedNoFurtherClosing = dart.privateName(_http, "_connectionClosedNoFurtherClosing");
  _http._HttpClientConnection = class _HttpClientConnection extends core.Object {
    send(uri, port, method, proxy, profileData) {
      let t296;
      if (uri == null) dart.nullFailed(I[181], 2083, 31, "uri");
      if (port == null) dart.nullFailed(I[181], 2083, 40, "port");
      if (method == null) dart.nullFailed(I[181], 2083, 53, "method");
      if (proxy == null) dart.nullFailed(I[181], 2083, 68, "proxy");
      if (dart.test(this.closed)) {
        dart.throw(new _http.HttpException.new("Socket closed before request was sent", {uri: uri}));
      }
      this[_currentUri] = uri;
      dart.nullCheck(this[_subscription$0]).pause();
      if (method === "CONNECT") {
        this[_httpParser].connectMethod = true;
      }
      let proxyCreds = null;
      let creds = null;
      let outgoing = new _http._HttpOutgoing.new(this[_socket$0]);
      let request = new _http._HttpClientRequest.new(outgoing, uri, method, proxy, this[_httpClient$], this, profileData);
      let host = uri.host;
      if (host[$contains](":")) host = "[" + dart.str(host) + "]";
      t296 = request.headers;
      (() => {
        t296.host = host;
        t296.port = port;
        t296.add("accept-encoding", "gzip");
        return t296;
      })();
      if (this[_httpClient$].userAgent != null) {
        request.headers.add("user-agent", dart.nullCheck(this[_httpClient$].userAgent));
      }
      if (dart.test(proxy.isAuthenticated)) {
        let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(proxy.username) + ":" + dart.str(proxy.password)));
        request.headers.set("proxy-authorization", "Basic " + dart.str(auth));
      } else if (!dart.test(proxy.isDirect) && dart.notNull(this[_httpClient$][_proxyCredentials][$length]) > 0) {
        proxyCreds = this[_httpClient$][_findProxyCredentials](proxy);
        if (proxyCreds != null) {
          proxyCreds.authorize(request);
        }
      }
      if (uri.userInfo != null && !uri.userInfo[$isEmpty]) {
        let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(uri.userInfo));
        request.headers.set("authorization", "Basic " + dart.str(auth));
      } else {
        creds = this[_httpClient$][_findCredentials](uri);
        if (creds != null) {
          creds.authorize(request);
        }
      }
      this[_httpParser].isHead = method === "HEAD";
      this[_streamFuture] = outgoing.done.then(io.Socket, dart.fn(s => {
        if (s == null) dart.nullFailed(I[181], 2141, 56, "s");
        let nextResponseCompleter = T.CompleterOf_HttpIncoming().new();
        this[_nextResponseCompleter] = nextResponseCompleter;
        nextResponseCompleter.future.then(core.Null, dart.fn(incoming => {
          if (incoming == null) dart.nullFailed(I[181], 2147, 42, "incoming");
          this[_currentUri] = null;
          incoming.dataDone.then(core.Null, dart.fn(closing => {
            if (dart.test(incoming.upgraded)) {
              this[_httpClient$][_connectionClosed](this);
              this.startTimer();
              return;
            }
            if (dart.test(this.closed) || method === "CONNECT" && incoming.statusCode === 200) {
              return;
            }
            if (!dart.dtest(closing) && !dart.test(this[_dispose]) && dart.test(incoming.headers.persistentConnection) && dart.test(request.persistentConnection)) {
              this[_httpClient$][_returnConnection](this);
              dart.nullCheck(this[_subscription$0]).resume();
            } else {
              this.destroy();
            }
          }, T$.dynamicToNull()));
          if (proxyCreds != null && dart.equals(proxyCreds.scheme, _http._AuthenticationScheme.DIGEST)) {
            let authInfo = incoming.headers._get("proxy-authentication-info");
            if (authInfo != null && authInfo[$length] === 1) {
              let header = _http._HeaderValue.parse(authInfo[$_get](0), {parameterSeparator: ","});
              let nextnonce = header.parameters[$_get]("nextnonce");
              if (nextnonce != null) proxyCreds.nonce = nextnonce;
            }
          }
          if (creds != null && dart.equals(creds.scheme, _http._AuthenticationScheme.DIGEST)) {
            let authInfo = incoming.headers._get("authentication-info");
            if (authInfo != null && authInfo[$length] === 1) {
              let header = _http._HeaderValue.parse(authInfo[$_get](0), {parameterSeparator: ","});
              let nextnonce = header.parameters[$_get]("nextnonce");
              if (nextnonce != null) creds.nonce = nextnonce;
            }
          }
          request[_onIncoming](incoming);
        }, T._HttpIncomingToNull())).catchError(dart.fn(error => {
          dart.throw(new _http.HttpException.new("Connection closed before data was received", {uri: uri}));
        }, T$0.dynamicToNever()), {test: dart.fn(error => {
            if (error == null) dart.nullFailed(I[181], 2202, 17, "error");
            return core.StateError.is(error);
          }, T$.ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
          this.destroy();
          request[_onError$](error, core.StackTrace.as(stackTrace));
        }, T$.dynamicAnddynamicToNull()));
        dart.nullCheck(this[_subscription$0]).resume();
        return s;
      }, T.SocketToSocket()));
      T.FutureOfSocketN().value(this[_streamFuture]).catchError(dart.fn(e => {
        this.destroy();
      }, T$.dynamicToNull()));
      return request;
    }
    detachSocket() {
      return dart.nullCheck(this[_streamFuture]).then(io.Socket, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[181], 2220, 10, "_");
        return new _http._DetachedSocket.new(this[_socket$0], this[_httpParser].detachIncoming());
      }, T.SocketTo_DetachedSocket()));
    }
    destroy() {
      this.closed = true;
      this[_httpClient$][_connectionClosed](this);
      this[_socket$0].destroy();
    }
    destroyFromExternal() {
      this.closed = true;
      this[_httpClient$][_connectionClosedNoFurtherClosing](this);
      this[_socket$0].destroy();
    }
    close() {
      this.closed = true;
      this[_httpClient$][_connectionClosed](this);
      dart.nullCheck(this[_streamFuture]).timeout(this[_httpClient$].idleTimeout).then(dart.void, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[181], 2240, 16, "_");
        return this[_socket$0].destroy();
      }, T.SocketTovoid()));
    }
    closeFromExternal() {
      this.closed = true;
      this[_httpClient$][_connectionClosedNoFurtherClosing](this);
      dart.nullCheck(this[_streamFuture]).timeout(this[_httpClient$].idleTimeout).then(dart.void, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[181], 2248, 16, "_");
        return this[_socket$0].destroy();
      }, T.SocketTovoid()));
    }
    createProxyTunnel(host, port, proxy, callback, profileData) {
      let t296;
      if (host == null) dart.nullFailed(I[181], 2252, 14, "host");
      if (port == null) dart.nullFailed(I[181], 2253, 11, "port");
      if (proxy == null) dart.nullFailed(I[181], 2254, 14, "proxy");
      if (callback == null) dart.nullFailed(I[181], 2255, 12, "callback");
      let method = "CONNECT";
      let uri = core._Uri.new({host: host, port: port});
      t296 = profileData;
      t296 == null ? null : t296.proxyEvent(proxy);
      let proxyProfileData = null;
      if (profileData != null) {
        proxyProfileData = _http.HttpProfiler.startRequest(method, uri, {parentRequest: profileData});
      }
      let request = this.send(core._Uri.new({host: host, port: port}), port, method, proxy, proxyProfileData);
      if (dart.test(proxy.isAuthenticated)) {
        let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(proxy.username) + ":" + dart.str(proxy.password)));
        request.headers.set("proxy-authorization", "Basic " + dart.str(auth));
      }
      return request.close().then(io.SecureSocket, dart.fn(response => {
        let t296;
        if (response == null) dart.nullFailed(I[181], 2280, 34, "response");
        if (response.statusCode !== 200) {
          let error = "Proxy failed to establish tunnel " + "(" + dart.str(response.statusCode) + " " + dart.str(response.reasonPhrase) + ")";
          t296 = profileData;
          t296 == null ? null : t296.requestEvent(error);
          dart.throw(new _http.HttpException.new(error, {uri: request.uri}));
        }
        let socket = _http._HttpClientResponse.as(response)[_httpRequest$][_httpClientConnection$][_socket$0];
        return io.SecureSocket.secure(socket, {host: host, context: this[_context$0], onBadCertificate: callback});
      }, T.HttpClientResponseToFutureOfSecureSocket())).then(_http._HttpClientConnection, dart.fn(secureSocket => {
        let t296;
        if (secureSocket == null) dart.nullFailed(I[181], 2293, 14, "secureSocket");
        let key = core.String.as(_http._HttpClientConnection.makeKey(true, host, port));
        t296 = profileData;
        t296 == null ? null : t296.requestEvent("Proxy tunnel established");
        return new _http._HttpClientConnection.new(key, secureSocket, request[_httpClient$], true);
      }, T.SecureSocketTo_HttpClientConnection()));
    }
    get connectionInfo() {
      return _http._HttpConnectionInfo.create(this[_socket$0]);
    }
    static makeKey(isSecure, host, port) {
      if (isSecure == null) dart.nullFailed(I[181], 2303, 23, "isSecure");
      if (host == null) dart.nullFailed(I[181], 2303, 40, "host");
      if (port == null) dart.nullFailed(I[181], 2303, 50, "port");
      return dart.test(isSecure) ? "ssh:" + dart.str(host) + ":" + dart.str(port) : dart.str(host) + ":" + dart.str(port);
    }
    stopTimer() {
      let t296;
      t296 = this[_idleTimer];
      t296 == null ? null : t296.cancel();
      this[_idleTimer] = null;
    }
    startTimer() {
      if (!(this[_idleTimer] == null)) dart.assertFailed(null, I[181], 2313, 12, "_idleTimer == null");
      this[_idleTimer] = async.Timer.new(this[_httpClient$].idleTimeout, dart.fn(() => {
        this[_idleTimer] = null;
        this.close();
      }, T$.VoidTovoid()));
    }
  };
  (_http._HttpClientConnection.new = function(key, _socket, _httpClient, _proxyTunnel = false, _context = null) {
    if (key == null) dart.nullFailed(I[181], 2036, 30, "key");
    if (_socket == null) dart.nullFailed(I[181], 2036, 40, "_socket");
    if (_httpClient == null) dart.nullFailed(I[181], 2036, 54, "_httpClient");
    if (_proxyTunnel == null) dart.nullFailed(I[181], 2037, 13, "_proxyTunnel");
    this[_subscription$0] = null;
    this[_dispose] = false;
    this[_idleTimer] = null;
    this.closed = false;
    this[_currentUri] = null;
    this[_nextResponseCompleter] = null;
    this[_streamFuture] = null;
    this.key = key;
    this[_socket$0] = _socket;
    this[_httpClient$] = _httpClient;
    this[_proxyTunnel$] = _proxyTunnel;
    this[_context$0] = _context;
    this[_httpParser] = _http._HttpParser.responseParser();
    this[_httpParser].listenToStream(this[_socket$0]);
    this[_subscription$0] = this[_httpParser].listen(dart.fn(incoming => {
      if (incoming == null) dart.nullFailed(I[181], 2043, 41, "incoming");
      dart.nullCheck(this[_subscription$0]).pause();
      if (this[_nextResponseCompleter] == null) {
        dart.throw(new _http.HttpException.new("Unexpected response (unsolicited response without request).", {uri: this[_currentUri]}));
      }
      if (incoming.statusCode === 100) {
        incoming.drain(dart.dynamic).then(core.Null, dart.fn(_ => {
          dart.nullCheck(this[_subscription$0]).resume();
        }, T$.dynamicToNull())).catchError(dart.fn((error, stackTrace) => {
          if (stackTrace == null) dart.nullFailed(I[181], 2061, 50, "stackTrace");
          dart.nullCheck(this[_nextResponseCompleter]).completeError(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
          this[_nextResponseCompleter] = null;
        }, T.dynamicAndStackTraceToNull()));
      } else {
        dart.nullCheck(this[_nextResponseCompleter]).complete(incoming);
        this[_nextResponseCompleter] = null;
      }
    }, T._HttpIncomingTovoid()), {onError: dart.fn((error, stackTrace) => {
        let t296;
        if (stackTrace == null) dart.nullFailed(I[181], 2070, 44, "stackTrace");
        t296 = this[_nextResponseCompleter];
        t296 == null ? null : t296.completeError(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
        this[_nextResponseCompleter] = null;
      }, T.dynamicAndStackTraceToNull()), onDone: dart.fn(() => {
        let t296;
        t296 = this[_nextResponseCompleter];
        t296 == null ? null : t296.completeError(new _http.HttpException.new("Connection closed before response was received", {uri: this[_currentUri]}));
        this[_nextResponseCompleter] = null;
        this.close();
      }, T$.VoidTovoid())});
  }).prototype = _http._HttpClientConnection.prototype;
  dart.addTypeTests(_http._HttpClientConnection);
  dart.addTypeCaches(_http._HttpClientConnection);
  dart.setMethodSignature(_http._HttpClientConnection, () => ({
    __proto__: dart.getMethods(_http._HttpClientConnection.__proto__),
    send: dart.fnType(_http._HttpClientRequest, [core.Uri, core.int, core.String, _http._Proxy, dart.nullable(_http._HttpProfileData)]),
    detachSocket: dart.fnType(async.Future$(io.Socket), []),
    destroy: dart.fnType(dart.void, []),
    destroyFromExternal: dart.fnType(dart.void, []),
    close: dart.fnType(dart.void, []),
    closeFromExternal: dart.fnType(dart.void, []),
    createProxyTunnel: dart.fnType(async.Future$(_http._HttpClientConnection), [core.String, core.int, _http._Proxy, dart.fnType(core.bool, [io.X509Certificate]), dart.nullable(_http._HttpProfileData)]),
    stopTimer: dart.fnType(dart.void, []),
    startTimer: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_http._HttpClientConnection, () => ({
    __proto__: dart.getGetters(_http._HttpClientConnection.__proto__),
    connectionInfo: dart.nullable(_http.HttpConnectionInfo)
  }));
  dart.setLibraryUri(_http._HttpClientConnection, I[177]);
  dart.setFieldSignature(_http._HttpClientConnection, () => ({
    __proto__: dart.getFields(_http._HttpClientConnection.__proto__),
    key: dart.finalFieldType(core.String),
    [_socket$0]: dart.finalFieldType(io.Socket),
    [_proxyTunnel$]: dart.finalFieldType(core.bool),
    [_context$0]: dart.finalFieldType(dart.nullable(io.SecurityContext)),
    [_httpParser]: dart.finalFieldType(_http._HttpParser),
    [_subscription$0]: dart.fieldType(dart.nullable(async.StreamSubscription)),
    [_httpClient$]: dart.finalFieldType(_http._HttpClient),
    [_dispose]: dart.fieldType(core.bool),
    [_idleTimer]: dart.fieldType(dart.nullable(async.Timer)),
    closed: dart.fieldType(core.bool),
    [_currentUri]: dart.fieldType(dart.nullable(core.Uri)),
    [_nextResponseCompleter]: dart.fieldType(dart.nullable(async.Completer$(_http._HttpIncoming))),
    [_streamFuture]: dart.fieldType(dart.nullable(async.Future$(io.Socket)))
  }));
  _http._ConnectionInfo = class _ConnectionInfo extends core.Object {};
  (_http._ConnectionInfo.new = function(connection, proxy) {
    if (connection == null) dart.nullFailed(I[181], 2325, 24, "connection");
    if (proxy == null) dart.nullFailed(I[181], 2325, 41, "proxy");
    this.connection = connection;
    this.proxy = proxy;
    ;
  }).prototype = _http._ConnectionInfo.prototype;
  dart.addTypeTests(_http._ConnectionInfo);
  dart.addTypeCaches(_http._ConnectionInfo);
  dart.setLibraryUri(_http._ConnectionInfo, I[177]);
  dart.setFieldSignature(_http._ConnectionInfo, () => ({
    __proto__: dart.getFields(_http._ConnectionInfo.__proto__),
    connection: dart.finalFieldType(_http._HttpClientConnection),
    proxy: dart.finalFieldType(_http._Proxy)
  }));
  var _idle = dart.privateName(_http, "_idle");
  var _active = dart.privateName(_http, "_active");
  var _socketTasks = dart.privateName(_http, "_socketTasks");
  var _pending = dart.privateName(_http, "_pending");
  var _connecting = dart.privateName(_http, "_connecting");
  var _checkPending = dart.privateName(_http, "_checkPending");
  var _connectionsChanged = dart.privateName(_http, "_connectionsChanged");
  var _badCertificateCallback = dart.privateName(_http, "_badCertificateCallback");
  var _getConnectionTarget = dart.privateName(_http, "_getConnectionTarget");
  _http._ConnectionTarget = class _ConnectionTarget extends core.Object {
    get isEmpty() {
      return dart.test(this[_idle][$isEmpty]) && dart.test(this[_active][$isEmpty]) && this[_connecting] === 0;
    }
    get hasIdle() {
      return this[_idle][$isNotEmpty];
    }
    get hasActive() {
      return dart.test(this[_active][$isNotEmpty]) || dart.notNull(this[_connecting]) > 0;
    }
    takeIdle() {
      if (!dart.test(this.hasIdle)) dart.assertFailed(null, I[181], 2351, 12, "hasIdle");
      let connection = this[_idle][$first];
      this[_idle].remove(connection);
      connection.stopTimer();
      this[_active].add(connection);
      return connection;
    }
    [_checkPending]() {
      if (dart.test(this[_pending][$isNotEmpty])) {
        dart.dcall(this[_pending].removeFirst(), []);
      }
    }
    addNewActive(connection) {
      if (connection == null) dart.nullFailed(I[181], 2365, 43, "connection");
      this[_active].add(connection);
    }
    returnConnection(connection) {
      if (connection == null) dart.nullFailed(I[181], 2369, 47, "connection");
      if (!dart.test(this[_active].contains(connection))) dart.assertFailed(null, I[181], 2370, 12, "_active.contains(connection)");
      this[_active].remove(connection);
      this[_idle].add(connection);
      connection.startTimer();
      this[_checkPending]();
    }
    connectionClosed(connection) {
      if (connection == null) dart.nullFailed(I[181], 2377, 47, "connection");
      if (!(!dart.test(this[_active].contains(connection)) || !dart.test(this[_idle].contains(connection)))) dart.assertFailed(null, I[181], 2378, 12, "!_active.contains(connection) || !_idle.contains(connection)");
      this[_active].remove(connection);
      this[_idle].remove(connection);
      this[_checkPending]();
    }
    close(force) {
      if (force == null) dart.nullFailed(I[181], 2384, 19, "force");
      for (let t of this[_socketTasks][$toList]()) {
        t.socket.then(core.Null, dart.fn(s => {
          dart.dsend(s, 'destroy', []);
        }, T$.dynamicToNull()), {onError: dart.fn(e => {
          }, T$.dynamicToNull())});
        t.cancel();
      }
      if (dart.test(force)) {
        for (let c of this[_idle][$toList]()) {
          c.destroyFromExternal();
        }
        for (let c of this[_active][$toList]()) {
          c.destroyFromExternal();
        }
      } else {
        for (let c of this[_idle][$toList]()) {
          c.closeFromExternal();
        }
      }
    }
    connect(uriHost, uriPort, proxy, client, profileData) {
      if (uriHost == null) dart.nullFailed(I[181], 2407, 42, "uriHost");
      if (uriPort == null) dart.nullFailed(I[181], 2407, 55, "uriPort");
      if (proxy == null) dart.nullFailed(I[181], 2407, 71, "proxy");
      if (client == null) dart.nullFailed(I[181], 2408, 19, "client");
      if (dart.test(this.hasIdle)) {
        let connection = this.takeIdle();
        client[_connectionsChanged]();
        return T.FutureOf_ConnectionInfo().value(new _http._ConnectionInfo.new(connection, proxy));
      }
      let maxConnectionsPerHost = client.maxConnectionsPerHost;
      if (maxConnectionsPerHost != null && dart.notNull(this[_active][$length]) + dart.notNull(this[_connecting]) >= dart.notNull(maxConnectionsPerHost)) {
        let completer = T.CompleterOf_ConnectionInfo().new();
        this[_pending].add(dart.fn(() => {
          completer.complete(this.connect(uriHost, uriPort, proxy, client, profileData));
        }, T$.VoidToNull()));
        return completer.future;
      }
      let currentBadCertificateCallback = client[_badCertificateCallback];
      function callback(certificate) {
        if (certificate == null) dart.nullFailed(I[181], 2426, 35, "certificate");
        if (currentBadCertificateCallback == null) return false;
        return currentBadCertificateCallback(certificate, uriHost, uriPort);
      }
      dart.fn(callback, T.X509CertificateTobool());
      let connectionTask = dart.test(this.isSecure) && dart.test(proxy.isDirect) ? io.SecureSocket.startConnect(this.host, this.port, {context: this.context, onBadCertificate: callback}) : io.Socket.startConnect(this.host, this.port);
      this[_connecting] = dart.notNull(this[_connecting]) + 1;
      return connectionTask.then(_http._ConnectionInfo, dart.fn(task => {
        if (task == null) dart.nullFailed(I[181], 2436, 48, "task");
        this[_socketTasks].add(task);
        let socketFuture = task.socket;
        let connectionTimeout = client.connectionTimeout;
        if (connectionTimeout != null) {
          socketFuture = socketFuture.timeout(connectionTimeout);
        }
        return socketFuture.then(_http._ConnectionInfo, dart.fn(socket => {
          this[_connecting] = dart.notNull(this[_connecting]) - 1;
          dart.dsend(socket, 'setOption', [io.SocketOption.tcpNoDelay, true]);
          let connection = new _http._HttpClientConnection.new(this.key, io.Socket.as(socket), client, false, this.context);
          if (dart.test(this.isSecure) && !dart.test(proxy.isDirect)) {
            connection[_dispose] = true;
            return connection.createProxyTunnel(uriHost, uriPort, proxy, callback, profileData).then(_http._ConnectionInfo, dart.fn(tunnel => {
              if (tunnel == null) dart.nullFailed(I[181], 2452, 22, "tunnel");
              client[_getConnectionTarget](uriHost, uriPort, true).addNewActive(tunnel);
              this[_socketTasks].remove(task);
              return new _http._ConnectionInfo.new(tunnel, proxy);
            }, T._HttpClientConnectionTo_ConnectionInfo()));
          } else {
            this.addNewActive(connection);
            this[_socketTasks].remove(task);
            return new _http._ConnectionInfo.new(connection, proxy);
          }
        }, T.dynamicToFutureOrOf_ConnectionInfo()), {onError: dart.fn(error => {
            if (async.TimeoutException.is(error)) {
              if (!(connectionTimeout != null)) dart.assertFailed(null, I[181], 2471, 18, "connectionTimeout != null");
              this[_connecting] = dart.notNull(this[_connecting]) - 1;
              this[_socketTasks].remove(task);
              task.cancel();
              dart.throw(new io.SocketException.new("HTTP connection timed out after " + dart.str(connectionTimeout) + ", " + "host: " + dart.str(this.host) + ", port: " + dart.str(this.port)));
            }
            this[_socketTasks].remove(task);
            this[_checkPending]();
            dart.throw(error);
          }, T$0.dynamicToNever())});
      }, T.ConnectionTaskToFutureOf_ConnectionInfo()), {onError: dart.fn(error => {
          this[_connecting] = dart.notNull(this[_connecting]) - 1;
          dart.throw(error);
        }, T$0.dynamicToNever())});
    }
  };
  (_http._ConnectionTarget.new = function(key, host, port, isSecure, context) {
    if (key == null) dart.nullFailed(I[181], 2342, 12, "key");
    if (host == null) dart.nullFailed(I[181], 2342, 22, "host");
    if (port == null) dart.nullFailed(I[181], 2342, 33, "port");
    if (isSecure == null) dart.nullFailed(I[181], 2342, 44, "isSecure");
    this[_idle] = new (T._HashSetOf_HttpClientConnection()).new();
    this[_active] = new (T._HashSetOf_HttpClientConnection()).new();
    this[_socketTasks] = new (T._HashSetOfConnectionTask()).new();
    this[_pending] = new collection.ListQueue.new();
    this[_connecting] = 0;
    this.key = key;
    this.host = host;
    this.port = port;
    this.isSecure = isSecure;
    this.context = context;
    ;
  }).prototype = _http._ConnectionTarget.prototype;
  dart.addTypeTests(_http._ConnectionTarget);
  dart.addTypeCaches(_http._ConnectionTarget);
  dart.setMethodSignature(_http._ConnectionTarget, () => ({
    __proto__: dart.getMethods(_http._ConnectionTarget.__proto__),
    takeIdle: dart.fnType(_http._HttpClientConnection, []),
    [_checkPending]: dart.fnType(dart.dynamic, []),
    addNewActive: dart.fnType(dart.void, [_http._HttpClientConnection]),
    returnConnection: dart.fnType(dart.void, [_http._HttpClientConnection]),
    connectionClosed: dart.fnType(dart.void, [_http._HttpClientConnection]),
    close: dart.fnType(dart.void, [core.bool]),
    connect: dart.fnType(async.Future$(_http._ConnectionInfo), [core.String, core.int, _http._Proxy, _http._HttpClient, dart.nullable(_http._HttpProfileData)])
  }));
  dart.setGetterSignature(_http._ConnectionTarget, () => ({
    __proto__: dart.getGetters(_http._ConnectionTarget.__proto__),
    isEmpty: core.bool,
    hasIdle: core.bool,
    hasActive: core.bool
  }));
  dart.setLibraryUri(_http._ConnectionTarget, I[177]);
  dart.setFieldSignature(_http._ConnectionTarget, () => ({
    __proto__: dart.getFields(_http._ConnectionTarget.__proto__),
    key: dart.finalFieldType(core.String),
    host: dart.finalFieldType(core.String),
    port: dart.finalFieldType(core.int),
    isSecure: dart.finalFieldType(core.bool),
    context: dart.finalFieldType(dart.nullable(io.SecurityContext)),
    [_idle]: dart.finalFieldType(core.Set$(_http._HttpClientConnection)),
    [_active]: dart.finalFieldType(core.Set$(_http._HttpClientConnection)),
    [_socketTasks]: dart.finalFieldType(core.Set$(io.ConnectionTask)),
    [_pending]: dart.finalFieldType(collection.Queue),
    [_connecting]: dart.fieldType(core.int)
  }));
  var _closing = dart.privateName(_http, "_closing");
  var _closingForcefully = dart.privateName(_http, "_closingForcefully");
  var _connectionTargets = dart.privateName(_http, "_connectionTargets");
  var _credentials = dart.privateName(_http, "_credentials");
  var _findProxy = dart.privateName(_http, "_findProxy");
  var _idleTimeout = dart.privateName(_http, "_idleTimeout");
  var _openUrl = dart.privateName(_http, "_openUrl");
  var _closeConnections = dart.privateName(_http, "_closeConnections");
  var _Proxy_isDirect = dart.privateName(_http, "_Proxy.isDirect");
  var _Proxy_password = dart.privateName(_http, "_Proxy.password");
  var _Proxy_username = dart.privateName(_http, "_Proxy.username");
  var _Proxy_port = dart.privateName(_http, "_Proxy.port");
  var _Proxy_host = dart.privateName(_http, "_Proxy.host");
  var _ProxyConfiguration_proxies = dart.privateName(_http, "_ProxyConfiguration.proxies");
  var _getConnection = dart.privateName(_http, "_getConnection");
  _http._HttpClient = class _HttpClient extends core.Object {
    get idleTimeout() {
      return this[_idleTimeout];
    }
    set idleTimeout(timeout) {
      if (timeout == null) dart.nullFailed(I[181], 2518, 33, "timeout");
      this[_idleTimeout] = timeout;
      for (let c of this[_connectionTargets][$values]) {
        for (let idle of c[_idle]) {
          idle.stopTimer();
          idle.startTimer();
        }
      }
    }
    set badCertificateCallback(callback) {
      this[_badCertificateCallback] = callback;
    }
    open(method, host, port, path) {
      if (method == null) dart.nullFailed(I[181], 2535, 14, "method");
      if (host == null) dart.nullFailed(I[181], 2535, 29, "host");
      if (port == null) dart.nullFailed(I[181], 2535, 39, "port");
      if (path == null) dart.nullFailed(I[181], 2535, 52, "path");
      let fragmentStart = path.length;
      let queryStart = path.length;
      for (let i = path.length - 1; i >= 0; i = i - 1) {
        let char = path[$codeUnitAt](i);
        if (char === 35) {
          fragmentStart = i;
          queryStart = i;
        } else if (char === 63) {
          queryStart = i;
        }
      }
      let query = null;
      if (queryStart < fragmentStart) {
        query = path[$substring](queryStart + 1, fragmentStart);
        path = path[$substring](0, queryStart);
      }
      let uri = core._Uri.new({scheme: "http", host: host, port: port, path: path, query: query});
      return this[_openUrl](method, uri);
    }
    openUrl(method, url) {
      if (method == null) dart.nullFailed(I[181], 2559, 44, "method");
      if (url == null) dart.nullFailed(I[181], 2559, 56, "url");
      return this[_openUrl](method, url);
    }
    get(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2562, 40, "host");
      if (port == null) dart.nullFailed(I[181], 2562, 50, "port");
      if (path == null) dart.nullFailed(I[181], 2562, 63, "path");
      return this.open("get", host, port, path);
    }
    getUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2565, 40, "url");
      return this[_openUrl]("get", url);
    }
    post(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2567, 41, "host");
      if (port == null) dart.nullFailed(I[181], 2567, 51, "port");
      if (path == null) dart.nullFailed(I[181], 2567, 64, "path");
      return this.open("post", host, port, path);
    }
    postUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2570, 41, "url");
      return this[_openUrl]("post", url);
    }
    put(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2572, 40, "host");
      if (port == null) dart.nullFailed(I[181], 2572, 50, "port");
      if (path == null) dart.nullFailed(I[181], 2572, 63, "path");
      return this.open("put", host, port, path);
    }
    putUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2575, 40, "url");
      return this[_openUrl]("put", url);
    }
    delete(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2577, 43, "host");
      if (port == null) dart.nullFailed(I[181], 2577, 53, "port");
      if (path == null) dart.nullFailed(I[181], 2577, 66, "path");
      return this.open("delete", host, port, path);
    }
    deleteUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2580, 43, "url");
      return this[_openUrl]("delete", url);
    }
    head(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2582, 41, "host");
      if (port == null) dart.nullFailed(I[181], 2582, 51, "port");
      if (path == null) dart.nullFailed(I[181], 2582, 64, "path");
      return this.open("head", host, port, path);
    }
    headUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2585, 41, "url");
      return this[_openUrl]("head", url);
    }
    patch(host, port, path) {
      if (host == null) dart.nullFailed(I[181], 2587, 42, "host");
      if (port == null) dart.nullFailed(I[181], 2587, 52, "port");
      if (path == null) dart.nullFailed(I[181], 2587, 65, "path");
      return this.open("patch", host, port, path);
    }
    patchUrl(url) {
      if (url == null) dart.nullFailed(I[181], 2590, 42, "url");
      return this[_openUrl]("patch", url);
    }
    close(opts) {
      let force = opts && 'force' in opts ? opts.force : false;
      if (force == null) dart.nullFailed(I[181], 2592, 20, "force");
      this[_closing] = true;
      this[_closingForcefully] = force;
      this[_closeConnections](this[_closingForcefully]);
      if (!!dart.test(this[_connectionTargets][$values][$any](dart.fn(s => {
        if (s == null) dart.nullFailed(I[181], 2596, 44, "s");
        return s.hasIdle;
      }, T._ConnectionTargetTobool())))) dart.assertFailed(null, I[181], 2596, 12, "!_connectionTargets.values.any((s) => s.hasIdle)");
      if (!(!dart.test(force) || !dart.test(this[_connectionTargets][$values][$any](dart.fn(s => {
        if (s == null) dart.nullFailed(I[181], 2598, 51, "s");
        return s[_active][$isNotEmpty];
      }, T._ConnectionTargetTobool()))))) dart.assertFailed(null, I[181], 2598, 9, "!force || !_connectionTargets.values.any((s) => s._active.isNotEmpty)");
    }
    set authenticate(f) {
      this[_authenticate] = f;
    }
    addCredentials(url, realm, cr) {
      if (url == null) dart.nullFailed(I[181], 2605, 27, "url");
      if (realm == null) dart.nullFailed(I[181], 2605, 39, "realm");
      if (cr == null) dart.nullFailed(I[181], 2605, 68, "cr");
      this[_credentials][$add](new _http._SiteCredentials.new(url, realm, _http._HttpClientCredentials.as(cr)));
    }
    set authenticateProxy(f) {
      this[_authenticateProxy] = f;
    }
    addProxyCredentials(host, port, realm, cr) {
      if (host == null) dart.nullFailed(I[181], 2616, 14, "host");
      if (port == null) dart.nullFailed(I[181], 2616, 24, "port");
      if (realm == null) dart.nullFailed(I[181], 2616, 37, "realm");
      if (cr == null) dart.nullFailed(I[181], 2616, 66, "cr");
      this[_proxyCredentials][$add](new _http._ProxyCredentials.new(host, port, realm, _http._HttpClientCredentials.as(cr)));
    }
    set findProxy(f) {
      return this[_findProxy] = f;
    }
    [_openUrl](method, uri) {
      if (method == null) dart.nullFailed(I[181], 2623, 46, "method");
      if (uri == null) dart.nullFailed(I[181], 2623, 58, "uri");
      if (dart.test(this[_closing])) {
        dart.throw(new core.StateError.new("Client is closed"));
      }
      uri = uri.removeFragment();
      if (method == null) {
        dart.throw(new core.ArgumentError.new(method));
      }
      if (method !== "CONNECT") {
        if (uri.host[$isEmpty]) {
          dart.throw(new core.ArgumentError.new("No host specified in URI " + dart.str(uri)));
        } else if (uri.scheme !== "http" && uri.scheme !== "https") {
          dart.throw(new core.ArgumentError.new("Unsupported scheme '" + dart.str(uri.scheme) + "' in URI " + dart.str(uri)));
        }
      }
      let isSecure = uri.isScheme("https");
      if (!dart.test(isSecure) && !dart.test(io.isInsecureConnectionAllowed(uri.host))) {
        dart.throw(new core.StateError.new("Insecure HTTP is not allowed by platform: " + dart.str(uri)));
      }
      let port = uri.port;
      if (port === 0) {
        port = dart.test(isSecure) ? 443 : 80;
      }
      let proxyConf = C[475] || CT.C475;
      let findProxy = this[_findProxy];
      if (findProxy != null) {
        try {
          proxyConf = new _http._ProxyConfiguration.new(core.String.as(dart.dcall(findProxy, [uri])));
        } catch (e) {
          let error = dart.getThrown(e);
          let stackTrace = dart.stackTrace(e);
          if (core.Object.is(error)) {
            return T.FutureOf_HttpClientRequest().error(error, stackTrace);
          } else
            throw e;
        }
      }
      let profileData = null;
      if (dart.test(_http.HttpClient.enableTimelineLogging)) {
        profileData = _http.HttpProfiler.startRequest(method, uri);
      }
      return this[_getConnection](uri.host, port, proxyConf, isSecure, profileData).then(_http._HttpClientRequest, dart.fn(info => {
        if (info == null) dart.nullFailed(I[181], 2669, 32, "info");
        function send(info) {
          let t297;
          if (info == null) dart.nullFailed(I[181], 2670, 47, "info");
          t297 = profileData;
          t297 == null ? null : t297.requestEvent("Connection established");
          return info.connection.send(uri, port, method[$toUpperCase](), info.proxy, profileData);
        }
        dart.fn(send, T._ConnectionInfoTo_HttpClientRequest());
        if (dart.test(info.connection.closed)) {
          return this[_getConnection](uri.host, port, proxyConf, isSecure, profileData).then(_http._HttpClientRequest, send);
        }
        return send(info);
      }, T._ConnectionInfoToFutureOrOf_HttpClientRequest()), {onError: dart.fn(error => {
          let t297;
          t297 = profileData;
          t297 == null ? null : t297.finishRequestWithError(dart.toString(error));
          dart.throw(error);
        }, T$0.dynamicToNever())});
    }
    [_openUrlFromRequest](method, uri, previous) {
      if (method == null) dart.nullFailed(I[181], 2690, 14, "method");
      if (uri == null) dart.nullFailed(I[181], 2690, 26, "uri");
      if (previous == null) dart.nullFailed(I[181], 2690, 50, "previous");
      let resolved = previous.uri.resolveUri(uri);
      return this[_openUrl](method, resolved).then(_http._HttpClientRequest, dart.fn(request => {
        let t297, t297$;
        if (request == null) dart.nullFailed(I[181], 2694, 64, "request");
        t297 = request;
        (() => {
          t297.followRedirects = previous.followRedirects;
          t297.maxRedirects = previous.maxRedirects;
          return t297;
        })();
        for (let header of previous.headers[_headers][$keys]) {
          if (request.headers._get(header) == null) {
            request.headers.set(header, dart.nullCheck(previous.headers._get(header)));
          }
        }
        t297$ = request;
        return (() => {
          t297$.headers.chunkedTransferEncoding = false;
          t297$.contentLength = 0;
          return t297$;
        })();
      }, T._HttpClientRequestTo_HttpClientRequest()));
    }
    [_returnConnection](connection) {
      if (connection == null) dart.nullFailed(I[181], 2713, 48, "connection");
      dart.nullCheck(this[_connectionTargets][$_get](connection.key)).returnConnection(connection);
      this[_connectionsChanged]();
    }
    [_connectionClosed](connection) {
      if (connection == null) dart.nullFailed(I[181], 2719, 48, "connection");
      connection.stopTimer();
      let connectionTarget = this[_connectionTargets][$_get](connection.key);
      if (connectionTarget != null) {
        connectionTarget.connectionClosed(connection);
        if (dart.test(connectionTarget.isEmpty)) {
          this[_connectionTargets][$remove](connection.key);
        }
        this[_connectionsChanged]();
      }
    }
    [_connectionClosedNoFurtherClosing](connection) {
      if (connection == null) dart.nullFailed(I[181], 2734, 64, "connection");
      connection.stopTimer();
      let connectionTarget = this[_connectionTargets][$_get](connection.key);
      if (connectionTarget != null) {
        connectionTarget.connectionClosed(connection);
        if (dart.test(connectionTarget.isEmpty)) {
          this[_connectionTargets][$remove](connection.key);
        }
      }
    }
    [_connectionsChanged]() {
      if (dart.test(this[_closing])) {
        this[_closeConnections](this[_closingForcefully]);
      }
    }
    [_closeConnections](force) {
      if (force == null) dart.nullFailed(I[181], 2751, 31, "force");
      for (let connectionTarget of this[_connectionTargets][$values][$toList]()) {
        connectionTarget.close(force);
      }
    }
    [_getConnectionTarget](host, port, isSecure) {
      if (host == null) dart.nullFailed(I[181], 2757, 49, "host");
      if (port == null) dart.nullFailed(I[181], 2757, 59, "port");
      if (isSecure == null) dart.nullFailed(I[181], 2757, 70, "isSecure");
      let key = core.String.as(_http._HttpClientConnection.makeKey(isSecure, host, port));
      return this[_connectionTargets][$putIfAbsent](key, dart.fn(() => new _http._ConnectionTarget.new(key, host, port, isSecure, this[_context$0]), T.VoidTo_ConnectionTarget()));
    }
    [_getConnection](uriHost, uriPort, proxyConf, isSecure, profileData) {
      if (uriHost == null) dart.nullFailed(I[181], 2766, 14, "uriHost");
      if (uriPort == null) dart.nullFailed(I[181], 2767, 11, "uriPort");
      if (proxyConf == null) dart.nullFailed(I[181], 2768, 27, "proxyConf");
      if (isSecure == null) dart.nullFailed(I[181], 2769, 12, "isSecure");
      let proxies = proxyConf.proxies[$iterator];
      const connect = error => {
        if (!dart.test(proxies.moveNext())) return T.FutureOf_ConnectionInfo().error(core.Object.as(error));
        let proxy = proxies.current;
        let host = dart.test(proxy.isDirect) ? uriHost : dart.nullCheck(proxy.host);
        let port = dart.test(proxy.isDirect) ? uriPort : dart.nullCheck(proxy.port);
        return this[_getConnectionTarget](host, port, isSecure).connect(uriHost, uriPort, proxy, this, profileData).catchError(connect);
      };
      dart.fn(connect, T.dynamicToFutureOf_ConnectionInfo());
      return connect(new _http.HttpException.new("No proxies given"));
    }
    [_findCredentials](url, scheme = null) {
      if (url == null) dart.nullFailed(I[181], 2787, 42, "url");
      let cr = this[_credentials][$fold](T._SiteCredentialsN(), null, dart.fn((prev, value) => {
        if (value == null) dart.nullFailed(I[181], 2790, 58, "value");
        let siteCredentials = _http._SiteCredentials.as(value);
        if (dart.test(siteCredentials.applies(url, scheme))) {
          if (prev == null) return value;
          return siteCredentials.uri.path.length > prev.uri.path.length ? siteCredentials : prev;
        } else {
          return prev;
        }
      }, T._SiteCredentialsNAnd_CredentialsTo_SiteCredentialsN()));
      return cr;
    }
    [_findProxyCredentials](proxy, scheme = null) {
      if (proxy == null) dart.nullFailed(I[181], 2804, 51, "proxy");
      for (let current of this[_proxyCredentials]) {
        if (dart.test(current.applies(proxy, scheme))) {
          return current;
        }
      }
      return null;
    }
    [_removeCredentials](cr) {
      if (cr == null) dart.nullFailed(I[181], 2815, 40, "cr");
      let index = this[_credentials][$indexOf](cr);
      if (index !== -1) {
        this[_credentials][$removeAt](index);
      }
    }
    [_removeProxyCredentials](cr) {
      if (cr == null) dart.nullFailed(I[181], 2822, 45, "cr");
      this[_proxyCredentials][$remove](cr);
    }
    static _findProxyFromEnvironment(url, environment) {
      let t297, t297$, t297$0;
      if (url == null) dart.nullFailed(I[181], 2827, 11, "url");
      function checkNoProxy(option) {
        if (option == null) return null;
        let names = option[$split](",")[$map](core.String, dart.fn(s => {
          if (s == null) dart.nullFailed(I[181], 2830, 55, "s");
          return s[$trim]();
        }, T$.StringToString()))[$iterator];
        while (dart.test(names.moveNext())) {
          let name = names.current;
          if (name[$startsWith]("[") && name[$endsWith]("]") && "[" + dart.str(url.host) + "]" === name || name[$isNotEmpty] && url.host[$endsWith](name)) {
            return "DIRECT";
          }
        }
        return null;
      }
      dart.fn(checkNoProxy, T.StringNToStringN());
      function checkProxy(option) {
        if (option == null) return null;
        option = option[$trim]();
        if (option[$isEmpty]) return null;
        let pos = option[$indexOf]("://");
        if (pos >= 0) {
          option = option[$substring](pos + 3);
        }
        pos = option[$indexOf]("/");
        if (pos >= 0) {
          option = option[$substring](0, pos);
        }
        if (option[$indexOf]("[") === 0) {
          let pos = option[$lastIndexOf](":");
          if (option[$indexOf]("]") > pos) option = dart.str(option) + ":1080";
        } else {
          if (option[$indexOf](":") === -1) option = dart.str(option) + ":1080";
        }
        return "PROXY " + dart.str(option);
      }
      dart.fn(checkProxy, T.StringNToStringN());
      if (environment == null) environment = _http._HttpClient._platformEnvironmentCache;
      let proxyCfg = null;
      let noProxy = (t297 = environment[$_get]("no_proxy"), t297 == null ? environment[$_get]("NO_PROXY") : t297);
      proxyCfg = checkNoProxy(noProxy);
      if (proxyCfg != null) {
        return proxyCfg;
      }
      if (url.scheme === "http") {
        let proxy = (t297$ = environment[$_get]("http_proxy"), t297$ == null ? environment[$_get]("HTTP_PROXY") : t297$);
        proxyCfg = checkProxy(proxy);
        if (proxyCfg != null) {
          return proxyCfg;
        }
      } else if (url.scheme === "https") {
        let proxy = (t297$0 = environment[$_get]("https_proxy"), t297$0 == null ? environment[$_get]("HTTPS_PROXY") : t297$0);
        proxyCfg = checkProxy(proxy);
        if (proxyCfg != null) {
          return proxyCfg;
        }
      }
      return "DIRECT";
    }
  };
  (_http._HttpClient.new = function(_context) {
    this[_closing] = false;
    this[_closingForcefully] = false;
    this[_connectionTargets] = new (T.IdentityMapOfString$_ConnectionTarget()).new();
    this[_credentials] = T.JSArrayOf_Credentials().of([]);
    this[_proxyCredentials] = T.JSArrayOf_ProxyCredentials().of([]);
    this[_authenticate] = null;
    this[_authenticateProxy] = null;
    this[_findProxy] = C[474] || CT.C474;
    this[_idleTimeout] = C[453] || CT.C453;
    this[_badCertificateCallback] = null;
    this.connectionTimeout = null;
    this.maxConnectionsPerHost = null;
    this.autoUncompress = true;
    this.userAgent = _http._getHttpVersion();
    this[_context$0] = _context;
    ;
  }).prototype = _http._HttpClient.prototype;
  dart.addTypeTests(_http._HttpClient);
  dart.addTypeCaches(_http._HttpClient);
  _http._HttpClient[dart.implements] = () => [_http.HttpClient];
  dart.setMethodSignature(_http._HttpClient, () => ({
    __proto__: dart.getMethods(_http._HttpClient.__proto__),
    open: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.String, core.int, core.String]),
    openUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.Uri]),
    get: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    getUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    post: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    postUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    put: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    putUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    delete: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    deleteUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    head: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    headUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    patch: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
    patchUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
    close: dart.fnType(dart.void, [], {force: core.bool}, {}),
    addCredentials: dart.fnType(dart.void, [core.Uri, core.String, _http.HttpClientCredentials]),
    addProxyCredentials: dart.fnType(dart.void, [core.String, core.int, core.String, _http.HttpClientCredentials]),
    [_openUrl]: dart.fnType(async.Future$(_http._HttpClientRequest), [core.String, core.Uri]),
    [_openUrlFromRequest]: dart.fnType(async.Future$(_http._HttpClientRequest), [core.String, core.Uri, _http._HttpClientRequest]),
    [_returnConnection]: dart.fnType(dart.void, [_http._HttpClientConnection]),
    [_connectionClosed]: dart.fnType(dart.void, [_http._HttpClientConnection]),
    [_connectionClosedNoFurtherClosing]: dart.fnType(dart.void, [_http._HttpClientConnection]),
    [_connectionsChanged]: dart.fnType(dart.void, []),
    [_closeConnections]: dart.fnType(dart.void, [core.bool]),
    [_getConnectionTarget]: dart.fnType(_http._ConnectionTarget, [core.String, core.int, core.bool]),
    [_getConnection]: dart.fnType(async.Future$(_http._ConnectionInfo), [core.String, core.int, _http._ProxyConfiguration, core.bool, dart.nullable(_http._HttpProfileData)]),
    [_findCredentials]: dart.fnType(dart.nullable(_http._SiteCredentials), [core.Uri], [dart.nullable(_http._AuthenticationScheme)]),
    [_findProxyCredentials]: dart.fnType(dart.nullable(_http._ProxyCredentials), [_http._Proxy], [dart.nullable(_http._AuthenticationScheme)]),
    [_removeCredentials]: dart.fnType(dart.void, [_http._Credentials]),
    [_removeProxyCredentials]: dart.fnType(dart.void, [_http._Credentials])
  }));
  dart.setGetterSignature(_http._HttpClient, () => ({
    __proto__: dart.getGetters(_http._HttpClient.__proto__),
    idleTimeout: core.Duration
  }));
  dart.setSetterSignature(_http._HttpClient, () => ({
    __proto__: dart.getSetters(_http._HttpClient.__proto__),
    idleTimeout: core.Duration,
    badCertificateCallback: dart.nullable(dart.fnType(core.bool, [io.X509Certificate, core.String, core.int])),
    authenticate: dart.nullable(dart.fnType(async.Future$(core.bool), [core.Uri, core.String, core.String])),
    authenticateProxy: dart.nullable(dart.fnType(async.Future$(core.bool), [core.String, core.int, core.String, core.String])),
    findProxy: dart.nullable(dart.fnType(core.String, [core.Uri]))
  }));
  dart.setLibraryUri(_http._HttpClient, I[177]);
  dart.setFieldSignature(_http._HttpClient, () => ({
    __proto__: dart.getFields(_http._HttpClient.__proto__),
    [_closing]: dart.fieldType(core.bool),
    [_closingForcefully]: dart.fieldType(core.bool),
    [_connectionTargets]: dart.finalFieldType(core.Map$(core.String, _http._ConnectionTarget)),
    [_credentials]: dart.finalFieldType(core.List$(_http._Credentials)),
    [_proxyCredentials]: dart.finalFieldType(core.List$(_http._ProxyCredentials)),
    [_context$0]: dart.finalFieldType(dart.nullable(io.SecurityContext)),
    [_authenticate]: dart.fieldType(dart.nullable(core.Function)),
    [_authenticateProxy]: dart.fieldType(dart.nullable(core.Function)),
    [_findProxy]: dart.fieldType(dart.nullable(core.Function)),
    [_idleTimeout]: dart.fieldType(core.Duration),
    [_badCertificateCallback]: dart.fieldType(dart.nullable(dart.fnType(core.bool, [io.X509Certificate, core.String, core.int]))),
    connectionTimeout: dart.fieldType(dart.nullable(core.Duration)),
    maxConnectionsPerHost: dart.fieldType(dart.nullable(core.int)),
    autoUncompress: dart.fieldType(core.bool),
    userAgent: dart.fieldType(dart.nullable(core.String))
  }));
  dart.defineLazy(_http._HttpClient, {
    /*_http._HttpClient._platformEnvironmentCache*/get _platformEnvironmentCache() {
      return io.Platform.environment;
    },
    set _platformEnvironmentCache(_) {}
  }, false);
  var _state$1 = dart.privateName(_http, "_state");
  var _idleMark = dart.privateName(_http, "_idleMark");
  var _markActive = dart.privateName(_http, "_markActive");
  var _markIdle = dart.privateName(_http, "_markIdle");
  var _handleRequest = dart.privateName(_http, "_handleRequest");
  var _isActive = dart.privateName(_http, "_isActive");
  var _isIdle = dart.privateName(_http, "_isIdle");
  var _isDetached = dart.privateName(_http, "_isDetached");
  var _toJSON$ = dart.privateName(_http, "_toJSON");
  const LinkedListEntry__ServiceObject$36 = class LinkedListEntry__ServiceObject extends collection.LinkedListEntry {};
  (LinkedListEntry__ServiceObject$36.new = function() {
    _http._ServiceObject.new.call(this);
    LinkedListEntry__ServiceObject$36.__proto__.new.call(this);
  }).prototype = LinkedListEntry__ServiceObject$36.prototype;
  dart.applyMixin(LinkedListEntry__ServiceObject$36, _http._ServiceObject);
  _http._HttpConnection = class _HttpConnection extends LinkedListEntry__ServiceObject$36 {
    markIdle() {
      this[_idleMark] = true;
    }
    get isMarkedIdle() {
      return this[_idleMark];
    }
    destroy() {
      if (this[_state$1] === 2 || this[_state$1] === 3) return;
      this[_state$1] = 2;
      dart.dsend(this[_socket$0], 'destroy', []);
      this[_httpServer$][_connectionClosed](this);
      _http._HttpConnection._connections[$remove](this[_serviceId$]);
    }
    detachSocket() {
      this[_state$1] = 3;
      this[_httpServer$][_connectionClosed](this);
      let detachedIncoming = this[_httpParser].detachIncoming();
      return dart.nullCheck(this[_streamFuture]).then(io.Socket, dart.fn(_ => {
        _http._HttpConnection._connections[$remove](this[_serviceId$]);
        return new _http._DetachedSocket.new(io.Socket.as(this[_socket$0]), detachedIncoming);
      }, T.dynamicTo_DetachedSocket()));
    }
    get connectionInfo() {
      return _http._HttpConnectionInfo.create(io.Socket.as(this[_socket$0]));
    }
    get [_isActive]() {
      return this[_state$1] === 0;
    }
    get [_isIdle]() {
      return this[_state$1] === 1;
    }
    get [_isClosing]() {
      return this[_state$1] === 2;
    }
    get [_isDetached]() {
      return this[_state$1] === 3;
    }
    get [_serviceTypePath$]() {
      return "io/http/serverconnections";
    }
    get [_serviceTypeName$]() {
      return "HttpServerConnection";
    }
    [_toJSON$](ref) {
      if (ref == null) dart.nullFailed(I[181], 3010, 20, "ref");
      let name = dart.str(dart.dload(dart.dload(this[_socket$0], 'address'), 'host')) + ":" + dart.str(dart.dload(this[_socket$0], 'port')) + " <-> " + dart.str(dart.dload(dart.dload(this[_socket$0], 'remoteAddress'), 'host')) + ":" + dart.str(dart.dload(this[_socket$0], 'remotePort'));
      let r = new (T$0.IdentityMapOfString$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", name, "user_name", name]);
      if (dart.test(ref)) {
        return r;
      }
      r[$_set]("server", this[_httpServer$][_toJSON$](true));
      try {
        r[$_set]("socket", dart.dsend(this[_socket$0], _toJSON$, [true]));
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          r[$_set]("socket", new (T$.IdentityMapOfString$String()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
        } else
          throw e;
      }
      switch (this[_state$1]) {
        case 0:
        {
          r[$_set]("state", "Active");
          break;
        }
        case 1:
        {
          r[$_set]("state", "Idle");
          break;
        }
        case 2:
        {
          r[$_set]("state", "Closing");
          break;
        }
        case 3:
        {
          r[$_set]("state", "Detached");
          break;
        }
        default:
        {
          r[$_set]("state", "Unknown");
          break;
        }
      }
      return r;
    }
  };
  (_http._HttpConnection.new = function(_socket, _httpServer) {
    if (_httpServer == null) dart.nullFailed(I[181], 2914, 38, "_httpServer");
    this[_state$1] = 1;
    this[_subscription$0] = null;
    this[_idleMark] = false;
    this[_streamFuture] = null;
    this[_socket$0] = _socket;
    this[_httpServer$] = _httpServer;
    this[_httpParser] = _http._HttpParser.requestParser();
    _http._HttpConnection.__proto__.new.call(this);
    _http._HttpConnection._connections[$_set](this[_serviceId$], this);
    this[_httpParser].listenToStream(T.StreamOfUint8List().as(this[_socket$0]));
    this[_subscription$0] = this[_httpParser].listen(dart.fn(incoming => {
      if (incoming == null) dart.nullFailed(I[181], 2918, 41, "incoming");
      this[_httpServer$][_markActive](this);
      incoming.dataDone.then(core.Null, dart.fn(closing => {
        if (dart.dtest(closing)) this.destroy();
      }, T$.dynamicToNull()));
      dart.nullCheck(this[_subscription$0]).pause();
      this[_state$1] = 0;
      let outgoing = new _http._HttpOutgoing.new(io.Socket.as(this[_socket$0]));
      let response = new _http._HttpResponse.new(dart.nullCheck(incoming.uri), incoming.headers.protocolVersion, outgoing, this[_httpServer$].defaultResponseHeaders, this[_httpServer$].serverHeader);
      if (incoming.statusCode === 400) {
        response.statusCode = 400;
      }
      let request = new _http._HttpRequest.new(response, incoming, this[_httpServer$], this);
      this[_streamFuture] = outgoing.done.then(dart.dynamic, dart.fn(_ => {
        if (_ == null) dart.nullFailed(I[181], 2940, 43, "_");
        response.deadline = null;
        if (this[_state$1] === 3) return;
        if (dart.test(response.persistentConnection) && dart.test(request.persistentConnection) && dart.test(incoming.fullBodyRead) && !dart.test(this[_httpParser].upgrade) && !dart.test(this[_httpServer$].closed)) {
          this[_state$1] = 1;
          this[_idleMark] = false;
          this[_httpServer$][_markIdle](this);
          dart.nullCheck(this[_subscription$0]).resume();
        } else {
          this.destroy();
        }
      }, T.SocketToNull()), {onError: dart.fn(_ => {
          this.destroy();
        }, T$.dynamicToNull())});
      outgoing.ignoreBody = request.method === "HEAD";
      response[_httpRequest$] = request;
      this[_httpServer$][_handleRequest](request);
    }, T._HttpIncomingTovoid()), {onDone: dart.fn(() => {
        this.destroy();
      }, T$.VoidTovoid()), onError: dart.fn(error => {
        this.destroy();
      }, T$.dynamicToNull())});
  }).prototype = _http._HttpConnection.prototype;
  dart.addTypeTests(_http._HttpConnection);
  dart.addTypeCaches(_http._HttpConnection);
  dart.setMethodSignature(_http._HttpConnection, () => ({
    __proto__: dart.getMethods(_http._HttpConnection.__proto__),
    markIdle: dart.fnType(dart.void, []),
    destroy: dart.fnType(dart.void, []),
    detachSocket: dart.fnType(async.Future$(io.Socket), []),
    [_toJSON$]: dart.fnType(core.Map, [core.bool])
  }));
  dart.setGetterSignature(_http._HttpConnection, () => ({
    __proto__: dart.getGetters(_http._HttpConnection.__proto__),
    isMarkedIdle: core.bool,
    connectionInfo: dart.nullable(_http.HttpConnectionInfo),
    [_isActive]: core.bool,
    [_isIdle]: core.bool,
    [_isClosing]: core.bool,
    [_isDetached]: core.bool,
    [_serviceTypePath$]: core.String,
    [_serviceTypeName$]: core.String
  }));
  dart.setLibraryUri(_http._HttpConnection, I[177]);
  dart.setFieldSignature(_http._HttpConnection, () => ({
    __proto__: dart.getFields(_http._HttpConnection.__proto__),
    [_socket$0]: dart.finalFieldType(dart.dynamic),
    [_httpServer$]: dart.finalFieldType(_http._HttpServer),
    [_httpParser]: dart.finalFieldType(_http._HttpParser),
    [_state$1]: dart.fieldType(core.int),
    [_subscription$0]: dart.fieldType(dart.nullable(async.StreamSubscription)),
    [_idleMark]: dart.fieldType(core.bool),
    [_streamFuture]: dart.fieldType(dart.nullable(async.Future))
  }));
  dart.defineLazy(_http._HttpConnection, {
    /*_http._HttpConnection._ACTIVE*/get _ACTIVE() {
      return 0;
    },
    /*_http._HttpConnection._IDLE*/get _IDLE() {
      return 1;
    },
    /*_http._HttpConnection._CLOSING*/get _CLOSING() {
      return 2;
    },
    /*_http._HttpConnection._DETACHED*/get _DETACHED() {
      return 3;
    },
    /*_http._HttpConnection._connections*/get _connections() {
      return new (T.IdentityMapOfint$_HttpConnection()).new();
    },
    set _connections(_) {}
  }, false);
  var _activeConnections = dart.privateName(_http, "_activeConnections");
  var _idleConnections = dart.privateName(_http, "_idleConnections");
  var _serverSocket$ = dart.privateName(_http, "_serverSocket");
  var _closeServer$ = dart.privateName(_http, "_closeServer");
  var _maybePerformCleanup$ = dart.privateName(_http, "_maybePerformCleanup");
  const Stream__ServiceObject$36 = class Stream__ServiceObject extends async.Stream$(_http.HttpRequest) {};
  (Stream__ServiceObject$36.new = function() {
    _http._ServiceObject.new.call(this);
    Stream__ServiceObject$36.__proto__.new.call(this);
  }).prototype = Stream__ServiceObject$36.prototype;
  (Stream__ServiceObject$36._internal = function() {
    _http._ServiceObject.new.call(this);
    Stream__ServiceObject$36.__proto__._internal.call(this);
  }).prototype = Stream__ServiceObject$36.prototype;
  dart.applyMixin(Stream__ServiceObject$36, _http._ServiceObject);
  _http._HttpServer = class _HttpServer extends Stream__ServiceObject$36 {
    static bind(address, port, backlog, v6Only, shared) {
      if (port == null) dart.nullFailed(I[181], 3069, 20, "port");
      if (backlog == null) dart.nullFailed(I[181], 3069, 30, "backlog");
      if (v6Only == null) dart.nullFailed(I[181], 3069, 44, "v6Only");
      if (shared == null) dart.nullFailed(I[181], 3069, 57, "shared");
      return io.ServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(_http.HttpServer, dart.fn(socket => {
        if (socket == null) dart.nullFailed(I[181], 3072, 28, "socket");
        return new _http._HttpServer.__(socket, true);
      }, T.ServerSocketTo_HttpServer()));
    }
    static bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared) {
      if (port == null) dart.nullFailed(I[181], 3079, 11, "port");
      if (backlog == null) dart.nullFailed(I[181], 3081, 11, "backlog");
      if (v6Only == null) dart.nullFailed(I[181], 3082, 12, "v6Only");
      if (requestClientCertificate == null) dart.nullFailed(I[181], 3083, 12, "requestClientCertificate");
      if (shared == null) dart.nullFailed(I[181], 3084, 12, "shared");
      return io.SecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, shared: shared}).then(_http.HttpServer, dart.fn(socket => {
        if (socket == null) dart.nullFailed(I[181], 3090, 28, "socket");
        return new _http._HttpServer.__(socket, true);
      }, T.SecureServerSocketTo_HttpServer()));
    }
    static _initDefaultResponseHeaders() {
      let defaultResponseHeaders = new _http._HttpHeaders.new("1.1");
      defaultResponseHeaders.contentType = _http.ContentType.text;
      defaultResponseHeaders.set("X-Frame-Options", "SAMEORIGIN");
      defaultResponseHeaders.set("X-Content-Type-Options", "nosniff");
      defaultResponseHeaders.set("X-XSS-Protection", "1; mode=block");
      return defaultResponseHeaders;
    }
    get idleTimeout() {
      return this[_idleTimeout];
    }
    set idleTimeout(duration) {
      let idleTimer = this[_idleTimer];
      if (idleTimer != null) {
        idleTimer.cancel();
        this[_idleTimer] = null;
      }
      this[_idleTimeout] = duration;
      if (duration != null) {
        this[_idleTimer] = async.Timer.periodic(duration, dart.fn(_ => {
          if (_ == null) dart.nullFailed(I[181], 3129, 50, "_");
          for (let idle of this[_idleConnections][$toList]()) {
            if (dart.test(idle.isMarkedIdle)) {
              idle.destroy();
            } else {
              idle.markIdle();
            }
          }
        }, T$.TimerTovoid()));
      }
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      dart.dsend(this[_serverSocket$], 'listen', [dart.fn(socket => {
          if (socket == null) dart.nullFailed(I[181], 3143, 34, "socket");
          socket.setOption(io.SocketOption.tcpNoDelay, true);
          let connection = new _http._HttpConnection.new(socket, this);
          this[_idleConnections].add(connection);
        }, T.SocketToNull())], {onError: dart.fn((error, stackTrace) => {
          if (!io.HandshakeException.is(error)) {
            this[_controller$0].addError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
          }
        }, T$.dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    close(opts) {
      let force = opts && 'force' in opts ? opts.force : false;
      if (force == null) dart.nullFailed(I[181], 3159, 22, "force");
      this.closed = true;
      let result = null;
      if (this[_serverSocket$] != null && dart.test(this[_closeServer$])) {
        result = async.Future.as(dart.dsend(this[_serverSocket$], 'close', []));
      } else {
        result = async.Future.value();
      }
      this.idleTimeout = null;
      if (dart.test(force)) {
        for (let c of this[_activeConnections][$toList]()) {
          c.destroy();
        }
        if (!dart.test(this[_activeConnections].isEmpty)) dart.assertFailed(null, I[181], 3172, 14, "_activeConnections.isEmpty");
      }
      for (let c of this[_idleConnections][$toList]()) {
        c.destroy();
      }
      this[_maybePerformCleanup$]();
      return result;
    }
    [_maybePerformCleanup$]() {
      let sessionManager = this[_sessionManagerInstance];
      if (dart.test(this.closed) && dart.test(this[_idleConnections].isEmpty) && dart.test(this[_activeConnections].isEmpty) && sessionManager != null) {
        sessionManager.close();
        this[_sessionManagerInstance] = null;
        _http._HttpServer._servers[$remove](this[_serviceId$]);
      }
    }
    get port() {
      if (dart.test(this.closed)) dart.throw(new _http.HttpException.new("HttpServer is not bound to a socket"));
      return core.int.as(dart.dload(this[_serverSocket$], 'port'));
    }
    get address() {
      if (dart.test(this.closed)) dart.throw(new _http.HttpException.new("HttpServer is not bound to a socket"));
      return io.InternetAddress.as(dart.dload(this[_serverSocket$], 'address'));
    }
    set sessionTimeout(timeout) {
      if (timeout == null) dart.nullFailed(I[181], 3203, 26, "timeout");
      this[_sessionManager$].sessionTimeout = timeout;
    }
    [_handleRequest](request) {
      if (request == null) dart.nullFailed(I[181], 3207, 36, "request");
      if (!dart.test(this.closed)) {
        this[_controller$0].add(request);
      } else {
        request[_httpConnection$].destroy();
      }
    }
    [_connectionClosed](connection) {
      if (connection == null) dart.nullFailed(I[181], 3215, 42, "connection");
      connection.unlink();
      this[_maybePerformCleanup$]();
    }
    [_markIdle](connection) {
      if (connection == null) dart.nullFailed(I[181], 3221, 34, "connection");
      this[_activeConnections].remove(connection);
      this[_idleConnections].add(connection);
    }
    [_markActive](connection) {
      if (connection == null) dart.nullFailed(I[181], 3226, 36, "connection");
      this[_idleConnections].remove(connection);
      this[_activeConnections].add(connection);
    }
    get [_sessionManager$]() {
      let t298;
      t298 = this[_sessionManagerInstance];
      return t298 == null ? this[_sessionManagerInstance] = new _http._HttpSessionManager.new() : t298;
    }
    connectionsInfo() {
      let result = new _http.HttpConnectionsInfo.new();
      result.total = dart.notNull(this[_activeConnections].length) + dart.notNull(this[_idleConnections].length);
      this[_activeConnections].forEach(dart.fn(conn => {
        let t298, t298$;
        if (conn == null) dart.nullFailed(I[181], 3238, 49, "conn");
        if (dart.test(conn[_isActive])) {
          t298 = result;
          t298.active = dart.notNull(t298.active) + 1;
        } else {
          if (!dart.test(conn[_isClosing])) dart.assertFailed(null, I[181], 3242, 16, "conn._isClosing");
          t298$ = result;
          t298$.closing = dart.notNull(t298$.closing) + 1;
        }
      }, T._HttpConnectionTovoid()));
      this[_idleConnections].forEach(dart.fn(conn => {
        let t298;
        if (conn == null) dart.nullFailed(I[181], 3246, 47, "conn");
        t298 = result;
        t298.idle = dart.notNull(t298.idle) + 1;
        if (!dart.test(conn[_isIdle])) dart.assertFailed(null, I[181], 3248, 14, "conn._isIdle");
      }, T._HttpConnectionTovoid()));
      return result;
    }
    get [_serviceTypePath$]() {
      return "io/http/servers";
    }
    get [_serviceTypeName$]() {
      return "HttpServer";
    }
    [_toJSON$](ref) {
      if (ref == null) dart.nullFailed(I[181], 3256, 37, "ref");
      let r = new (T$0.IdentityMapOfString$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", dart.str(this.address.host) + ":" + dart.str(this.port), "user_name", dart.str(this.address.host) + ":" + dart.str(this.port)]);
      if (dart.test(ref)) {
        return r;
      }
      try {
        r[$_set]("socket", dart.dsend(this[_serverSocket$], _toJSON$, [true]));
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          r[$_set]("socket", new (T$.IdentityMapOfString$String()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
        } else
          throw e;
      }
      r[$_set]("port", this.port);
      r[$_set]("address", this.address.host);
      r[$_set]("active", this[_activeConnections][$map](core.Map, dart.fn(c => {
        if (c == null) dart.nullFailed(I[181], 3278, 43, "c");
        return c[_toJSON$](true);
      }, T._HttpConnectionToMap()))[$toList]());
      r[$_set]("idle", this[_idleConnections][$map](core.Map, dart.fn(c => {
        if (c == null) dart.nullFailed(I[181], 3279, 39, "c");
        return c[_toJSON$](true);
      }, T._HttpConnectionToMap()))[$toList]());
      r[$_set]("closed", this.closed);
      return r;
    }
  };
  (_http._HttpServer.__ = function(_serverSocket, _closeServer) {
    if (_closeServer == null) dart.nullFailed(I[181], 3095, 42, "_closeServer");
    this.serverHeader = null;
    this.defaultResponseHeaders = _http._HttpServer._initDefaultResponseHeaders();
    this.autoCompress = false;
    this[_idleTimeout] = null;
    this[_idleTimer] = null;
    this[_sessionManagerInstance] = null;
    this.closed = false;
    this[_activeConnections] = new (T.LinkedListOf_HttpConnection()).new();
    this[_idleConnections] = new (T.LinkedListOf_HttpConnection()).new();
    this[_serverSocket$] = _serverSocket;
    this[_closeServer$] = _closeServer;
    this[_controller$0] = T.StreamControllerOfHttpRequest().new({sync: true});
    _http._HttpServer.__proto__.new.call(this);
    this[_controller$0].onCancel = dart.bind(this, 'close');
    this.idleTimeout = C[447] || CT.C447;
    _http._HttpServer._servers[$_set](this[_serviceId$], this);
  }).prototype = _http._HttpServer.prototype;
  (_http._HttpServer.listenOn = function(_serverSocket) {
    this.serverHeader = null;
    this.defaultResponseHeaders = _http._HttpServer._initDefaultResponseHeaders();
    this.autoCompress = false;
    this[_idleTimeout] = null;
    this[_idleTimer] = null;
    this[_sessionManagerInstance] = null;
    this.closed = false;
    this[_activeConnections] = new (T.LinkedListOf_HttpConnection()).new();
    this[_idleConnections] = new (T.LinkedListOf_HttpConnection()).new();
    this[_serverSocket$] = _serverSocket;
    this[_closeServer$] = false;
    this[_controller$0] = T.StreamControllerOfHttpRequest().new({sync: true});
    _http._HttpServer.__proto__.new.call(this);
    this[_controller$0].onCancel = dart.bind(this, 'close');
    this.idleTimeout = C[447] || CT.C447;
    _http._HttpServer._servers[$_set](this[_serviceId$], this);
  }).prototype = _http._HttpServer.prototype;
  dart.addTypeTests(_http._HttpServer);
  dart.addTypeCaches(_http._HttpServer);
  _http._HttpServer[dart.implements] = () => [_http.HttpServer];
  dart.setMethodSignature(_http._HttpServer, () => ({
    __proto__: dart.getMethods(_http._HttpServer.__proto__),
    listen: dart.fnType(async.StreamSubscription$(_http.HttpRequest), [dart.nullable(dart.fnType(dart.void, [_http.HttpRequest]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    close: dart.fnType(async.Future, [], {force: core.bool}, {}),
    [_maybePerformCleanup$]: dart.fnType(dart.void, []),
    [_handleRequest]: dart.fnType(dart.void, [_http._HttpRequest]),
    [_connectionClosed]: dart.fnType(dart.void, [_http._HttpConnection]),
    [_markIdle]: dart.fnType(dart.void, [_http._HttpConnection]),
    [_markActive]: dart.fnType(dart.void, [_http._HttpConnection]),
    connectionsInfo: dart.fnType(_http.HttpConnectionsInfo, []),
    [_toJSON$]: dart.fnType(core.Map$(core.String, dart.dynamic), [core.bool])
  }));
  dart.setGetterSignature(_http._HttpServer, () => ({
    __proto__: dart.getGetters(_http._HttpServer.__proto__),
    idleTimeout: dart.nullable(core.Duration),
    port: core.int,
    address: io.InternetAddress,
    [_sessionManager$]: _http._HttpSessionManager,
    [_serviceTypePath$]: core.String,
    [_serviceTypeName$]: core.String
  }));
  dart.setSetterSignature(_http._HttpServer, () => ({
    __proto__: dart.getSetters(_http._HttpServer.__proto__),
    idleTimeout: dart.nullable(core.Duration),
    sessionTimeout: core.int
  }));
  dart.setLibraryUri(_http._HttpServer, I[177]);
  dart.setFieldSignature(_http._HttpServer, () => ({
    __proto__: dart.getFields(_http._HttpServer.__proto__),
    serverHeader: dart.fieldType(dart.nullable(core.String)),
    defaultResponseHeaders: dart.finalFieldType(_http.HttpHeaders),
    autoCompress: dart.fieldType(core.bool),
    [_idleTimeout]: dart.fieldType(dart.nullable(core.Duration)),
    [_idleTimer]: dart.fieldType(dart.nullable(async.Timer)),
    [_sessionManagerInstance]: dart.fieldType(dart.nullable(_http._HttpSessionManager)),
    closed: dart.fieldType(core.bool),
    [_serverSocket$]: dart.finalFieldType(dart.dynamic),
    [_closeServer$]: dart.finalFieldType(core.bool),
    [_activeConnections]: dart.finalFieldType(collection.LinkedList$(_http._HttpConnection)),
    [_idleConnections]: dart.finalFieldType(collection.LinkedList$(_http._HttpConnection)),
    [_controller$0]: dart.fieldType(async.StreamController$(_http.HttpRequest))
  }));
  dart.defineLazy(_http._HttpServer, {
    /*_http._HttpServer._servers*/get _servers() {
      return new (T.LinkedMapOfint$_HttpServer()).new();
    },
    set _servers(_) {}
  }, false);
  const proxies = _ProxyConfiguration_proxies;
  _http._ProxyConfiguration = class _ProxyConfiguration extends core.Object {
    get proxies() {
      return this[proxies];
    }
    set proxies(value) {
      super.proxies = value;
    }
  };
  (_http._ProxyConfiguration.new = function(configuration) {
    if (configuration == null) dart.nullFailed(I[181], 3306, 30, "configuration");
    this[proxies] = T.JSArrayOf_Proxy().of([]);
    if (configuration == null) {
      dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
    }
    let list = configuration[$split](";");
    list[$forEach](dart.fn(proxy => {
      if (proxy == null) dart.nullFailed(I[181], 3311, 26, "proxy");
      proxy = proxy[$trim]();
      if (!proxy[$isEmpty]) {
        if (proxy[$startsWith]("PROXY ")) {
          let username = null;
          let password = null;
          proxy = proxy[$substring]("PROXY ".length)[$trim]();
          let at = proxy[$indexOf]("@");
          if (at !== -1) {
            let userinfo = proxy[$substring](0, at)[$trim]();
            proxy = proxy[$substring](at + 1)[$trim]();
            let colon = userinfo[$indexOf](":");
            if (colon === -1 || colon === 0 || colon === proxy.length - 1) {
              dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
            }
            username = userinfo[$substring](0, colon)[$trim]();
            password = userinfo[$substring](colon + 1)[$trim]();
          }
          let colon = proxy[$lastIndexOf](":");
          if (colon === -1 || colon === 0 || colon === proxy.length - 1) {
            dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
          }
          let host = proxy[$substring](0, colon)[$trim]();
          if (host[$startsWith]("[") && host[$endsWith]("]")) {
            host = host[$substring](1, host.length - 1);
          }
          let portString = proxy[$substring](colon + 1)[$trim]();
          let port = null;
          try {
            port = core.int.parse(portString);
          } catch (e$) {
            let e = dart.getThrown(e$);
            if (core.FormatException.is(e)) {
              dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration) + ", " + "invalid port '" + portString + "'"));
            } else
              throw e$;
          }
          this.proxies[$add](new _http._Proxy.new(host, port, username, password));
        } else if (proxy[$trim]() === "DIRECT") {
          this.proxies[$add](new _http._Proxy.direct());
        } else {
          dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
        }
      }
    }, T$.StringTovoid()));
  }).prototype = _http._ProxyConfiguration.prototype;
  (_http._ProxyConfiguration.direct = function() {
    this[proxies] = C[476] || CT.C476;
    ;
  }).prototype = _http._ProxyConfiguration.prototype;
  dart.addTypeTests(_http._ProxyConfiguration);
  dart.addTypeCaches(_http._ProxyConfiguration);
  dart.setLibraryUri(_http._ProxyConfiguration, I[177]);
  dart.setFieldSignature(_http._ProxyConfiguration, () => ({
    __proto__: dart.getFields(_http._ProxyConfiguration.__proto__),
    proxies: dart.finalFieldType(core.List$(_http._Proxy))
  }));
  dart.defineLazy(_http._ProxyConfiguration, {
    /*_http._ProxyConfiguration.PROXY_PREFIX*/get PROXY_PREFIX() {
      return "PROXY ";
    },
    /*_http._ProxyConfiguration.DIRECT_PREFIX*/get DIRECT_PREFIX() {
      return "DIRECT";
    }
  }, false);
  const host$ = _Proxy_host;
  const port$1 = _Proxy_port;
  const username$ = _Proxy_username;
  const password$ = _Proxy_password;
  const isDirect = _Proxy_isDirect;
  _http._Proxy = class _Proxy extends core.Object {
    get host() {
      return this[host$];
    }
    set host(value) {
      super.host = value;
    }
    get port() {
      return this[port$1];
    }
    set port(value) {
      super.port = value;
    }
    get username() {
      return this[username$];
    }
    set username(value) {
      super.username = value;
    }
    get password() {
      return this[password$];
    }
    set password(value) {
      super.password = value;
    }
    get isDirect() {
      return this[isDirect];
    }
    set isDirect(value) {
      super.isDirect = value;
    }
    get isAuthenticated() {
      return this.username != null;
    }
  };
  (_http._Proxy.new = function(host, port, username, password) {
    if (host == null) dart.nullFailed(I[181], 3373, 28, "host");
    if (port == null) dart.nullFailed(I[181], 3373, 43, "port");
    this[host$] = host;
    this[port$1] = port;
    this[username$] = username;
    this[password$] = password;
    this[isDirect] = false;
    ;
  }).prototype = _http._Proxy.prototype;
  (_http._Proxy.direct = function() {
    this[host$] = null;
    this[port$1] = null;
    this[username$] = null;
    this[password$] = null;
    this[isDirect] = true;
    ;
  }).prototype = _http._Proxy.prototype;
  dart.addTypeTests(_http._Proxy);
  dart.addTypeCaches(_http._Proxy);
  dart.setGetterSignature(_http._Proxy, () => ({
    __proto__: dart.getGetters(_http._Proxy.__proto__),
    isAuthenticated: core.bool
  }));
  dart.setLibraryUri(_http._Proxy, I[177]);
  dart.setFieldSignature(_http._Proxy, () => ({
    __proto__: dart.getFields(_http._Proxy.__proto__),
    host: dart.finalFieldType(dart.nullable(core.String)),
    port: dart.finalFieldType(dart.nullable(core.int)),
    username: dart.finalFieldType(dart.nullable(core.String)),
    password: dart.finalFieldType(dart.nullable(core.String)),
    isDirect: dart.finalFieldType(core.bool)
  }));
  _http._HttpConnectionInfo = class _HttpConnectionInfo extends core.Object {
    static create(socket) {
      if (socket == null) dart.nullFailed(I[181], 3392, 45, "socket");
      if (socket == null) return null;
      try {
        return new _http._HttpConnectionInfo.new(socket.remoteAddress, socket.remotePort, socket.port);
      } catch (e$) {
        let e = dart.getThrown(e$);
        if (core.Object.is(e)) {
        } else
          throw e$;
      }
      return null;
    }
  };
  (_http._HttpConnectionInfo.new = function(remoteAddress, remotePort, localPort) {
    if (remoteAddress == null) dart.nullFailed(I[181], 3390, 28, "remoteAddress");
    if (remotePort == null) dart.nullFailed(I[181], 3390, 48, "remotePort");
    if (localPort == null) dart.nullFailed(I[181], 3390, 65, "localPort");
    this.remoteAddress = remoteAddress;
    this.remotePort = remotePort;
    this.localPort = localPort;
    ;
  }).prototype = _http._HttpConnectionInfo.prototype;
  dart.addTypeTests(_http._HttpConnectionInfo);
  dart.addTypeCaches(_http._HttpConnectionInfo);
  _http._HttpConnectionInfo[dart.implements] = () => [_http.HttpConnectionInfo];
  dart.setLibraryUri(_http._HttpConnectionInfo, I[177]);
  dart.setFieldSignature(_http._HttpConnectionInfo, () => ({
    __proto__: dart.getFields(_http._HttpConnectionInfo.__proto__),
    remoteAddress: dart.fieldType(io.InternetAddress),
    remotePort: dart.fieldType(core.int),
    localPort: dart.fieldType(core.int)
  }));
  _http._DetachedSocket = class _DetachedSocket extends async.Stream$(typed_data.Uint8List) {
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_incoming$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get encoding() {
      return this[_socket$0].encoding;
    }
    set encoding(value) {
      if (value == null) dart.nullFailed(I[181], 3416, 30, "value");
      this[_socket$0].encoding = value;
    }
    write(obj) {
      this[_socket$0].write(obj);
    }
    writeln(obj = "") {
      this[_socket$0].writeln(obj);
    }
    writeCharCode(charCode) {
      if (charCode == null) dart.nullFailed(I[181], 3428, 26, "charCode");
      this[_socket$0].writeCharCode(charCode);
    }
    writeAll(objects, separator = "") {
      if (objects == null) dart.nullFailed(I[181], 3432, 26, "objects");
      if (separator == null) dart.nullFailed(I[181], 3432, 43, "separator");
      this[_socket$0].writeAll(objects, separator);
    }
    add(bytes) {
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[181], 3436, 22, "bytes");
      this[_socket$0].add(bytes);
    }
    addError(error, stackTrace = null) {
      if (error == null) dart.nullFailed(I[181], 3440, 24, "error");
      return this[_socket$0].addError(error, stackTrace);
    }
    addStream(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[181], 3443, 38, "stream");
      return this[_socket$0].addStream(stream);
    }
    destroy() {
      this[_socket$0].destroy();
    }
    flush() {
      return this[_socket$0].flush();
    }
    close() {
      return this[_socket$0].close();
    }
    get done() {
      return this[_socket$0].done;
    }
    get port() {
      return this[_socket$0].port;
    }
    get address() {
      return this[_socket$0].address;
    }
    get remoteAddress() {
      return this[_socket$0].remoteAddress;
    }
    get remotePort() {
      return this[_socket$0].remotePort;
    }
    setOption(option, enabled) {
      if (option == null) dart.nullFailed(I[181], 3465, 31, "option");
      if (enabled == null) dart.nullFailed(I[181], 3465, 44, "enabled");
      return this[_socket$0].setOption(option, enabled);
    }
    getRawOption(option) {
      if (option == null) dart.nullFailed(I[181], 3469, 42, "option");
      return this[_socket$0].getRawOption(option);
    }
    setRawOption(option) {
      if (option == null) dart.nullFailed(I[181], 3473, 37, "option");
      this[_socket$0].setRawOption(option);
    }
    [_toJSON$](ref) {
      if (ref == null) dart.nullFailed(I[181], 3477, 20, "ref");
      return core.Map.as(dart.dsend(this[_socket$0], _toJSON$, [ref]));
    }
    get [__IOSink_encoding_isSet]() {
      return this[$noSuchMethod](new core._Invocation.getter(C[467] || CT.C467));
    }
    get [__IOSink_encoding]() {
      return T$0.EncodingN().as(this[$noSuchMethod](new core._Invocation.getter(C[468] || CT.C468)));
    }
    set [__IOSink_encoding_isSet](value) {
      return this[$noSuchMethod](new core._Invocation.setter(C[469] || CT.C469, value));
    }
    set [__IOSink_encoding](value) {
      return this[$noSuchMethod](new core._Invocation.setter(C[470] || CT.C470, value));
    }
  };
  (_http._DetachedSocket.new = function(_socket, _incoming) {
    if (_socket == null) dart.nullFailed(I[181], 3406, 24, "_socket");
    if (_incoming == null) dart.nullFailed(I[181], 3406, 38, "_incoming");
    this[_socket$0] = _socket;
    this[_incoming$] = _incoming;
    _http._DetachedSocket.__proto__.new.call(this);
    ;
  }).prototype = _http._DetachedSocket.prototype;
  dart.addTypeTests(_http._DetachedSocket);
  dart.addTypeCaches(_http._DetachedSocket);
  _http._DetachedSocket[dart.implements] = () => [io.Socket];
  dart.setMethodSignature(_http._DetachedSocket, () => ({
    __proto__: dart.getMethods(_http._DetachedSocket.__proto__),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    write: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    writeln: dart.fnType(dart.void, [], [dart.nullable(core.Object)]),
    writeCharCode: dart.fnType(dart.void, [core.int]),
    writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    destroy: dart.fnType(dart.void, []),
    flush: dart.fnType(async.Future, []),
    close: dart.fnType(async.Future, []),
    setOption: dart.fnType(core.bool, [io.SocketOption, core.bool]),
    getRawOption: dart.fnType(typed_data.Uint8List, [io.RawSocketOption]),
    setRawOption: dart.fnType(dart.void, [io.RawSocketOption]),
    [_toJSON$]: dart.fnType(core.Map, [core.bool])
  }));
  dart.setGetterSignature(_http._DetachedSocket, () => ({
    __proto__: dart.getGetters(_http._DetachedSocket.__proto__),
    encoding: convert.Encoding,
    done: async.Future,
    port: core.int,
    address: io.InternetAddress,
    remoteAddress: io.InternetAddress,
    remotePort: core.int,
    [__IOSink_encoding_isSet]: dart.dynamic,
    [__IOSink_encoding]: dart.nullable(convert.Encoding)
  }));
  dart.setSetterSignature(_http._DetachedSocket, () => ({
    __proto__: dart.getSetters(_http._DetachedSocket.__proto__),
    encoding: convert.Encoding,
    [__IOSink_encoding_isSet]: dart.dynamic,
    [__IOSink_encoding]: dart.nullable(convert.Encoding)
  }));
  dart.setLibraryUri(_http._DetachedSocket, I[177]);
  dart.setFieldSignature(_http._DetachedSocket, () => ({
    __proto__: dart.getFields(_http._DetachedSocket.__proto__),
    [_incoming$]: dart.finalFieldType(async.Stream$(typed_data.Uint8List)),
    [_socket$0]: dart.finalFieldType(io.Socket)
  }));
  var _scheme$ = dart.privateName(_http, "_AuthenticationScheme._scheme");
  var _scheme = dart.privateName(_http, "_scheme");
  _http._AuthenticationScheme = class _AuthenticationScheme extends core.Object {
    get [_scheme]() {
      return this[_scheme$];
    }
    set [_scheme](value) {
      super[_scheme] = value;
    }
    static fromString(scheme) {
      if (scheme == null) dart.nullFailed(I[181], 3491, 51, "scheme");
      if (scheme[$toLowerCase]() === "basic") return _http._AuthenticationScheme.BASIC;
      if (scheme[$toLowerCase]() === "digest") return _http._AuthenticationScheme.DIGEST;
      return _http._AuthenticationScheme.UNKNOWN;
    }
    toString() {
      if (this[$_equals](_http._AuthenticationScheme.BASIC)) return "Basic";
      if (this[$_equals](_http._AuthenticationScheme.DIGEST)) return "Digest";
      return "Unknown";
    }
  };
  (_http._AuthenticationScheme.new = function(_scheme) {
    if (_scheme == null) dart.nullFailed(I[181], 3489, 36, "_scheme");
    this[_scheme$] = _scheme;
    ;
  }).prototype = _http._AuthenticationScheme.prototype;
  dart.addTypeTests(_http._AuthenticationScheme);
  dart.addTypeCaches(_http._AuthenticationScheme);
  dart.setLibraryUri(_http._AuthenticationScheme, I[177]);
  dart.setFieldSignature(_http._AuthenticationScheme, () => ({
    __proto__: dart.getFields(_http._AuthenticationScheme.__proto__),
    [_scheme]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(_http._AuthenticationScheme, ['toString']);
  dart.defineLazy(_http._AuthenticationScheme, {
    /*_http._AuthenticationScheme.UNKNOWN*/get UNKNOWN() {
      return C[478] || CT.C478;
    },
    /*_http._AuthenticationScheme.BASIC*/get BASIC() {
      return C[479] || CT.C479;
    },
    /*_http._AuthenticationScheme.DIGEST*/get DIGEST() {
      return C[480] || CT.C480;
    }
  }, false);
  _http._Credentials = class _Credentials extends core.Object {
    get scheme() {
      return this.credentials.scheme;
    }
  };
  (_http._Credentials.new = function(credentials, realm) {
    let t301;
    if (credentials == null) dart.nullFailed(I[181], 3516, 21, "credentials");
    if (realm == null) dart.nullFailed(I[181], 3516, 39, "realm");
    this.used = false;
    this.ha1 = null;
    this.nonce = null;
    this.algorithm = null;
    this.qop = null;
    this.nonceCount = null;
    this.credentials = credentials;
    this.realm = realm;
    if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST)) {
      let creds = _http._HttpClientDigestCredentials.as(this.credentials);
      let hasher = (t301 = new _http._MD5.new(), (() => {
        t301.add(convert.utf8.encode(creds.username));
        t301.add(T$.JSArrayOfint().of([58]));
        t301.add(this.realm[$codeUnits]);
        t301.add(T$.JSArrayOfint().of([58]));
        t301.add(convert.utf8.encode(creds.password));
        return t301;
      })());
      this.ha1 = _http._CryptoUtils.bytesToHex(hasher.close());
    }
  }).prototype = _http._Credentials.prototype;
  dart.addTypeTests(_http._Credentials);
  dart.addTypeCaches(_http._Credentials);
  dart.setGetterSignature(_http._Credentials, () => ({
    __proto__: dart.getGetters(_http._Credentials.__proto__),
    scheme: _http._AuthenticationScheme
  }));
  dart.setLibraryUri(_http._Credentials, I[177]);
  dart.setFieldSignature(_http._Credentials, () => ({
    __proto__: dart.getFields(_http._Credentials.__proto__),
    credentials: dart.fieldType(_http._HttpClientCredentials),
    realm: dart.fieldType(core.String),
    used: dart.fieldType(core.bool),
    ha1: dart.fieldType(dart.nullable(core.String)),
    nonce: dart.fieldType(dart.nullable(core.String)),
    algorithm: dart.fieldType(dart.nullable(core.String)),
    qop: dart.fieldType(dart.nullable(core.String)),
    nonceCount: dart.fieldType(dart.nullable(core.int))
  }));
  _http._SiteCredentials = class _SiteCredentials extends _http._Credentials {
    applies(uri, scheme) {
      if (uri == null) dart.nullFailed(I[181], 3546, 20, "uri");
      if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
      if (uri.host != this.uri.host) return false;
      let thisPort = this.uri.port === 0 ? 80 : this.uri.port;
      let otherPort = uri.port === 0 ? 80 : uri.port;
      if (otherPort != thisPort) return false;
      return uri.path[$startsWith](this.uri.path);
    }
    authorize(request) {
      if (request == null) dart.nullFailed(I[181], 3556, 36, "request");
      if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST) && this.nonce == null) {
        return;
      }
      this.credentials.authorize(this, _http._HttpClientRequest.as(request));
      this.used = true;
    }
  };
  (_http._SiteCredentials.new = function(uri, realm, creds) {
    if (uri == null) dart.nullFailed(I[181], 3543, 25, "uri");
    if (creds == null) dart.nullFailed(I[181], 3543, 60, "creds");
    this.uri = uri;
    _http._SiteCredentials.__proto__.new.call(this, creds, core.String.as(realm));
    ;
  }).prototype = _http._SiteCredentials.prototype;
  dart.addTypeTests(_http._SiteCredentials);
  dart.addTypeCaches(_http._SiteCredentials);
  dart.setMethodSignature(_http._SiteCredentials, () => ({
    __proto__: dart.getMethods(_http._SiteCredentials.__proto__),
    applies: dart.fnType(core.bool, [core.Uri, dart.nullable(_http._AuthenticationScheme)]),
    authorize: dart.fnType(dart.void, [_http.HttpClientRequest])
  }));
  dart.setLibraryUri(_http._SiteCredentials, I[177]);
  dart.setFieldSignature(_http._SiteCredentials, () => ({
    __proto__: dart.getFields(_http._SiteCredentials.__proto__),
    uri: dart.fieldType(core.Uri)
  }));
  _http._ProxyCredentials = class _ProxyCredentials extends _http._Credentials {
    applies(proxy, scheme) {
      if (proxy == null) dart.nullFailed(I[181], 3574, 23, "proxy");
      if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
      return proxy.host == this.host && proxy.port == this.port;
    }
    authorize(request) {
      if (request == null) dart.nullFailed(I[181], 3579, 36, "request");
      if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST) && this.nonce == null) {
        return;
      }
      this.credentials.authorizeProxy(this, _http._HttpClientRequest.as(request));
    }
  };
  (_http._ProxyCredentials.new = function(host, port, realm, creds) {
    if (host == null) dart.nullFailed(I[181], 3571, 26, "host");
    if (port == null) dart.nullFailed(I[181], 3571, 37, "port");
    if (creds == null) dart.nullFailed(I[181], 3571, 73, "creds");
    this.host = host;
    this.port = port;
    _http._ProxyCredentials.__proto__.new.call(this, creds, core.String.as(realm));
    ;
  }).prototype = _http._ProxyCredentials.prototype;
  dart.addTypeTests(_http._ProxyCredentials);
  dart.addTypeCaches(_http._ProxyCredentials);
  dart.setMethodSignature(_http._ProxyCredentials, () => ({
    __proto__: dart.getMethods(_http._ProxyCredentials.__proto__),
    applies: dart.fnType(core.bool, [_http._Proxy, dart.nullable(_http._AuthenticationScheme)]),
    authorize: dart.fnType(dart.void, [_http.HttpClientRequest])
  }));
  dart.setLibraryUri(_http._ProxyCredentials, I[177]);
  dart.setFieldSignature(_http._ProxyCredentials, () => ({
    __proto__: dart.getFields(_http._ProxyCredentials.__proto__),
    host: dart.fieldType(core.String),
    port: dart.fieldType(core.int)
  }));
  _http._HttpClientCredentials = class _HttpClientCredentials extends core.Object {};
  (_http._HttpClientCredentials.new = function() {
    ;
  }).prototype = _http._HttpClientCredentials.prototype;
  dart.addTypeTests(_http._HttpClientCredentials);
  dart.addTypeCaches(_http._HttpClientCredentials);
  _http._HttpClientCredentials[dart.implements] = () => [_http.HttpClientCredentials];
  dart.setLibraryUri(_http._HttpClientCredentials, I[177]);
  _http._HttpClientBasicCredentials = class _HttpClientBasicCredentials extends _http._HttpClientCredentials {
    get scheme() {
      return _http._AuthenticationScheme.BASIC;
    }
    authorization() {
      let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(this.username) + ":" + dart.str(this.password)));
      return "Basic " + dart.str(auth);
    }
    authorize(_, request) {
      if (_ == null) dart.nullFailed(I[181], 3616, 31, "_");
      if (request == null) dart.nullFailed(I[181], 3616, 52, "request");
      request.headers.set("authorization", this.authorization());
    }
    authorizeProxy(_, request) {
      if (_ == null) dart.nullFailed(I[181], 3620, 41, "_");
      if (request == null) dart.nullFailed(I[181], 3620, 62, "request");
      request.headers.set("proxy-authorization", this.authorization());
    }
  };
  (_http._HttpClientBasicCredentials.new = function(username, password) {
    if (username == null) dart.nullFailed(I[181], 3600, 36, "username");
    if (password == null) dart.nullFailed(I[181], 3600, 51, "password");
    this.username = username;
    this.password = password;
    ;
  }).prototype = _http._HttpClientBasicCredentials.prototype;
  dart.addTypeTests(_http._HttpClientBasicCredentials);
  dart.addTypeCaches(_http._HttpClientBasicCredentials);
  _http._HttpClientBasicCredentials[dart.implements] = () => [_http.HttpClientBasicCredentials];
  dart.setMethodSignature(_http._HttpClientBasicCredentials, () => ({
    __proto__: dart.getMethods(_http._HttpClientBasicCredentials.__proto__),
    authorization: dart.fnType(core.String, []),
    authorize: dart.fnType(dart.void, [_http._Credentials, _http.HttpClientRequest]),
    authorizeProxy: dart.fnType(dart.void, [_http._ProxyCredentials, _http.HttpClientRequest])
  }));
  dart.setGetterSignature(_http._HttpClientBasicCredentials, () => ({
    __proto__: dart.getGetters(_http._HttpClientBasicCredentials.__proto__),
    scheme: _http._AuthenticationScheme
  }));
  dart.setLibraryUri(_http._HttpClientBasicCredentials, I[177]);
  dart.setFieldSignature(_http._HttpClientBasicCredentials, () => ({
    __proto__: dart.getFields(_http._HttpClientBasicCredentials.__proto__),
    username: dart.fieldType(core.String),
    password: dart.fieldType(core.String)
  }));
  _http._HttpClientDigestCredentials = class _HttpClientDigestCredentials extends _http._HttpClientCredentials {
    get scheme() {
      return _http._AuthenticationScheme.DIGEST;
    }
    authorization(credentials, request) {
      let t301, t301$, t301$0, t301$1, t301$2, t301$3;
      if (credentials == null) dart.nullFailed(I[181], 3634, 37, "credentials");
      if (request == null) dart.nullFailed(I[181], 3634, 69, "request");
      let requestUri = request[_requestUri]();
      let hasher = (t301 = new _http._MD5.new(), (() => {
        t301.add(request.method[$codeUnits]);
        t301.add(T$.JSArrayOfint().of([58]));
        t301.add(requestUri[$codeUnits]);
        return t301;
      })());
      let ha2 = _http._CryptoUtils.bytesToHex(hasher.close());
      let isAuth = false;
      let cnonce = "";
      let nc = "";
      hasher = (t301$ = new _http._MD5.new(), (() => {
        t301$.add(dart.nullCheck(credentials.ha1)[$codeUnits]);
        t301$.add(T$.JSArrayOfint().of([58]));
        return t301$;
      })());
      if (credentials.qop === "auth") {
        isAuth = true;
        cnonce = _http._CryptoUtils.bytesToHex(_http._CryptoUtils.getRandomBytes(4));
        let nonceCount = dart.nullCheck(credentials.nonceCount) + 1;
        credentials.nonceCount = nonceCount;
        nc = nonceCount[$toRadixString](16)[$padLeft](9, "0");
        t301$0 = hasher;
        (() => {
          t301$0.add(dart.nullCheck(credentials.nonce)[$codeUnits]);
          t301$0.add(T$.JSArrayOfint().of([58]));
          t301$0.add(nc[$codeUnits]);
          t301$0.add(T$.JSArrayOfint().of([58]));
          t301$0.add(cnonce[$codeUnits]);
          t301$0.add(T$.JSArrayOfint().of([58]));
          t301$0.add("auth"[$codeUnits]);
          t301$0.add(T$.JSArrayOfint().of([58]));
          t301$0.add(ha2[$codeUnits]);
          return t301$0;
        })();
      } else {
        t301$1 = hasher;
        (() => {
          t301$1.add(dart.nullCheck(credentials.nonce)[$codeUnits]);
          t301$1.add(T$.JSArrayOfint().of([58]));
          t301$1.add(ha2[$codeUnits]);
          return t301$1;
        })();
      }
      let response = _http._CryptoUtils.bytesToHex(hasher.close());
      let buffer = (t301$2 = new core.StringBuffer.new(), (() => {
        t301$2.write("Digest ");
        t301$2.write("username=\"" + dart.str(this.username) + "\"");
        t301$2.write(", realm=\"" + dart.str(credentials.realm) + "\"");
        t301$2.write(", nonce=\"" + dart.str(credentials.nonce) + "\"");
        t301$2.write(", uri=\"" + dart.str(requestUri) + "\"");
        t301$2.write(", algorithm=\"" + dart.str(credentials.algorithm) + "\"");
        return t301$2;
      })());
      if (isAuth) {
        t301$3 = buffer;
        (() => {
          t301$3.write(", qop=\"auth\"");
          t301$3.write(", cnonce=\"" + dart.str(cnonce) + "\"");
          t301$3.write(", nc=\"" + nc + "\"");
          return t301$3;
        })();
      }
      buffer.write(", response=\"" + dart.str(response) + "\"");
      return dart.toString(buffer);
    }
    authorize(credentials, request) {
      if (credentials == null) dart.nullFailed(I[181], 3689, 31, "credentials");
      if (request == null) dart.nullFailed(I[181], 3689, 62, "request");
      request.headers.set("authorization", this.authorization(credentials, _http._HttpClientRequest.as(request)));
    }
    authorizeProxy(credentials, request) {
      if (credentials == null) dart.nullFailed(I[181], 3695, 25, "credentials");
      if (request == null) dart.nullFailed(I[181], 3695, 56, "request");
      request.headers.set("proxy-authorization", this.authorization(credentials, _http._HttpClientRequest.as(request)));
    }
  };
  (_http._HttpClientDigestCredentials.new = function(username, password) {
    if (username == null) dart.nullFailed(I[181], 3630, 37, "username");
    if (password == null) dart.nullFailed(I[181], 3630, 52, "password");
    this.username = username;
    this.password = password;
    ;
  }).prototype = _http._HttpClientDigestCredentials.prototype;
  dart.addTypeTests(_http._HttpClientDigestCredentials);
  dart.addTypeCaches(_http._HttpClientDigestCredentials);
  _http._HttpClientDigestCredentials[dart.implements] = () => [_http.HttpClientDigestCredentials];
  dart.setMethodSignature(_http._HttpClientDigestCredentials, () => ({
    __proto__: dart.getMethods(_http._HttpClientDigestCredentials.__proto__),
    authorization: dart.fnType(core.String, [_http._Credentials, _http._HttpClientRequest]),
    authorize: dart.fnType(dart.void, [_http._Credentials, _http.HttpClientRequest]),
    authorizeProxy: dart.fnType(dart.void, [_http._ProxyCredentials, _http.HttpClientRequest])
  }));
  dart.setGetterSignature(_http._HttpClientDigestCredentials, () => ({
    __proto__: dart.getGetters(_http._HttpClientDigestCredentials.__proto__),
    scheme: _http._AuthenticationScheme
  }));
  dart.setLibraryUri(_http._HttpClientDigestCredentials, I[177]);
  dart.setFieldSignature(_http._HttpClientDigestCredentials, () => ({
    __proto__: dart.getFields(_http._HttpClientDigestCredentials.__proto__),
    username: dart.fieldType(core.String),
    password: dart.fieldType(core.String)
  }));
  var statusCode$ = dart.privateName(_http, "_RedirectInfo.statusCode");
  var method$ = dart.privateName(_http, "_RedirectInfo.method");
  var location$ = dart.privateName(_http, "_RedirectInfo.location");
  _http._RedirectInfo = class _RedirectInfo extends core.Object {
    get statusCode() {
      return this[statusCode$];
    }
    set statusCode(value) {
      super.statusCode = value;
    }
    get method() {
      return this[method$];
    }
    set method(value) {
      super.method = value;
    }
    get location() {
      return this[location$];
    }
    set location(value) {
      super.location = value;
    }
  };
  (_http._RedirectInfo.new = function(statusCode, method, location) {
    if (statusCode == null) dart.nullFailed(I[181], 3705, 28, "statusCode");
    if (method == null) dart.nullFailed(I[181], 3705, 45, "method");
    if (location == null) dart.nullFailed(I[181], 3705, 58, "location");
    this[statusCode$] = statusCode;
    this[method$] = method;
    this[location$] = location;
    ;
  }).prototype = _http._RedirectInfo.prototype;
  dart.addTypeTests(_http._RedirectInfo);
  dart.addTypeCaches(_http._RedirectInfo);
  _http._RedirectInfo[dart.implements] = () => [_http.RedirectInfo];
  dart.setLibraryUri(_http._RedirectInfo, I[177]);
  dart.setFieldSignature(_http._RedirectInfo, () => ({
    __proto__: dart.getFields(_http._RedirectInfo.__proto__),
    statusCode: dart.finalFieldType(core.int),
    method: dart.finalFieldType(core.String),
    location: dart.finalFieldType(core.Uri)
  }));
  _http._Const = class _Const extends core.Object {};
  (_http._Const.new = function() {
    ;
  }).prototype = _http._Const.prototype;
  dart.addTypeTests(_http._Const);
  dart.addTypeCaches(_http._Const);
  dart.setLibraryUri(_http._Const, I[177]);
  dart.defineLazy(_http._Const, {
    /*_http._Const.HTTP*/get HTTP() {
      return C[481] || CT.C481;
    },
    /*_http._Const.HTTP1DOT*/get HTTP1DOT() {
      return C[482] || CT.C482;
    },
    /*_http._Const.HTTP10*/get HTTP10() {
      return C[483] || CT.C483;
    },
    /*_http._Const.HTTP11*/get HTTP11() {
      return C[484] || CT.C484;
    },
    /*_http._Const.T*/get T() {
      return true;
    },
    /*_http._Const.F*/get F() {
      return false;
    },
    /*_http._Const.SEPARATOR_MAP*/get SEPARATOR_MAP() {
      return C[485] || CT.C485;
    }
  }, false);
  _http._CharCode = class _CharCode extends core.Object {};
  (_http._CharCode.new = function() {
    ;
  }).prototype = _http._CharCode.prototype;
  dart.addTypeTests(_http._CharCode);
  dart.addTypeCaches(_http._CharCode);
  dart.setLibraryUri(_http._CharCode, I[177]);
  dart.defineLazy(_http._CharCode, {
    /*_http._CharCode.HT*/get HT() {
      return 9;
    },
    /*_http._CharCode.LF*/get LF() {
      return 10;
    },
    /*_http._CharCode.CR*/get CR() {
      return 13;
    },
    /*_http._CharCode.SP*/get SP() {
      return 32;
    },
    /*_http._CharCode.AMPERSAND*/get AMPERSAND() {
      return 38;
    },
    /*_http._CharCode.COMMA*/get COMMA() {
      return 44;
    },
    /*_http._CharCode.DASH*/get DASH() {
      return 45;
    },
    /*_http._CharCode.SLASH*/get SLASH() {
      return 47;
    },
    /*_http._CharCode.ZERO*/get ZERO() {
      return 48;
    },
    /*_http._CharCode.ONE*/get ONE() {
      return 49;
    },
    /*_http._CharCode.COLON*/get COLON() {
      return 58;
    },
    /*_http._CharCode.SEMI_COLON*/get SEMI_COLON() {
      return 59;
    },
    /*_http._CharCode.EQUAL*/get EQUAL() {
      return 61;
    }
  }, false);
  _http._State = class _State extends core.Object {};
  (_http._State.new = function() {
    ;
  }).prototype = _http._State.prototype;
  dart.addTypeTests(_http._State);
  dart.addTypeCaches(_http._State);
  dart.setLibraryUri(_http._State, I[177]);
  dart.defineLazy(_http._State, {
    /*_http._State.START*/get START() {
      return 0;
    },
    /*_http._State.METHOD_OR_RESPONSE_HTTP_VERSION*/get METHOD_OR_RESPONSE_HTTP_VERSION() {
      return 1;
    },
    /*_http._State.RESPONSE_HTTP_VERSION*/get RESPONSE_HTTP_VERSION() {
      return 2;
    },
    /*_http._State.REQUEST_LINE_METHOD*/get REQUEST_LINE_METHOD() {
      return 3;
    },
    /*_http._State.REQUEST_LINE_URI*/get REQUEST_LINE_URI() {
      return 4;
    },
    /*_http._State.REQUEST_LINE_HTTP_VERSION*/get REQUEST_LINE_HTTP_VERSION() {
      return 5;
    },
    /*_http._State.REQUEST_LINE_ENDING*/get REQUEST_LINE_ENDING() {
      return 6;
    },
    /*_http._State.RESPONSE_LINE_STATUS_CODE*/get RESPONSE_LINE_STATUS_CODE() {
      return 7;
    },
    /*_http._State.RESPONSE_LINE_REASON_PHRASE*/get RESPONSE_LINE_REASON_PHRASE() {
      return 8;
    },
    /*_http._State.RESPONSE_LINE_ENDING*/get RESPONSE_LINE_ENDING() {
      return 9;
    },
    /*_http._State.HEADER_START*/get HEADER_START() {
      return 10;
    },
    /*_http._State.HEADER_FIELD*/get HEADER_FIELD() {
      return 11;
    },
    /*_http._State.HEADER_VALUE_START*/get HEADER_VALUE_START() {
      return 12;
    },
    /*_http._State.HEADER_VALUE*/get HEADER_VALUE() {
      return 13;
    },
    /*_http._State.HEADER_VALUE_FOLD_OR_END_CR*/get HEADER_VALUE_FOLD_OR_END_CR() {
      return 14;
    },
    /*_http._State.HEADER_VALUE_FOLD_OR_END*/get HEADER_VALUE_FOLD_OR_END() {
      return 15;
    },
    /*_http._State.HEADER_ENDING*/get HEADER_ENDING() {
      return 16;
    },
    /*_http._State.CHUNK_SIZE_STARTING_CR*/get CHUNK_SIZE_STARTING_CR() {
      return 17;
    },
    /*_http._State.CHUNK_SIZE_STARTING*/get CHUNK_SIZE_STARTING() {
      return 18;
    },
    /*_http._State.CHUNK_SIZE*/get CHUNK_SIZE() {
      return 19;
    },
    /*_http._State.CHUNK_SIZE_EXTENSION*/get CHUNK_SIZE_EXTENSION() {
      return 20;
    },
    /*_http._State.CHUNK_SIZE_ENDING*/get CHUNK_SIZE_ENDING() {
      return 21;
    },
    /*_http._State.CHUNKED_BODY_DONE_CR*/get CHUNKED_BODY_DONE_CR() {
      return 22;
    },
    /*_http._State.CHUNKED_BODY_DONE*/get CHUNKED_BODY_DONE() {
      return 23;
    },
    /*_http._State.BODY*/get BODY() {
      return 24;
    },
    /*_http._State.CLOSED*/get CLOSED() {
      return 25;
    },
    /*_http._State.UPGRADED*/get UPGRADED() {
      return 26;
    },
    /*_http._State.FAILURE*/get FAILURE() {
      return 27;
    },
    /*_http._State.FIRST_BODY_STATE*/get FIRST_BODY_STATE() {
      return 17;
    }
  }, false);
  _http._HttpVersion = class _HttpVersion extends core.Object {};
  (_http._HttpVersion.new = function() {
    ;
  }).prototype = _http._HttpVersion.prototype;
  dart.addTypeTests(_http._HttpVersion);
  dart.addTypeCaches(_http._HttpVersion);
  dart.setLibraryUri(_http._HttpVersion, I[177]);
  dart.defineLazy(_http._HttpVersion, {
    /*_http._HttpVersion.UNDETERMINED*/get UNDETERMINED() {
      return 0;
    },
    /*_http._HttpVersion.HTTP10*/get HTTP10() {
      return 1;
    },
    /*_http._HttpVersion.HTTP11*/get HTTP11() {
      return 2;
    }
  }, false);
  _http._MessageType = class _MessageType extends core.Object {};
  (_http._MessageType.new = function() {
    ;
  }).prototype = _http._MessageType.prototype;
  dart.addTypeTests(_http._MessageType);
  dart.addTypeCaches(_http._MessageType);
  dart.setLibraryUri(_http._MessageType, I[177]);
  dart.defineLazy(_http._MessageType, {
    /*_http._MessageType.UNDETERMINED*/get UNDETERMINED() {
      return 0;
    },
    /*_http._MessageType.REQUEST*/get REQUEST() {
      return 1;
    },
    /*_http._MessageType.RESPONSE*/get RESPONSE() {
      return 0;
    }
  }, false);
  var _isCanceled$ = dart.privateName(_http, "_isCanceled");
  var _scheduled = dart.privateName(_http, "_scheduled");
  var _pauseCount$ = dart.privateName(_http, "_pauseCount");
  var _injectData$ = dart.privateName(_http, "_injectData");
  var _userOnData$ = dart.privateName(_http, "_userOnData");
  var _maybeScheduleData = dart.privateName(_http, "_maybeScheduleData");
  _http._HttpDetachedStreamSubscription = class _HttpDetachedStreamSubscription extends core.Object {
    get isPaused() {
      return this[_subscription$0].isPaused;
    }
    asFuture(T, futureValue = null) {
      return this[_subscription$0].asFuture(T, T.as(futureValue));
    }
    cancel() {
      this[_isCanceled$] = true;
      this[_injectData$] = null;
      return this[_subscription$0].cancel();
    }
    onData(handleData) {
      this[_userOnData$] = handleData;
      this[_subscription$0].onData(handleData);
    }
    onDone(handleDone) {
      this[_subscription$0].onDone(handleDone);
    }
    onError(handleError) {
      this[_subscription$0].onError(handleError);
    }
    pause(resumeSignal = null) {
      if (this[_injectData$] == null) {
        this[_subscription$0].pause(resumeSignal);
      } else {
        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
        if (resumeSignal != null) {
          resumeSignal.whenComplete(dart.bind(this, 'resume'));
        }
      }
    }
    resume() {
      if (this[_injectData$] == null) {
        this[_subscription$0].resume();
      } else {
        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
        this[_maybeScheduleData]();
      }
    }
    [_maybeScheduleData]() {
      if (dart.test(this[_scheduled])) return;
      if (this[_pauseCount$] !== 0) return;
      this[_scheduled] = true;
      async.scheduleMicrotask(dart.fn(() => {
        let t301;
        this[_scheduled] = false;
        if (dart.notNull(this[_pauseCount$]) > 0 || dart.test(this[_isCanceled$])) return;
        let data = this[_injectData$];
        this[_injectData$] = null;
        this[_subscription$0].resume();
        t301 = this[_userOnData$];
        t301 == null ? null : dart.dcall(t301, [data]);
      }, T$.VoidTovoid()));
    }
  };
  (_http._HttpDetachedStreamSubscription.new = function(_subscription, _injectData, _userOnData) {
    if (_subscription == null) dart.nullFailed(I[182], 120, 12, "_subscription");
    this[_isCanceled$] = false;
    this[_scheduled] = false;
    this[_pauseCount$] = 1;
    this[_subscription$0] = _subscription;
    this[_injectData$] = _injectData;
    this[_userOnData$] = _userOnData;
    ;
  }).prototype = _http._HttpDetachedStreamSubscription.prototype;
  _http._HttpDetachedStreamSubscription.prototype[dart.isStreamSubscription] = true;
  dart.addTypeTests(_http._HttpDetachedStreamSubscription);
  dart.addTypeCaches(_http._HttpDetachedStreamSubscription);
  _http._HttpDetachedStreamSubscription[dart.implements] = () => [async.StreamSubscription$(typed_data.Uint8List)];
  dart.setMethodSignature(_http._HttpDetachedStreamSubscription, () => ({
    __proto__: dart.getMethods(_http._HttpDetachedStreamSubscription.__proto__),
    asFuture: dart.gFnType(T => [async.Future$(T), [], [dart.nullable(T)]], T => [dart.nullable(core.Object)]),
    cancel: dart.fnType(async.Future, []),
    onData: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))]),
    onDone: dart.fnType(dart.void, [dart.nullable(dart.fnType(dart.void, []))]),
    onError: dart.fnType(dart.void, [dart.nullable(core.Function)]),
    pause: dart.fnType(dart.void, [], [dart.nullable(async.Future)]),
    resume: dart.fnType(dart.void, []),
    [_maybeScheduleData]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_http._HttpDetachedStreamSubscription, () => ({
    __proto__: dart.getGetters(_http._HttpDetachedStreamSubscription.__proto__),
    isPaused: core.bool
  }));
  dart.setLibraryUri(_http._HttpDetachedStreamSubscription, I[177]);
  dart.setFieldSignature(_http._HttpDetachedStreamSubscription, () => ({
    __proto__: dart.getFields(_http._HttpDetachedStreamSubscription.__proto__),
    [_subscription$0]: dart.fieldType(async.StreamSubscription$(typed_data.Uint8List)),
    [_injectData$]: dart.fieldType(dart.nullable(typed_data.Uint8List)),
    [_userOnData$]: dart.fieldType(dart.nullable(core.Function)),
    [_isCanceled$]: dart.fieldType(core.bool),
    [_scheduled]: dart.fieldType(core.bool),
    [_pauseCount$]: dart.fieldType(core.int)
  }));
  _http._HttpDetachedIncoming = class _HttpDetachedIncoming extends async.Stream$(typed_data.Uint8List) {
    listen(onData, opts) {
      let t301, t301$, t301$0;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      let subscription = this.subscription;
      if (subscription != null) {
        t301 = subscription;
        (() => {
          t301.onData(onData);
          t301.onError(onError);
          t301.onDone(onDone);
          return t301;
        })();
        if (this.bufferedData == null) {
          t301$ = subscription;
          return (() => {
            t301$.resume();
            return t301$;
          })();
        }
        t301$0 = new _http._HttpDetachedStreamSubscription.new(subscription, this.bufferedData, onData);
        return (() => {
          t301$0.resume();
          return t301$0;
        })();
      } else {
        return T.StreamOfUint8List().fromIterable(T$.JSArrayOfUint8List().of([dart.nullCheck(this.bufferedData)])).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
      }
    }
  };
  (_http._HttpDetachedIncoming.new = function(subscription, bufferedData) {
    this.subscription = subscription;
    this.bufferedData = bufferedData;
    _http._HttpDetachedIncoming.__proto__.new.call(this);
    ;
  }).prototype = _http._HttpDetachedIncoming.prototype;
  dart.addTypeTests(_http._HttpDetachedIncoming);
  dart.addTypeCaches(_http._HttpDetachedIncoming);
  dart.setMethodSignature(_http._HttpDetachedIncoming, () => ({
    __proto__: dart.getMethods(_http._HttpDetachedIncoming.__proto__),
    listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.nullable(dart.fnType(dart.void, [typed_data.Uint8List]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {})
  }));
  dart.setLibraryUri(_http._HttpDetachedIncoming, I[177]);
  dart.setFieldSignature(_http._HttpDetachedIncoming, () => ({
    __proto__: dart.getFields(_http._HttpDetachedIncoming.__proto__),
    subscription: dart.finalFieldType(dart.nullable(async.StreamSubscription$(typed_data.Uint8List))),
    bufferedData: dart.finalFieldType(dart.nullable(typed_data.Uint8List))
  }));
  var _parserCalled = dart.privateName(_http, "_parserCalled");
  var _index$1 = dart.privateName(_http, "_index");
  var _httpVersionIndex = dart.privateName(_http, "_httpVersionIndex");
  var _messageType = dart.privateName(_http, "_messageType");
  var _statusCodeLength = dart.privateName(_http, "_statusCodeLength");
  var _method$ = dart.privateName(_http, "_method");
  var _uriOrReasonPhrase = dart.privateName(_http, "_uriOrReasonPhrase");
  var _headerField = dart.privateName(_http, "_headerField");
  var _headerValue = dart.privateName(_http, "_headerValue");
  var _headersReceivedSize = dart.privateName(_http, "_headersReceivedSize");
  var _httpVersion = dart.privateName(_http, "_httpVersion");
  var _connectionUpgrade = dart.privateName(_http, "_connectionUpgrade");
  var _chunked = dart.privateName(_http, "_chunked");
  var _noMessageBody = dart.privateName(_http, "_noMessageBody");
  var _remainingContent = dart.privateName(_http, "_remainingContent");
  var _transferEncoding = dart.privateName(_http, "_transferEncoding");
  var _chunkSizeLimit = dart.privateName(_http, "_chunkSizeLimit");
  var _socketSubscription$ = dart.privateName(_http, "_socketSubscription");
  var _paused = dart.privateName(_http, "_paused");
  var _bodyPaused = dart.privateName(_http, "_bodyPaused");
  var _bodyController = dart.privateName(_http, "_bodyController");
  var _requestParser$ = dart.privateName(_http, "_requestParser");
  var _pauseStateChanged = dart.privateName(_http, "_pauseStateChanged");
  var _reset = dart.privateName(_http, "_reset");
  var _onData$1 = dart.privateName(_http, "_onData");
  var _onDone = dart.privateName(_http, "_onDone");
  var _doParse = dart.privateName(_http, "_doParse");
  var _reportBodyError = dart.privateName(_http, "_reportBodyError");
  var _reportHttpError = dart.privateName(_http, "_reportHttpError");
  var _createIncoming = dart.privateName(_http, "_createIncoming");
  var _closeIncoming = dart.privateName(_http, "_closeIncoming");
  var _headersEnd = dart.privateName(_http, "_headersEnd");
  var _addWithValidation = dart.privateName(_http, "_addWithValidation");
  var _expect = dart.privateName(_http, "_expect");
  var _expectHexDigit = dart.privateName(_http, "_expectHexDigit");
  var _releaseBuffer = dart.privateName(_http, "_releaseBuffer");
  var _reportSizeLimitError = dart.privateName(_http, "_reportSizeLimitError");
  _http._HttpParser = class _HttpParser extends async.Stream$(_http._HttpIncoming) {
    static requestParser() {
      return new _http._HttpParser.__(true);
    }
    static responseParser() {
      return new _http._HttpParser.__(false);
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    listenToStream(stream) {
      if (stream == null) dart.nullFailed(I[182], 312, 41, "stream");
      this[_socketSubscription$] = stream.listen(dart.bind(this, _onData$1), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this, _onDone)});
    }
    [_parse]() {
      try {
        this[_doParse]();
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.Object.is(e)) {
          if (dart.notNull(this[_state$1]) >= 17 && dart.notNull(this[_state$1]) <= 24) {
            this[_state$1] = 27;
            this[_reportBodyError](e, s);
          } else {
            this[_state$1] = 27;
            this[_reportHttpError](e, s);
          }
        } else
          throw e$;
      }
    }
    [_headersEnd]() {
      let headers = dart.nullCheck(this[_headers]);
      if (!dart.test(this[_requestParser$]) && dart.notNull(this[_statusCode]) >= 200 && dart.notNull(this[_statusCode]) < 300 && dart.test(this.connectMethod)) {
        this[_transferLength$] = -1;
        headers.chunkedTransferEncoding = false;
        this[_chunked] = false;
        headers.removeAll("content-length");
        headers.removeAll("transfer-encoding");
      }
      headers[_mutable] = false;
      this[_transferLength$] = headers.contentLength;
      if (dart.test(this[_chunked])) this[_transferLength$] = -1;
      if (this[_messageType] === 1 && dart.notNull(this[_transferLength$]) < 0 && this[_chunked] === false) {
        this[_transferLength$] = 0;
      }
      if (dart.test(this[_connectionUpgrade])) {
        this[_state$1] = 26;
        this[_transferLength$] = 0;
      }
      let incoming = this[_createIncoming](this[_transferLength$]);
      if (dart.test(this[_requestParser$])) {
        incoming.method = core.String.fromCharCodes(this[_method$]);
        incoming.uri = core.Uri.parse(core.String.fromCharCodes(this[_uriOrReasonPhrase]));
      } else {
        incoming.statusCode = this[_statusCode];
        incoming.reasonPhrase = core.String.fromCharCodes(this[_uriOrReasonPhrase]);
      }
      this[_method$][$clear]();
      this[_uriOrReasonPhrase][$clear]();
      if (dart.test(this[_connectionUpgrade])) {
        incoming.upgraded = true;
        this[_parserCalled] = false;
        this[_closeIncoming]();
        this[_controller$0].add(incoming);
        return true;
      }
      if (this[_transferLength$] === 0 || this[_messageType] === 0 && dart.test(this[_noMessageBody])) {
        this[_reset]();
        this[_closeIncoming]();
        this[_controller$0].add(incoming);
        return false;
      } else if (dart.test(this[_chunked])) {
        this[_state$1] = 19;
        this[_remainingContent] = 0;
      } else if (dart.notNull(this[_transferLength$]) > 0) {
        this[_remainingContent] = this[_transferLength$];
        this[_state$1] = 24;
      } else {
        this[_state$1] = 24;
      }
      this[_parserCalled] = false;
      this[_controller$0].add(incoming);
      return true;
    }
    [_doParse]() {
      if (!!dart.test(this[_parserCalled])) dart.assertFailed(null, I[182], 426, 12, "!_parserCalled");
      this[_parserCalled] = true;
      if (this[_state$1] === 25) {
        dart.throw(new _http.HttpException.new("Data on closed connection"));
      }
      if (this[_state$1] === 27) {
        dart.throw(new _http.HttpException.new("Data on failed connection"));
      }
      while (this[_buffer$1] != null && dart.notNull(this[_index$1]) < dart.notNull(dart.nullCheck(this[_buffer$1])[$length]) && this[_state$1] !== 27 && this[_state$1] !== 26) {
        if (this[_incoming$] != null && dart.test(this[_bodyPaused]) || this[_incoming$] == null && dart.test(this[_paused])) {
          this[_parserCalled] = false;
          return;
        }
        let index = this[_index$1];
        let byte = dart.nullCheck(this[_buffer$1])[$_get](index);
        this[_index$1] = dart.notNull(index) + 1;
        switch (this[_state$1]) {
          case 0:
          {
            if (byte == _http._Const.HTTP[$_get](0)) {
              this[_httpVersionIndex] = 1;
              this[_state$1] = 1;
            } else {
              if (!dart.test(_http._HttpParser._isTokenChar(byte))) {
                dart.throw(new _http.HttpException.new("Invalid request method"));
              }
              this[_addWithValidation](this[_method$], byte);
              if (!dart.test(this[_requestParser$])) {
                dart.throw(new _http.HttpException.new("Invalid response line"));
              }
              this[_state$1] = 3;
            }
            break;
          }
          case 1:
          {
            let httpVersionIndex = dart.nullCheck(this[_httpVersionIndex]);
            if (httpVersionIndex < dart.notNull(_http._Const.HTTP[$length]) && byte == _http._Const.HTTP[$_get](httpVersionIndex)) {
              this[_httpVersionIndex] = httpVersionIndex + 1;
            } else if (httpVersionIndex === _http._Const.HTTP[$length] && byte === 47) {
              this[_httpVersionIndex] = httpVersionIndex + 1;
              if (dart.test(this[_requestParser$])) {
                dart.throw(new _http.HttpException.new("Invalid request line"));
              }
              this[_state$1] = 2;
            } else {
              for (let i = 0; i < httpVersionIndex; i = i + 1) {
                this[_addWithValidation](this[_method$], _http._Const.HTTP[$_get](i));
              }
              if (byte === 32) {
                this[_state$1] = 4;
              } else {
                this[_addWithValidation](this[_method$], byte);
                this[_httpVersion] = 0;
                if (!dart.test(this[_requestParser$])) {
                  dart.throw(new _http.HttpException.new("Invalid response line"));
                }
                this[_state$1] = 3;
              }
            }
            break;
          }
          case 2:
          {
            let httpVersionIndex = dart.nullCheck(this[_httpVersionIndex]);
            if (httpVersionIndex < dart.notNull(_http._Const.HTTP1DOT[$length])) {
              this[_expect](byte, _http._Const.HTTP1DOT[$_get](httpVersionIndex));
              this[_httpVersionIndex] = httpVersionIndex + 1;
            } else if (httpVersionIndex === _http._Const.HTTP1DOT[$length] && byte === 49) {
              this[_httpVersion] = 2;
              this[_persistentConnection] = true;
              this[_httpVersionIndex] = httpVersionIndex + 1;
            } else if (httpVersionIndex === _http._Const.HTTP1DOT[$length] && byte === 48) {
              this[_httpVersion] = 1;
              this[_persistentConnection] = false;
              this[_httpVersionIndex] = httpVersionIndex + 1;
            } else if (httpVersionIndex === dart.notNull(_http._Const.HTTP1DOT[$length]) + 1) {
              this[_expect](byte, 32);
              this[_state$1] = 7;
            } else {
              dart.throw(new _http.HttpException.new("Invalid response line, failed to parse HTTP version"));
            }
            break;
          }
          case 3:
          {
            if (byte === 32) {
              this[_state$1] = 4;
            } else {
              if (dart.test(_http._Const.SEPARATOR_MAP[$_get](byte)) || byte === 13 || byte === 10) {
                dart.throw(new _http.HttpException.new("Invalid request method"));
              }
              this[_addWithValidation](this[_method$], byte);
            }
            break;
          }
          case 4:
          {
            if (byte === 32) {
              if (this[_uriOrReasonPhrase][$length] === 0) {
                dart.throw(new _http.HttpException.new("Invalid request, empty URI"));
              }
              this[_state$1] = 5;
              this[_httpVersionIndex] = 0;
            } else {
              if (byte === 13 || byte === 10) {
                dart.throw(new _http.HttpException.new("Invalid request, unexpected " + dart.str(byte) + " in URI"));
              }
              this[_addWithValidation](this[_uriOrReasonPhrase], byte);
            }
            break;
          }
          case 5:
          {
            let httpVersionIndex = dart.nullCheck(this[_httpVersionIndex]);
            if (httpVersionIndex < dart.notNull(_http._Const.HTTP1DOT[$length])) {
              this[_expect](byte, _http._Const.HTTP11[$_get](httpVersionIndex));
              this[_httpVersionIndex] = httpVersionIndex + 1;
            } else if (this[_httpVersionIndex] == _http._Const.HTTP1DOT[$length]) {
              if (byte === 49) {
                this[_httpVersion] = 2;
                this[_persistentConnection] = true;
                this[_httpVersionIndex] = httpVersionIndex + 1;
              } else if (byte === 48) {
                this[_httpVersion] = 1;
                this[_persistentConnection] = false;
                this[_httpVersionIndex] = httpVersionIndex + 1;
              } else {
                dart.throw(new _http.HttpException.new("Invalid response, invalid HTTP version"));
              }
            } else {
              if (byte === 13) {
                this[_state$1] = 6;
              } else if (byte === 10) {
                this[_state$1] = 6;
                this[_index$1] = dart.notNull(this[_index$1]) - 1;
              }
            }
            break;
          }
          case 6:
          {
            this[_expect](byte, 10);
            this[_messageType] = 1;
            this[_state$1] = 10;
            break;
          }
          case 7:
          {
            if (byte === 32) {
              this[_state$1] = 8;
            } else if (byte === 13) {
              this[_state$1] = 9;
            } else if (byte === 10) {
              this[_state$1] = 9;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            } else {
              this[_statusCodeLength] = dart.notNull(this[_statusCodeLength]) + 1;
              if (dart.notNull(byte) < 48 || dart.notNull(byte) > 57) {
                dart.throw(new _http.HttpException.new("Invalid response status code with " + dart.str(byte)));
              } else if (dart.notNull(this[_statusCodeLength]) > 3) {
                dart.throw(new _http.HttpException.new("Invalid response, status code is over 3 digits"));
              } else {
                this[_statusCode] = dart.notNull(this[_statusCode]) * 10 + dart.notNull(byte) - 48;
              }
            }
            break;
          }
          case 8:
          {
            if (byte === 13) {
              this[_state$1] = 9;
            } else if (byte === 10) {
              this[_state$1] = 9;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            } else {
              this[_addWithValidation](this[_uriOrReasonPhrase], byte);
            }
            break;
          }
          case 9:
          {
            this[_expect](byte, 10);
            this[_messageType] === 0;
            if (dart.notNull(this[_statusCode]) <= 199 || this[_statusCode] === 204 || this[_statusCode] === 304) {
              this[_noMessageBody] = true;
            }
            this[_state$1] = 10;
            break;
          }
          case 10:
          {
            this[_headers] = new _http._HttpHeaders.new(dart.nullCheck(this.version));
            if (byte === 13) {
              this[_state$1] = 16;
            } else if (byte === 10) {
              this[_state$1] = 16;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            } else {
              this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
              this[_state$1] = 11;
            }
            break;
          }
          case 11:
          {
            if (byte === 58) {
              this[_state$1] = 12;
            } else {
              if (!dart.test(_http._HttpParser._isTokenChar(byte))) {
                dart.throw(new _http.HttpException.new("Invalid header field name, with " + dart.str(byte)));
              }
              this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
            }
            break;
          }
          case 12:
          {
            if (byte === 13) {
              this[_state$1] = 14;
            } else if (byte === 10) {
              this[_state$1] = 15;
            } else if (byte !== 32 && byte !== 9) {
              this[_addWithValidation](this[_headerValue], byte);
              this[_state$1] = 13;
            }
            break;
          }
          case 13:
          {
            if (byte === 13) {
              this[_state$1] = 14;
            } else if (byte === 10) {
              this[_state$1] = 15;
            } else {
              this[_addWithValidation](this[_headerValue], byte);
            }
            break;
          }
          case 14:
          {
            this[_expect](byte, 10);
            this[_state$1] = 15;
            break;
          }
          case 15:
          {
            if (byte === 32 || byte === 9) {
              this[_state$1] = 12;
            } else {
              let headerField = core.String.fromCharCodes(this[_headerField]);
              let headerValue = core.String.fromCharCodes(this[_headerValue]);
              let errorIfBothText = "Both Content-Length and Transfer-Encoding are specified, at most one is allowed";
              if (headerField === "content-length") {
                if (dart.test(this[_contentLength])) {
                  dart.throw(new _http.HttpException.new("The Content-Length header occurred " + "more than once, at most one is allowed."));
                } else if (dart.test(this[_transferEncoding])) {
                  dart.throw(new _http.HttpException.new(errorIfBothText));
                }
                this[_contentLength] = true;
              } else if (headerField === "transfer-encoding") {
                this[_transferEncoding] = true;
                if (dart.test(_http._HttpParser._caseInsensitiveCompare("chunked"[$codeUnits], this[_headerValue]))) {
                  this[_chunked] = true;
                }
                if (dart.test(this[_contentLength])) {
                  dart.throw(new _http.HttpException.new(errorIfBothText));
                }
              }
              let headers = dart.nullCheck(this[_headers]);
              if (headerField === "connection") {
                let tokens = _http._HttpParser._tokenizeFieldValue(headerValue);
                let isResponse = this[_messageType] === 0;
                let isUpgradeCode = this[_statusCode] === 426 || this[_statusCode] === 101;
                for (let i = 0; i < dart.notNull(tokens[$length]); i = i + 1) {
                  let isUpgrade = _http._HttpParser._caseInsensitiveCompare("upgrade"[$codeUnits], tokens[$_get](i)[$codeUnits]);
                  if (dart.test(isUpgrade) && !isResponse || dart.test(isUpgrade) && isResponse && isUpgradeCode) {
                    this[_connectionUpgrade] = true;
                  }
                  headers[_add$1](headerField, tokens[$_get](i));
                }
              } else {
                headers[_add$1](headerField, headerValue);
              }
              this[_headerField][$clear]();
              this[_headerValue][$clear]();
              if (byte === 13) {
                this[_state$1] = 16;
              } else if (byte === 10) {
                this[_state$1] = 16;
                this[_index$1] = dart.notNull(this[_index$1]) - 1;
              } else {
                this[_state$1] = 11;
                this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
              }
            }
            break;
          }
          case 16:
          {
            this[_expect](byte, 10);
            if (dart.test(this[_headersEnd]())) {
              return;
            }
            break;
          }
          case 17:
          {
            if (byte === 10) {
              this[_state$1] = 18;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
              break;
            }
            this[_expect](byte, 13);
            this[_state$1] = 18;
            break;
          }
          case 18:
          {
            this[_expect](byte, 10);
            this[_state$1] = 19;
            break;
          }
          case 19:
          {
            if (byte === 13) {
              this[_state$1] = 21;
            } else if (byte === 10) {
              this[_state$1] = 21;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            } else if (byte === 59) {
              this[_state$1] = 20;
            } else {
              let value = this[_expectHexDigit](byte);
              if (dart.notNull(this[_remainingContent]) > this[_chunkSizeLimit][$rightShift](4)) {
                dart.throw(new _http.HttpException.new("Chunk size overflows the integer"));
              }
              this[_remainingContent] = dart.notNull(this[_remainingContent]) * 16 + dart.notNull(value);
            }
            break;
          }
          case 20:
          {
            if (byte === 13) {
              this[_state$1] = 21;
            } else if (byte === 10) {
              this[_state$1] = 21;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            }
            break;
          }
          case 21:
          {
            this[_expect](byte, 10);
            if (dart.notNull(this[_remainingContent]) > 0) {
              this[_state$1] = 24;
            } else {
              this[_state$1] = 22;
            }
            break;
          }
          case 22:
          {
            if (byte === 10) {
              this[_state$1] = 23;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
              break;
            }
            this[_expect](byte, 13);
            break;
          }
          case 23:
          {
            this[_expect](byte, 10);
            this[_reset]();
            this[_closeIncoming]();
            break;
          }
          case 24:
          {
            this[_index$1] = dart.notNull(this[_index$1]) - 1;
            let buffer = dart.nullCheck(this[_buffer$1]);
            let dataAvailable = dart.notNull(buffer[$length]) - dart.notNull(this[_index$1]);
            if (dart.notNull(this[_remainingContent]) >= 0 && dart.notNull(dataAvailable) > dart.notNull(this[_remainingContent])) {
              dataAvailable = this[_remainingContent];
            }
            let data = typed_data.Uint8List.view(buffer[$buffer], dart.notNull(buffer[$offsetInBytes]) + dart.notNull(this[_index$1]), dataAvailable);
            dart.nullCheck(this[_bodyController]).add(data);
            if (this[_remainingContent] !== -1) {
              this[_remainingContent] = dart.notNull(this[_remainingContent]) - dart.notNull(data[$length]);
            }
            this[_index$1] = dart.notNull(this[_index$1]) + dart.notNull(data[$length]);
            if (this[_remainingContent] === 0) {
              if (!dart.test(this[_chunked])) {
                this[_reset]();
                this[_closeIncoming]();
              } else {
                this[_state$1] = 17;
              }
            }
            break;
          }
          case 27:
          {
            if (!false) dart.assertFailed(null, I[182], 851, 18, "false");
            break;
          }
          default:
          {
            if (!false) dart.assertFailed(null, I[182], 856, 18, "false");
            break;
          }
        }
      }
      this[_parserCalled] = false;
      let buffer = this[_buffer$1];
      if (buffer != null && this[_index$1] == buffer[$length]) {
        this[_releaseBuffer]();
        if (this[_state$1] !== 26 && this[_state$1] !== 27) {
          dart.nullCheck(this[_socketSubscription$]).resume();
        }
      }
    }
    [_onData$1](buffer) {
      if (buffer == null) dart.nullFailed(I[182], 873, 26, "buffer");
      dart.nullCheck(this[_socketSubscription$]).pause();
      if (!(this[_buffer$1] == null)) dart.assertFailed(null, I[182], 875, 12, "_buffer == null");
      this[_buffer$1] = buffer;
      this[_index$1] = 0;
      this[_parse]();
    }
    [_onDone]() {
      this[_socketSubscription$] = null;
      if (this[_state$1] === 25 || this[_state$1] === 27) return;
      if (this[_incoming$] != null) {
        if (this[_state$1] !== 26 && !(this[_state$1] === 0 && !dart.test(this[_requestParser$])) && !(this[_state$1] === 24 && !dart.test(this[_chunked]) && this[_transferLength$] === -1)) {
          this[_reportBodyError](new _http.HttpException.new("Connection closed while receiving data"));
        }
        this[_closeIncoming](true);
        this[_controller$0].close();
        return;
      }
      if (this[_state$1] === 0) {
        if (!dart.test(this[_requestParser$])) {
          this[_reportHttpError](new _http.HttpException.new("Connection closed before full header was received"));
        }
        this[_controller$0].close();
        return;
      }
      if (this[_state$1] === 26) {
        this[_controller$0].close();
        return;
      }
      if (dart.notNull(this[_state$1]) < 17) {
        this[_state$1] = 27;
        this[_reportHttpError](new _http.HttpException.new("Connection closed before full header was received"));
        this[_controller$0].close();
        return;
      }
      if (!dart.test(this[_chunked]) && this[_transferLength$] === -1) {
        this[_state$1] = 25;
      } else {
        this[_state$1] = 27;
        this[_reportHttpError](new _http.HttpException.new("Connection closed before full body was received"));
      }
      this[_controller$0].close();
    }
    get version() {
      switch (this[_httpVersion]) {
        case 1:
        {
          return "1.0";
        }
        case 2:
        {
          return "1.1";
        }
      }
      return null;
    }
    get messageType() {
      return this[_messageType];
    }
    get transferLength() {
      return this[_transferLength$];
    }
    get upgrade() {
      return dart.test(this[_connectionUpgrade]) && this[_state$1] === 26;
    }
    get persistentConnection() {
      return this[_persistentConnection];
    }
    set isHead(value) {
      if (value == null) dart.nullFailed(I[182], 949, 24, "value");
      this[_noMessageBody] = _internal.valueOfNonNullableParamWithDefault(core.bool, value, false);
    }
    detachIncoming() {
      this[_state$1] = 26;
      return new _http._HttpDetachedIncoming.new(this[_socketSubscription$], this.readUnparsedData());
    }
    readUnparsedData() {
      let buffer = this[_buffer$1];
      if (buffer == null) return null;
      let index = this[_index$1];
      if (index == buffer[$length]) return null;
      let result = buffer[$sublist](index);
      this[_releaseBuffer]();
      return result;
    }
    [_reset]() {
      if (this[_state$1] === 26) return;
      this[_state$1] = 0;
      this[_messageType] = 0;
      this[_headerField][$clear]();
      this[_headerValue][$clear]();
      this[_headersReceivedSize] = 0;
      this[_method$][$clear]();
      this[_uriOrReasonPhrase][$clear]();
      this[_statusCode] = 0;
      this[_statusCodeLength] = 0;
      this[_httpVersion] = 0;
      this[_transferLength$] = -1;
      this[_persistentConnection] = false;
      this[_connectionUpgrade] = false;
      this[_chunked] = false;
      this[_noMessageBody] = false;
      this[_remainingContent] = -1;
      this[_contentLength] = false;
      this[_transferEncoding] = false;
      this[_headers] = null;
    }
    [_releaseBuffer]() {
      this[_buffer$1] = null;
      this[_index$1] = -1;
    }
    static _isTokenChar(byte) {
      if (byte == null) dart.nullFailed(I[182], 1002, 32, "byte");
      return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 && !dart.test(_http._Const.SEPARATOR_MAP[$_get](byte));
    }
    static _isValueChar(byte) {
      if (byte == null) dart.nullFailed(I[182], 1006, 32, "byte");
      return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 || byte === 9;
    }
    static _tokenizeFieldValue(headerValue) {
      if (headerValue == null) dart.nullFailed(I[182], 1010, 50, "headerValue");
      let tokens = T$.JSArrayOfString().of([]);
      let start = 0;
      let index = 0;
      while (index < headerValue.length) {
        if (headerValue[$_get](index) === ",") {
          tokens[$add](headerValue[$substring](start, index));
          start = index + 1;
        } else if (headerValue[$_get](index) === " " || headerValue[$_get](index) === "\t") {
          start = start + 1;
        }
        index = index + 1;
      }
      tokens[$add](headerValue[$substring](start, index));
      return tokens;
    }
    static _toLowerCaseByte(x) {
      if (x == null) dart.nullFailed(I[182], 1027, 35, "x");
      return (dart.notNull(x) - 65 & 127) < 26 ? (dart.notNull(x) | 32) >>> 0 : x;
    }
    static _caseInsensitiveCompare(expected, value) {
      if (expected == null) dart.nullFailed(I[182], 1037, 49, "expected");
      if (value == null) dart.nullFailed(I[182], 1037, 69, "value");
      if (expected[$length] != value[$length]) return false;
      for (let i = 0; i < dart.notNull(expected[$length]); i = i + 1) {
        if (expected[$_get](i) != _http._HttpParser._toLowerCaseByte(value[$_get](i))) return false;
      }
      return true;
    }
    [_expect](val1, val2) {
      if (val1 == null) dart.nullFailed(I[182], 1045, 20, "val1");
      if (val2 == null) dart.nullFailed(I[182], 1045, 30, "val2");
      if (val1 != val2) {
        dart.throw(new _http.HttpException.new("Failed to parse HTTP, " + dart.str(val1) + " does not match " + dart.str(val2)));
      }
    }
    [_expectHexDigit](byte) {
      if (byte == null) dart.nullFailed(I[182], 1051, 27, "byte");
      if (48 <= dart.notNull(byte) && dart.notNull(byte) <= 57) {
        return dart.notNull(byte) - 48;
      } else if (65 <= dart.notNull(byte) && dart.notNull(byte) <= 70) {
        return dart.notNull(byte) - 65 + 10;
      } else if (97 <= dart.notNull(byte) && dart.notNull(byte) <= 102) {
        return dart.notNull(byte) - 97 + 10;
      } else {
        dart.throw(new _http.HttpException.new("Failed to parse HTTP, " + dart.str(byte) + " is expected to be a Hex digit"));
      }
    }
    [_addWithValidation](list, byte) {
      if (list == null) dart.nullFailed(I[182], 1064, 37, "list");
      if (byte == null) dart.nullFailed(I[182], 1064, 47, "byte");
      this[_headersReceivedSize] = dart.notNull(this[_headersReceivedSize]) + 1;
      if (dart.notNull(this[_headersReceivedSize]) < 1048576) {
        list[$add](byte);
      } else {
        this[_reportSizeLimitError]();
      }
    }
    [_reportSizeLimitError]() {
      let method = "";
      switch (this[_state$1]) {
        case 0:
        case 1:
        case 3:
        {
          method = "Method";
          break;
        }
        case 4:
        {
          method = "URI";
          break;
        }
        case 8:
        {
          method = "Reason phrase";
          break;
        }
        case 10:
        case 11:
        {
          method = "Header field";
          break;
        }
        case 12:
        case 13:
        {
          method = "Header value";
          break;
        }
        default:
        {
          dart.throw(new core.UnsupportedError.new("Unexpected state: " + dart.str(this[_state$1])));
          break;
        }
      }
      dart.throw(new _http.HttpException.new(method + " exceeds the " + dart.str(1048576) + " size limit"));
    }
    [_createIncoming](transferLength) {
      let t302;
      if (transferLength == null) dart.nullFailed(I[182], 1108, 37, "transferLength");
      if (!(this[_incoming$] == null)) dart.assertFailed(null, I[182], 1109, 12, "_incoming == null");
      if (!(this[_bodyController] == null)) dart.assertFailed(null, I[182], 1110, 12, "_bodyController == null");
      if (!!dart.test(this[_bodyPaused])) dart.assertFailed(null, I[182], 1111, 12, "!_bodyPaused");
      let controller = this[_bodyController] = T$0.StreamControllerOfUint8List().new({sync: true});
      let incoming = this[_incoming$] = new _http._HttpIncoming.new(dart.nullCheck(this[_headers]), transferLength, controller.stream);
      t302 = controller;
      (() => {
        t302.onListen = dart.fn(() => {
          if (!incoming[$_equals](this[_incoming$])) return;
          if (!dart.test(this[_bodyPaused])) dart.assertFailed(null, I[182], 1119, 16, "_bodyPaused");
          this[_bodyPaused] = false;
          this[_pauseStateChanged]();
        }, T$.VoidTovoid());
        t302.onPause = dart.fn(() => {
          if (!incoming[$_equals](this[_incoming$])) return;
          if (!!dart.test(this[_bodyPaused])) dart.assertFailed(null, I[182], 1125, 16, "!_bodyPaused");
          this[_bodyPaused] = true;
          this[_pauseStateChanged]();
        }, T$.VoidTovoid());
        t302.onResume = dart.fn(() => {
          if (!incoming[$_equals](this[_incoming$])) return;
          if (!dart.test(this[_bodyPaused])) dart.assertFailed(null, I[182], 1131, 16, "_bodyPaused");
          this[_bodyPaused] = false;
          this[_pauseStateChanged]();
        }, T$.VoidTovoid());
        t302.onCancel = dart.fn(() => {
          let t303;
          if (!incoming[$_equals](this[_incoming$])) return;
          t303 = this[_socketSubscription$];
          t303 == null ? null : t303.cancel();
          this[_closeIncoming](true);
          this[_controller$0].close();
        }, T$.VoidToNull());
        return t302;
      })();
      this[_bodyPaused] = true;
      this[_pauseStateChanged]();
      return incoming;
    }
    [_closeIncoming](closing = false) {
      if (closing == null) dart.nullFailed(I[182], 1146, 29, "closing");
      let tmp = this[_incoming$];
      if (tmp == null) return;
      tmp.close(closing);
      this[_incoming$] = null;
      let controller = this[_bodyController];
      if (controller != null) {
        controller.close();
        this[_bodyController] = null;
      }
      this[_bodyPaused] = false;
      this[_pauseStateChanged]();
    }
    [_pauseStateChanged]() {
      if (this[_incoming$] != null) {
        if (!dart.test(this[_bodyPaused]) && !dart.test(this[_parserCalled])) {
          this[_parse]();
        }
      } else {
        if (!dart.test(this[_paused]) && !dart.test(this[_parserCalled])) {
          this[_parse]();
        }
      }
    }
    [_reportHttpError](error, stackTrace = null) {
      let t302;
      t302 = this[_socketSubscription$];
      t302 == null ? null : t302.cancel();
      this[_state$1] = 27;
      this[_controller$0].addError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
      this[_controller$0].close();
    }
    [_reportBodyError](error, stackTrace = null) {
      let t302, t302$, t302$0;
      t302 = this[_socketSubscription$];
      t302 == null ? null : t302.cancel();
      this[_state$1] = 27;
      t302$ = this[_bodyController];
      t302$ == null ? null : t302$.addError(core.Object.as(error), T$.StackTraceN().as(stackTrace));
      t302$0 = this[_bodyController];
      t302$0 == null ? null : t302$0.close();
    }
  };
  (_http._HttpParser.__ = function(_requestParser) {
    let t301;
    if (_requestParser == null) dart.nullFailed(I[182], 286, 22, "_requestParser");
    this[_parserCalled] = false;
    this[_buffer$1] = null;
    this[_index$1] = -1;
    this[_state$1] = 0;
    this[_httpVersionIndex] = null;
    this[_messageType] = 0;
    this[_statusCode] = 0;
    this[_statusCodeLength] = 0;
    this[_method$] = T$.JSArrayOfint().of([]);
    this[_uriOrReasonPhrase] = T$.JSArrayOfint().of([]);
    this[_headerField] = T$.JSArrayOfint().of([]);
    this[_headerValue] = T$.JSArrayOfint().of([]);
    this[_headersReceivedSize] = 0;
    this[_httpVersion] = 0;
    this[_transferLength$] = -1;
    this[_persistentConnection] = false;
    this[_connectionUpgrade] = false;
    this[_chunked] = false;
    this[_noMessageBody] = false;
    this[_remainingContent] = -1;
    this[_contentLength] = false;
    this[_transferEncoding] = false;
    this.connectMethod = false;
    this[_headers] = null;
    this[_chunkSizeLimit] = 2147483647;
    this[_incoming$] = null;
    this[_socketSubscription$] = null;
    this[_paused] = true;
    this[_bodyPaused] = false;
    this[_bodyController] = null;
    this[_requestParser$] = _requestParser;
    this[_controller$0] = T.StreamControllerOf_HttpIncoming().new({sync: true});
    _http._HttpParser.__proto__.new.call(this);
    t301 = this[_controller$0];
    (() => {
      t301.onListen = dart.fn(() => {
        this[_paused] = false;
      }, T$.VoidTovoid());
      t301.onPause = dart.fn(() => {
        this[_paused] = true;
        this[_pauseStateChanged]();
      }, T$.VoidTovoid());
      t301.onResume = dart.fn(() => {
        this[_paused] = false;
        this[_pauseStateChanged]();
      }, T$.VoidTovoid());
      t301.onCancel = dart.fn(() => {
        let t302;
        t302 = this[_socketSubscription$];
        t302 == null ? null : t302.cancel();
      }, T$.VoidToNull());
      return t301;
    })();
    this[_reset]();
  }).prototype = _http._HttpParser.prototype;
  dart.addTypeTests(_http._HttpParser);
  dart.addTypeCaches(_http._HttpParser);
  dart.setMethodSignature(_http._HttpParser, () => ({
    __proto__: dart.getMethods(_http._HttpParser.__proto__),
    listen: dart.fnType(async.StreamSubscription$(_http._HttpIncoming), [dart.nullable(dart.fnType(dart.void, [_http._HttpIncoming]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    listenToStream: dart.fnType(dart.void, [async.Stream$(typed_data.Uint8List)]),
    [_parse]: dart.fnType(dart.void, []),
    [_headersEnd]: dart.fnType(core.bool, []),
    [_doParse]: dart.fnType(dart.void, []),
    [_onData$1]: dart.fnType(dart.void, [typed_data.Uint8List]),
    [_onDone]: dart.fnType(dart.void, []),
    detachIncoming: dart.fnType(_http._HttpDetachedIncoming, []),
    readUnparsedData: dart.fnType(dart.nullable(typed_data.Uint8List), []),
    [_reset]: dart.fnType(dart.void, []),
    [_releaseBuffer]: dart.fnType(dart.void, []),
    [_expect]: dart.fnType(dart.void, [core.int, core.int]),
    [_expectHexDigit]: dart.fnType(core.int, [core.int]),
    [_addWithValidation]: dart.fnType(dart.void, [core.List$(core.int), core.int]),
    [_reportSizeLimitError]: dart.fnType(dart.void, []),
    [_createIncoming]: dart.fnType(_http._HttpIncoming, [core.int]),
    [_closeIncoming]: dart.fnType(dart.void, [], [core.bool]),
    [_pauseStateChanged]: dart.fnType(dart.void, []),
    [_reportHttpError]: dart.fnType(dart.void, [dart.dynamic], [dart.dynamic]),
    [_reportBodyError]: dart.fnType(dart.void, [dart.dynamic], [dart.dynamic])
  }));
  dart.setGetterSignature(_http._HttpParser, () => ({
    __proto__: dart.getGetters(_http._HttpParser.__proto__),
    version: dart.nullable(core.String),
    messageType: core.int,
    transferLength: core.int,
    upgrade: core.bool,
    persistentConnection: core.bool
  }));
  dart.setSetterSignature(_http._HttpParser, () => ({
    __proto__: dart.getSetters(_http._HttpParser.__proto__),
    isHead: core.bool
  }));
  dart.setLibraryUri(_http._HttpParser, I[177]);
  dart.setFieldSignature(_http._HttpParser, () => ({
    __proto__: dart.getFields(_http._HttpParser.__proto__),
    [_parserCalled]: dart.fieldType(core.bool),
    [_buffer$1]: dart.fieldType(dart.nullable(typed_data.Uint8List)),
    [_index$1]: dart.fieldType(core.int),
    [_requestParser$]: dart.finalFieldType(core.bool),
    [_state$1]: dart.fieldType(core.int),
    [_httpVersionIndex]: dart.fieldType(dart.nullable(core.int)),
    [_messageType]: dart.fieldType(core.int),
    [_statusCode]: dart.fieldType(core.int),
    [_statusCodeLength]: dart.fieldType(core.int),
    [_method$]: dart.finalFieldType(core.List$(core.int)),
    [_uriOrReasonPhrase]: dart.finalFieldType(core.List$(core.int)),
    [_headerField]: dart.finalFieldType(core.List$(core.int)),
    [_headerValue]: dart.finalFieldType(core.List$(core.int)),
    [_headersReceivedSize]: dart.fieldType(core.int),
    [_httpVersion]: dart.fieldType(core.int),
    [_transferLength$]: dart.fieldType(core.int),
    [_persistentConnection]: dart.fieldType(core.bool),
    [_connectionUpgrade]: dart.fieldType(core.bool),
    [_chunked]: dart.fieldType(core.bool),
    [_noMessageBody]: dart.fieldType(core.bool),
    [_remainingContent]: dart.fieldType(core.int),
    [_contentLength]: dart.fieldType(core.bool),
    [_transferEncoding]: dart.fieldType(core.bool),
    connectMethod: dart.fieldType(core.bool),
    [_headers]: dart.fieldType(dart.nullable(_http._HttpHeaders)),
    [_chunkSizeLimit]: dart.fieldType(core.int),
    [_incoming$]: dart.fieldType(dart.nullable(_http._HttpIncoming)),
    [_socketSubscription$]: dart.fieldType(dart.nullable(async.StreamSubscription$(typed_data.Uint8List))),
    [_paused]: dart.fieldType(core.bool),
    [_bodyPaused]: dart.fieldType(core.bool),
    [_controller$0]: dart.finalFieldType(async.StreamController$(_http._HttpIncoming)),
    [_bodyController]: dart.fieldType(dart.nullable(async.StreamController$(typed_data.Uint8List)))
  }));
  dart.defineLazy(_http._HttpParser, {
    /*_http._HttpParser._headerTotalSizeLimit*/get _headerTotalSizeLimit() {
      return 1048576;
    }
  }, false);
  var _timeoutCallback = dart.privateName(_http, "_timeoutCallback");
  var _prev = dart.privateName(_http, "_prev");
  var _next$4 = dart.privateName(_http, "_next");
  var _data$1 = dart.privateName(_http, "_data");
  var _lastSeen = dart.privateName(_http, "_lastSeen");
  var _removeFromTimeoutQueue = dart.privateName(_http, "_removeFromTimeoutQueue");
  var _sessions = dart.privateName(_http, "_sessions");
  var _bumpToEnd = dart.privateName(_http, "_bumpToEnd");
  _http._HttpSession = class _HttpSession extends core.Object {
    destroy() {
      if (!!dart.test(this[_destroyed])) dart.assertFailed(null, I[183], 28, 12, "!_destroyed");
      this[_destroyed] = true;
      this[_sessionManager$][_removeFromTimeoutQueue](this);
      this[_sessionManager$][_sessions][$remove](this.id);
    }
    [_markSeen]() {
      this[_lastSeen] = new core.DateTime.now();
      this[_sessionManager$][_bumpToEnd](this);
    }
    get lastSeen() {
      return this[_lastSeen];
    }
    get isNew() {
      return this[_isNew];
    }
    set onTimeout(callback) {
      this[_timeoutCallback] = callback;
    }
    containsValue(value) {
      return this[_data$1][$containsValue](value);
    }
    containsKey(key) {
      return this[_data$1][$containsKey](key);
    }
    _get(key) {
      return this[_data$1][$_get](key);
    }
    _set(key, value$) {
      let value = value$;
      this[_data$1][$_set](key, value);
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      T$.VoidTodynamic().as(ifAbsent);
      if (ifAbsent == null) dart.nullFailed(I[183], 57, 20, "ifAbsent");
      return this[_data$1][$putIfAbsent](key, ifAbsent);
    }
    addAll(other) {
      core.Map.as(other);
      if (other == null) dart.nullFailed(I[183], 58, 14, "other");
      return this[_data$1][$addAll](other);
    }
    remove(key) {
      return this[_data$1][$remove](key);
    }
    clear() {
      this[_data$1][$clear]();
    }
    forEach(f) {
      if (f == null) dart.nullFailed(I[183], 64, 21, "f");
      this[_data$1][$forEach](f);
    }
    get entries() {
      return this[_data$1][$entries];
    }
    addEntries(entries) {
      T.IterableOfMapEntry().as(entries);
      if (entries == null) dart.nullFailed(I[183], 70, 38, "entries");
      this[_data$1][$addEntries](entries);
    }
    map(K, V, transform) {
      if (transform == null) dart.nullFailed(I[183], 74, 38, "transform");
      return this[_data$1][$map](K, V, transform);
    }
    removeWhere(test) {
      if (test == null) dart.nullFailed(I[183], 77, 25, "test");
      this[_data$1][$removeWhere](test);
    }
    cast(K, V) {
      return this[_data$1][$cast](K, V);
    }
    update(key, update, opts) {
      T$.dynamicTodynamic().as(update);
      if (update == null) dart.nullFailed(I[183], 82, 15, "update");
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      T.VoidToNdynamic().as(ifAbsent);
      return this[_data$1][$update](key, update, {ifAbsent: ifAbsent});
    }
    updateAll(update) {
      T$0.dynamicAnddynamicTodynamic().as(update);
      if (update == null) dart.nullFailed(I[183], 85, 18, "update");
      this[_data$1][$updateAll](update);
    }
    get keys() {
      return this[_data$1][$keys];
    }
    get values() {
      return this[_data$1][$values];
    }
    get length() {
      return this[_data$1][$length];
    }
    get isEmpty() {
      return this[_data$1][$isEmpty];
    }
    get isNotEmpty() {
      return this[_data$1][$isNotEmpty];
    }
    toString() {
      return "HttpSession id:" + dart.str(this.id) + " " + dart.str(this[_data$1]);
    }
  };
  (_http._HttpSession.new = function(_sessionManager, id) {
    if (_sessionManager == null) dart.nullFailed(I[183], 25, 21, "_sessionManager");
    if (id == null) dart.nullFailed(I[183], 25, 43, "id");
    this[_destroyed] = false;
    this[_isNew] = true;
    this[_timeoutCallback] = null;
    this[_prev] = null;
    this[_next$4] = null;
    this[_data$1] = new _js_helper.LinkedMap.new();
    this[_sessionManager$] = _sessionManager;
    this.id = id;
    this[_lastSeen] = new core.DateTime.now();
    ;
  }).prototype = _http._HttpSession.prototype;
  dart.addTypeTests(_http._HttpSession);
  dart.addTypeCaches(_http._HttpSession);
  _http._HttpSession[dart.implements] = () => [_http.HttpSession];
  dart.setMethodSignature(_http._HttpSession, () => ({
    __proto__: dart.getMethods(_http._HttpSession.__proto__),
    destroy: dart.fnType(dart.void, []),
    [_markSeen]: dart.fnType(dart.void, []),
    containsValue: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    [$containsValue]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    containsKey: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    [$containsKey]: dart.fnType(core.bool, [dart.nullable(core.Object)]),
    _get: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    [$_get]: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    _set: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$_set]: dart.fnType(dart.void, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    putIfAbsent: dart.fnType(dart.dynamic, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$putIfAbsent]: dart.fnType(dart.dynamic, [dart.nullable(core.Object), dart.nullable(core.Object)]),
    addAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [$addAll]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    remove: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    [$remove]: dart.fnType(dart.dynamic, [dart.nullable(core.Object)]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.dynamic, dart.dynamic])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.dynamic, dart.dynamic])]),
    addEntries: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [$addEntries]: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    map: dart.gFnType((K, V) => [core.Map$(K, V), [dart.fnType(core.MapEntry$(K, V), [dart.dynamic, dart.dynamic])]], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$map]: dart.gFnType((K, V) => [core.Map$(K, V), [dart.fnType(core.MapEntry$(K, V), [dart.dynamic, dart.dynamic])]], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [dart.dynamic, dart.dynamic])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [dart.dynamic, dart.dynamic])]),
    cast: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []], (K, V) => [dart.nullable(core.Object), dart.nullable(core.Object)]),
    update: dart.fnType(dart.dynamic, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
    [$update]: dart.fnType(dart.dynamic, [dart.nullable(core.Object), dart.nullable(core.Object)], {ifAbsent: dart.nullable(core.Object)}, {}),
    updateAll: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [$updateAll]: dart.fnType(dart.void, [dart.nullable(core.Object)])
  }));
  dart.setGetterSignature(_http._HttpSession, () => ({
    __proto__: dart.getGetters(_http._HttpSession.__proto__),
    lastSeen: core.DateTime,
    isNew: core.bool,
    entries: core.Iterable$(core.MapEntry),
    [$entries]: core.Iterable$(core.MapEntry),
    keys: core.Iterable,
    [$keys]: core.Iterable,
    values: core.Iterable,
    [$values]: core.Iterable,
    length: core.int,
    [$length]: core.int,
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool
  }));
  dart.setSetterSignature(_http._HttpSession, () => ({
    __proto__: dart.getSetters(_http._HttpSession.__proto__),
    onTimeout: dart.nullable(dart.fnType(dart.void, []))
  }));
  dart.setLibraryUri(_http._HttpSession, I[177]);
  dart.setFieldSignature(_http._HttpSession, () => ({
    __proto__: dart.getFields(_http._HttpSession.__proto__),
    [_destroyed]: dart.fieldType(core.bool),
    [_isNew]: dart.fieldType(core.bool),
    [_lastSeen]: dart.fieldType(core.DateTime),
    [_timeoutCallback]: dart.fieldType(dart.nullable(core.Function)),
    [_sessionManager$]: dart.fieldType(_http._HttpSessionManager),
    [_prev]: dart.fieldType(dart.nullable(_http._HttpSession)),
    [_next$4]: dart.fieldType(dart.nullable(_http._HttpSession)),
    id: dart.finalFieldType(core.String),
    [_data$1]: dart.finalFieldType(core.Map)
  }));
  dart.defineExtensionMethods(_http._HttpSession, [
    'containsValue',
    'containsKey',
    '_get',
    '_set',
    'putIfAbsent',
    'addAll',
    'remove',
    'clear',
    'forEach',
    'addEntries',
    'map',
    'removeWhere',
    'cast',
    'update',
    'updateAll',
    'toString'
  ]);
  dart.defineExtensionAccessors(_http._HttpSession, [
    'entries',
    'keys',
    'values',
    'length',
    'isEmpty',
    'isNotEmpty'
  ]);
  var _sessionTimeout = dart.privateName(_http, "_sessionTimeout");
  var _head$ = dart.privateName(_http, "_head");
  var _tail$ = dart.privateName(_http, "_tail");
  var _timer = dart.privateName(_http, "_timer");
  var _addToTimeoutQueue = dart.privateName(_http, "_addToTimeoutQueue");
  var _stopTimer = dart.privateName(_http, "_stopTimer");
  var _startTimer = dart.privateName(_http, "_startTimer");
  var _timerTimeout = dart.privateName(_http, "_timerTimeout");
  _http._HttpSessionManager = class _HttpSessionManager extends core.Object {
    createSessionId() {
      let data = _http._CryptoUtils.getRandomBytes(16);
      return _http._CryptoUtils.bytesToHex(data);
    }
    getSession(id) {
      if (id == null) dart.nullFailed(I[183], 118, 35, "id");
      return this[_sessions][$_get](id);
    }
    createSession() {
      let t304, t303, t302;
      let id = this.createSessionId();
      while (dart.test(this[_sessions][$containsKey](id))) {
        id = this.createSessionId();
      }
      let session = (t302 = this[_sessions], t303 = id, t304 = new _http._HttpSession.new(this, id), t302[$_set](t303, t304), t304);
      this[_addToTimeoutQueue](session);
      return session;
    }
    set sessionTimeout(timeout) {
      if (timeout == null) dart.nullFailed(I[183], 132, 31, "timeout");
      this[_sessionTimeout] = timeout;
      this[_stopTimer]();
      this[_startTimer]();
    }
    close() {
      this[_stopTimer]();
    }
    [_bumpToEnd](session) {
      if (session == null) dart.nullFailed(I[183], 142, 32, "session");
      this[_removeFromTimeoutQueue](session);
      this[_addToTimeoutQueue](session);
    }
    [_addToTimeoutQueue](session) {
      if (session == null) dart.nullFailed(I[183], 147, 40, "session");
      if (this[_head$] == null) {
        if (!(this[_tail$] == null)) dart.assertFailed(null, I[183], 149, 14, "_tail == null");
        this[_tail$] = this[_head$] = session;
        this[_startTimer]();
      } else {
        if (!(this[_timer] != null)) dart.assertFailed(null, I[183], 153, 14, "_timer != null");
        let tail = dart.nullCheck(this[_tail$]);
        tail[_next$4] = session;
        session[_prev] = tail;
        this[_tail$] = session;
      }
    }
    [_removeFromTimeoutQueue](session) {
      let t302, t302$;
      if (session == null) dart.nullFailed(I[183], 162, 45, "session");
      let next = session[_next$4];
      let prev = session[_prev];
      session[_next$4] = session[_prev] = null;
      t302 = next;
      t302 == null ? null : t302[_prev] = prev;
      t302$ = prev;
      t302$ == null ? null : t302$[_next$4] = next;
      if (dart.equals(this[_tail$], session)) {
        this[_tail$] = prev;
      }
      if (dart.equals(this[_head$], session)) {
        this[_head$] = next;
        this[_stopTimer]();
        this[_startTimer]();
      }
    }
    [_timerTimeout]() {
      let t302;
      this[_stopTimer]();
      let session = dart.nullCheck(this[_head$]);
      session.destroy();
      t302 = session[_timeoutCallback];
      t302 == null ? null : dart.dcall(t302, []);
    }
    [_startTimer]() {
      if (!(this[_timer] == null)) dart.assertFailed(null, I[183], 187, 12, "_timer == null");
      let head = this[_head$];
      if (head != null) {
        let seconds = new core.DateTime.now().difference(head.lastSeen).inSeconds;
        this[_timer] = async.Timer.new(new core.Duration.new({seconds: dart.notNull(this[_sessionTimeout]) - dart.notNull(seconds)}), dart.bind(this, _timerTimeout));
      }
    }
    [_stopTimer]() {
      let timer = this[_timer];
      if (timer != null) {
        timer.cancel();
        this[_timer] = null;
      }
    }
  };
  (_http._HttpSessionManager.new = function() {
    this[_sessionTimeout] = 20 * 60;
    this[_head$] = null;
    this[_tail$] = null;
    this[_timer] = null;
    this[_sessions] = new (T.IdentityMapOfString$_HttpSession()).new();
    ;
  }).prototype = _http._HttpSessionManager.prototype;
  dart.addTypeTests(_http._HttpSessionManager);
  dart.addTypeCaches(_http._HttpSessionManager);
  dart.setMethodSignature(_http._HttpSessionManager, () => ({
    __proto__: dart.getMethods(_http._HttpSessionManager.__proto__),
    createSessionId: dart.fnType(core.String, []),
    getSession: dart.fnType(dart.nullable(_http._HttpSession), [core.String]),
    createSession: dart.fnType(_http._HttpSession, []),
    close: dart.fnType(dart.void, []),
    [_bumpToEnd]: dart.fnType(dart.void, [_http._HttpSession]),
    [_addToTimeoutQueue]: dart.fnType(dart.void, [_http._HttpSession]),
    [_removeFromTimeoutQueue]: dart.fnType(dart.void, [_http._HttpSession]),
    [_timerTimeout]: dart.fnType(dart.void, []),
    [_startTimer]: dart.fnType(dart.void, []),
    [_stopTimer]: dart.fnType(dart.void, [])
  }));
  dart.setSetterSignature(_http._HttpSessionManager, () => ({
    __proto__: dart.getSetters(_http._HttpSessionManager.__proto__),
    sessionTimeout: core.int
  }));
  dart.setLibraryUri(_http._HttpSessionManager, I[177]);
  dart.setFieldSignature(_http._HttpSessionManager, () => ({
    __proto__: dart.getFields(_http._HttpSessionManager.__proto__),
    [_sessions]: dart.fieldType(core.Map$(core.String, _http._HttpSession)),
    [_sessionTimeout]: dart.fieldType(core.int),
    [_head$]: dart.fieldType(dart.nullable(_http._HttpSession)),
    [_tail$]: dart.fieldType(dart.nullable(_http._HttpSession)),
    [_timer]: dart.fieldType(dart.nullable(async.Timer))
  }));
  _http.HttpOverrides = class HttpOverrides extends core.Object {
    static get current() {
      let t302;
      return T.HttpOverridesN().as((t302 = async.Zone.current._get(_http._httpOverridesToken), t302 == null ? _http.HttpOverrides._global : t302));
    }
    static set global(overrides) {
      _http.HttpOverrides._global = overrides;
    }
    static runZoned(R, body, opts) {
      if (body == null) dart.nullFailed(I[184], 49, 26, "body");
      let createHttpClient = opts && 'createHttpClient' in opts ? opts.createHttpClient : null;
      let findProxyFromEnvironment = opts && 'findProxyFromEnvironment' in opts ? opts.findProxyFromEnvironment : null;
      let overrides = new _http._HttpOverridesScope.new(createHttpClient, findProxyFromEnvironment);
      return _http._asyncRunZoned(R, body, {zoneValues: new (T$0.LinkedMapOfObjectN$ObjectN()).from([_http._httpOverridesToken, overrides])});
    }
    static runWithHttpOverrides(R, body, overrides) {
      if (body == null) dart.nullFailed(I[184], 63, 38, "body");
      if (overrides == null) dart.nullFailed(I[184], 63, 60, "overrides");
      return _http._asyncRunZoned(R, body, {zoneValues: new (T$0.LinkedMapOfObjectN$ObjectN()).from([_http._httpOverridesToken, overrides])});
    }
    createHttpClient(context) {
      return new _http._HttpClient.new(context);
    }
    findProxyFromEnvironment(url, environment) {
      if (url == null) dart.nullFailed(I[184], 80, 39, "url");
      return _http._HttpClient._findProxyFromEnvironment(url, environment);
    }
  };
  (_http.HttpOverrides.new = function() {
    ;
  }).prototype = _http.HttpOverrides.prototype;
  dart.addTypeTests(_http.HttpOverrides);
  dart.addTypeCaches(_http.HttpOverrides);
  dart.setMethodSignature(_http.HttpOverrides, () => ({
    __proto__: dart.getMethods(_http.HttpOverrides.__proto__),
    createHttpClient: dart.fnType(_http.HttpClient, [dart.nullable(io.SecurityContext)]),
    findProxyFromEnvironment: dart.fnType(core.String, [core.Uri, dart.nullable(core.Map$(core.String, core.String))])
  }));
  dart.setLibraryUri(_http.HttpOverrides, I[177]);
  dart.defineLazy(_http.HttpOverrides, {
    /*_http.HttpOverrides._global*/get _global() {
      return null;
    },
    set _global(_) {}
  }, false);
  var _previous$5 = dart.privateName(_http, "_previous");
  var _createHttpClient$ = dart.privateName(_http, "_createHttpClient");
  var _findProxyFromEnvironment$ = dart.privateName(_http, "_findProxyFromEnvironment");
  _http._HttpOverridesScope = class _HttpOverridesScope extends _http.HttpOverrides {
    createHttpClient(context) {
      let createHttpClient = this[_createHttpClient$];
      if (createHttpClient != null) return createHttpClient(context);
      let previous = this[_previous$5];
      if (previous != null) return previous.createHttpClient(context);
      return super.createHttpClient(context);
    }
    findProxyFromEnvironment(url, environment) {
      if (url == null) dart.nullFailed(I[184], 103, 39, "url");
      let findProxyFromEnvironment = this[_findProxyFromEnvironment$];
      if (findProxyFromEnvironment != null) {
        return findProxyFromEnvironment(url, environment);
      }
      let previous = this[_previous$5];
      if (previous != null) {
        return previous.findProxyFromEnvironment(url, environment);
      }
      return super.findProxyFromEnvironment(url, environment);
    }
  };
  (_http._HttpOverridesScope.new = function(_createHttpClient, _findProxyFromEnvironment) {
    this[_previous$5] = _http.HttpOverrides.current;
    this[_createHttpClient$] = _createHttpClient;
    this[_findProxyFromEnvironment$] = _findProxyFromEnvironment;
    ;
  }).prototype = _http._HttpOverridesScope.prototype;
  dart.addTypeTests(_http._HttpOverridesScope);
  dart.addTypeCaches(_http._HttpOverridesScope);
  dart.setLibraryUri(_http._HttpOverridesScope, I[177]);
  dart.setFieldSignature(_http._HttpOverridesScope, () => ({
    __proto__: dart.getFields(_http._HttpOverridesScope.__proto__),
    [_previous$5]: dart.finalFieldType(dart.nullable(_http.HttpOverrides)),
    [_createHttpClient$]: dart.finalFieldType(dart.nullable(dart.fnType(_http.HttpClient, [dart.nullable(io.SecurityContext)]))),
    [_findProxyFromEnvironment$]: dart.finalFieldType(dart.nullable(dart.fnType(core.String, [core.Uri, dart.nullable(core.Map$(core.String, core.String))])))
  }));
  _http.WebSocketStatus = class WebSocketStatus extends core.Object {};
  (_http.WebSocketStatus.new = function() {
    ;
  }).prototype = _http.WebSocketStatus.prototype;
  dart.addTypeTests(_http.WebSocketStatus);
  dart.addTypeCaches(_http.WebSocketStatus);
  dart.setLibraryUri(_http.WebSocketStatus, I[177]);
  dart.defineLazy(_http.WebSocketStatus, {
    /*_http.WebSocketStatus.normalClosure*/get normalClosure() {
      return 1000;
    },
    /*_http.WebSocketStatus.goingAway*/get goingAway() {
      return 1001;
    },
    /*_http.WebSocketStatus.protocolError*/get protocolError() {
      return 1002;
    },
    /*_http.WebSocketStatus.unsupportedData*/get unsupportedData() {
      return 1003;
    },
    /*_http.WebSocketStatus.reserved1004*/get reserved1004() {
      return 1004;
    },
    /*_http.WebSocketStatus.noStatusReceived*/get noStatusReceived() {
      return 1005;
    },
    /*_http.WebSocketStatus.abnormalClosure*/get abnormalClosure() {
      return 1006;
    },
    /*_http.WebSocketStatus.invalidFramePayloadData*/get invalidFramePayloadData() {
      return 1007;
    },
    /*_http.WebSocketStatus.policyViolation*/get policyViolation() {
      return 1008;
    },
    /*_http.WebSocketStatus.messageTooBig*/get messageTooBig() {
      return 1009;
    },
    /*_http.WebSocketStatus.missingMandatoryExtension*/get missingMandatoryExtension() {
      return 1010;
    },
    /*_http.WebSocketStatus.internalServerError*/get internalServerError() {
      return 1011;
    },
    /*_http.WebSocketStatus.reserved1015*/get reserved1015() {
      return 1015;
    },
    /*_http.WebSocketStatus.NORMAL_CLOSURE*/get NORMAL_CLOSURE() {
      return 1000;
    },
    /*_http.WebSocketStatus.GOING_AWAY*/get GOING_AWAY() {
      return 1001;
    },
    /*_http.WebSocketStatus.PROTOCOL_ERROR*/get PROTOCOL_ERROR() {
      return 1002;
    },
    /*_http.WebSocketStatus.UNSUPPORTED_DATA*/get UNSUPPORTED_DATA() {
      return 1003;
    },
    /*_http.WebSocketStatus.RESERVED_1004*/get RESERVED_1004() {
      return 1004;
    },
    /*_http.WebSocketStatus.NO_STATUS_RECEIVED*/get NO_STATUS_RECEIVED() {
      return 1005;
    },
    /*_http.WebSocketStatus.ABNORMAL_CLOSURE*/get ABNORMAL_CLOSURE() {
      return 1006;
    },
    /*_http.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA*/get INVALID_FRAME_PAYLOAD_DATA() {
      return 1007;
    },
    /*_http.WebSocketStatus.POLICY_VIOLATION*/get POLICY_VIOLATION() {
      return 1008;
    },
    /*_http.WebSocketStatus.MESSAGE_TOO_BIG*/get MESSAGE_TOO_BIG() {
      return 1009;
    },
    /*_http.WebSocketStatus.MISSING_MANDATORY_EXTENSION*/get MISSING_MANDATORY_EXTENSION() {
      return 1010;
    },
    /*_http.WebSocketStatus.INTERNAL_SERVER_ERROR*/get INTERNAL_SERVER_ERROR() {
      return 1011;
    },
    /*_http.WebSocketStatus.RESERVED_1015*/get RESERVED_1015() {
      return 1015;
    }
  }, false);
  var clientNoContextTakeover$ = dart.privateName(_http, "CompressionOptions.clientNoContextTakeover");
  var serverNoContextTakeover$ = dart.privateName(_http, "CompressionOptions.serverNoContextTakeover");
  var clientMaxWindowBits$ = dart.privateName(_http, "CompressionOptions.clientMaxWindowBits");
  var serverMaxWindowBits$ = dart.privateName(_http, "CompressionOptions.serverMaxWindowBits");
  var enabled$ = dart.privateName(_http, "CompressionOptions.enabled");
  var _createServerResponseHeader = dart.privateName(_http, "_createServerResponseHeader");
  var _createClientRequestHeader = dart.privateName(_http, "_createClientRequestHeader");
  var _createHeader = dart.privateName(_http, "_createHeader");
  _http.CompressionOptions = class CompressionOptions extends core.Object {
    get clientNoContextTakeover() {
      return this[clientNoContextTakeover$];
    }
    set clientNoContextTakeover(value) {
      super.clientNoContextTakeover = value;
    }
    get serverNoContextTakeover() {
      return this[serverNoContextTakeover$];
    }
    set serverNoContextTakeover(value) {
      super.serverNoContextTakeover = value;
    }
    get clientMaxWindowBits() {
      return this[clientMaxWindowBits$];
    }
    set clientMaxWindowBits(value) {
      super.clientMaxWindowBits = value;
    }
    get serverMaxWindowBits() {
      return this[serverMaxWindowBits$];
    }
    set serverMaxWindowBits(value) {
      super.serverMaxWindowBits = value;
    }
    get enabled() {
      return this[enabled$];
    }
    set enabled(value) {
      super.enabled = value;
    }
    [_createServerResponseHeader](requested) {
      let t302, t302$, t302$0;
      let info = new _http._CompressionMaxWindowBits.new("", 0);
      let part = (t302 = requested, t302 == null ? null : t302.parameters[$_get]("server_max_window_bits"));
      if (part != null) {
        if (part.length >= 2 && part[$startsWith]("0")) {
          dart.throw(new core.ArgumentError.new("Illegal 0 padding on value."));
        } else {
          let mwb = (t302$0 = (t302$ = this.serverMaxWindowBits, t302$ == null ? core.int.tryParse(part) : t302$), t302$0 == null ? 15 : t302$0);
          info.headerValue = "; server_max_window_bits=" + dart.str(mwb);
          info.maxWindowBits = mwb;
        }
      } else {
        info.headerValue = "";
        info.maxWindowBits = 15;
      }
      return info;
    }
    [_createClientRequestHeader](requested, size) {
      if (size == null) dart.nullFailed(I[185], 156, 65, "size");
      let info = "";
      if (requested != null) {
        info = "; client_max_window_bits=" + dart.str(size);
      } else {
        if (this.clientMaxWindowBits == null) {
          info = "; client_max_window_bits";
        } else {
          info = "; client_max_window_bits=" + dart.str(this.clientMaxWindowBits);
        }
        if (this.serverMaxWindowBits != null) {
          info = info + ("; server_max_window_bits=" + dart.str(this.serverMaxWindowBits));
        }
      }
      return info;
    }
    [_createHeader](requested = null) {
      let t302, t302$, t302$0, t302$1;
      let info = new _http._CompressionMaxWindowBits.new("", 0);
      if (!dart.test(this.enabled)) {
        return info;
      }
      info.headerValue = "permessage-deflate";
      if (dart.test(this.clientNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[$containsKey]("client_no_context_takeover")))) {
        t302 = info;
        t302.headerValue = dart.notNull(t302.headerValue) + "; client_no_context_takeover";
      }
      if (dart.test(this.serverNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[$containsKey]("server_no_context_takeover")))) {
        t302$ = info;
        t302$.headerValue = dart.notNull(t302$.headerValue) + "; server_no_context_takeover";
      }
      let headerList = this[_createServerResponseHeader](requested);
      t302$0 = info;
      t302$0.headerValue = dart.notNull(t302$0.headerValue) + dart.notNull(headerList.headerValue);
      info.maxWindowBits = headerList.maxWindowBits;
      t302$1 = info;
      t302$1.headerValue = dart.notNull(t302$1.headerValue) + dart.notNull(this[_createClientRequestHeader](requested, info.maxWindowBits));
      return info;
    }
  };
  (_http.CompressionOptions.new = function(opts) {
    let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
    if (clientNoContextTakeover == null) dart.nullFailed(I[185], 120, 13, "clientNoContextTakeover");
    let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
    if (serverNoContextTakeover == null) dart.nullFailed(I[185], 121, 12, "serverNoContextTakeover");
    let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : null;
    let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : null;
    let enabled = opts && 'enabled' in opts ? opts.enabled : true;
    if (enabled == null) dart.nullFailed(I[185], 124, 12, "enabled");
    this[clientNoContextTakeover$] = clientNoContextTakeover;
    this[serverNoContextTakeover$] = serverNoContextTakeover;
    this[clientMaxWindowBits$] = clientMaxWindowBits;
    this[serverMaxWindowBits$] = serverMaxWindowBits;
    this[enabled$] = enabled;
    ;
  }).prototype = _http.CompressionOptions.prototype;
  dart.addTypeTests(_http.CompressionOptions);
  dart.addTypeCaches(_http.CompressionOptions);
  dart.setMethodSignature(_http.CompressionOptions, () => ({
    __proto__: dart.getMethods(_http.CompressionOptions.__proto__),
    [_createServerResponseHeader]: dart.fnType(_http._CompressionMaxWindowBits, [dart.nullable(_http.HeaderValue)]),
    [_createClientRequestHeader]: dart.fnType(core.String, [dart.nullable(_http.HeaderValue), core.int]),
    [_createHeader]: dart.fnType(_http._CompressionMaxWindowBits, [], [dart.nullable(_http.HeaderValue)])
  }));
  dart.setLibraryUri(_http.CompressionOptions, I[177]);
  dart.setFieldSignature(_http.CompressionOptions, () => ({
    __proto__: dart.getFields(_http.CompressionOptions.__proto__),
    clientNoContextTakeover: dart.finalFieldType(core.bool),
    serverNoContextTakeover: dart.finalFieldType(core.bool),
    clientMaxWindowBits: dart.finalFieldType(dart.nullable(core.int)),
    serverMaxWindowBits: dart.finalFieldType(dart.nullable(core.int)),
    enabled: dart.finalFieldType(core.bool)
  }));
  dart.defineLazy(_http.CompressionOptions, {
    /*_http.CompressionOptions.compressionDefault*/get compressionDefault() {
      return C[486] || CT.C486;
    },
    /*_http.CompressionOptions.DEFAULT*/get DEFAULT() {
      return C[486] || CT.C486;
    },
    /*_http.CompressionOptions.compressionOff*/get compressionOff() {
      return C[487] || CT.C487;
    },
    /*_http.CompressionOptions.OFF*/get OFF() {
      return C[487] || CT.C487;
    }
  }, false);
  _http.WebSocketTransformer = class WebSocketTransformer extends core.Object {
    static new(opts) {
      let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
      let compression = opts && 'compression' in opts ? opts.compression : C[486] || CT.C486;
      if (compression == null) dart.nullFailed(I[185], 265, 26, "compression");
      return new _http._WebSocketTransformerImpl.new(protocolSelector, compression);
    }
    static upgrade(request, opts) {
      if (request == null) dart.nullFailed(I[185], 286, 48, "request");
      let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
      let compression = opts && 'compression' in opts ? opts.compression : C[486] || CT.C486;
      if (compression == null) dart.nullFailed(I[185], 288, 26, "compression");
      return _http._WebSocketTransformerImpl._upgrade(request, protocolSelector, compression);
    }
    static isUpgradeRequest(request) {
      if (request == null) dart.nullFailed(I[185], 296, 44, "request");
      return _http._WebSocketTransformerImpl._isUpgradeRequest(request);
    }
  };
  (_http.WebSocketTransformer[dart.mixinNew] = function() {
  }).prototype = _http.WebSocketTransformer.prototype;
  dart.addTypeTests(_http.WebSocketTransformer);
  dart.addTypeCaches(_http.WebSocketTransformer);
  _http.WebSocketTransformer[dart.implements] = () => [async.StreamTransformer$(_http.HttpRequest, _http.WebSocket)];
  dart.setLibraryUri(_http.WebSocketTransformer, I[177]);
  var pingInterval = dart.privateName(_http, "WebSocket.pingInterval");
  _http.WebSocket = class WebSocket extends core.Object {
    get pingInterval() {
      return this[pingInterval];
    }
    set pingInterval(value) {
      this[pingInterval] = value;
    }
    static connect(url, opts) {
      if (url == null) dart.nullFailed(I[185], 374, 43, "url");
      let protocols = opts && 'protocols' in opts ? opts.protocols : null;
      let headers = opts && 'headers' in opts ? opts.headers : null;
      let compression = opts && 'compression' in opts ? opts.compression : C[486] || CT.C486;
      if (compression == null) dart.nullFailed(I[185], 377, 30, "compression");
      return _http._WebSocketImpl.connect(url, protocols, headers, {compression: compression});
    }
    static fromUpgradedSocket(socket, opts) {
      if (socket == null) dart.nullFailed(I[185], 404, 47, "socket");
      let protocol = opts && 'protocol' in opts ? opts.protocol : null;
      let serverSide = opts && 'serverSide' in opts ? opts.serverSide : null;
      let compression = opts && 'compression' in opts ? opts.compression : C[486] || CT.C486;
      if (compression == null) dart.nullFailed(I[185], 407, 26, "compression");
      if (serverSide == null) {
        dart.throw(new core.ArgumentError.new("The serverSide argument must be passed " + "explicitly to WebSocket.fromUpgradedSocket."));
      }
      return new _http._WebSocketImpl._fromSocket(socket, protocol, compression, serverSide);
    }
    static get userAgent() {
      return _http._WebSocketImpl.userAgent;
    }
    static set userAgent(userAgent) {
      _http._WebSocketImpl.userAgent = userAgent;
    }
  };
  (_http.WebSocket.new = function() {
    this[pingInterval] = null;
    ;
  }).prototype = _http.WebSocket.prototype;
  _http.WebSocket.prototype[dart.isStream] = true;
  dart.addTypeTests(_http.WebSocket);
  dart.addTypeCaches(_http.WebSocket);
  _http.WebSocket[dart.implements] = () => [async.Stream, async.StreamSink];
  dart.setLibraryUri(_http.WebSocket, I[177]);
  dart.setFieldSignature(_http.WebSocket, () => ({
    __proto__: dart.getFields(_http.WebSocket.__proto__),
    pingInterval: dart.fieldType(dart.nullable(core.Duration))
  }));
  dart.defineLazy(_http.WebSocket, {
    /*_http.WebSocket.connecting*/get connecting() {
      return 0;
    },
    /*_http.WebSocket.open*/get open() {
      return 1;
    },
    /*_http.WebSocket.closing*/get closing() {
      return 2;
    },
    /*_http.WebSocket.closed*/get closed() {
      return 3;
    },
    /*_http.WebSocket.CONNECTING*/get CONNECTING() {
      return 0;
    },
    /*_http.WebSocket.OPEN*/get OPEN() {
      return 1;
    },
    /*_http.WebSocket.CLOSING*/get CLOSING() {
      return 2;
    },
    /*_http.WebSocket.CLOSED*/get CLOSED() {
      return 3;
    }
  }, false);
  var message$19 = dart.privateName(_http, "WebSocketException.message");
  _http.WebSocketException = class WebSocketException extends core.Object {
    get message() {
      return this[message$19];
    }
    set message(value) {
      super.message = value;
    }
    toString() {
      return "WebSocketException: " + dart.str(this.message);
    }
  };
  (_http.WebSocketException.new = function(message = "") {
    if (message == null) dart.nullFailed(I[185], 493, 34, "message");
    this[message$19] = message;
    ;
  }).prototype = _http.WebSocketException.prototype;
  dart.addTypeTests(_http.WebSocketException);
  dart.addTypeCaches(_http.WebSocketException);
  _http.WebSocketException[dart.implements] = () => [io.IOException];
  dart.setLibraryUri(_http.WebSocketException, I[177]);
  dart.setFieldSignature(_http.WebSocketException, () => ({
    __proto__: dart.getFields(_http.WebSocketException.__proto__),
    message: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(_http.WebSocketException, ['toString']);
  _http._WebSocketMessageType = class _WebSocketMessageType extends core.Object {};
  (_http._WebSocketMessageType.new = function() {
    ;
  }).prototype = _http._WebSocketMessageType.prototype;
  dart.addTypeTests(_http._WebSocketMessageType);
  dart.addTypeCaches(_http._WebSocketMessageType);
  dart.setLibraryUri(_http._WebSocketMessageType, I[177]);
  dart.defineLazy(_http._WebSocketMessageType, {
    /*_http._WebSocketMessageType.NONE*/get NONE() {
      return 0;
    },
    /*_http._WebSocketMessageType.TEXT*/get TEXT() {
      return 1;
    },
    /*_http._WebSocketMessageType.BINARY*/get BINARY() {
      return 2;
    }
  }, false);
  _http._WebSocketOpcode = class _WebSocketOpcode extends core.Object {};
  (_http._WebSocketOpcode.new = function() {
    ;
  }).prototype = _http._WebSocketOpcode.prototype;
  dart.addTypeTests(_http._WebSocketOpcode);
  dart.addTypeCaches(_http._WebSocketOpcode);
  dart.setLibraryUri(_http._WebSocketOpcode, I[177]);
  dart.defineLazy(_http._WebSocketOpcode, {
    /*_http._WebSocketOpcode.CONTINUATION*/get CONTINUATION() {
      return 0;
    },
    /*_http._WebSocketOpcode.TEXT*/get TEXT() {
      return 1;
    },
    /*_http._WebSocketOpcode.BINARY*/get BINARY() {
      return 2;
    },
    /*_http._WebSocketOpcode.RESERVED_3*/get RESERVED_3() {
      return 3;
    },
    /*_http._WebSocketOpcode.RESERVED_4*/get RESERVED_4() {
      return 4;
    },
    /*_http._WebSocketOpcode.RESERVED_5*/get RESERVED_5() {
      return 5;
    },
    /*_http._WebSocketOpcode.RESERVED_6*/get RESERVED_6() {
      return 6;
    },
    /*_http._WebSocketOpcode.RESERVED_7*/get RESERVED_7() {
      return 7;
    },
    /*_http._WebSocketOpcode.CLOSE*/get CLOSE() {
      return 8;
    },
    /*_http._WebSocketOpcode.PING*/get PING() {
      return 9;
    },
    /*_http._WebSocketOpcode.PONG*/get PONG() {
      return 10;
    },
    /*_http._WebSocketOpcode.RESERVED_B*/get RESERVED_B() {
      return 11;
    },
    /*_http._WebSocketOpcode.RESERVED_C*/get RESERVED_C() {
      return 12;
    },
    /*_http._WebSocketOpcode.RESERVED_D*/get RESERVED_D() {
      return 13;
    },
    /*_http._WebSocketOpcode.RESERVED_E*/get RESERVED_E() {
      return 14;
    },
    /*_http._WebSocketOpcode.RESERVED_F*/get RESERVED_F() {
      return 15;
    }
  }, false);
  _http._EncodedString = class _EncodedString extends core.Object {};
  (_http._EncodedString.new = function(bytes) {
    if (bytes == null) dart.nullFailed(I[186], 41, 23, "bytes");
    this.bytes = bytes;
    ;
  }).prototype = _http._EncodedString.prototype;
  dart.addTypeTests(_http._EncodedString);
  dart.addTypeCaches(_http._EncodedString);
  dart.setLibraryUri(_http._EncodedString, I[177]);
  dart.setFieldSignature(_http._EncodedString, () => ({
    __proto__: dart.getFields(_http._EncodedString.__proto__),
    bytes: dart.finalFieldType(core.List$(core.int))
  }));
  _http._CompressionMaxWindowBits = class _CompressionMaxWindowBits extends core.Object {
    toString() {
      return this.headerValue;
    }
  };
  (_http._CompressionMaxWindowBits.new = function(headerValue, maxWindowBits) {
    if (headerValue == null) dart.nullFailed(I[186], 52, 34, "headerValue");
    if (maxWindowBits == null) dart.nullFailed(I[186], 52, 52, "maxWindowBits");
    this.headerValue = headerValue;
    this.maxWindowBits = maxWindowBits;
    ;
  }).prototype = _http._CompressionMaxWindowBits.prototype;
  dart.addTypeTests(_http._CompressionMaxWindowBits);
  dart.addTypeCaches(_http._CompressionMaxWindowBits);
  dart.setLibraryUri(_http._CompressionMaxWindowBits, I[177]);
  dart.setFieldSignature(_http._CompressionMaxWindowBits, () => ({
    __proto__: dart.getFields(_http._CompressionMaxWindowBits.__proto__),
    headerValue: dart.fieldType(core.String),
    maxWindowBits: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(_http._CompressionMaxWindowBits, ['toString']);
  var _fin = dart.privateName(_http, "_fin");
  var _compressed = dart.privateName(_http, "_compressed");
  var _opcode = dart.privateName(_http, "_opcode");
  var _len = dart.privateName(_http, "_len");
  var _masked = dart.privateName(_http, "_masked");
  var _remainingLenBytes = dart.privateName(_http, "_remainingLenBytes");
  var _remainingMaskingKeyBytes = dart.privateName(_http, "_remainingMaskingKeyBytes");
  var _remainingPayloadBytes = dart.privateName(_http, "_remainingPayloadBytes");
  var _unmaskingIndex = dart.privateName(_http, "_unmaskingIndex");
  var _currentMessageType = dart.privateName(_http, "_currentMessageType");
  var _eventSink$ = dart.privateName(_http, "_eventSink");
  var _maskingBytes = dart.privateName(_http, "_maskingBytes");
  var _payload = dart.privateName(_http, "_payload");
  var _serverSide$ = dart.privateName(_http, "_serverSide");
  var _deflate$ = dart.privateName(_http, "_deflate");
  var _isControlFrame = dart.privateName(_http, "_isControlFrame");
  var _lengthDone = dart.privateName(_http, "_lengthDone");
  var _maskDone = dart.privateName(_http, "_maskDone");
  var _unmask = dart.privateName(_http, "_unmask");
  var _controlFrameEnd = dart.privateName(_http, "_controlFrameEnd");
  var _messageFrameEnd = dart.privateName(_http, "_messageFrameEnd");
  var _startPayload = dart.privateName(_http, "_startPayload");
  var _prepareForNextFrame = dart.privateName(_http, "_prepareForNextFrame");
  _http._WebSocketProtocolTransformer = class _WebSocketProtocolTransformer extends async.StreamTransformerBase$(core.List$(core.int), dart.dynamic) {
    bind(stream) {
      T$0.StreamOfListOfint().as(stream);
      if (stream == null) dart.nullFailed(I[186], 105, 25, "stream");
      return async.Stream.eventTransformed(stream, dart.fn(eventSink => {
        if (eventSink == null) dart.nullFailed(I[186], 106, 59, "eventSink");
        if (this[_eventSink$] != null) {
          dart.throw(new core.StateError.new("WebSocket transformer already used."));
        }
        this[_eventSink$] = eventSink;
        return this;
      }, T.EventSinkTo_WebSocketProtocolTransformer()));
    }
    addError(error, stackTrace = null) {
      if (error == null) dart.nullFailed(I[186], 115, 24, "error");
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      dart.nullCheck(this[_eventSink$]).addError(error, stackTrace);
    }
    close() {
      dart.nullCheck(this[_eventSink$]).close();
    }
    add(bytes) {
      let t302;
      T$0.ListOfint().as(bytes);
      if (bytes == null) dart.nullFailed(I[186], 128, 22, "bytes");
      let buffer = typed_data.Uint8List.is(bytes) ? bytes : _native_typed_data.NativeUint8List.fromList(bytes);
      let index = 0;
      let lastIndex = buffer[$length];
      if (this[_state$1] === 5) {
        dart.throw(new _http.WebSocketException.new("Data on closed connection"));
      }
      if (this[_state$1] === 6) {
        dart.throw(new _http.WebSocketException.new("Data on failed connection"));
      }
      while (index < dart.notNull(lastIndex) && this[_state$1] !== 5 && this[_state$1] !== 6) {
        let byte = buffer[$_get](index);
        if (dart.notNull(this[_state$1]) <= 2) {
          if (this[_state$1] === 0) {
            this[_fin] = (dart.notNull(byte) & 128) !== 0;
            if ((dart.notNull(byte) & (32 | 16) >>> 0) !== 0) {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            this[_opcode] = (dart.notNull(byte) & 15) >>> 0;
            if (this[_opcode] !== 0) {
              if ((dart.notNull(byte) & 64) !== 0) {
                this[_compressed] = true;
              } else {
                this[_compressed] = false;
              }
            }
            if (dart.notNull(this[_opcode]) <= 2) {
              if (this[_opcode] === 0) {
                if (this[_currentMessageType] === 0) {
                  dart.throw(new _http.WebSocketException.new("Protocol error"));
                }
              } else {
                if (!(this[_opcode] === 1 || this[_opcode] === 2)) dart.assertFailed(null, I[186], 165, 22, "_opcode == _WebSocketOpcode.TEXT ||\n                  _opcode == _WebSocketOpcode.BINARY");
                if (this[_currentMessageType] !== 0) {
                  dart.throw(new _http.WebSocketException.new("Protocol error"));
                }
                this[_currentMessageType] = this[_opcode];
              }
            } else if (dart.notNull(this[_opcode]) >= 8 && dart.notNull(this[_opcode]) <= 10) {
              if (!dart.test(this[_fin])) dart.throw(new _http.WebSocketException.new("Protocol error"));
            } else {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            this[_state$1] = 1;
          } else if (this[_state$1] === 1) {
            this[_masked] = (dart.notNull(byte) & 128) !== 0;
            this[_len] = dart.notNull(byte) & 127;
            if (dart.test(this[_isControlFrame]()) && dart.notNull(this[_len]) > 125) {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            if (this[_len] === 126) {
              this[_len] = 0;
              this[_remainingLenBytes] = 2;
              this[_state$1] = 2;
            } else if (this[_len] === 127) {
              this[_len] = 0;
              this[_remainingLenBytes] = 8;
              this[_state$1] = 2;
            } else {
              if (!(dart.notNull(this[_len]) < 126)) dart.assertFailed(null, I[186], 195, 20, "_len < 126");
              this[_lengthDone]();
            }
          } else {
            if (!(this[_state$1] === 2)) dart.assertFailed(null, I[186], 199, 18, "_state == LEN_REST");
            this[_len] = (dart.notNull(this[_len]) << 8 | dart.notNull(byte)) >>> 0;
            this[_remainingLenBytes] = dart.notNull(this[_remainingLenBytes]) - 1;
            if (this[_remainingLenBytes] === 0) {
              this[_lengthDone]();
            }
          }
        } else {
          if (this[_state$1] === 3) {
            this[_maskingBytes][$_set](4 - dart.notNull((t302 = this[_remainingMaskingKeyBytes], this[_remainingMaskingKeyBytes] = dart.notNull(t302) - 1, t302)), byte);
            if (this[_remainingMaskingKeyBytes] === 0) {
              this[_maskDone]();
            }
          } else {
            if (!(this[_state$1] === 4)) dart.assertFailed(null, I[186], 213, 18, "_state == PAYLOAD");
            let payloadLength = math.min(core.int, dart.notNull(lastIndex) - index, this[_remainingPayloadBytes]);
            this[_remainingPayloadBytes] = dart.notNull(this[_remainingPayloadBytes]) - payloadLength;
            if (dart.test(this[_masked])) {
              this[_unmask](index, payloadLength, buffer);
            }
            this[_payload].add(typed_data.Uint8List.view(buffer[$buffer], dart.notNull(buffer[$offsetInBytes]) + index, payloadLength));
            index = index + payloadLength;
            if (dart.test(this[_isControlFrame]())) {
              if (this[_remainingPayloadBytes] === 0) this[_controlFrameEnd]();
            } else {
              if (this[_currentMessageType] !== 1 && this[_currentMessageType] !== 2) {
                dart.throw(new _http.WebSocketException.new("Protocol error"));
              }
              if (this[_remainingPayloadBytes] === 0) this[_messageFrameEnd]();
            }
            index = index - 1;
          }
        }
        index = index + 1;
      }
    }
    [_unmask](index, length, buffer) {
      let t304, t303, t302, t303$, t302$, t304$, t303$0, t302$0;
      if (index == null) dart.nullFailed(I[186], 245, 20, "index");
      if (length == null) dart.nullFailed(I[186], 245, 31, "length");
      if (buffer == null) dart.nullFailed(I[186], 245, 49, "buffer");
      if (dart.notNull(length) >= 16) {
        let startOffset = 16 - (dart.notNull(index) & 15);
        let end = dart.notNull(index) + startOffset;
        for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
          t302 = buffer;
          t303 = i;
          t302[$_set](t303, (dart.notNull(t302[$_get](t303)) ^ dart.notNull(this[_maskingBytes][$_get](dart.notNull((t304 = this[_unmaskingIndex], this[_unmaskingIndex] = dart.notNull(t304) + 1, t304)) & 3))) >>> 0);
        }
        index = dart.notNull(index) + startOffset;
        length = dart.notNull(length) - startOffset;
        let blockCount = (dart.notNull(length) / 16)[$truncate]();
        if (blockCount > 0) {
          let mask = 0;
          for (let i = 3; i >= 0; i = i - 1) {
            mask = (mask << 8 | dart.notNull(this[_maskingBytes][$_get](dart.notNull(this[_unmaskingIndex]) + i & 3))) >>> 0;
          }
          let blockMask = new _native_typed_data.NativeInt32x4.new(mask, mask, mask, mask);
          let blockBuffer = typed_data.Int32x4List.view(buffer[$buffer], dart.notNull(buffer[$offsetInBytes]) + dart.notNull(index), blockCount);
          for (let i = 0; i < dart.notNull(blockBuffer[$length]); i = i + 1) {
            t302$ = blockBuffer;
            t303$ = i;
            t302$[$_set](t303$, t302$[$_get](t303$)['^'](blockMask));
          }
          let bytes = blockCount * 16;
          index = dart.notNull(index) + bytes;
          length = dart.notNull(length) - bytes;
        }
      }
      let end = dart.notNull(index) + dart.notNull(length);
      for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
        t302$0 = buffer;
        t303$0 = i;
        t302$0[$_set](t303$0, (dart.notNull(t302$0[$_get](t303$0)) ^ dart.notNull(this[_maskingBytes][$_get](dart.notNull((t304$ = this[_unmaskingIndex], this[_unmaskingIndex] = dart.notNull(t304$) + 1, t304$)) & 3))) >>> 0);
      }
    }
    [_lengthDone]() {
      if (dart.test(this[_masked])) {
        if (!dart.test(this[_serverSide$])) {
          dart.throw(new _http.WebSocketException.new("Received masked frame from server"));
        }
        this[_state$1] = 3;
      } else {
        if (dart.test(this[_serverSide$])) {
          dart.throw(new _http.WebSocketException.new("Received unmasked frame from client"));
        }
        this[_remainingPayloadBytes] = this[_len];
        this[_startPayload]();
      }
    }
    [_maskDone]() {
      this[_remainingPayloadBytes] = this[_len];
      this[_startPayload]();
    }
    [_startPayload]() {
      if (this[_remainingPayloadBytes] === 0) {
        if (dart.test(this[_isControlFrame]())) {
          switch (this[_opcode]) {
            case 8:
            {
              this[_state$1] = 5;
              dart.nullCheck(this[_eventSink$]).close();
              break;
            }
            case 9:
            {
              dart.nullCheck(this[_eventSink$]).add(new _http._WebSocketPing.new());
              break;
            }
            case 10:
            {
              dart.nullCheck(this[_eventSink$]).add(new _http._WebSocketPong.new());
              break;
            }
          }
          this[_prepareForNextFrame]();
        } else {
          this[_messageFrameEnd]();
        }
      } else {
        this[_state$1] = 4;
      }
    }
    [_messageFrameEnd]() {
      if (dart.test(this[_fin])) {
        let bytes = this[_payload].takeBytes();
        let deflate = this[_deflate$];
        if (deflate != null && dart.test(this[_compressed])) {
          bytes = deflate.processIncomingMessage(bytes);
        }
        switch (this[_currentMessageType]) {
          case 1:
          {
            dart.nullCheck(this[_eventSink$]).add(convert.utf8.decode(bytes));
            break;
          }
          case 2:
          {
            dart.nullCheck(this[_eventSink$]).add(bytes);
            break;
          }
        }
        this[_currentMessageType] = 0;
      }
      this[_prepareForNextFrame]();
    }
    [_controlFrameEnd]() {
      switch (this[_opcode]) {
        case 8:
        {
          this.closeCode = 1005;
          let payload = this[_payload].takeBytes();
          if (dart.notNull(payload[$length]) > 0) {
            if (payload[$length] === 1) {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            this.closeCode = (dart.notNull(payload[$_get](0)) << 8 | dart.notNull(payload[$_get](1))) >>> 0;
            if (this.closeCode === 1005) {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            if (dart.notNull(payload[$length]) > 2) {
              this.closeReason = convert.utf8.decode(payload[$sublist](2));
            }
          }
          this[_state$1] = 5;
          dart.nullCheck(this[_eventSink$]).close();
          break;
        }
        case 9:
        {
          dart.nullCheck(this[_eventSink$]).add(new _http._WebSocketPing.new(this[_payload].takeBytes()));
          break;
        }
        case 10:
        {
          dart.nullCheck(this[_eventSink$]).add(new _http._WebSocketPong.new(this[_payload].takeBytes()));
          break;
        }
      }
      this[_prepareForNextFrame]();
    }
    [_isControlFrame]() {
      return this[_opcode] === 8 || this[_opcode] === 9 || this[_opcode] === 10;
    }
    [_prepareForNextFrame]() {
      if (this[_state$1] !== 5 && this[_state$1] !== 6) this[_state$1] = 0;
      this[_fin] = false;
      this[_opcode] = -1;
      this[_len] = -1;
      this[_remainingLenBytes] = -1;
      this[_remainingMaskingKeyBytes] = 4;
      this[_remainingPayloadBytes] = -1;
      this[_unmaskingIndex] = 0;
    }
  };
  (_http._WebSocketProtocolTransformer.new = function(_serverSide = false, _deflate = null) {
    if (_serverSide == null) dart.nullFailed(I[186], 102, 39, "_serverSide");
    this[_state$1] = 0;
    this[_fin] = false;
    this[_compressed] = false;
    this[_opcode] = -1;
    this[_len] = -1;
    this[_masked] = false;
    this[_remainingLenBytes] = -1;
    this[_remainingMaskingKeyBytes] = 4;
    this[_remainingPayloadBytes] = -1;
    this[_unmaskingIndex] = 0;
    this[_currentMessageType] = 0;
    this.closeCode = 1005;
    this.closeReason = "";
    this[_eventSink$] = null;
    this[_maskingBytes] = _native_typed_data.NativeUint8List.new(4);
    this[_payload] = _internal.BytesBuilder.new({copy: false});
    this[_serverSide$] = _serverSide;
    this[_deflate$] = _deflate;
    _http._WebSocketProtocolTransformer.__proto__.new.call(this);
    ;
  }).prototype = _http._WebSocketProtocolTransformer.prototype;
  dart.addTypeTests(_http._WebSocketProtocolTransformer);
  dart.addTypeCaches(_http._WebSocketProtocolTransformer);
  _http._WebSocketProtocolTransformer[dart.implements] = () => [async.EventSink$(core.List$(core.int))];
  dart.setMethodSignature(_http._WebSocketProtocolTransformer, () => ({
    __proto__: dart.getMethods(_http._WebSocketProtocolTransformer.__proto__),
    bind: dart.fnType(async.Stream, [dart.nullable(core.Object)]),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
    close: dart.fnType(dart.void, []),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    [_unmask]: dart.fnType(dart.void, [core.int, core.int, typed_data.Uint8List]),
    [_lengthDone]: dart.fnType(dart.void, []),
    [_maskDone]: dart.fnType(dart.void, []),
    [_startPayload]: dart.fnType(dart.void, []),
    [_messageFrameEnd]: dart.fnType(dart.void, []),
    [_controlFrameEnd]: dart.fnType(dart.void, []),
    [_isControlFrame]: dart.fnType(core.bool, []),
    [_prepareForNextFrame]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_http._WebSocketProtocolTransformer, I[177]);
  dart.setFieldSignature(_http._WebSocketProtocolTransformer, () => ({
    __proto__: dart.getFields(_http._WebSocketProtocolTransformer.__proto__),
    [_state$1]: dart.fieldType(core.int),
    [_fin]: dart.fieldType(core.bool),
    [_compressed]: dart.fieldType(core.bool),
    [_opcode]: dart.fieldType(core.int),
    [_len]: dart.fieldType(core.int),
    [_masked]: dart.fieldType(core.bool),
    [_remainingLenBytes]: dart.fieldType(core.int),
    [_remainingMaskingKeyBytes]: dart.fieldType(core.int),
    [_remainingPayloadBytes]: dart.fieldType(core.int),
    [_unmaskingIndex]: dart.fieldType(core.int),
    [_currentMessageType]: dart.fieldType(core.int),
    closeCode: dart.fieldType(core.int),
    closeReason: dart.fieldType(core.String),
    [_eventSink$]: dart.fieldType(dart.nullable(async.EventSink)),
    [_serverSide$]: dart.finalFieldType(core.bool),
    [_maskingBytes]: dart.finalFieldType(typed_data.Uint8List),
    [_payload]: dart.finalFieldType(_internal.BytesBuilder),
    [_deflate$]: dart.fieldType(dart.nullable(_http._WebSocketPerMessageDeflate))
  }));
  dart.defineLazy(_http._WebSocketProtocolTransformer, {
    /*_http._WebSocketProtocolTransformer.START*/get START() {
      return 0;
    },
    /*_http._WebSocketProtocolTransformer.LEN_FIRST*/get LEN_FIRST() {
      return 1;
    },
    /*_http._WebSocketProtocolTransformer.LEN_REST*/get LEN_REST() {
      return 2;
    },
    /*_http._WebSocketProtocolTransformer.MASK*/get MASK() {
      return 3;
    },
    /*_http._WebSocketProtocolTransformer.PAYLOAD*/get PAYLOAD() {
      return 4;
    },
    /*_http._WebSocketProtocolTransformer.CLOSED*/get CLOSED() {
      return 5;
    },
    /*_http._WebSocketProtocolTransformer.FAILURE*/get FAILURE() {
      return 6;
    },
    /*_http._WebSocketProtocolTransformer.FIN*/get FIN() {
      return 128;
    },
    /*_http._WebSocketProtocolTransformer.RSV1*/get RSV1() {
      return 64;
    },
    /*_http._WebSocketProtocolTransformer.RSV2*/get RSV2() {
      return 32;
    },
    /*_http._WebSocketProtocolTransformer.RSV3*/get RSV3() {
      return 16;
    },
    /*_http._WebSocketProtocolTransformer.OPCODE*/get OPCODE() {
      return 15;
    }
  }, false);
  _http._WebSocketPing = class _WebSocketPing extends core.Object {};
  (_http._WebSocketPing.new = function(payload = null) {
    this.payload = payload;
    ;
  }).prototype = _http._WebSocketPing.prototype;
  dart.addTypeTests(_http._WebSocketPing);
  dart.addTypeCaches(_http._WebSocketPing);
  dart.setLibraryUri(_http._WebSocketPing, I[177]);
  dart.setFieldSignature(_http._WebSocketPing, () => ({
    __proto__: dart.getFields(_http._WebSocketPing.__proto__),
    payload: dart.finalFieldType(dart.nullable(core.List$(core.int)))
  }));
  _http._WebSocketPong = class _WebSocketPong extends core.Object {};
  (_http._WebSocketPong.new = function(payload = null) {
    this.payload = payload;
    ;
  }).prototype = _http._WebSocketPong.prototype;
  dart.addTypeTests(_http._WebSocketPong);
  dart.addTypeCaches(_http._WebSocketPong);
  dart.setLibraryUri(_http._WebSocketPong, I[177]);
  dart.setFieldSignature(_http._WebSocketPong, () => ({
    __proto__: dart.getFields(_http._WebSocketPong.__proto__),
    payload: dart.finalFieldType(dart.nullable(core.List$(core.int)))
  }));
  var _protocolSelector$ = dart.privateName(_http, "_protocolSelector");
  var _compression$ = dart.privateName(_http, "_compression");
  _http._WebSocketTransformerImpl = class _WebSocketTransformerImpl extends async.StreamTransformerBase$(_http.HttpRequest, _http.WebSocket) {
    bind(stream) {
      T.StreamOfHttpRequest().as(stream);
      if (stream == null) dart.nullFailed(I[186], 421, 46, "stream");
      stream.listen(dart.fn(request => {
        if (request == null) dart.nullFailed(I[186], 422, 20, "request");
        _http._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector$], this[_compression$]).then(dart.void, dart.fn(webSocket => {
          if (webSocket == null) dart.nullFailed(I[186], 424, 28, "webSocket");
          return this[_controller$0].add(webSocket);
        }, T.WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
      }, T.HttpRequestTovoid()), {onDone: dart.fn(() => {
          this[_controller$0].close();
        }, T$.VoidTovoid())});
      return this[_controller$0].stream;
    }
    static _tokenizeFieldValue(headerValue) {
      if (headerValue == null) dart.nullFailed(I[186], 433, 50, "headerValue");
      let tokens = T$.JSArrayOfString().of([]);
      let start = 0;
      let index = 0;
      while (index < headerValue.length) {
        if (headerValue[$_get](index) === ",") {
          tokens[$add](headerValue[$substring](start, index));
          start = index + 1;
        } else if (headerValue[$_get](index) === " " || headerValue[$_get](index) === "\t") {
          start = start + 1;
        }
        index = index + 1;
      }
      tokens[$add](headerValue[$substring](start, index));
      return tokens;
    }
    static _upgrade(request, protocolSelector, compression) {
      let t302;
      if (request == null) dart.nullFailed(I[186], 450, 49, "request");
      if (compression == null) dart.nullFailed(I[186], 451, 63, "compression");
      let response = request.response;
      if (!dart.test(_http._WebSocketTransformerImpl._isUpgradeRequest(request))) {
        t302 = response;
        (() => {
          t302.statusCode = 400;
          t302.close();
          return t302;
        })();
        return T.FutureOfWebSocket().error(new _http.WebSocketException.new("Invalid WebSocket upgrade request"));
      }
      function upgrade(protocol) {
        let t302;
        t302 = response;
        (() => {
          t302.statusCode = 101;
          t302.headers.add("connection", "Upgrade");
          t302.headers.add("upgrade", "websocket");
          return t302;
        })();
        let key = dart.nullCheck(request.headers.value("Sec-WebSocket-Key"));
        let sha1 = new _http._SHA1.new();
        sha1.add((key + dart.str(_http._webSocketGUID))[$codeUnits]);
        let accept = _http._CryptoUtils.bytesToBase64(sha1.close());
        response.headers.add("Sec-WebSocket-Accept", accept);
        if (protocol != null) {
          response.headers.add("Sec-WebSocket-Protocol", protocol);
        }
        let deflate = _http._WebSocketTransformerImpl._negotiateCompression(request, response, compression);
        response.headers.contentLength = 0;
        return response.detachSocket().then(_http.WebSocket, dart.fn(socket => {
          if (socket == null) dart.nullFailed(I[186], 480, 55, "socket");
          return new _http._WebSocketImpl._fromSocket(socket, protocol, compression, true, deflate);
        }, T.SocketTo_WebSocketImpl()));
      }
      dart.fn(upgrade, T.StringNToFutureOfWebSocket());
      let protocols = request.headers._get("Sec-WebSocket-Protocol");
      if (protocols != null && protocolSelector != null) {
        let tokenizedProtocols = _http._WebSocketTransformerImpl._tokenizeFieldValue(protocols[$join](", "));
        return T$0.FutureOfString().new(dart.fn(() => T$0.FutureOrOfString().as(protocolSelector(tokenizedProtocols)), T.VoidToFutureOrOfString())).then(core.String, dart.fn(protocol => {
          if (protocol == null) dart.nullFailed(I[186], 492, 26, "protocol");
          if (dart.notNull(tokenizedProtocols[$indexOf](protocol)) < 0) {
            dart.throw(new _http.WebSocketException.new("Selected protocol is not in the list of available protocols"));
          }
          return protocol;
        }, T$.StringToString())).catchError(dart.fn(error => {
          let t302;
          t302 = response;
          (() => {
            t302.statusCode = 500;
            t302.close();
            return t302;
          })();
          dart.throw(error);
        }, T$0.dynamicToNever())).then(_http.WebSocket, upgrade);
      } else {
        return upgrade(null);
      }
    }
    static _negotiateCompression(request, response, compression) {
      if (request == null) dart.nullFailed(I[186], 509, 73, "request");
      if (response == null) dart.nullFailed(I[186], 510, 20, "response");
      if (compression == null) dart.nullFailed(I[186], 510, 49, "compression");
      let extensionHeader = request.headers.value("Sec-WebSocket-Extensions");
      extensionHeader == null ? extensionHeader = "" : null;
      let hv = _http.HeaderValue.parse(extensionHeader, {valueSeparator: ","});
      if (dart.test(compression.enabled) && hv.value === "permessage-deflate") {
        let info = compression[_createHeader](hv);
        response.headers.add("Sec-WebSocket-Extensions", info.headerValue);
        let serverNoContextTakeover = dart.test(hv.parameters[$containsKey]("server_no_context_takeover")) && dart.test(compression.serverNoContextTakeover);
        let clientNoContextTakeover = dart.test(hv.parameters[$containsKey]("client_no_context_takeover")) && dart.test(compression.clientNoContextTakeover);
        let deflate = new _http._WebSocketPerMessageDeflate.new({serverNoContextTakeover: serverNoContextTakeover, clientNoContextTakeover: clientNoContextTakeover, serverMaxWindowBits: info.maxWindowBits, clientMaxWindowBits: info.maxWindowBits, serverSide: true});
        return deflate;
      }
      return null;
    }
    static _isUpgradeRequest(request) {
      if (request == null) dart.nullFailed(I[186], 539, 45, "request");
      if (request.method !== "GET") {
        return false;
      }
      let connectionHeader = request.headers._get("connection");
      if (connectionHeader == null) {
        return false;
      }
      let isUpgrade = false;
      for (let value of connectionHeader) {
        if (value[$toLowerCase]() === "upgrade") {
          isUpgrade = true;
          break;
        }
      }
      if (!isUpgrade) return false;
      let upgrade = request.headers.value("upgrade");
      if (upgrade == null || upgrade[$toLowerCase]() !== "websocket") {
        return false;
      }
      let version = request.headers.value("Sec-WebSocket-Version");
      if (version == null || version !== "13") {
        return false;
      }
      let key = request.headers.value("Sec-WebSocket-Key");
      if (key == null) {
        return false;
      }
      return true;
    }
  };
  (_http._WebSocketTransformerImpl.new = function(_protocolSelector, _compression) {
    if (_compression == null) dart.nullFailed(I[186], 419, 58, "_compression");
    this[_controller$0] = T.StreamControllerOfWebSocket().new({sync: true});
    this[_protocolSelector$] = _protocolSelector;
    this[_compression$] = _compression;
    _http._WebSocketTransformerImpl.__proto__.new.call(this);
    ;
  }).prototype = _http._WebSocketTransformerImpl.prototype;
  dart.addTypeTests(_http._WebSocketTransformerImpl);
  dart.addTypeCaches(_http._WebSocketTransformerImpl);
  _http._WebSocketTransformerImpl[dart.implements] = () => [_http.WebSocketTransformer];
  dart.setMethodSignature(_http._WebSocketTransformerImpl, () => ({
    __proto__: dart.getMethods(_http._WebSocketTransformerImpl.__proto__),
    bind: dart.fnType(async.Stream$(_http.WebSocket), [dart.nullable(core.Object)])
  }));
  dart.setLibraryUri(_http._WebSocketTransformerImpl, I[177]);
  dart.setFieldSignature(_http._WebSocketTransformerImpl, () => ({
    __proto__: dart.getFields(_http._WebSocketTransformerImpl.__proto__),
    [_controller$0]: dart.finalFieldType(async.StreamController$(_http.WebSocket)),
    [_protocolSelector$]: dart.finalFieldType(dart.nullable(dart.fnType(dart.dynamic, [core.List$(core.String)]))),
    [_compression$]: dart.finalFieldType(_http.CompressionOptions)
  }));
  var _ensureDecoder = dart.privateName(_http, "_ensureDecoder");
  var _ensureEncoder = dart.privateName(_http, "_ensureEncoder");
  _http._WebSocketPerMessageDeflate = class _WebSocketPerMessageDeflate extends core.Object {
    [_ensureDecoder]() {
      let t302;
      t302 = this.decoder;
      return t302 == null ? this.decoder = io.RawZLibFilter.inflateFilter({windowBits: dart.test(this.serverSide) ? this.clientMaxWindowBits : this.serverMaxWindowBits, raw: true}) : t302;
    }
    [_ensureEncoder]() {
      let t302;
      t302 = this.encoder;
      return t302 == null ? this.encoder = io.RawZLibFilter.deflateFilter({windowBits: dart.test(this.serverSide) ? this.serverMaxWindowBits : this.clientMaxWindowBits, raw: true}) : t302;
    }
    processIncomingMessage(msg) {
      if (msg == null) dart.nullFailed(I[186], 596, 46, "msg");
      let decoder = this[_ensureDecoder]();
      let data = T$.JSArrayOfint().of([]);
      data[$addAll](msg);
      data[$addAll](C[488] || CT.C488);
      decoder.process(data, 0, data[$length]);
      let result = _internal.BytesBuilder.new();
      let out = null;
      while (true) {
        let out = decoder.processed();
        if (out == null) break;
        result.add(out);
      }
      if (dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || !dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
        this.decoder = null;
      }
      return result.takeBytes();
    }
    processOutgoingMessage(msg) {
      if (msg == null) dart.nullFailed(I[186], 621, 46, "msg");
      let encoder = this[_ensureEncoder]();
      let result = T$.JSArrayOfint().of([]);
      let buffer = null;
      if (!typed_data.Uint8List.is(msg)) {
        for (let i = 0; i < dart.notNull(msg[$length]); i = i + 1) {
          if (dart.notNull(msg[$_get](i)) < 0 || 255 < dart.notNull(msg[$_get](i))) {
            dart.throw(new core.ArgumentError.new("List element is not a byte value " + "(value " + dart.str(msg[$_get](i)) + " at index " + dart.str(i) + ")"));
          }
        }
        buffer = _native_typed_data.NativeUint8List.fromList(msg);
      } else {
        buffer = msg;
      }
      encoder.process(buffer, 0, buffer[$length]);
      while (true) {
        let out = encoder.processed();
        if (out == null) break;
        result[$addAll](out);
      }
      if (!dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
        this.encoder = null;
      }
      if (dart.notNull(result[$length]) > 4) {
        result = result[$sublist](0, dart.notNull(result[$length]) - 4);
      }
      if (result[$length] === 0) {
        return T$.JSArrayOfint().of([0]);
      }
      return result;
    }
  };
  (_http._WebSocketPerMessageDeflate.new = function(opts) {
    let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : 15;
    if (clientMaxWindowBits == null) dart.nullFailed(I[186], 582, 13, "clientMaxWindowBits");
    let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : 15;
    if (serverMaxWindowBits == null) dart.nullFailed(I[186], 583, 12, "serverMaxWindowBits");
    let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
    if (serverNoContextTakeover == null) dart.nullFailed(I[186], 584, 12, "serverNoContextTakeover");
    let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
    if (clientNoContextTakeover == null) dart.nullFailed(I[186], 585, 12, "clientNoContextTakeover");
    let serverSide = opts && 'serverSide' in opts ? opts.serverSide : false;
    if (serverSide == null) dart.nullFailed(I[186], 586, 12, "serverSide");
    this.decoder = null;
    this.encoder = null;
    this.clientMaxWindowBits = clientMaxWindowBits;
    this.serverMaxWindowBits = serverMaxWindowBits;
    this.serverNoContextTakeover = serverNoContextTakeover;
    this.clientNoContextTakeover = clientNoContextTakeover;
    this.serverSide = serverSide;
    ;
  }).prototype = _http._WebSocketPerMessageDeflate.prototype;
  dart.addTypeTests(_http._WebSocketPerMessageDeflate);
  dart.addTypeCaches(_http._WebSocketPerMessageDeflate);
  dart.setMethodSignature(_http._WebSocketPerMessageDeflate, () => ({
    __proto__: dart.getMethods(_http._WebSocketPerMessageDeflate.__proto__),
    [_ensureDecoder]: dart.fnType(io.RawZLibFilter, []),
    [_ensureEncoder]: dart.fnType(io.RawZLibFilter, []),
    processIncomingMessage: dart.fnType(typed_data.Uint8List, [core.List$(core.int)]),
    processOutgoingMessage: dart.fnType(core.List$(core.int), [core.List$(core.int)])
  }));
  dart.setLibraryUri(_http._WebSocketPerMessageDeflate, I[177]);
  dart.setFieldSignature(_http._WebSocketPerMessageDeflate, () => ({
    __proto__: dart.getFields(_http._WebSocketPerMessageDeflate.__proto__),
    serverNoContextTakeover: dart.fieldType(core.bool),
    clientNoContextTakeover: dart.fieldType(core.bool),
    clientMaxWindowBits: dart.fieldType(core.int),
    serverMaxWindowBits: dart.fieldType(core.int),
    serverSide: dart.fieldType(core.bool),
    decoder: dart.fieldType(dart.nullable(io.RawZLibFilter)),
    encoder: dart.fieldType(dart.nullable(io.RawZLibFilter))
  }));
  var _deflateHelper = dart.privateName(_http, "_deflateHelper");
  var _outCloseCode = dart.privateName(_http, "_outCloseCode");
  var _outCloseReason = dart.privateName(_http, "_outCloseReason");
  _http._WebSocketOutgoingTransformer = class _WebSocketOutgoingTransformer extends async.StreamTransformerBase$(dart.dynamic, core.List$(core.int)) {
    bind(stream) {
      async.Stream.as(stream);
      if (stream == null) dart.nullFailed(I[186], 679, 33, "stream");
      return T$0.StreamOfListOfint().eventTransformed(stream, dart.fn(eventSink => {
        if (eventSink == null) dart.nullFailed(I[186], 681, 31, "eventSink");
        if (this[_eventSink$] != null) {
          dart.throw(new core.StateError.new("WebSocket transformer already used"));
        }
        this[_eventSink$] = eventSink;
        return this;
      }, T.EventSinkOfListOfintTo_WebSocketOutgoingTransformer()));
    }
    add(message) {
      if (_http._WebSocketPong.is(message)) {
        this.addFrame(10, message.payload);
        return;
      }
      if (_http._WebSocketPing.is(message)) {
        this.addFrame(9, message.payload);
        return;
      }
      let data = null;
      let opcode = null;
      if (message != null) {
        let messageData = null;
        if (typeof message == 'string') {
          opcode = 1;
          messageData = convert.utf8.encode(message);
        } else if (T$0.ListOfint().is(message)) {
          opcode = 2;
          messageData = message;
        } else if (_http._EncodedString.is(message)) {
          opcode = 1;
          messageData = message.bytes;
        } else {
          dart.throw(new core.ArgumentError.new(message));
        }
        let deflateHelper = this[_deflateHelper];
        if (deflateHelper != null) {
          messageData = deflateHelper.processOutgoingMessage(messageData);
        }
        data = messageData;
      } else {
        opcode = 1;
      }
      this.addFrame(opcode, data);
    }
    addError(error, stackTrace = null) {
      if (error == null) dart.nullFailed(I[186], 726, 24, "error");
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      dart.nullCheck(this[_eventSink$]).addError(error, stackTrace);
    }
    close() {
      let code = this.webSocket[_outCloseCode];
      let reason = this.webSocket[_outCloseReason];
      let data = null;
      if (code != null) {
        data = (() => {
          let t302 = T$.JSArrayOfint().of([dart.notNull(code) >> 8 & 255, dart.notNull(code) & 255]);
          if (reason != null) t302[$addAll](convert.utf8.encode(reason));
          return t302;
        })();
      }
      this.addFrame(8, data);
      dart.nullCheck(this[_eventSink$]).close();
    }
    addFrame(opcode, data) {
      if (opcode == null) dart.nullFailed(I[186], 747, 21, "opcode");
      _http._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide$], this[_deflateHelper] != null && (opcode === 1 || opcode === 2))[$forEach](dart.fn(e => {
        if (e == null) dart.nullFailed(I[186], 755, 19, "e");
        dart.nullCheck(this[_eventSink$]).add(e);
      }, T$0.ListOfintTovoid()));
    }
    static createFrame(opcode, data, serverSide, compressed) {
      let t303, t303$, t303$0, t303$1, t304, t303$2, t304$, t303$3, t304$0, t303$4;
      if (opcode == null) dart.nullFailed(I[186], 761, 11, "opcode");
      if (serverSide == null) dart.nullFailed(I[186], 761, 41, "serverSide");
      if (compressed == null) dart.nullFailed(I[186], 761, 58, "compressed");
      let mask = !dart.test(serverSide);
      let dataLength = data == null ? 0 : data[$length];
      let headerSize = mask ? 6 : 2;
      if (dart.notNull(dataLength) > 65535) {
        headerSize = headerSize + 8;
      } else if (dart.notNull(dataLength) > 125) {
        headerSize = headerSize + 2;
      }
      let header = _native_typed_data.NativeUint8List.new(headerSize);
      let index = 0;
      let hoc = (128 | (dart.test(compressed) ? 64 : 0) | (dart.notNull(opcode) & 15) >>> 0) >>> 0;
      header[$_set]((t303 = index, index = t303 + 1, t303), hoc);
      let lengthBytes = 1;
      if (dart.notNull(dataLength) > 65535) {
        header[$_set]((t303$ = index, index = t303$ + 1, t303$), 127);
        lengthBytes = 8;
      } else if (dart.notNull(dataLength) > 125) {
        header[$_set]((t303$0 = index, index = t303$0 + 1, t303$0), 126);
        lengthBytes = 2;
      }
      for (let i = 0; i < lengthBytes; i = i + 1) {
        header[$_set]((t303$1 = index, index = t303$1 + 1, t303$1), dataLength[$rightShift]((lengthBytes - 1 - i) * 8) & 255);
      }
      if (mask) {
        t303$2 = header;
        t304 = 1;
        t303$2[$_set](t304, (dart.notNull(t303$2[$_get](t304)) | 1 << 7) >>> 0);
        let maskBytes = _http._CryptoUtils.getRandomBytes(4);
        header[$setRange](index, index + 4, maskBytes);
        index = index + 4;
        if (data != null) {
          let list = null;
          if (opcode === 1 && typed_data.Uint8List.is(data)) {
            list = data;
          } else {
            if (typed_data.Uint8List.is(data)) {
              list = _native_typed_data.NativeUint8List.fromList(data);
            } else {
              list = _native_typed_data.NativeUint8List.new(data[$length]);
              for (let i = 0; i < dart.notNull(data[$length]); i = i + 1) {
                if (dart.notNull(data[$_get](i)) < 0 || 255 < dart.notNull(data[$_get](i))) {
                  dart.throw(new core.ArgumentError.new("List element is not a byte value " + "(value " + dart.str(data[$_get](i)) + " at index " + dart.str(i) + ")"));
                }
                list[$_set](i, data[$_get](i));
              }
            }
          }
          let blockCount = (dart.notNull(list[$length]) / 16)[$truncate]();
          if (blockCount > 0) {
            let mask = 0;
            for (let i = 3; i >= 0; i = i - 1) {
              mask = (mask << 8 | dart.notNull(maskBytes[$_get](i))) >>> 0;
            }
            let blockMask = new _native_typed_data.NativeInt32x4.new(mask, mask, mask, mask);
            let blockBuffer = typed_data.Int32x4List.view(list[$buffer], list[$offsetInBytes], blockCount);
            for (let i = 0; i < dart.notNull(blockBuffer[$length]); i = i + 1) {
              t303$3 = blockBuffer;
              t304$ = i;
              t303$3[$_set](t304$, t303$3[$_get](t304$)['^'](blockMask));
            }
          }
          for (let i = blockCount * 16; i < dart.notNull(list[$length]); i = i + 1) {
            t303$4 = list;
            t304$0 = i;
            t303$4[$_set](t304$0, (dart.notNull(t303$4[$_get](t304$0)) ^ dart.notNull(maskBytes[$_get](i & 3))) >>> 0);
          }
          data = list;
        }
      }
      if (!(index === headerSize)) dart.assertFailed(null, I[186], 840, 12, "index == headerSize");
      if (data == null) {
        return T$0.JSArrayOfListOfint().of([header]);
      } else {
        return T$0.JSArrayOfListOfint().of([header, data]);
      }
    }
  };
  (_http._WebSocketOutgoingTransformer.new = function(webSocket) {
    if (webSocket == null) dart.nullFailed(I[186], 676, 38, "webSocket");
    this[_eventSink$] = null;
    this.webSocket = webSocket;
    this[_deflateHelper] = webSocket[_deflate$];
    _http._WebSocketOutgoingTransformer.__proto__.new.call(this);
    ;
  }).prototype = _http._WebSocketOutgoingTransformer.prototype;
  dart.addTypeTests(_http._WebSocketOutgoingTransformer);
  dart.addTypeCaches(_http._WebSocketOutgoingTransformer);
  _http._WebSocketOutgoingTransformer[dart.implements] = () => [async.EventSink];
  dart.setMethodSignature(_http._WebSocketOutgoingTransformer, () => ({
    __proto__: dart.getMethods(_http._WebSocketOutgoingTransformer.__proto__),
    bind: dart.fnType(async.Stream$(core.List$(core.int)), [dart.nullable(core.Object)]),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
    close: dart.fnType(dart.void, []),
    addFrame: dart.fnType(dart.void, [core.int, dart.nullable(core.List$(core.int))])
  }));
  dart.setLibraryUri(_http._WebSocketOutgoingTransformer, I[177]);
  dart.setFieldSignature(_http._WebSocketOutgoingTransformer, () => ({
    __proto__: dart.getFields(_http._WebSocketOutgoingTransformer.__proto__),
    webSocket: dart.finalFieldType(_http._WebSocketImpl),
    [_eventSink$]: dart.fieldType(dart.nullable(async.EventSink$(core.List$(core.int)))),
    [_deflateHelper]: dart.fieldType(dart.nullable(_http._WebSocketPerMessageDeflate))
  }));
  var _issuedPause = dart.privateName(_http, "_issuedPause");
  var _closed$ = dart.privateName(_http, "_closed");
  var _closeCompleter$ = dart.privateName(_http, "_closeCompleter");
  var _completer = dart.privateName(_http, "_completer");
  var _onListen = dart.privateName(_http, "_onListen");
  var _onPause$ = dart.privateName(_http, "_onPause");
  var _onResume$ = dart.privateName(_http, "_onResume");
  var _cancel$ = dart.privateName(_http, "_cancel");
  var _done = dart.privateName(_http, "_done");
  var _ensureController = dart.privateName(_http, "_ensureController");
  _http._WebSocketConsumer = class _WebSocketConsumer extends core.Object {
    [_onListen]() {
      let t303;
      t303 = this[_subscription$0];
      t303 == null ? null : t303.cancel();
    }
    [_onPause$]() {
      let subscription = this[_subscription$0];
      if (subscription != null) {
        subscription.pause();
      } else {
        this[_issuedPause] = true;
      }
    }
    [_onResume$]() {
      let subscription = this[_subscription$0];
      if (subscription != null) {
        subscription.resume();
      } else {
        this[_issuedPause] = false;
      }
    }
    [_cancel$]() {
      let subscription = this[_subscription$0];
      if (subscription != null) {
        this[_subscription$0] = null;
        subscription.cancel();
      }
    }
    [_ensureController]() {
      let controller = this[_controller$0];
      if (controller != null) return controller;
      controller = this[_controller$0] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause$), onResume: dart.bind(this, _onResume$), onCancel: dart.bind(this, _onListen)});
      let stream = controller.stream.transform(T$0.ListOfint(), new _http._WebSocketOutgoingTransformer.new(this.webSocket));
      this.socket.addStream(stream).then(core.Null, dart.fn(_ => {
        this[_done]();
        this[_closeCompleter$].complete(this.webSocket);
      }, T$.dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
          if (error == null) dart.nullFailed(I[186], 904, 25, "error");
          if (stackTrace == null) dart.nullFailed(I[186], 904, 43, "stackTrace");
          this[_closed$] = true;
          this[_cancel$]();
          if (core.ArgumentError.is(error)) {
            if (!dart.test(this[_done](error, stackTrace))) {
              this[_closeCompleter$].completeError(error, stackTrace);
            }
          } else {
            this[_done]();
            this[_closeCompleter$].complete(this.webSocket);
          }
        }, T$.ObjectAndStackTraceToNull())});
      return controller;
    }
    [_done](error = null, stackTrace = null) {
      let completer = this[_completer];
      if (completer == null) return false;
      if (error != null) {
        completer.completeError(error, stackTrace);
      } else {
        completer.complete(this.webSocket);
      }
      this[_completer] = null;
      return true;
    }
    addStream(stream) {
      async.Stream.as(stream);
      if (stream == null) dart.nullFailed(I[186], 931, 27, "stream");
      if (dart.test(this[_closed$])) {
        stream.listen(null).cancel();
        return async.Future.value(this.webSocket);
      }
      this[_ensureController]();
      let completer = this[_completer] = async.Completer.new();
      let subscription = this[_subscription$0] = stream.listen(dart.fn(data => {
        dart.nullCheck(this[_controller$0]).add(data);
      }, T$.dynamicTovoid()), {onDone: dart.bind(this, _done), onError: dart.bind(this, _done), cancelOnError: true});
      if (dart.test(this[_issuedPause])) {
        subscription.pause();
        this[_issuedPause] = false;
      }
      return completer.future;
    }
    close() {
      this[_ensureController]().close();
      return this[_closeCompleter$].future.then(dart.dynamic, dart.fn(_ => this.socket.close().catchError(dart.fn(_ => {
      }, T$.dynamicToNull())).then(dart.dynamic, dart.fn(_ => this.webSocket, T.dynamicTo_WebSocketImpl())), T$.dynamicToFuture()));
    }
    add(data) {
      if (dart.test(this[_closed$])) return;
      let controller = this[_ensureController]();
      if (dart.test(controller.isClosed)) return;
      controller.add(data);
    }
    closeSocket() {
      this[_closed$] = true;
      this[_cancel$]();
      this.close();
    }
  };
  (_http._WebSocketConsumer.new = function(webSocket, socket) {
    if (webSocket == null) dart.nullFailed(I[186], 859, 27, "webSocket");
    if (socket == null) dart.nullFailed(I[186], 859, 43, "socket");
    this[_controller$0] = null;
    this[_subscription$0] = null;
    this[_issuedPause] = false;
    this[_closed$] = false;
    this[_closeCompleter$] = T.CompleterOfWebSocket().new();
    this[_completer] = null;
    this.webSocket = webSocket;
    this.socket = socket;
    ;
  }).prototype = _http._WebSocketConsumer.prototype;
  dart.addTypeTests(_http._WebSocketConsumer);
  dart.addTypeCaches(_http._WebSocketConsumer);
  _http._WebSocketConsumer[dart.implements] = () => [async.StreamConsumer];
  dart.setMethodSignature(_http._WebSocketConsumer, () => ({
    __proto__: dart.getMethods(_http._WebSocketConsumer.__proto__),
    [_onListen]: dart.fnType(dart.void, []),
    [_onPause$]: dart.fnType(dart.void, []),
    [_onResume$]: dart.fnType(dart.void, []),
    [_cancel$]: dart.fnType(dart.void, []),
    [_ensureController]: dart.fnType(async.StreamController, []),
    [_done]: dart.fnType(core.bool, [], [dart.nullable(core.Object), dart.nullable(core.StackTrace)]),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    close: dart.fnType(async.Future, []),
    add: dart.fnType(dart.void, [dart.dynamic]),
    closeSocket: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_http._WebSocketConsumer, I[177]);
  dart.setFieldSignature(_http._WebSocketConsumer, () => ({
    __proto__: dart.getFields(_http._WebSocketConsumer.__proto__),
    webSocket: dart.finalFieldType(_http._WebSocketImpl),
    socket: dart.finalFieldType(io.Socket),
    [_controller$0]: dart.fieldType(dart.nullable(async.StreamController)),
    [_subscription$0]: dart.fieldType(dart.nullable(async.StreamSubscription)),
    [_issuedPause]: dart.fieldType(core.bool),
    [_closed$]: dart.fieldType(core.bool),
    [_closeCompleter$]: dart.fieldType(async.Completer),
    [_completer]: dart.fieldType(dart.nullable(async.Completer))
  }));
  var ___WebSocketImpl__sink = dart.privateName(_http, "_#_WebSocketImpl#_sink");
  var ___WebSocketImpl__sink_isSet = dart.privateName(_http, "_#_WebSocketImpl#_sink#isSet");
  var _readyState = dart.privateName(_http, "_readyState");
  var _writeClosed = dart.privateName(_http, "_writeClosed");
  var _closeCode = dart.privateName(_http, "_closeCode");
  var _closeReason = dart.privateName(_http, "_closeReason");
  var _pingInterval = dart.privateName(_http, "_pingInterval");
  var _pingTimer = dart.privateName(_http, "_pingTimer");
  var ___WebSocketImpl__consumer = dart.privateName(_http, "_#_WebSocketImpl#_consumer");
  var ___WebSocketImpl__consumer_isSet = dart.privateName(_http, "_#_WebSocketImpl#_consumer#isSet");
  var _closeTimer = dart.privateName(_http, "_closeTimer");
  var _consumer = dart.privateName(_http, "_consumer");
  var _sink = dart.privateName(_http, "_sink");
  var _close$0 = dart.privateName(_http, "_close");
  const Stream__ServiceObject$36$ = class Stream__ServiceObject extends async.Stream {};
  (Stream__ServiceObject$36$.new = function() {
    _http._ServiceObject.new.call(this);
    Stream__ServiceObject$36$.__proto__.new.call(this);
  }).prototype = Stream__ServiceObject$36$.prototype;
  (Stream__ServiceObject$36$._internal = function() {
    _http._ServiceObject.new.call(this);
    Stream__ServiceObject$36$.__proto__._internal.call(this);
  }).prototype = Stream__ServiceObject$36$.prototype;
  dart.applyMixin(Stream__ServiceObject$36$, _http._ServiceObject);
  _http._WebSocketImpl = class _WebSocketImpl extends Stream__ServiceObject$36$ {
    get [_sink]() {
      let t303;
      return dart.test(this[___WebSocketImpl__sink_isSet]) ? (t303 = this[___WebSocketImpl__sink], t303) : dart.throw(new _internal.LateError.fieldNI("_sink"));
    }
    set [_sink](t303) {
      if (t303 == null) dart.nullFailed(I[186], 981, 19, "null");
      this[___WebSocketImpl__sink_isSet] = true;
      this[___WebSocketImpl__sink] = t303;
    }
    get [_consumer]() {
      let t304;
      return dart.test(this[___WebSocketImpl__consumer_isSet]) ? (t304 = this[___WebSocketImpl__consumer], t304) : dart.throw(new _internal.LateError.fieldNI("_consumer"));
    }
    set [_consumer](t304) {
      if (t304 == null) dart.nullFailed(I[186], 991, 27, "null");
      this[___WebSocketImpl__consumer_isSet] = true;
      this[___WebSocketImpl__consumer] = t304;
    }
    static connect(url, protocols, headers, opts) {
      if (url == null) dart.nullFailed(I[186], 1001, 14, "url");
      let compression = opts && 'compression' in opts ? opts.compression : C[486] || CT.C486;
      if (compression == null) dart.nullFailed(I[186], 1002, 27, "compression");
      let uri = core.Uri.parse(url);
      if (uri.scheme !== "ws" && uri.scheme !== "wss") {
        dart.throw(new _http.WebSocketException.new("Unsupported URL scheme '" + dart.str(uri.scheme) + "'"));
      }
      let random = math.Random.new();
      let nonceData = _native_typed_data.NativeUint8List.new(16);
      for (let i = 0; i < 16; i = i + 1) {
        nonceData[$_set](i, random.nextInt(256));
      }
      let nonce = _http._CryptoUtils.bytesToBase64(nonceData);
      uri = core._Uri.new({scheme: uri.scheme === "wss" ? "https" : "http", userInfo: uri.userInfo, host: uri.host, port: uri.port, path: uri.path, query: uri.query, fragment: uri.fragment});
      return _http._WebSocketImpl._httpClient.openUrl("GET", uri).then(_http.HttpClientResponse, dart.fn(request => {
        let t305;
        if (request == null) dart.nullFailed(I[186], 1025, 50, "request");
        if (uri.userInfo != null && !uri.userInfo[$isEmpty]) {
          let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(uri.userInfo));
          request.headers.set("authorization", "Basic " + dart.str(auth));
        }
        if (headers != null) {
          headers[$forEach](dart.fn((field, value) => {
            if (field == null) dart.nullFailed(I[186], 1033, 26, "field");
            return request.headers.add(field, core.Object.as(value));
          }, T$0.StringAnddynamicTovoid()));
        }
        t305 = request.headers;
        (() => {
          t305.set("connection", "Upgrade");
          t305.set("upgrade", "websocket");
          t305.set("Sec-WebSocket-Key", nonce);
          t305.set("Cache-Control", "no-cache");
          t305.set("Sec-WebSocket-Version", "13");
          return t305;
        })();
        if (protocols != null) {
          request.headers.add("Sec-WebSocket-Protocol", protocols[$toList]());
        }
        if (dart.test(compression.enabled)) {
          request.headers.add("Sec-WebSocket-Extensions", compression[_createHeader]());
        }
        return request.close();
      }, T.HttpClientRequestToFutureOfHttpClientResponse())).then(_http.WebSocket, dart.fn(response => {
        if (response == null) dart.nullFailed(I[186], 1052, 14, "response");
        function error(message) {
          if (message == null) dart.nullFailed(I[186], 1053, 26, "message");
          response.detachSocket().then(core.Null, dart.fn(socket => {
            if (socket == null) dart.nullFailed(I[186], 1055, 39, "socket");
            socket.destroy();
          }, T.SocketToNull()));
          dart.throw(new _http.WebSocketException.new(message));
        }
        dart.fn(error, T.StringToNever());
        let connectionHeader = response.headers._get("connection");
        if (response.statusCode !== 101 || connectionHeader == null || !dart.test(connectionHeader[$any](dart.fn(value => {
          if (value == null) dart.nullFailed(I[186], 1064, 34, "value");
          return value[$toLowerCase]() === "upgrade";
        }, T$.StringTobool()))) || dart.nullCheck(response.headers.value("upgrade"))[$toLowerCase]() !== "websocket") {
          error("Connection to '" + dart.str(uri) + "' was not upgraded to websocket");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
        let accept = response.headers.value("Sec-WebSocket-Accept");
        if (accept == null) {
          error("Response did not contain a 'Sec-WebSocket-Accept' header");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
        let sha1 = new _http._SHA1.new();
        sha1.add((dart.str(nonce) + dart.str(_http._webSocketGUID))[$codeUnits]);
        let expectedAccept = sha1.close();
        let receivedAccept = _http._CryptoUtils.base64StringToBytes(accept);
        if (expectedAccept[$length] != receivedAccept[$length]) {
          error("Response header 'Sec-WebSocket-Accept' is the wrong length");
          dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
        }
        for (let i = 0; i < dart.notNull(expectedAccept[$length]); i = i + 1) {
          if (expectedAccept[$_get](i) != receivedAccept[$_get](i)) {
            error("Bad response 'Sec-WebSocket-Accept' header");
            dart.throw(new _internal.ReachabilityError.new("`null` encountered as the result from expression with type `Never`."));
          }
        }
        let protocol = response.headers.value("Sec-WebSocket-Protocol");
        let deflate = _http._WebSocketImpl.negotiateClientCompression(response, compression);
        return response.detachSocket().then(_http.WebSocket, dart.fn(socket => {
          if (socket == null) dart.nullFailed(I[186], 1090, 55, "socket");
          return new _http._WebSocketImpl._fromSocket(socket, protocol, compression, false, deflate);
        }, T.SocketTo_WebSocketImpl()));
      }, T.HttpClientResponseToFutureOfWebSocket()));
    }
    static negotiateClientCompression(response, compression) {
      let t305;
      if (response == null) dart.nullFailed(I[186], 1097, 26, "response");
      if (compression == null) dart.nullFailed(I[186], 1097, 55, "compression");
      let extensionHeader = (t305 = response.headers.value("Sec-WebSocket-Extensions"), t305 == null ? "" : t305);
      let hv = _http.HeaderValue.parse(extensionHeader, {valueSeparator: ","});
      if (dart.test(compression.enabled) && hv.value === "permessage-deflate") {
        let serverNoContextTakeover = hv.parameters[$containsKey]("server_no_context_takeover");
        let clientNoContextTakeover = hv.parameters[$containsKey]("client_no_context_takeover");
        function getWindowBits(type) {
          let t305;
          if (type == null) dart.nullFailed(I[186], 1109, 32, "type");
          let o = hv.parameters[$_get](type);
          if (o == null) {
            return 15;
          }
          t305 = core.int.tryParse(o);
          return t305 == null ? 15 : t305;
        }
        dart.fn(getWindowBits, T$0.StringToint());
        return new _http._WebSocketPerMessageDeflate.new({clientMaxWindowBits: getWindowBits("client_max_window_bits"), serverMaxWindowBits: getWindowBits("server_max_window_bits"), clientNoContextTakeover: clientNoContextTakeover, serverNoContextTakeover: serverNoContextTakeover});
      }
      return null;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    get pingInterval() {
      return this[_pingInterval];
    }
    set pingInterval(interval) {
      let t305;
      if (dart.test(this[_writeClosed])) return;
      t305 = this[_pingTimer];
      t305 == null ? null : t305.cancel();
      this[_pingInterval] = interval;
      if (interval == null) return;
      this[_pingTimer] = async.Timer.new(interval, dart.fn(() => {
        if (dart.test(this[_writeClosed])) return;
        this[_consumer].add(new _http._WebSocketPing.new());
        this[_pingTimer] = async.Timer.new(interval, dart.fn(() => {
          let t305;
          t305 = this[_closeTimer];
          t305 == null ? null : t305.cancel();
          this[_close$0](1001);
          this[_closeCode] = this[_outCloseCode];
          this[_closeReason] = this[_outCloseReason];
          this[_controller$0].close();
        }, T$.VoidTovoid()));
      }, T$.VoidTovoid()));
    }
    get readyState() {
      return this[_readyState];
    }
    get extensions() {
      return "";
    }
    get closeCode() {
      return this[_closeCode];
    }
    get closeReason() {
      return this[_closeReason];
    }
    add(data) {
      this[_sink].add(data);
    }
    addUtf8Text(bytes) {
      if (bytes == null) dart.nullFailed(I[186], 1226, 30, "bytes");
      core.ArgumentError.checkNotNull(T$0.ListOfint(), bytes, "bytes");
      this[_sink].add(new _http._EncodedString.new(bytes));
    }
    addError(error, stackTrace = null) {
      if (error == null) dart.nullFailed(I[186], 1232, 24, "error");
      this[_sink].addError(error, stackTrace);
    }
    addStream(stream) {
      async.Stream.as(stream);
      if (stream == null) dart.nullFailed(I[186], 1236, 27, "stream");
      return this[_sink].addStream(stream);
    }
    get done() {
      return this[_sink].done;
    }
    close(code = null, reason = null) {
      if (dart.test(_http._WebSocketImpl._isReservedStatusCode(code))) {
        dart.throw(new _http.WebSocketException.new("Reserved status code " + dart.str(code)));
      }
      if (this[_outCloseCode] == null) {
        this[_outCloseCode] = code;
        this[_outCloseReason] = reason;
      }
      if (!dart.test(this[_controller$0].isClosed)) {
        if (!dart.test(this[_controller$0].hasListener) && this[_subscription$0] != null) {
          this[_controller$0].stream.drain(dart.dynamic).catchError(dart.fn(_ => new _js_helper.LinkedMap.new(), T.dynamicToMap()));
        }
        if (this[_closeTimer] == null) {
          this[_closeTimer] = async.Timer.new(C[489] || CT.C489, dart.fn(() => {
            let t305;
            this[_closeCode] = this[_outCloseCode];
            this[_closeReason] = this[_outCloseReason];
            t305 = this[_subscription$0];
            t305 == null ? null : t305.cancel();
            this[_controller$0].close();
            _http._WebSocketImpl._webSockets[$remove](this[_serviceId$]);
          }, T$.VoidTovoid()));
        }
      }
      return this[_sink].close();
    }
    static get userAgent() {
      return _http._WebSocketImpl._httpClient.userAgent;
    }
    static set userAgent(userAgent) {
      _http._WebSocketImpl._httpClient.userAgent = userAgent;
    }
    [_close$0](code = null, reason = null) {
      if (dart.test(this[_writeClosed])) return;
      if (this[_outCloseCode] == null) {
        this[_outCloseCode] = code;
        this[_outCloseReason] = reason;
      }
      this[_writeClosed] = true;
      this[_consumer].closeSocket();
      _http._WebSocketImpl._webSockets[$remove](this[_serviceId$]);
    }
    get [_serviceTypePath$]() {
      return "io/websockets";
    }
    get [_serviceTypeName$]() {
      return "WebSocket";
    }
    [_toJSON$](ref) {
      if (ref == null) dart.nullFailed(I[186], 1291, 37, "ref");
      let name = dart.str(this[_socket$0].address.host) + ":" + dart.str(this[_socket$0].port);
      let r = new (T$0.IdentityMapOfString$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", name, "user_name", name]);
      if (dart.test(ref)) {
        return r;
      }
      try {
        r[$_set]("socket", dart.dsend(this[_socket$0], _toJSON$, [true]));
      } catch (e) {
        let _ = dart.getThrown(e);
        if (core.Object.is(_)) {
          r[$_set]("socket", new (T$.IdentityMapOfString$String()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
        } else
          throw e;
      }
      return r;
    }
    static _isReservedStatusCode(code) {
      return code != null && (dart.notNull(code) < 1000 || code === 1004 || code === 1005 || code === 1006 || dart.notNull(code) > 1011 && dart.notNull(code) < 1015 || dart.notNull(code) >= 1015 && dart.notNull(code) < 3000);
    }
  };
  (_http._WebSocketImpl._fromSocket = function(_socket, protocol, compression, _serverSide = false, deflate = null) {
    let t303;
    if (_socket == null) dart.nullFailed(I[186], 1129, 12, "_socket");
    if (compression == null) dart.nullFailed(I[186], 1129, 55, "compression");
    if (_serverSide == null) dart.nullFailed(I[186], 1130, 13, "_serverSide");
    this[_subscription$0] = null;
    this[___WebSocketImpl__sink] = null;
    this[___WebSocketImpl__sink_isSet] = false;
    this[_readyState] = 0;
    this[_writeClosed] = false;
    this[_closeCode] = null;
    this[_closeReason] = null;
    this[_pingInterval] = null;
    this[_pingTimer] = null;
    this[___WebSocketImpl__consumer] = null;
    this[___WebSocketImpl__consumer_isSet] = false;
    this[_outCloseCode] = null;
    this[_outCloseReason] = null;
    this[_closeTimer] = null;
    this[_deflate$] = null;
    this[_socket$0] = _socket;
    this.protocol = protocol;
    this[_serverSide$] = _serverSide;
    this[_controller$0] = async.StreamController.new({sync: true});
    _http._WebSocketImpl.__proto__.new.call(this);
    this[_consumer] = new _http._WebSocketConsumer.new(this, this[_socket$0]);
    this[_sink] = new _http._StreamSinkImpl.new(this[_consumer]);
    this[_readyState] = 1;
    this[_deflate$] = deflate;
    let transformer = new _http._WebSocketProtocolTransformer.new(this[_serverSide$], deflate);
    let subscription = this[_subscription$0] = transformer.bind(this[_socket$0]).listen(dart.fn(data => {
      if (_http._WebSocketPing.is(data)) {
        if (!dart.test(this[_writeClosed])) this[_consumer].add(new _http._WebSocketPong.new(data.payload));
      } else if (_http._WebSocketPong.is(data)) {
        this.pingInterval = this[_pingInterval];
      } else {
        this[_controller$0].add(data);
      }
    }, T$.dynamicTovoid()), {onError: dart.fn((error, stackTrace) => {
        let t303;
        if (error == null) dart.nullFailed(I[186], 1147, 25, "error");
        if (stackTrace == null) dart.nullFailed(I[186], 1147, 43, "stackTrace");
        t303 = this[_closeTimer];
        t303 == null ? null : t303.cancel();
        if (core.FormatException.is(error)) {
          this[_close$0](1007);
        } else {
          this[_close$0](1002);
        }
        this[_closeCode] = this[_outCloseCode];
        this[_closeReason] = this[_outCloseReason];
        this[_controller$0].close();
      }, T$.ObjectAndStackTraceToNull()), onDone: dart.fn(() => {
        let t303;
        t303 = this[_closeTimer];
        t303 == null ? null : t303.cancel();
        if (this[_readyState] === 1) {
          this[_readyState] = 2;
          if (!dart.test(_http._WebSocketImpl._isReservedStatusCode(transformer.closeCode))) {
            this[_close$0](transformer.closeCode, transformer.closeReason);
          } else {
            this[_close$0]();
          }
          this[_readyState] = 3;
        }
        this[_closeCode] = transformer.closeCode;
        this[_closeReason] = transformer.closeReason;
        this[_controller$0].close();
      }, T$.VoidTovoid()), cancelOnError: true});
    subscription.pause();
    t303 = this[_controller$0];
    (() => {
      t303.onListen = dart.bind(subscription, 'resume');
      t303.onCancel = dart.fn(() => {
        dart.nullCheck(this[_subscription$0]).cancel();
        this[_subscription$0] = null;
      }, T$.VoidToNull());
      t303.onPause = dart.bind(subscription, 'pause');
      t303.onResume = dart.bind(subscription, 'resume');
      return t303;
    })();
    _http._WebSocketImpl._webSockets[$_set](this[_serviceId$], this);
  }).prototype = _http._WebSocketImpl.prototype;
  dart.addTypeTests(_http._WebSocketImpl);
  dart.addTypeCaches(_http._WebSocketImpl);
  _http._WebSocketImpl[dart.implements] = () => [_http.WebSocket];
  dart.setMethodSignature(_http._WebSocketImpl, () => ({
    __proto__: dart.getMethods(_http._WebSocketImpl.__proto__),
    listen: dart.fnType(async.StreamSubscription, [dart.nullable(dart.fnType(dart.void, [dart.dynamic]))], {cancelOnError: dart.nullable(core.bool), onDone: dart.nullable(dart.fnType(dart.void, [])), onError: dart.nullable(core.Function)}, {}),
    add: dart.fnType(dart.void, [dart.nullable(core.Object)]),
    addUtf8Text: dart.fnType(dart.void, [core.List$(core.int)]),
    addError: dart.fnType(dart.void, [core.Object], [dart.nullable(core.StackTrace)]),
    addStream: dart.fnType(async.Future, [dart.nullable(core.Object)]),
    close: dart.fnType(async.Future, [], [dart.nullable(core.int), dart.nullable(core.String)]),
    [_close$0]: dart.fnType(dart.void, [], [dart.nullable(core.int), dart.nullable(core.String)]),
    [_toJSON$]: dart.fnType(core.Map$(core.String, dart.dynamic), [core.bool])
  }));
  dart.setGetterSignature(_http._WebSocketImpl, () => ({
    __proto__: dart.getGetters(_http._WebSocketImpl.__proto__),
    [_sink]: async.StreamSink,
    [_consumer]: _http._WebSocketConsumer,
    pingInterval: dart.nullable(core.Duration),
    readyState: core.int,
    extensions: core.String,
    closeCode: dart.nullable(core.int),
    closeReason: dart.nullable(core.String),
    done: async.Future,
    [_serviceTypePath$]: core.String,
    [_serviceTypeName$]: core.String
  }));
  dart.setSetterSignature(_http._WebSocketImpl, () => ({
    __proto__: dart.getSetters(_http._WebSocketImpl.__proto__),
    [_sink]: async.StreamSink,
    [_consumer]: _http._WebSocketConsumer,
    pingInterval: dart.nullable(core.Duration)
  }));
  dart.setLibraryUri(_http._WebSocketImpl, I[177]);
  dart.setFieldSignature(_http._WebSocketImpl, () => ({
    __proto__: dart.getFields(_http._WebSocketImpl.__proto__),
    protocol: dart.finalFieldType(dart.nullable(core.String)),
    [_controller$0]: dart.finalFieldType(async.StreamController),
    [_subscription$0]: dart.fieldType(dart.nullable(async.StreamSubscription)),
    [___WebSocketImpl__sink]: dart.fieldType(dart.nullable(async.StreamSink)),
    [___WebSocketImpl__sink_isSet]: dart.fieldType(core.bool),
    [_socket$0]: dart.finalFieldType(io.Socket),
    [_serverSide$]: dart.finalFieldType(core.bool),
    [_readyState]: dart.fieldType(core.int),
    [_writeClosed]: dart.fieldType(core.bool),
    [_closeCode]: dart.fieldType(dart.nullable(core.int)),
    [_closeReason]: dart.fieldType(dart.nullable(core.String)),
    [_pingInterval]: dart.fieldType(dart.nullable(core.Duration)),
    [_pingTimer]: dart.fieldType(dart.nullable(async.Timer)),
    [___WebSocketImpl__consumer]: dart.fieldType(dart.nullable(_http._WebSocketConsumer)),
    [___WebSocketImpl__consumer_isSet]: dart.fieldType(core.bool),
    [_outCloseCode]: dart.fieldType(dart.nullable(core.int)),
    [_outCloseReason]: dart.fieldType(dart.nullable(core.String)),
    [_closeTimer]: dart.fieldType(dart.nullable(async.Timer)),
    [_deflate$]: dart.fieldType(dart.nullable(_http._WebSocketPerMessageDeflate))
  }));
  dart.defineLazy(_http._WebSocketImpl, {
    /*_http._WebSocketImpl._webSockets*/get _webSockets() {
      return new (T.LinkedMapOfint$_WebSocketImpl()).new();
    },
    set _webSockets(_) {},
    /*_http._WebSocketImpl.DEFAULT_WINDOW_BITS*/get DEFAULT_WINDOW_BITS() {
      return 15;
    },
    /*_http._WebSocketImpl.PER_MESSAGE_DEFLATE*/get PER_MESSAGE_DEFLATE() {
      return "permessage-deflate";
    },
    /*_http._WebSocketImpl._httpClient*/get _httpClient() {
      return _http.HttpClient.new();
    }
  }, false);
  _http._getHttpVersion = function _getHttpVersion() {
    let version = io.Platform.version;
    let index = version[$indexOf](".", version[$indexOf](".") + 1);
    version = version[$substring](0, index);
    return "Dart/" + dart.str(version) + " (dart:io)";
  };
  dart.defineLazy(_http, {
    /*_http._MASK_8*/get _MASK_8() {
      return 255;
    },
    /*_http._MASK_32*/get _MASK_32() {
      return 4294967295.0;
    },
    /*_http._BITS_PER_BYTE*/get _BITS_PER_BYTE() {
      return 8;
    },
    /*_http._BYTES_PER_WORD*/get _BYTES_PER_WORD() {
      return 4;
    },
    /*_http._nextServiceId*/get _nextServiceId() {
      return 1;
    },
    set _nextServiceId(_) {},
    /*_http._OUTGOING_BUFFER_SIZE*/get _OUTGOING_BUFFER_SIZE() {
      return 8192;
    },
    /*_http._DART_SESSION_ID*/get _DART_SESSION_ID() {
      return "DARTSESSID";
    },
    /*_http._httpOverridesToken*/get _httpOverridesToken() {
      return new core.Object.new();
    },
    /*_http._asyncRunZoned*/get _asyncRunZoned() {
      return C[208] || CT.C208;
    },
    /*_http._webSocketGUID*/get _webSocketGUID() {
      return "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
    },
    /*_http._clientNoContextTakeover*/get _clientNoContextTakeover() {
      return "client_no_context_takeover";
    },
    /*_http._serverNoContextTakeover*/get _serverNoContextTakeover() {
      return "server_no_context_takeover";
    },
    /*_http._clientMaxWindowBits*/get _clientMaxWindowBits() {
      return "client_max_window_bits";
    },
    /*_http._serverMaxWindowBits*/get _serverMaxWindowBits() {
      return "server_max_window_bits";
    }
  }, false);
  dart.setBaseClass(_http._HttpConnection.__proto__, collection.LinkedListEntry$(_http._HttpConnection));
  dart.trackLibraries("dart_sdk", {
    "dart:_runtime": dart,
    "dart:_debugger": _debugger,
    "dart:_foreign_helper": _foreign_helper,
    "dart:_interceptors": _interceptors,
    "dart:_internal": _internal,
    "dart:_isolate_helper": _isolate_helper,
    "dart:_js_helper": _js_helper,
    "dart:_js_primitives": _js_primitives,
    "dart:_metadata": _metadata,
    "dart:_native_typed_data": _native_typed_data,
    "dart:async": async,
    "dart:collection": collection,
    "dart:convert": convert,
    "dart:developer": developer,
    "dart:io": io,
    "dart:isolate": isolate$,
    "dart:js": js,
    "dart:js_util": js_util,
    "dart:math": math,
    "dart:typed_data": typed_data,
    "dart:indexed_db": indexed_db,
    "dart:html": html$,
    "dart:html_common": html_common,
    "dart:svg": svg$,
    "dart:web_audio": web_audio,
    "dart:web_gl": web_gl,
    "dart:web_sql": web_sql,
    "dart:core": core,
    "dart:_http": _http
  }, {
    "dart:_runtime": ["utils.dart", "classes.dart", "rtti.dart", "types.dart", "errors.dart", "operations.dart"],
    "dart:_debugger": ["profile.dart"],
    "dart:_interceptors": ["js_array.dart", "js_number.dart", "js_string.dart"],
    "dart:_internal": ["async_cast.dart", "bytes_builder.dart", "cast.dart", "errors.dart", "iterable.dart", "list.dart", "linked_list.dart", "print.dart", "sort.dart", "symbol.dart"],
    "dart:_js_helper": ["annotations.dart", "linked_hash_map.dart", "identity_hash_map.dart", "custom_hash_map.dart", "native_helper.dart", "regexp_helper.dart", "string_helper.dart", "js_rti.dart"],
    "dart:async": ["async_error.dart", "broadcast_stream_controller.dart", "deferred_load.dart", "future.dart", "future_impl.dart", "schedule_microtask.dart", "stream.dart", "stream_controller.dart", "stream_impl.dart", "stream_pipe.dart", "stream_transformers.dart", "timer.dart", "zone.dart"],
    "dart:collection": ["collections.dart", "hash_map.dart", "hash_set.dart", "iterable.dart", "iterator.dart", "linked_hash_map.dart", "linked_hash_set.dart", "linked_list.dart", "list.dart", "maps.dart", "queue.dart", "set.dart", "splay_tree.dart"],
    "dart:convert": ["ascii.dart", "base64.dart", "byte_conversion.dart", "chunked_conversion.dart", "codec.dart", "converter.dart", "encoding.dart", "html_escape.dart", "json.dart", "latin1.dart", "line_splitter.dart", "string_conversion.dart", "utf.dart"],
    "dart:developer": ["extension.dart", "profiler.dart", "service.dart", "timeline.dart"],
    "dart:io": ["common.dart", "data_transformer.dart", "directory.dart", "directory_impl.dart", "embedder_config.dart", "eventhandler.dart", "file.dart", "file_impl.dart", "file_system_entity.dart", "io_resource_info.dart", "io_sink.dart", "io_service.dart", "link.dart", "namespace_impl.dart", "network_policy.dart", "network_profiling.dart", "overrides.dart", "platform.dart", "platform_impl.dart", "process.dart", "secure_server_socket.dart", "secure_socket.dart", "security_context.dart", "service_object.dart", "socket.dart", "stdio.dart", "string_transformer.dart", "sync_socket.dart"],
    "dart:isolate": ["capability.dart"],
    "dart:math": ["point.dart", "random.dart", "rectangle.dart"],
    "dart:typed_data": ["unmodifiable_typed_data.dart"],
    "dart:html_common": ["css_class_set.dart", "conversions.dart", "conversions_dart2js.dart", "device.dart", "filtered_element_list.dart", "lists.dart"],
    "dart:core": ["annotations.dart", "bigint.dart", "bool.dart", "comparable.dart", "date_time.dart", "double.dart", "duration.dart", "errors.dart", "exceptions.dart", "expando.dart", "function.dart", "identical.dart", "int.dart", "invocation.dart", "iterable.dart", "iterator.dart", "list.dart", "map.dart", "null.dart", "num.dart", "object.dart", "pattern.dart", "print.dart", "regexp.dart", "set.dart", "sink.dart", "stacktrace.dart", "stopwatch.dart", "string.dart", "string_buffer.dart", "string_sink.dart", "symbol.dart", "type.dart", "uri.dart"],
    "dart:_http": ["crypto.dart", "http_date.dart", "http_headers.dart", "http_impl.dart", "http_parser.dart", "http_session.dart", "overrides.dart", "websocket.dart", "websocket_impl.dart"]
  }, null);
  // Exports:
  return {
    dart: dart,
    _debugger: _debugger,
    _foreign_helper: _foreign_helper,
    _interceptors: _interceptors,
    _internal: _internal,
    _isolate_helper: _isolate_helper,
    _js_helper: _js_helper,
    _js_primitives: _js_primitives,
    _metadata: _metadata,
    _native_typed_data: _native_typed_data,
    async: async,
    collection: collection,
    convert: convert,
    developer: developer,
    io: io,
    isolate: isolate$,
    js: js,
    js_util: js_util,
    math: math,
    typed_data: typed_data,
    indexed_db: indexed_db,
    html: html$,
    html_common: html_common,
    svg: svg$,
    web_audio: web_audio,
    web_gl: web_gl,
    web_sql: web_sql,
    core: core,
    _http: _http,
    dartx: dartx
  };
}));

//# sourceMappingURL=dart_sdk.js.map
