// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart = 2.9

import 'regress1751477_lib1.dart' deferred as lib1;
import 'regress1751477_lib2.dart' deferred as lib2;
import 'regress1751477_lib3.dart' deferred as lib3;
import 'regress1751477_lib4.dart' deferred as lib4;
import 'regress1751477_lib5.dart' deferred as lib5;
import 'regress1751477_lib6.dart' deferred as lib6;
import 'regress1751477_lib7.dart' deferred as lib7;
import 'regress1751477_lib8.dart' deferred as lib8;
import 'regress1751477_lib9.dart' deferred as lib9;

main() {
  lib1.loadLibrary().then((_) {
    lib2.loadLibrary().then((_) {
      lib3.loadLibrary().then((_) {
        lib4.loadLibrary().then((_) {
          lib5.loadLibrary().then((_) {
            lib6.loadLibrary().then((_) {
              lib7.loadLibrary().then((_) {
                lib8.loadLibrary().then((_) {
                  lib9.loadLibrary().then((_) {});
                });
              });
            });
          });
        });
      });
    });
  });
}
