diff --git a/core/lib/Drupal/Core/Asset/AssetResolver.php b/core/lib/Drupal/Core/Asset/AssetResolver.php
index 6186d2a..9927049 100644
--- a/core/lib/Drupal/Core/Asset/AssetResolver.php
+++ b/core/lib/Drupal/Core/Asset/AssetResolver.php
@@ -166,6 +166,7 @@ public function getCssAssets(AttachedAssetsInterface $assets, $optimize) {
     uasort($css, 'static::sort');
 
     // Allow themes to remove CSS files by CSS files full path and file name.
+    // @todo Remove in Drupal 9.0.x.
     if ($stylesheet_remove = $theme_info->getStyleSheetsRemove()) {
       foreach ($css as $key => $options) {
         if (isset($stylesheet_remove[$key])) {
diff --git a/core/lib/Drupal/Core/Asset/Exception/InvalidLibrariesOverrideSpecificationException.php b/core/lib/Drupal/Core/Asset/Exception/InvalidLibrariesOverrideSpecificationException.php
new file mode 100644
index 0000000..89667aa
--- /dev/null
+++ b/core/lib/Drupal/Core/Asset/Exception/InvalidLibrariesOverrideSpecificationException.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException.
+ */
+
+namespace Drupal\Core\Asset\Exception;
+
+/**
+ * Defines a custom exception if a definition refers to a non-existent library.
+ */
+class InvalidLibrariesOverrideSpecificationException extends \RuntimeException {
+
+}
diff --git a/core/lib/Drupal/Core/Asset/LibraryDiscovery.php b/core/lib/Drupal/Core/Asset/LibraryDiscovery.php
index 6dd83f7..9b5c6e8 100644
--- a/core/lib/Drupal/Core/Asset/LibraryDiscovery.php
+++ b/core/lib/Drupal/Core/Asset/LibraryDiscovery.php
@@ -9,8 +9,6 @@
 
 use Drupal\Core\Cache\CacheCollectorInterface;
 use Drupal\Core\Cache\CacheTagsInvalidatorInterface;
-use Drupal\Core\Extension\ModuleHandlerInterface;
-use Drupal\Core\Theme\ThemeManagerInterface;
 
 /**
  * Discovers available asset libraries in Drupal.
@@ -87,6 +85,8 @@ public function getLibraryByName($extension, $name) {
    */
   public function clearCachedDefinitions() {
     $this->cacheTagInvalidator->invalidateTags(['library_info']);
+    $this->libraryDefinitions = [];
+    $this->collector->clear();
   }
 
 }
diff --git a/core/lib/Drupal/Core/Asset/LibraryDiscoveryCollector.php b/core/lib/Drupal/Core/Asset/LibraryDiscoveryCollector.php
index 7ab83d5..953e63b 100644
--- a/core/lib/Drupal/Core/Asset/LibraryDiscoveryCollector.php
+++ b/core/lib/Drupal/Core/Asset/LibraryDiscoveryCollector.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Asset;
 
+use Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException;
 use Drupal\Core\Cache\CacheCollector;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Lock\LockBackendInterface;
@@ -79,9 +80,52 @@ protected function getCid() {
    * {@inheritdoc}
    */
   protected function resolveCacheMiss($key) {
-    $this->storage[$key] = $this->discoveryParser->buildByExtension($key);
+    $this->storage[$key] = $this->getLibraryDefinitions($key);
     $this->persist($key);
 
     return $this->storage[$key];
   }
+
+
+  /**
+   * Returns the library definitions for a given extension.
+   *
+   * This also implements libraries-overrides for entire libraries that have
+   * been specified by the LibraryDiscoveryParser.
+   *
+   * @param string $extension
+   *   The name of the extension for which library definitions will be returned.
+   *
+   * @return array
+   *   The library definitions for $extension with overrides applied.
+   *
+   * @throws \Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException
+   */
+  protected function getLibraryDefinitions($extension) {
+    $libraries = $this->discoveryParser->buildByExtension($extension);
+    foreach ($libraries as $name => $definition) {
+      // Handle libraries that are marked for override or removal.
+      // @see \Drupal\Core\Asset\LibraryDiscoveryParser::applyLibrariesOverride()
+      if (isset($definition['override'])) {
+        if ($definition['override'] === FALSE) {
+          // Remove the library definition if FALSE is given.
+          unset($libraries[$name]);
+        }
+        else {
+          // Otherwise replace with existing library definition if it exists.
+          // Throw an exception if it doesn't.
+          list($replacement_extension, $replacement_name) = explode('/', $definition['override']);
+          $replacement_definition = $this->get($replacement_extension);
+          if (isset($replacement_definition[$replacement_name])) {
+            $libraries[$name] = $replacement_definition[$replacement_name];
+          }
+          else {
+            throw new InvalidLibrariesOverrideSpecificationException(sprintf('The specified library %s does not exist.', $definition['override']));
+          }
+        }
+      }
+    }
+    return $libraries;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php b/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
index e6a4376..427640f 100644
--- a/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
+++ b/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
@@ -8,8 +8,10 @@
 namespace Drupal\Core\Asset;
 
 use Drupal\Core\Asset\Exception\IncompleteLibraryDefinitionException;
+use Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException;
 use Drupal\Core\Asset\Exception\InvalidLibraryFileException;
 use Drupal\Core\Asset\Exception\LibraryDefinitionMissingLicenseException;
+use Drupal\Core\Extension\Extension;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Theme\ThemeManagerInterface;
 use Drupal\Component\Serialization\Exception\InvalidDataTypeException;
@@ -88,6 +90,7 @@ public function buildByExtension($extension) {
     }
 
     $libraries = $this->parseLibraryInfo($extension, $path);
+    $libraries = $this->applyLibrariesOverride($libraries, $extension);
 
     foreach ($libraries as $id => &$library) {
       if (!isset($library['js']) && !isset($library['css']) && !isset($library['drupalSettings'])) {
@@ -185,6 +188,13 @@ public function buildByExtension($extension) {
             elseif ($this->fileValidUri($source)) {
               $options['data'] = $source;
             }
+            // A regular URI (e.g., http://example.com/example.js) without
+            // 'external' explicitly specified, which may happen if, e.g.
+            // libraries-override is used.
+            elseif ($this->isValidUri($source)) {
+              $options['type'] = 'external';
+              $options['data'] = $source;
+            }
             // By default, file paths are relative to the registering extension.
             else {
               $options['data'] = $path . '/' . $source;
@@ -314,6 +324,70 @@ protected function parseLibraryInfo($extension, $path) {
   }
 
   /**
+   * Apply libraries overrides specified for the current active theme.
+   *
+   * @param array $libraries
+   *   The libraries definitions.
+   * @param string $extension
+   *   The extension in which these libraries are defined.
+   *
+   * @return array
+   *   The modified libraries definitions.
+   */
+  protected function applyLibrariesOverride($libraries, $extension) {
+    $active_theme = $this->themeManager->getActiveTheme();
+    // ActiveTheme::getLibrariesOverride() returns libraries-overrides for the
+    // current theme as well as all its base themes.
+    $all_libraries_overrides = $active_theme->getLibrariesOverride();
+    foreach ($all_libraries_overrides as $theme_path => $libraries_overrides) {
+      foreach ($libraries as $library_name => $library) {
+        // Process libraries overrides.
+        if (isset($libraries_overrides["$extension/$library_name"])) {
+          // Active theme defines an override for this library.
+          $override_definition = $libraries_overrides["$extension/$library_name"];
+          if (is_string($override_definition) || $override_definition === FALSE) {
+            // A string or boolean definition implies an override (or removal)
+            // for the whole library. Use the override key to specify that this
+            // library will be overridden when it is called.
+            // @see \Drupal\Core\Asset\LibraryDiscovery::getLibraryByName()
+            if ($override_definition) {
+              $libraries[$library_name]['override'] = $override_definition;
+            }
+            else {
+              $libraries[$library_name]['override'] = FALSE;
+            }
+          }
+          elseif (is_array($override_definition)) {
+            // An array definition implies an override for an asset within this
+            // library.
+            foreach ($override_definition as $sub_key => $value) {
+              // Throw an exception if the asset is not properly specified.
+              if (!is_array($value)) {
+                throw new InvalidLibrariesOverrideSpecificationException(sprintf('Library asset %s is not correctly specified. It should be in the form "extension/library_name/sub_key/path/to/asset.js".', "$extension/$library_name/$sub_key"));
+              }
+              if ($sub_key === 'drupalSettings') {
+                // drupalSettings may not be overridden.
+                throw new InvalidLibrariesOverrideSpecificationException(sprintf('drupalSettings may not be overridden in libraries-override. Trying to override %s. Use hook_library_info_alter() instead.', "$extension/$library_name/$sub_key"));
+              }
+              elseif ($sub_key === 'css') {
+                // SMACSS category should be incorporated into the asset name.
+                foreach ($value as $category => $overrides) {
+                  $this->setOverrideValue($libraries[$library_name], [$sub_key, $category], $overrides, $theme_path);
+                }
+              }
+              else {
+                $this->setOverrideValue($libraries[$library_name], [$sub_key], $value, $theme_path);
+              }
+            }
+          }
+        }
+      }
+    }
+
+    return $libraries;
+  }
+
+  /**
    * Wraps drupal_get_path().
    */
   protected function drupalGetPath($type, $name) {
@@ -327,4 +401,67 @@ protected function fileValidUri($source) {
     return file_valid_uri($source);
   }
 
+  /**
+   * Determines if the supplied string is a valid URI.
+   */
+  protected function isValidUri($string) {
+    return count(explode('://', $string)) === 2;
+  }
+
+  /**
+   * Overrides the specified library asset.
+   *
+   * @param array $library
+   *   The containing library definition.
+   * @param array $sub_key
+   *   An array containing the sub-keys specifying the library asset, e.g.
+   *   @code['js']@endcode or @code['css', 'component']@endcode
+   * @param array $overrides
+   *   Specifies the overrides, this is an array where the key is the asset to
+   *   be overridden while the value is overriding asset.
+   */
+  protected function setOverrideValue(array &$library, array $sub_key, array $overrides, $theme_path) {
+    foreach ($overrides as $original => $replacement) {
+      // Get the attributes of the asset to be overridden. If the key does
+      // not exist, then throw an exception.
+      $key_exists = NULL;
+      $parents = array_merge($sub_key, [$original]);
+      // Save the attributes of the library asset to be overridden.
+      $attributes = NestedArray::getValue($library, $parents, $key_exists);
+      if ($key_exists) {
+        // Remove asset to be overridden.
+        NestedArray::unsetValue($library, $parents);
+        // No need to replace if FALSE is specified, since that is a removal.
+        if ($replacement) {
+          // Ensure the replacement path is relative to drupal root.
+          $replacement = $this->resolveThemeAssetPath($theme_path, $replacement);
+          $new_parents = array_merge($sub_key, [$replacement]);
+          // Replace with an override if specified.
+          NestedArray::setValue($library, $new_parents, $attributes);
+        }
+      }
+    }
+  }
+
+  /**
+   * Ensures that a full path is returned for an overriding theme asset.
+   *
+   * @param string $theme_path
+   *   The theme or base theme.
+   * @param string $overriding_asset
+   *   The overriding library asset.
+   *
+   * @return string
+   *   A fully resolved theme asset path relative to the Drupal directory.
+   */
+  protected function resolveThemeAssetPath($theme_path, $overriding_asset) {
+    if ($overriding_asset[0] !== '/' && !$this->isValidUri($overriding_asset)) {
+      // The destination is not an absolute path and it's not a URI (e.g.
+      // public://generated_js/example.js or http://example.com/js/my_js.js), so
+      // it's relative to the theme.
+      return '/' . $theme_path . '/' . $overriding_asset;
+    }
+    return $overriding_asset;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index a723087..5193a75 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -252,6 +252,7 @@ public function rebuildThemeData() {
     // Set defaults for theme info.
     $defaults = array(
       'engine' => 'twig',
+      'base theme' => 'stable',
       'regions' => array(
         'sidebar_first' => 'Left sidebar',
         'sidebar_second' => 'Right sidebar',
@@ -282,6 +283,11 @@ public function rebuildThemeData() {
       $theme->status = (int) isset($installed[$key]);
 
       $theme->info = $this->infoParser->parse($theme->getPathname()) + $defaults;
+      // Remove the default Stable base theme when 'base theme: false' is set in
+      // a theme .info.yml file or the Twig templating engine is not being used.
+      if (empty($theme->info['base theme']) || $theme->info['engine'] != 'twig') {
+        unset($theme->info['base theme']);
+      }
 
       // Add the info file modification time, so it becomes available for
       // contributed modules to use for ordering theme lists.
diff --git a/core/lib/Drupal/Core/Theme/ActiveTheme.php b/core/lib/Drupal/Core/Theme/ActiveTheme.php
index c35afad..2f886d5 100644
--- a/core/lib/Drupal/Core/Theme/ActiveTheme.php
+++ b/core/lib/Drupal/Core/Theme/ActiveTheme.php
@@ -81,6 +81,13 @@ class ActiveTheme {
   protected $regions;
 
   /**
+   * The libraries or library assets overridden by the theme.
+   *
+   * @var array
+   */
+  protected $librariesOverride;
+
+  /**
    * Constructs an ActiveTheme object.
    *
    * @param array $values
@@ -96,6 +103,7 @@ public function __construct(array $values) {
       'extension' => 'html.twig',
       'base_themes' => [],
       'regions' => [],
+      'libraries_override' => [],
     ];
 
     $this->name = $values['name'];
@@ -107,6 +115,7 @@ public function __construct(array $values) {
     $this->extension = $values['extension'];
     $this->baseThemes = $values['base_themes'];
     $this->regions = $values['regions'];
+    $this->librariesOverride = $values['libraries_override'];
   }
 
   /**
@@ -169,6 +178,8 @@ public function getLibraries() {
    * Returns the removed stylesheets by the theme.
    *
    * @return mixed
+   *
+   * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0.
    */
   public function getStyleSheetsRemove() {
     return $this->styleSheetsRemove;
@@ -198,4 +209,14 @@ public function getRegions() {
     return array_keys($this->regions);
   }
 
+  /**
+   * Returns the libraries or library assets overridden by the active theme.
+   *
+   * @return array
+   *   The list of libraries overrides.
+   */
+  public function getLibrariesOverride() {
+    return $this->librariesOverride;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Theme/ThemeInitialization.php b/core/lib/Drupal/Core/Theme/ThemeInitialization.php
index 8b476a2..74ac35c 100644
--- a/core/lib/Drupal/Core/Theme/ThemeInitialization.php
+++ b/core/lib/Drupal/Core/Theme/ThemeInitialization.php
@@ -161,27 +161,27 @@ public function getActiveTheme(Extension $theme, array $base_themes = []) {
     $values['path'] = $theme_path;
     $values['name'] = $theme->getName();
 
-    // Prepare stylesheets from this theme as well as all ancestor themes.
-    // We work it this way so that we can have child themes remove CSS files
-    // easily from parent.
-    $values['stylesheets_remove'] = array();
+    // @todo Remove in Drupal 9.0.x.
+    $values['stylesheets_remove'] = $this->prepareStylesheetsRemove($theme, $base_themes);
 
-    // Grab stylesheets from base theme.
+    // Prepare libraries overrides from this theme and ancestor themes. This
+    // allows child themes to easily remove CSS files from base themes and
+    // modules.
+    $values['libraries_override'] = [];
+
+    // Get libraries overrides declared by base themes.
     foreach ($base_themes as $base) {
-      $base_theme_path = $base->getPath();
-      if (!empty($base->info['stylesheets-remove'])) {
-        foreach ($base->info['stylesheets-remove'] as $css_file) {
-          $css_file = $this->resolveStyleSheetPlaceholders($css_file);
-          $values['stylesheets_remove'][$css_file] = $css_file;
+      if (!empty($base->info['libraries-override'])) {
+        foreach ($base->info['libraries-override'] as $library => $override) {
+          $values['libraries_override'][$base->getPath()][$library] = $override;
         }
       }
     }
 
-    // Add stylesheets used by this theme.
-    if (!empty($theme->info['stylesheets-remove'])) {
-      foreach ($theme->info['stylesheets-remove'] as $css_file) {
-        $css_file = $this->resolveStyleSheetPlaceholders($css_file);
-        $values['stylesheets_remove'][$css_file] = $css_file;
+    // Add libraries overrides declared by this theme.
+    if (!empty($theme->info['libraries-override'])) {
+      foreach ($theme->info['libraries-override'] as $library => $override) {
+        $values['libraries_override'][$theme->getPath()][$library] = $override;
       }
     }
 
@@ -241,6 +241,8 @@ protected function getExtensions() {
    *
    * @return string
    *   CSS file where placeholders are replaced.
+   *
+   * @todo Remove in Drupal 9.0.x.
    */
   protected function resolveStyleSheetPlaceholders($css_file) {
     $token_candidate = explode('/', $css_file)[0];
@@ -256,4 +258,44 @@ protected function resolveStyleSheetPlaceholders($css_file) {
       return str_replace($token_candidate, $extensions[$token]->getPath(), $css_file);
     }
   }
+
+  /**
+   * Prepares stylesheets-remove specified in the *.info.yml file.
+   *
+   * @param \Drupal\Core\Extension\Extension $theme
+   *   The theme extension object.
+   * @param \Drupal\Core\Extension\Extension[] $base_themes
+   *   An array of base themes.
+   *
+   * @return string[]
+   *   The list of stylesheets-remove specified in the *.info.yml file.
+   *
+   * @todo Remove in Drupal 9.0.x.
+   */
+  protected function prepareStylesheetsRemove(Extension $theme, $base_themes) {
+    // Prepare stylesheets from this theme as well as all ancestor themes.
+    // We work it this way so that we can have child themes remove CSS files
+    // easily from parent.
+    $stylesheets_remove = array();
+    // Grab stylesheets from base theme.
+    foreach ($base_themes as $base) {
+      $base_theme_path = $base->getPath();
+      if (!empty($base->info['stylesheets-remove'])) {
+        foreach ($base->info['stylesheets-remove'] as $css_file) {
+          $css_file = $this->resolveStyleSheetPlaceholders($css_file);
+          $stylesheets_remove[$css_file] = $css_file;
+        }
+      }
+    }
+
+    // Add stylesheets used by this theme.
+    if (!empty($theme->info['stylesheets-remove'])) {
+      foreach ($theme->info['stylesheets-remove'] as $css_file) {
+        $css_file = $this->resolveStyleSheetPlaceholders($css_file);
+        $stylesheets_remove[$css_file] = $css_file;
+      }
+    }
+    return $stylesheets_remove;
+  }
+
 }
diff --git a/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php b/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
index 2ddccea..2886258 100644
--- a/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
+++ b/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
@@ -7,39 +7,237 @@
 
 namespace Drupal\system\Tests\Asset;
 
+use Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException;
 use Drupal\simpletest\KernelTestBase;
 
 /**
- * Tests the element info.
+ * Tests the library discovery and library discovery parser.
  *
  * @group Render
  */
 class LibraryDiscoveryIntegrationTest extends KernelTestBase {
 
   /**
+   * The library discovery service.
+   *
+   * @var \Drupal\Core\Asset\LibraryDiscoveryInterface
+   */
+  protected $libraryDiscovery;
+
+  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
 
-    $this->container->get('theme_handler')->install(['test_theme', 'classy']);
+    $this->container->get('theme_installer')->install(['test_theme', 'classy']);
+    $this->libraryDiscovery = $this->container->get('library.discovery');
   }
 
   /**
    * Ensures that the element info can be altered by themes.
    */
   public function testElementInfoByTheme() {
+    $this->activateTheme('test_theme');
+    $this->assertTrue($this->libraryDiscovery->getLibraryByName('test_theme', 'kitten'));
+  }
+
+  /**
+   * Tests that libraries-override are applied to library definitions.
+   */
+  public function testLibrariesOverride() {
+    // Assert some classy libraries that will be overridden or removed.
+    $this->activateTheme('classy');
+    $this->assertAssetInLibrary('core/themes/classy/css/components/button.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('core/themes/classy/css/components/collapse-processed.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('core/themes/classy/css/components/container-inline.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('core/themes/classy/css/components/details.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('core/themes/classy/css/components/dialog.css', 'classy', 'dialog', 'css');
+
+    // Confirmatory assert on core library to be removed.
+    $this->assertTrue($this->libraryDiscovery->getLibraryByName('core', 'drupal.progress'), 'Confirmatory test on "core/drupal.progress"');
+
+    // Activate test theme that defines libraries overrides.
+    $this->activateTheme('test_theme');
+
+    // Assert that entire library was correctly overridden.
+    $this->assertEqual($this->libraryDiscovery->getLibraryByName('core', 'drupal.collapse'), $this->libraryDiscovery->getLibraryByName('test_theme', 'collapse'), 'Entire library correctly overridden.');
+
+    // Assert that classy library assets were correctly overridden or removed.
+    $this->assertNoAssetInLibrary('core/themes/classy/css/components/button.css', 'classy', 'base', 'css');
+    $this->assertNoAssetInLibrary('core/themes/classy/css/components/collapse-processed.css', 'classy', 'base', 'css');
+    $this->assertNoAssetInLibrary('core/themes/classy/css/components/container-inline.css', 'classy', 'base', 'css');
+    $this->assertNoAssetInLibrary('core/themes/classy/css/components/details.css', 'classy', 'base', 'css');
+    $this->assertNoAssetInLibrary('core/themes/classy/css/components/dialog.css', 'classy', 'dialog', 'css');
+
+    $this->assertAssetInLibrary('core/modules/system/tests/themes/test_theme/css/my-button.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('core/modules/system/tests/themes/test_theme/css/my-collapse-processed.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('themes/my_theme/css/my-container-inline.css', 'classy', 'base', 'css');
+    $this->assertAssetInLibrary('themes/my_theme/css/my-details.css', 'classy', 'base', 'css');
+
+    // Assert that entire library was correctly removed.
+    $this->assertFalse($this->libraryDiscovery->getLibraryByName('core', 'drupal.progress'), 'Entire library correctly removed.');
+
+    // Assert that overridden library asset still retains attributes.
+    $library = $this->libraryDiscovery->getLibraryByName('core', 'jquery');
+    foreach ($library['js'] as $definition) {
+      if ($definition['data'] == 'core/modules/system/tests/themes/test_theme/js/collapse.js') {
+        $this->assertTrue($definition['minified'] && $definition['weight'] == -20, 'Previous attributes retained');
+        break;
+      }
+    }
+  }
+
+  /**
+   * Tests libraries-override on drupalSettings.
+   */
+  public function testLibrariesOverrideDrupalSettings() {
+    // Activate test theme that attempts to override drupalSettings.
+    $this->activateTheme('test_theme_libraries_override_with_drupal_settings');
+
+    // Assert that drupalSettings cannot be overridden and throws an exception.
+    try {
+      $this->libraryDiscovery->getLibraryByName('core', 'drupal.ajax');
+      $this->fail('Throw Exception when trying to override drupalSettings');
+    }
+    catch (InvalidLibrariesOverrideSpecificationException $e) {
+      $expected_message = 'drupalSettings may not be overridden in libraries-override. Trying to override core/drupal.ajax/drupalSettings. Use hook_library_info_alter() instead.';
+      $this->assertEqual($e->getMessage(), $expected_message, 'Throw Exception when trying to override drupalSettings');
+    }
+  }
+
+  /**
+   * Tests libraries-override on malformed assets.
+   */
+  public function testLibrariesOverrideMalformedAsset() {
+    // Activate test theme that overrides with a malformed asset.
+    $this->activateTheme('test_theme_libraries_override_with_invalid_asset');
+
+    // Assert that improperly formed asset "specs" throw an exception.
+    try {
+      $this->libraryDiscovery->getLibraryByName('core', 'drupal.dialog');
+      $this->fail('Throw Exception when specifying invalid override');
+    }
+    catch (InvalidLibrariesOverrideSpecificationException $e) {
+      $expected_message = 'Library asset core/drupal.dialog/css is not correctly specified. It should be in the form "extension/library_name/sub_key/path/to/asset.js".';
+      $this->assertEqual($e->getMessage(), $expected_message, 'Throw Exception when specifying invalid override');
+    }
+  }
+
+  /**
+   * Tests library assets with other ways for specifying paths.
+   */
+  public function testLibrariesOverrideOtherAssetLibraryNames() {
+    // Activate a test theme that defines libraries overrides on other types of
+    // assets.
+    $this->activateTheme('test_theme');
+
+    // Assert Drupal-relative paths.
+    $this->assertAssetInLibrary('themes/my_theme/css/dropbutton.css', 'core', 'drupal.dropbutton', 'css');
+
+    // Assert stream wrapper paths.
+    $this->assertAssetInLibrary('public://my_css/vertical-tabs.css', 'core', 'drupal.vertical-tabs', 'css');
+
+    // Assert a protocol-relative URI.
+    $this->assertAssetInLibrary('//my-server/my_theme/css/jquery_ui.css', 'core', 'jquery.ui', 'css');
+
+    // Assert an absolute URI.
+    $this->assertAssetInLibrary('http://example.com/my_theme/css/farbtastic.css', 'core', 'jquery.farbtastic', 'css');
+  }
+
+  /**
+   * Tests that base theme libraries-override still apply in sub themes.
+   */
+  public function testBaseThemeLibrariesOverrideInSubTheme() {
+    // Activate a test theme that has subthemes.
+    $this->activateTheme('test_subtheme');
+
+    // Assert that libraries-override specified in the base theme still applies
+    // in the sub theme.
+    $this->assertNoAssetInLibrary('core/misc/dialog/dialog.js', 'core', 'drupal.dialog', 'js');
+    $this->assertAssetInLibrary('core/modules/system/tests/themes/test_basetheme/css/farbtastic.css', 'core', 'jquery.farbtastic', 'css');
+  }
+
+  /**
+   * Activates a specified theme.
+   *
+   * Installs the theme if not already installed and makes it the active theme.
+   *
+   * @param string $theme_name
+   *   The name of the theme to be activated.
+   */
+  protected function activateTheme($theme_name) {
+    $this->container->get('theme_installer')->install([$theme_name]);
+
     /** @var \Drupal\Core\Theme\ThemeInitializationInterface $theme_initializer */
     $theme_initializer = $this->container->get('theme.initialization');
 
     /** @var \Drupal\Core\Theme\ThemeManagerInterface $theme_manager */
     $theme_manager = $this->container->get('theme.manager');
 
-    /** @var \Drupal\Core\Render\ElementInfoManagerInterface $element_info */
-    $library_discovery = $this->container->get('library.discovery');
+    $theme_manager->setActiveTheme($theme_initializer->getActiveThemeByName($theme_name));
+
+    $this->libraryDiscovery->clearCachedDefinitions();
+  }
+
+  /**
+   * Asserts that the specified asset is in the given library.
+   *
+   * @param string $asset
+   *   The asset file with the path for the file.
+   * @param string $extension
+   *   The extension in which the $library is defined.
+   * @param string $library_name
+   *   Name of the library.
+   * @param mixed $sub_key
+   *   The library sub key where the given asset is defined.
+   * @param string $message
+   *   (optional) A message to display with the assertion.
+   *
+   * @return bool
+   *   TRUE if the specified asset is found in the library.
+   */
+  protected function assertAssetInLibrary($asset, $extension, $library_name, $sub_key, $message = NULL) {
+    if (!isset($message)) {
+      $message = sprintf('Asset %s found in library "%s/%s"', $asset, $extension, $library_name);
+    }
+    $library = $this->libraryDiscovery->getLibraryByName($extension, $library_name);
+    foreach ($library[$sub_key] as $definition) {
+      if ($asset == $definition['data']) {
+        return $this->pass($message);
+      }
+    }
+    return $this->fail($message);
+  }
 
-    $theme_manager->setActiveTheme($theme_initializer->getActiveThemeByName('test_theme'));
-    $this->assertTrue($library_discovery->getLibraryByName('test_theme', 'kitten'));
+  /**
+   * Asserts that the specified asset is not in the given library.
+   *
+   * @param string $asset
+   *   The asset file with the path for the file.
+   * @param string $extension
+   *   The extension in which the $library_name is defined.
+   * @param string $library_name
+   *   Name of the library.
+   * @param mixed $sub_key
+   *   The library sub key where the given asset is defined.
+   * @param string $message
+   *   (optional) A message to display with the assertion.
+   *
+   * @return bool
+   *   TRUE if the specified asset is not found in the library.
+   */
+  protected function assertNoAssetInLibrary($asset, $extension, $library_name, $sub_key, $message = NULL) {
+    if (!isset($message)) {
+      $message = sprintf('Asset %s not found in library "%s/%s"', $asset, $extension, $library_name);
+    }
+    $library = $this->libraryDiscovery->getLibraryByName($extension, $library_name);
+    foreach ($library[$sub_key] as $definition) {
+      if ($asset == $definition['data']) {
+        return $this->fail($message);
+      }
+    }
+    return $this->pass($message);
   }
 
 }
diff --git a/core/modules/system/src/Tests/Theme/StableThemeTest.php b/core/modules/system/src/Tests/Theme/StableThemeTest.php
new file mode 100644
index 0000000..0e2d5a6
--- /dev/null
+++ b/core/modules/system/src/Tests/Theme/StableThemeTest.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Tests\Theme\StableThemeTest.
+ */
+
+namespace Drupal\system\Tests\Theme;
+
+use Drupal\simpletest\KernelTestBase;
+
+/**
+ * Tests the behavior of Stable theme.
+ *
+ * @group Theme
+ */
+class StableThemeTest extends KernelTestBase {
+
+  public static $modules = ['system'];
+
+  /**
+   * The theme handler.
+   *
+   * @var \Drupal\Core\Extension\ThemeHandlerInterface.
+   */
+  protected $themeHandler;
+
+  /**
+   * The theme manager.
+   *
+   * @var \Drupal\Core\Theme\ThemeManagerInterface.
+   */
+  protected $themeManager;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    parent::setUp();
+
+    $this->themeHandler = $this->container->get('theme_handler');
+    $this->themeManager = $this->container->get('theme.manager');
+  }
+
+  /**
+   * Ensure Stable is used by default when no base theme has been defined.
+   */
+  public function testStableIsDefault() {
+    $this->themeHandler->install(['test_stable']);
+    $this->config('system.theme')->set('default', 'test_stable')->save();
+    $theme = $this->themeManager->getActiveTheme();
+    /** @var \Drupal\Core\Theme\ActiveTheme $base_theme */
+    $base_themes = $theme->getBaseThemes();
+    $base_theme = reset($base_themes);
+    $this->assertTrue($base_theme->getName() == 'stable', "Stable theme has been set on if theme haven't decided to opt-out.");
+  }
+
+  /**
+   * Ensure that its possible to disable Stable by setting base theme to false.
+   */
+  public function testWildWest() {
+    $this->themeHandler->install(['test_wild_west']);
+    $this->config('system.theme')->set('default', 'test_wild_west')->save();
+    $theme = $this->themeManager->getActiveTheme();
+    /** @var \Drupal\Core\Theme\ActiveTheme $base_theme */
+    $base_themes = $theme->getBaseThemes();
+    $this->assertTrue(empty($base_themes), 'No base theme has been set.');
+  }
+
+}
diff --git a/core/modules/system/src/Tests/Theme/ThemeTest.php b/core/modules/system/src/Tests/Theme/ThemeTest.php
index c47e022..28d47386 100644
--- a/core/modules/system/src/Tests/Theme/ThemeTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeTest.php
@@ -175,7 +175,7 @@ function testCSSOverride() {
     $config->set('css.preprocess', 0);
     $config->save();
     $this->drupalGet('theme-test/suggestion');
-    $this->assertNoText('system.module.css', 'The theme\'s .info.yml file is able to override a module CSS file from being added to the page.');
+    $this->assertNoText('system.module.css', "The theme's .info.yml file is able to remove a module CSS file from being added to the page.");
 
     // Also test with aggregation enabled, simply ensuring no PHP errors are
     // triggered during drupal_build_css_cache() when a source file doesn't
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 7ec8d0f..ddfd9e0 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -906,6 +906,12 @@ function system_get_info($type, $name = NULL) {
     foreach ($list as $shortname => $item) {
       if (!empty($item->status)) {
         $info[$shortname] = $item->info;
+        // Remove the default Stable base theme when 'base theme: false' is set
+        // in a theme .info.yml file or when the Twig templating engine is not
+        // being used.
+        if ($type == 'theme' && (empty($info[$shortname]['base theme']) || $info[$shortname]['engine'] != 'twig')) {
+          unset($info[$shortname]['base theme']);
+        }
       }
     }
   }
diff --git a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
index dcb1a2f..3bc4478 100644
--- a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
+++ b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
@@ -3,7 +3,16 @@ type: theme
 description: 'Test theme which acts as a base theme for other test subthemes.'
 version: VERSION
 core: 8.x
+base theme: false
 libraries:
   - test_basetheme/global-styling
 stylesheets-remove:
   - '@theme_test/css/base-remove.css'
+libraries-override:
+  core/drupal.dialog:
+    js:
+      misc/dialog/dialog.js: false
+  core/jquery.farbtastic:
+    css:
+      component:
+        assets/vendor/farbtastic/farbtastic.css: css/farbtastic.css
diff --git a/core/modules/system/tests/themes/test_stable/test_stable.info.yml b/core/modules/system/tests/themes/test_stable/test_stable.info.yml
new file mode 100644
index 0000000..52f3fd1
--- /dev/null
+++ b/core/modules/system/tests/themes/test_stable/test_stable.info.yml
@@ -0,0 +1,5 @@
+name: Test Stable
+type: theme
+description: A theme to test that stable is set as the default.
+version: VERSION
+core: 8.x
diff --git a/core/modules/system/tests/themes/test_theme/css/collapse.css b/core/modules/system/tests/themes/test_theme/css/collapse.css
new file mode 100644
index 0000000..23f38b3
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme/css/collapse.css
@@ -0,0 +1,4 @@
+/**
+ * @file
+ * Test CSS asset file for test_theme.theme.
+ */
diff --git a/core/modules/system/tests/themes/test_theme/js/collapse.js b/core/modules/system/tests/themes/test_theme/js/collapse.js
new file mode 100644
index 0000000..4d66841
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme/js/collapse.js
@@ -0,0 +1,4 @@
+/**
+ * @file
+ * Test JS asset file for test_theme.theme.
+ */
diff --git a/core/modules/system/tests/themes/test_theme/test_theme.info.yml b/core/modules/system/tests/themes/test_theme/test_theme.info.yml
index 8f613bf..4c1568c 100644
--- a/core/modules/system/tests/themes/test_theme/test_theme.info.yml
+++ b/core/modules/system/tests/themes/test_theme/test_theme.info.yml
@@ -18,6 +18,49 @@ stylesheets-remove:
   - '@system/css/system.module.css'
 libraries:
   - test_theme/global-styling
+libraries-override:
+  # Replace an entire library.
+  core/drupal.collapse: test_theme/collapse
+  # Remove an entire library.
+  core/drupal.progress: false
+  # Replace particular library assets.
+  classy/base:
+    css:
+      component:
+        css/components/button.css: css/my-button.css
+        css/components/collapse-processed.css: css/my-collapse-processed.css
+        css/components/container-inline.css: /themes/my_theme/css/my-container-inline.css
+        css/components/details.css: /themes/my_theme/css/my-details.css
+  # Remove particular library assets.
+  classy/dialog:
+    css:
+      component:
+        css/components/dialog.css: false
+  # It works for JS as well.
+  core/jquery:
+    js:
+      assets/vendor/jquery/jquery.min.js: js/collapse.js
+  # Use Drupal-relative paths.
+  core/drupal.dropbutton:
+    css:
+      component:
+        misc/dropbutton/dropbutton.css: /themes/my_theme/css/dropbutton.css
+  # Use stream wrappers.
+  core/drupal.vertical-tabs:
+    css:
+      component:
+        misc/vertical-tabs.css: public://my_css/vertical-tabs.css
+  # Use a protocol-relative URI.
+  core/jquery.ui:
+    css:
+      component:
+        assets/vendor/jquery.ui/themes/base/core.css: //my-server/my_theme/css/jquery_ui.css
+  # Use an absolute URI.
+  core/jquery.farbtastic:
+    css:
+      component:
+        assets/vendor/farbtastic/farbtastic.css: http://example.com/my_theme/css/farbtastic.css
+
 regions:
   content: Content
   left: Left
diff --git a/core/modules/system/tests/themes/test_theme/test_theme.libraries.yml b/core/modules/system/tests/themes/test_theme/test_theme.libraries.yml
index c1fe4a5..52bb147 100644
--- a/core/modules/system/tests/themes/test_theme/test_theme.libraries.yml
+++ b/core/modules/system/tests/themes/test_theme/test_theme.libraries.yml
@@ -3,3 +3,11 @@ global-styling:
   css:
     base:
       kitten.css: {}
+
+collapse:
+  version: VERSION
+  js:
+    js/collapse.js: { }
+  css:
+    base:
+      css/collapse.css: { }
diff --git a/core/modules/system/tests/themes/test_theme_libraries_override_with_drupal_settings/test_theme_libraries_override_with_drupal_settings.info.yml b/core/modules/system/tests/themes/test_theme_libraries_override_with_drupal_settings/test_theme_libraries_override_with_drupal_settings.info.yml
new file mode 100644
index 0000000..f55f6d0
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme_libraries_override_with_drupal_settings/test_theme_libraries_override_with_drupal_settings.info.yml
@@ -0,0 +1,12 @@
+name: 'Test theme libraries-override'
+type: theme
+description: 'Theme with drupalSettings libraries-override'
+version: VERSION
+base theme: classy
+core: 8.x
+libraries-override:
+  # drupalSettings libraries override. Should throw a
+  # \Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException.
+  core/drupal.ajax:
+    drupalSettings:
+      ajaxPageState: { }
diff --git a/core/modules/system/tests/themes/test_theme_libraries_override_with_invalid_asset/test_theme_libraries_override_with_invalid_asset.info.yml b/core/modules/system/tests/themes/test_theme_libraries_override_with_invalid_asset/test_theme_libraries_override_with_invalid_asset.info.yml
new file mode 100644
index 0000000..f31ade0
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme_libraries_override_with_invalid_asset/test_theme_libraries_override_with_invalid_asset.info.yml
@@ -0,0 +1,11 @@
+name: 'Test theme libraries-override'
+type: theme
+description: 'Theme with invalid libraries-override asset spec.'
+version: VERSION
+base theme: classy
+core: 8.x
+libraries-override:
+  # A malformed library asset name. Should throw a
+  # \Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException.
+  core/drupal.dialog:
+    css: false
diff --git a/core/modules/system/tests/themes/test_wild_west/test_wild_west.info.yml b/core/modules/system/tests/themes/test_wild_west/test_wild_west.info.yml
new file mode 100644
index 0000000..d1fcb82
--- /dev/null
+++ b/core/modules/system/tests/themes/test_wild_west/test_wild_west.info.yml
@@ -0,0 +1,6 @@
+name: Test Wild West
+type: theme
+description: A theme that doesn't use Stable as its base. It tests the wild west instead.
+version: VERSION
+base theme: false
+core: 8.x
diff --git a/core/profiles/minimal/config/install/block.block.stark_admin.yml b/core/profiles/standard/config/install/block.block.stable_admin.yml
similarity index 85%
copy from core/profiles/minimal/config/install/block.block.stark_admin.yml
copy to core/profiles/standard/config/install/block.block.stable_admin.yml
index d4deb18..07d4f7e 100644
--- a/core/profiles/minimal/config/install/block.block.stark_admin.yml
+++ b/core/profiles/standard/config/install/block.block.stable_admin.yml
@@ -6,11 +6,11 @@ dependencies:
   module:
     - system
   theme:
-    - stark
-id: stark_admin
-theme: stark
+    - stable
+id: stable_admin
+theme: stable
 region: sidebar_first
-weight: 1
+weight: 10
 provider: null
 plugin: 'system_menu_block:admin'
 settings:
diff --git a/core/profiles/standard/config/install/block.block.bartik_branding.yml b/core/profiles/standard/config/install/block.block.stable_branding.yml
similarity index 87%
copy from core/profiles/standard/config/install/block.block.bartik_branding.yml
copy to core/profiles/standard/config/install/block.block.stable_branding.yml
index 6cf70a7..86620cd 100644
--- a/core/profiles/standard/config/install/block.block.bartik_branding.yml
+++ b/core/profiles/standard/config/install/block.block.stable_branding.yml
@@ -4,9 +4,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_branding
-theme: bartik
+    - stable
+id: stable_branding
+theme: stable
 region: header
 weight: 0
 provider: null
diff --git a/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml b/core/profiles/standard/config/install/block.block.stable_breadcrumbs.yml
similarity index 84%
copy from core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml
copy to core/profiles/standard/config/install/block.block.stable_breadcrumbs.yml
index bce3d01..0f3021f 100644
--- a/core/profiles/standard/config/install/block.block.bartik_breadcrumbs.yml
+++ b/core/profiles/standard/config/install/block.block.stable_breadcrumbs.yml
@@ -4,9 +4,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_breadcrumbs
-theme: bartik
+    - stable
+id: stable_breadcrumbs
+theme: stable
 region: breadcrumb
 weight: 0
 provider: null
diff --git a/core/profiles/standard/config/install/block.block.bartik_content.yml b/core/profiles/standard/config/install/block.block.stable_content.yml
similarity index 84%
copy from core/profiles/standard/config/install/block.block.bartik_content.yml
copy to core/profiles/standard/config/install/block.block.stable_content.yml
index b1e0c80..15b1114 100644
--- a/core/profiles/standard/config/install/block.block.bartik_content.yml
+++ b/core/profiles/standard/config/install/block.block.stable_content.yml
@@ -4,9 +4,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_content
-theme: bartik
+    - stable
+id: stable_content
+theme: stable
 region: content
 weight: 0
 provider: null
diff --git a/core/profiles/standard/config/install/block.block.seven_help.yml b/core/profiles/standard/config/install/block.block.stable_help.yml
similarity index 83%
copy from core/profiles/standard/config/install/block.block.seven_help.yml
copy to core/profiles/standard/config/install/block.block.stable_help.yml
index 9a4e218..4cca7c6 100644
--- a/core/profiles/standard/config/install/block.block.seven_help.yml
+++ b/core/profiles/standard/config/install/block.block.stable_help.yml
@@ -4,9 +4,9 @@ dependencies:
   module:
     - help
   theme:
-    - seven
-id: seven_help
-theme: seven
+    - stable
+id: stable_help
+theme: stable
 region: help
 weight: 0
 provider: null
diff --git a/core/profiles/minimal/config/install/block.block.stark_local_actions.yml b/core/profiles/standard/config/install/block.block.stable_local_actions.yml
similarity index 82%
copy from core/profiles/minimal/config/install/block.block.stark_local_actions.yml
copy to core/profiles/standard/config/install/block.block.stable_local_actions.yml
index 66b19e6..48a1e3a 100644
--- a/core/profiles/minimal/config/install/block.block.stark_local_actions.yml
+++ b/core/profiles/standard/config/install/block.block.stable_local_actions.yml
@@ -2,9 +2,9 @@ langcode: en
 status: true
 dependencies:
   theme:
-    - stark
-id: stark_local_actions
-theme: stark
+    - stable
+id: stable_local_actions
+theme: stable
 region: content
 weight: -10
 provider: null
diff --git a/core/profiles/minimal/config/install/block.block.stark_local_tasks.yml b/core/profiles/standard/config/install/block.block.stable_local_tasks.yml
similarity index 83%
copy from core/profiles/minimal/config/install/block.block.stark_local_tasks.yml
copy to core/profiles/standard/config/install/block.block.stable_local_tasks.yml
index df13219..7689fc8 100644
--- a/core/profiles/minimal/config/install/block.block.stark_local_tasks.yml
+++ b/core/profiles/standard/config/install/block.block.stable_local_tasks.yml
@@ -2,9 +2,9 @@ langcode: en
 status: true
 dependencies:
   theme:
-    - stark
-id: stark_local_tasks
-theme: stark
+    - stable
+id: stable_local_tasks
+theme: stable
 region: content
 weight: -20
 provider: null
diff --git a/core/profiles/minimal/config/install/block.block.stark_login.yml b/core/profiles/standard/config/install/block.block.stable_login.yml
similarity index 81%
copy from core/profiles/minimal/config/install/block.block.stark_login.yml
copy to core/profiles/standard/config/install/block.block.stable_login.yml
index 2e4178c..8f84854 100644
--- a/core/profiles/minimal/config/install/block.block.stark_login.yml
+++ b/core/profiles/standard/config/install/block.block.stable_login.yml
@@ -4,11 +4,11 @@ dependencies:
   module:
     - user
   theme:
-    - stark
-id: stark_login
-theme: stark
+    - stable
+id: stable_login
+theme: stable
 region: sidebar_first
-weight: 0
+weight: 20
 provider: null
 plugin: user_login_block
 settings:
diff --git a/core/profiles/standard/config/install/block.block.bartik_main_menu.yml b/core/profiles/standard/config/install/block.block.stable_main_menu.yml
similarity index 87%
copy from core/profiles/standard/config/install/block.block.bartik_main_menu.yml
copy to core/profiles/standard/config/install/block.block.stable_main_menu.yml
index dc7ebec..3316a3f 100644
--- a/core/profiles/standard/config/install/block.block.bartik_main_menu.yml
+++ b/core/profiles/standard/config/install/block.block.stable_main_menu.yml
@@ -6,9 +6,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_main_menu
-theme: bartik
+    - stable
+id: stable_main_menu
+theme: stable
 region: primary_menu
 weight: 0
 provider: null
diff --git a/core/profiles/standard/config/install/block.block.bartik_messages.yml b/core/profiles/standard/config/install/block.block.stable_messages.yml
similarity index 85%
copy from core/profiles/standard/config/install/block.block.bartik_messages.yml
copy to core/profiles/standard/config/install/block.block.stable_messages.yml
index e6bb7d7..7462cb5 100644
--- a/core/profiles/standard/config/install/block.block.bartik_messages.yml
+++ b/core/profiles/standard/config/install/block.block.stable_messages.yml
@@ -4,9 +4,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_messages
-theme: bartik
+    - stable
+id: stable_messages
+theme: stable
 region: highlighted
 weight: 0
 provider: null
diff --git a/core/profiles/minimal/config/install/block.block.stark_page_title.yml b/core/profiles/standard/config/install/block.block.stable_page_title.yml
similarity index 82%
copy from core/profiles/minimal/config/install/block.block.stark_page_title.yml
copy to core/profiles/standard/config/install/block.block.stable_page_title.yml
index d5fe87c..b958b7c 100644
--- a/core/profiles/minimal/config/install/block.block.stark_page_title.yml
+++ b/core/profiles/standard/config/install/block.block.stable_page_title.yml
@@ -2,9 +2,9 @@ langcode: en
 status: true
 dependencies:
   theme:
-    - stark
-id: stark_page_title
-theme: stark
+    - stable
+id: stable_page_title
+theme: stable
 region: content
 weight: -30
 provider: null
diff --git a/core/profiles/standard/config/install/block.block.bartik_search.yml b/core/profiles/standard/config/install/block.block.stable_search.yml
similarity index 81%
copy from core/profiles/standard/config/install/block.block.bartik_search.yml
copy to core/profiles/standard/config/install/block.block.stable_search.yml
index 90b81cb..58b718d 100644
--- a/core/profiles/standard/config/install/block.block.bartik_search.yml
+++ b/core/profiles/standard/config/install/block.block.stable_search.yml
@@ -4,11 +4,11 @@ dependencies:
   module:
     - search
   theme:
-    - bartik
-id: bartik_search
-theme: bartik
+    - stable
+id: stable_search
+theme: stable
 region: sidebar_first
-weight: -1
+weight: -10
 provider: null
 plugin: search_form_block
 settings:
diff --git a/core/profiles/standard/config/install/block.block.bartik_tools.yml b/core/profiles/standard/config/install/block.block.stable_tools.yml
similarity index 88%
copy from core/profiles/standard/config/install/block.block.bartik_tools.yml
copy to core/profiles/standard/config/install/block.block.stable_tools.yml
index 5a2aae5..f1e5a2c 100644
--- a/core/profiles/standard/config/install/block.block.bartik_tools.yml
+++ b/core/profiles/standard/config/install/block.block.stable_tools.yml
@@ -6,9 +6,9 @@ dependencies:
   module:
     - system
   theme:
-    - bartik
-id: bartik_tools
-theme: bartik
+    - stable
+id: stable_tools
+theme: stable
 region: sidebar_first
 weight: 0
 provider: null
diff --git a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
index 9865cb2..2f5ed21 100644
--- a/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryParserTest.php
@@ -73,6 +73,15 @@ protected function setUp() {
 
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
     $this->themeManager = $this->getMock('Drupal\Core\Theme\ThemeManagerInterface');
+    $mock_active_theme = $this->getMockBuilder('Drupal\Core\Theme\ActiveTheme')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $mock_active_theme->expects($this->any())
+      ->method('getLibrariesOverride')
+      ->willReturn([]);
+    $this->themeManager->expects($this->any())
+      ->method('getActiveTheme')
+      ->willReturn($mock_active_theme);
     $this->libraryDiscoveryParser = new TestLibraryDiscoveryParser($this->root, $this->moduleHandler, $this->themeManager);
   }
 
diff --git a/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php b/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
index 0cb5a25..0cd6914 100644
--- a/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
+++ b/core/tests/Drupal/Tests/Core/Theme/RegistryTest.php
@@ -93,7 +93,7 @@ public function testGetRegistryForModule() {
       'engine' => 'twig',
       'owner' => 'twig',
       'stylesheets_remove' => [],
-      'stylesheets_override' => [],
+      'libraries_override' => [],
       'libraries' => [],
       'extension' => '.twig',
       'base_themes' => [],
diff --git a/core/themes/bartik/bartik.info.yml b/core/themes/bartik/bartik.info.yml
index 4ee4487..a74f90c 100644
--- a/core/themes/bartik/bartik.info.yml
+++ b/core/themes/bartik/bartik.info.yml
@@ -31,4 +31,3 @@ regions:
   footer_third: 'Footer third'
   footer_fourth: 'Footer fourth'
   footer_fifth: 'Footer fifth'
-
diff --git a/core/themes/classy/templates/block/block--local-actions-block.html.twig b/core/themes/classy/templates/block/block--local-actions-block.html.twig
index 2a0f5c4..d370eb8 100644
--- a/core/themes/classy/templates/block/block--local-actions-block.html.twig
+++ b/core/themes/classy/templates/block/block--local-actions-block.html.twig
@@ -1,4 +1,4 @@
-{% extends "@block/block.html.twig" %}
+{% extends "@stable/block.html.twig" %}
 {#
 /**
  * @file
diff --git a/core/themes/seven/seven.info.yml b/core/themes/seven/seven.info.yml
index b0911be..b983303 100644
--- a/core/themes/seven/seven.info.yml
+++ b/core/themes/seven/seven.info.yml
@@ -8,8 +8,11 @@ version: VERSION
 core: 8.x
 libraries:
  - seven/global-styling
-stylesheets-remove:
-  - core/assets/vendor/jquery.ui/themes/base/dialog.css
+libraries-override:
+  core/jquery.ui.dialog:
+    css:
+      component:
+        assets/vendor/jquery.ui/themes/base/dialog.css: false
 quickedit_stylesheets:
   - css/components/quickedit.css
 regions:
diff --git a/core/themes/seven/templates/block--local-actions-block.html.twig b/core/themes/seven/templates/block--local-actions-block.html.twig
index 6539758..a9b86bf 100644
--- a/core/themes/seven/templates/block--local-actions-block.html.twig
+++ b/core/themes/seven/templates/block--local-actions-block.html.twig
@@ -1,4 +1,4 @@
-{% extends "@block/block.html.twig" %}
+{% extends "@stable/block.html.twig" %}
 {#
 /**
  * @file
diff --git a/core/modules/block/css/block.admin.css b/core/themes/stable/css/block/block.admin.css
similarity index 100%
copy from core/modules/block/css/block.admin.css
copy to core/themes/stable/css/block/block.admin.css
diff --git a/core/modules/ckeditor/css/ckeditor-iframe.css b/core/themes/stable/css/ckeditor/ckeditor-iframe.css
similarity index 100%
copy from core/modules/ckeditor/css/ckeditor-iframe.css
copy to core/themes/stable/css/ckeditor/ckeditor-iframe.css
diff --git a/core/modules/ckeditor/css/ckeditor.admin.css b/core/themes/stable/css/ckeditor/ckeditor.admin.css
similarity index 100%
copy from core/modules/ckeditor/css/ckeditor.admin.css
copy to core/themes/stable/css/ckeditor/ckeditor.admin.css
diff --git a/core/modules/ckeditor/css/ckeditor.css b/core/themes/stable/css/ckeditor/ckeditor.css
similarity index 100%
copy from core/modules/ckeditor/css/ckeditor.css
copy to core/themes/stable/css/ckeditor/ckeditor.css
diff --git a/core/modules/ckeditor/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css b/core/themes/stable/css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css
similarity index 100%
copy from core/modules/ckeditor/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css
copy to core/themes/stable/css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css
diff --git a/core/modules/color/css/color.admin.css b/core/themes/stable/css/color/color.admin.css
similarity index 92%
copy from core/modules/color/css/color.admin.css
copy to core/themes/stable/css/color/color.admin.css
index 376275e..3dfa0dc 100644
--- a/core/modules/color/css/color.admin.css
+++ b/core/themes/stable/css/color/color.admin.css
@@ -39,12 +39,12 @@
 .color-palette__hook.is-down,
 .color-palette__hook.is-up,
 .color-palette__hook.is-both {
-  background: url(../images/hook.png) no-repeat 100% 0; /* LTR */
+  background: url(../../../../modules/color/images/hook.png) no-repeat 100% 0; /* LTR */
 }
 [dir="rtl"] .color-palette__hook.is-down,
 [dir="rtl"] .color-palette__hook.is-up,
 [dir="rtl"] .color-palette__hook.is-both {
-  background: url(../images/hook-rtl.png) no-repeat 0 0;
+  background: url(../../../../modules/color/images/hook-rtl.png) no-repeat 0 0;
 }
 .color-palette__hook.is-up {
   background-position: 100% -27px; /* LTR */
@@ -67,7 +67,7 @@ button.color-palette__lock,
   float: left; /* LTR */
   width: 20px;
   height: 19px;
-  background: url(../images/lock.png) no-repeat 50% 0;
+  background: url(../../../../modules/color/images/lock.png) no-repeat 50% 0;
   cursor: pointer;
   position: relative;
   top: -1.7em;
diff --git a/core/modules/config_translation/css/config_translation.admin.css b/core/themes/stable/css/config_translation/config_translation.admin.css
similarity index 100%
copy from core/modules/config_translation/css/config_translation.admin.css
copy to core/themes/stable/css/config_translation/config_translation.admin.css
diff --git a/core/modules/content_translation/css/content_translation.admin.css b/core/themes/stable/css/content_translation/content_translation.admin.css
similarity index 100%
copy from core/modules/content_translation/css/content_translation.admin.css
copy to core/themes/stable/css/content_translation/content_translation.admin.css
diff --git a/core/modules/contextual/css/contextual.icons.theme.css b/core/themes/stable/css/contextual/contextual.icons.theme.css
similarity index 65%
copy from core/modules/contextual/css/contextual.icons.theme.css
copy to core/themes/stable/css/contextual/contextual.icons.theme.css
index 7eb3f43..df86dcb 100644
--- a/core/modules/contextual/css/contextual.icons.theme.css
+++ b/core/themes/stable/css/contextual/contextual.icons.theme.css
@@ -7,18 +7,18 @@
  * Toolbar tab icon.
  */
 .toolbar-bar .toolbar-icon-edit:before {
-  background-image: url(../../../misc/icons/bebebe/pencil.svg);
+  background-image: url(../../../../misc/icons/bebebe/pencil.svg);
 }
 .toolbar-bar .toolbar-icon-edit:active:before,
 .toolbar-bar .toolbar-icon-edit.is-active:before {
-  background-image: url(../../../misc/icons/ffffff/pencil.svg);
+  background-image: url(../../../../misc/icons/ffffff/pencil.svg);
 }
 
 /**
  * Contextual trigger.
  */
 .contextual .trigger {
-  background-image: url(../../../misc/icons/bebebe/pencil.svg);
+  background-image: url(../../../../misc/icons/bebebe/pencil.svg);
   background-position: center center;
   background-repeat: no-repeat;
   background-size: 16px 16px;
@@ -30,10 +30,10 @@
 }
 
 .contextual .trigger:hover {
-  background-image: url(../../../misc/icons/787878/pencil.svg);
+  background-image: url(../../../../misc/icons/787878/pencil.svg);
 }
 
 .contextual .trigger:focus {
-  background-image: url(../../../misc/icons/5181c6/pencil.svg);
+  background-image: url(../../../../misc/icons/5181c6/pencil.svg);
   outline: none;
 }
diff --git a/core/modules/contextual/css/contextual.module.css b/core/themes/stable/css/contextual/contextual.module.css
similarity index 100%
copy from core/modules/contextual/css/contextual.module.css
copy to core/themes/stable/css/contextual/contextual.module.css
diff --git a/core/modules/contextual/css/contextual.theme.css b/core/themes/stable/css/contextual/contextual.theme.css
similarity index 100%
copy from core/modules/contextual/css/contextual.theme.css
copy to core/themes/stable/css/contextual/contextual.theme.css
diff --git a/core/modules/contextual/css/contextual.toolbar.css b/core/themes/stable/css/contextual/contextual.toolbar.css
similarity index 100%
copy from core/modules/contextual/css/contextual.toolbar.css
copy to core/themes/stable/css/contextual/contextual.toolbar.css
diff --git a/core/modules/dblog/css/dblog.module.css b/core/themes/stable/css/dblog/dblog.module.css
similarity index 86%
copy from core/modules/dblog/css/dblog.module.css
copy to core/themes/stable/css/dblog/dblog.module.css
index e844e14..1140686 100644
--- a/core/modules/dblog/css/dblog.module.css
+++ b/core/themes/stable/css/dblog/dblog.module.css
@@ -27,11 +27,11 @@
   width: 16px;
 }
 .admin-dblog .dblog-warning .icon {
-  background-image: url(../../../misc/icons/e29700/warning.svg);
+  background-image: url(../../../../misc/icons/e29700/warning.svg);
 }
 .admin-dblog .dblog-error .icon,
 .admin-dblog .dblog-critical .icon,
 .admin-dblog .dblog-alert .icon,
 .admin-dblog .dblog-emergency .icon {
-  background-image: url(../../../misc/icons/e32700/error.svg);
+  background-image: url(../../../../misc/icons/e32700/error.svg);
 }
diff --git a/core/misc/dropbutton/dropbutton.css b/core/themes/stable/css/dropbutton/dropbutton.css
similarity index 100%
copy from core/misc/dropbutton/dropbutton.css
copy to core/themes/stable/css/dropbutton/dropbutton.css
diff --git a/core/modules/editor/css/editor.css b/core/themes/stable/css/editor/editor.css
similarity index 100%
copy from core/modules/editor/css/editor.css
copy to core/themes/stable/css/editor/editor.css
diff --git a/core/modules/field_ui/css/field_ui.admin.css b/core/themes/stable/css/field_ui/field_ui.admin.css
similarity index 100%
copy from core/modules/field_ui/css/field_ui.admin.css
copy to core/themes/stable/css/field_ui/field_ui.admin.css
diff --git a/core/modules/file/css/file.admin.css b/core/themes/stable/css/file/file.admin.css
similarity index 100%
copy from core/modules/file/css/file.admin.css
copy to core/themes/stable/css/file/file.admin.css
diff --git a/core/modules/filter/css/filter.admin.css b/core/themes/stable/css/filter/filter.admin.css
similarity index 95%
copy from core/modules/filter/css/filter.admin.css
copy to core/themes/stable/css/filter/filter.admin.css
index b67a86a..bfe883f 100644
--- a/core/modules/filter/css/filter.admin.css
+++ b/core/themes/stable/css/filter/filter.admin.css
@@ -52,7 +52,7 @@
   display: block;
   width: 16px;
   height: 16px;
-  background: transparent url(../../../misc/help.png);
+  background: transparent url(../../../../misc/help.png);
 }
 [dir="rtl"] .filter-help a:after {
   right: auto;
diff --git a/core/modules/filter/css/filter.caption.css b/core/themes/stable/css/filter/filter.caption.css
similarity index 100%
copy from core/modules/filter/css/filter.caption.css
copy to core/themes/stable/css/filter/filter.caption.css
diff --git a/core/modules/image/css/image.admin.css b/core/themes/stable/css/image/image.admin.css
similarity index 100%
copy from core/modules/image/css/image.admin.css
copy to core/themes/stable/css/image/image.admin.css
diff --git a/core/modules/language/css/language.admin.css b/core/themes/stable/css/language/language.admin.css
similarity index 100%
copy from core/modules/language/css/language.admin.css
copy to core/themes/stable/css/language/language.admin.css
diff --git a/core/modules/locale/css/locale.admin.css b/core/themes/stable/css/locale/locale.admin.css
similarity index 94%
copy from core/modules/locale/css/locale.admin.css
copy to core/themes/stable/css/locale/locale.admin.css
index aa83c8b..aa05e88 100644
--- a/core/modules/locale/css/locale.admin.css
+++ b/core/themes/stable/css/locale/locale.admin.css
@@ -74,12 +74,12 @@
   vertical-align: top;
 }
 .locale-translation-update__wrapper {
-  background: transparent url(../../../misc/menu-collapsed.png) left .6em no-repeat;
+  background: transparent url(../../../../misc/menu-collapsed.png) left .6em no-repeat;
   margin-left: -12px;
   padding-left: 12px;
 }
 .expanded .locale-translation-update__wrapper {
-  background: transparent url(../../../misc/menu-expanded.png) left .6em no-repeat;
+  background: transparent url(../../../../misc/menu-expanded.png) left .6em no-repeat;
 }
 #locale-translation-status-form .description {
   cursor: pointer;
diff --git a/core/modules/menu_ui/css/menu_ui.admin.css b/core/themes/stable/css/menu_ui/menu_ui.admin.css
similarity index 100%
copy from core/modules/menu_ui/css/menu_ui.admin.css
copy to core/themes/stable/css/menu_ui/menu_ui.admin.css
diff --git a/core/misc/print.css b/core/themes/stable/css/misc/print.css
similarity index 100%
copy from core/misc/print.css
copy to core/themes/stable/css/misc/print.css
diff --git a/core/misc/vertical-tabs.css b/core/themes/stable/css/misc/vertical-tabs.css
similarity index 100%
copy from core/misc/vertical-tabs.css
copy to core/themes/stable/css/misc/vertical-tabs.css
diff --git a/core/modules/node/css/node.admin.css b/core/themes/stable/css/node/node.admin.css
similarity index 100%
copy from core/modules/node/css/node.admin.css
copy to core/themes/stable/css/node/node.admin.css
diff --git a/core/modules/node/css/node.module.css b/core/themes/stable/css/node/node.module.css
similarity index 100%
copy from core/modules/node/css/node.module.css
copy to core/themes/stable/css/node/node.module.css
diff --git a/core/modules/node/css/node.preview.css b/core/themes/stable/css/node/node.preview.css
similarity index 100%
copy from core/modules/node/css/node.preview.css
copy to core/themes/stable/css/node/node.preview.css
diff --git a/core/modules/quickedit/css/quickedit.icons.theme.css b/core/themes/stable/css/quickedit/quickedit.icons.theme.css
similarity index 82%
copy from core/modules/quickedit/css/quickedit.icons.theme.css
copy to core/themes/stable/css/quickedit/quickedit.icons.theme.css
index 7845416..0af01ba 100644
--- a/core/modules/quickedit/css/quickedit.icons.theme.css
+++ b/core/themes/stable/css/quickedit/quickedit.icons.theme.css
@@ -56,19 +56,19 @@
  * Images.
  */
 .quickedit .icon-close:before {
-  background-image: url(../../../misc/icons/787878/ex.svg);
+  background-image: url(../../../../misc/icons/787878/ex.svg);
   height: 12px;
   top: 10px;
 }
 .quickedit .icon-close:hover:before,
 .quickedit .icon-close:active:before {
-  background-image: url(../../../misc/icons/000000/ex.svg);
+  background-image: url(../../../../misc/icons/000000/ex.svg);
 }
 .quickedit .icon-throbber:before {
-  background-image: url(../images/icon-throbber.gif);
+  background-image: url(../../../../modules/quickedit/images/icon-throbber.gif);
 }
 .quickedit .icon-pencil:before {
-  background-image: url(../../../misc/icons/5181c6/pencil.svg);
+  background-image: url(../../../../misc/icons/5181c6/pencil.svg);
   background-position: left center;
   background-size: 1.3em;
 }
diff --git a/core/modules/quickedit/css/quickedit.module.css b/core/themes/stable/css/quickedit/quickedit.module.css
similarity index 100%
copy from core/modules/quickedit/css/quickedit.module.css
copy to core/themes/stable/css/quickedit/quickedit.module.css
diff --git a/core/modules/quickedit/css/quickedit.theme.css b/core/themes/stable/css/quickedit/quickedit.theme.css
similarity index 100%
copy from core/modules/quickedit/css/quickedit.theme.css
copy to core/themes/stable/css/quickedit/quickedit.theme.css
diff --git a/core/modules/shortcut/css/shortcut.icons.theme.css b/core/themes/stable/css/shortcut/shortcut.icons.theme.css
similarity index 72%
copy from core/modules/shortcut/css/shortcut.icons.theme.css
copy to core/themes/stable/css/shortcut/shortcut.icons.theme.css
index 99812fd..975f6bf 100644
--- a/core/modules/shortcut/css/shortcut.icons.theme.css
+++ b/core/themes/stable/css/shortcut/shortcut.icons.theme.css
@@ -7,25 +7,25 @@
  * Toolbar tab icon.
  */
 .toolbar-bar .toolbar-icon-shortcut:before {
-  background-image: url(../../../misc/icons/bebebe/star.svg);
+  background-image: url(../../../../misc/icons/bebebe/star.svg);
 }
 .toolbar-bar .toolbar-icon-shortcut:active:before,
 .toolbar-bar .toolbar-icon-shortcut.is-active:before {
-  background-image: url(../../../misc/icons/ffffff/star.svg);
+  background-image: url(../../../../misc/icons/ffffff/star.svg);
 }
 
 /**
  * Add/remove links.
  */
 .shortcut-action__icon {
-  background: transparent url(../images/favstar.svg) no-repeat left top;
+  background: transparent url(../../../../modules/shortcut/images/favstar.svg) no-repeat left top;
   width: 20px;
   height: 20px;
   display: inline-block;
   vertical-align: -2px;
 }
 [dir="rtl"] .shortcut-action__icon {
-  background-image: url(../images/favstar-rtl.svg);
+  background-image: url(../../../../modules/shortcut/images/favstar-rtl.svg);
 }
 .shortcut-action--add:hover .shortcut-action__icon,
 .shortcut-action--add:focus .shortcut-action__icon {
diff --git a/core/modules/shortcut/css/shortcut.theme.css b/core/themes/stable/css/shortcut/shortcut.theme.css
similarity index 100%
copy from core/modules/shortcut/css/shortcut.theme.css
copy to core/themes/stable/css/shortcut/shortcut.theme.css
diff --git a/core/modules/simpletest/css/simpletest.module.css b/core/themes/stable/css/simpletest/simpletest.module.css
similarity index 100%
copy from core/modules/simpletest/css/simpletest.module.css
copy to core/themes/stable/css/simpletest/simpletest.module.css
diff --git a/core/modules/system/css/components/ajax-progress.module.css b/core/themes/stable/css/system/components/ajax-progress.module.css
similarity index 83%
copy from core/modules/system/css/components/ajax-progress.module.css
copy to core/themes/stable/css/system/components/ajax-progress.module.css
index ee56efa..9e33be9 100644
--- a/core/modules/system/css/components/ajax-progress.module.css
+++ b/core/themes/stable/css/system/components/ajax-progress.module.css
@@ -11,7 +11,7 @@
   float: right;
 }
 .ajax-progress-throbber .throbber {
-  background: transparent url(../../../../misc/throbber-active.gif) no-repeat 0px center;
+  background: transparent url(../../../../../misc/throbber-active.gif) no-repeat 0px center;
   display: inline;
   padding: 1px 5px 2px;
 }
@@ -34,7 +34,7 @@ tr .ajax-progress-throbber .throbber {
   top: 48.5%;
   z-index: 1000;
   background-color: #232323;
-  background-image: url(../../../../misc/loading-small.gif);
+  background-image: url(../../../../../misc/loading-small.gif);
   background-position: center center;
   background-repeat: no-repeat;
   border-radius: 7px;
diff --git a/core/modules/system/css/components/align.module.css b/core/themes/stable/css/system/components/align.module.css
similarity index 100%
copy from core/modules/system/css/components/align.module.css
copy to core/themes/stable/css/system/components/align.module.css
diff --git a/core/modules/system/css/components/autocomplete-loading.module.css b/core/themes/stable/css/system/components/autocomplete-loading.module.css
similarity index 77%
copy from core/modules/system/css/components/autocomplete-loading.module.css
copy to core/themes/stable/css/system/components/autocomplete-loading.module.css
index 40d3323..2645cbf 100644
--- a/core/modules/system/css/components/autocomplete-loading.module.css
+++ b/core/themes/stable/css/system/components/autocomplete-loading.module.css
@@ -6,7 +6,7 @@
  */
 
 .js input.form-autocomplete {
-  background-image: url(../../../../misc/throbber-inactive.png);
+  background-image: url(../../../../../misc/throbber-inactive.png);
   background-position: 100% center; /* LTR */
   background-repeat: no-repeat;
 }
@@ -14,7 +14,7 @@
   background-position: 0% center;
 }
 .js input.form-autocomplete.ui-autocomplete-loading {
-  background-image: url(../../../../misc/throbber-active.gif);
+  background-image: url(../../../../../misc/throbber-active.gif);
   background-position: 100% center; /* LTR */
 }
 .js[dir="rtl"] input.form-autocomplete.ui-autocomplete-loading {
diff --git a/core/modules/system/css/components/clearfix.module.css b/core/themes/stable/css/system/components/clearfix.module.css
similarity index 100%
copy from core/modules/system/css/components/clearfix.module.css
copy to core/themes/stable/css/system/components/clearfix.module.css
diff --git a/core/modules/system/css/components/container-inline.module.css b/core/themes/stable/css/system/components/container-inline.module.css
similarity index 100%
copy from core/modules/system/css/components/container-inline.module.css
copy to core/themes/stable/css/system/components/container-inline.module.css
diff --git a/core/modules/system/css/components/details.module.css b/core/themes/stable/css/system/components/details.module.css
similarity index 100%
copy from core/modules/system/css/components/details.module.css
copy to core/themes/stable/css/system/components/details.module.css
diff --git a/core/modules/system/css/components/fieldgroup.module.css b/core/themes/stable/css/system/components/fieldgroup.module.css
similarity index 100%
copy from core/modules/system/css/components/fieldgroup.module.css
copy to core/themes/stable/css/system/components/fieldgroup.module.css
diff --git a/core/modules/system/css/components/hidden.module.css b/core/themes/stable/css/system/components/hidden.module.css
similarity index 100%
copy from core/modules/system/css/components/hidden.module.css
copy to core/themes/stable/css/system/components/hidden.module.css
diff --git a/core/modules/system/css/components/js.module.css b/core/themes/stable/css/system/components/js.module.css
similarity index 100%
copy from core/modules/system/css/components/js.module.css
copy to core/themes/stable/css/system/components/js.module.css
diff --git a/core/modules/system/css/components/nowrap.module.css b/core/themes/stable/css/system/components/nowrap.module.css
similarity index 100%
copy from core/modules/system/css/components/nowrap.module.css
copy to core/themes/stable/css/system/components/nowrap.module.css
diff --git a/core/modules/system/css/components/position-container.module.css b/core/themes/stable/css/system/components/position-container.module.css
similarity index 100%
copy from core/modules/system/css/components/position-container.module.css
copy to core/themes/stable/css/system/components/position-container.module.css
diff --git a/core/modules/system/css/components/progress.module.css b/core/themes/stable/css/system/components/progress.module.css
similarity index 100%
copy from core/modules/system/css/components/progress.module.css
copy to core/themes/stable/css/system/components/progress.module.css
diff --git a/core/modules/system/css/components/reset-appearance.module.css b/core/themes/stable/css/system/components/reset-appearance.module.css
similarity index 100%
copy from core/modules/system/css/components/reset-appearance.module.css
copy to core/themes/stable/css/system/components/reset-appearance.module.css
diff --git a/core/modules/system/css/components/resize.module.css b/core/themes/stable/css/system/components/resize.module.css
similarity index 100%
copy from core/modules/system/css/components/resize.module.css
copy to core/themes/stable/css/system/components/resize.module.css
diff --git a/core/modules/system/css/components/sticky-header.module.css b/core/themes/stable/css/system/components/sticky-header.module.css
similarity index 100%
copy from core/modules/system/css/components/sticky-header.module.css
copy to core/themes/stable/css/system/components/sticky-header.module.css
diff --git a/core/modules/system/css/components/tabledrag.module.css b/core/themes/stable/css/system/components/tabledrag.module.css
similarity index 91%
copy from core/modules/system/css/components/tabledrag.module.css
copy to core/themes/stable/css/system/components/tabledrag.module.css
index 39d7fb1..dfe732d 100644
--- a/core/modules/system/css/components/tabledrag.module.css
+++ b/core/themes/stable/css/system/components/tabledrag.module.css
@@ -37,7 +37,7 @@ a.tabledrag-handle:hover {
   text-decoration: none;
 }
 a.tabledrag-handle .handle {
-  background: url(../../../../misc/icons/787878/move.svg) no-repeat 6px 7px;
+  background: url(../../../../../misc/icons/787878/move.svg) no-repeat 6px 7px;
   height: 14px;
   margin: -0.4em 0.5em 0;
   padding: 0.42em 0.5em;
@@ -45,7 +45,7 @@ a.tabledrag-handle .handle {
 }
 a.tabledrag-handle:hover .handle,
 a.tabledrag-handle:focus .handle {
-  background-image: url(../../../../misc/icons/000000/move.svg);
+  background-image: url(../../../../../misc/icons/000000/move.svg);
 }
 .touch .draggable td {
   padding: 0 10px;
diff --git a/core/modules/system/css/components/tablesort.module.css b/core/themes/stable/css/system/components/tablesort.module.css
similarity index 59%
copy from core/modules/system/css/components/tablesort.module.css
copy to core/themes/stable/css/system/components/tablesort.module.css
index 5e0e711..d4b6b48 100644
--- a/core/modules/system/css/components/tablesort.module.css
+++ b/core/themes/stable/css/system/components/tablesort.module.css
@@ -12,8 +12,8 @@
   background-size: 100%;
 }
 .tablesort--asc {
-  background-image: url(../../../../misc/icons/787878/twistie-down.svg);
+  background-image: url(../../../../../misc/icons/787878/twistie-down.svg);
 }
 .tablesort--desc {
-  background-image: url(../../../../misc/icons/787878/twistie-up.svg);
+  background-image: url(../../../../../misc/icons/787878/twistie-up.svg);
 }
diff --git a/core/themes/stable/css/system/components/tree-child.module.css b/core/themes/stable/css/system/components/tree-child.module.css
new file mode 100644
index 0000000..8af02b9
--- /dev/null
+++ b/core/themes/stable/css/system/components/tree-child.module.css
@@ -0,0 +1,18 @@
+/**
+ * @file
+ * Visual styles for a nested tree child.
+ */
+
+div.tree-child {
+  background: url(../../../../../misc/tree.png) no-repeat 11px center; /* LTR */
+}
+div.tree-child-last {
+  background: url(../../../../../misc/tree-bottom.png) no-repeat 11px center; /* LTR */
+}
+[dir="rtl"] div.tree-child,
+[dir="rtl"] div.tree-child-last {
+  background-position: -65px center;
+}
+div.tree-child-horizontal {
+  background: url(../../../../../misc/tree.png) no-repeat -11px center;
+}
diff --git a/core/modules/system/css/system.admin.css b/core/themes/stable/css/system/system.admin.css
similarity index 95%
copy from core/modules/system/css/system.admin.css
copy to core/themes/stable/css/system/system.admin.css
index b01e405..00cf5c6 100644
--- a/core/modules/system/css/system.admin.css
+++ b/core/themes/stable/css/system/system.admin.css
@@ -178,13 +178,13 @@ small .admin-link:after {
   float: right;
 }
 .module-link-help {
-  background: url(../../../misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;
+  background: url(../../../../misc/icons/787878/questionmark-disc.svg) 0 50% no-repeat;
 }
 .module-link-permissions {
-  background: url(../../../misc/icons/787878/key.svg) 0 50% no-repeat;
+  background: url(../../../../misc/icons/787878/key.svg) 0 50% no-repeat;
 }
 .module-link-configure {
-  background: url(../../../misc/icons/787878/cog.svg) 0 50% no-repeat;
+  background: url(../../../../misc/icons/787878/cog.svg) 0 50% no-repeat;
 }
 
 /* Status report. */
@@ -214,10 +214,10 @@ small .admin-link:after {
   right: 12px;
 }
 .system-status-report__status-icon--error:before {
-  background-image: url(../../../misc/icons/e32700/error.svg);
+  background-image: url(../../../../misc/icons/e32700/error.svg);
 }
 .system-status-report__status-icon--warning:before {
-  background-image: url(../../../misc/icons/e29700/warning.svg);
+  background-image: url(../../../../misc/icons/e29700/warning.svg);
 }
 
 /**
diff --git a/core/modules/system/css/system.diff.css b/core/themes/stable/css/system/system.diff.css
similarity index 100%
copy from core/modules/system/css/system.diff.css
copy to core/themes/stable/css/system/system.diff.css
diff --git a/core/modules/system/css/system.maintenance.css b/core/themes/stable/css/system/system.maintenance.css
similarity index 100%
copy from core/modules/system/css/system.maintenance.css
copy to core/themes/stable/css/system/system.maintenance.css
diff --git a/core/modules/taxonomy/css/taxonomy.theme.css b/core/themes/stable/css/taxonomy/taxonomy.theme.css
similarity index 100%
copy from core/modules/taxonomy/css/taxonomy.theme.css
copy to core/themes/stable/css/taxonomy/taxonomy.theme.css
diff --git a/core/modules/toolbar/css/toolbar.icons.theme.css b/core/themes/stable/css/toolbar/toolbar.icons.theme.css
similarity index 75%
copy from core/modules/toolbar/css/toolbar.icons.theme.css
copy to core/themes/stable/css/toolbar/toolbar.icons.theme.css
index c52f868..7ba95ff 100644
--- a/core/modules/toolbar/css/toolbar.icons.theme.css
+++ b/core/themes/stable/css/toolbar/toolbar.icons.theme.css
@@ -72,78 +72,78 @@
  * Top level icons.
  */
 .toolbar-bar .toolbar-icon-menu:before {
-  background-image: url(../../../misc/icons/bebebe/hamburger.svg);
+  background-image: url(../../../../misc/icons/bebebe/hamburger.svg);
 }
 .toolbar-bar .toolbar-icon-menu:active:before,
 .toolbar-bar .toolbar-icon-menu.is-active:before {
-  background-image: url(../../../misc/icons/ffffff/hamburger.svg);
+  background-image: url(../../../../misc/icons/ffffff/hamburger.svg);
 }
 .toolbar-bar .toolbar-icon-help:before {
-  background-image: url(../../../misc/icons/bebebe/questionmark-disc.svg);
+  background-image: url(../../../../misc/icons/bebebe/questionmark-disc.svg);
 }
 .toolbar-bar .toolbar-icon-help:active:before,
 .toolbar-bar .toolbar-icon-help.is-active:before {
-  background-image: url(../../../misc/icons/ffffff/questionmark-disc.svg);
+  background-image: url(../../../../misc/icons/ffffff/questionmark-disc.svg);
 }
 
 /**
  * Main menu icons.
  */
 .toolbar-icon-system-admin-content:before {
-  background-image: url(../../../misc/icons/787878/file.svg);
+  background-image: url(../../../../misc/icons/787878/file.svg);
 }
 .toolbar-icon-system-admin-content:active:before,
 .toolbar-icon-system-admin-content.is-active:before {
-  background-image: url(../../../misc/icons/000000/file.svg);
+  background-image: url(../../../../misc/icons/000000/file.svg);
 }
 .toolbar-icon-system-admin-structure:before {
-  background-image: url(../../../misc/icons/787878/orgchart.svg);
+  background-image: url(../../../../misc/icons/787878/orgchart.svg);
 }
 .toolbar-icon-system-admin-structure:active:before,
 .toolbar-icon-system-admin-structure.is-active:before {
-  background-image: url(../../../misc/icons/000000/orgchart.svg);
+  background-image: url(../../../../misc/icons/000000/orgchart.svg);
 }
 .toolbar-icon-system-themes-page:before {
-  background-image: url(../../../misc/icons/787878/paintbrush.svg);
+  background-image: url(../../../../misc/icons/787878/paintbrush.svg);
 }
 .toolbar-icon-system-themes-page:active:before,
 .toolbar-icon-system-themes-page.is-active:before {
-  background-image: url(../../../misc/icons/000000/paintbrush.svg);
+  background-image: url(../../../../misc/icons/000000/paintbrush.svg);
 }
 .toolbar-icon-entity-user-collection:before {
-  background-image: url(../../../misc/icons/787878/people.svg);
+  background-image: url(../../../../misc/icons/787878/people.svg);
 }
 .toolbar-icon-entity-user-collection:active:before,
 .toolbar-icon-entity-user-collection.is-active:before {
-  background-image: url(../../../misc/icons/000000/people.svg);
+  background-image: url(../../../../misc/icons/000000/people.svg);
 }
 .toolbar-icon-system-modules-list:before {
-  background-image: url(../../../misc/icons/787878/puzzlepiece.svg);
+  background-image: url(../../../../misc/icons/787878/puzzlepiece.svg);
 }
 .toolbar-icon-system-modules-list:active:before,
 .toolbar-icon-system-modules-list.is-active:before {
-  background-image: url(../../../misc/icons/000000/puzzlepiece.svg);
+  background-image: url(../../../../misc/icons/000000/puzzlepiece.svg);
 }
 .toolbar-icon-system-admin-config:before {
-  background-image: url(../../../misc/icons/787878/wrench.svg);
+  background-image: url(../../../../misc/icons/787878/wrench.svg);
 }
 .toolbar-icon-system-admin-config:active:before,
 .toolbar-icon-system-admin-config.is-active:before {
-  background-image: url(../../../misc/icons/000000/wrench.svg);
+  background-image: url(../../../../misc/icons/000000/wrench.svg);
 }
 .toolbar-icon-system-admin-reports:before {
-  background-image: url(../../../misc/icons/787878/barchart.svg);
+  background-image: url(../../../../misc/icons/787878/barchart.svg);
 }
 .toolbar-icon-system-admin-reports:active:before,
 .toolbar-icon-system-admin-reports.is-active:before {
-  background-image: url(../../../misc/icons/000000/barchart.svg);
+  background-image: url(../../../../misc/icons/000000/barchart.svg);
 }
 .toolbar-icon-help-main:before {
-  background-image: url(../../../misc/icons/787878/questionmark-disc.svg);
+  background-image: url(../../../../misc/icons/787878/questionmark-disc.svg);
 }
 .toolbar-icon-help-main:active:before,
 .toolbar-icon-help-main.is-active:before {
-  background-image: url(../../../misc/icons/000000/questionmark-disc.svg);
+  background-image: url(../../../../misc/icons/000000/questionmark-disc.svg);
 }
 
 @media only screen and (min-width: 16.5em) {
@@ -235,24 +235,24 @@
   right: 1.6667em;
 }
 .toolbar .toolbar-icon.toolbar-handle:before {
-  background-image: url(../../../misc/icons/5181c6/chevron-disc-down.svg);
+  background-image: url(../../../../misc/icons/5181c6/chevron-disc-down.svg);
 }
 .toolbar .toolbar-icon.toolbar-handle.open:before {
-  background-image: url(../../../misc/icons/787878/chevron-disc-up.svg);
+  background-image: url(../../../../misc/icons/787878/chevron-disc-up.svg);
 }
 .toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle:before {
-  background-image: url(../../../misc/icons/5181c6/twistie-down.svg);
+  background-image: url(../../../../misc/icons/5181c6/twistie-down.svg);
   background-size: 75%;
 }
 .toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle.open:before {
-  background-image: url(../../../misc/icons/787878/twistie-up.svg);
+  background-image: url(../../../../misc/icons/787878/twistie-up.svg);
   background-size: 75%;
 }
 .toolbar .toolbar-icon-escape-admin:before {
-  background-image: url(../../../misc/icons/bebebe/chevron-disc-left.svg);
+  background-image: url(../../../../misc/icons/bebebe/chevron-disc-left.svg);
 }
 [dir="rtl"] .toolbar .toolbar-icon-escape-admin:before {
-  background-image: url(../../../misc/icons/bebebe/chevron-disc-right.svg);
+  background-image: url(../../../../misc/icons/bebebe/chevron-disc-right.svg);
 }
 /**
  * Orientation toggle.
@@ -277,24 +277,24 @@
  * specific targeting, setting and unsetting.
  */
 .toolbar .toolbar-toggle-orientation [value="vertical"]:before {
-  background-image: url(../../../misc/icons/bebebe/push-left.svg); /* LTR */
+  background-image: url(../../../../misc/icons/bebebe/push-left.svg); /* LTR */
 }
 .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,
 .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before
  {
-  background-image: url(../../../misc/icons/787878/push-left.svg); /* LTR */
+  background-image: url(../../../../misc/icons/787878/push-left.svg); /* LTR */
 }
 [dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before {
-  background-image: url(../../../misc/icons/bebebe/push-right.svg);
+  background-image: url(../../../../misc/icons/bebebe/push-right.svg);
 }
 [dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,
 [dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before {
-  background-image: url(../../../misc/icons/787878/push-right.svg);
+  background-image: url(../../../../misc/icons/787878/push-right.svg);
 }
 .toolbar .toolbar-toggle-orientation [value="horizontal"]:before {
-  background-image: url(../../../misc/icons/bebebe/push-up.svg);
+  background-image: url(../../../../misc/icons/bebebe/push-up.svg);
 }
 .toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before,
 .toolbar .toolbar-toggle-orientation [value="horizontal"]:focus:before {
-  background-image: url(../../../misc/icons/787878/push-up.svg);
+  background-image: url(../../../../misc/icons/787878/push-up.svg);
 }
diff --git a/core/modules/toolbar/css/toolbar.menu.css b/core/themes/stable/css/toolbar/toolbar.menu.css
similarity index 100%
copy from core/modules/toolbar/css/toolbar.menu.css
copy to core/themes/stable/css/toolbar/toolbar.menu.css
diff --git a/core/modules/toolbar/css/toolbar.module.css b/core/themes/stable/css/toolbar/toolbar.module.css
similarity index 100%
copy from core/modules/toolbar/css/toolbar.module.css
copy to core/themes/stable/css/toolbar/toolbar.module.css
diff --git a/core/modules/toolbar/css/toolbar.theme.css b/core/themes/stable/css/toolbar/toolbar.theme.css
similarity index 100%
copy from core/modules/toolbar/css/toolbar.theme.css
copy to core/themes/stable/css/toolbar/toolbar.theme.css
diff --git a/core/modules/tour/css/tour.module.css b/core/themes/stable/css/tour/tour.module.css
similarity index 100%
copy from core/modules/tour/css/tour.module.css
copy to core/themes/stable/css/tour/tour.module.css
diff --git a/core/modules/update/css/update.admin.theme.css b/core/themes/stable/css/update/update.admin.theme.css
similarity index 100%
copy from core/modules/update/css/update.admin.theme.css
copy to core/themes/stable/css/update/update.admin.theme.css
diff --git a/core/modules/user/css/user.admin.css b/core/themes/stable/css/user/user.admin.css
similarity index 100%
copy from core/modules/user/css/user.admin.css
copy to core/themes/stable/css/user/user.admin.css
diff --git a/core/modules/user/css/user.icons.admin.css b/core/themes/stable/css/user/user.icons.admin.css
similarity index 62%
copy from core/modules/user/css/user.icons.admin.css
copy to core/themes/stable/css/user/user.icons.admin.css
index 66c2366..7df6ba2 100644
--- a/core/modules/user/css/user.icons.admin.css
+++ b/core/themes/stable/css/user/user.icons.admin.css
@@ -7,9 +7,9 @@
  * Toolbar tab icon.
  */
 .toolbar-bar .toolbar-icon-user:before {
-  background-image: url(../../../misc/icons/bebebe/person.svg);
+  background-image: url(../../../../misc/icons/bebebe/person.svg);
 }
 .toolbar-bar .toolbar-icon-user:active:before,
 .toolbar-bar .toolbar-icon-user.is-active:before {
-  background-image: url(../../../misc/icons/ffffff/person.svg);
+  background-image: url(../../../../misc/icons/ffffff/person.svg);
 }
diff --git a/core/modules/user/css/user.module.css b/core/themes/stable/css/user/user.module.css
similarity index 100%
copy from core/modules/user/css/user.module.css
copy to core/themes/stable/css/user/user.module.css
diff --git a/core/modules/views/css/views.module.css b/core/themes/stable/css/views/views.module.css
similarity index 100%
copy from core/modules/views/css/views.module.css
copy to core/themes/stable/css/views/views.module.css
diff --git a/core/modules/views_ui/css/views_ui.admin.css b/core/themes/stable/css/views_ui/views_ui.admin.css
similarity index 100%
copy from core/modules/views_ui/css/views_ui.admin.css
copy to core/themes/stable/css/views_ui/views_ui.admin.css
diff --git a/core/modules/views_ui/css/views_ui.admin.theme.css b/core/themes/stable/css/views_ui/views_ui.admin.theme.css
similarity index 99%
copy from core/modules/views_ui/css/views_ui.admin.theme.css
copy to core/themes/stable/css/views_ui/views_ui.admin.theme.css
index 5dc2e4d..0744f04 100644
--- a/core/modules/views_ui/css/views_ui.admin.theme.css
+++ b/core/themes/stable/css/views_ui/views_ui.admin.theme.css
@@ -25,7 +25,7 @@
 .views-admin .icon,
 .views-admin .icon-text {
   background-attachment: scroll;
-  background-image: url(../images/sprites.png);
+  background-image: url(../../../../modules/views_ui/images/sprites.png);
   background-position: left top; /* LTR */
   background-repeat: no-repeat;
 }
diff --git a/core/modules/views_ui/css/views_ui.contextual.css b/core/themes/stable/css/views_ui/views_ui.contextual.css
similarity index 100%
copy from core/modules/views_ui/css/views_ui.contextual.css
copy to core/themes/stable/css/views_ui/views_ui.contextual.css
diff --git a/core/modules/block/js/block.admin.js b/core/themes/stable/js/block/block.admin.js
similarity index 100%
copy from core/modules/block/js/block.admin.js
copy to core/themes/stable/js/block/block.admin.js
diff --git a/core/modules/block/js/block.js b/core/themes/stable/js/block/block.js
similarity index 100%
copy from core/modules/block/js/block.js
copy to core/themes/stable/js/block/block.js
diff --git a/core/modules/block_content/js/block_content.js b/core/themes/stable/js/block_content/block_content.js
similarity index 100%
copy from core/modules/block_content/js/block_content.js
copy to core/themes/stable/js/block_content/block_content.js
diff --git a/core/modules/book/book.js b/core/themes/stable/js/book/book.js
similarity index 100%
copy from core/modules/book/book.js
copy to core/themes/stable/js/book/book.js
diff --git a/core/modules/ckeditor/js/ckeditor.admin.js b/core/themes/stable/js/ckeditor/ckeditor.admin.js
similarity index 100%
copy from core/modules/ckeditor/js/ckeditor.admin.js
copy to core/themes/stable/js/ckeditor/ckeditor.admin.js
diff --git a/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js b/core/themes/stable/js/ckeditor/ckeditor.drupalimage.admin.js
similarity index 100%
copy from core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
copy to core/themes/stable/js/ckeditor/ckeditor.drupalimage.admin.js
diff --git a/core/modules/ckeditor/js/ckeditor.js b/core/themes/stable/js/ckeditor/ckeditor.js
similarity index 100%
copy from core/modules/ckeditor/js/ckeditor.js
copy to core/themes/stable/js/ckeditor/ckeditor.js
diff --git a/core/modules/ckeditor/js/ckeditor.stylescombo.admin.js b/core/themes/stable/js/ckeditor/ckeditor.stylescombo.admin.js
similarity index 100%
copy from core/modules/ckeditor/js/ckeditor.stylescombo.admin.js
copy to core/themes/stable/js/ckeditor/ckeditor.stylescombo.admin.js
diff --git a/core/modules/ckeditor/js/models/Model.js b/core/themes/stable/js/ckeditor/models/Model.js
similarity index 100%
copy from core/modules/ckeditor/js/models/Model.js
copy to core/themes/stable/js/ckeditor/models/Model.js
diff --git a/core/modules/ckeditor/js/plugins/drupalimage/image.png b/core/themes/stable/js/ckeditor/plugins/drupalimage/image.png
similarity index 98%
copy from core/modules/ckeditor/js/plugins/drupalimage/image.png
copy to core/themes/stable/js/ckeditor/plugins/drupalimage/image.png
index 83cd553..07ddc2e 100644
--- a/core/modules/ckeditor/js/plugins/drupalimage/image.png
+++ b/core/themes/stable/js/ckeditor/plugins/drupalimage/image.png
@@ -1,4 +1,4 @@
-‰PNG
+‰PNG
 
    IHDR         (-S   ØPLTE      ÿÿÿ                        ÿÿÿ            ZZZ```
 
diff --git a/core/modules/ckeditor/js/plugins/drupalimage/plugin.js b/core/themes/stable/js/ckeditor/plugins/drupalimage/plugin.js
similarity index 100%
copy from core/modules/ckeditor/js/plugins/drupalimage/plugin.js
copy to core/themes/stable/js/ckeditor/plugins/drupalimage/plugin.js
diff --git a/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js b/core/themes/stable/js/ckeditor/plugins/drupalimagecaption/plugin.js
similarity index 100%
copy from core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
copy to core/themes/stable/js/ckeditor/plugins/drupalimagecaption/plugin.js
diff --git a/core/modules/ckeditor/js/plugins/drupallink/link.png b/core/themes/stable/js/ckeditor/plugins/drupallink/link.png
similarity index 99%
copy from core/modules/ckeditor/js/plugins/drupallink/link.png
copy to core/themes/stable/js/ckeditor/plugins/drupallink/link.png
index 54e506a..b49cfde 100644
--- a/core/modules/ckeditor/js/plugins/drupallink/link.png
+++ b/core/themes/stable/js/ckeditor/plugins/drupallink/link.png
@@ -1,3 +1,3 @@
-‰PNG
+‰PNG
 
    IHDR         (-S   lPLTE      ÿÿÿÿÿÿ   ÿÿÿ   ÿÿÿÿÿÿÿÿÿ      ÿÿÿXXX]]]ùùùPPPPPPƒƒƒ   ÿÿÿÿÿÿ   öööÿÿÿ      ÿÿÿÿÿÿÿÿÿ   üÀÞ   #tRNS 68abcd€‡˜œ«»¼ÀÂÃÆÈÉËËÌÌÏÐÑÔÞßøgº¤•   hIDATxÚ­ŒG€0Ä Ð{ZæÿdDù Âkå‘ÖùWi ILiå2¨u·ÖÔ±*]ôxèÍ ³½˜y2lÞ„‡ÑÛò¶{mÆ6Çª¤–:`‘á˜¦”‰‘RÞúÆ	2$¢:WYz    IEND®B`‚
\ No newline at end of file
diff --git a/core/modules/ckeditor/js/plugins/drupallink/plugin.js b/core/themes/stable/js/ckeditor/plugins/drupallink/plugin.js
similarity index 100%
copy from core/modules/ckeditor/js/plugins/drupallink/plugin.js
copy to core/themes/stable/js/ckeditor/plugins/drupallink/plugin.js
diff --git a/core/modules/ckeditor/js/plugins/drupallink/unlink.png b/core/themes/stable/js/ckeditor/plugins/drupallink/unlink.png
similarity index 81%
copy from core/modules/ckeditor/js/plugins/drupallink/unlink.png
copy to core/themes/stable/js/ckeditor/plugins/drupallink/unlink.png
index 64056ad..de912d1 100644
--- a/core/modules/ckeditor/js/plugins/drupallink/unlink.png
+++ b/core/themes/stable/js/ckeditor/plugins/drupallink/unlink.png
@@ -1,4 +1,4 @@
-‰PNG
+‰PNG
 
    IHDR         µú7ê   ÿIDAT(‘c`€•!‘á4Ã0l`¨‡²NEY!
 Ù/þ¿÷ÿ‚¤ ¬ÿ÷Ù/•€ÁéŸ«™N@õÁ!ã‰ï«¦€Áÿÿÿ¿êÃ¯gÀ¢w!
diff --git a/core/modules/ckeditor/js/views/AuralView.js b/core/themes/stable/js/ckeditor/views/AuralView.js
similarity index 100%
copy from core/modules/ckeditor/js/views/AuralView.js
copy to core/themes/stable/js/ckeditor/views/AuralView.js
diff --git a/core/modules/ckeditor/js/views/ControllerView.js b/core/themes/stable/js/ckeditor/views/ControllerView.js
similarity index 100%
copy from core/modules/ckeditor/js/views/ControllerView.js
copy to core/themes/stable/js/ckeditor/views/ControllerView.js
diff --git a/core/modules/ckeditor/js/views/KeyboardView.js b/core/themes/stable/js/ckeditor/views/KeyboardView.js
similarity index 100%
copy from core/modules/ckeditor/js/views/KeyboardView.js
copy to core/themes/stable/js/ckeditor/views/KeyboardView.js
diff --git a/core/modules/ckeditor/js/views/VisualView.js b/core/themes/stable/js/ckeditor/views/VisualView.js
similarity index 100%
copy from core/modules/ckeditor/js/views/VisualView.js
copy to core/themes/stable/js/ckeditor/views/VisualView.js
diff --git a/core/modules/color/color.js b/core/themes/stable/js/color/color.js
similarity index 100%
copy from core/modules/color/color.js
copy to core/themes/stable/js/color/color.js
diff --git a/core/modules/color/preview.js b/core/themes/stable/js/color/preview.js
similarity index 100%
copy from core/modules/color/preview.js
copy to core/themes/stable/js/color/preview.js
diff --git a/core/modules/comment/js/comment-by-viewer.js b/core/themes/stable/js/comment/comment-by-viewer.js
similarity index 100%
copy from core/modules/comment/js/comment-by-viewer.js
copy to core/themes/stable/js/comment/comment-by-viewer.js
diff --git a/core/modules/comment/comment-entity-form.js b/core/themes/stable/js/comment/comment-entity-form.js
similarity index 100%
copy from core/modules/comment/comment-entity-form.js
copy to core/themes/stable/js/comment/comment-entity-form.js
diff --git a/core/modules/comment/js/comment-new-indicator.js b/core/themes/stable/js/comment/comment-new-indicator.js
similarity index 100%
copy from core/modules/comment/js/comment-new-indicator.js
copy to core/themes/stable/js/comment/comment-new-indicator.js
diff --git a/core/modules/comment/js/node-new-comments-link.js b/core/themes/stable/js/comment/node-new-comments-link.js
similarity index 100%
copy from core/modules/comment/js/node-new-comments-link.js
copy to core/themes/stable/js/comment/node-new-comments-link.js
diff --git a/core/modules/content_translation/content_translation.admin.js b/core/themes/stable/js/content_translation/content_translation.admin.js
similarity index 100%
copy from core/modules/content_translation/content_translation.admin.js
copy to core/themes/stable/js/content_translation/content_translation.admin.js
diff --git a/core/modules/contextual/js/contextual.js b/core/themes/stable/js/contextual/contextual.js
similarity index 100%
copy from core/modules/contextual/js/contextual.js
copy to core/themes/stable/js/contextual/contextual.js
diff --git a/core/modules/contextual/js/contextual.toolbar.js b/core/themes/stable/js/contextual/contextual.toolbar.js
similarity index 100%
copy from core/modules/contextual/js/contextual.toolbar.js
copy to core/themes/stable/js/contextual/contextual.toolbar.js
diff --git a/core/modules/contextual/js/models/StateModel.js b/core/themes/stable/js/contextual/models/StateModel.js
similarity index 100%
copy from core/modules/contextual/js/models/StateModel.js
copy to core/themes/stable/js/contextual/models/StateModel.js
diff --git a/core/modules/contextual/js/toolbar/models/StateModel.js b/core/themes/stable/js/contextual/toolbar/models/StateModel.js
similarity index 100%
copy from core/modules/contextual/js/toolbar/models/StateModel.js
copy to core/themes/stable/js/contextual/toolbar/models/StateModel.js
diff --git a/core/modules/contextual/js/toolbar/views/AuralView.js b/core/themes/stable/js/contextual/toolbar/views/AuralView.js
similarity index 100%
copy from core/modules/contextual/js/toolbar/views/AuralView.js
copy to core/themes/stable/js/contextual/toolbar/views/AuralView.js
diff --git a/core/modules/contextual/js/toolbar/views/VisualView.js b/core/themes/stable/js/contextual/toolbar/views/VisualView.js
similarity index 100%
copy from core/modules/contextual/js/toolbar/views/VisualView.js
copy to core/themes/stable/js/contextual/toolbar/views/VisualView.js
diff --git a/core/modules/contextual/js/views/AuralView.js b/core/themes/stable/js/contextual/views/AuralView.js
similarity index 100%
copy from core/modules/contextual/js/views/AuralView.js
copy to core/themes/stable/js/contextual/views/AuralView.js
diff --git a/core/modules/contextual/js/views/KeyboardView.js b/core/themes/stable/js/contextual/views/KeyboardView.js
similarity index 100%
copy from core/modules/contextual/js/views/KeyboardView.js
copy to core/themes/stable/js/contextual/views/KeyboardView.js
diff --git a/core/modules/contextual/js/views/RegionView.js b/core/themes/stable/js/contextual/views/RegionView.js
similarity index 100%
copy from core/modules/contextual/js/views/RegionView.js
copy to core/themes/stable/js/contextual/views/RegionView.js
diff --git a/core/modules/contextual/js/views/VisualView.js b/core/themes/stable/js/contextual/views/VisualView.js
similarity index 100%
copy from core/modules/contextual/js/views/VisualView.js
copy to core/themes/stable/js/contextual/views/VisualView.js
diff --git a/core/misc/dialog/dialog.ajax.js b/core/themes/stable/js/dialog/dialog.ajax.js
similarity index 100%
copy from core/misc/dialog/dialog.ajax.js
copy to core/themes/stable/js/dialog/dialog.ajax.js
diff --git a/core/misc/dialog/dialog.jquery-ui.js b/core/themes/stable/js/dialog/dialog.jquery-ui.js
similarity index 100%
copy from core/misc/dialog/dialog.jquery-ui.js
copy to core/themes/stable/js/dialog/dialog.jquery-ui.js
diff --git a/core/misc/dialog/dialog.js b/core/themes/stable/js/dialog/dialog.js
similarity index 100%
copy from core/misc/dialog/dialog.js
copy to core/themes/stable/js/dialog/dialog.js
diff --git a/core/misc/dialog/dialog.position.js b/core/themes/stable/js/dialog/dialog.position.js
similarity index 100%
copy from core/misc/dialog/dialog.position.js
copy to core/themes/stable/js/dialog/dialog.position.js
diff --git a/core/misc/dropbutton/dropbutton.js b/core/themes/stable/js/dropbutton/dropbutton.js
similarity index 100%
copy from core/misc/dropbutton/dropbutton.js
copy to core/themes/stable/js/dropbutton/dropbutton.js
diff --git a/core/modules/editor/js/editor.admin.js b/core/themes/stable/js/editor/editor.admin.js
similarity index 100%
copy from core/modules/editor/js/editor.admin.js
copy to core/themes/stable/js/editor/editor.admin.js
diff --git a/core/modules/editor/js/editor.dialog.js b/core/themes/stable/js/editor/editor.dialog.js
similarity index 100%
copy from core/modules/editor/js/editor.dialog.js
copy to core/themes/stable/js/editor/editor.dialog.js
diff --git a/core/modules/editor/js/editor.formattedTextEditor.js b/core/themes/stable/js/editor/editor.formattedTextEditor.js
similarity index 100%
copy from core/modules/editor/js/editor.formattedTextEditor.js
copy to core/themes/stable/js/editor/editor.formattedTextEditor.js
diff --git a/core/modules/editor/js/editor.js b/core/themes/stable/js/editor/editor.js
similarity index 100%
copy from core/modules/editor/js/editor.js
copy to core/themes/stable/js/editor/editor.js
diff --git a/core/modules/field_ui/field_ui.js b/core/themes/stable/js/field_ui/field_ui.js
similarity index 100%
copy from core/modules/field_ui/field_ui.js
copy to core/themes/stable/js/field_ui/field_ui.js
diff --git a/core/modules/file/file.js b/core/themes/stable/js/file/file.js
similarity index 100%
copy from core/modules/file/file.js
copy to core/themes/stable/js/file/file.js
diff --git a/core/modules/filter/filter.admin.js b/core/themes/stable/js/filter/filter.admin.js
similarity index 100%
copy from core/modules/filter/filter.admin.js
copy to core/themes/stable/js/filter/filter.admin.js
diff --git a/core/modules/filter/filter.api.php b/core/themes/stable/js/filter/filter.api.php
similarity index 100%
copy from core/modules/filter/filter.api.php
copy to core/themes/stable/js/filter/filter.api.php
diff --git a/core/modules/filter/filter.filter_html.admin.js b/core/themes/stable/js/filter/filter.filter_html.admin.js
similarity index 100%
copy from core/modules/filter/filter.filter_html.admin.js
copy to core/themes/stable/js/filter/filter.filter_html.admin.js
diff --git a/core/modules/filter/filter.js b/core/themes/stable/js/filter/filter.js
similarity index 100%
copy from core/modules/filter/filter.js
copy to core/themes/stable/js/filter/filter.js
diff --git a/core/modules/history/js/history.js b/core/themes/stable/js/history/history.js
similarity index 100%
copy from core/modules/history/js/history.js
copy to core/themes/stable/js/history/history.js
diff --git a/core/modules/history/js/mark-as-read.js b/core/themes/stable/js/history/mark-as-read.js
similarity index 100%
copy from core/modules/history/js/mark-as-read.js
copy to core/themes/stable/js/history/mark-as-read.js
diff --git a/core/modules/language/language.admin.js b/core/themes/stable/js/language/language.admin.js
similarity index 100%
copy from core/modules/language/language.admin.js
copy to core/themes/stable/js/language/language.admin.js
diff --git a/core/modules/locale/locale.admin.js b/core/themes/stable/js/locale/locale.admin.js
similarity index 100%
copy from core/modules/locale/locale.admin.js
copy to core/themes/stable/js/locale/locale.admin.js
diff --git a/core/modules/locale/locale.bulk.js b/core/themes/stable/js/locale/locale.bulk.js
similarity index 100%
copy from core/modules/locale/locale.bulk.js
copy to core/themes/stable/js/locale/locale.bulk.js
diff --git a/core/modules/locale/locale.datepicker.js b/core/themes/stable/js/locale/locale.datepicker.js
similarity index 100%
copy from core/modules/locale/locale.datepicker.js
copy to core/themes/stable/js/locale/locale.datepicker.js
diff --git a/core/modules/menu_ui/menu_ui.admin.js b/core/themes/stable/js/menu_ui/menu_ui.admin.js
similarity index 100%
copy from core/modules/menu_ui/menu_ui.admin.js
copy to core/themes/stable/js/menu_ui/menu_ui.admin.js
diff --git a/core/modules/menu_ui/menu_ui.js b/core/themes/stable/js/menu_ui/menu_ui.js
similarity index 100%
copy from core/modules/menu_ui/menu_ui.js
copy to core/themes/stable/js/menu_ui/menu_ui.js
diff --git a/core/misc/active-link.js b/core/themes/stable/js/misc/active-link.js
similarity index 100%
copy from core/misc/active-link.js
copy to core/themes/stable/js/misc/active-link.js
diff --git a/core/misc/ajax.js b/core/themes/stable/js/misc/ajax.js
similarity index 100%
copy from core/misc/ajax.js
copy to core/themes/stable/js/misc/ajax.js
diff --git a/core/misc/announce.js b/core/themes/stable/js/misc/announce.js
similarity index 100%
copy from core/misc/announce.js
copy to core/themes/stable/js/misc/announce.js
diff --git a/core/misc/autocomplete.js b/core/themes/stable/js/misc/autocomplete.js
similarity index 100%
copy from core/misc/autocomplete.js
copy to core/themes/stable/js/misc/autocomplete.js
diff --git a/core/misc/batch.js b/core/themes/stable/js/misc/batch.js
similarity index 100%
copy from core/misc/batch.js
copy to core/themes/stable/js/misc/batch.js
diff --git a/core/misc/collapse.js b/core/themes/stable/js/misc/collapse.js
similarity index 100%
copy from core/misc/collapse.js
copy to core/themes/stable/js/misc/collapse.js
diff --git a/core/misc/date.js b/core/themes/stable/js/misc/date.js
similarity index 100%
copy from core/misc/date.js
copy to core/themes/stable/js/misc/date.js
diff --git a/core/misc/debounce.js b/core/themes/stable/js/misc/debounce.js
similarity index 100%
copy from core/misc/debounce.js
copy to core/themes/stable/js/misc/debounce.js
diff --git a/core/misc/details-aria.js b/core/themes/stable/js/misc/details-aria.js
similarity index 100%
copy from core/misc/details-aria.js
copy to core/themes/stable/js/misc/details-aria.js
diff --git a/core/misc/displace.js b/core/themes/stable/js/misc/displace.js
similarity index 100%
copy from core/misc/displace.js
copy to core/themes/stable/js/misc/displace.js
diff --git a/core/misc/drupal.js b/core/themes/stable/js/misc/drupal.js
similarity index 100%
copy from core/misc/drupal.js
copy to core/themes/stable/js/misc/drupal.js
diff --git a/core/misc/drupalSettingsLoader.js b/core/themes/stable/js/misc/drupalSettingsLoader.js
similarity index 100%
copy from core/misc/drupalSettingsLoader.js
copy to core/themes/stable/js/misc/drupalSettingsLoader.js
diff --git a/core/misc/form.js b/core/themes/stable/js/misc/form.js
similarity index 100%
copy from core/misc/form.js
copy to core/themes/stable/js/misc/form.js
diff --git a/core/misc/machine-name.js b/core/themes/stable/js/misc/machine-name.js
similarity index 100%
copy from core/misc/machine-name.js
copy to core/themes/stable/js/misc/machine-name.js
diff --git a/core/misc/progress.js b/core/themes/stable/js/misc/progress.js
similarity index 100%
copy from core/misc/progress.js
copy to core/themes/stable/js/misc/progress.js
diff --git a/core/misc/states.js b/core/themes/stable/js/misc/states.js
similarity index 100%
copy from core/misc/states.js
copy to core/themes/stable/js/misc/states.js
diff --git a/core/misc/tabbingmanager.js b/core/themes/stable/js/misc/tabbingmanager.js
similarity index 100%
copy from core/misc/tabbingmanager.js
copy to core/themes/stable/js/misc/tabbingmanager.js
diff --git a/core/misc/tabledrag.js b/core/themes/stable/js/misc/tabledrag.js
similarity index 100%
copy from core/misc/tabledrag.js
copy to core/themes/stable/js/misc/tabledrag.js
diff --git a/core/misc/tableheader.js b/core/themes/stable/js/misc/tableheader.js
similarity index 100%
copy from core/misc/tableheader.js
copy to core/themes/stable/js/misc/tableheader.js
diff --git a/core/misc/tableresponsive.js b/core/themes/stable/js/misc/tableresponsive.js
similarity index 100%
copy from core/misc/tableresponsive.js
copy to core/themes/stable/js/misc/tableresponsive.js
diff --git a/core/misc/tableselect.js b/core/themes/stable/js/misc/tableselect.js
similarity index 100%
copy from core/misc/tableselect.js
copy to core/themes/stable/js/misc/tableselect.js
diff --git a/core/misc/timezone.js b/core/themes/stable/js/misc/timezone.js
similarity index 100%
copy from core/misc/timezone.js
copy to core/themes/stable/js/misc/timezone.js
diff --git a/core/misc/vertical-tabs.js b/core/themes/stable/js/misc/vertical-tabs.js
similarity index 100%
copy from core/misc/vertical-tabs.js
copy to core/themes/stable/js/misc/vertical-tabs.js
diff --git a/core/modules/node/content_types.js b/core/themes/stable/js/node/content_types.js
similarity index 100%
copy from core/modules/node/content_types.js
copy to core/themes/stable/js/node/content_types.js
diff --git a/core/modules/node/node.js b/core/themes/stable/js/node/node.js
similarity index 100%
copy from core/modules/node/node.js
copy to core/themes/stable/js/node/node.js
diff --git a/core/modules/node/node.preview.js b/core/themes/stable/js/node/node.preview.js
similarity index 100%
copy from core/modules/node/node.preview.js
copy to core/themes/stable/js/node/node.preview.js
diff --git a/core/modules/path/path.js b/core/themes/stable/js/path/path.js
similarity index 100%
copy from core/modules/path/path.js
copy to core/themes/stable/js/path/path.js
diff --git a/core/modules/quickedit/js/editors/formEditor.js b/core/themes/stable/js/quickedit/editors/formEditor.js
similarity index 100%
copy from core/modules/quickedit/js/editors/formEditor.js
copy to core/themes/stable/js/quickedit/editors/formEditor.js
diff --git a/core/modules/quickedit/js/editors/plainTextEditor.js b/core/themes/stable/js/quickedit/editors/plainTextEditor.js
similarity index 100%
copy from core/modules/quickedit/js/editors/plainTextEditor.js
copy to core/themes/stable/js/quickedit/editors/plainTextEditor.js
diff --git a/core/modules/quickedit/js/models/AppModel.js b/core/themes/stable/js/quickedit/models/AppModel.js
similarity index 100%
copy from core/modules/quickedit/js/models/AppModel.js
copy to core/themes/stable/js/quickedit/models/AppModel.js
diff --git a/core/modules/quickedit/js/models/BaseModel.js b/core/themes/stable/js/quickedit/models/BaseModel.js
similarity index 100%
copy from core/modules/quickedit/js/models/BaseModel.js
copy to core/themes/stable/js/quickedit/models/BaseModel.js
diff --git a/core/modules/quickedit/js/models/EditorModel.js b/core/themes/stable/js/quickedit/models/EditorModel.js
similarity index 100%
copy from core/modules/quickedit/js/models/EditorModel.js
copy to core/themes/stable/js/quickedit/models/EditorModel.js
diff --git a/core/modules/quickedit/js/models/EntityModel.js b/core/themes/stable/js/quickedit/models/EntityModel.js
similarity index 100%
copy from core/modules/quickedit/js/models/EntityModel.js
copy to core/themes/stable/js/quickedit/models/EntityModel.js
diff --git a/core/modules/quickedit/js/models/FieldModel.js b/core/themes/stable/js/quickedit/models/FieldModel.js
similarity index 100%
copy from core/modules/quickedit/js/models/FieldModel.js
copy to core/themes/stable/js/quickedit/models/FieldModel.js
diff --git a/core/modules/quickedit/js/quickedit.js b/core/themes/stable/js/quickedit/quickedit.js
similarity index 100%
copy from core/modules/quickedit/js/quickedit.js
copy to core/themes/stable/js/quickedit/quickedit.js
diff --git a/core/modules/quickedit/js/theme.js b/core/themes/stable/js/quickedit/theme.js
similarity index 100%
copy from core/modules/quickedit/js/theme.js
copy to core/themes/stable/js/quickedit/theme.js
diff --git a/core/modules/quickedit/js/util.js b/core/themes/stable/js/quickedit/util.js
similarity index 100%
copy from core/modules/quickedit/js/util.js
copy to core/themes/stable/js/quickedit/util.js
diff --git a/core/modules/quickedit/js/views/AppView.js b/core/themes/stable/js/quickedit/views/AppView.js
similarity index 100%
copy from core/modules/quickedit/js/views/AppView.js
copy to core/themes/stable/js/quickedit/views/AppView.js
diff --git a/core/modules/quickedit/js/views/ContextualLinkView.js b/core/themes/stable/js/quickedit/views/ContextualLinkView.js
similarity index 100%
copy from core/modules/quickedit/js/views/ContextualLinkView.js
copy to core/themes/stable/js/quickedit/views/ContextualLinkView.js
diff --git a/core/modules/quickedit/js/views/EditorView.js b/core/themes/stable/js/quickedit/views/EditorView.js
similarity index 100%
copy from core/modules/quickedit/js/views/EditorView.js
copy to core/themes/stable/js/quickedit/views/EditorView.js
diff --git a/core/modules/quickedit/js/views/EntityDecorationView.js b/core/themes/stable/js/quickedit/views/EntityDecorationView.js
similarity index 100%
copy from core/modules/quickedit/js/views/EntityDecorationView.js
copy to core/themes/stable/js/quickedit/views/EntityDecorationView.js
diff --git a/core/modules/quickedit/js/views/EntityToolbarView.js b/core/themes/stable/js/quickedit/views/EntityToolbarView.js
similarity index 100%
copy from core/modules/quickedit/js/views/EntityToolbarView.js
copy to core/themes/stable/js/quickedit/views/EntityToolbarView.js
diff --git a/core/modules/quickedit/js/views/FieldDecorationView.js b/core/themes/stable/js/quickedit/views/FieldDecorationView.js
similarity index 100%
copy from core/modules/quickedit/js/views/FieldDecorationView.js
copy to core/themes/stable/js/quickedit/views/FieldDecorationView.js
diff --git a/core/modules/quickedit/js/views/FieldToolbarView.js b/core/themes/stable/js/quickedit/views/FieldToolbarView.js
similarity index 100%
copy from core/modules/quickedit/js/views/FieldToolbarView.js
copy to core/themes/stable/js/quickedit/views/FieldToolbarView.js
diff --git a/core/modules/responsive_image/js/responsive_image.ajax.js b/core/themes/stable/js/responsive_image/responsive_image.ajax.js
similarity index 100%
copy from core/modules/responsive_image/js/responsive_image.ajax.js
copy to core/themes/stable/js/responsive_image/responsive_image.ajax.js
diff --git a/core/modules/simpletest/simpletest.js b/core/themes/stable/js/simpletest/simpletest.js
similarity index 100%
copy from core/modules/simpletest/simpletest.js
copy to core/themes/stable/js/simpletest/simpletest.js
diff --git a/core/modules/statistics/statistics.js b/core/themes/stable/js/statistics/statistics.js
similarity index 100%
copy from core/modules/statistics/statistics.js
copy to core/themes/stable/js/statistics/statistics.js
diff --git a/core/modules/system/js/system.date.js b/core/themes/stable/js/system/system.date.js
similarity index 100%
copy from core/modules/system/js/system.date.js
copy to core/themes/stable/js/system/system.date.js
diff --git a/core/modules/system/js/system.js b/core/themes/stable/js/system/system.js
similarity index 100%
copy from core/modules/system/js/system.js
copy to core/themes/stable/js/system/system.js
diff --git a/core/modules/system/js/system.modules.js b/core/themes/stable/js/system/system.modules.js
similarity index 100%
copy from core/modules/system/js/system.modules.js
copy to core/themes/stable/js/system/system.modules.js
diff --git a/core/modules/taxonomy/taxonomy.js b/core/themes/stable/js/taxonomy/taxonomy.js
similarity index 100%
copy from core/modules/taxonomy/taxonomy.js
copy to core/themes/stable/js/taxonomy/taxonomy.js
diff --git a/core/modules/text/text.js b/core/themes/stable/js/text/text.js
similarity index 100%
copy from core/modules/text/text.js
copy to core/themes/stable/js/text/text.js
diff --git a/core/modules/toolbar/js/escapeAdmin.js b/core/themes/stable/js/toolbar/escapeAdmin.js
similarity index 100%
copy from core/modules/toolbar/js/escapeAdmin.js
copy to core/themes/stable/js/toolbar/escapeAdmin.js
diff --git a/core/modules/toolbar/js/models/MenuModel.js b/core/themes/stable/js/toolbar/models/MenuModel.js
similarity index 100%
copy from core/modules/toolbar/js/models/MenuModel.js
copy to core/themes/stable/js/toolbar/models/MenuModel.js
diff --git a/core/modules/toolbar/js/models/ToolbarModel.js b/core/themes/stable/js/toolbar/models/ToolbarModel.js
similarity index 100%
copy from core/modules/toolbar/js/models/ToolbarModel.js
copy to core/themes/stable/js/toolbar/models/ToolbarModel.js
diff --git a/core/modules/toolbar/js/toolbar.js b/core/themes/stable/js/toolbar/toolbar.js
similarity index 100%
copy from core/modules/toolbar/js/toolbar.js
copy to core/themes/stable/js/toolbar/toolbar.js
diff --git a/core/modules/toolbar/js/toolbar.menu.js b/core/themes/stable/js/toolbar/toolbar.menu.js
similarity index 100%
copy from core/modules/toolbar/js/toolbar.menu.js
copy to core/themes/stable/js/toolbar/toolbar.menu.js
diff --git a/core/modules/toolbar/js/views/BodyVisualView.js b/core/themes/stable/js/toolbar/views/BodyVisualView.js
similarity index 100%
copy from core/modules/toolbar/js/views/BodyVisualView.js
copy to core/themes/stable/js/toolbar/views/BodyVisualView.js
diff --git a/core/modules/toolbar/js/views/MenuVisualView.js b/core/themes/stable/js/toolbar/views/MenuVisualView.js
similarity index 100%
copy from core/modules/toolbar/js/views/MenuVisualView.js
copy to core/themes/stable/js/toolbar/views/MenuVisualView.js
diff --git a/core/modules/toolbar/js/views/ToolbarAuralView.js b/core/themes/stable/js/toolbar/views/ToolbarAuralView.js
similarity index 100%
copy from core/modules/toolbar/js/views/ToolbarAuralView.js
copy to core/themes/stable/js/toolbar/views/ToolbarAuralView.js
diff --git a/core/modules/toolbar/js/views/ToolbarVisualView.js b/core/themes/stable/js/toolbar/views/ToolbarVisualView.js
similarity index 100%
copy from core/modules/toolbar/js/views/ToolbarVisualView.js
copy to core/themes/stable/js/toolbar/views/ToolbarVisualView.js
diff --git a/core/modules/tour/js/tour.js b/core/themes/stable/js/tour/tour.js
similarity index 100%
copy from core/modules/tour/js/tour.js
copy to core/themes/stable/js/tour/tour.js
diff --git a/core/modules/tracker/js/tracker-history.js b/core/themes/stable/js/tracker/tracker-history.js
similarity index 100%
copy from core/modules/tracker/js/tracker-history.js
copy to core/themes/stable/js/tracker/tracker-history.js
diff --git a/core/modules/user/user.js b/core/themes/stable/js/user/user.js
similarity index 100%
copy from core/modules/user/user.js
copy to core/themes/stable/js/user/user.js
diff --git a/core/modules/user/user.permissions.js b/core/themes/stable/js/user/user.permissions.js
similarity index 100%
copy from core/modules/user/user.permissions.js
copy to core/themes/stable/js/user/user.permissions.js
diff --git a/core/modules/views/js/ajax_view.js b/core/themes/stable/js/views/ajax_view.js
similarity index 100%
copy from core/modules/views/js/ajax_view.js
copy to core/themes/stable/js/views/ajax_view.js
diff --git a/core/modules/views/js/base.js b/core/themes/stable/js/views/base.js
similarity index 100%
copy from core/modules/views/js/base.js
copy to core/themes/stable/js/views/base.js
diff --git a/core/modules/views_ui/js/ajax.js b/core/themes/stable/js/views_ui/ajax.js
similarity index 100%
copy from core/modules/views_ui/js/ajax.js
copy to core/themes/stable/js/views_ui/ajax.js
diff --git a/core/modules/views_ui/js/dialog.views.js b/core/themes/stable/js/views_ui/dialog.views.js
similarity index 100%
copy from core/modules/views_ui/js/dialog.views.js
copy to core/themes/stable/js/views_ui/dialog.views.js
diff --git a/core/modules/views_ui/js/views-admin.js b/core/themes/stable/js/views_ui/views-admin.js
similarity index 100%
copy from core/modules/views_ui/js/views-admin.js
copy to core/themes/stable/js/views_ui/views-admin.js
diff --git a/core/modules/views_ui/js/views_ui.listing.js b/core/themes/stable/js/views_ui/views_ui.listing.js
similarity index 100%
copy from core/modules/views_ui/js/views_ui.listing.js
copy to core/themes/stable/js/views_ui/views_ui.listing.js
diff --git a/core/themes/stark/logo.svg b/core/themes/stable/logo.svg
similarity index 100%
copy from core/themes/stark/logo.svg
copy to core/themes/stable/logo.svg
diff --git a/core/themes/stark/screenshot.png b/core/themes/stable/screenshot.png
similarity index 99%
copy from core/themes/stark/screenshot.png
copy to core/themes/stable/screenshot.png
index c5d1977..6b042e6 100644
--- a/core/themes/stark/screenshot.png
+++ b/core/themes/stable/screenshot.png
@@ -1,4 +1,4 @@
-‰PNG
+‰PNG
 
    IHDR  L  ¶   º[)  úPLTEÿÿÿÿÿÿ   ìììûûü÷÷÷îîîòòòöõõVVVhhhþþÿðððÙØØ¥¥¥ooolllSSS~~~FFFÜÜÜÒÒÒÍÍÍeeeëêêýýýbbbéèèÇÇÈ---wwwttt@@@¿¿¿«««NNNÊÊËšššúúú[[[åääyyyCCC“““´´´®®®ÕÔÔ±±±$#$ºººÄÄÄ]]]æææãããùùù{{|àààÚÚÚÞÞÞ)()PPP‰‰Š¼¼¼×××…††qrq__`   ƒƒ„ÏÏÏ˜—˜œXXXJIJ===:::ôôô•••¨§¨777¢¢¢ˆˆ‡111ÓÖý··¶KKKÂÁÂ545žžŸ;5,+ððÿB<2ªª¨)‹ŒŠ4.%IC9HHHu~÷61C¸·¹1&M/(@^YKPK>9e`SKGW3_Zm90Q.(';"1#|…÷)F‘˜ù RN]=8Håæþzu…royXUcnvö>/dNFcoj]( ÷öÿD<SXPEš¡úÛÜý‰‘ø[cõfbosrdG?^QYõ‘ŒžjdyƒŠøIQô£°XOoŸŒ™keW¢©ú?6XÃÇü²¢©ui‘›“¨„€‘G4vC>L!C»¿ü¬¯ú­¥½v•µ¯Ç‘”‰´¸ûqkƒdlöîÀºÍOCn›ˆŒÏÃÇÉ½ÁÃ¶·™š‘Ä·Âˆuw­©³Œ‚œ§–›~v*'59?ò‘}€BKó+2ñ«™¦ÌÎýbPŽ3]¼¨µi]‹  ¡™YL|†‰vyj£„¯fh]„x§“ŠïãØáÝÑÖkZšcY~ÖÉÒ¯ œujÔÑäÍÇÚ„†~‘{Å¾Ù½¯®¡’Ž$ðº©§XFŒ›Œ¹)Q{~mQ?‚nmCÖÐËzeiurSáÜîq\_]T]hWQçÞØ  éÉÂ´}jsðçõ¨˜Ç}RˆÊ!z   tRNSúŽÃd  y¯IDATxÚìÝ?ÎÓ0Çq9±-ÅRÆØJÕ.•¬*µj«:C³eËbìÈÀ˜Xø³ Ñ…# 8‚#pŽÀˆCóÂ+à•œÒá÷iå¶ûWO“ÈioÀ…ÜBMp©– &øïü=¦nK —‰i3ŸÀEbbÎÀ%b;Ò¨	.Ó6—áLG ÿó|R2YXŸÀ?ÄÔÕEJ¼dL2mrI gÆ´ØùiXxÊœÉ38'¦u¾ëD°à”“¶Œ FÇ”Õ>¥ÐRÇ~âi5ÛÀÈ˜_QˆSFáÑÊ¢&ÓÄ—,Ä)%võ¢„­`LLõ4,‰Tì„ÿxôO%”Ó´&šl¿þ7Ô$‹}B ±1muš¤]ßÐ“‰s±l 6¦:Ïg%øï“IMÝW/!6¦…cW)ý9™Ô:ßc4AlL•“CB™L¢nÛŽš 2&_««”þ<›ãösœÐA\LIÞçsÃdUëò¹'€˜˜T#ØM“I1§]³ÒS™‹'“Ê[çœµÓ4ÿ5™ÊÞð!¬¢hÖ®µØ‹Q1U®cƒ’wR
 zê)U´Úèð´8ƒ¨˜ÖM7¤ÄRêe)›†‚ûÖ˜L+‹Éq11×-%4ÈDÉDÙÛ
@@ -9,7 +9,7 @@
 …†Pò!/ÕR5¿B¤^æ:ííN§Ý,"q]Dc„n§	þpLf7ÆÜø³C,”,¾`ãß¿D-‡\ƒÀÅg†«Ü×£|Aã#çsLnÞ¯¹aŒã—wÎnÌáDÀ>Î/=nÖ$Îahk'†ó¶= Ûö‡­ZÕúª*°ã `›¸² re·ÜMº¾Ø¿	2b†—¹F™b&!rcÈ|ò•Gs°2 ,¼£až‰ûÍ*£WÎªá<à©ƒ[2ÀÅDá`<—È²|œyDn¼Äg¸Å'¹êôk¸YÐtt£dÓLˆÒgÎ—¦RcSŽ«ëª=Îeå˜x=_|0~0¯„Ï;¼Ê+w,‘ 6ß°Ž­ÏÜ¹Å¦W.“¡MSà o‘5Æƒ¶²8›g4¦ípÚ4—ÊÏëâ«óagÝ8kÔe #`Ó£43¶tXûþùàËkþÙà³å$^l YýXˆ…^AKÊ8ÇÜ¹áuæÅêbYvó’ODŒãçŸ²ŸcºàšÍÆ¶—÷p×‚¦ýK÷Ö•Vôë†ûnÞ|fŠ¼ÄòºéÕ¦v—¾ <
 ¾=3…´N+ÐŸÛL`Ñ¹§:“k÷|…Â€jgiõ’×ì›‚Ë™˜7Ø±ôDf‡‘‡xfº,»úÔ¨2ÀEGä¾?rwƒåÄXPy¼¼x“÷¦¬Ü,0Á\EÜ‚mn¡ÈÿoS˜Q²6F©Í`áidåÊæÖ´kÎ²Û¹ä»Ë€›y(Ûf\V‹20­ó€	«T3¡éô*B8ïQ ˜0±lXa0u€çO¡vj…*„æùÌ¤È,ï:ä»^Ï-dLÒ{§Q0ü4§µ¤¬žËXÊL+o-­oÌ¤y;ï×fÎ¦€åsó‹@Ðb¿¹ Óž]£ðÜäTýoÂ¸þ |;Èº æ-Nð–g¸ä·ÇÁÛ£® w&¹¹¼—Ïžì†K2ýÞÙÔ¬ïÌsÿÙéÛ.[RáK}&Ë#M˜9†ãL¼
 @&W+8·£  ¸ ®0Å4D&˜c²”àÄíÌ ƒ‡1°âVÎÌ1Lrx½2q¯Y6rPžìW‚…[	p);ébL?_¹„%¢Y¡GÄÏcòF"øW"Óq‘@÷æÅDNŠ‰PLäô¡˜ÅDNŠ‰PLäô¡˜ÅDNŠ‰PLäôù>¦;†Q Ågb8ó‚‰1)'&Œk zpÀBÄ½È€‰1Áš 3C)¿¶ˆhÒ}mÆ¸×&@ˆÔ˜lv ÊÙ²sî›ñÌ3€¹‘ÓmL©6ÝËàz2O1é1ù& L[ñ‚sê‘eœÍ!c’ÍîÏt³±Ýø{dgÙÂ€1D?F"RcŠê=kÆY‡umaÉ©Ño{\¾ó›Ñè¦nê*B$ÅdàçRš-«†·ÍùVç}[Vž×étkš»6š€HŒ	ê_¡ù”ÝN!¿@1‘Ó‹b"-¦\·û@å¢ýÃ2Då|„HŒ©|Ô+(T jõrÈ•ê½‘„# ²roÚ-äŽÌŽû]´{ DbLy1¦òQ£ØÞWQûP?Tc R!¿J%¼/wëèÄ‰bý‘z™k(V4s‡%õ«r(‚I1™ëýv·ÙÉ×Êýb¡Y|÷¡'ÖTûXªÓŸò‰1½©Õjõæa©T©„·Ú¡Ðì¶;õæû&™ˆÄ˜ö­J¥Õ¨T­j¡R¬µ„¼Piµ
-OìÝ1Ž£0 …a=‰Ý†l1'£wé; 
+OìÝ1Ž£0 …a=‰Ý†l1'£wé;
 n,Ù¸±dD‰›ˆqn#¤Üiv7…‘F¢xßHÑLÿk’øB<§ÿbLt^Œ‰Ï?Coß8 ­ÅnhvJk~÷3åÆTüzÓ»¯¡76w½tì¼pFŒ)âVö©„°-ˆ½³T×8K„Ñ%€ôèAt$&H£ÇvÅ‹‹_4Ñ‘§9Qµ5n&i„eP¸	å½Ó}LÝ§bQ6¨Nm€NiQæ6·ï¼ÁNSôµœ´oêÎ¦nñÂ«(3&gû§ÖÚ¦olÿzˆu|þ&9ôOÀéÆDçÅ˜ˆ1Ñùü“F pêó¯|â™%åÆ$üâ èˆ]š¿
 Dy1A/Ø ¨cT	`|0&:8ôê¤:9Æ‹`?€µ¯yç
 ::m®k°L+ ¥?ZÆDù1u L-Ñ™¤q8 —eºß9ÎQnL~ª¾Ô›j:Ó5×(ªu¼j€2cµoÚàšè|ÕËar2xJˆòbZe£e+ë¨[ýzhj-ŸZyQÞ¦ê•÷ Î)ôc¢óbLôm1ç€aÅNU^Ô0pé¥Ü˜Âæ È»þ.°SàçÃ)ÿ|PT7U•À´ð½z½U‹œûÂ«Ð—@³<xÌDÇb‚×ØTpï^äÆ¯Â¤C7®ûÐ+’Ær±ã'z)?¦2\«Õ_d(®ª½‰[ºö{[• Ê‹IieXc=øÑêä]íP·É
@@ -48,7 +48,7 @@ y
 àˆ}œryX_ø¦²µÁŠ±,Ãásä‰¢§vÖÕï«®-®¬ýíDiñ«Ë—–ü ýj¤Ó§B¹Ó§‡™
 ž¼L¤&QŠB!»¢0'¯máxçžâõöƒG·î|üñûK:t¯^þíøÊ
 ˆM'çÓ™Õ”MÈÞXZ8³0«4zžüC<´Ý‚ØíÃ‰’>aŸà¬}o“ZÛÖòL«ºº~ß§Õ;Z;Ÿ©ï<;9¹rãÆâW'ÒIÉ-
-¡¨–ÏLÏ¾¥ÈTèäeÍ9ˆ‡Í…¢<‹ Ø£aß‘¶înª®Ó¨*?ûtëý»¿Øøé“G;ëïÏ]³i%—ÌEâ!A¥3Ï|¯ÈTð¬ÿ›£íG`Pð¦(–b1ŒÝ½ç²&í³µê6­ªv¸ãÀ®ÎÎÆÆ­G=¾t5}cr~ñdV#î,F²™…©E¦‚g½h	\"PÌiå¯ð,4Ž8ñp{YIÃþÚý*PªM«9_wÿÎ‹EÅE‡ö“üÒÜüÕÅ®H.cB0Ì,ÌL½¯ÈTè¬-iÒ0n‡$ü`¦FF 
+¡¨–ÏLÏ¾¥ÈTèäeÍ9ˆ‡Í…¢<‹ Ø£aß‘¶înª®Ó¨*?ûtëý»¿Øøé“G;ëïÏ]³i%—ÌEâ!A¥3Ï|¯ÈTð¬ÿ›£íG`Pð¦(–b1ŒÝ½ç²&í³µê6­ªv¸ãÀ®ÎÎÆÆ­G=¾t5}cr~ñdV#î,F²™…©E¦‚g½h	\"PÌiå¯ð,4Ž8ñp{YIÃþÚý*PªM«9_wÿÎ‹EÅE‡ö“üÒÜüÕÅ®H.cB0Ì,ÌL½¯ÈTè¬-iÒ0n‡$ü`¦FF
 kiØ{÷³GT¥µ•ºÒÒj/Ÿ.*é8Ð)ËIÿùó+'#!QtK±Pp.453Ý¬ÈTè¬¿BÃ0A4½ýúL»‡u•{Ëö6©tº’MeíùóuÖ5îÜdõÁ¬[Ì¦ÓQ/©|¨ÈTè¬Ëd‡ ÐMù{P¥Õªm«î¨jR—•™¬øšƒ*•F}¹ñò®ÃŸµÞ¿kßkó@¦É¹lFFB¹Ài°@®O‰LÏú&ÈÀaÈ{pkÙ^Z¥Ý£-V= Rkžà¬Øu¥V]Z\UµÿòáW‹t[·_¼qc~X®G\:#-€' û”:SÁ“—‰¦P4ŒRt˜ï~tÇ–Z9N¥Sµ—Uno,U5ªKK4Ti4¥E[>ÚºyxñÆÊ¼¿üžÕL0-'‡ÀÆ¯Y¥^ðä§SÂÃ`L˜ñ!ÐmÍ»w¼A1l»N½ýUË³•·ŸãÔªÊêbµ®R·õ~Sõ®£@¦³«›6lXšÏIôõÌ¸™
 ž›+uöìÀššßæcµ&Ü‘l“ÎÔòÆx;Þ´½i»V¥jl¬ÒéjK5p%Ï|
 :*_¹cÃ–ç3¹ÐÏÓßNÛ™
diff --git a/core/themes/stable/stable.info.yml b/core/themes/stable/stable.info.yml
new file mode 100644
index 0000000..b397c66
--- /dev/null
+++ b/core/themes/stable/stable.info.yml
@@ -0,0 +1,112 @@
+name: Stable
+type: theme
+description: 'Shelter from the Wild Wild West.'
+package: Core
+version: VERSION
+core: 8.x
+base theme: false
+
+libraries-override:
+  system/admin: stable/admin
+  system/base: stable/base
+  filter/caption: stable/caption
+  color/admin: stable/color.admin
+  system/diff: stable/diff
+  core/drupal: stable/drupal
+  core/drupal.active-link: stable/drupal.active-link
+  core/drupal.ajax: stable/drupal.ajax
+  core/drupal.announce: stable/drupal.announce
+  core/drupal.autocomplete: stable/drupal.autocomplete
+  core/drupal.batch: stable/drupal.batch
+  block/drupal.block: stable/drupal.block
+  block/drupal.block.admin: stable/drupal.block.admin
+  block_content/drupal.block_content: stable/drupal.block_content
+  book/drupal.book: stable/drupal.book
+  ckeditor/drupal.ckeditor: stable/drupal.ckeditor
+  ckeditor/drupal.ckeditor.plugins.drupalimagecaption: stable/drupal.ckeditor.plugins.drupalimagecaption
+  ckeditor/drupal.ckeditor.admin: stable/drupal.ckeditor.admin
+  ckeditor/drupal.ckeditor.drupalimage.admin: stable/drupal.ckeditor.drupalimage.admin
+  ckeditor/drupal.ckeditor.stylescombo.admin: stable/drupal.ckeditor.stylescombo.admin
+  core/drupal.collapse: stable/drupal.collapse
+  color/drupal.color: stable/drupal.color
+  color/drupal.color.preview: stable/drupal.color.preview
+  comment/drupal.comment: stable/drupal.comment
+  comment/drupal.comment-by-viewer: stable/drupal.comment-by-viewer
+  comment/drupal.comment-new-indicator: stable/drupal.comment-new-indicator
+  config_translation/drupal.config_translation.admin: stable/drupal.config_translation.admin
+  content_translation/drupal.content_translation.admin: stable/drupal.content_translation.admin
+  node/drupal.content_types: stable/drupal.content_types
+  contextual/drupal.contextual-links: stable/drupal.contextual-links
+  contextual/drupal.contextual-toolbar: stable/drupal.contextual-toolbar
+  core/drupal.date: stable/drupal.date
+  dblog/drupal.dblog: stable/drupal.dblog
+  core/drupal.debounce: stable/drupal.debounce
+  core/drupal.dialog: stable/drupal.dialog
+  core/drupal.dialog.ajax: stable/drupal.dialog.ajax
+  core/drupal.displace: stable/drupal.displace
+  core/drupal.dropbutton: stable/drupal.dropbutton
+  editor/drupal.editor.admin: stable/drupal.editor.admin
+  editor/drupal.editor: stable/drupal.editor
+  editor/drupal.editor.dialog: stable/drupal.editor.dialog
+  field_ui/drupal.field_ui: stable/drupal.field_ui
+  file/drupal.file: stable/drupal.file
+  filter/drupal.filter.admin: stable/drupal.filter.admin
+  filter/drupal.filter.filter_html.admin: stable/drupal.filter.filter_html.admin
+  filter/drupal.filter: stable/drupal.filter
+  core/drupal.form: stable/drupal.form
+  language/drupal.language.admin: stable/drupal.language.admin
+  locale/drupal.locale.admin: stable/drupal.locale.admin
+  locale/drupal.locale.datepicker: stable/drupal.locale.datepicker
+  core/drupal.machine-name: stable/drupal.machine-name
+  menu_ui/drupal.menu_ui: stable/drupal.menu_ui
+  menu_ui/drupal.menu_ui.admin: stable/drupal.menu_ui.admin
+  menu_ui/drupal.menu_ui.adminforms: stable/drupal.menu_ui.adminforms
+  node/drupal.node: stable/drupal.node
+  node/drupal.node.admin: stable/drupal.node.admin
+  node/drupal.node.preview: stable/drupal.node.preview
+  comment/drupal.node-new-comments-link: stable/drupal.node-new-comments-link
+  path/drupal.path: stable/drupal.path
+  core/drupal.progress: stable/drupal.progress
+  shortcut/drupal.shortcut: stable/drupal.shortcut
+  simpletest/drupal.simpletest: stable/drupal.simpletest
+  statistics/drupal.statistics: stable/drupal.statistics
+  core/drupal.states: stable/drupal.states
+  system/drupal.system: stable/drupal.system
+  system/drupal.system.modules: stable/drupal.system.modules
+  system/drupal.system.date: stable/drupal.system.date
+  core/drupal.tabbingmanager: stable/drupal.tabbingmanager
+  core/drupal.tabledrag: stable/drupal.tabledrag
+  core/drupal.tableheader: stable/drupal.tableheader
+  core/drupal.tableresponsive: stable/drupal.tableresponsive
+  core/drupal.tableselect: stable/drupal.tableselect
+  taxonomy/drupal.taxonomy: stable/drupal.taxonomy
+  text/drupal.text: stable/drupal.text
+  core/drupal.timezone: stable/drupal.timezone
+  update/drupal.update.admin: stable/drupal.update.admin
+  user/drupal.user: stable/drupal.user
+  user/drupal.user.admin: stable/drupal.user.admin
+  user/drupal.user.permissions: stable/drupal.user.permissions
+  user/drupal.user.icons: stable/drupal.user.icons
+  core/drupal.vertical-tabs: stable/drupal.vertical-tabs
+  node/form: stable/form
+  tracker/history: stable/history
+  history/api: stable/history.api
+  image/admin: stable/image.admin
+  system/maintenance: stable/maintenance
+  history/mark-as-read: stable/mark-as-read
+  quickedit/quickedit: stable/quickedit
+  quickedit/quickedit.inPlaceEditor.form: stable/quickedit.inPlaceEditor.form
+  quickedit/quickedit.inPlaceEditor.plainText: stable/quickedit.inPlaceEditor.plainText
+  quickedit/quickedit.inPlaceEditor.formattedText: stable/quickedit.inPlaceEditor.formattedText
+  responsive_image/ajax: stable/responsive_image.ajax
+  toolbar/toolbar: stable/toolbar
+  toolbar/toolbar.menu: stable/toolbar.menu
+  toolbar/toolbar.escapeAdmin: stable/toolbar.escapeAdmin
+  tour/tour: stable/tour
+  tour/tour-styling: stable/tour-styling
+  locale/translations: stable/translations
+  views/views.module: stable/views.module
+  views/views.ajax: stable/views.ajax
+  views_ui/views_ui.admin: stable/views_ui.admin
+  views_ui/admin.styling: stable/views_ui.admin.styling
+  views_ui/views_ui.listing: stable/views_ui.listing
diff --git a/core/themes/stable/stable.libraries.yml b/core/themes/stable/stable.libraries.yml
new file mode 100644
index 0000000..50ed7d6
--- /dev/null
+++ b/core/themes/stable/stable.libraries.yml
@@ -0,0 +1,1138 @@
+admin:
+  version: VERSION
+  css:
+    theme:
+      css/system/system.admin.css: { weight: -10 }
+  dependencies:
+    - stable/base
+
+base:
+  version: VERSION
+  css:
+    # Adjust the weights to load these early.
+    component:
+      css/system/components/ajax-progress.module.css: { weight: -10 }
+      css/system/components/align.module.css: { weight: -10 }
+      css/system/components/autocomplete-loading.module.css: { weight: -10 }
+      css/system/components/fieldgroup.module.css: { weight: -10 }
+      css/system/components/container-inline.module.css: { weight: -10 }
+      css/system/components/clearfix.module.css: { weight: -10 }
+      css/system/components/details.module.css: { weight: -10 }
+      css/system/components/hidden.module.css: { weight: -10 }
+      css/system/components/js.module.css: { weight: -10 }
+      css/system/components/nowrap.module.css: { weight: -10 }
+      css/system/components/position-container.module.css: { weight: -10 }
+      css/system/components/progress.module.css: { weight: -10 }
+      css/system/components/reset-appearance.module.css: { weight: -10 }
+      css/system/components/resize.module.css: { weight: -10 }
+      css/system/components/sticky-header.module.css: { weight: -10 }
+      css/system/components/tabledrag.module.css: { weight: -10 }
+      css/system/components/tablesort.module.css: { weight: -10 }
+      css/system/components/tree-child.module.css: { weight: -10 }
+
+caption:
+  version: VERSION
+  css:
+    component:
+      css/filter/filter.caption.css: {}
+
+color.admin:
+  version: VERSION
+  css:
+    theme:
+      css/color/color.admin.css: {}
+
+diff:
+  version: VERSION
+  css:
+    component:
+      css/system/system.diff.css: {}
+
+drupal:
+  version: VERSION
+  js:
+    js/misc/drupal.js: { weight: -18 }
+  dependencies:
+    - core/domready
+    - core/drupalSettings
+
+drupal.active-link:
+  version: VERSION
+  js:
+    js/misc/active-link.js: {}
+  dependencies:
+    - stable/drupal
+    - core/drupalSettings
+    - core/classList
+
+drupal.ajax:
+  version: VERSION
+  js:
+    js/misc/ajax.js: {}
+  drupalSettings:
+    # These placeholder values will be set by system_js_settings_alter().
+    ajaxPageState:
+      libraries: null
+      theme: null
+      theme_token: null
+    ajaxTrustedUrl: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.progress
+    - core/jquery.once
+
+drupal.announce:
+  version: VERSION
+  js:
+    js/misc/announce.js: {}
+  dependencies:
+    - stable/drupal
+    - stable/drupal.debounce
+
+drupal.autocomplete:
+  version: VERSION
+  js:
+    js/misc/autocomplete.js: { weight: -1 }
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.ajax
+    - core/jquery.ui.autocomplete
+
+drupal.batch:
+  version: VERSION
+  js:
+    js/misc/batch.js: { cache: false }
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.ajax
+    - stable/drupal.progress
+    - core/jquery.once
+
+drupal.block:
+  version: VERSION
+  js:
+    js/block/block.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+
+drupal.block.admin:
+  version: VERSION
+  js:
+    js/block/block.admin.js: {}
+  css:
+    theme:
+      css/block/block.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.ajax
+
+drupal.block_content:
+  version: VERSION
+  js:
+    js/block_content/block_content.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.book:
+  version: VERSION
+  js:
+    js/book/book.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.ckeditor:
+  version: VERSION
+  js:
+    js/ckeditor/ckeditor.js: {}
+  css:
+    state:
+      css/ckeditor/ckeditor.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.debounce
+    - core/ckeditor
+    - stable/drupal.editor
+
+drupal.ckeditor.plugins.drupalimagecaption:
+  version: VERSION
+  css:
+    component:
+      css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css: {}
+  dependencies:
+    - stable/caption
+
+drupal.ckeditor.admin:
+  version: VERSION
+  js:
+    # Core.
+    js/ckeditor/ckeditor.admin.js: {}
+    # Models.
+    js/ckeditor/models/Model.js: {}
+    # Views.
+    js/ckeditor/views/AuralView.js: {}
+    js/ckeditor/views/KeyboardView.js: {}
+    js/ckeditor/views/ControllerView.js: {}
+    js/ckeditor/views/VisualView.js: {}
+  css:
+    theme:
+      css/ckeditor/ckeditor.admin.css: {}
+      /core/assets/vendor/ckeditor/skins/moono/editor.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - core/jquery.ui.sortable
+    - core/jquery.ui.draggable
+    - core/jquery.ui.touch-punch
+    - core/backbone
+    - stable/drupal.dialog
+    - stable/drupal.announce
+    - core/ckeditor
+    - stable/drupal.editor.admin
+    # Ensure to run after core/drupal.vertical-tabs.
+    - stable/drupal.vertical-tabs
+
+drupal.ckeditor.drupalimage.admin:
+  version: VERSION
+  js:
+    js/ckeditor/ckeditor.drupalimage.admin.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+    - stable/drupal.vertical-tabs
+    - core/drupalSettings
+
+drupal.ckeditor.stylescombo.admin:
+  version: VERSION
+  js:
+    js/ckeditor/ckeditor.stylescombo.admin.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+    - stable/drupal.vertical-tabs
+    - core/drupalSettings
+    # Ensure to run after ckeditor/drupal.ckeditor.admin.
+    - stable/drupal.ckeditor.admin
+
+drupal.collapse:
+  version: VERSION
+  js:
+    js/misc/details-aria.js: {}
+    js/misc/collapse.js: {}
+  dependencies:
+    - core/jquery
+    - core/modernizr
+    - stable/drupal
+    - stable/drupal.form
+    - core/jquery.once
+
+drupal.color:
+  version: VERSION
+  js:
+    js/color/color.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+    - core/jquery.farbtastic
+    - stable/drupal.color.preview
+
+drupal.color.preview:
+  version: VERSION
+  js:
+    js/color/preview.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+drupal.comment:
+  version: VERSION
+  js:
+    js/comment/comment-entity-form.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.comment-by-viewer:
+  version: VERSION
+  js:
+    js/comment/comment-by-viewer.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+
+drupal.comment-new-indicator:
+  version: VERSION
+  js:
+    js/comment/comment-new-indicator.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - stable/history.api
+    - stable/drupal.displace
+
+drupal.config_translation.admin:
+  version: VERSION
+  css:
+    theme:
+      css/config_translation/config_translation.admin.css: {}
+
+drupal.content_translation.admin:
+  version: VERSION
+  js:
+    js/content_translation/content_translation.admin.js: {}
+  css:
+    theme:
+      css/content_translation/content_translation.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+drupal.content_types:
+  version: VERSION
+  js:
+    js/node/content_types.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.contextual-links:
+  version: VERSION
+  js:
+    # Ensure to run before contextual/drupal.context-toolbar.
+    # Core.
+    js/contextual/contextual.js: { weight: -2 }
+    # Models.
+    js/contextual/models/StateModel.js: { weight: -2 }
+    # Views.
+    js/contextual/views/AuralView.js: { weight: -2 }
+    js/contextual/views/KeyboardView.js: { weight: -2 }
+    js/contextual/views/RegionView.js: { weight: -2 }
+    js/contextual/views/VisualView.js: { weight: -2 }
+  css:
+    component:
+      css/contextual/contextual.module.css: {}
+    theme:
+      css/contextual/contextual.theme.css: {}
+      css/contextual/contextual.icons.theme.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/backbone
+    - core/modernizr
+    - core/jquery.once
+
+drupal.contextual-toolbar:
+  version: VERSION
+  js:
+    js/contextual/contextual.toolbar.js: {}
+    # Models.
+    js/contextual/toolbar/models/StateModel.js: {}
+    # Views.
+    js/contextual/toolbar/views/AuralView.js: {}
+    js/contextual/toolbar/views/VisualView.js: {}
+  css:
+    component:
+      css/contextual/contextual.toolbar.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/backbone
+    - core/jquery.once
+    - stable/drupal.tabbingmanager
+    - stable/drupal.announce
+
+drupal.date:
+  version: VERSION
+  js:
+    js/misc/date.js: {}
+  dependencies:
+    - stable/drupal
+    - core/modernizr
+    - core/jquery.ui.datepicker
+
+drupal.dblog:
+  version: VERSION
+  css:
+    component:
+      css/dblog/dblog.module.css: {}
+
+drupal.debounce:
+  version: VERSION
+  js:
+    js/misc/debounce.js: {}
+  dependencies:
+    # @todo Remove Drupal dependency.
+    - stable/drupal
+
+drupal.dialog:
+  version: VERSION
+  js:
+    js/dialog/dialog.js: {}
+    js/dialog/dialog.position.js: {}
+    js/dialog/dialog.jquery-ui.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.debounce
+    - stable/drupal.displace
+    - core/jquery.ui.dialog
+
+drupal.dialog.ajax:
+  version: VERSION
+  js:
+    js/dialog/dialog.ajax.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.ajax
+    - stable/drupal.dialog
+
+drupal.displace:
+  version: VERSION
+  js:
+    js/misc/displace.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.debounce
+
+drupal.dropbutton:
+  version: VERSION
+  js:
+    js/dropbutton/dropbutton.js: {}
+  css:
+    component:
+      css/dropbutton/dropbutton.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+drupal.editor.admin:
+  version: VERSION
+  js:
+    js/editor/editor.admin.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+
+drupal.editor:
+  version: VERSION
+  js:
+    js/editor/editor.js: {}
+  css:
+    component:
+      css/editor/editor.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - stable/drupal.dialog
+
+drupal.editor.dialog:
+  version: VERSION
+  js:
+    js/editor/editor.dialog.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal.dialog
+    - stable/drupal.ajax
+    - core/drupalSettings
+
+drupal.field_ui:
+  version: VERSION
+  js:
+    js/field_ui/field_ui.js: {}
+  css:
+    theme:
+      css/field_ui/field_ui.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+drupal.file:
+  version: VERSION
+  js:
+    js/file/file.js: {}
+  css:
+    theme:
+      css/file/file.admin.css: {}
+    component:
+      css/file/file.theme.css: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - core/drupalSettings
+
+drupal.filter.admin:
+  version: VERSION
+  js:
+    js/filter/filter.admin.js: {}
+  css:
+    theme:
+      css/filter/filter.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+    - stable/drupal.form
+
+drupal.filter.filter_html.admin:
+  version: VERSION
+  js:
+    js/filter/filter.filter_html.admin.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - core/underscore
+
+drupal.filter:
+  version: VERSION
+  js:
+    js/filter/filter.js: {}
+  css:
+    theme:
+      # @todo Misnomer: Does not contain administrative styles.
+      css/filter/filter.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+drupal.form:
+  version: VERSION
+  js:
+    js/misc/form.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.debounce
+    - core/jquery.cookie
+    - core/jquery.once
+
+drupal.language.admin:
+  version: VERSION
+  js:
+    js/language/language.admin.js: {}
+  css:
+    theme:
+      css/language/language.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+drupal.locale.admin:
+  version: VERSION
+  js:
+    js/locale/locale.admin.js: {}
+  css:
+    component:
+      css/locale/locale.admin.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+    - core/jquery.once
+
+drupal.locale.datepicker:
+  version: VERSION
+  js:
+    js/locale/locale.datepicker.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+
+drupal.machine-name:
+  version: VERSION
+  js:
+    js/misc/machine-name.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.form
+
+drupal.menu_ui:
+  version: VERSION
+  js:
+    js/menu_ui/menu_ui.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.menu_ui.admin:
+  version: VERSION
+  js:
+    js/menu_ui/menu_ui.admin.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+
+drupal.menu_ui.adminforms:
+  version: VERSION
+  css:
+    theme:
+      css/menu_ui/menu_ui.admin.css: {}
+
+drupal.node:
+  version: VERSION
+  css:
+    layout:
+      css/node/node.module.css: {}
+  js:
+    js/node/node.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.form
+
+drupal.node.admin:
+  version: VERSION
+  css:
+    theme:
+      css/node/node.admin.css: {}
+
+drupal.node.preview:
+  version: VERSION
+  css:
+    theme:
+      css/node/node.preview.css: {}
+  js:
+    js/node/node.preview.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.node-new-comments-link:
+  version: VERSION
+  js:
+    js/comment/node-new-comments-link.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - stable/history.api
+
+drupal.path:
+  version: VERSION
+  js:
+    js/path/path.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.form
+
+drupal.progress:
+  version: VERSION
+  js:
+    js/misc/progress.js: {}
+  dependencies:
+    - stable/drupal
+    - core/jquery
+    - core/drupalSettings
+
+drupal.shortcut:
+  version: VERSION
+  css:
+    theme:
+      css/shortcut/shortcut.theme.css: {}
+      css/shortcut/shortcut.icons.theme.css: {}
+
+drupal.simpletest:
+  version: VERSION
+  js:
+    js/simpletest/simpletest.js: {}
+  css:
+    component:
+      css/simpletest/simpletest.module.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - stable/drupal.tableselect
+    - stable/drupal.debounce
+
+drupal.statistics:
+  version: VERSION
+  js:
+    js/statistics/statistics.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+
+drupal.states:
+  version: VERSION
+  js:
+    js/misc/states.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+drupal.system:
+  version: VERSION
+  js:
+    js/system/system.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+drupal.system.modules:
+  version: VERSION
+  js:
+    js/system/system.modules.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/drupal.debounce
+    - core/jquery.once
+
+drupal.system.date:
+  version: VERSION
+  js:
+    js/system/system.date.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - stable/drupal.form
+
+drupal.tabbingmanager:
+  version: VERSION
+  js:
+    js/misc/tabbingmanager.js: {}
+  dependencies:
+    - core/jquery
+    # Supplies the ':tabbable' pseudo selector.
+    - core/jquery.ui
+    - stable/drupal
+
+drupal.tabledrag:
+  version: VERSION
+  js:
+    js/misc/tabledrag.js: { weight: -1 }
+  dependencies:
+    - core/jquery
+    - core/modernizr
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - core/jquery.cookie
+
+drupal.tableheader:
+  version: VERSION
+  js:
+    js/misc/tableheader.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - stable/drupal.displace
+
+drupal.tableresponsive:
+  version: VERSION
+  js:
+    js/misc/tableresponsive.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+drupal.tableselect:
+  version: VERSION
+  js:
+    js/misc/tableselect.js: {}
+  dependencies:
+    - stable/drupal
+    - core/jquery
+    - core/jquery.once
+
+drupal.taxonomy:
+  version: VERSION
+  js:
+    js/taxonomy/taxonomy.js: {}
+  css:
+    component:
+      css/taxonomy/taxonomy.theme.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.tabledrag
+
+drupal.text:
+  version: VERSION
+  js:
+    js/text/text.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+
+drupal.timezone:
+  version: VERSION
+  js:
+    js/misc/timezone.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+
+drupal.update.admin:
+  version: VERSION
+  css:
+    theme:
+      css/update/update.admin.theme.css: {}
+
+drupal.user:
+  version: VERSION
+  js:
+    js/user/user.js: {}
+  css:
+    component:
+      css/user/user.module.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+drupal.user.admin:
+  version: VERSION
+  css:
+    theme:
+      css/user/user.admin.css: {}
+
+drupal.user.permissions:
+  version: VERSION
+  js:
+    js/useruser.permissions.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.user.admin
+
+drupal.user.icons:
+  version: VERSION
+  css:
+    theme:
+      css/user/user.icons.admin.css: {}
+
+drupal.vertical-tabs:
+  version: VERSION
+  js:
+    # Load before core/drupal.collapse.
+    js/misc/vertical-tabs.js: { weight: -1 }
+  css:
+    component:
+      css/misc/vertical-tabs.css: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.form
+
+form:
+  version: VERSION
+  css:
+    layout:
+      css/node/node.module.css: {}
+
+history:
+  version: VERSION
+  js:
+    js/tracker/tracker-history.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - stable/history.api
+
+history.api:
+  version: VERSION
+  js:
+    js/history/history.js: {}
+  dependencies:
+    - core/jquery
+    - core/drupalSettings
+    - stable/drupal
+    - stable/drupal.ajax
+
+image.admin:
+  version: VERSION
+  css:
+    theme:
+      css/image/image.admin.css: {}
+
+maintenance:
+  version: VERSION
+  css:
+    theme:
+      css/system/system.maintenance.css: { weight: -10 }
+  dependencies:
+    - stable/base
+    - stable/admin
+
+mark-as-read:
+  version: VERSION
+  js:
+    js/history/mark-as-read.js: {}
+  dependencies:
+    - stable/history.api
+
+quickedit:
+  version: VERSION
+  js:
+    # Core.
+    js/quickedit/quickedit.js: {}
+    js/quickedit/util.js: {}
+    # Models.
+    js/quickedit/models/BaseModel.js: {}
+    js/quickedit/models/AppModel.js: {}
+    js/quickedit/models/EntityModel.js: {}
+    js/quickedit/models/FieldModel.js: {}
+    js/quickedit/models/EditorModel.js: {}
+    # Views.
+    js/quickedit/views/AppView.js: {}
+    js/quickedit/views/FieldDecorationView.js: {}
+    js/quickedit/views/EntityDecorationView.js: {}
+    js/quickedit/views/EntityToolbarView.js: {}
+    js/quickedit/views/ContextualLinkView.js: {}
+    js/quickedit/views/FieldToolbarView.js: {}
+    js/quickedit/views/EditorView.js: {}
+    # Other.
+    js/quickedit/theme.js: {}
+  css:
+    component:
+      css/quickedit/quickedit.module.css: {}
+    theme:
+      css/quickedit/quickedit.theme.css: {}
+      css/quickedit/quickedit.icons.theme.css: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - core/underscore
+    - core/backbone
+    - core/jquery.form
+    - core/jquery.ui.position
+    - stable/drupal
+    - stable/drupal.displace
+    - stable/drupal.form
+    - stable/drupal.ajax
+    - stable/drupal.debounce
+    - core/drupalSettings
+    - stable/drupal.dialog
+
+quickedit.inPlaceEditor.form:
+  version: VERSION
+  js:
+    js/quickedit/editors/formEditor.js: {}
+  dependencies:
+    - stable/quickedit
+
+quickedit.inPlaceEditor.plainText:
+  version: VERSION
+  js:
+    js/quickedit/editors/plainTextEditor.js: {}
+  dependencies:
+    - stable/quickedit
+
+quickedit.inPlaceEditor.formattedText:
+  version: VERSION
+  js:
+    js/editor/editor.formattedTextEditor.js: { attributes: { defer: true } }
+  dependencies:
+    - stable/quickedit
+    - stable/drupal.editor
+    - stable/drupal.ajax
+    - core/drupalSettings
+
+responsive_image.ajax:
+  version: VERSION
+  js:
+    js/responsive_image/responsive_image.ajax.js: {}
+
+toolbar:
+  version: VERSION
+  js:
+    # Core.
+    js/toolbar/toolbar.js: {}
+    # Models.
+    js/toolbar/models/MenuModel.js: {}
+    js/toolbar/models/ToolbarModel.js: {}
+    # Views.
+    js/toolbar/views/BodyVisualView.js: {}
+    js/toolbar/views/MenuVisualView.js: {}
+    js/toolbar/views/ToolbarAuralView.js: {}
+    js/toolbar/views/ToolbarVisualView.js: {}
+  css:
+    component:
+      css/toolbar/toolbar.module.css: {}
+    theme:
+      css/toolbar/toolbar.theme.css: {}
+      css/toolbar/toolbar.icons.theme.css: {}
+  dependencies:
+    - core/modernizr
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - stable/drupal.ajax
+    - stable/drupal.announce
+    - core/backbone
+    - core/matchmedia
+    - core/matchmedia.addListener
+    - core/jquery.once
+    - stable/drupal.displace
+    - stable/toolbar.menu
+
+toolbar.menu:
+  version: VERSION
+  js:
+    js/toolbar/toolbar.menu.js: {}
+  css:
+    state:
+      css/toolbar/toolbar.menu.css: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+
+toolbar.escapeAdmin:
+  version: VERSION
+  js:
+    js/toolbar/escapeAdmin.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+
+tour:
+  version: VERSION
+  js:
+    js/tour/tour.js: {}
+  dependencies:
+    - core/jquery
+    - core/jquery.once
+    - stable/drupal
+    - core/backbone
+    - core/jquery.joyride
+    - stable/tour-styling
+
+tour-styling:
+  version: VERSION
+  css:
+    component:
+      css/tour/tour.module.css: { media: screen }
+
+translations:
+  # No sensible version can be specified, since the translations may change at
+  # any time.
+  js:
+    # This file does not actually exist; it's a placeholder file that will be
+    # overriden by locale_js_alter(), to use the file that contains the actual
+    # translations, for the language used in the current request.
+    js/locale/locale.translation.js: {}
+
+views.module:
+  version: VERSION
+  css:
+    component:
+      css/views/views.module.css: {}
+
+views.ajax:
+  version: VERSION
+  js:
+    js/views/base.js: {}
+    js/views/ajax_view.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - core/jquery.form
+    - stable/drupal.ajax
+
+views_ui.admin:
+  version: VERSION
+  js:
+    js/views_ui/ajax.js: {}
+    js/views_ui/dialog.views.js: {}
+    js/views_ui/views-admin.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/drupalSettings
+    - core/jquery.once
+    - core/jquery.form
+    - stable/drupal.ajax
+    - stable/drupal.dropbutton
+    - stable/views.ajax
+    - stable/views_ui.admin.styling
+
+views_ui.admin.styling:
+  version: VERSION
+  css:
+    component:
+      css/views_ui/views_ui.admin.css: {}
+    theme:
+      css/views_ui/views_ui.admin.theme.css: {}
+      css/views_ui/views_ui.contextual.css: {}
+
+views_ui.listing:
+  version: VERSION
+  js:
+    js/views_ui/views_ui.listing.js: {}
+  dependencies:
+    - core/jquery
+    - stable/drupal
+    - core/jquery.once
+    - stable/views_ui.admin.styling
diff --git a/core/modules/system/templates/admin-block-content.html.twig b/core/themes/stable/templates/admin/admin-block-content.html.twig
similarity index 100%
copy from core/modules/system/templates/admin-block-content.html.twig
copy to core/themes/stable/templates/admin/admin-block-content.html.twig
diff --git a/core/modules/system/templates/admin-block.html.twig b/core/themes/stable/templates/admin/admin-block.html.twig
similarity index 100%
copy from core/modules/system/templates/admin-block.html.twig
copy to core/themes/stable/templates/admin/admin-block.html.twig
diff --git a/core/modules/system/templates/admin-page.html.twig b/core/themes/stable/templates/admin/admin-page.html.twig
similarity index 100%
copy from core/modules/system/templates/admin-page.html.twig
copy to core/themes/stable/templates/admin/admin-page.html.twig
diff --git a/core/modules/system/templates/authorize-report.html.twig b/core/themes/stable/templates/admin/authorize-report.html.twig
similarity index 100%
copy from core/modules/system/templates/authorize-report.html.twig
copy to core/themes/stable/templates/admin/authorize-report.html.twig
diff --git a/core/modules/block_content/templates/block-content-add-list.html.twig b/core/themes/stable/templates/admin/block-content-add-list.html.twig
similarity index 100%
copy from core/modules/block_content/templates/block-content-add-list.html.twig
copy to core/themes/stable/templates/admin/block-content-add-list.html.twig
diff --git a/core/modules/block/templates/block-list.html.twig b/core/themes/stable/templates/admin/block-list.html.twig
similarity index 100%
copy from core/modules/block/templates/block-list.html.twig
copy to core/themes/stable/templates/admin/block-list.html.twig
diff --git a/core/modules/ckeditor/templates/ckeditor-settings-toolbar.html.twig b/core/themes/stable/templates/admin/ckeditor-settings-toolbar.html.twig
similarity index 100%
copy from core/modules/ckeditor/templates/ckeditor-settings-toolbar.html.twig
copy to core/themes/stable/templates/admin/ckeditor-settings-toolbar.html.twig
diff --git a/core/modules/color/templates/color-scheme-form.html.twig b/core/themes/stable/templates/admin/color-scheme-form.html.twig
similarity index 100%
copy from core/modules/color/templates/color-scheme-form.html.twig
copy to core/themes/stable/templates/admin/color-scheme-form.html.twig
diff --git a/core/modules/config_translation/templates/config_translation_manage_form_element.html.twig b/core/themes/stable/templates/admin/config_translation_manage_form_element.html.twig
similarity index 100%
copy from core/modules/config_translation/templates/config_translation_manage_form_element.html.twig
copy to core/themes/stable/templates/admin/config_translation_manage_form_element.html.twig
diff --git a/core/modules/image/templates/image-anchor.html.twig b/core/themes/stable/templates/admin/image-anchor.html.twig
similarity index 100%
copy from core/modules/image/templates/image-anchor.html.twig
copy to core/themes/stable/templates/admin/image-anchor.html.twig
diff --git a/core/modules/image/templates/image-crop-summary.html.twig b/core/themes/stable/templates/admin/image-crop-summary.html.twig
similarity index 100%
copy from core/modules/image/templates/image-crop-summary.html.twig
copy to core/themes/stable/templates/admin/image-crop-summary.html.twig
diff --git a/core/modules/image/templates/image-resize-summary.html.twig b/core/themes/stable/templates/admin/image-resize-summary.html.twig
similarity index 100%
copy from core/modules/image/templates/image-resize-summary.html.twig
copy to core/themes/stable/templates/admin/image-resize-summary.html.twig
diff --git a/core/modules/image/templates/image-rotate-summary.html.twig b/core/themes/stable/templates/admin/image-rotate-summary.html.twig
similarity index 100%
copy from core/modules/image/templates/image-rotate-summary.html.twig
copy to core/themes/stable/templates/admin/image-rotate-summary.html.twig
diff --git a/core/modules/image/templates/image-scale-summary.html.twig b/core/themes/stable/templates/admin/image-scale-summary.html.twig
similarity index 100%
copy from core/modules/image/templates/image-scale-summary.html.twig
copy to core/themes/stable/templates/admin/image-scale-summary.html.twig
diff --git a/core/modules/image/templates/image-style-preview.html.twig b/core/themes/stable/templates/admin/image-style-preview.html.twig
similarity index 100%
copy from core/modules/image/templates/image-style-preview.html.twig
copy to core/themes/stable/templates/admin/image-style-preview.html.twig
diff --git a/core/modules/system/templates/indentation.html.twig b/core/themes/stable/templates/admin/indentation.html.twig
similarity index 100%
copy from core/modules/system/templates/indentation.html.twig
copy to core/themes/stable/templates/admin/indentation.html.twig
diff --git a/core/modules/language/templates/language-negotiation-configure-form.html.twig b/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig
similarity index 100%
copy from core/modules/language/templates/language-negotiation-configure-form.html.twig
copy to core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig
diff --git a/core/modules/locale/templates/locale-translation-last-check.html.twig b/core/themes/stable/templates/admin/locale-translation-last-check.html.twig
similarity index 100%
copy from core/modules/locale/templates/locale-translation-last-check.html.twig
copy to core/themes/stable/templates/admin/locale-translation-last-check.html.twig
diff --git a/core/modules/locale/templates/locale-translation-update-info.html.twig b/core/themes/stable/templates/admin/locale-translation-update-info.html.twig
similarity index 100%
copy from core/modules/locale/templates/locale-translation-update-info.html.twig
copy to core/themes/stable/templates/admin/locale-translation-update-info.html.twig
diff --git a/core/modules/system/templates/maintenance-task-list.html.twig b/core/themes/stable/templates/admin/maintenance-task-list.html.twig
similarity index 100%
copy from core/modules/system/templates/maintenance-task-list.html.twig
copy to core/themes/stable/templates/admin/maintenance-task-list.html.twig
diff --git a/core/modules/simpletest/templates/simpletest-result-summary.html.twig b/core/themes/stable/templates/admin/simpletest-result-summary.html.twig
similarity index 100%
copy from core/modules/simpletest/templates/simpletest-result-summary.html.twig
copy to core/themes/stable/templates/admin/simpletest-result-summary.html.twig
diff --git a/core/modules/system/templates/system-admin-index.html.twig b/core/themes/stable/templates/admin/system-admin-index.html.twig
similarity index 100%
copy from core/modules/system/templates/system-admin-index.html.twig
copy to core/themes/stable/templates/admin/system-admin-index.html.twig
diff --git a/core/modules/system/templates/system-config-form.html.twig b/core/themes/stable/templates/admin/system-config-form.html.twig
similarity index 100%
copy from core/modules/system/templates/system-config-form.html.twig
copy to core/themes/stable/templates/admin/system-config-form.html.twig
diff --git a/core/modules/system/templates/system-themes-page.html.twig b/core/themes/stable/templates/admin/system-themes-page.html.twig
similarity index 100%
copy from core/modules/system/templates/system-themes-page.html.twig
copy to core/themes/stable/templates/admin/system-themes-page.html.twig
diff --git a/core/modules/system/templates/tablesort-indicator.html.twig b/core/themes/stable/templates/admin/tablesort-indicator.html.twig
similarity index 100%
copy from core/modules/system/templates/tablesort-indicator.html.twig
copy to core/themes/stable/templates/admin/tablesort-indicator.html.twig
diff --git a/core/modules/update/templates/update-last-check.html.twig b/core/themes/stable/templates/admin/update-last-check.html.twig
similarity index 100%
copy from core/modules/update/templates/update-last-check.html.twig
copy to core/themes/stable/templates/admin/update-last-check.html.twig
diff --git a/core/modules/update/templates/update-project-status.html.twig b/core/themes/stable/templates/admin/update-project-status.html.twig
similarity index 100%
copy from core/modules/update/templates/update-project-status.html.twig
copy to core/themes/stable/templates/admin/update-project-status.html.twig
diff --git a/core/modules/update/templates/update-report.html.twig b/core/themes/stable/templates/admin/update-report.html.twig
similarity index 100%
copy from core/modules/update/templates/update-report.html.twig
copy to core/themes/stable/templates/admin/update-report.html.twig
diff --git a/core/modules/update/templates/update-version.html.twig b/core/themes/stable/templates/admin/update-version.html.twig
similarity index 100%
copy from core/modules/update/templates/update-version.html.twig
copy to core/themes/stable/templates/admin/update-version.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-build-group-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-build-group-filter-form.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-build-group-filter-form.html.twig
copy to core/themes/stable/templates/admin/views-ui-build-group-filter-form.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-container.html.twig b/core/themes/stable/templates/admin/views-ui-container.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-container.html.twig
copy to core/themes/stable/templates/admin/views-ui-container.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-display-tab-bucket.html.twig b/core/themes/stable/templates/admin/views-ui-display-tab-bucket.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-display-tab-bucket.html.twig
copy to core/themes/stable/templates/admin/views-ui-display-tab-bucket.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-display-tab-setting.html.twig b/core/themes/stable/templates/admin/views-ui-display-tab-setting.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-display-tab-setting.html.twig
copy to core/themes/stable/templates/admin/views-ui-display-tab-setting.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-expose-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-expose-filter-form.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-expose-filter-form.html.twig
copy to core/themes/stable/templates/admin/views-ui-expose-filter-form.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-rearrange-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-rearrange-filter-form.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-rearrange-filter-form.html.twig
copy to core/themes/stable/templates/admin/views-ui-rearrange-filter-form.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-style-plugin-table.html.twig b/core/themes/stable/templates/admin/views-ui-style-plugin-table.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-style-plugin-table.html.twig
copy to core/themes/stable/templates/admin/views-ui-style-plugin-table.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-view-info.html.twig b/core/themes/stable/templates/admin/views-ui-view-info.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-view-info.html.twig
copy to core/themes/stable/templates/admin/views-ui-view-info.html.twig
diff --git a/core/modules/views_ui/templates/views-ui-view-preview-section.html.twig b/core/themes/stable/templates/admin/views-ui-view-preview-section.html.twig
similarity index 100%
copy from core/modules/views_ui/templates/views-ui-view-preview-section.html.twig
copy to core/themes/stable/templates/admin/views-ui-view-preview-section.html.twig
diff --git a/core/modules/system/templates/block--local-actions-block.html.twig b/core/themes/stable/templates/block/block--local-actions-block.html.twig
similarity index 81%
copy from core/modules/system/templates/block--local-actions-block.html.twig
copy to core/themes/stable/templates/block/block--local-actions-block.html.twig
index 65d57be..d0d10e0 100644
--- a/core/modules/system/templates/block--local-actions-block.html.twig
+++ b/core/themes/stable/templates/block/block--local-actions-block.html.twig
@@ -1,4 +1,4 @@
-{% extends "@block/block.html.twig" %}
+{% extends "@stable/block.html.twig" %}
 {#
 /**
  * @file
diff --git a/core/modules/system/templates/block--system-branding-block.html.twig b/core/themes/stable/templates/block/block--system-branding-block.html.twig
similarity index 100%
copy from core/modules/system/templates/block--system-branding-block.html.twig
copy to core/themes/stable/templates/block/block--system-branding-block.html.twig
diff --git a/core/modules/system/templates/block--system-menu-block.html.twig b/core/themes/stable/templates/block/block--system-menu-block.html.twig
similarity index 100%
copy from core/modules/system/templates/block--system-menu-block.html.twig
copy to core/themes/stable/templates/block/block--system-menu-block.html.twig
diff --git a/core/modules/system/templates/block--system-messages-block.html.twig b/core/themes/stable/templates/block/block--system-messages-block.html.twig
similarity index 100%
copy from core/modules/system/templates/block--system-messages-block.html.twig
copy to core/themes/stable/templates/block/block--system-messages-block.html.twig
diff --git a/core/modules/block/templates/block.html.twig b/core/themes/stable/templates/block/block.html.twig
similarity index 100%
copy from core/modules/block/templates/block.html.twig
copy to core/themes/stable/templates/block/block.html.twig
diff --git a/core/modules/file/templates/file-managed-file.html.twig b/core/themes/stable/templates/content-edit/file-managed-file.html.twig
similarity index 100%
copy from core/modules/file/templates/file-managed-file.html.twig
copy to core/themes/stable/templates/content-edit/file-managed-file.html.twig
diff --git a/core/modules/file/templates/file-upload-help.html.twig b/core/themes/stable/templates/content-edit/file-upload-help.html.twig
similarity index 100%
copy from core/modules/file/templates/file-upload-help.html.twig
copy to core/themes/stable/templates/content-edit/file-upload-help.html.twig
diff --git a/core/modules/file/templates/file-widget-multiple.html.twig b/core/themes/stable/templates/content-edit/file-widget-multiple.html.twig
similarity index 100%
copy from core/modules/file/templates/file-widget-multiple.html.twig
copy to core/themes/stable/templates/content-edit/file-widget-multiple.html.twig
diff --git a/core/modules/file/templates/file-widget.html.twig b/core/themes/stable/templates/content-edit/file-widget.html.twig
similarity index 100%
copy from core/modules/file/templates/file-widget.html.twig
copy to core/themes/stable/templates/content-edit/file-widget.html.twig
diff --git a/core/modules/filter/templates/filter-caption.html.twig b/core/themes/stable/templates/content-edit/filter-caption.html.twig
similarity index 100%
copy from core/modules/filter/templates/filter-caption.html.twig
copy to core/themes/stable/templates/content-edit/filter-caption.html.twig
diff --git a/core/modules/filter/templates/filter-guidelines.html.twig b/core/themes/stable/templates/content-edit/filter-guidelines.html.twig
similarity index 100%
copy from core/modules/filter/templates/filter-guidelines.html.twig
copy to core/themes/stable/templates/content-edit/filter-guidelines.html.twig
diff --git a/core/modules/filter/templates/filter-tips.html.twig b/core/themes/stable/templates/content-edit/filter-tips.html.twig
similarity index 100%
copy from core/modules/filter/templates/filter-tips.html.twig
copy to core/themes/stable/templates/content-edit/filter-tips.html.twig
diff --git a/core/modules/image/templates/image-widget.html.twig b/core/themes/stable/templates/content-edit/image-widget.html.twig
similarity index 100%
copy from core/modules/image/templates/image-widget.html.twig
copy to core/themes/stable/templates/content-edit/image-widget.html.twig
diff --git a/core/modules/node/templates/node-add-list.html.twig b/core/themes/stable/templates/content-edit/node-add-list.html.twig
similarity index 100%
copy from core/modules/node/templates/node-add-list.html.twig
copy to core/themes/stable/templates/content-edit/node-add-list.html.twig
diff --git a/core/modules/node/templates/node-edit-form.html.twig b/core/themes/stable/templates/content-edit/node-edit-form.html.twig
similarity index 100%
copy from core/modules/node/templates/node-edit-form.html.twig
copy to core/themes/stable/templates/content-edit/node-edit-form.html.twig
diff --git a/core/modules/filter/templates/text-format-wrapper.html.twig b/core/themes/stable/templates/content-edit/text-format-wrapper.html.twig
similarity index 100%
copy from core/modules/filter/templates/text-format-wrapper.html.twig
copy to core/themes/stable/templates/content-edit/text-format-wrapper.html.twig
diff --git a/core/modules/aggregator/templates/aggregator-item.html.twig b/core/themes/stable/templates/content/aggregator-item.html.twig
similarity index 100%
copy from core/modules/aggregator/templates/aggregator-item.html.twig
copy to core/themes/stable/templates/content/aggregator-item.html.twig
diff --git a/core/modules/book/templates/book-node-export-html.html.twig b/core/themes/stable/templates/content/book-node-export-html.html.twig
similarity index 100%
copy from core/modules/book/templates/book-node-export-html.html.twig
copy to core/themes/stable/templates/content/book-node-export-html.html.twig
diff --git a/core/modules/comment/templates/comment.html.twig b/core/themes/stable/templates/content/comment.html.twig
similarity index 100%
copy from core/modules/comment/templates/comment.html.twig
copy to core/themes/stable/templates/content/comment.html.twig
diff --git a/core/modules/system/templates/mark.html.twig b/core/themes/stable/templates/content/mark.html.twig
similarity index 100%
copy from core/modules/system/templates/mark.html.twig
copy to core/themes/stable/templates/content/mark.html.twig
diff --git a/core/modules/node/templates/node.html.twig b/core/themes/stable/templates/content/node.html.twig
similarity index 100%
copy from core/modules/node/templates/node.html.twig
copy to core/themes/stable/templates/content/node.html.twig
diff --git a/core/modules/system/templates/page-title.html.twig b/core/themes/stable/templates/content/page-title.html.twig
similarity index 100%
copy from core/modules/system/templates/page-title.html.twig
copy to core/themes/stable/templates/content/page-title.html.twig
diff --git a/core/modules/search/templates/search-result.html.twig b/core/themes/stable/templates/content/search-result.html.twig
similarity index 100%
copy from core/modules/search/templates/search-result.html.twig
copy to core/themes/stable/templates/content/search-result.html.twig
diff --git a/core/modules/taxonomy/templates/taxonomy-term.html.twig b/core/themes/stable/templates/content/taxonomy-term.html.twig
similarity index 100%
copy from core/modules/taxonomy/templates/taxonomy-term.html.twig
copy to core/themes/stable/templates/content/taxonomy-term.html.twig
diff --git a/core/modules/aggregator/templates/aggregator-feed.html.twig b/core/themes/stable/templates/dataset/aggregator-feed.html.twig
similarity index 100%
copy from core/modules/aggregator/templates/aggregator-feed.html.twig
copy to core/themes/stable/templates/dataset/aggregator-feed.html.twig
diff --git a/core/modules/forum/templates/forum-icon.html.twig b/core/themes/stable/templates/dataset/forum-icon.html.twig
similarity index 100%
copy from core/modules/forum/templates/forum-icon.html.twig
copy to core/themes/stable/templates/dataset/forum-icon.html.twig
diff --git a/core/modules/forum/templates/forum-list.html.twig b/core/themes/stable/templates/dataset/forum-list.html.twig
similarity index 100%
copy from core/modules/forum/templates/forum-list.html.twig
copy to core/themes/stable/templates/dataset/forum-list.html.twig
diff --git a/core/modules/forum/templates/forums.html.twig b/core/themes/stable/templates/dataset/forums.html.twig
similarity index 100%
copy from core/modules/forum/templates/forums.html.twig
copy to core/themes/stable/templates/dataset/forums.html.twig
diff --git a/core/modules/system/templates/item-list.html.twig b/core/themes/stable/templates/dataset/item-list.html.twig
similarity index 100%
copy from core/modules/system/templates/item-list.html.twig
copy to core/themes/stable/templates/dataset/item-list.html.twig
diff --git a/core/modules/system/templates/table.html.twig b/core/themes/stable/templates/dataset/table.html.twig
similarity index 100%
copy from core/modules/system/templates/table.html.twig
copy to core/themes/stable/templates/dataset/table.html.twig
diff --git a/core/modules/comment/templates/field--comment.html.twig b/core/themes/stable/templates/field/field--comment.html.twig
similarity index 100%
copy from core/modules/comment/templates/field--comment.html.twig
copy to core/themes/stable/templates/field/field--comment.html.twig
diff --git a/core/modules/node/templates/field--node--created.html.twig b/core/themes/stable/templates/field/field--node--created.html.twig
similarity index 100%
copy from core/modules/node/templates/field--node--created.html.twig
copy to core/themes/stable/templates/field/field--node--created.html.twig
diff --git a/core/modules/node/templates/field--node--title.html.twig b/core/themes/stable/templates/field/field--node--title.html.twig
similarity index 100%
copy from core/modules/node/templates/field--node--title.html.twig
copy to core/themes/stable/templates/field/field--node--title.html.twig
diff --git a/core/modules/node/templates/field--node--uid.html.twig b/core/themes/stable/templates/field/field--node--uid.html.twig
similarity index 100%
copy from core/modules/node/templates/field--node--uid.html.twig
copy to core/themes/stable/templates/field/field--node--uid.html.twig
diff --git a/core/modules/system/templates/field.html.twig b/core/themes/stable/templates/field/field.html.twig
similarity index 100%
copy from core/modules/system/templates/field.html.twig
copy to core/themes/stable/templates/field/field.html.twig
diff --git a/core/modules/file/templates/file-link.html.twig b/core/themes/stable/templates/field/file-link.html.twig
similarity index 100%
copy from core/modules/file/templates/file-link.html.twig
copy to core/themes/stable/templates/field/file-link.html.twig
diff --git a/core/modules/image/templates/image-formatter.html.twig b/core/themes/stable/templates/field/image-formatter.html.twig
similarity index 100%
copy from core/modules/image/templates/image-formatter.html.twig
copy to core/themes/stable/templates/field/image-formatter.html.twig
diff --git a/core/modules/image/templates/image-style.html.twig b/core/themes/stable/templates/field/image-style.html.twig
similarity index 100%
copy from core/modules/image/templates/image-style.html.twig
copy to core/themes/stable/templates/field/image-style.html.twig
diff --git a/core/modules/system/templates/image.html.twig b/core/themes/stable/templates/field/image.html.twig
similarity index 100%
copy from core/modules/system/templates/image.html.twig
copy to core/themes/stable/templates/field/image.html.twig
diff --git a/core/modules/link/templates/link-formatter-link-separate.html.twig b/core/themes/stable/templates/field/link-formatter-link-separate.html.twig
similarity index 100%
copy from core/modules/link/templates/link-formatter-link-separate.html.twig
copy to core/themes/stable/templates/field/link-formatter-link-separate.html.twig
diff --git a/core/modules/responsive_image/templates/responsive-image-formatter.html.twig b/core/themes/stable/templates/field/responsive-image-formatter.html.twig
similarity index 100%
copy from core/modules/responsive_image/templates/responsive-image-formatter.html.twig
copy to core/themes/stable/templates/field/responsive-image-formatter.html.twig
diff --git a/core/modules/responsive_image/templates/responsive-image.html.twig b/core/themes/stable/templates/field/responsive-image.html.twig
similarity index 100%
copy from core/modules/responsive_image/templates/responsive-image.html.twig
copy to core/themes/stable/templates/field/responsive-image.html.twig
diff --git a/core/modules/system/templates/time.html.twig b/core/themes/stable/templates/field/time.html.twig
similarity index 100%
copy from core/modules/system/templates/time.html.twig
copy to core/themes/stable/templates/field/time.html.twig
diff --git a/core/modules/system/templates/checkboxes.html.twig b/core/themes/stable/templates/form/checkboxes.html.twig
similarity index 100%
copy from core/modules/system/templates/checkboxes.html.twig
copy to core/themes/stable/templates/form/checkboxes.html.twig
diff --git a/core/modules/system/templates/confirm-form.html.twig b/core/themes/stable/templates/form/confirm-form.html.twig
similarity index 100%
copy from core/modules/system/templates/confirm-form.html.twig
copy to core/themes/stable/templates/form/confirm-form.html.twig
diff --git a/core/modules/system/templates/container.html.twig b/core/themes/stable/templates/form/container.html.twig
similarity index 100%
copy from core/modules/system/templates/container.html.twig
copy to core/themes/stable/templates/form/container.html.twig
diff --git a/core/modules/system/templates/datetime-form.html.twig b/core/themes/stable/templates/form/datetime-form.html.twig
similarity index 100%
copy from core/modules/system/templates/datetime-form.html.twig
copy to core/themes/stable/templates/form/datetime-form.html.twig
diff --git a/core/modules/system/templates/datetime-wrapper.html.twig b/core/themes/stable/templates/form/datetime-wrapper.html.twig
similarity index 100%
copy from core/modules/system/templates/datetime-wrapper.html.twig
copy to core/themes/stable/templates/form/datetime-wrapper.html.twig
diff --git a/core/modules/system/templates/details.html.twig b/core/themes/stable/templates/form/details.html.twig
similarity index 100%
copy from core/modules/system/templates/details.html.twig
copy to core/themes/stable/templates/form/details.html.twig
diff --git a/core/modules/system/templates/dropbutton-wrapper.html.twig b/core/themes/stable/templates/form/dropbutton-wrapper.html.twig
similarity index 100%
copy from core/modules/system/templates/dropbutton-wrapper.html.twig
copy to core/themes/stable/templates/form/dropbutton-wrapper.html.twig
diff --git a/core/modules/system/templates/field-multiple-value-form.html.twig b/core/themes/stable/templates/form/field-multiple-value-form.html.twig
similarity index 100%
copy from core/modules/system/templates/field-multiple-value-form.html.twig
copy to core/themes/stable/templates/form/field-multiple-value-form.html.twig
diff --git a/core/modules/system/templates/fieldset.html.twig b/core/themes/stable/templates/form/fieldset.html.twig
similarity index 100%
copy from core/modules/system/templates/fieldset.html.twig
copy to core/themes/stable/templates/form/fieldset.html.twig
diff --git a/core/modules/system/templates/form-element-label.html.twig b/core/themes/stable/templates/form/form-element-label.html.twig
similarity index 100%
copy from core/modules/system/templates/form-element-label.html.twig
copy to core/themes/stable/templates/form/form-element-label.html.twig
diff --git a/core/modules/system/templates/form-element.html.twig b/core/themes/stable/templates/form/form-element.html.twig
similarity index 100%
copy from core/modules/system/templates/form-element.html.twig
copy to core/themes/stable/templates/form/form-element.html.twig
diff --git a/core/modules/system/templates/form.html.twig b/core/themes/stable/templates/form/form.html.twig
similarity index 100%
copy from core/modules/system/templates/form.html.twig
copy to core/themes/stable/templates/form/form.html.twig
diff --git a/core/modules/system/templates/input.html.twig b/core/themes/stable/templates/form/input.html.twig
similarity index 100%
copy from core/modules/system/templates/input.html.twig
copy to core/themes/stable/templates/form/input.html.twig
diff --git a/core/modules/system/templates/radios.html.twig b/core/themes/stable/templates/form/radios.html.twig
similarity index 100%
copy from core/modules/system/templates/radios.html.twig
copy to core/themes/stable/templates/form/radios.html.twig
diff --git a/core/modules/system/templates/select.html.twig b/core/themes/stable/templates/form/select.html.twig
similarity index 100%
copy from core/modules/system/templates/select.html.twig
copy to core/themes/stable/templates/form/select.html.twig
diff --git a/core/modules/system/templates/textarea.html.twig b/core/themes/stable/templates/form/textarea.html.twig
similarity index 100%
copy from core/modules/system/templates/textarea.html.twig
copy to core/themes/stable/templates/form/textarea.html.twig
diff --git a/core/modules/book/templates/book-export-html.html.twig b/core/themes/stable/templates/layout/book-export-html.html.twig
similarity index 100%
copy from core/modules/book/templates/book-export-html.html.twig
copy to core/themes/stable/templates/layout/book-export-html.html.twig
diff --git a/core/modules/system/templates/html.html.twig b/core/themes/stable/templates/layout/html.html.twig
similarity index 100%
copy from core/modules/system/templates/html.html.twig
copy to core/themes/stable/templates/layout/html.html.twig
diff --git a/core/modules/system/templates/install-page.html.twig b/core/themes/stable/templates/layout/install-page.html.twig
similarity index 100%
copy from core/modules/system/templates/install-page.html.twig
copy to core/themes/stable/templates/layout/install-page.html.twig
diff --git a/core/modules/system/templates/maintenance-page.html.twig b/core/themes/stable/templates/layout/maintenance-page.html.twig
similarity index 100%
copy from core/modules/system/templates/maintenance-page.html.twig
copy to core/themes/stable/templates/layout/maintenance-page.html.twig
diff --git a/core/modules/system/templates/page.html.twig b/core/themes/stable/templates/layout/page.html.twig
similarity index 100%
copy from core/modules/system/templates/page.html.twig
copy to core/themes/stable/templates/layout/page.html.twig
diff --git a/core/modules/system/templates/region.html.twig b/core/themes/stable/templates/layout/region.html.twig
similarity index 100%
copy from core/modules/system/templates/region.html.twig
copy to core/themes/stable/templates/layout/region.html.twig
diff --git a/core/modules/system/templates/feed-icon.html.twig b/core/themes/stable/templates/misc/feed-icon.html.twig
similarity index 100%
copy from core/modules/system/templates/feed-icon.html.twig
copy to core/themes/stable/templates/misc/feed-icon.html.twig
diff --git a/core/modules/system/templates/progress-bar.html.twig b/core/themes/stable/templates/misc/progress-bar.html.twig
similarity index 100%
copy from core/modules/system/templates/progress-bar.html.twig
copy to core/themes/stable/templates/misc/progress-bar.html.twig
diff --git a/core/modules/rdf/templates/rdf-metadata.html.twig b/core/themes/stable/templates/misc/rdf-metadata.html.twig
similarity index 100%
copy from core/modules/rdf/templates/rdf-metadata.html.twig
copy to core/themes/stable/templates/misc/rdf-metadata.html.twig
diff --git a/core/modules/rdf/templates/rdf-wrapper.html.twig b/core/themes/stable/templates/misc/rdf-wrapper.html.twig
similarity index 100%
copy from core/modules/rdf/templates/rdf-wrapper.html.twig
copy to core/themes/stable/templates/misc/rdf-wrapper.html.twig
diff --git a/core/modules/system/templates/status-messages.html.twig b/core/themes/stable/templates/misc/status-messages.html.twig
similarity index 100%
copy from core/modules/system/templates/status-messages.html.twig
copy to core/themes/stable/templates/misc/status-messages.html.twig
diff --git a/core/modules/book/templates/book-all-books-block.html.twig b/core/themes/stable/templates/navigation/book-all-books-block.html.twig
similarity index 100%
copy from core/modules/book/templates/book-all-books-block.html.twig
copy to core/themes/stable/templates/navigation/book-all-books-block.html.twig
diff --git a/core/modules/book/templates/book-navigation.html.twig b/core/themes/stable/templates/navigation/book-navigation.html.twig
similarity index 100%
copy from core/modules/book/templates/book-navigation.html.twig
copy to core/themes/stable/templates/navigation/book-navigation.html.twig
diff --git a/core/modules/book/templates/book-tree.html.twig b/core/themes/stable/templates/navigation/book-tree.html.twig
similarity index 100%
copy from core/modules/book/templates/book-tree.html.twig
copy to core/themes/stable/templates/navigation/book-tree.html.twig
diff --git a/core/modules/system/templates/breadcrumb.html.twig b/core/themes/stable/templates/navigation/breadcrumb.html.twig
similarity index 100%
copy from core/modules/system/templates/breadcrumb.html.twig
copy to core/themes/stable/templates/navigation/breadcrumb.html.twig
diff --git a/core/modules/system/templates/links.html.twig b/core/themes/stable/templates/navigation/links.html.twig
similarity index 100%
copy from core/modules/system/templates/links.html.twig
copy to core/themes/stable/templates/navigation/links.html.twig
diff --git a/core/modules/toolbar/templates/menu--toolbar.html.twig b/core/themes/stable/templates/navigation/menu--toolbar.html.twig
similarity index 100%
copy from core/modules/toolbar/templates/menu--toolbar.html.twig
copy to core/themes/stable/templates/navigation/menu--toolbar.html.twig
diff --git a/core/modules/system/templates/menu-local-action.html.twig b/core/themes/stable/templates/navigation/menu-local-action.html.twig
similarity index 100%
copy from core/modules/system/templates/menu-local-action.html.twig
copy to core/themes/stable/templates/navigation/menu-local-action.html.twig
diff --git a/core/modules/system/templates/menu-local-task.html.twig b/core/themes/stable/templates/navigation/menu-local-task.html.twig
similarity index 100%
copy from core/modules/system/templates/menu-local-task.html.twig
copy to core/themes/stable/templates/navigation/menu-local-task.html.twig
diff --git a/core/modules/system/templates/menu-local-tasks.html.twig b/core/themes/stable/templates/navigation/menu-local-tasks.html.twig
similarity index 100%
copy from core/modules/system/templates/menu-local-tasks.html.twig
copy to core/themes/stable/templates/navigation/menu-local-tasks.html.twig
diff --git a/core/modules/system/templates/menu.html.twig b/core/themes/stable/templates/navigation/menu.html.twig
similarity index 100%
copy from core/modules/system/templates/menu.html.twig
copy to core/themes/stable/templates/navigation/menu.html.twig
diff --git a/core/modules/system/templates/pager.html.twig b/core/themes/stable/templates/navigation/pager.html.twig
similarity index 100%
copy from core/modules/system/templates/pager.html.twig
copy to core/themes/stable/templates/navigation/pager.html.twig
diff --git a/core/modules/toolbar/templates/toolbar.html.twig b/core/themes/stable/templates/navigation/toolbar.html.twig
similarity index 100%
copy from core/modules/toolbar/templates/toolbar.html.twig
copy to core/themes/stable/templates/navigation/toolbar.html.twig
diff --git a/core/modules/system/templates/vertical-tabs.html.twig b/core/themes/stable/templates/navigation/vertical-tabs.html.twig
similarity index 100%
copy from core/modules/system/templates/vertical-tabs.html.twig
copy to core/themes/stable/templates/navigation/vertical-tabs.html.twig
diff --git a/core/modules/forum/templates/forum-submitted.html.twig b/core/themes/stable/templates/user/forum-submitted.html.twig
similarity index 100%
copy from core/modules/forum/templates/forum-submitted.html.twig
copy to core/themes/stable/templates/user/forum-submitted.html.twig
diff --git a/core/modules/user/templates/user.html.twig b/core/themes/stable/templates/user/user.html.twig
similarity index 100%
copy from core/modules/user/templates/user.html.twig
copy to core/themes/stable/templates/user/user.html.twig
diff --git a/core/modules/user/templates/username.html.twig b/core/themes/stable/templates/user/username.html.twig
similarity index 100%
copy from core/modules/user/templates/username.html.twig
copy to core/themes/stable/templates/user/username.html.twig
diff --git a/core/modules/views/templates/views-exposed-form.html.twig b/core/themes/stable/templates/views/views-exposed-form.html.twig
similarity index 100%
copy from core/modules/views/templates/views-exposed-form.html.twig
copy to core/themes/stable/templates/views/views-exposed-form.html.twig
diff --git a/core/modules/views/templates/views-mini-pager.html.twig b/core/themes/stable/templates/views/views-mini-pager.html.twig
similarity index 100%
copy from core/modules/views/templates/views-mini-pager.html.twig
copy to core/themes/stable/templates/views/views-mini-pager.html.twig
diff --git a/core/modules/views/templates/views-view-field.html.twig b/core/themes/stable/templates/views/views-view-field.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-field.html.twig
copy to core/themes/stable/templates/views/views-view-field.html.twig
diff --git a/core/modules/views/templates/views-view-fields.html.twig b/core/themes/stable/templates/views/views-view-fields.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-fields.html.twig
copy to core/themes/stable/templates/views/views-view-fields.html.twig
diff --git a/core/modules/views/templates/views-view-grid.html.twig b/core/themes/stable/templates/views/views-view-grid.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-grid.html.twig
copy to core/themes/stable/templates/views/views-view-grid.html.twig
diff --git a/core/modules/views/templates/views-view-grouping.html.twig b/core/themes/stable/templates/views/views-view-grouping.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-grouping.html.twig
copy to core/themes/stable/templates/views/views-view-grouping.html.twig
diff --git a/core/modules/views/templates/views-view-list.html.twig b/core/themes/stable/templates/views/views-view-list.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-list.html.twig
copy to core/themes/stable/templates/views/views-view-list.html.twig
diff --git a/core/modules/views/templates/views-view-mapping-test.html.twig b/core/themes/stable/templates/views/views-view-mapping-test.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-mapping-test.html.twig
copy to core/themes/stable/templates/views/views-view-mapping-test.html.twig
diff --git a/core/modules/views/templates/views-view-opml.html.twig b/core/themes/stable/templates/views/views-view-opml.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-opml.html.twig
copy to core/themes/stable/templates/views/views-view-opml.html.twig
diff --git a/core/modules/views/templates/views-view-row-opml.html.twig b/core/themes/stable/templates/views/views-view-row-opml.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-row-opml.html.twig
copy to core/themes/stable/templates/views/views-view-row-opml.html.twig
diff --git a/core/modules/views/templates/views-view-row-rss.html.twig b/core/themes/stable/templates/views/views-view-row-rss.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-row-rss.html.twig
copy to core/themes/stable/templates/views/views-view-row-rss.html.twig
diff --git a/core/modules/views/templates/views-view-rss.html.twig b/core/themes/stable/templates/views/views-view-rss.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-rss.html.twig
copy to core/themes/stable/templates/views/views-view-rss.html.twig
diff --git a/core/modules/views/templates/views-view-summary-unformatted.html.twig b/core/themes/stable/templates/views/views-view-summary-unformatted.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-summary-unformatted.html.twig
copy to core/themes/stable/templates/views/views-view-summary-unformatted.html.twig
diff --git a/core/modules/views/templates/views-view-summary.html.twig b/core/themes/stable/templates/views/views-view-summary.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-summary.html.twig
copy to core/themes/stable/templates/views/views-view-summary.html.twig
diff --git a/core/modules/views/templates/views-view-table.html.twig b/core/themes/stable/templates/views/views-view-table.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-table.html.twig
copy to core/themes/stable/templates/views/views-view-table.html.twig
diff --git a/core/modules/views/templates/views-view-unformatted.html.twig b/core/themes/stable/templates/views/views-view-unformatted.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view-unformatted.html.twig
copy to core/themes/stable/templates/views/views-view-unformatted.html.twig
diff --git a/core/modules/views/templates/views-view.html.twig b/core/themes/stable/templates/views/views-view.html.twig
similarity index 100%
copy from core/modules/views/templates/views-view.html.twig
copy to core/themes/stable/templates/views/views-view.html.twig
diff --git a/core/themes/stark/stark.info.yml b/core/themes/stark/stark.info.yml
index 70609c1..f6c9ba5 100644
--- a/core/themes/stark/stark.info.yml
+++ b/core/themes/stark/stark.info.yml
@@ -4,3 +4,4 @@ description: 'An intentionally plain theme with no styling to demonstrate defaul
 package: Core
 version: VERSION
 core: 8.x
+base theme: false
