diff --git a/app/bootstrap.php b/app/bootstrap.php
index b62375c317bf2ef5921bb6599fdc5906e6be2c18..f51265aee618ef7240fe5f2da9653b992cd1b964 100644
--- a/app/bootstrap.php
+++ b/app/bootstrap.php
@@ -35,5 +35,5 @@ if (!empty($_SERVER['MAGE_PROFILER'])) {
     \Magento\Framework\Profiler::applyConfig($_SERVER['MAGE_PROFILER'], BP, !empty($_REQUEST['isAjax']));
 }
 if (ini_get('date.timezone') == '') {
-    date_default_timezone_set(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::DEFAULT_TIMEZONE);
+    date_default_timezone_set('UTC');
 }
diff --git a/app/code/Magento/AdminNotification/Block/System/Messages.php b/app/code/Magento/AdminNotification/Block/System/Messages.php
index e2308399af445ee415f6d77564222146e5dc1e7f..9bd1aaf5df08d1333fbba37c4fefa55437a1db67 100644
--- a/app/code/Magento/AdminNotification/Block/System/Messages.php
+++ b/app/code/Magento/AdminNotification/Block/System/Messages.php
@@ -121,8 +121,10 @@ class Messages extends \Magento\Backend\Block\Template
             [
                 'systemMessageDialog' => [
                     'autoOpen' => false,
-                    'width' => 600,
-                    'ajaxUrl' => $this->_getMessagesUrl(),
+                    'width' => '75%',
+                    'modal' => true,
+                    'dialogClass' => 'ui-dialog-active ui-popup-message',
+                    'ajaxUrl' => $this->_getMessagesUrl()
                 ],
             ]
         );
diff --git a/app/code/Magento/AdminNotification/Block/ToolbarEntry.php b/app/code/Magento/AdminNotification/Block/ToolbarEntry.php
index 0f301a162280b8de18da5568a042b349a3e12749..589d318cf43953992036830c73c47399741a4989 100644
--- a/app/code/Magento/AdminNotification/Block/ToolbarEntry.php
+++ b/app/code/Magento/AdminNotification/Block/ToolbarEntry.php
@@ -18,7 +18,17 @@ class ToolbarEntry extends \Magento\Backend\Block\Template
     /**
      * Number of notifications showed on expandable window
      */
-    const NOTIFICATIONS_NUMBER = 4;
+    const NOTIFICATIONS_NUMBER = 3;
+
+    /**
+     * Number of notifications showed on icon
+     */
+    const NOTIFICATIONS_COUNTER_MAX = 99;
+
+    /**
+     * Length of notification description showed by default
+     */
+    const NOTIFICATION_DESCRIPTION_LENGTH = 150;
 
     /**
      * Collection of latest unread notifications
@@ -41,6 +51,26 @@ class ToolbarEntry extends \Magento\Backend\Block\Template
         $this->_notificationList = $notificationList;
     }
 
+    /**
+     * Retrieve notification description start length
+     *
+     * @return int
+     */
+    public function getNotificationDescriptionLength()
+    {
+        return self::NOTIFICATION_DESCRIPTION_LENGTH;
+    }
+
+    /**
+     * Retrieve notification counter max value
+     *
+     * @return int
+     */
+    public function getNotificationCounterMax()
+    {
+        return self::NOTIFICATIONS_COUNTER_MAX;
+    }
+
     /**
      * Retrieve number of unread notifications
      *
@@ -69,13 +99,18 @@ class ToolbarEntry extends \Magento\Backend\Block\Template
      */
     public function formatNotificationDate($dateString)
     {
-        if (date('Ymd') == date('Ymd', strtotime($dateString))) {
-            return $this->formatTime(
-                $dateString,
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
-                false
+        $date = new \DateTime($dateString);
+        if ($date == new \DateTime('today')) {
+            return $this->_localeDate->formatDateTime(
+                $date,
+                \IntlDateFormatter::NONE,
+                \IntlDateFormatter::SHORT
             );
         }
-        return $this->formatDate($dateString, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM, true);
+        return $this->_localeDate->formatDateTime(
+            $date,
+            \IntlDateFormatter::MEDIUM,
+            \IntlDateFormatter::MEDIUM
+        );
     }
 }
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml
index b407b09c385963e265c379ed2e54437f686af001..b93a40dade162f6b92648032860fb0413d2c489f 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml
@@ -6,9 +6,6 @@
  */
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
-    <head>
-        <css src="Magento_Theme::prototype/magento.css"/>
-    </head>
     <body>
         <referenceContainer name="notifications">
             <block class="Magento\AdminNotification\Block\System\Messages" name="system_messages" as="system_messages" before="-" template="Magento_AdminNotification::system/messages.phtml"/>
@@ -16,7 +13,7 @@
             <block class="Magento\AdminNotification\Block\Window" name="notification_window" as="notification_window" acl="Magento_AdminNotification::show_toolbar" template="notification/window.phtml"/>
         </referenceContainer>
         <referenceContainer name="header">
-            <block class="Magento\AdminNotification\Block\ToolbarEntry" before="user" template="toolbar_entry.phtml"/>
+            <block class="Magento\AdminNotification\Block\ToolbarEntry" name="notification.messages" before="user" template="toolbar_entry.phtml"/>
         </referenceContainer>
     </body>
 </page>
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml
index 7a809c558f9e806f575cd23b0ed45c4441db557f..86e2a73f94da5de9cfb192dc31dedd9ce1a70639 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml
@@ -12,19 +12,20 @@
  * @see \Magento\AdminNotification\Block\Window
  */
 ?>
-<div data-mage-init='{"modalPopup": {}}' class="fade critical-notification">
+<div data-mage-init='{"modalPopup": {}}' class="fade critical-notification admin__scope">
     <div class="popup popup-<?php echo preg_replace('#[^a-z0-9]+#', '-', strtolower($block->getSeverityText())) ?>">
         <div class="popup-inner">
-            <header class="popup-header">
-                <h2 class="popup-title"><?php echo $block->getHeaderText(); ?></h2>
-            </header>
+            <div class="popup-header">
+                <div class="popup-title"><?php echo $block->getHeaderText(); ?></div>
+            </div>
             <div class="popup-content">
                 <span><?php echo $block->getSeverityText();?></span>
+
                 <p class="message-text"><?php echo $block->getNoticeMessageText(); ?></p>
 
                 <a href="<?php echo $block->getNoticeMessageUrl(); ?>"><?php echo $block->getReadDetailsText(); ?></a>
             </div>
-            <span class="close" data-dismiss="popup" title="<?php echo __('Close popup'); ?>"><?php echo __('Close'); ?></span>
+            <span class="action close" data-dismiss="popup" title="<?php echo $block->escapeHtml(__('Close popup'));?>"><?php echo __('Close'); ?></span>
         </div>
     </div>
 </div>
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml
index 0b2ca122cb73d3d4e5ccbe43aac1e237451033a7..7526b9ae78842382b13b2986bfbdcca0800e582c 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages.phtml
@@ -10,22 +10,34 @@
 <?php /** @var $block \Magento\AdminNotification\Block\System\Messages */ ?>
 
 <?php $lastCritical = $block->getLastCritical();?>
-<div id="system_messages" class="message-system<?php if ($lastCritical): ?> message-system-unread<?php endif; ?>">
+<div id="system_messages" class="message-system<?php if ($lastCritical): ?> message-system-unread<?php endif; ?> admin__scope">
     <div class="message-system-inner">
         <?php if ($lastCritical): ?>
             <ul class="message-system-list">
-                <li class="error"><!--  warning  -->
+                <li class="message message-warning error">
                     <?php echo $lastCritical->getText();?>
                 </li>
             </ul>
         <?php endif; ?>
         <div class="message-system-short">
-            System Messages:
+            <span class="message-system-short-label">
+                <?php echo __('System Messages:')?>
+            </span>
+
             <?php if ($block->getCriticalCount()): ?>
-                <span class="error"><a href="#" title="<?php echo $block->escapeHtml(__('Critical System Messages'));?>"><?php echo $block->getCriticalCount();?></a></span>
+                <div class="message message-warning error">
+                    <a class="message-link" href="#" title="<?php echo $block->escapeHtml(__('Critical System Messages'));?>">
+                        <?php echo $block->getCriticalCount();?>
+                    </a>
+                </div>
             <?php endif;?>
+
             <?php if ($block->getMajorCount()): ?>
-               <span class="warning"><a href="#" title="<?php echo $block->escapeHtml(__('Major System Messages'));?>"><?php echo $block->getMajorCount();?></a></span>
+               <div class="message message-warning warning">
+                   <a class="message-link" href="#" title="<?php echo $block->escapeHtml(__('Major System Messages'));?>">
+                       <?php echo $block->getMajorCount();?>
+                   </a>
+               </div>
             <?php endif;?>
         </div>
         <div id="message-system-all" title="<?php echo $block->escapeHtml(__('System messages'));?>" data-mage-init='<?php echo $block->escapeHtml($block->getSystemMessageDialogJson());?>'></div>
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
index f39a4f3289c60422461a76c5b3c86f9eb21fd9bc..4bb035acbb5eec6c130ed20c2549d5710288831f 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
@@ -8,15 +8,17 @@
 
 ?>
 <?php /** @var $block \Magento\AdminNotification\Block\System\Messages\UnreadMessagePopup */ ?>
-<div id="system_messages_list" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>">
+
+<div id="system_messages_list" class="admin__scope" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>">
     <ul class="message-system-list">
         <?php foreach ($block->getUnreadMessages() as $message): ?>
-            <li class="<?php echo $block->getItemClass($message);?>">
+            <li class="message message-warning <?php echo $block->getItemClass($message);?>">
                 <?php echo $message->getText();?>
             </li>
         <?php endforeach;?>
     </ul>
 </div>
+
 <script>
 require([
     "jquery",
@@ -27,18 +29,21 @@ require([
         $("#system_messages_list").dialog({
             autoOpen: true,
             resizable: false,
-            width: 650,
+            width: '75%',
+            modal: true,
+            dialogClass: 'ui-popup-message',
             position: {
-                using: function(pos) {
-                    $(this).css({
-                        "position": "absolute",
-                        "top": Math.ceil($(window).height()/2 - $(this).height()/2),
-                        "left": pos.left
-                    });
-                }
+                my: 'left+12.5% top',
+                at: 'center top',
+                of: 'body'
+            },
+            open: function() {
+                $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 10;
+                $(this).closest('.ui-dialog').css('margin-top', topMargin);
             }
         });
     });
-
 });
 </script>
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/toolbar_entry.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/toolbar_entry.phtml
index 31bcc03f7422503c35ad6b9465a71a50e5584848..4eb8992290adff8b14a85fc98e0f1b7b944a812c 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/templates/toolbar_entry.phtml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/toolbar_entry.phtml
@@ -8,40 +8,77 @@
 
 ?>
 <?php /** @var $this \Magento\AdminNotification\Block\ToolbarEntry */ ?>
-<?php $notificationCount = $block->getUnreadNotificationCount(); ?>
-<div data-mage-init='{"toolbarEntry": {}}' class="notifications-summary" data-notification-count="<?php echo $block->escapeHtml($notificationCount); ?>">
+<?php
+    $notificationCount = $block->getUnreadNotificationCount();
+    $notificationCounterMax = $block->getNotificationCounterMax();
+?>
+<div
+    data-mage-init='{"toolbarEntry": {}}'
+    class="notifications-wrapper"
+    data-notification-count="<?php echo $notificationCount; ?>">
     <?php if ($notificationCount > 0) : ?>
-        <a href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>" class="action notifications-action" data-mage-init='{"dropdown":{}}' title="<?php echo __('Notifications'); ?>" data-toggle="dropdown">
-            <span class="text"><?php echo __('Notifications'); ?></span>
-            <span class="counter qty"><?php echo $block->escapeHtml($notificationCount); ?></span>
+        <a
+            href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>"
+            class="notifications-action"
+            data-mage-init='{"dropdown":{}}'
+            title="<?php echo __('Notifications'); ?>"
+            data-toggle="dropdown">
+            <span class="notifications-counter">
+                <?php echo ($notificationCount > $notificationCounterMax) ? $notificationCounterMax . '+' : $notificationCount; ?>
+            </span>
         </a>
-        <ul class="dropdown-menu notifications-list" data-mark-as-read-url="<?php echo $block->getUrl('adminhtml/notification/ajaxMarkAsRead'); ?>">
+        <ul
+            class="notifications-list"
+            data-mark-as-read-url="<?php echo $block->getUrl('adminhtml/notification/ajaxMarkAsRead'); ?>">
             <?php foreach ($block->getLatestUnreadNotifications() as $notification) : ?>
             <?php /** @var $notification \Magento\AdminNotification\Model\Inbox*/ ?>
             <li class="notifications-entry<?php if ($notification->getSeverity() == 1): ?> notifications-critical<?php endif; ?>"
-                data-notification-id="<?php echo $block->escapeHtml($notification->getId()); ?>"
+                data-notification-id="<?php echo $notification->getId(); ?>"
                 data-notification-severity="<?php if ($notification->getSeverity() == 1): ?>1<?php endif; ?>">
-                <strong class="notifications-entry-title"><?php echo $block->escapeHtml($notification->getTitle()); ?></strong>
-                <span class="notifications-entry-description"><?php echo $block->escapeHtml($notification->getDescription()); ?></span>
-                <time class="notifications-entry-time"><?php echo $block->escapeHtml($block->formatNotificationDate($notification->getDateAdded())); ?></time>
-                <button type="button" class="action close notifications-close"><span><?php echo __('Close'); ?></span></button>
-                <div class="notifications-dialog-content" data-title="<?php echo __('Notification'); ?>" data-cancel-caption="<?php echo  __('Cancel'); ?>" data-acknowledge-caption="<?php echo __('Acknowledge'); ?>">
-                    <strong class="notifications-entry-title"><?php echo $block->escapeHtml($notification->getTitle()); ?></strong>
-                    <span class="notifications-entry-description"><?php echo $block->escapeHtml($notification->getDescription()); ?></span>
-                    <div class="actions notifications-entry-actions">
-                        <a class="notifications-url" href="<?php echo $block->escapeUrl($notification->getUrl()); ?>" target="_blank"><?php echo __('Read Details'); ?></a>
-                    </div>
-                    <time class="notifications-entry-time"><?php echo $block->escapeHtml($block->formatNotificationDate($notification->getDateAdded())); ?></time>
-                </div>
+                <?php
+                    $notificationDescription = $block->escapeHtml($notification->getDescription());
+                    $notificationDescriptionLength = $block->getNotificationDescriptionLength();
+                ?>
+                <strong class="notifications-entry-title">
+                    <?php echo $block->escapeHtml($notification->getTitle()); ?>
+                </strong>
+                <?php if (strlen($notificationDescription) > $notificationDescriptionLength) : ?>
+                    <p class="notifications-entry-description _cutted">
+                        <span class="notifications-entry-description-start">
+                            <?php echo substr($notificationDescription, 0, $notificationDescriptionLength); ?>
+                        </span>
+                        <span class="notifications-entry-description-end">
+                            <?php echo substr($notificationDescription, $notificationDescriptionLength); ?>
+                        </span>
+                    </p>
+                <?php else : ?>
+                    <p class="notifications-entry-description">
+                        <?php echo $notificationDescription; ?>
+                    </p>
+                <?php endif; ?>
+                <time class="notifications-entry-time">
+                    <?php echo $block->formatNotificationDate($notification->getDateAdded()); ?>
+                </time>
+                <button
+                    type="button"
+                    class="notifications-close"
+                    title="<?php echo __('Close'); ?>"
+                    ></button>
             </li>
             <?php endforeach; ?>
-            <li class="last">
-                <a href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>" class="action more notification-more"><?php echo __('See All (%1 unread)', $notificationCount); ?></a>
+            <li class="notifications-entry notifications-entry-last">
+                <a
+                    href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>"
+                    class="action-tertiary action-more">
+                    <?php echo __('See All (') ?><span class="notifications-counter"><?php echo $notificationCount ?></span><?php echo __(' unread)'); ?>
+                </a>
             </li>
         </ul>
     <?php else : ?>
-        <a href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>" class="action notifications-action empty" title="<?php echo __('Notifications'); ?>">
-            <span class="text"><?php echo __('Notifications'); ?></span>
+        <a
+            class="notifications-action"
+            href="<?php echo $block->getUrl('adminhtml/notification/index'); ?>"
+            title="<?php echo __('Notifications'); ?>">
         </a>
     <?php endif; ?>
 </div>
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js
index 518b762276b1fbeb2d37569aa9654539617a7f4d..9dcc83c737acfe83c6c7c32d84b4eb572da44a91 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js
+++ b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js
@@ -13,14 +13,16 @@ define([
         options: {
             systemMessageTemplate:
                 '<% _.each(data.items, function(item) { %>' +
-                    '<li class="<% if (item.severity == 1) { %>error<% } else { %>warning<% } %>">' +
+                    '<li class="message message-warning <% if (item.severity == 1) { %>error<% } else { %>warning<% } %>">' +
                         '<%= item.text %>' +
                     '</li>' +
                 '<% }); %>'
         },
 
         open: function (severity) {
-            var superMethod = $.proxy(this._super, this);
+            var superMethod = $.proxy(this._super, this),
+                listTemplate,
+                fullTemplate;
 
             $.ajax({
                 url: this.options.ajaxUrl,
@@ -36,12 +38,12 @@ define([
                 });
 
                 tmpl = $(tmpl);
+                listTemplate = $('<ul class="message-system-list"></ul>').append(tmpl);
+                fullTemplate = $('<div class="admin__scope"></div>').append(listTemplate);
 
-                this.element.html(
-                    $('<ul />', {
-                        'class': 'message-system-list'
-                    }).append(tmpl)
-                ).trigger('contentUpdated');
+                this.element
+                    .html(fullTemplate)
+                    .trigger('contentUpdated');
 
                 superMethod();
             }, this));
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/toolbar_entry.js b/app/code/Magento/AdminNotification/view/adminhtml/web/toolbar_entry.js
index e976bd9a624759e2deae2ec6bbe18d17e6cfed9d..43e4869cdf52625f864894e028715f0bc6de40d7 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/web/toolbar_entry.js
+++ b/app/code/Magento/AdminNotification/view/adminhtml/web/toolbar_entry.js
@@ -6,103 +6,96 @@ define([
     "jquery",
     "jquery/ui",
     "domReady!"
-], function($){
+], function ($) {
     'use strict';
 
     // Mark notification as read via AJAX call
-    var markNotificationAsRead = function(notificationId) {
-        var requestUrl = $('.notifications-summary .dropdown-menu').attr('data-mark-as-read-url');
-        $.ajax({
-            url: requestUrl,
-            type: 'POST',
-            dataType: 'json',
-            data: {
-                id: notificationId
-            },
-            showLoader: false
-        });
-    };
-    var notificationCount = $('.notifications-summary').attr('data-notification-count');
-    // Remove notification from the list
-    var removeNotificationFromList = function(notificationEntry) {
-        notificationEntry.remove();
-        notificationCount--;
-        $('.notifications-summary').attr('data-notification-count', notificationCount);
+    var markNotificationAsRead = function (notificationId) {
+            var requestUrl = $('.notifications-wrapper .notifications-list').attr('data-mark-as-read-url');
+            $.ajax({
+                url: requestUrl,
+                type: 'POST',
+                dataType: 'json',
+                data: {
+                    id: notificationId
+                },
+                showLoader: false
+            });
+        },
 
-        if (notificationCount == 0) {
-            // Change appearance of the bubble and its behavior when the last notification is removed
-            $('.notifications-summary .dropdown-menu').remove();
-            var notificationIcon = $('.notifications-summary .notifications-icon');
-            notificationIcon.removeAttr('data-toggle');
-            notificationIcon.off('click.dropdown');
-            $('.notifications-action .counter').text('');
-            $('.notifications-action .counter').hide();
-        } else {
-            $('.notifications-action .counter').text(notificationCount);
-            // Modify caption of the 'See All' link
-            var actionElement = $('.notifications-summary .dropdown-menu .last .action-more');
-            actionElement.text(actionElement.text().replace(/\d+/, notificationCount));
-        }
-    };
+        notificationCount = $('.notifications-wrapper').attr('data-notification-count'),
 
-    // Show popup with notification details
-    var showNotificationDetails = function(notificationEntry) {
-        var popupElement = notificationEntry.find('.notifications-dialog-content').clone();
-        var notificationId = notificationEntry.attr('data-notification-id');
-        var dialogClassSeverity = 'notifications-entry-dialog';
-        if (notificationEntry.attr('data-notification-severity')) {
-            dialogClassSeverity = 'notifications-entry-dialog notifications-entry-dialog-critical';
-        }
-        popupElement.dialog({
-            title: popupElement.attr('data-title'),
-            minWidth: 500,
-            modal: true,
-            dialogClass: dialogClassSeverity,
-            buttons: [
-                {
-                    text: popupElement.attr('data-acknowledge-caption'),
-                    'class': 'action-acknowledge primary',
-                    click: function(event) {
-                        markNotificationAsRead(notificationId);
-                        removeNotificationFromList(notificationEntry);
-                        $(this).dialog('close');
-                    }
-                },
-                {
-                    text: popupElement.attr('data-cancel-caption'),
-                    'class': 'action-cancel',
-                    click: function(event) {
-                        $(this).dialog('close');
-                    }
+        // Remove notification from the list
+        removeNotificationFromList = function (notificationEntry) {
+            notificationEntry.remove();
+            notificationCount--;
+            $('.notifications-wrapper').attr('data-notification-count', notificationCount);
+
+            if (notificationCount == 0) {
+                // Change appearance of the bubble and its behavior when the last notification is removed
+                $('.notifications-wrapper .notifications-list').remove();
+                var notificationIcon = $('.notifications-wrapper .notifications-icon');
+                notificationIcon.removeAttr('data-toggle');
+                notificationIcon.off('click.dropdown');
+                $('.notifications-action .notifications-counter').text('').hide();
+            } else {
+                // Change top counter only for allowable range
+                if (notificationCount <= 99) {
+                    $('.notifications-action .notifications-counter').text(notificationCount);
                 }
-            ]
-        });
-        popupElement.parent().attr('aria-live','assertive');
-        popupElement.dialog('open');
-    };
+                $('.notifications-entry-last .notifications-counter').text(notificationCount);
+                // Modify caption of the 'See All' link
+                var actionElement = $('.notifications-wrapper .notifications-list .last .action-more');
+                actionElement.text(actionElement.text().replace(/\d+/, notificationCount));
+            }
+        },
+
+        // Show notification details
+        showNotificationDetails = function (notificationEntry) {
+            var notificationDescription = notificationEntry.find('.notifications-entry-description'),
+                notificationDescriptionEnd = notificationEntry.find('.notifications-entry-description-end');
+
+            if (notificationDescriptionEnd.length > 0) {
+                notificationDescriptionEnd.addClass('_show');
+            }
+
+            if(notificationDescription.hasClass('_cutted')) {
+                notificationDescription.removeClass('_cutted');
+            }
+        };
 
     // Show notification description when corresponding item is clicked
-    $('.notifications-summary .dropdown-menu .notifications-entry').on('click.showNotification', function(event) {
+    $('.notifications-wrapper .notifications-list .notifications-entry').on('click.showNotification', function (event) {
         // hide notification dropdown
-        $('.notifications-summary .notifications-icon').trigger('click.dropdown');
+        $('.notifications-wrapper .notifications-icon').trigger('click.dropdown');
+
         showNotificationDetails($(this));
         event.stopPropagation();
+
     });
 
     // Remove corresponding notification from the list and mark it as read
-    $('.notifications-close').on('click.removeNotification', function(event) {
-        var notificationEntry = $(this).closest('.notifications-entry')
-        var notificationId = notificationEntry.attr('data-notification-id');
+    $('.notifications-close').on('click.removeNotification', function (event) {
+        var notificationEntry = $(this).closest('.notifications-entry'),
+            notificationId = notificationEntry.attr('data-notification-id');
+
         markNotificationAsRead(notificationId);
         removeNotificationFromList(notificationEntry);
+
+        // Checking for last unread notification to hide dropdown
+        if (notificationCount == 0) {
+            $('.notifications-wrapper').removeClass('active')
+                                       .find('.notifications-action').removeAttr('data-toggle')
+                                                                     .off('click.dropdown');
+        }
         event.stopPropagation();
     });
 
     // Hide notifications bubble
     if (notificationCount == 0) {
-        $('.notifications-action .counter').hide();
+        $('.notifications-action .notifications-counter').hide();
     } else {
-        $('.notifications-action .counter').show();
+        $('.notifications-action .notifications-counter').show();
     }
-    
+
 });
\ No newline at end of file
diff --git a/app/code/Magento/Backend/App/AbstractAction.php b/app/code/Magento/Backend/App/AbstractAction.php
index cb99c2be306a866dc2faf1183538c0a342467f88..eba77d1795371b747c0f53b4980c72cbc5459a24 100644
--- a/app/code/Magento/Backend/App/AbstractAction.php
+++ b/app/code/Magento/Backend/App/AbstractAction.php
@@ -290,7 +290,7 @@ abstract class AbstractAction extends \Magento\Framework\App\Action\Action
         }
 
         if (is_null($this->_getSession()->getLocale())) {
-            $this->_getSession()->setLocale($this->_localeResolver->getLocaleCode());
+            $this->_getSession()->setLocale($this->_localeResolver->getLocale());
         }
 
         return $this;
diff --git a/app/code/Magento/Backend/Block/Dashboard/Graph.php b/app/code/Magento/Backend/Block/Dashboard/Graph.php
index 91c4d619072bac7d99c3e452ff28da690468faf0..5911a361b02997c4903d7251fc20571a3b4788ad 100644
--- a/app/code/Magento/Backend/Block/Dashboard/Graph.php
+++ b/app/code/Magento/Backend/Block/Dashboard/Graph.php
@@ -99,27 +99,19 @@ class Graph extends \Magento\Backend\Block\Dashboard\AbstractDashboard
      */
     protected $_dashboardData = null;
 
-    /**
-     * @var \Magento\Framework\Locale\ListsInterface
-     */
-    protected $_localeLists = null;
-
     /**
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory
      * @param \Magento\Backend\Helper\Dashboard\Data $dashboardData
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
      * @param array $data
      */
     public function __construct(
         \Magento\Backend\Block\Template\Context $context,
         \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory,
         \Magento\Backend\Helper\Dashboard\Data $dashboardData,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
         array $data = []
     ) {
         $this->_dashboardData = $dashboardData;
-        $this->_localeLists = $localeLists;
         parent::__construct($context, $collectionFactory, $data);
     }
 
@@ -213,6 +205,8 @@ class Graph extends \Magento\Backend\Block\Dashboard\AbstractDashboard
             \Magento\Store\Model\ScopeInterface::SCOPE_STORE
         );
 
+        /** @var \DateTime $dateStart */
+        /** @var \DateTime $dateEnd */
         list($dateStart, $dateEnd) = $this->_collectionFactory->create()->getDateRange(
             $this->getDataHelper()->getParam('period'),
             '',
@@ -220,27 +214,27 @@ class Graph extends \Magento\Backend\Block\Dashboard\AbstractDashboard
             true
         );
 
-        $dateStart->setTimezone($timezoneLocal);
-        $dateEnd->setTimezone($timezoneLocal);
+        $dateStart->setTimezone(new \DateTimeZone($timezoneLocal));
+        $dateEnd->setTimezone(new \DateTimeZone($timezoneLocal));
 
         $dates = [];
         $datas = [];
 
-        while ($dateStart->compare($dateEnd) < 0) {
+        while ($dateStart < $dateEnd) {
             switch ($this->getDataHelper()->getParam('period')) {
                 case '7d':
                 case '1m':
-                    $d = $dateStart->toString('yyyy-MM-dd');
-                    $dateStart->addDay(1);
+                    $d = $dateStart->format('Y-m-d');
+                    $dateStart->modify('+1 day');
                     break;
                 case '1y':
                 case '2y':
-                    $d = $dateStart->toString('yyyy-MM');
-                    $dateStart->addMonth(1);
+                    $d = $dateStart->format('Y-m');
+                    $dateStart->modify('+1 month');
                     break;
                 default:
-                    $d = $dateStart->toString('yyyy-MM-dd HH:00');
-                    $dateStart->addHour(1);
+                    $d = $dateStart->format('Y-m-d H:00');
+                    $dateStart->modify('+1 hour');
             }
             foreach ($this->getAllSeries() as $index => $serie) {
                 if (in_array($d, $this->_axisLabels['x'])) {
@@ -393,26 +387,22 @@ class Graph extends \Magento\Backend\Block\Dashboard\AbstractDashboard
                      */
                     foreach ($this->_axisLabels[$idx] as $_index => $_label) {
                         if ($_label != '') {
+                            $period = new \DateTime($_label);
                             switch ($this->getDataHelper()->getParam('period')) {
                                 case '24h':
-                                    $this->_axisLabels[$idx][$_index] = $this->formatTime(
-                                        new \Magento\Framework\Stdlib\DateTime\Date($_label, 'yyyy-MM-dd HH:00'),
-                                        'short',
-                                        false
+                                    $this->_axisLabels[$idx][$_index] = $this->_localeDate->formatDateTime(
+                                        $period->setTime($period->format('H'), 0, 0),
+                                        \IntlDateFormatter::NONE,
+                                        \IntlDateFormatter::SHORT
                                     );
                                     break;
                                 case '7d':
                                 case '1m':
-                                    $this->_axisLabels[$idx][$_index] = $this->formatDate(
-                                        new \Magento\Framework\Stdlib\DateTime\Date($_label, 'yyyy-MM-dd')
-                                    );
+                                    $this->_axisLabels[$idx][$_index] = $this->_localeDate->formatDateTime($period);
                                     break;
                                 case '1y':
                                 case '2y':
-                                    $formats = $this->_localeLists->getTranslationList('datetime');
-                                    $format = isset($formats['yyMM']) ? $formats['yyMM'] : 'MM/yyyy';
-                                    $format = str_replace(["yyyy", "yy", "MM"], ["Y", "y", "m"], $format);
-                                    $this->_axisLabels[$idx][$_index] = date($format, strtotime($_label));
+                                    $this->_axisLabels[$idx][$_index] = date('m/Y', strtotime($_label));
                                     break;
                             }
                         } else {
diff --git a/app/code/Magento/Backend/Block/Dashboard/Tab/Amounts.php b/app/code/Magento/Backend/Block/Dashboard/Tab/Amounts.php
index bbc3e39f72644c95166a2b5dd38a7d59994a7c35..239c99ceacb32acd4be489c0d50a709b0b6ccbce 100644
--- a/app/code/Magento/Backend/Block/Dashboard/Tab/Amounts.php
+++ b/app/code/Magento/Backend/Block/Dashboard/Tab/Amounts.php
@@ -17,7 +17,6 @@ class Amounts extends \Magento\Backend\Block\Dashboard\Graph
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory
      * @param \Magento\Backend\Helper\Dashboard\Data $dashboardData
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
      * @param \Magento\Backend\Helper\Dashboard\Order $dataHelper
      * @param array $data
      */
@@ -25,12 +24,11 @@ class Amounts extends \Magento\Backend\Block\Dashboard\Graph
         \Magento\Backend\Block\Template\Context $context,
         \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory,
         \Magento\Backend\Helper\Dashboard\Data $dashboardData,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
         \Magento\Backend\Helper\Dashboard\Order $dataHelper,
         array $data = []
     ) {
         $this->_dataHelper = $dataHelper;
-        parent::__construct($context, $collectionFactory, $dashboardData, $localeLists, $data);
+        parent::__construct($context, $collectionFactory, $dashboardData, $data);
     }
 
     /**
diff --git a/app/code/Magento/Backend/Block/Dashboard/Tab/Orders.php b/app/code/Magento/Backend/Block/Dashboard/Tab/Orders.php
index da407c01c3ffa5dcbf0a1359b4b72669a5edadca..1e849cae23d65450657263659c003964f225817a 100644
--- a/app/code/Magento/Backend/Block/Dashboard/Tab/Orders.php
+++ b/app/code/Magento/Backend/Block/Dashboard/Tab/Orders.php
@@ -17,7 +17,6 @@ class Orders extends \Magento\Backend\Block\Dashboard\Graph
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory
      * @param \Magento\Backend\Helper\Dashboard\Data $dashboardData
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
      * @param \Magento\Backend\Helper\Dashboard\Order $dataHelper
      * @param array $data
      */
@@ -25,12 +24,11 @@ class Orders extends \Magento\Backend\Block\Dashboard\Graph
         \Magento\Backend\Block\Template\Context $context,
         \Magento\Reports\Model\Resource\Order\CollectionFactory $collectionFactory,
         \Magento\Backend\Helper\Dashboard\Data $dashboardData,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
         \Magento\Backend\Helper\Dashboard\Order $dataHelper,
         array $data = []
     ) {
         $this->_dataHelper = $dataHelper;
-        parent::__construct($context, $collectionFactory, $dashboardData, $localeLists, $data);
+        parent::__construct($context, $collectionFactory, $dashboardData, $data);
     }
 
     /**
diff --git a/app/code/Magento/Backend/Block/Menu.php b/app/code/Magento/Backend/Block/Menu.php
index 83f63bf04e03ecbc4b15a152c36ade4e6d7783bb..2fd9340e84790a24f546933327de80678b22cc77 100644
--- a/app/code/Magento/Backend/Block/Menu.php
+++ b/app/code/Magento/Backend/Block/Menu.php
@@ -165,7 +165,7 @@ class Menu extends \Magento\Backend\Block\Template
      */
     protected function _renderAnchorCssClass($menuItem, $level)
     {
-        return $this->_isItemActive($menuItem, $level) ? 'active' : '';
+        return $this->_isItemActive($menuItem, $level) ? '_active' : '';
     }
 
     /**
@@ -191,7 +191,7 @@ class Menu extends \Magento\Backend\Block\Template
         $output = ($this->_isItemActive(
             $menuItem,
             $level
-        ) ? 'active' : '') .
+        ) ? '_active' : '') .
             ' ' .
             ($menuItem->hasChildren() ? 'parent' : '') .
             ' ' .
@@ -286,7 +286,7 @@ class Menu extends \Magento\Backend\Block\Template
             'admin_top_nav',
             $this->getActive(),
             $this->_authSession->getUser()->getId(),
-            $this->_localeResolver->getLocaleCode(),
+            $this->_localeResolver->getLocale(),
         ];
         // Add additional key parameters if needed
         $newCacheKeyInfo = $this->getAdditionalCacheKeyInfo();
@@ -315,7 +315,7 @@ class Menu extends \Magento\Backend\Block\Template
      */
     public function renderMenu($menu, $level = 0)
     {
-        $output = '<ul ' . (0 == $level ? 'id="nav"' : '') . ' >';
+        $output = '<ul ' . (0 == $level ? 'id="nav" role="menubar"' : '') . ' >';
 
         /** @var $menuItem \Magento\Backend\Model\Menu\Item  */
         foreach ($this->_getMenuIterator($menu) as $menuItem) {
@@ -326,7 +326,7 @@ class Menu extends \Magento\Backend\Block\Template
                 $level
             ) . '"' . $this->getUiId(
                 $menuItem->getId()
-            ) . '>';
+            ) . 'role="menuitem">';
 
             $output .= $this->_renderAnchor($menuItem, $level);
 
@@ -409,7 +409,10 @@ class Menu extends \Magento\Backend\Block\Template
         $colStops = null;
         if ($level == 0 && $limit) {
             $colStops = $this->_columnBrake($menuItem->getChildren(), $limit);
+            $output .= '<strong class="submenu-title">' . $this->_getAnchorLabel($menuItem) . '</strong>';
+            $output .= '<button class="submenu-close _close"></button>';
         }
+
         $output .= $this->renderNavigation($menuItem->getChildren(), $level + 1, $limit, $colStops);
         $output .= '</div>';
         return $output;
@@ -427,7 +430,7 @@ class Menu extends \Magento\Backend\Block\Template
     public function renderNavigation($menu, $level = 0, $limit = 0, $colBrakes = [])
     {
         $itemPosition = 1;
-        $outputStart = '<ul ' . (0 == $level ? 'id="nav"' : '') . ' >';
+        $outputStart = '<ul ' . (0 == $level ? 'id="nav" role="menubar"' : 'role="menu"') . ' >';
         $output = '';
 
         /** @var $menuItem \Magento\Backend\Model\Menu\Item  */
@@ -437,7 +440,7 @@ class Menu extends \Magento\Backend\Block\Template
             $itemClass = str_replace('_', '-', strtolower($itemName));
 
             if (count($colBrakes) && $colBrakes[$itemPosition]['colbrake']) {
-                $output .= '</ul></li><li class="column"><ul>';
+                $output .= '</ul></li><li class="column"><ul role="menu">';
             }
 
             $output .= '<li ' . $this->getUiId(
@@ -445,7 +448,7 @@ class Menu extends \Magento\Backend\Block\Template
             ) . ' class="item-' . $itemClass . ' ' . $this->_renderItemCssClass(
                 $menuItem,
                 $level
-            ) . '">' . $this->_renderAnchor(
+            ) . '" role="menu-item">' . $this->_renderAnchor(
                 $menuItem,
                 $level
             ) . $this->_addSubMenu(
@@ -457,7 +460,7 @@ class Menu extends \Magento\Backend\Block\Template
         }
 
         if (count($colBrakes) && $limit) {
-            $output = '<li class="column"><ul>' . $output . '</ul></li>';
+            $output = '<li class="column"><ul role="menu">' . $output . '</ul></li>';
         }
 
         return $outputStart . $output . '</ul>';
diff --git a/app/code/Magento/Backend/Block/Page.php b/app/code/Magento/Backend/Block/Page.php
index d8617ee82e1f63e29d1e8f4d94ab267b9124c2c0..146b05237ec8326cf69b76b36330a9d4f08d0c3e 100644
--- a/app/code/Magento/Backend/Block/Page.php
+++ b/app/code/Magento/Backend/Block/Page.php
@@ -52,7 +52,7 @@ class Page extends \Magento\Backend\Block\Template
     public function getLang()
     {
         if (!$this->hasData('lang')) {
-            $this->setData('lang', substr($this->_localeResolver->getLocaleCode(), 0, 2));
+            $this->setData('lang', substr($this->_localeResolver->getLocale(), 0, 2));
         }
         return $this->getData('lang');
     }
diff --git a/app/code/Magento/Backend/Block/Page/Locale.php b/app/code/Magento/Backend/Block/Page/Locale.php
index 93c2e74acb4849007c81881b43d276eb4508e1ef..1f69aa2cb8d8e8059c265c4db70a3ba18c3dc859 100644
--- a/app/code/Magento/Backend/Block/Page/Locale.php
+++ b/app/code/Magento/Backend/Block/Page/Locale.php
@@ -82,8 +82,8 @@ class Locale extends \Magento\Backend\Block\Template
             ->setName('locale')
             ->setId('footer_interface_locale')
             ->setTitle(__('Interface Language'))
-            ->setClass('select locale-switcher-select')
-            ->setValue($this->_localeResolver->getLocale()->__toString())
+            ->setClass('admin__control-select')
+            ->setValue($this->_localeResolver->getLocale())
             ->setOptions($this->_localeLists->getTranslatedOptionLocales())
             ->getHtml();
 
diff --git a/app/code/Magento/Backend/Block/System/Design.php b/app/code/Magento/Backend/Block/System/Design.php
index cb1288e7c8d45414949d5e8cb3d14dbcd5bb9beb..77f6c35c3ac0aad730b67be2cb957378ebe6437d 100644
--- a/app/code/Magento/Backend/Block/System/Design.php
+++ b/app/code/Magento/Backend/Block/System/Design.php
@@ -24,7 +24,7 @@ class Design extends \Magento\Backend\Block\Template
             ]
         );
 
-        $this->getLayout()->getBlock('page-title')->setPageTitle('Store Design Schedule');
+        $this->getLayout()->getBlock('page.title')->setPageTitle('Store Design Schedule');
 
         return parent::_prepareLayout();
     }
diff --git a/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php b/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php
index ccb8788dbb35b49c1a0da746af36ed3948b7f8ed..ccd84b6474c572c64e21c0d04a2a840fef989b57 100644
--- a/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php
+++ b/app/code/Magento/Backend/Block/System/Design/Edit/Tab/General.php
@@ -92,7 +92,7 @@ class General extends \Magento\Backend\Block\Widget\Form\Generic
             ]
         );
 
-        $dateFormat = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $fieldset->addField(
             'date_from',
             'date',
diff --git a/app/code/Magento/Backend/Block/Widget/Button.php b/app/code/Magento/Backend/Block/Widget/Button.php
index 24e5879afc5e3178531e6ce970dd0a5030f5af23..6cb188aeaff559b439d219d15bc04ff6e8010871 100644
--- a/app/code/Magento/Backend/Block/Widget/Button.php
+++ b/app/code/Magento/Backend/Block/Widget/Button.php
@@ -59,7 +59,7 @@ class Button extends \Magento\Backend\Block\Widget
             $title = $this->getLabel();
         }
         $classes = [];
-        $classes[] = 'action-';
+        $classes[] = 'action-default';
         $classes[] = 'scalable';
         if ($this->getClass()) {
             $classes[] = $this->getClass();
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php
index fa7185cca11b7e31e85d93ca6d245090f794ffab..5675f0fcbdadf1f2dc208843a8d0fc3a82dbb1e7 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Date.php
@@ -4,8 +4,6 @@
  * See COPYING.txt for license details.
  */
 
-// @codingStandardsIgnoreFile
-
 namespace Magento\Backend\Block\Widget\Grid\Column\Filter;
 
 /**
@@ -21,7 +19,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
     /**
      * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_localeResolver;
+    protected $localeResolver;
 
     /**
      * @param \Magento\Backend\Block\Context $context
@@ -38,7 +36,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
         array $data = []
     ) {
         $this->mathRandom = $mathRandom;
-        $this->_localeResolver = $localeResolver;
+        $this->localeResolver = $localeResolver;
         parent::__construct($context, $resourceHelper, $data);
     }
 
@@ -48,7 +46,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
     public function getHtml()
     {
         $htmlId = $this->mathRandom->getUniqueHash($this->_getHtmlId());
-        $format = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $format = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $html = '<div class="range" id="' .
             $htmlId .
             '_range"><div class="range-line date">' .
@@ -87,7 +85,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
             $this->_getHtmlName() .
             '[locale]"' .
             ' value="' .
-            $this->_localeResolver->getLocaleCode() .
+            $this->localeResolver->getLocale() .
             '"/>';
         $html .= '<script>
             require(["jquery", "mage/calendar"], function($){
@@ -126,9 +124,10 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
     public function getEscapedValue($index = null)
     {
         $value = $this->getValue($index);
-        if ($value instanceof \Zend_Date) {
-            return $value->toString(
-                $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT)
+        if ($value instanceof \DateTime) {
+            return \IntlDateFormatter::formatObject(
+                $value,
+                $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT)
             );
         }
         return $value;
@@ -142,7 +141,6 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
     {
         if ($index) {
             if ($data = $this->getData('value', 'orig_' . $index)) {
-                //date('Y-m-d', strtotime($data));
                 return $data;
             }
             return null;
@@ -173,11 +171,11 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
         if (isset($value['locale'])) {
             if (!empty($value['from'])) {
                 $value['orig_from'] = $value['from'];
-                $value['from'] = $this->_convertDate($value['from'], $value['locale']);
+                $value['from'] = $this->_convertDate($value['from']);
             }
             if (!empty($value['to'])) {
                 $value['orig_to'] = $value['to'];
-                $value['to'] = $this->_convertDate($value['to'], $value['locale']);
+                $value['to'] = $this->_convertDate($value['to']);
             }
         }
         if (empty($value['from']) && empty($value['to'])) {
@@ -191,36 +189,25 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Filter\AbstractFilt
      * Convert given date to default (UTC) timezone
      *
      * @param string $date
-     * @param string $locale
-     * @return \Magento\Framework\Stdlib\DateTime\Date|null
+     * @return \DateTime|null
      */
-    protected function _convertDate($date, $locale)
+    protected function _convertDate($date)
     {
-        try {
-            $dateObj = $this->_localeDate->date(null, null, $locale, false);
-
-            //set default timezone for store (admin)
-            $dateObj->setTimezone(
-                $this->_scopeConfig->getValue(
-                    $this->_localeDate->getDefaultTimezonePath(),
-                    \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-                )
-            );
-
-            //set beginning of day
-            $dateObj->setHour(00);
-            $dateObj->setMinute(00);
-            $dateObj->setSecond(00);
-
-            //set date with applying timezone of store
-            $dateObj->set($date, \Zend_Date::DATE_SHORT, $locale);
-
-            //convert store date to default date in UTC timezone without DST
-            $dateObj->setTimezone(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::DEFAULT_TIMEZONE);
-
-            return $dateObj;
-        } catch (\Exception $e) {
-            return null;
-        }
+        $adminTimeZone = new \DateTimeZone(
+            $this->_scopeConfig->getValue(
+                $this->_localeDate->getDefaultTimezonePath(),
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
+        $formatter = new \IntlDateFormatter(
+            $this->localeResolver->getLocale(),
+            \IntlDateFormatter::SHORT,
+            \IntlDateFormatter::NONE,
+            $adminTimeZone
+        );
+        $simpleRes = new \DateTime('@' . $formatter->parse($date), $adminTimeZone);
+        $simpleRes->setTime(0, 0, 0);
+        $simpleRes->setTimezone(new \DateTimeZone('UTC'));
+        return $simpleRes;
     }
 }
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
index 3ea98889419dc032726282b4ca3d392b4298a2a8..3d2f0110dfc279e2cf8b6c04774db94d4f194cff 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
@@ -41,14 +41,19 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
             $datetimeTo = $value['to'];
 
             //calculate end date considering timezone specification
+            /** @var $datetimeTo \DateTime */
             $datetimeTo->setTimezone(
-                $this->_scopeConfig->getValue(
-                    $this->_localeDate->getDefaultTimezonePath(),
-                    \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+                new \DateTimeZone(
+                    $this->_scopeConfig->getValue(
+                        $this->_localeDate->getDefaultTimezonePath(),
+                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+                    )
                 )
             );
-            $datetimeTo->addDay(1)->subSecond(1);
-            $datetimeTo->setTimezone(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::DEFAULT_TIMEZONE);
+            $datetimeTo->modify('+1 day')->modify('-1 second');
+            $datetimeTo->setTimezone(
+                new \DateTimeZone('UTC')
+            );
         }
         return $value;
     }
@@ -57,41 +62,26 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
      * Convert given date to default (UTC) timezone
      *
      * @param string $date
-     * @param string $locale
-     * @return \Magento\Framework\Stdlib\DateTime\Date|null
+     * @return \DateTime|null
      */
-    protected function _convertDate($date, $locale)
+    protected function _convertDate($date)
     {
         if ($this->getColumn()->getFilterTime()) {
             try {
-                $dateObj = $this->_localeDate->date(null, null, $locale, false);
-
-                //set default timezone for store (admin)
-                $dateObj->setTimezone(
+                $adminTimeZone = new \DateTimeZone(
                     $this->_scopeConfig->getValue(
                         $this->_localeDate->getDefaultTimezonePath(),
                         \Magento\Store\Model\ScopeInterface::SCOPE_STORE
                     )
                 );
-
-                //set date with applying timezone of store
-                $dateObj->set(
-                    $date,
-                    $this->_localeDate->getDateTimeFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
-                    ),
-                    $locale
-                );
-
-                //convert store date to default date in UTC timezone without DST
-                $dateObj->setTimezone(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::DEFAULT_TIMEZONE);
-
-                return $dateObj;
+                $simpleRes = new \DateTime($date, $adminTimeZone);
+                $simpleRes->setTimezone(new \DateTimeZone('UTC'));
+                return $simpleRes;
             } catch (\Exception $e) {
                 return null;
             }
         }
-        return parent::_convertDate($date, $locale);
+        return parent::_convertDate($date);
     }
 
     /**
@@ -102,12 +92,12 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
     public function getHtml()
     {
         $htmlId = $this->mathRandom->getUniqueHash($this->_getHtmlId());
-        $format = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $format = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $timeFormat = '';
 
         if ($this->getColumn()->getFilterTime()) {
             $timeFormat = $this->_localeDate->getTimeFormat(
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+                \IntlDateFormatter::SHORT
             );
         }
 
@@ -132,7 +122,7 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
                 'to'
             ) . '/>' . '</div></div>';
         $html .= '<input type="hidden" name="' . $this->_getHtmlName() . '[locale]"' . ' value="'
-            . $this->_localeResolver->getLocaleCode() . '"/>';
+            . $this->localeResolver->getLocale() . '"/>';
         $html .= '<script>
             require(["jquery", "mage/calendar"],function($){
                     $("#' . $htmlId . '_range").dateRange({
@@ -163,12 +153,8 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
     {
         if ($this->getColumn()->getFilterTime()) {
             $value = $this->getValue($index);
-            if ($value instanceof \Zend_Date) {
-                return $value->toString(
-                    $this->_localeDate->getDateTimeFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
-                    )
-                );
+            if ($value instanceof \DateTime) {
+                return $this->_localeDate->formatDateTime($value);
             }
             return $value;
         }
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Date.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Date.php
index 59eff5872dd090ca304d880c4f43393efc21b849..320c05567a6f72fed1e30d6401f8377b12b4f238 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Date.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Date.php
@@ -43,7 +43,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRe
             if (is_null(self::$_format)) {
                 try {
                     self::$_format = $this->_localeDate->getDateFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+                        \IntlDateFormatter::MEDIUM
                     );
                 } catch (\Exception $e) {
                     $this->_logger->critical($e);
@@ -64,30 +64,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRe
     {
         if ($data = $row->getData($this->getColumn()->getIndex())) {
             $format = $this->_getFormat();
-            try {
-                if ($this->getColumn()->getGmtoffset()) {
-                    $data = $this->_localeDate->date(
-                        $data,
-                        \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-                    )->toString(
-                        $format
-                    );
-                } else {
-                    $data = $this->_localeDate->date($data, \Zend_Date::ISO_8601, null, false)->toString($format);
-                }
-            } catch (\Exception $e) {
-                if ($this->getColumn()->getTimezone()) {
-                    $data = $this->_localeDate->date(
-                        $data,
-                        \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-                    )->toString(
-                        $format
-                    );
-                } else {
-                    $data = $this->_localeDate->date($data, null, null, false)->toString($format);
-                }
-            }
-            return $data;
+            return \IntlDateFormatter::formatObject($this->_localeDate->date(new \DateTime($data)), $format);
         }
         return $this->getColumn()->getDefault();
     }
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Datetime.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Datetime.php
index 0a5e6f96d39eb3bc769fcf0e058c4753b8dcf85b..674041d975e251aef00409198df1dae514d6dd96 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Datetime.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Renderer/Datetime.php
@@ -11,36 +11,6 @@ namespace Magento\Backend\Block\Widget\Grid\Column\Renderer;
 
 class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
 {
-    /**
-     * Date format string
-     *
-     * @var string
-     */
-    protected static $_format = null;
-
-    /**
-     * Retrieve datetime format
-     *
-     * @return string|null
-     */
-    protected function _getFormat()
-    {
-        $format = $this->getColumn()->getFormat();
-        if (!$format) {
-            if (is_null(self::$_format)) {
-                try {
-                    self::$_format = $this->_localeDate->getDateTimeFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
-                    );
-                } catch (\Exception $e) {
-                    $this->_logger->critical($e);
-                }
-            }
-            $format = self::$_format;
-        }
-        return $format;
-    }
-
     /**
      * Renders grid column
      *
@@ -49,24 +19,13 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Abstra
      */
     public function render(\Magento\Framework\Object $row)
     {
+        $format = $this->getColumn()->getFormat();
         if ($data = $this->_getValue($row)) {
-            $format = $this->_getFormat();
-            try {
-                $data = $this->_localeDate->date(
-                    $data,
-                    \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-                )->toString(
-                    $format
-                );
-            } catch (\Exception $e) {
-                $data = $this->_localeDate->date(
-                    $data,
-                    \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-                )->toString(
-                    $format
-                );
-            }
-            return $data;
+            return $this->_localeDate->formatDateTime(
+                $data instanceof \DateTimeInterface ? $data : new \DateTime($data),
+                $format ?: \IntlDateFormatter::MEDIUM,
+                $format ?: \IntlDateFormatter::MEDIUM
+            );
         }
         return $this->getColumn()->getDefault();
     }
diff --git a/app/code/Magento/Backend/Helper/Data.php b/app/code/Magento/Backend/Helper/Data.php
index bfc14df5c049534970f5e33e0bbb75d0c7c39167..e54179a3a50d74b9d43fdf5d312c111ecb90d076 100644
--- a/app/code/Magento/Backend/Helper/Data.php
+++ b/app/code/Magento/Backend/Helper/Data.php
@@ -105,7 +105,7 @@ class Data extends AbstractHelper
                 }
             }
             $url = 'http://www.magentocommerce.com/gethelp/';
-            $url .= $this->_locale->getLocaleCode() . '/';
+            $url .= $this->_locale->getLocale() . '/';
             $url .= $frontModule . '/';
             $url .= $request->getControllerName() . '/';
             $url .= $request->getActionName() . '/';
diff --git a/app/code/Magento/Backend/Model/Locale/Resolver.php b/app/code/Magento/Backend/Model/Locale/Resolver.php
index 767f3d71041b7c2a823a126777f2825010949223..b27fcf1468311129e3e307ef0ffa57909ea2e08d 100644
--- a/app/code/Magento/Backend/Model/Locale/Resolver.php
+++ b/app/code/Magento/Backend/Model/Locale/Resolver.php
@@ -32,8 +32,6 @@ class Resolver extends \Magento\Framework\Locale\Resolver
 
     /**
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\App\CacheInterface $cache
-     * @param \Magento\Framework\LocaleFactory $localeFactory
      * @param string $defaultLocalePath
      * @param string $scopeType
      * @param \Magento\Backend\Model\Session $session
@@ -45,8 +43,6 @@ class Resolver extends \Magento\Framework\Locale\Resolver
      */
     public function __construct(
         \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\App\CacheInterface $cache,
-        \Magento\Framework\LocaleFactory $localeFactory,
         $defaultLocalePath,
         $scopeType,
         \Magento\Backend\Model\Session $session,
@@ -59,7 +55,7 @@ class Resolver extends \Magento\Framework\Locale\Resolver
         $this->_localeManager = $localeManager;
         $this->_request = $request;
         $this->_localeValidator = $localeValidator;
-        parent::__construct($scopeConfig, $cache, $localeFactory, $defaultLocalePath, $scopeType, $locale);
+        parent::__construct($scopeConfig, $defaultLocalePath, $scopeType, $locale);
     }
 
     /**
@@ -70,8 +66,6 @@ class Resolver extends \Magento\Framework\Locale\Resolver
      */
     public function setLocale($locale = null)
     {
-        parent::setLocale($locale);
-
         $forceLocale = $this->_request->getParam('locale', null);
         if (!$this->_localeValidator->isValid($forceLocale)) {
             $forceLocale = false;
@@ -83,9 +77,9 @@ class Resolver extends \Magento\Framework\Locale\Resolver
         $localeCodes = array_filter([$forceLocale, $sessionLocale, $userLocale]);
 
         if (count($localeCodes)) {
-            $this->setLocaleCode(reset($localeCodes));
+            $locale = reset($localeCodes);
         }
 
-        return $this;
+        return parent::setLocale($locale);
     }
 }
diff --git a/app/code/Magento/Backend/Model/Observer.php b/app/code/Magento/Backend/Model/Observer.php
index 285ffdd4d0b18cbe69d91427261af1a2f8c218d8..79f92228efc4917f764d6ac38417c763fce7317e 100644
--- a/app/code/Magento/Backend/Model/Observer.php
+++ b/app/code/Magento/Backend/Model/Observer.php
@@ -10,48 +10,20 @@ namespace Magento\Backend\Model;
  */
 class Observer
 {
-    /**
-     * @var \Magento\Backend\Model\Session
-     */
-    protected $backendSession;
-
     /**
      * @var \Magento\Framework\App\Cache\Frontend\Pool
      */
     private $cacheFrontendPool;
 
     /**
-     * Initialize dependencies
-     *
-     * @param Session $backendSession
      * @param \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
      */
     public function __construct(
-        \Magento\Backend\Model\Session $backendSession,
         \Magento\Framework\App\Cache\Frontend\Pool $cacheFrontendPool
     ) {
-        $this->backendSession = $backendSession;
         $this->cacheFrontendPool = $cacheFrontendPool;
     }
 
-    /**
-     * Bind locale
-     *
-     * @param \Magento\Framework\Event\Observer $observer
-     * @return $this
-     */
-    public function bindLocale($observer)
-    {
-        $locale = $observer->getEvent()->getLocale();
-        if ($locale) {
-            $selectedLocale = $this->backendSession->getLocale();
-            if ($selectedLocale) {
-                $locale->setLocaleCode($selectedLocale);
-            }
-        }
-        return $this;
-    }
-
     /**
      * Clear result of configuration files access level verification in system cache
      *
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/admin_login.xml b/app/code/Magento/Backend/view/adminhtml/layout/admin_login.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35b8eebed0c28a3583f920c5e47f21a950bf7bfd
--- /dev/null
+++ b/app/code/Magento/Backend/view/adminhtml/layout/admin_login.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-login" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="styles" />
+    <body>
+        <!-- @todo ui: - delete after bugfix -->
+        <remove name="legal"/>
+        <remove name="page.menu"/>
+        <remove name="header"/>
+        <remove name="page.title"/>
+        <remove name="user"/>
+        <remove name="header.wrapper.scope"/>
+
+        <remove name="global.search"/>
+        <remove name="notification.messages"/>
+        <!-- @todo ui: - end -->
+
+        <move element="messages" destination="login.content" before="-"/>
+        <move element="copyright" destination="login.footer" before="-"/>
+        <move element="logo" destination="login.header" before="-"/>
+        <referenceBlock name="logo">
+            <arguments>
+                <argument name="logo_image_src" xsi:type="string">images/magento-logo.svg</argument>
+            </arguments>
+        </referenceBlock>
+
+    </body>
+</page>
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml
index 40b165ddf087e691917fc3c977a66869fd667149..8c2213fd721424a9fc64c5e63fe2124196dba4d3 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml
@@ -5,12 +5,11 @@
  * See COPYING.txt for license details.
  */
 -->
-<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="empty" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="admin_login" />
     <body>
-        <remove name="legal"/>
-        <referenceContainer name="main.content">
-            <block class="Magento\Backend\Block\Template" name="content" template="admin/login.phtml">
-                <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright"/>
+        <referenceContainer name="login.content">
+            <block class="Magento\Backend\Block\Template" name="admin.login" template="admin/login.phtml">
                 <container name="form.additional.info" label="Form Additional Info"/>
                 <container name="form.buttons" label="Form Buttons">
                     <block class="Magento\Backend\Block\Template" name="adminhtml_auth_login_buttons" template="admin/login_buttons.phtml"/>
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml
index e02a071da919ee8dc863f2270c484f1f037cd871..a28e0fa25d6816678da725dd37b491198dda25fe 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml
@@ -6,6 +6,7 @@
  */
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="styles" />
     <body>
         <referenceContainer name="page.main.actions">
             <block class="Magento\Backend\Block\Store\Switcher" name="store_switcher" as="store_switcher" template="Magento_Backend::store/switcher.phtml">
@@ -13,11 +14,10 @@
                     <argument name="params" xsi:type="string">0</argument>
                 </action>
             </block>
+            <block class="Magento\Backend\Block\Template" name="refresh_statistics" after="store_switcher" template="Magento_Backend::dashboard/totalbar/refreshstatistics.phtml"/>
         </referenceContainer>
         <referenceContainer name="content">
-            <block class="Magento\Backend\Block\Dashboard" name="dashboard">
-                <block class="Magento\Backend\Block\Template" name="refresh_statistics" template="Magento_Backend::dashboard/totalbar/refreshstatistics.phtml"/>
-            </block>
+            <block class="Magento\Backend\Block\Dashboard" name="dashboard"/>
         </referenceContainer>
     </body>
 </page>
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index 1dbedf36313a9965d4aa9175644c40c805fd5b43..d7b6b01231109012cd0fbda2829fea6bf2267fe6 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -9,7 +9,6 @@
     <head>
         <title>Magento Admin</title>
         <link src="requirejs/require.js"/>
-        <css src="mage/calendar.css"/>
         <css src="extjs/resources/css/ext-all.css"/>
         <css src="extjs/resources/css/ytheme-magento.css"/>
     </head>
@@ -24,9 +23,10 @@
                 <arguments>
                     <argument name="show_part" xsi:type="string">logo</argument>
                     <argument name="edition" translate="true" xsi:type="string">Community Edition</argument>
+                    <argument name="logo_image_src" xsi:type="string">images/magento-icon.svg</argument>
                 </arguments>
             </block>
-            <block class="Magento\Backend\Block\GlobalSearch" as="search" after="logo" acl="Magento_Backend::global_search"/>
+            <block class="Magento\Backend\Block\GlobalSearch" name="global.search" as="search" after="logo" acl="Magento_Backend::global_search"/>
             <block class="Magento\Backend\Block\Page\Header" name="user" after="-">
                 <arguments>
                     <argument name="show_part" xsi:type="string">user</argument>
@@ -46,7 +46,7 @@
             <block class="Magento\Framework\View\Element\Template" name="js_translate" as="js_translate" template="Magento_Backend::page/js/translate.phtml"/>
         </referenceContainer>
         <referenceContainer name="main.top">
-            <block class="Magento\Theme\Block\Html\Title" name="page-title" template="title.phtml"/>
+            <block class="Magento\Theme\Block\Html\Title" name="page.title" template="title.phtml"/>
         </referenceContainer>
         <referenceContainer name="page.messages">
             <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages"/>
@@ -56,9 +56,10 @@
         </referenceContainer>
         <referenceContainer name="footer">
             <block class="Magento\Backend\Block\Page\Locale" name="locale.switcher" template="Magento_Backend::page/locale.phtml"/>
-            <container name="legal" htmlTag="div" htmlClass="footer-legal">
-                <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright"/>
-                <block class="Magento\Backend\Block\Page\Footer" name="version" as="version">
+            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-6 col-m-offset-1">
+                <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
+                <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
+                <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
                     <arguments>
                         <argument name="bugreport_url" xsi:type="string">https://github.com/magento/magento2/issues</argument>
                     </arguments>
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/editor.xml b/app/code/Magento/Backend/view/adminhtml/layout/editor.xml
index 887e846d529ee4b4ed440af48f15785f04c9bee8..891c280df8b3244e210326cca6d5ccbe2df755c4 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/editor.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/editor.xml
@@ -9,7 +9,6 @@
     <head>
         <link src="Magento_Backend::js/bootstrap/editor.js"/>
         <css src="prototype/windows/themes/default.css"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
     </head>
     <body/>
 </page>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml
index 42fb2911b9a1e48079976bd8fbe80078c3a2f511..1d1cb81fd064a8dce77e3e6b76b8675672293118 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml
@@ -7,46 +7,27 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div id="page-login" class="page-login">
-    <div class="wrapper">
-        <div class="wrapper-inner">
-            <div class="form-login form-inline">
-                <header class="header">
-                    <div class="logo" title="<?php echo __('Magento Admin Panel') ?>"><span><?php echo __('Magento Admin Panel') ?></span></div>
-                </header>
-                <div id="messages" data-container-for="messages">
-                    <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?>
-                </div>
-                <form method="post" action="" id="login-form" data-mage-init='{"form": {}, "validation": {}}' autocomplete="off">
-                    <fieldset class="fieldset">
-                        <legend class="legend"><span><?php echo __('Welcome') ?></span></legend><br/>
-                        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey() ?>" />
-                        <div class="field field-username">
-                            <label for="username" class="label"><span><?php echo __('User Name:') ?></span></label>
-                            <div class="control">
-                                <input type="text" id="username" name="login[username]" autofocus value="" class="required-entry input-text" placeholder="<?php echo __('user name') ?>" />
-                            </div>
-                        </div>
-                        <div class="field field-password">
-                            <label for="login" class="label"><?php echo __('Password:') ?></label>
-                            <div class="control">
-                                <!-- This is a dummy hidden field to trick firefox from auto filling the password -->
-                                <input type="text" class="input-text no-display" name="dummy" id="dummy" />
-                                <input type="password" id="login" name="login[password]" class="required-entry input-text" value="" placeholder="<?php echo __('password') ?>" />
-                            </div>
-                        </div>
-                        <?php echo $block->getChildHtml('form.additional.info'); ?>
-                        <div class="form-actions">
-                            <?php echo $block->getChildHtml('form.buttons'); ?>
-                        </div>
-                    </fieldset>
-                </form>
+<form method="post" action="" id="login-form" data-mage-init='{"form": {}, "validation": {}}' autocomplete="off">
+    <fieldset class="admin__fieldset">
+        <legend class="admin__legend"><span><?php echo __('Welcome, please sign in') ?></span></legend><br/>
+        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey() ?>" />
+        <div class="admin__field _required field-username">
+            <label for="username" class="admin__field-label"><span><?php echo __('Username') ?></span></label>
+            <div class="admin__field-control">
+                <input type="text" id="username" name="login[username]" autofocus value="" data-validate="{required:true}" class="admin__control-text" placeholder="<?php echo __('user name') ?>" />
             </div>
         </div>
-    </div>
-    <footer class="footer">
-        <div class="footer-content">
-            <div class="footer-copyright"><?php echo $block->getChildHtml('copyright');?></div>
+        <div class="admin__field _required field-password">
+            <label for="login" class="admin__field-label"><span><?php echo __('Password') ?></span></label>
+            <div class="admin__field-control">
+                <!-- This is a dummy hidden field to trick firefox from auto filling the password -->
+                <input type="text" class="admin__control-dummy" name="dummy" id="dummy" />
+                <input type="password" id="login" name="login[password]" data-validate="{required:true}" class="admin__control-text" value="" placeholder="<?php echo __('password') ?>" />
+            </div>
+        </div>
+        <?php echo $block->getChildHtml('form.additional.info'); ?>
+        <div class="form-actions">
+            <?php echo $block->getChildHtml('form.buttons'); ?>
         </div>
-    </footer>
-</div>
+    </fieldset>
+</form>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/login_buttons.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/login_buttons.phtml
index f114e113e47c61add118a20e92fdfd46135d05b1..6d155f3d05cc5a7e1209cce110f2415b8ceed68b 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/admin/login_buttons.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/login_buttons.phtml
@@ -5,7 +5,9 @@
  */
 ?>
 <div class="actions">
-    <button <?php $block->getUiId(); ?> class="action-login primary" title="<?php echo __('Log in')?>" type="submit">
-        <span><?php echo __('Log in')?></span>
+    <button
+        <?php $block->getUiId(); ?>
+        class="action-login action-primary"
+        <span><?php echo __('Sign in')?></span>
     </button>
 </div>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml
index cc0a12deffa8ee5702fef48f496ba5c897ce4bcf..fdbae02504f6efe82612d11c8204dd72f2f113e0 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml
@@ -17,7 +17,9 @@
                 </div>
                 <div class="main-col" id="content">
                     <div class="main-col-inner">
-                        <div id="messages" data-container-for="messages"><?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?></div>
+                        <div id="messages" class="messages" data-container-for="messages">
+                            <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?>
+                        </div>
                         <?php echo $block->getChildHtml('content') ?>
                     </div>
                 </div>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml
index 0b8f119a2c375fb7c65332be2c6b996e702a3761..1015ad460f45f306e85ef6dfc2fff114aadf9d79 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/page.phtml
@@ -25,10 +25,12 @@
         <?php echo $block->getChildHtml('menu') ?>
         <?php echo $block->getChildHtml('notifications'); ?>
 
-        <section class="page-content" id="anchor-content">
+        <main class="page-content" id="anchor-content">
             <?php echo $block->getChildHtml('main-top'); ?>
-            <div id="messages" data-container-for="messages" class="messages">
-                <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?>
+            <div class="admin__scope">
+                <div class="messages" id="messages" data-container-for="messages">
+                    <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?>
+                </div>
             </div>
             <?php echo $block->getChildHtml('page_main_actions'); ?>
             <?php if ($block->getChildHtml('left')): ?>
@@ -46,12 +48,12 @@
                     <?php echo $block->getChildHtml('content') ?>
                 </div>
             <?php endif; ?>
-        </section>
+        </main>
 
         <?php echo $block->getChildHtml('js') ?>
-        <div class="page-footer-wrapper">
+        <footer class="page-footer">
             <?php echo $block->getChildHtml('footer') ?>
-        </div>
+        </footer>
     </div>
     <?php echo $block->getChildHtml('before_body_end') ?>
 </body>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/graph.phtml b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/graph.phtml
index 9e03fffabbccf4f4a485d16fee76708661e9af67..9d7ae05f61fca8eff589949f47f7f2dd8cea1328 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/graph.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/graph.phtml
@@ -9,21 +9,19 @@
 ?>
 <div class="dashboard-diagram">
     <div class="dashboard-diagram-switcher">
-        <label for="order_<?php echo $block->getHtmlId() ?>_period" class="label"><?php echo __('Select Range:') ?></label>
-        <div class="form-select-label">
-            <select name="period" id="order_<?php echo $block->getHtmlId() ?>_period"
-                    onchange="changeDiagramsPeriod(this);" class="form-el-select">
-                <?php foreach ($this->helper('Magento\Backend\Helper\Dashboard\Data')->getDatePeriods() as $value => $label): ?>
-                    <?php if (in_array($value, ['custom'])) {
-                        continue;
-                    } ?>
-                    <option
-                        value="<?php echo $value ?>"
-                        <?php if ($block->getRequest()->getParam('period') == $value): ?> selected="selected"<?php endif; ?>
-                        ><?php echo $label ?></option>
-                <?php endforeach; ?>
-            </select>
-        </div>
+        <label for="order_<?php echo $block->getHtmlId() ?>_period"
+               class="label"><?php echo __('Select Range:') ?></label>
+        <select name="period" id="order_<?php echo $block->getHtmlId() ?>_period"
+                onchange="changeDiagramsPeriod(this);" class="admin__control-select">
+            <?php foreach ($this->helper('Magento\Backend\Helper\Dashboard\Data')->getDatePeriods() as $value => $label): ?>
+                <?php if (in_array($value, ['custom'])) {
+                    continue;
+                } ?>
+                <option value="<?php echo $value ?>"
+                    <?php if ($block->getRequest()->getParam('period') == $value): ?> selected="selected"<?php endif; ?>
+                    ><?php echo $label ?></option>
+            <?php endforeach; ?>
+        </select>
     </div>
     <?php if ($block->getCount()): ?>
     <div class="dashboard-diagram-image">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/totalbar/refreshstatistics.phtml b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/totalbar/refreshstatistics.phtml
index 113f72d369059b8665d4d4103202434d2bae5187..82c404c077f38884b6387f735bc0c311168a90d2 100755
--- a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/totalbar/refreshstatistics.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/totalbar/refreshstatistics.phtml
@@ -4,9 +4,23 @@
  * See COPYING.txt for license details.
  */
 ?>
-<form action="<?php echo $block->getUrl('*/*/refreshStatistics'); ?>" method="post">
-    <input name="form_key" type="hidden" value="<?php echo $block->getFormKey(); ?>" />
-    <button type="submit" style="float:right; margin: 15px"  title="Refresh Data">
-        <?php echo __('Refresh Data') ?>
-    </button>
-</form>
+<div class="page-actions">
+    <div class="page-actions-inner">
+        <div class="page-actions-buttons">
+            <form
+                action="<?php echo $block->getUrl('*/*/refreshStatistics'); ?>"
+                method="post">
+                <input
+                    name="form_key"
+                    type="hidden"
+                    value="<?php echo $block->getFormKey(); ?>"/>
+                <button
+                    class="action-primary"
+                    type="submit"
+                    title="Refresh Data">
+                    <?php echo __('Reload Data') ?>
+                </button>
+            </form>
+        </div>
+    </div>
+</div>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/menu.phtml b/app/code/Magento/Backend/view/adminhtml/templates/menu.phtml
index ca07b653a1c7fc1409fa605a79951f811e82e85c..b486dee3d31f052d2b7a027dbdf7b0d8bdfa7c62 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/menu.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/menu.phtml
@@ -7,6 +7,9 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<nav data-mage-init='{"globalNavigation": {}}' class="navigation">
+
+
+<nav data-mage-init='{"globalNavigation": {}}' class="admin__menu" role="navigation">
     <?php echo $block->renderNavigation($block->getMenuModel(), 0, 12); ?>
 </nav>
+
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
index d32b9b4f5c4ab7558209c2712384758d2e3c45b4..8f4f129daa238e9ac274ef61ac698aad1b4b7781 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
@@ -7,6 +7,7 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<small class="copyright">
-    <?php echo __('Magento is an eBay Inc. company. Copyright&copy; %1 Magento, Inc. All rights reserved.', date('Y')) ?>
-</small>
+<p class="copyright">
+    <a class="link-copyright" href="http://magento.com" target="_blank" title="<?php echo __('Magento') ?>"></a>
+    <?php echo __('Copyright &copy; %1 Magento, Inc. All rights reserved.', date('Y')) ?>
+</p>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/footer.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/footer.phtml
index 3a59bf835f549a3b85a24359b78c291016769bcb..065826fa1c02b1b79c7d5486fac7c09c1a4cc877 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/footer.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/footer.phtml
@@ -7,7 +7,7 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<small class="magento-version"><?php echo __('Magento ver. %1', \Magento\Framework\AppInterface::VERSION) ?></small>
-<?php if ($block->getBugreportUrl()): ?>
-<a class="link-report" href="<?php echo $block->getBugreportUrl(); ?>" id="footer_bug_tracking"><?php echo __('Help Us Keep Magento Healthy - Report All Bugs') ?></a>
-<?php endif; ?>
+<p class="magento-version">
+    <strong><?php echo __('Magento'); ?></strong>
+    <?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
+</p>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml
index f7635da3c5804c60c85931168ee7e9620752a4ec..6e90069f9ee6c87bfcc4119b16c78d46ecfd3583 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml
@@ -10,23 +10,54 @@
 ?>
 <?php switch ($block->getShowPart()):
     case 'logo': ?>
-        <?php $edition = $block->getEdition() ? 'data-edition="' . $block->getEdition() . '"' : ''; ?>
-        <a href="<?php echo $block->getHomeLink() ?>" <?php echo $edition; ?> class="logo" title="<?php echo __('Magento Admin Panel') ?>"><span><?php echo __('Magento Admin Panel') ?></span></a>
+        <?php $edition = $block->hasEdition() ? 'data-edition="' . $block->escapeHtml($block->getEdition()) . '"' : ''; ?>
+        <?php $logoSrc = ($block->hasLogoImageSrc()) ? $block->escapeHtml($block->getLogoImageSrc()) : 'images/magento-logo.svg' ?>
+        <a
+            href="<?php echo $block->getHomeLink() ?>"
+            <?php echo $edition; ?>
+            class="logo">
+            <img class="logo-img" src="<?php echo $block->getViewFileUrl($logoSrc) ?>"
+            alt="<?php echo $block->escapeHtml(__('Magento Admin Panel')) ?>"/>
+        </a>
     <?php break; ?>
     <?php case 'user': ?>
         <div class="admin-user">
-            <a href="<?php echo $block->getUrl('adminhtml/system_account/index') ?>" class="admin-user-account" title="<?php echo __('My Account') ?>" data-mage-init='{"dropdown":{}}' data-toggle="dropdown">
-                <?php echo $block->escapeHtml($block->getUser()->getUsername()); ?>
+            <a
+                href="<?php echo $block->getUrl('adminhtml/system_account/index') ?>"
+                class="admin-user-account"
+                title="<?php echo $block->escapeHtml(__('My Account')) ?>"
+                data-mage-init='{"dropdown":{}}'
+                data-toggle="dropdown">
+                <span class="admin-user-account-text-wrapper">
+                    <span class="admin-user-account-text"><?php echo $block->escapeHtml($block->getUser()->getUsername()); ?></span>
+                </span>
             </a>
-            <ul class="dropdown-menu admin-user-menu">
+            <ul class="admin-user-menu">
                 <?php if ($block->getAuthorization()->isAllowed('Magento_Backend::myaccount')): ?>
                 <li>
-                    <a href="<?php echo $block->getUrl('adminhtml/system_account/index') ?>" <?php echo $block->getUiId('user', 'account', 'settings')?> title="<?php echo __('Account Setting') ?>"><?php echo __('Account Setting') ?> <span><?php echo $block->escapeHtml($block->getUser()->getUsername()); ?></span></a>
+                    <a
+                        href="<?php echo $block->getUrl('adminhtml/system_account/index') ?>"
+                        <?php echo $block->getUiId('user', 'account', 'settings')?>
+                        title="<?php echo $block->escapeHtml(__('Account Setting')) ?>">
+                        <?php echo __('Account Setting') ?> (<span class="admin-user-name"><?php echo $block->escapeHtml($block->getUser()->getUsername()); ?></span>)
+                    </a>
                 </li>
                 <?php endif; ?>
-                <li><a href="<?php echo $block->getBaseUrl(); ?>" title="<?php echo __('Customer View'); ?>" target="_blank" class="store-front"><?php echo __('Customer View'); ?></a></li>
                 <li>
-                    <a href="<?php echo $block->getLogoutLink() ?>" class="account-signout" title="<?php echo __('Sign Out') ?>"><?php echo __('Sign Out') ?></a>
+                    <a
+                        href="<?php echo $block->getBaseUrl(); ?>"
+                        title="<?php echo $block->escapeHtml(__('Customer View')); ?>"
+                        target="_blank" class="store-front">
+                        <?php echo __('Customer View'); ?>
+                    </a>
+                </li>
+                <li>
+                    <a
+                        href="<?php echo $block->getLogoutLink() ?>"
+                        class="account-signout"
+                        title="<?php echo $block->escapeHtml(__('Sign Out')) ?>">
+                        <?php echo __('Sign Out') ?>
+                    </a>
                 </li>
             </ul>
         </div>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml
index 9b49914a52566fc3643fed3f321a84bc17df2f59..b99dd72072dba4f6fadde9c5e03a075018468762 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/js/calendar.phtml
@@ -43,7 +43,8 @@ require([
             changeYear: true,
             buttonImageOnly: true,
             showButtonPanel: true,
-            showWeek: true,
+            showOtherMonths: true,
+            showWeek: false,
             timeFormat: '',
             showTime: false,
             showHour: false,
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
index 86eeed562137a96b7260b65b2587211cb8823f1f..e6d67eddf7f050791ced67a5077506f84fe89698 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
@@ -7,11 +7,9 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div class="locale-switcher-field field">
-    <label class="label" for="locale-switcher"><span><?php echo __('Interface Locale'); ?></span></label>
-    <div class="control">
-        <?php echo $block->getLocaleSelect(); ?>
-    </div>
+<div class="locale-switcher col-m-5">
+    <label class="label" for="footer_interface_locale"><span><?php echo __('Interface Locale'); ?></span></label>
+    <?php echo $block->getLocaleSelect(); ?>
     <script>
         (function () {
             'use strict';
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml
index 26ea5c6ffe6b489a713454405e0e3cb5fec5399b..26853cbd3fe25921d9c470eab970cfc191b5cbd8 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml
@@ -14,22 +14,18 @@
 ?>
 <?php if ($block->displayNoscriptNotice()): ?>
     <noscript>
-        <div class="message message-noscript">
-            <div class="message-inner">
-                <div class="message-content">
-                    <strong><?php echo __('JavaScript may be disabled in your browser.'); ?></strong>
-                    <?php echo __('To use this website you must first enable JavaScript in your browser.'); ?>
-                </div>
+        <div class="messages">
+            <div class="message message-warning message-noscript">
+                <strong><?php echo __('JavaScript may be disabled in your browser.'); ?></strong>
+                <?php echo __('To use this website you must first enable JavaScript in your browser.'); ?>
             </div>
         </div>
     </noscript>
 <?php endif; ?>
 <?php if ($block->displayDemoNotice()): ?>
-    <div class="message message-demo-mode">
-        <div class="message-inner">
-            <div class="message-content">
-                <?php echo __('This is only a demo store. You can browse and place orders, but nothing will be processed.') ?>
-            </div>
+    <div class="messages">
+        <div class="message message-warning message-demo-mode">
+            <?php echo __('This is only a demo store. You can browse and place orders, but nothing will be processed.') ?>
         </div>
     </div>
 <?php endif; ?>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/report.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/report.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..e247a370d1408e0692fd2c7210238360ea828ce2
--- /dev/null
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/report.phtml
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+// @codingStandardsIgnoreFile
+
+?>
+<?php if ($block->getBugreportUrl()): ?>
+    <a class="link-report" href="<?php echo $block->getBugreportUrl(); ?>" id="footer_bug_tracking"><?php echo __('Report Bugs') ?></a>
+<?php endif; ?>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml
index f092253c863351e89f9829ce79b705cfd5a784eb..a2f94b3563cfccfbc38378939614d661ba1edac4 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml
@@ -11,7 +11,7 @@
 <?php if ($websites = $block->getWebsites()): ?>
 
 <div class="store-switcher store-view">
-    <span class="label"><?php echo __('Scope:') ?></span>
+    <span class="store-switcher-label"><?php echo __('Store View:') ?></span>
     <div class="actions dropdown closable">
         <input type="hidden" name="store_switcher" id="store_switcher"
                data-role="store-view-id" data-param="<?php echo $block->getStoreVarName() ?>"
@@ -25,27 +25,32 @@
                data-role="website-id" data-param="<?php echo $block->getWebsiteVarName() ?>"
                value="<?php echo $block->escapeHtml($block->getWebsiteId()) ?>"
                onchange="switchScope(this);"<?php echo $block->getUiId()?> />
-        <button type="button" class="action toggle" data-mage-init='{"dropdown":{}}' data-toggle="dropdown" aria-haspopup="true">
-            <span><?php echo $block->getCurrentSelectionName() ?></span>
+        <button
+            type="button"
+            class="admin__action-dropdown"
+            data-mage-init='{"dropdown":{}}'
+            data-toggle="dropdown"
+            aria-haspopup="true">
+            <?php echo $block->getCurrentSelectionName() ?>
         </button>
         <ul class="dropdown-menu" data-role="stores-list">
             <?php if ($block->hasDefaultOption()): ?>
-                <li class="store-switcher-all <?php if (!($block->getDefaultSelectionName() != $block->getCurrentSelectionName())) {
-    echo "disabled";
-} ?> <?php if (!$block->hasScopeSelected()) {
-    ?> current<?php 
-}?>">
+                <li class="store-switcher-all <?php if ( ! ($block->getDefaultSelectionName() != $block->getCurrentSelectionName())) {
+                    echo "disabled";
+                } ?> <?php if ( ! $block->hasScopeSelected()) {
+                    ?> current<?php
+                } ?>">
                     <?php if ($block->getDefaultSelectionName() != $block->getCurrentSelectionName()) {
-    ?>
+                        ?>
                         <a data-role="store-view-id" data-value="" href="#">
                             <?php echo $block->getDefaultSelectionName() ?>
                         </a>
-                    <?php 
-} else {
-    ?>
+                    <?php
+                    } else {
+                        ?>
                         <span><?php echo $block->getDefaultSelectionName() ?></span>
-                    <?php 
-}?>
+                    <?php
+                    } ?>
                 </li>
             <?php endif; ?>
             <?php foreach ($websites as $website): ?>
@@ -55,60 +60,60 @@
                     <?php foreach ($block->getStores($group) as $store): ?>
                         <?php if ($showWebsite == false): ?>
                             <?php $showWebsite = true; ?>
-                            <li class="store-switcher-website <?php if (!($block->isWebsiteSwitchEnabled() && !$block->isWebsiteSelected($website))) {
-    echo "disabled";
-} ?> <?php if ($block->isWebsiteSelected($website)) {
-    ?> current<?php 
-}?>">
-                                <?php if ($block->isWebsiteSwitchEnabled() && !$block->isWebsiteSelected($website)) {
-    ?>
+                            <li class="store-switcher-website <?php if ( ! ($block->isWebsiteSwitchEnabled() && ! $block->isWebsiteSelected($website))) {
+                                echo "disabled";
+                            } ?> <?php if ($block->isWebsiteSelected($website)) {
+                                ?> current<?php
+                            } ?>">
+                                <?php if ($block->isWebsiteSwitchEnabled() && ! $block->isWebsiteSelected($website)) {
+                                    ?>
                                     <a data-role="website-id" data-value="<?php echo $block->escapeHtml($website->getId()) ?>" href="#">
                                         <?php echo $block->escapeHtml($website->getName()) ?>
                                     </a>
-                                <?php 
-} else {
-    ?>
+                                <?php
+                                } else {
+                                    ?>
                                     <span><?php echo $block->escapeHtml($website->getName()) ?></span>
-                                <?php 
-}?>
+                                <?php
+                                } ?>
                             </li>
                         <?php endif; ?>
                         <?php if ($showGroup == false): ?>
                             <?php $showGroup = true; ?>
-                            <li class="store-switcher-store <?php if (!($block->isStoreGroupSwitchEnabled() && !$block->isStoreGroupSelected($group))) {
-    echo "disabled";
-} ?> <?php if ($block->isStoreGroupSelected($group)) {
-    ?> current<?php 
-}?>">
-                                <?php if ($block->isStoreGroupSwitchEnabled() && !$block->isStoreGroupSelected($group)) {
-    ?>
+                            <li class="store-switcher-store <?php if ( ! ($block->isStoreGroupSwitchEnabled() && ! $block->isStoreGroupSelected($group))) {
+                                echo "disabled";
+                            } ?> <?php if ($block->isStoreGroupSelected($group)) {
+                                ?> current<?php
+                            } ?>">
+                                <?php if ($block->isStoreGroupSwitchEnabled() && ! $block->isStoreGroupSelected($group)) {
+                                    ?>
                                     <a data-role="store-group-id" data-value="<?php echo $block->escapeHtml($group->getId()) ?>" href="#">
                                         <?php echo $block->escapeHtml($group->getName()) ?>
                                     </a>
-                                <?php 
-} else {
-    ?>
+                                <?php
+                                } else {
+                                    ?>
                                     <span><?php echo $block->escapeHtml($group->getName()) ?></span>
-                                <?php 
-}?>
+                                <?php
+                                } ?>
                             </li>
                         <?php endif; ?>
-                        <li class="store-switcher-store-view <?php if (!($block->isStoreSwitchEnabled() && !$block->isStoreSelected($store))) {
-    echo "disabled";
-} ?> <?php if ($block->isStoreSelected($store)) {
-    ?> current<?php 
-}?>">
-                            <?php if ($block->isStoreSwitchEnabled() && !$block->isStoreSelected($store)) {
-    ?>
+                        <li class="store-switcher-store-view <?php if ( ! ($block->isStoreSwitchEnabled() && ! $block->isStoreSelected($store))) {
+                            echo "disabled";
+                        } ?> <?php if ($block->isStoreSelected($store)) {
+                            ?> current<?php
+                        } ?>">
+                            <?php if ($block->isStoreSwitchEnabled() && ! $block->isStoreSelected($store)) {
+                                ?>
                                 <a data-role="store-view-id" data-value="<?php echo $block->escapeHtml($store->getId()) ?>" href="#">
                                     <?php echo $block->escapeHtml($store->getName()) ?>
                                 </a>
-                            <?php 
-} else {
-    ?>
+                            <?php
+                            } else {
+                                ?>
                                 <span><?php echo $block->escapeHtml($store->getName()) ?></span>
-                            <?php 
-}?>
+                            <?php
+                            } ?>
                         </li>
                     <?php endforeach; ?>
                 <?php endforeach; ?>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/system/search.phtml b/app/code/Magento/Backend/view/adminhtml/templates/system/search.phtml
index ef5f36ed49f02f7f25f2a58fc787eed7b2d490aa..b95ad39c1f31d5fd300c737d0be14dcc5a2ce214 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/system/search.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/system/search.phtml
@@ -8,37 +8,41 @@
 
 /** @var $block \Magento\Backend\Block\GlobalSearch */
 ?>
-<div class="search-global miniform" data-mage-init='{"globalSearch": {}}'>
+<div class="search-global" data-mage-init='{"globalSearch": {}}'>
     <form action="#" id="form-search">
-        <div class="field search-global-field">
-            <label class="label" for="search-global"><span><?php echo __('Search')?></span></label>
-            <div class="control">
-                <input  type="text"
-                        class="search-global-input"
-                        id="search-global"
-                        placeholder="<?php echo __('Search')?>"
-                        name="query"
-                        data-mage-init='<?php echo $block->escapeHtml($this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($block->getWidgetInitOptions()))?>'>
-            </div>
-        </div>
-        <div class="actions search-global-actions">
-            <button type="submit" class="action search-global-action" title="<?php echo __('Search') ?>"><span><?php echo __('Search') ?></span></button>
+        <div class="search-global-field">
+            <label class="search-global-label" for="search-global"></label>
+            <input
+                    type="text"
+                    class="search-global-input"
+                    id="search-global"
+                    name="query"
+                    data-mage-init='<?php echo $block->escapeHtml($this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($block->getWidgetInitOptions()))?>'>
+            <button
+                type="submit"
+                class="search-global-action"
+                title="<?php echo __('Search') ?>"
+                ></button>
         </div>
     </form>
     <script data-template="search-suggest" type="text/x-magento-template">
-        <ul class="dropdown-menu search-global-menu">
+        <ul class="search-global-menu">
         <% if (data.items.length) { %>
             <% _.each(data.items, function(value){ %>
             <li class="item"
                 <%= data.optionData(value) %>
                 >
                 <a href="<%= value.url %>" class="title"><%= value.name %></a>
-                <div class="type"><%= value.type %></div>
+                <span class="type"><%= value.type %></span>
                 <%= value.description || "" %>
             </li>
             <% }); %>
         <% } else { %>
-            <li><span class="mage-suggest-no-records"><?php echo __('No records found.') ?></span></li>
+            <li>
+                <span class="mage-suggest-no-records">
+                    <?php echo __('No records found.') ?>
+                </span>
+            </li>
         <% } %>
         </ul>
     </script>
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid.phtml
index b8bbf15d5838fa614a4ecff5ae27f427b80efa5a..f020f39cee1262841f78d4ba7b10688e0885f6db 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid.phtml
@@ -24,10 +24,8 @@ $numColumns = sizeof($block->getColumns());
 <?php if ($block->getCollection()): ?>
 <?php if ($block->canDisplayContainer()): ?>
     <?php if ($block->getGridHeader()): ?>
-        <div class="page-title">
-            <div class="page-title-inner">
-                <h1 class="title"><?php echo $block->getGridHeader(); ?></h1>
-            </div>
+        <div class="page-title-wrapper">
+            <h1 class="page-title"><?php echo $block->getGridHeader(); ?></h1>
         </div>
     <?php endif ?>
 
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml
index e7f00c5d9725ed022372826825540e5288d3249b..fc733f71a023af0ece32dcf2b6b35c1b8be5c51a 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml
@@ -26,10 +26,8 @@ $numColumns = sizeof($block->getColumns());
 <?php if ($block->getCollection()): ?>
     <?php if ($block->canDisplayContainer()): ?>
     <?php if ($block->getGridHeader()): ?>
-        <div class="page-title">
-            <div class="page-title-inner">
-                <h1 class="title"><?php echo $block->getGridHeader(); ?></h1>
-            </div>
+        <div class="page-title-wrapper">
+            <h1 class="page-title"><?php echo $block->getGridHeader(); ?></h1>
         </div>
     <?php endif ?>
 
diff --git a/app/code/Magento/Backup/Model/Backup.php b/app/code/Magento/Backup/Model/Backup.php
index 73ed11ca6bcc3d524f37fe69f889061f46541f65..73f9ec7cac8b6a6e3295ab3187cb65abf3048c45 100755
--- a/app/code/Magento/Backup/Model/Backup.php
+++ b/app/code/Magento/Backup/Model/Backup.php
@@ -152,10 +152,7 @@ class Backup extends \Magento\Framework\Object implements \Magento\Framework\Bac
                 'extension' => $this->_helper->getExtensionByType($backupData->getType()),
                 'display_name' => $this->_helper->nameToDisplayName($backupData->getName()),
                 'name' => $backupData->getName(),
-                'date_object' => new \Magento\Framework\Stdlib\DateTime\Date(
-                    (int)$backupData->getTime(),
-                    $this->_localeResolver->getLocaleCode()
-                ),
+                'date_object' => new \DateTime('@' . $backupData->getTime()),
             ]
         );
 
diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml
index 8514b5fc59c2b4ca14968fe6541647fb0b375474..9979827b852795b353efbbdb286cfd293fb9bbcd 100644
--- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml
+++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml
@@ -8,124 +8,161 @@
 
 ?>
 <!-- TODO: refactor form styles and js -->
-<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="rollback-warning" style="display: none;">
-    <div class="popup popup-notice">
+<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="rollback-warning" style="display: none;">
+    <div class="popup">
         <div class="popup-inner">
-            <header class="popup-header">
-                <h2 class="popup-title"><?php echo __('Warning') ?></h2>
-            </header>
+            <div class="popup-header">
+                <div class="popup-title"><?php echo __('Warning') ?></div>
+            </div>
             <div class="popup-content">
-                <p class="message-text"><?php echo __('Any data created since the backup was made will be lost including admin users, customers and orders.')?></p>
-                <p class="message-text"><?php echo __('Are you sure you want to proceed?')?></p>
-                <button type="button" onclick="backup.requestPassword()"><?php echo __('OK')?></button>
-                <button type="button" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                <div class="messages">
+                    <div class="message message-warning">
+                        <p><?php echo __('Any data created since the backup was made will be lost including admin users, customers and orders.')?></p>
+                        <p><?php echo __('Are you sure you want to proceed?')?></p>
+                    </div>
+                </div>
+
+                <div class="actions">
+                    <button type="button" class="action primary" onclick="backup.requestPassword()"><?php echo __('OK')?></button>
+                    <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                </div>
             </div>
         </div>
     </div>
 </div>
 
-<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="backup-warning" style="display: none;">
-    <div class="popup popup-notice">
+<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="backup-warning" style="display: none;">
+    <div class="popup">
         <div class="popup-inner">
-            <header class="popup-header">
-                <h2 class="popup-title"><?php echo __('Warning') ?></h2>
-            </header>
+            <div class="popup-header">
+                <div class="popup-title"><?php echo __('Warning') ?></div>
+            </div>
             <div class="popup-content">
-                <p class="message-text">
-                    <?php echo __("It will take time to create a backup.")?><br>
-                    <?php echo __('Please wait until the action ends.')?><br>
-                    <?php echo __('Are you sure you want to continue?')?>
-                </p>
-                <button type="button" onclick="backup.requestBackupOptions()"><?php echo __('OK')?></button>
-                <button type="button" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                <div class="messages">
+                    <div class="message message-warning">
+                        <?php echo __("It will take time to create a backup. ")?><?php echo __('Please wait until the action ends.')?><br>
+                        <?php echo __('Are you sure you want to continue?')?>
+                    </div>
+                </div>
+                <div class="actions">
+                    <button type="button" class="action primary" onclick="backup.requestBackupOptions()"><?php echo __('OK')?></button>
+                    <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                </div>
             </div>
         </div>
     </div>
 </div>
 
-<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="backup-options" style="display: none;">
-    <div class="popup popup-notice">
+<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="backup-options" style="display: none;">
+    <div class="popup">
         <div class="popup-inner">
-            <header class="popup-header">
-                <h2 class="popup-title"><?php echo __('Backup options') ?></h2>
-            </header>
+            <div class="popup-header">
+                <div class="popup-title"><?php echo __('Backup options') ?></div>
+            </div>
             <div class="popup-content">
                 <div class="backup-messages" style="display: none;"><div class="messages"></div></div>
-                <p class="message-text"><?php echo __('Please specify backup creation option.')?></p>
-                <form action="" method="post" id="backup-form">
-                    <div class="form-list question">
-
-                        <label for="backup_name" class="nobr"><?php echo __('Backup Name')?></label>
-                        <input type="text" name="backup_name" id="backup_name" class="required-entry validate-alphanum-with-spaces validate-length maximum-length-50" maxlength="50" />
-                        <div class="note"><?php echo __('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?></div>
+                <div class="messages">
+                    <div class="message message-warning"><?php echo __('Please specify backup creation option.')?></div>
+                </div>
+                <form action="" method="post" id="backup-form" class="form-inline">
+                    <fieldset class="fieldset form-list question">
+                        <div class="field">
+                            <label for="backup_name" class="label"><span><?php echo __('Backup Name')?></span></label>
+                            <div class="control">
+                                <input type="text" name="backup_name" id="backup_name"
+                                       class="required-entry validate-alphanum-with-spaces validate-length maximum-length-50"
+                                       maxlength="50" />
+                                <div class="note">
+                                    <?php echo __('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?>
+                                </div>
+                            </div>
+                        </div>
 
-                        <div class="maintenance-checkbox-container">
-                            <input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/>
-                            <label for="backup_maintenance_mode"><?php echo __('Please put your store into maintenance mode during backup.')?></label>
+                        <div class="field maintenance-checkbox-container">
+                            <div class="control">
+                                <input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/>
+                                <label for="backup_maintenance_mode"><?php echo __('Please put your store into maintenance mode during backup.')?></label>
+                            </div>
                         </div>
 
-                        <div id="exclude-media-checkbox-container" style="display: none;">
-                            <input type="checkbox" name="exclude_media" value="1" id="exclude_media"/>
-                            <label for="exclude_media"><?php echo __('Exclude media folder from backup')?></label>
+                        <div class="field maintenance-checkbox-container" id="exclude-media-checkbox-container" style="display: none;">
+                            <div class="control">
+                                <input type="checkbox" name="exclude_media" value="1" id="exclude_media"/>
+                                <label for="exclude_media"><?php echo __('Exclude media folder from backup') ?></label>
+                            </div>
                         </div>
-                    </div>
+                    </fieldset>
                 </form>
 
-                <button type="button" data-mage-init='{"button":{"event":"submit","target":"#backup-form"}}'><?php echo __('OK')?></button>
-                <button type="button" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                <div class="actions">
+                    <button type="button" class="action primary" data-mage-init='{"button":{"event":"submit","target":"#backup-form"}}'><?php echo __('OK')?></button>
+                    <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                </div>
             </div>
         </div>
     </div>
  </div>
 
-<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog" id="rollback-request-password" style="display: none;">
+<div data-mage-init='{"modalPopup": {}}' class="fade backup-dialog admin__scope" id="rollback-request-password" style="display: none;">
     <div class="popup popup-notice">
         <div class="popup-inner">
-            <header class="popup-header">
-                <h2 class="popup-title"><?php echo __('Please enter a password.') ?></h2>
-            </header>
+            <div class="popup-header">
+                <div class="popup-title"><?php echo __('Please enter a password.') ?></div>
+            </div>
             <div class="popup-content">
                 <div class="backup-messages" style="display: none;"><div class="messages"></div></div>
-                <p class="message-text">
-                    <?php echo __('Please enter the password to confirm rollback.')?><br>
-                    <?php echo __('This action cannot be undone.')?>
-                </p>
-                <p class="message-text"><?php echo __('Are you sure you want to proceed?')?></p>
-                <form action="" method="post" id="rollback-form">
+                <div class="messages">
+                    <div class="message message-warning">
+                        <?php echo __('Please enter the password to confirm rollback.')?><br>
+                        <?php echo __('This action cannot be undone.')?>
+                        <p><?php echo __('Are you sure you want to proceed?')?></p>
+                    </div>
+                </div>
+                <form action="" method="post" id="rollback-form" class="form-inline">
                     <div class="password-box-container">
 
-                        <label for="password" class="nobr"><?php echo __('User Password')?> <span class="required">*</span></label>
-                        <input type="password" name="password" id="password" class="required-entry">
+                        <div class="field required">
+                            <label for="password" class="label"><span><?php echo __('User Password')?></span></label>
+                            <div class="control"><input type="password" name="password" id="password" class="required-entry"></div>
+                        </div>
 
-                        <div class="maintenance-checkbox-container">
+                        <div class="field maintenance-checkbox-container">
                             <input type="checkbox" name="maintenance_mode" value="1" id="rollback_maintenance_mode"/>
                             <label for="rollback_maintenance_mode"><?php echo __('Please put your store into maintenance mode during rollback processing.')?></label>
                         </div>
 
-                        <div id="use-ftp-checkbox-row" style="display: none;">
+                        <div class="field maintenance-checkbox-container" id="use-ftp-checkbox-row" style="display: none;">
                             <input type="checkbox" name="use_ftp" value="1" id="use_ftp" onClick="backup.toggleFtpCredentialsForm();"/> <label for="use_ftp"><?php echo __('Use FTP Connection')?></label>
                         </div>
                     </div>
                     <div class="entry-edit" id="ftp-credentials-container" style="display: none;">
-                        <h4><?php echo __('FTP credentials')?></h4>
-                        <fieldset>
-                            <label for="ftp_host"><?php echo __('FTP Host')?> <span class="required">*</span></label>
-                            <input type="text" name="ftp_host" id="ftp_host">
-                            <br>
-                            <label for="ftp_user"><?php echo __('FTP Login')?> <span class="required">*</span></label>
-                            <input type="text" name="ftp_user" id="ftp_user">
-                            <br>
-                            <label for="ftp_pass"><?php echo __('FTP Password')?> <span class="required">*</span></label>
-                            <input type="password" name="ftp_pass" id="ftp_pass">
-                            <br>
-                            <label for="ftp_path"><?php echo __('Magento root directory')?></label>
-                            <input type="text" name="ftp_path" id="ftp_path">
+                        <fieldset class="fieldset">
+                            <legend class="legend"><span><?php echo __('FTP credentials')?></span></legend><br />
+                            <div class="field required">
+                                <label for="ftp_host"><span><?php echo __('FTP Host') ?></span></label>
+                                <div class="control"><input type="text" name="ftp_host" id="ftp_host"></div>
+                            </div>
+
+                            <div class="field required">
+                                <label for="ftp_user"><span><?php echo __('FTP Login') ?></span></label>
+                                <div class="control"><input type="text" name="ftp_user" id="ftp_user"></div>
+                            </div>
+                            <div class="field required">
+                                <label for="ftp_pass"><span><?php echo __('FTP Password') ?></span></label>
+                                <div class="control"><input type="password" name="ftp_pass" id="ftp_pass"></div>
+                            </div>
+                            <div class="field">
+                                <label for="ftp_path"><span><?php echo __('Magento root directory') ?></span></label>
+                                <div class="control"><input type="text" name="ftp_path" id="ftp_path"></div>
+                            </div>
                         </fieldset>
                     </div>
                 </form>
 
-                <button type="button" data-mage-init='{"button":{"event":"submit","target":"#rollback-form"}}'><?php echo __('OK')?></button>
-                <button type="button" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                <div class="actions">
+                    <button type="button" class="action primary" data-mage-init='{"button":{"event":"submit","target":"#rollback-form"}}'><?php echo __('OK')?></button>
+                    <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php echo __('Cancel')?></button>
+                </div>
             </div>
         </div>
     </div>
diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js
index b06c6bf5f9dd3dd9d675ce6467c93a532098383f..079a9d89f37cb1a8fa8910f950a688b4906de5e1 100644
--- a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js
+++ b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js
@@ -120,17 +120,13 @@ define([
                             .replace('%1',($('<div>').text($optionBox.find('input[name$="[title]"]').val()).html())),
                     autoOpen: false,
                     minWidth: 980,
-                    'class': 'bundle',
+                    width: '75%',
+                    dialogClass: 'bundle',
                     modal: true,
                     resizable: true,
                     buttons: [{
-                        text: $.mage.__('Cancel'),
-                        click: function() {
-                            $selectionGrid.dialog('close');
-                        }
-                    }, {
                         text: $.mage.__('Add Selected Products'),
-                        'class': 'add primary',
+                        'class': 'action-primary action-add',
                         click: function() {
                             $.each(selectedProductList, function() {
                                 window.bSelection.addRow(optionIndex, this);
@@ -146,8 +142,26 @@ define([
                             widget._updateSelectionsPositions.apply(widget.element);
                             $selectionGrid.dialog('close');
                         }
+                    }, {
+                        text: $.mage.__('Cancel'),
+                        'class': 'action-close',
+                        click: function() {
+                            $selectionGrid.dialog('close');
+                        }
                     }],
+                    position: {
+                        my: 'left top',
+                        at: 'center top',
+                        of: 'body'
+                    },
+                    open: function () {
+                        $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                        var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 45;
+                        $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                    },
                     close: function() {
+                        $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                         $(this).dialog('destroy');
                     }
                 });
diff --git a/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml b/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml
index 23ad8d8bf095cd4b0d6aa1c7d9443e31295cb6d9..d862e010441d261c1f906fc79dc8f28a9db1de57 100644
--- a/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml
+++ b/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml
@@ -10,24 +10,23 @@
 <?php /* @var $captcha \Magento\Captcha\Model\DefaultModel */ ?>
 <?php /* @var $block \Magento\Captcha\Block\Captcha\DefaultCaptcha */ ?>
 <?php $captcha = $block->getCaptchaModel() ?>
-<div class="clear"></div>
-<div class="captcha">
-    <div class="captcha-input input-box input-left">
-        <label for="captcha"><?php echo __('Please enter the letters from the image:') ?></label><br />
-        <input type="text" name="<?php echo \Magento\Captcha\Helper\Data::INPUT_NAME_FIELD_VALUE ?>[<?php echo $block->getFormId()?>]" id="captcha" class="required-entry input-text validation-failed"/>
-    </div>
-    <div class="captcha-image input-right">
-        <img id="captcha-reload" class="captcha-reload" src="<?php echo $block->getViewFileUrl('Magento_Captcha::reload.png') ?>" alt="<?php echo __('Reload captcha') ?>"/>
-        <img id="<?php echo $block->getFormId() ?>" width="<?php echo $block->getImgWidth() ?>" height="<?php echo $block->getImgHeight() ?>" src="<?php echo $captcha->getImgSrc() ?>" />
+<div class="admin__field _required">
+    <label for="captcha" class="admin__field-label"><span><?php echo __('Please enter the letters from the image') ?></span></label>
+    <div class="admin__field-control">
+        <input type="text" name="<?php echo \Magento\Captcha\Helper\Data::INPUT_NAME_FIELD_VALUE ?>[<?php echo $block->getFormId()?>]" id="captcha" data-validate="{required:true}" class="admin__control-text"/>
+        <?php if ($captcha->isCaseSensitive()) :?>
+            <div class="admin__field-note">
+                <span><?php echo __('<strong>Attention</strong>: Captcha is case sensitive.') ?></span>
+            </div>
+        <?php endif; ?>
     </div>
 </div>
-<?php if ($captcha->isCaseSensitive()) :?>
-<div class="captcha-note">
-    <p><?php echo __('<strong>Attention</strong>: Captcha is case sensitive.') ?></p>
+<div class="admin__field field-captcha">
+    <img id="captcha-reload" class="captcha-reload" src="<?php echo $block->getViewFileUrl('Magento_Captcha::reload.png') ?>" alt="<?php echo __('Reload captcha') ?>"/>
+    <img id="<?php echo $block->getFormId() ?>" width="<?php echo $block->getImgWidth() ?>" height="<?php echo $block->getImgHeight() ?>" src="<?php echo $captcha->getImgSrc() ?>" />
 </div>
-<?php endif; ?>
 <script>
-require(["prototype", "mage/captcha"], function(){
+    require(["prototype", "mage/captcha"], function(){
 
 //<![CDATA[
         var captcha = new Captcha('<?php echo $block->getRefreshUrl() ?>', '<?php echo $block->getFormId() ?>');
@@ -38,5 +37,5 @@ require(["prototype", "mage/captcha"], function(){
 
 //]]>
 
-});
+    });
 </script>
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
index 78fa7f98fa105fffe0114b138ff4e0f921c62f7f..0e982417ed1bb3e40addfe6a6c73f8f42fbb1d68 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
@@ -115,7 +115,7 @@ class Advanced extends Generic
             ]
         );
 
-        $dateFormat = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $fieldset->addField(
             'default_value_date',
             'date',
diff --git a/app/code/Magento/Catalog/Block/Product/NewProduct.php b/app/code/Magento/Catalog/Block/Product/NewProduct.php
index 1f4121d3231a159ee396d56cf7465efa8a6c4405..21225c834b7125acd6c9f80e4044a6543aa2a545 100644
--- a/app/code/Magento/Catalog/Block/Product/NewProduct.php
+++ b/app/code/Magento/Catalog/Block/Product/NewProduct.php
@@ -113,17 +113,8 @@ class NewProduct extends \Magento\Catalog\Block\Product\AbstractProduct implemen
      */
     protected function _getProductCollection()
     {
-        $todayStartOfDayDate = $this->_localeDate->date()->setTime(
-            '00:00:00'
-        )->toString(
-            \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-        );
-
-        $todayEndOfDayDate = $this->_localeDate->date()->setTime(
-            '23:59:59'
-        )->toString(
-            \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-        );
+        $todayStartOfDayDate = $this->_localeDate->date()->setTime(0, 0, 0)->format('Y-m-d H:i:s');
+        $todayEndOfDayDate = $this->_localeDate->date()->setTime(23, 59, 59)->format('Y-m-d H:i:s');
 
         /** @var $collection \Magento\Catalog\Model\Resource\Product\Collection */
         $collection = $this->_productCollectionFactory->create();
diff --git a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php
index bac018a247f34233ff035570788784003ccaf595..bba1502ffb3ad5ecf5827c43cd62bf557ea9e25e 100644
--- a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php
+++ b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php
@@ -93,7 +93,7 @@ class Date extends \Magento\Catalog\Block\Product\View\Options\AbstractOptions
         )->setImage(
             $this->getViewFileUrl('Magento_Theme::calendar.png')
         )->setDateFormat(
-            $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT)
+            $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT)
         )->setValue(
             $value
         )->setYearsRange(
diff --git a/app/code/Magento/Catalog/Block/Rss/Product/Special.php b/app/code/Magento/Catalog/Block/Rss/Product/Special.php
index 60be17cb4881e970b91962cc255f3b8e2105a98b..41a683ff4358403d4ce2db44009dc4ff0ac980f9 100644
--- a/app/code/Magento/Catalog/Block/Rss/Product/Special.php
+++ b/app/code/Magento/Catalog/Block/Rss/Product/Special.php
@@ -55,11 +55,6 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
      */
     protected $msrpHelper;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime\DateFactory
-     */
-    private $dateFactory;
-
     /**
      * @var \Magento\Framework\Locale\ResolverInterface
      */
@@ -74,7 +69,6 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
      * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency
      * @param \Magento\Catalog\Model\Rss\Product\Special $rssModel
      * @param \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder
-     * @param \Magento\Framework\Stdlib\DateTime\DateFactory $dateFactory
      * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      * @param array $data
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -88,7 +82,6 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
         \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency,
         \Magento\Catalog\Model\Rss\Product\Special $rssModel,
         \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder,
-        \Magento\Framework\Stdlib\DateTime\DateFactory $dateFactory,
         \Magento\Framework\Locale\ResolverInterface $localeResolver,
         array $data = []
     ) {
@@ -101,7 +94,6 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
         $this->httpContext = $httpContext;
         $this->storeManager = $context->getStoreManager();
         parent::__construct($context, $data);
-        $this->dateFactory = $dateFactory;
         $this->localeResolver = $localeResolver;
     }
 
@@ -134,7 +126,7 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
             'language' => $lang,
         ];
 
-        $currentDate = new \Magento\Framework\Stdlib\DateTime\Date();
+        $currentDate = (new \DateTime())->setTime(0, 0, 0);
         foreach ($this->rssModel->getProductsCollection($this->getStoreId(), $this->getCustomerGroupId()) as $item) {
             /** @var $item \Magento\Catalog\Model\Product */
             $item->setAllowedInRss(true);
@@ -153,11 +145,7 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
             if ($item->getSpecialToDate() && $item->getFinalPrice() <= $item->getSpecialPrice() &&
                 $item->getAllowedPriceInRss()
             ) {
-                $compareDate = $currentDate->compareDate(
-                    $item->getSpecialToDate(),
-                    \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT
-                );
-                if (-1 === $compareDate || 0 === $compareDate) {
+                if ($currentDate->format('Y-m-d') <= $item->getSpecialToDate()) {
                     $item->setUseSpecial(true);
                 }
             }
@@ -188,14 +176,8 @@ class Special extends \Magento\Framework\View\Element\AbstractBlock implements D
                 $special = '';
                 if ($item->getUseSpecial()) {
                     $special = '<br />' . __('Special Expires On: %1', $this->formatDate(
-                        $this->dateFactory->create(
-                            [
-                                'date' => $item->getSpecialToDate(),
-                                'part' => \Magento\Framework\Stdlib\DateTime\Date::ISO_8601,
-                                'locale' => $this->localeResolver->getLocaleCode()
-                            ]
-                        ),
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+                        $item->getSpecialToDate(),
+                        \IntlDateFormatter::MEDIUM
                     ));
                 }
                 $specialPrice = sprintf(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
index fd5647e6c3a1793d4aa43c852d747e2c9a2452cc..ef791cd838cdac322244ddead979da27b69c4f27 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
@@ -118,7 +118,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribut
             $storeId = $this->attributeHelper->getSelectedStoreId();
             if ($attributesData) {
                 $dateFormat = $this->_objectManager->get('Magento\Framework\Stdlib\DateTime\TimezoneInterface')
-                    ->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+                    ->getDateFormat(\IntlDateFormatter::SHORT);
 
                 foreach ($attributesData as $attributeCode => $value) {
                     $attribute = $this->_objectManager->get('Magento\Eav\Model\Config')
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Price/Observer.php b/app/code/Magento/Catalog/Model/Indexer/Product/Price/Observer.php
index 0d8b328c8873a21a4a8f306b4824614a108c87e9..bf0c2104daa93598be70f4df020cf8092eed20a3 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Price/Observer.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Price/Observer.php
@@ -94,7 +94,7 @@ class Observer
             $currDateExpr = $connection->quote($currDate);
 
             // timestamp is locale based
-            if (date(\Zend_Date::HOUR_SHORT, $timestamp) == '00') {
+            if (date('H', $timestamp) == '00') {
                 $format = '%Y-%m-%d %H:%i:%s';
                 $this->_refreshSpecialPriceByStore(
                     $store->getId(),
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php
index 9e2df08ea458b0f0cb835698afa790174953b9bb..9d4c877d8da833080b3db357c016361487dd5181 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php
@@ -143,10 +143,7 @@ class Date extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
 
             if ($this->_dateExists()) {
                 if ($this->useCalendar()) {
-                    $format = $this->_localeDate->getDateFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
-                    );
-                    $timestamp += $this->_localeDate->date($value['date'], $format, null, false)->getTimestamp();
+                    $timestamp += (new \DateTime($value['date']))->getTimestamp();
                 } else {
                     $timestamp += mktime(0, 0, 0, $value['month'], $value['day'], $value['year']);
                 }
@@ -168,8 +165,8 @@ class Date extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
                 $timestamp += 60 * 60 * $value['hour'] + 60 * $value['minute'];
             }
 
-            $date = new \Magento\Framework\Stdlib\DateTime\Date($timestamp);
-            $result = $date->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+            $date = new \DateTime('@' . $timestamp);
+            $result = $date->format('Y-m-d H:i:s');
 
             // Save date in internal format to avoid locale date bugs
             $this->_setInternalInRequest($result);
@@ -190,27 +187,21 @@ class Date extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
     public function getFormattedOptionValue($optionValue)
     {
         if ($this->_formattedOptionValue === null) {
-            $option = $this->getOption();
             if ($this->getOption()->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE) {
                 $format = $this->_localeDate->getDateFormat(
-                    \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+                    \IntlDateFormatter::MEDIUM
                 );
-                $result = $this->_localeDate->date($optionValue, \Zend_Date::ISO_8601, null, false)->toString($format);
+                $result = \IntlDateFormatter::formatObject(new \DateTime($optionValue), $format);
             } elseif ($this->getOption()->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME) {
                 $format = $this->_localeDate->getDateTimeFormat(
-                    \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
-                );
-                $result = $this->_localeDate->date(
-                    $optionValue,
-                    \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT,
-                    null,
-                    false
-                )->toString(
-                    $format
+                    \IntlDateFormatter::SHORT
                 );
+                $result = \IntlDateFormatter::formatObject(new \DateTime($optionValue), $format);
             } elseif ($this->getOption()->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_TIME) {
-                $date = new \Magento\Framework\Stdlib\DateTime\Date($optionValue);
-                $result = date($this->is24hTimeFormat() ? 'H:i' : 'h:i a', $date->getTimestamp());
+                $result = \IntlDateFormatter::formatObject(
+                    new \DateTime($optionValue),
+                    $this->is24hTimeFormat() ? 'H:i' : 'h:i a'
+                );
             } else {
                 $result = $optionValue;
             }
@@ -247,16 +238,16 @@ class Date extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
      * @param string $optionValue
      * @param array $productOptionValues Values for product option
      * @return string|null
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function parseOptionValue($optionValue, $productOptionValues)
     {
-        $timestamp = strtotime($optionValue);
-        if ($timestamp === false || $timestamp == -1) {
+        try {
+            $date = new \DateTime($optionValue);
+        } catch (\Exception $e) {
             return null;
         }
-
-        $date = new \Magento\Framework\Stdlib\DateTime\Date($timestamp);
-        return $date->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+        return $date->format('Y-m-d H:i:s');
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/File.php b/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
index 058e6bea09a619b5859de0b3fa6da3f2eff23d33..d89d038144e44b449eaf3430baf382525207da13 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
@@ -497,7 +497,6 @@ class File extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
         $sizes = '';
         if (!empty($value['width']) && !empty($value['height']) && $value['width'] > 0 && $value['height'] > 0) {
             $sizes = $value['width'] . ' x ' . $value['height'] . ' ' . __('px.');
-            return [$value, $sizes];
         }
         return $sizes;
     }
diff --git a/app/code/Magento/Catalog/Model/Product/Type/Price.php b/app/code/Magento/Catalog/Model/Product/Type/Price.php
index da34894119078e6845de7f87da16a45b40bd7741..b86dc74b3c74c2343bee44290c47dd4fc98bb1d6 100644
--- a/app/code/Magento/Catalog/Model/Product/Type/Price.php
+++ b/app/code/Magento/Catalog/Model/Product/Type/Price.php
@@ -477,8 +477,8 @@ class Price
         );
 
         if ($rulePrice === false) {
-            $storeTimestamp = $this->_localeDate->scopeTimeStamp($sId);
-            $rulePrice = $this->_ruleFactory->create()->getRulePrice($storeTimestamp, $wId, $gId, $productId);
+            $date = $this->_localeDate->scopeDate($sId);
+            $rulePrice = $this->_ruleFactory->create()->getRulePrice($date, $wId, $gId, $productId);
         }
 
         if ($rulePrice !== null && $rulePrice !== false) {
diff --git a/app/code/Magento/Catalog/Model/Resource/Eav/Attribute.php b/app/code/Magento/Catalog/Model/Resource/Eav/Attribute.php
index 2d920c212f2c640e73d55c3a8e72974ad2f6bd05..0a0800ce27bcd3617a68ead274a74662adcbf419 100644
--- a/app/code/Magento/Catalog/Model/Resource/Eav/Attribute.php
+++ b/app/code/Magento/Catalog/Model/Resource/Eav/Attribute.php
@@ -784,4 +784,13 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute implements
             return $this;
         }
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function afterDelete()
+    {
+        $this->_eavConfig->clear();
+        return parent::afterDelete();
+    }
 }
diff --git a/app/code/Magento/Catalog/Model/Rss/Product/NewProducts.php b/app/code/Magento/Catalog/Model/Rss/Product/NewProducts.php
index 5156f5023c995c26adb43995fea9fcbca95a06a0..1f0a919125213974578dcddc604aab2c5b8bad52 100644
--- a/app/code/Magento/Catalog/Model/Rss/Product/NewProducts.php
+++ b/app/code/Magento/Catalog/Model/Rss/Product/NewProducts.php
@@ -49,11 +49,13 @@ class NewProducts
     {
         /** @var $product \Magento\Catalog\Model\Product */
         $product = $this->productFactory->create();
-        $todayStartOfDayDate = $this->localeDate->date()->setTime('00:00:00')
-            ->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+        $todayStartOfDayDate = $this->localeDate->date()
+            ->setTime(0, 0)
+            ->format('Y-m-d H:i:s');
 
-        $todayEndOfDayDate = $this->localeDate->date()->setTime('23:59:59')
-            ->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+        $todayEndOfDayDate = $this->localeDate->date()
+            ->setTime(23, 59, 59)
+            ->format('Y-m-d H:i:s');
         /** @var $products \Magento\Catalog\Model\Resource\Product\Collection */
         $products = $product->getResourceCollection();
         $products->setStoreId($storeId);
diff --git a/app/code/Magento/Catalog/Test/Unit/Block/Rss/Product/SpecialTest.php b/app/code/Magento/Catalog/Test/Unit/Block/Rss/Product/SpecialTest.php
index 86445975f7619628dc03cc7424e94dbd65e2adf6..05d98f2b8c5770bdf4f3962d95d05abacee9c955 100644
--- a/app/code/Magento/Catalog/Test/Unit/Block/Rss/Product/SpecialTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Block/Rss/Product/SpecialTest.php
@@ -73,11 +73,6 @@ class SpecialTest extends \PHPUnit_Framework_TestCase
      */
     protected $request;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime\DateFactory|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $dateFactory;
-
     protected function setUp()
     {
         $this->request = $this->getMock('Magento\Framework\App\RequestInterface');
@@ -106,7 +101,6 @@ class SpecialTest extends \PHPUnit_Framework_TestCase
         $this->scopeConfig->expects($this->any())->method('getValue')->will($this->returnValue('en_US'));
 
         $this->localeDate = $this->getMock('\Magento\Framework\Stdlib\DateTime\TimezoneInterface');
-        $this->dateFactory = $this->getMock('Magento\Framework\Stdlib\DateTime\DateFactory', ['create'], [], '', false);
 
         $objectManagerHelper = new ObjectManagerHelper($this);
         $this->block = $objectManagerHelper->getObject(
@@ -123,7 +117,6 @@ class SpecialTest extends \PHPUnit_Framework_TestCase
                 'storeManager' => $this->storeManager,
                 'scopeConfig' => $this->scopeConfig,
                 'localeDate' => $this->localeDate,
-                'dateFactory' => $this->dateFactory
             ]
         );
     }
@@ -137,8 +130,7 @@ class SpecialTest extends \PHPUnit_Framework_TestCase
         $this->rssModel->expects($this->once())->method('getProductsCollection')
             ->will($this->returnValue([$item]));
         $this->msrpHelper->expects($this->once())->method('canApplyMsrp')->will($this->returnValue(false));
-        $this->dateFactory->expects($this->once())->method('create');
-        $this->localeDate->expects($this->once())->method('formatDate')->will($this->returnValue(date('Y-m-d')));
+        $this->localeDate->expects($this->once())->method('formatDateTime')->will($this->returnValue(date('Y-m-d')));
 
         $this->priceCurrency->expects($this->any())->method('convertAndFormat')->will($this->returnArgument(0));
 
@@ -193,7 +185,7 @@ class SpecialTest extends \PHPUnit_Framework_TestCase
                 'getUseSpecial',
             ])->disableOriginalConstructor()->getMock();
         $item->expects($this->once())->method('getAllowedInRss')->will($this->returnValue(true));
-        $item->expects($this->exactly(3))->method('getSpecialToDate')->will($this->returnValue(date('Y-m-d')));
+        $item->expects($this->any())->method('getSpecialToDate')->will($this->returnValue(date('Y-m-d')));
         $item->expects($this->exactly(2))->method('getFinalPrice')->will($this->returnValue(10));
         $item->expects($this->once())->method('getSpecialPrice')->will($this->returnValue(15));
         $item->expects($this->exactly(2))->method('getAllowedPriceInRss')->will($this->returnValue(true));
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0ecf9b024aa0704ace1dfca1bdca098d9e8a5402
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php
@@ -0,0 +1,210 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Catalog\Test\Unit\Model\Entity;
+
+use Magento\Catalog\Model\Entity\Attribute;
+
+/**
+ * @SuppressWarnings(PHPMD.TooManyFields)
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class AttributeTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Catalog\Model\Entity\Attribute
+     */
+    protected $attribute;
+
+    /**
+     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $contextMock;
+
+    /**
+     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $registryMock;
+
+    /**
+     * @var \Magento\Framework\Api\MetadataServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $metadataServiceMock;
+
+    /**
+     * @var \Magento\Framework\Api\AttributeValueFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $attributeValueFactoryMock;
+
+    /**
+     * @var \Magento\Eav\Model\Config|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $configMock;
+
+    /**
+     * @var \Magento\Eav\Model\Entity\TypeFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $typeFactoryMock;
+
+    /**
+     * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManagerMock;
+
+    /**
+     * @var \Magento\Eav\Model\Resource\Helper|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $helperMock;
+
+    /**
+     * @var \Magento\Framework\Validator\UniversalFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $universalFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $timezoneMock;
+
+    /**
+     * @var \Magento\Catalog\Model\Product\ReservedAttributeList|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $reservedAttributeListMock;
+
+    /**
+     * @var \Magento\Framework\Locale\ResolverInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resolverMock;
+
+    /**
+     * @var \Magento\Catalog\Model\Attribute\LockValidatorInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $lockValidatorMock;
+
+    /**
+     * @var \Magento\Framework\Model\Resource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $resourceMock;
+
+    /**
+     * @var \Magento\Framework\App\CacheInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $cacheManager;
+
+    /**
+     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $eventDispatcher;
+
+    /**
+     * @var \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $attributeOptionFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Reflection\DataObjectProcessor|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $dataObjectProcessorMock;
+
+    /**
+     * @var \Magento\Framework\Api\DataObjectHelper|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $dataObjectHelperMock;
+
+    protected function setUp()
+    {
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
+            ->setMethods(['getCacheManager', 'getEventDispatcher'])
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry')
+            ->getMock();
+        $this->metadataServiceMock = $this->getMockBuilder('Magento\Framework\Api\MetadataServiceInterface')
+            ->getMock();
+        $this->attributeValueFactoryMock = $this->getMockBuilder('Magento\Framework\Api\AttributeValueFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->configMock = $this->getMockBuilder('Magento\Eav\Model\Config')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->typeFactoryMock = $this->getMockBuilder('Magento\Eav\Model\Entity\TypeFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface')
+            ->getMock();
+        $this->helperMock = $this->getMockBuilder('Magento\Eav\Model\Resource\Helper')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->universalFactoryMock = $this->getMockBuilder('Magento\Framework\Validator\UniversalFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->attributeOptionFactoryMock =
+            $this->getMockBuilder('Magento\Eav\Api\Data\AttributeOptionInterfaceFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->dataObjectProcessorMock = $this->getMockBuilder('Magento\Framework\Reflection\DataObjectProcessor')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->dataObjectHelperMock = $this->getMockBuilder('Magento\Framework\Api\DataObjectHelper')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->timezoneMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\TimezoneInterface')
+            ->getMock();
+        $this->reservedAttributeListMock = $this->getMockBuilder('Magento\Catalog\Model\Product\ReservedAttributeList')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resolverMock = $this->getMockBuilder('Magento\Framework\Locale\ResolverInterface')
+            ->getMock();
+        $this->lockValidatorMock = $this->getMockBuilder('Magento\Catalog\Model\Attribute\LockValidatorInterface')
+            ->getMock();
+
+        $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\Resource\AbstractResource')
+            ->setMethods(['_construct', '_getReadAdapter', '_getWriteAdapter', 'getIdFieldName', 'saveInSetIncluding'])
+            ->getMock();
+        $this->cacheManager = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+            ->getMock();
+        $this->eventDispatcher = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
+            ->getMock();
+
+        $this->contextMock
+            ->expects($this->any())
+            ->method('getCacheManager')
+            ->willReturn($this->cacheManager);
+        $this->contextMock
+            ->expects($this->any())
+            ->method('getEventDispatcher')
+            ->willReturn($this->eventDispatcher);
+
+        $this->attribute = new Attribute(
+            $this->contextMock,
+            $this->registryMock,
+            $this->metadataServiceMock,
+            $this->attributeValueFactoryMock,
+            $this->configMock,
+            $this->typeFactoryMock,
+            $this->storeManagerMock,
+            $this->helperMock,
+            $this->universalFactoryMock,
+            $this->attributeOptionFactoryMock,
+            $this->dataObjectProcessorMock,
+            $this->dataObjectHelperMock,
+            $this->timezoneMock,
+            $this->reservedAttributeListMock,
+            $this->resolverMock,
+            $this->lockValidatorMock,
+            $this->resourceMock
+        );
+    }
+
+    public function testAfterSaveEavCache()
+    {
+        $this->configMock
+            ->expects($this->once())
+            ->method('clear');
+
+        $this->attribute->afterSave();
+    }
+}
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Resource/Eav/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Resource/Eav/AttributeTest.php
index 7c4a802f0ea9b3e581691a371b812267eac6777a..30d400ca8ef2a7317ae56287e729b7e8feb1ec85 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Resource/Eav/AttributeTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Resource/Eav/AttributeTest.php
@@ -37,6 +37,11 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
      */
     protected $resourceMock;
 
+    /**
+     * @var \Magento\Eav\Model\Config|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $eavConfigMock;
+
     public function setUp()
     {
         $this->_processor = $this->getMock(
@@ -89,6 +94,11 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
             [], '', false
         );
 
+        $this->eavConfigMock = $this->getMockBuilder('Magento\Eav\Model\Config')
+            ->setMethods(['clear'])
+            ->disableOriginalConstructor()
+            ->getMock();
+
         $this->resourceMock->expects($this->any())
             ->method('_getWriteAdapter')
             ->will($this->returnValue($dbAdapterMock));
@@ -101,7 +111,8 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
                     'productFlatIndexerProcessor' => $this->_processor,
                     'indexerEavProcessor' => $this->_eavProcessor,
                     'resource' => $this->resourceMock,
-                    'data' => ['id' => 1]
+                    'data' => ['id' => 1],
+                    'eavConfig' => $this->eavConfigMock
                 ]
         );
     }
@@ -125,6 +136,14 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
         $this->_model->afterSave();
     }
 
+    public function testAfterSaveEavCache()
+    {
+        $this->eavConfigMock
+            ->expects($this->once())
+            ->method('clear');
+        $this->_model->afterSave();
+    }
+
     public function testIndexerAfterDeleteAttribute()
     {
         $this->_processor->expects($this->once())->method('markIndexerAsInvalid');
@@ -133,6 +152,14 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
         $this->_model->afterDeleteCommit();
     }
 
+    public function testAfterDeleteEavCache()
+    {
+        $this->eavConfigMock
+            ->expects($this->once())
+            ->method('clear');
+        $this->_model->afterDelete();
+    }
+
     public function testGetScopeGlobal()
     {
         $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Rss/Product/NewProductsTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Rss/Product/NewProductsTest.php
index dda2b6f11383129ad996c02d185cb87327f4f7da..e883c2ab9c237ff721d1af5c1631f8bb872f180c 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Rss/Product/NewProductsTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Rss/Product/NewProductsTest.php
@@ -64,13 +64,18 @@ class NewProductsTest extends \PHPUnit_Framework_TestCase
 
     public function testGetProductsCollection()
     {
-        /** @var \Magento\Framework\Stdlib\DateTime\Date|\PHPUnit_Framework_MockObject_MockObject $dateObject */
-        $dateObject = $this->getMock('Magento\Framework\Stdlib\DateTime\Date');
-        $dateObject->expects($this->any())->method('setTime')->will($this->returnSelf());
-        $dateObject->expects($this->any())->method('toString')->will(
-            $this->returnValue(date(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT))
-        );
-        $this->timezone->expects($this->exactly(2))->method('date')->will($this->returnValue($dateObject));
+        /** @var \DateTime|\PHPUnit_Framework_MockObject_MockObject $dateObject */
+        $dateObject = $this->getMock('DateTime');
+        $dateObject->expects($this->any())
+            ->method('setTime')
+            ->will($this->returnSelf());
+        $dateObject->expects($this->any())
+            ->method('format')
+            ->will($this->returnValue(date(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)));
+
+        $this->timezone->expects($this->exactly(2))
+            ->method('date')
+            ->will($this->returnValue($dateObject));
 
         /** @var \Magento\Catalog\Model\Resource\Product\Collection $productCollection */
         $productCollection = $this->getMock('Magento\Catalog\Model\Resource\Product\Collection', [], [], '', false);
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml
index da38faceb72a6adc0e55d896daaaefe5db97b41c..dda778ccfb92860c07fd0aec15712d90beda1824 100644
--- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml
@@ -8,7 +8,7 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="catalog_product_new"/>
     <body>
-        <referenceBlock name="page-title">
+        <referenceBlock name="page.title">
             <action method="setTitleClass">
                 <argument name="class" xsi:type="string">complex</argument>
             </action>
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml
index 95e782113d022117bcc6c8b0fb599a7b4151fac6..d0cc70784fde61e095f4b44098f9b59438efe90f 100644
--- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml
@@ -12,7 +12,7 @@
                 <argument name="itemId" xsi:type="string">Magento_Catalog::catalog_products</argument>
             </action>
         </referenceBlock>
-        <referenceBlock name="page-title">
+        <referenceBlock name="page.title">
             <action method="setTitleClass">
                 <argument name="class" xsi:type="string">complex</argument>
             </action>
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml
index 05a51e0caff5e2ac46564d60e7919fe9fbb8936e..71d0a48dd8fed85df0c811eae2c4ea91ff26b255 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit/form.phtml
@@ -24,9 +24,14 @@ $categoryId = $block->getCategoryId();
 <?php if ($block->hasStoreRootCategory()): ?>
     <?php echo $block->getTabsHtml() ?>
 <?php else: ?>
-<div class="message info">
-    <div><?php echo __('Set root category for this store in the <a href="%1">configuration</a>.', $block->getStoreConfigurationUrl()) ?></div>
+<div class="admin__scope">
+    <div class="messages">
+        <div class="message message-notice">
+            <div><?php echo __('Set root category for this store in the <a href="%1">configuration</a>.', $block->getStoreConfigurationUrl()) ?></div>
+        </div>
+    </div>
 </div>
+
 <?php endif; ?>
 <iframe name="iframeSave" style="display:none; width:100%;"
         src="<?php echo $block->getViewFileUrl('blank.html') ?>"></iframe>
@@ -46,9 +51,13 @@ $categoryId = $block->getCategoryId();
     </div>
     <div id="category_tab_content"></div>
 </form>
-<div data-id="information-dialog-category" style="display: none;">
-    <span class="information-message"><?php echo __('This operation can take much time'); ?><span>
+
+<div data-id="information-dialog-category" class="messages admin__scope" style="display: none;">
+    <div class="message message-notice">
+        <div><?php echo __('This operation can take much time'); ?></div>
+    </div>
 </div>
+
 <script>
 require(['jquery', 'jquery/ui', "mage/mage", "mage/translate"], function($){
     var mageDialog = (function($) {
@@ -68,12 +77,27 @@ require(['jquery', 'jquery/ui', "mage/mage", "mage/translate"], function($){
                 modal:      true,
                 dialogClass: 'popup-window',
                 resizable: false,
+                width: '75%',
                 title: $.mage.__('Warning message'),
-                buttons: [
-                    {text: $.mage.__('Ok'), click: function() { onEvent('ok', this); }},
-                    {text: $.mage.__('Cancel'), click: function() { onEvent('cancel', this); } }
-                ],
+                buttons: [{
+                    text: $.mage.__('Ok'),
+                    'class': 'action-primary',
+                    click: function () {
+                        onEvent('ok', this);
+                    }
+                }, {
+                    text: $.mage.__('Cancel'),
+                    'class': 'action-close',
+                    click: function () {
+                        onEvent('cancel', this);
+                    }
+                }],
                 open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+
                     self.dialogOpened = true;
                     self.callback.ok.push(function() {
                         self.needShow = false;
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml
index efe4a2c609270529ccf6824e0138a8f176b20181..11ee3d968ae71456177951cdbcd337a4eef7aab5 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml
@@ -29,9 +29,13 @@
         <div id="tree-div" class="tree-wrapper"></div>
     </div>
 </div>
-<div data-id="information-dialog-tree" style="display: none;">
-    <span class="messages"><?php echo __('This operation can take much time'); ?><span>
+
+<div data-id="information-dialog-tree" class="messages admin__scope" style="display: none;">
+    <div class="message message-notice">
+       <div><?php echo __('This operation can take much time'); ?></div>
+    </div>
 </div>
+
 <script>
 var tree;
 require([
@@ -415,15 +419,35 @@ var mageDialog = (function($) {
         self.dialog = $('[data-id="information-dialog-category"]').dialog({
             autoOpen:   false,
             modal:      true,
-            dialogClass: 'popup-window',
+            dialogClass: 'popup-window ui-popup-message',
             resizable: false,
+            width: '75%',
             title: $.mage.__('Warning message'),
-            buttons: [
-                {text: $.mage.__('Ok'), click: function() { onEvent('ok', this); }},
-                {text: $.mage.__('Cancel'), click: function() { onEvent('cancel', this); } }
+            position: {
+                my: 'left top',
+                at: 'center top',
+                of: 'body'
+            },
+            buttons: [{
+                    text: $.mage.__('Ok'),
+                    'class': 'action-primary',
+                    click: function () {
+                        onEvent('ok', this);
+                    }
+                }, {
+                    text: $.mage.__('Cancel'),
+                    'class': 'action-close',
+                    click: function () {
+                        onEvent('cancel', this);
+                    }
+                }
             ],
             open: function () {
+                $(this).closest('.ui-dialog').addClass('ui-dialog-active');
                 self.dialogOpened = true;
+
+                var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                $(this).closest('.ui-dialog').css('margin-top', topMargin);
             },
             close: function(event, ui) {
                 $(this).dialog('destroy');
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml
index e7b7c5436fc083e2ceb83723808189366a170f9a..89a839e200085268fafac6f6639219d4db62a8b1 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml
@@ -17,8 +17,10 @@
     <input name="form_key" type="hidden" value="<?php echo $block->escapeHtml($block->getFormKey()) ?>" />
     <?php echo $block->getChildHtml('form') ?>
 </form>
-<div data-mage-init='{"floatingHeader": {}}' class="page-actions" <?php echo $block->getUiId('content-header') ?>>
-    <?php echo $block->getButtonsHtml('header') ?>
+<div class="admin__scope">
+    <div data-mage-init='{"floatingHeader": {}}' class="page-actions attribute-popup-actions" <?php echo $block->getUiId('content-header') ?>>
+        <?php echo $block->getButtonsHtml('header') ?>
+    </div>
 </div>
 <script>
 require(['jquery', "mage/mage"], function(jQuery){
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/configure.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/configure.phtml
index 8cde7b666eecf58d388542bc54623894b06b3898..4f7a5ff4a4178aaa934c82aa288c8a54041823f5 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/configure.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/configure.phtml
@@ -12,9 +12,9 @@
     <form action="" method="post" id="product_composite_configure_form" enctype="multipart/form-data" onsubmit="productConfigure.onConfirmBtn(); return false;" target="product_composite_configure_iframe">
         <div class="entry-edit">
             <div id="product_composite_configure_messages" style="display: none;" >
-                <div class="messages"><div class="message error"><div></div></div></div>
+                <div class="messages"><div class="message message-error error"><div></div></div></div>
             </div>
-            <div id="product_composite_configure_form_fields" class="content"></div>
+            <div id="product_composite_configure_form_fields" class="content product-composite-configure-inner"></div>
             <div id="product_composite_configure_form_additional" style="display:none;"></div>
             <div id="product_composite_configure_form_confirmed" style="display:none;"></div>
         </div>
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml
index 04b50b032702ae280b028626a95215a4f9cd7154..5ebe1168d71e6cef9a0cda945869edbd0d9938be 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml
@@ -47,8 +47,12 @@
             <span><?php echo __('Remove Product From Websites') ?></span>
         </legend>
         <br>
-        <div class="message info">
-            <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div>
+        <div class="admin__scope">
+            <div class="messages">
+                <div class="message message-notice">
+                    <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div>
+                </div>
+            </div>
         </div>
         <div class="store-scope">
             <div class="store-tree" id="remove-products-to-website-content">
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml
index 47bbef08517c7eb28b699ffd5faba24cf0c54756..c60c4f8275b2e00afe37b22076efba4a13be1c4c 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml
@@ -17,9 +17,13 @@
     </div>
     <div class="fieldset-wrapper-content" id="product-custom-options-content">
         <fieldset class="fieldset">
-            <div class="message message-error" id="dynamic-price-warning" style="display: none;">
-                <div class="message-inner">
-                    <div class="message-content"><?php echo __('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></div>
+            <div class="admin__scope">
+                <div class="messages">
+                    <div class="message message-error" id="dynamic-price-warning" style="display: none;">
+                        <div class="message-inner">
+                            <div class="message-content"><?php echo __('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></div>
+                        </div>
+                    </div>
                 </div>
             </div>
 
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml
index de55b447e111f3182fcf0c690d6deca85c54b8cb..2cabd0a0ab2aa4d29eb4cd1b03368d971d1262d8 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/websites.phtml
@@ -11,8 +11,12 @@
     <legend class="legend"><span><?php echo __('Product In Websites') ?></span></legend>
     <br>
     <?php if ($block->getProductId()): ?>
-    <div class="message info">
-        <div><?php echo __("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div>
+    <div class="admin__scope">
+        <div class="messages">
+            <div class="message message-notice">
+                <?php echo __("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?>
+            </div>
+        </div>
     </div>
     <?php endif; ?>
     <div class="store-scope">
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/tab/inventory.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/tab/inventory.phtml
index 5f4c0189358dd89140372f5fc52b2dcf36bda0ed..0325421256235550fb23e0d3e9de072c1d6326b9 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/tab/inventory.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/tab/inventory.phtml
@@ -65,9 +65,13 @@ toggleValueElements($('inventory_use_config_manage_stock'), $('inventory_use_con
     </label>
     <div class="control">
         <input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][min_qty]" value="<?php echo $block->getFieldValue('min_qty') * 1 ?>" <?php echo $_readonly;?>>
-        <?php $_checked = ($block->getFieldValue('use_config_min_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_min_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_min_qty"><?php echo __('Use Config Settings') ?></label>
+
+        <div class="control-inner-wrap">
+            <?php $_checked = ($block->getFieldValue('use_config_min_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
+            <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_min_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_min_qty"><?php echo __('Use Config Settings') ?></label>
+        </div>
+
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(["prototype"], function(){
@@ -89,9 +93,11 @@ toggleValueElements($('inventory_use_config_min_qty'), $('inventory_use_config_m
         <input type="text" class="input-text validate-number" id="inventory_min_sale_qty"
                name="<?php echo $block->getFieldSuffix() ?>[stock_data][min_sale_qty]"
                value="<?php echo $block->getFieldValue('min_sale_qty') * 1 ?>" <?php echo $_readonly;?>>
+        <div class="control-inner-wrap">
         <?php $_checked = ($block->getFieldValue('use_config_min_sale_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_min_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_min_sale_qty"><?php echo __('Use Config Settings') ?></label>
+            <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_min_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_min_sale_qty"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
@@ -112,8 +118,10 @@ toggleValueElements($('inventory_use_config_min_sale_qty'), $('inventory_use_con
     <div class="control">
         <input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][max_sale_qty]" value="<?php echo $block->getFieldValue('max_sale_qty') * 1 ?>" <?php echo $_readonly;?>>
         <?php $_checked = ($block->getFieldValue('use_config_max_sale_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_max_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_max_sale_qty"><?php echo __('Use Config Settings') ?></label>
+        <div class="control-inner-wrap">
+            <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_max_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_max_sale_qty"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
@@ -172,9 +180,12 @@ toggleValueElements($('inventory_use_config_max_sale_qty'), $('inventory_use_con
             <option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
             <?php endforeach; ?>
         </select>
-        <?php $_checked = ($block->getFieldValue('use_config_backorders') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_backorders]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_backorders"><?php echo __('Use Config Settings') ?></label>
+
+        <div class="control-inner-wrap">
+            <?php $_checked = ($block->getFieldValue('use_config_backorders') || $block->IsNew()) ? 'checked="checked"' : '' ?>
+            <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_backorders]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_backorders"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
@@ -194,9 +205,12 @@ toggleValueElements($('inventory_use_config_backorders'), $('inventory_use_confi
     </label>
     <div class="control">
         <input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][notify_stock_qty]" value="<?php echo $block->getFieldValue('notify_stock_qty') * 1 ?>" <?php echo $_readonly;?>>
-        <?php $_checked = ($block->getFieldValue('use_config_notify_stock_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_notify_stock_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_notify_stock_qty"><?php echo __('Use Config Settings') ?></label>
+
+        <div class="control-inner-wrap">
+            <?php $_checked = ($block->getFieldValue('use_config_notify_stock_qty') || $block->IsNew()) ? 'checked="checked"' : '' ?>
+            <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_notify_stock_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_notify_stock_qty"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
@@ -222,9 +236,12 @@ toggleValueElements($('inventory_use_config_notify_stock_qty'), $('inventory_use
             <option value="0"<?php if (!$qtyIncrementsEnabled): ?> selected="selected"<?php endif; ?>><?php echo __('No') ?></option>
         </select>
         <input type="hidden" id="inventory_enable_qty_increments_default" value="<?php echo $block->getDefaultConfigValue('enable_qty_increments'); ?>">
-        <?php $_checked = ($block->getFieldValue('use_config_enable_qty_inc') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_enable_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_enable_qty_increments"><?php echo __('Use Config Settings') ?></label>
+
+        <div class="control-inner-wrap">
+            <?php $_checked = ($block->getFieldValue('use_config_enable_qty_inc') || $block->IsNew()) ? 'checked="checked"' : '' ?>
+            <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_enable_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_enable_qty_increments"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
@@ -244,9 +261,11 @@ toggleValueElements($('inventory_use_config_enable_qty_increments'), $('inventor
     </label>
     <div class="control">
         <input type="text" class="input-text validate-digits" id="inventory_qty_increments" name="<?php echo $block->getFieldSuffix() ?>[stock_data][qty_increments]" value="<?php echo $block->getFieldValue('qty_increments') * 1 ?>" <?php echo $_readonly;?>>
-        <?php $_checked = ($block->getFieldValue('use_config_qty_increments') || $block->IsNew()) ? 'checked="checked"' : '' ?>
-        <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
-        <label for="inventory_use_config_qty_increments"><?php echo __('Use Config Settings') ?></label>
+        <div class="control-inner-wrap">
+            <?php $_checked = ($block->getFieldValue('use_config_qty_increments') || $block->IsNew()) ? 'checked="checked"' : '' ?>
+            <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $block->getFieldSuffix() ?>[stock_data][use_config_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?>>
+            <label for="inventory_use_config_qty_increments"><?php echo __('Use Config Settings') ?></label>
+        </div>
         <?php if (!$block->isReadonly()): ?>
         <script>
 require(['prototype'], function(){
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js
index 3bb3a51ffaa8dc290296748d58fa9d8b7cda8f9a..f4624937f02556dc18dd44e07c6a6da77088de4f 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js
@@ -30,14 +30,29 @@ define([
                 iframe;
 
             wrapper = $('<div id="create_new_attribute"/>').appendTo('body').dialog({
+                // ToDo: refactor to a sliding panel
                 title: 'New Attribute',
-                width: 600,
+                width: '75%',
                 minHeight: 650,
                 modal: true,
                 resizable: false,
                 resizeStop: function () {
                     iframe.height($(this).outerHeight() + 'px');
                     iframe.width($(this).outerWidth() + 'px');
+                },
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 45;
+                    jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
+                },
+                close: function () {
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                 }
             });
 
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
index 253b68de00a22dde5e7189c570da815876969ab3..c61adcd6d9609a6caa83d03879b2b08fb201ad85 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
@@ -48,20 +48,35 @@ ProductConfigure.prototype = {
             title: jQuery.mage.__('Configure Product'),
             modal: true,
             minWidth: 500,
+            width: '75%',
             dialogClass: 'popup-window',
+            position: {
+                my: 'left top',
+                at: 'center top',
+                of: 'body'
+            },
             open: function () {
                 jQuery(this).addClass('magento_message').css('max-height', '500px');
+                jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
+            },
+            close: function() {
+                jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
             },
             buttons: [{
-                id: "product_composite_configure_form_cancel",
-                text: "Cancel",
+                text: jQuery.mage.__('OK'),
+                'class': 'action-primary',
                 click: function() {
-                    jQuery(this).dialog("close");
+                    self.onConfirmBtn();
                 }
             }, {
-                text: jQuery.mage.__('OK'),
+                id: "product_composite_configure_form_cancel",
+                text: "Cancel",
+                'class': 'action-close',
                 click: function() {
-                    self.onConfirmBtn();
+                    jQuery(this).dialog("close");
                 }
             }]
         });
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
index 201af6ddb10f157fb54605eaf72e399c264abd1f..a324135f1c46bb9163b0048c1afe136032708f8a 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
@@ -124,55 +124,73 @@ define([
                         title: $.mage.__('Select Product'),
                         autoOpen: false,
                         minWidth: 980,
+                        width: '75%',
                         modal: true,
                         resizable: true,
-                        buttons: [{
-                            text: $.mage.__('Cancel'),
-                            id: 'import-custom-options-close-button',
-                            click: function () {
-                                $(this).dialog('close');
-                            }
-                        }, {
-                            text: $.mage.__('Import'),
-                            id: 'import-custom-options-apply-button',
-                            'class': 'primary',
-                            click: function (event, massActionTrigger) {
-                                var request = [];
-                                $(this).find('input[name=product]:checked').map(function () {
-                                    request.push(this.value);
-                                });
+                        position: {
+                            my: 'left top',
+                            at: 'center top',
+                            of: 'body'
+                        },
+                        open: function () {
+                            $(this).closest('.ui-dialog').addClass('ui-dialog-active');
 
-                                if (request.length === 0) {
-                                    if (!massActionTrigger) {
-                                        alert($.mage.__('Please select items.'));
-                                    }
+                            var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 135;
+                            $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                        },
+                        close: function () {
+                            $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                        },
+                        buttons: [
+                            {
+                                text: $.mage.__('Import'),
+                                id: 'import-custom-options-apply-button',
+                                'class': 'action-primary action-import',
+                                click: function (event, massActionTrigger) {
+                                    var request = [];
+                                    $(this).find('input[name=product]:checked').map(function () {
+                                        request.push(this.value);
+                                    });
 
-                                    return;
-                                }
+                                    if (request.length === 0) {
+                                        if (!massActionTrigger) {
+                                            alert($.mage.__('Please select items.'));
+                                        }
+
+                                        return;
+                                    }
 
-                                $.post(widget.options.customOptionsUrl, {
-                                    'products[]': request,
-                                    form_key: widget.options.formKey
-                                }, function ($data) {
-                                    $.parseJSON($data).each(function (el) {
-                                        el.id = widget.getFreeOptionId(el.id);
-                                        el.option_id = el.id;
-
-                                        if (typeof el.optionValues !== 'undefined') {
-                                            for (var i = 0; i < el.optionValues.length; i++) {
-                                                el.optionValues[i].option_id = el.id;
+                                    $.post(widget.options.customOptionsUrl, {
+                                        'products[]': request,
+                                        form_key: widget.options.formKey
+                                    }, function ($data) {
+                                        $.parseJSON($data).each(function (el) {
+                                            el.id = widget.getFreeOptionId(el.id);
+                                            el.option_id = el.id;
+
+                                            if (typeof el.optionValues !== 'undefined') {
+                                                for (var i = 0; i < el.optionValues.length; i++) {
+                                                    el.optionValues[i].option_id = el.id;
+                                                }
                                             }
-                                        }
-                                        //Adding option
-                                        widget.addOption(el);
-                                        //Will save new option on server side
-                                        $('#product_option_' + el.id + '_option_id').val(0);
-                                        $('#option_' + el.id + ' input[name$="option_type_id]"]').val(-1);
+                                            //Adding option
+                                            widget.addOption(el);
+                                            //Will save new option on server side
+                                            $('#product_option_' + el.id + '_option_id').val(0);
+                                            $('#option_' + el.id + ' input[name$="option_type_id]"]').val(-1);
+                                        });
+                                        importContainer.dialog('close');
                                     });
-                                    importContainer.dialog('close');
-                                });
-                            }
-                        }]
+                                }
+                            },
+                            {
+                                text: $.mage.__('Cancel'),
+                                id: 'import-custom-options-close-button',
+                                'class': 'action-close',
+                                click: function () {
+                                    $(this).dialog('close');
+                                }
+                            }]
                     });
                     importContainer.load(
                         this.options.productGridUrl, {
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js
index 5d7a69aa0758ca6047f4c497f32bdd97bce9b8ab..46ad78762462021ec363fd33a16025ea2e4a1fee 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js
@@ -55,11 +55,16 @@ define([
             this.element.dialog({
                 title: $.mage.__('Create Category'),
                 autoOpen: false,
-                minWidth: 560,
+                width: '75%',
                 dialogClass: 'mage-new-category-dialog form-inline',
                 modal: true,
                 multiselect: true,
                 resizable: false,
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
                 open: function () {
                     // fix for suggest field - overlapping dialog z-index
                     $('#new_category_parent-suggest').css('z-index', $.ui.dialog.maxZ + 1);
@@ -69,6 +74,10 @@ define([
                         $('#new_category_name').focus();
                     }
                     $('#new_category_messages').html('');
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 15;
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
                 },
                 close: function () {
                     $('#new_category_name, #new_category_parent-suggest').val('');
@@ -77,10 +86,11 @@ define([
                         validationOptions.errorClass, validationOptions.validClass || '');
                     newCategoryForm.validation('clearError');
                     $('#category_ids-suggest').focus();
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                 },
                 buttons: [{
                     text: $.mage.__('Create Category'),
-                    'class': 'action-create primary',
+                    'class': 'action-primary',
                     'data-action': 'save',
                     click: function (event) {
                         if (!newCategoryForm.valid()) {
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
index f2b4a92fba00f79095b5b4ad1e3527a1900bc740..6f5ae923834d7873c7bd2856c1e25f2bb225e598 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
+++ b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
@@ -3,47 +3,6 @@
  * See COPYING.txt for license details.
  */
 
-/* Action "Back" as cross  */
-/*[class^=" catalog-product-"] .page-actions .action-back,
-[class^=" catalog-product-"] .page-actions .action-back:hover,
-[class^=" catalog-product-"] .page-actions .action-back:active,
-[class^=" newsletter-"] .page-actions .action-back,
-[class^=" newsletter-"] .page-actions .action-back:hover,
-[class^=" newsletter-"] .page-actions .action-back:active {
-    overflow: hidden;
-    padding: 5px 6px 3px;
-    margin-left: 12px;
-    color: #7a7976;;
-}
-
-[class^=" catalog-product-"] .page-actions .action-back:hover,
-[class^=" newsletter-"] .page-actions .action-back:hover {
-    color: #000;
-}
-
-[class^=" catalog-product-"] .page-actions .action-back.mage-error,
-[class^=" newsletter-"] .page-actions .action-back.mage-error {
-    color: #b57c72;
-}
-
-[class^=" catalog-product-"] .page-actions .action-back:before,
-[class^=" newsletter-"] .page-actions .action-back:before {
-    display: inline-block;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e07d';
-    font-size: 16px;
-}
-
-[class^=" catalog-product-"] .page-actions .action-back span,
-[class^=" newsletter-"] .page-actions .action-back span {
-    display: inline-block;
-    overflow: hidden;
-    text-indent: -999em;
-}*/
 .product-actions {
     padding: 5px 18px;
 }
@@ -480,9 +439,7 @@
 .field-msrp label.mage-error,
 .field-weight label.mage-error,
 .field-quantity_and_stock_status label.mage-error {
-    position: absolute;
-    left: 0;
-    top: 30px;
+    position: static;
 }
 
 /* Change Attribute Set */
@@ -517,11 +474,6 @@ div.removed,
     margin: 5px 0 0;
 }
 
-.eq-ie8 #product_options_container_top .fieldset,
-.eq-ie8 #product_options_container_top .fieldset-alt {
-    margin-bottom: 0;
-}
-
 /*
     Tier Price Table
 -------------------------------------- */
diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view.xml
index 9ddab501539a073592ad67b53df2fcdb340faa17..f13c637c087fa6fb212bfd6ffec39d644a672213 100644
--- a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view.xml
+++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view.xml
@@ -82,6 +82,10 @@
             </block>
         </referenceContainer>
         <referenceBlock name="page.main.title">
+            <arguments>
+                <argument name="id" xsi:type="string">page-title-heading</argument>
+                <argument name="add_base_attribute_aria" xsi:type="string">page-title-heading toolbar-amount</argument>
+            </arguments>
             <block class="Magento\Catalog\Block\Category\Rss\Link" name="rss.link" template="Magento_Catalog::category/rss.phtml"/>
         </referenceBlock>
     </body>
diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
index 0768aa2ceaeac85cb92eb50443c89f5a79ef01d8..b6a7f7a85fbc471fda1c92ba28a56d0099a6d005 100644
--- a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
+++ b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
@@ -52,15 +52,18 @@ $imageBlock =  $block->getLayout()->createBlock('Magento\Catalog\Block\Product\I
             <?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
             <?php foreach ($_productCollection as $_product): ?>
                 <?php echo($iterator++ == 1) ? '<li class="item product product-item">' : '</li><li class="item product product-item">' ?>
-                <div class="product-item-info">
+                <div class="product-item-info" data-container="product-grid">
                     <?php // Product Image ?>
-                    <a href="<?php echo $_product->getProductUrl() ?>" class="product photo product-item-photo">
+                    <a href="<?php echo $_product->getProductUrl() ?>" class="product photo product-item-photo" tabindex="-1">
                         <?php echo $imageBlock->init($_product, $image)->toHtml() ?>
                     </a>
                     <div class="product details product-item-details">
-                        <?php $_productNameStripped = $block->stripTags($_product->getName(), null, true); ?>
+                        <?php
+                            $_productNameStripped = $block->stripTags($_product->getName(), null, true);
+                        ?>
                         <strong class="product name product-item-name">
-                            <a class="product-item-link" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>">
+                            <a class="product-item-link"
+                               href="<?php echo $_product->getProductUrl() ?>">
                                 <?php echo $_helper->productAttribute($_product, $_product->getName(), 'name'); ?>
                             </a>
                         </strong>
@@ -75,7 +78,9 @@ $imageBlock =  $block->getLayout()->createBlock('Magento\Catalog\Block\Product\I
                                         <form data-role="tocart-form" action="<?php echo $postParams['action']; ?>" method="post">
                                             <input type="hidden" name="product" value="<?php echo $postParams['data']['product']; ?>">
                                             <input type="hidden" name="<?php echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>">
-                                            <button type="submit" title="<?php echo __('Add to Cart') ?>" class="action tocart primary">
+                                            <button type="submit"
+                                                    title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>"
+                                                    class="action tocart primary">
                                                 <span><?php echo __('Add to Cart') ?></span>
                                             </button>
                                         </form>
@@ -89,17 +94,25 @@ $imageBlock =  $block->getLayout()->createBlock('Magento\Catalog\Block\Product\I
                                 </div>
                                 <div data-role="add-to-links" class="actions-secondary"<?php echo strpos($pos, $viewMode . '-secondary') ? $position : ''; ?>>
                                     <?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?>
-                                        <a href="#" title="<?php echo __('Add to Wishlist') ?>"
+                                        <a href="#" 
+                                           class="action towishlist"
+                                           title="<?php echo $block->escapeHtml(__('Add to Wishlist')); ?>"
+                                           aria-label="<?php echo $block->escapeHtml(__('Add to Wishlist')); ?>"
                                            data-post='<?php echo $block->getAddToWishlistParams($_product); ?>'
-                                           class="action towishlist" data-action="add-to-wishlist">
+                                           data-action="add-to-wishlist"
+                                           role="button">
                                             <span><?php echo __('Add to Wishlist') ?></span>
                                         </a>
                                     <?php endif; ?>
                                     <?php
                                     $compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare');
                                     ?>
-                                    <a href="#" class="action tocompare" title="<?php echo __('Add to Compare') ?>"
-                                       data-post='<?php echo $compareHelper->getPostDataParams($_product); ?>'>
+                                    <a href="#" 
+                                       class="action tocompare"
+                                       title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
+                                       aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
+                                       data-post='<?php echo $compareHelper->getPostDataParams($_product); ?>'
+                                       role="button">
                                         <span><?php echo __('Add to Compare') ?></span>
                                     </a>
                                 </div>
diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/amount.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/amount.phtml
index 4beed46d3681d396ed1ae56ae1ba7e930d4c699d..91b5688b39467d0886c6f04b848e3f772777158a 100644
--- a/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/amount.phtml
+++ b/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/amount.phtml
@@ -15,7 +15,7 @@
  */
 use Magento\Catalog\Model\Product\ProductList\Toolbar;
 ?>
-<p class="toolbar-amount">
+<p class="toolbar-amount" id="toolbar-amount">
     <?php if ($block->getLastPageNum() > 1): ?>
         <?php echo __('Items %1-%2 of %3',
             '<span class="toolbar-number">' . $block->getFirstNum() . '</span>',
diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/viewmode.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/viewmode.phtml
index 7af3a53cb06ed6de93b7b45d3f5c1bc7fd32b37f..3cd81f8768692bef2fae2d94f638967b4f58961f 100644
--- a/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/viewmode.phtml
+++ b/app/code/Magento/Catalog/view/frontend/templates/product/list/toolbar/viewmode.phtml
@@ -19,7 +19,7 @@ use Magento\Catalog\Model\Product\ProductList\Toolbar;
 <div class="modes">
     <?php $_modes = $block->getModes(); ?>
     <?php if ($_modes && count($_modes) > 1): ?>
-    <strong class="modes-label"><?php echo __('View as') ?></strong>
+    <strong class="modes-label" id="modes-label"><?php echo __('View as') ?></strong>
     <?php foreach ($block->getModes() as $_code => $_label): ?>
         <?php if ($block->isModeActive($_code)): ?>
             <strong title="<?php echo $_label ?>"
@@ -32,7 +32,9 @@ use Magento\Catalog\Model\Product\ProductList\Toolbar;
                title="<?php echo $_label ?>"
                href="#"
                data-role="mode-switcher"
-               data-value="<?php echo strtolower($_code); ?>">
+               data-value="<?php echo strtolower($_code); ?>"
+               id="mode-<?php echo strtolower($_code); ?>"
+               aria-labelledby="modes-label mode-<?php echo strtolower($_code); ?>">
                 <span><?php echo $_label ?></span>
             </a>
             <?php endif; ?>
diff --git a/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js b/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
index 74e1566a8dc5ba6f4691574491bbb6b7b65dcc43..faf107ba5487008c6652a589ae45f10571d235db 100644
--- a/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
+++ b/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
@@ -38,6 +38,16 @@ define([
         },
 
         submitForm: function(form) {
+            var self = this;
+            if (form.has('input[type="file"]').length) {
+                self.element.off('submit');
+                form.submit();
+            } else {
+                self.ajaxSubmit(form);
+            }
+        },
+
+        ajaxSubmit: function(form) {
             var self = this;
             $.ajax({
                 url: form.attr('action'),
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 231331edb16ed4a5153a75e7de839e541a51015b..0bcac43699d1cc037b309bbedc1f384f7bec0e51 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -12,6 +12,7 @@ use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface as ValidatorInterface;
 use Magento\Framework\Model\Resource\Db\TransactionManagerInterface;
 use Magento\Framework\Model\Resource\Db\ObjectRelationProcessor;
+use Magento\Framework\Stdlib\DateTime;
 
 /**
  * Import entity product model
@@ -336,7 +337,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     protected $_localeDate;
 
     /**
-     * @var \Magento\Framework\Stdlib\DateTime
+     * @var DateTime
      */
     protected $dateTime;
 
@@ -409,7 +410,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      * @param \Magento\Framework\Filesystem $filesystem
      * @param \Magento\CatalogInventory\Model\Resource\Stock\ItemFactory $stockResItemFac
      * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
-     * @param \Magento\Framework\Stdlib\DateTime $dateTime
+     * @param DateTime $dateTime
      * @param \Psr\Log\LoggerInterface $logger
      * @param \Magento\Indexer\Model\IndexerRegistry $indexerRegistry
      * @param Product\StoreResolver $storeResolver
@@ -444,7 +445,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         \Magento\Framework\Filesystem $filesystem,
         \Magento\CatalogInventory\Model\Resource\Stock\ItemFactory $stockResItemFac,
         \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
-        \Magento\Framework\Stdlib\DateTime $dateTime,
+        DateTime $dateTime,
         \Psr\Log\LoggerInterface $logger,
         \Magento\Indexer\Model\IndexerRegistry $indexerRegistry,
         Product\StoreResolver $storeResolver,
@@ -943,7 +944,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     if (isset($this->_oldSku[$rowSku])) {
                         // existing row
                         $entityRowsUp[] = [
-                            'updated_at' => $this->dateTime->now(),
+                            'updated_at' => (new \DateTime())->format(DateTime::DATETIME_PHP_FORMAT),
                             'entity_id' => $this->_oldSku[$rowSku]['entity_id'],
                         ];
                     } else {
@@ -954,8 +955,8 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                                 'type_id' => $this->skuProcessor->getNewSku($rowSku)['type_id'],
                                 'sku' => $rowSku,
                                 'has_options' => isset($rowData['has_options']) ? $rowData['has_options'] : 0,
-                                'created_at' => $this->dateTime->now(),
-                                'updated_at' => $this->dateTime->now(),
+                                'created_at' => (new \DateTime())->format(DateTime::DATETIME_PHP_FORMAT),
+                                'updated_at' => (new \DateTime())->format(DateTime::DATETIME_PHP_FORMAT),
                             ];
                             $productsQty++;
                         } else {
@@ -1086,7 +1087,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
 
                     if ('datetime' == $attribute->getBackendType() && strtotime($attrValue)) {
                         $attrValue = new \DateTime('@' . strtotime($attrValue));
-                        $attrValue = $attrValue->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT);
+                        $attrValue = $attrValue->format(DateTime::DATETIME_PHP_FORMAT);
                     } elseif ($backModel) {
                         $attribute->getBackend()->beforeSave($product);
                         $attrValue = $product->getData($attribute->getAttributeCode());
@@ -1440,8 +1441,8 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     $stockItemDo->setData($row);
                     $row['is_in_stock'] = $this->stockStateProvider->verifyStock($stockItemDo);
                     if ($this->stockStateProvider->verifyNotification($stockItemDo)) {
-                        $row['low_stock_date'] = $this->_localeDate->date(null, null, null, false)
-                            ->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+                        $row['low_stock_date'] = $this->_localeDate->date(null, null, false)
+                            ->format('Y-m-d H:i:s');
                     }
                     $row['stock_status_changed_auto'] =
                         (int) !$this->stockStateProvider->verifyStock($stockItemDo);
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Option.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Option.php
index acece5eed42edc554529146beb0fc44ce5d822d9..b1b556466c5e587b90357824435bad027b6ac123 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Option.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Option.php
@@ -1348,7 +1348,7 @@ class Option extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
             'entity_id' => $productId,
             'has_options' => 1,
             'required_options' => 0,
-            'updated_at' => $this->dateTime->now(),
+            'updated_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
         ];
 
         if (!empty($rowData[self::COLUMN_IS_REQUIRED])) {
diff --git a/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php b/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php
index 10c1debd7335d941e1ad30af64fc0f047d8a1d3e..d41f2951dadeab5d2c610f0609c94e5e8e1d0670 100644
--- a/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php
+++ b/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php
@@ -138,8 +138,7 @@ class StockItemRepository implements StockItemRepositoryInterface
                 $stockItem->setLowStockDate(null);
                 if ($this->stockStateProvider->verifyNotification($stockItem)) {
                     $stockItem->setLowStockDate(
-                        $this->localeDate->date(null, null, null, false)
-                            ->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                        (new \DateTime())->format('Y-m-d H:i:s')
                     );
                 }
                 $stockItem->setStockStatusChangedAuto(0);
diff --git a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php b/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php
index 4e9f25b954c15d489240337fbd00730d0c5094f9..60ddd32007c278a4cf5f0d497d5b65c7ad3002d9 100644
--- a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php
+++ b/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php
@@ -187,7 +187,7 @@ class Main extends Generic implements TabInterface
         );
 
         $dateFormat = $this->_localeDate->getDateFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+            \IntlDateFormatter::SHORT
         );
         $fieldset->addField(
             'from_date',
diff --git a/app/code/Magento/CatalogRule/Model/Observer.php b/app/code/Magento/CatalogRule/Model/Observer.php
index 887b60b9c8a2e5426eee596422197fb29c027dff..b5cf25c153b3a173bccf087aa2e704afdb04dc9e 100644
--- a/app/code/Magento/CatalogRule/Model/Observer.php
+++ b/app/code/Magento/CatalogRule/Model/Observer.php
@@ -133,9 +133,9 @@ class Observer
         $storeId = $product->getStoreId();
 
         if ($observer->hasDate()) {
-            $date = $observer->getEvent()->getDate();
+            $date = new \DateTime($observer->getEvent()->getDate());
         } else {
-            $date = $this->_localeDate->scopeTimeStamp($storeId);
+            $date = $this->_localeDate->scopeDate($storeId);
         }
 
         if ($observer->hasWebsiteId()) {
@@ -152,7 +152,7 @@ class Observer
             $gId = $this->_customerSession->getCustomerGroupId();
         }
 
-        $key = "{$date}|{$wId}|{$gId}|{$pId}";
+        $key = "{$date->format('Y-m-d H:i:s')}|{$wId}|{$gId}|{$pId}";
         if (!isset($this->_rulePrices[$key])) {
             $rulePrice = $this->_resourceRuleFactory->create()->getRulePrice($date, $wId, $gId, $pId);
             $this->_rulePrices[$key] = $rulePrice;
@@ -183,12 +183,12 @@ class Observer
             $gId = $ruleData->getCustomerGroupId();
             $pId = $product->getId();
 
-            $key = "{$date}|{$wId}|{$gId}|{$pId}";
+            $key = "{$date->format('Y-m-d H:i:s')}|{$wId}|{$gId}|{$pId}";
         } elseif (!is_null($product->getWebsiteId()) && !is_null($product->getCustomerGroupId())) {
             $wId = $product->getWebsiteId();
             $gId = $product->getCustomerGroupId();
             $pId = $product->getId();
-            $key = "{$date}|{$wId}|{$gId}|{$pId}";
+            $key = "{$date->format('Y-m-d H:i:s')}|{$wId}|{$gId}|{$pId}";
         }
 
         if ($key) {
@@ -265,15 +265,15 @@ class Observer
             }
         }
         if ($observer->getEvent()->hasDate()) {
-            $date = $observer->getEvent()->getDate();
+            $date = new \DateTime($observer->getEvent()->getDate());
         } else {
-            $date = $this->_localeDate->scopeTimeStamp($store);
+            $date = new \DateTime('@' . $this->_localeDate->scopeTimeStamp($store));
         }
 
         $productIds = [];
         /* @var $product Product */
         foreach ($collection as $product) {
-            $key = implode('|', [$date, $websiteId, $groupId, $product->getId()]);
+            $key = implode('|', [$date->format('Y-m-d H:i:s'), $websiteId, $groupId, $product->getId()]);
             if (!isset($this->_rulePrices[$key])) {
                 $productIds[] = $product->getId();
             }
@@ -287,7 +287,7 @@ class Observer
                 $productIds
             );
             foreach ($productIds as $productId) {
-                $key = implode('|', [$date, $websiteId, $groupId, $productId]);
+                $key = implode('|', [$date->format('Y-m-d H:i:s'), $websiteId, $groupId, $productId]);
                 $this->_rulePrices[$key] = isset($rulePrices[$productId]) ? $rulePrices[$productId] : false;
             }
         }
diff --git a/app/code/Magento/CatalogRule/Model/Resource/Rule.php b/app/code/Magento/CatalogRule/Model/Resource/Rule.php
index 3fe9ce0f5f8778fffd99d5384aae81727e680383..b20a93b2b6f15ee8904c2d8823b58fbd4ca1ef52 100644
--- a/app/code/Magento/CatalogRule/Model/Resource/Rule.php
+++ b/app/code/Magento/CatalogRule/Model/Resource/Rule.php
@@ -210,7 +210,7 @@ class Rule extends \Magento\Rule\Model\Resource\AbstractResource
      * Get catalog rules product price for specific date, website and
      * customer group
      *
-     * @param int|string $date
+     * @param \DateTime $date
      * @param int $wId
      * @param int $gId
      * @param int $pId
@@ -230,13 +230,13 @@ class Rule extends \Magento\Rule\Model\Resource\AbstractResource
      * Retrieve product prices by catalog rule for specific date, website and customer group
      * Collect data with  product Id => price pairs
      *
-     * @param int|string $date
+     * @param \DateTime $date
      * @param int $websiteId
      * @param int $customerGroupId
      * @param array $productIds
      * @return array
      */
-    public function getRulePrices($date, $websiteId, $customerGroupId, $productIds)
+    public function getRulePrices(\DateTime $date, $websiteId, $customerGroupId, $productIds)
     {
         $adapter = $this->_getReadAdapter();
         $select = $adapter->select()->from(
@@ -244,7 +244,7 @@ class Rule extends \Magento\Rule\Model\Resource\AbstractResource
             ['product_id', 'rule_price']
         )->where(
             'rule_date = ?',
-            $this->dateTime->formatDate($date, false)
+            $date->format('Y-m-d')
         )->where(
             'website_id = ?',
             $websiteId
diff --git a/app/code/Magento/CatalogRule/Model/Rule.php b/app/code/Magento/CatalogRule/Model/Rule.php
index 1228ac74d24cb34975ecd832a25d2f714b1af202..61eac7c2b59f204a98ee782994d04eed6e97bfbf 100644
--- a/app/code/Magento/CatalogRule/Model/Rule.php
+++ b/app/code/Magento/CatalogRule/Model/Rule.php
@@ -252,7 +252,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel
     public function getNow()
     {
         if (!$this->_now) {
-            return $this->dateTime->now();
+            return (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT);
         }
         return $this->_now;
     }
diff --git a/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php b/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
index ecd31765bcb0bd419b1acc25656ac28cc40376d4..5140f4a55eee011fca72375dc48118fac012f658 100644
--- a/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
+++ b/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
@@ -82,7 +82,7 @@ class CatalogRulePrice extends AbstractPrice implements BasePriceProviderInterfa
         if (null === $this->value) {
             $this->value = $this->resourceRuleFactory->create()
                 ->getRulePrice(
-                    $this->dateTime->scopeTimeStamp($this->storeManager->getStore()->getId()),
+                    $this->dateTime->scopeDate($this->storeManager->getStore()->getId()),
                     $this->storeManager->getStore()->getWebsiteId(),
                     $this->customerSession->getCustomerGroupId(),
                     $this->product->getId()
diff --git a/app/code/Magento/CatalogRule/Test/Unit/Pricing/Price/CatalogRulePriceTest.php b/app/code/Magento/CatalogRule/Test/Unit/Pricing/Price/CatalogRulePriceTest.php
index 10f5e51286c200feb09542765874060c9f6e439b..44a3efcdd797a126098241b25e74e2796dac3c2d 100644
--- a/app/code/Magento/CatalogRule/Test/Unit/Pricing/Price/CatalogRulePriceTest.php
+++ b/app/code/Magento/CatalogRule/Test/Unit/Pricing/Price/CatalogRulePriceTest.php
@@ -177,7 +177,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
             ->method('getWebsiteId')
             ->will($this->returnValue($coreWebsiteId));
         $this->dataTimeMock->expects($this->once())
-            ->method('scopeTimeStamp')
+            ->method('scopeDate')
             ->with($this->equalTo($coreStoreId))
             ->will($this->returnValue($dateTime));
         $this->customerSessionMock->expects($this->once())
diff --git a/app/code/Magento/CatalogSearch/Block/Advanced/Form.php b/app/code/Magento/CatalogSearch/Block/Advanced/Form.php
index 948f2db6e5e1366bdae12e03b7a49a8c5f8bccd0..730f52568e8058cc31366f4e126d5fae08df989c 100644
--- a/app/code/Magento/CatalogSearch/Block/Advanced/Form.php
+++ b/app/code/Magento/CatalogSearch/Block/Advanced/Form.php
@@ -348,7 +348,7 @@ class Form extends Template
         )->setImage(
             $this->getViewFileUrl('Magento_Theme::calendar.png')
         )->setDateFormat(
-            $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT)
+            $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT)
         )->setClass(
             'input-text'
         )->getHtml();
diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php
index 104843591917cd0000399b15a7e8bae60ac7737d..09bced67eb0c3ebffe81527df0d0db8b7d08ab5d 100644
--- a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php
+++ b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php
@@ -28,9 +28,9 @@ class Full
     protected $separator = ' | ';
 
     /**
-     * Array of \Magento\Framework\Stdlib\DateTime\DateInterface objects per store
+     * Array of \DateTime objects per store
      *
-     * @var array
+     * @var \DateTime[]
      */
     protected $dates = [];
 
@@ -140,7 +140,7 @@ class Full
     /**
      * @var \Magento\Framework\Search\Request\Config
      */
-    private $searchRequestConfig;
+    protected $searchRequestConfig;
 
     /**
      * @param \Magento\Framework\App\Resource $resource
@@ -763,23 +763,20 @@ class Full
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
                 $storeId
             );
-            $locale = $this->scopeConfig->getValue(
-                $this->localeResolver->getDefaultLocalePath(),
-                \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
-                $storeId
-            );
-            $locale = new \Zend_Locale($locale);
+            
+            $this->localeResolver->emulate($storeId);
+
+            $dateObj = new \DateTime();
+            $dateObj->setTimezone(new \DateTimeZone($timezone));
+            $this->dates[$storeId] = $dateObj;
 
-            $dateObj = new \Magento\Framework\Stdlib\DateTime\Date(null, null, $locale);
-            $dateObj->setTimezone($timezone);
-            $this->dates[$storeId] = [$dateObj, $locale->getTranslation(null, 'date', $locale)];
+            $this->localeResolver->revert();
         }
 
         if (!$this->dateTime->isEmptyDate($date)) {
-            list($dateObj, $format) = $this->dates[$storeId];
-            $dateObj->setDate($date, \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
-
-            return $dateObj->toString($format);
+            /** @var \DateTime $dateObj */
+            $dateObj = $this->dates[$storeId];
+            return $this->localeDate->formatDateTime($dateObj, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::NONE);
         }
 
         return null;
diff --git a/app/code/Magento/Checkout/Controller/Cart/Add.php b/app/code/Magento/Checkout/Controller/Cart/Add.php
index bc7d70be280d3b705b6ab208213f7dfeba99012a..d9cf864bd356fc02a1d18210cb4c451a523158da 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Add.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Add.php
@@ -86,7 +86,7 @@ class Add extends \Magento\Checkout\Controller\Cart
         try {
             if (isset($params['qty'])) {
                 $filter = new \Zend_Filter_LocalizedToNormalized(
-                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocaleCode()]
+                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocale()]
                 );
                 $params['qty'] = $filter->filter($params['qty']);
             }
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
index a7ae076c012dc9431a7cdb419885f29f269e8c3e..61be91b6a1e925178502254081decb8d0cc3112d 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
@@ -29,7 +29,7 @@ class UpdateItemOptions extends \Magento\Checkout\Controller\Cart
         try {
             if (isset($params['qty'])) {
                 $filter = new \Zend_Filter_LocalizedToNormalized(
-                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocaleCode()]
+                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocale()]
                 );
                 $params['qty'] = $filter->filter($params['qty']);
             }
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
index bd7abd59c5b5341e3f080e7e0dcbbba8dbdb189b..dc71ca01354e36206279c5a580c9a5f4be0b71c8 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
@@ -39,7 +39,7 @@ class UpdatePost extends \Magento\Checkout\Controller\Cart
             $cartData = $this->getRequest()->getParam('cart');
             if (is_array($cartData)) {
                 $filter = new \Zend_Filter_LocalizedToNormalized(
-                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocaleCode()]
+                    ['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocale()]
                 );
                 foreach ($cartData as $index => $data) {
                     if (isset($data['qty'])) {
diff --git a/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php b/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php
index 0d639ce8483757c082e10fb37a79d1a2f63eda36..0e12b799444cd796892dfcf5f1892e780e368532 100644
--- a/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php
+++ b/app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php
@@ -116,7 +116,7 @@ class Design extends \Magento\Backend\Block\Widget\Form\Generic implements
         );
 
         $dateFormat = $this->_localeDate->getDateFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+            \IntlDateFormatter::SHORT
         );
 
         $designFieldset->addField(
diff --git a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml
index 3dec420b0ab9cda7341ff2702cdb6f1bf66ac645..7838058ef1db005bcf56882602ec4c53d64d9d51 100644
--- a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml
+++ b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml
@@ -10,7 +10,8 @@
 ?>
 
 <div data-mage-init='{"mediabrowser": <?php echo $block->escapeHtml($block->getFilebrowserSetupObject()); ?>}'>
-    <div style="float:right; width: 79%">
+    <div class="side-col"><?php echo $block->getChildHtml('wysiwyg_images.tree') ?></div>
+    <div class="main-col">
         <div class="insert-title" id="content_header">
             <div class="insert-title-inner">
                 <div class="insert-actions">
@@ -22,5 +23,4 @@
         <div id="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_images.uploader') ?></div>
         <div id="contents"></div>
     </div>
-    <div style="float:left;  width: 20%"><?php echo $block->getChildHtml('wysiwyg_images.tree') ?></div>
 </div>
diff --git a/app/code/Magento/Config/Block/System/Config/Form/Field/Datetime.php b/app/code/Magento/Config/Block/System/Config/Form/Field/Datetime.php
index 8b37f3483531ead4075051e334aa860325af54d4..f6339dd68cd3149f38822875e82c25bcc15988e8 100644
--- a/app/code/Magento/Config/Block/System/Config/Form/Field/Datetime.php
+++ b/app/code/Magento/Config/Block/System/Config/Form/Field/Datetime.php
@@ -19,8 +19,8 @@ class Datetime extends \Magento\Config\Block\System\Config\Form\Field
     protected function _getElementHtml(AbstractElement $element)
     {
         $format = $this->_localeDate->getDateTimeFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+            \IntlDateFormatter::MEDIUM
         );
-        return $this->_localeDate->date(intval($element->getValue()))->toString($format);
+        return \IntlDateFormatter::formatObject($this->_localeDate->date(intval($element->getValue())), $format);
     }
 }
diff --git a/app/code/Magento/Config/Block/System/Config/Form/Field/Notification.php b/app/code/Magento/Config/Block/System/Config/Form/Field/Notification.php
index ad9dd87ccad09824b3783314589ac69731d6636f..73f77141771112a28c23e1cafb8a22dd7a97f508 100644
--- a/app/code/Magento/Config/Block/System/Config/Form/Field/Notification.php
+++ b/app/code/Magento/Config/Block/System/Config/Form/Field/Notification.php
@@ -20,8 +20,8 @@ class Notification extends \Magento\Config\Block\System\Config\Form\Field
     {
         $element->setValue($this->_cache->load('admin_notifications_lastcheck'));
         $format = $this->_localeDate->getDateTimeFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+            \IntlDateFormatter::MEDIUM
         );
-        return $this->_localeDate->date(intval($element->getValue()))->toString($format);
+        return \IntlDateFormatter::formatObject($this->_localeDate->date(intval($element->getValue())), $format);
     }
 }
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/super/config.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/super/config.phtml
index 743c8ca2a5d12b3d533837801464c5ca2cae8a9e..85473712aafa7459a69b21e0af57da835596e6e0 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/super/config.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/super/config.phtml
@@ -113,8 +113,23 @@ require([
         title: 'Select Associated Product',
         autoOpen: false,
         minWidth: 980,
+        width: '75%',
         modal: true,
-        resizable: true
+        resizable: true,
+        position: {
+            my: 'left top',
+            at: 'center top',
+            of: 'body'
+        },
+        open: function () {
+            $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+            var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+            $(this).closest('.ui-dialog').css('margin-top', topMargin);
+        },
+        close: function() {
+            $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+        }
     });
 
     $('[data-panel=product-variations]')
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml
index 1c49084ad4c0593060e84a98889b8a9510935156..bb0c462574f1a28c850ba3880559e7e135b16f8b 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/form.phtml
@@ -8,14 +8,14 @@
 
 /* @var $block \Magento\Framework\View\Element\Template */
 ?>
-<div id="<?php echo $block->getNameInLayout() ?>" style="display:none" data-role="dialog" data-id="affected-attribute-set-selector">
+<div id="<?php echo $block->getNameInLayout() ?>" style="display: none" data-role="dialog" data-id="affected-attribute-set-selector">
     <form action="">
 
-        <div class="messages">
-            <div class="message notice">
+        <div class="messages admin__scope">
+            <div class="message message-notice notice">
                 <div><?php echo __("Attribute set comprising all selected configurable attributes need to be in order to save generated variations.") ?></div>
             </div>
-            <div class="message error" style="display:none"></div>
+            <div class="message message-error error" style="display: none"></div>
         </div>
 
         <fieldset class="fieldset">
@@ -37,7 +37,7 @@
                 </div>
             </div>
 
-            <div class="field required" id="affected-attribute-set-new-name-container" style="display:none">
+            <div class="field required" id="affected-attribute-set-new-name-container" style="display: none">
                 <label class="label" for="new-attribute-set-name">
                     <span><?php echo __('New attribute set name')?></span>
                 </label>
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml
index b1be8df1db1a1e094d38883742a5c9a3c2e7966a..9212be28ee6b9ac32658b90f3d0df179f8facef4 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml
@@ -37,20 +37,28 @@
                 title: '<?php echo __('Choose Affected Attribute Set'); ?>',
                 autoOpen: false,
                 id: '<?php echo $block->getJsId() ?>',
-                minWidth: 700,
+                width: '75%',
                 modal: true,
                 resizable: false,
-                close: resetValidation,
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight();
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                },
+                close: function () {
+                    resetValidation();
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                },
                 buttons: [{
-                    text: '<?php echo __('Cancel'); ?>',
-                    id: '<?php echo $block->getJsId('close-button') ?>',
-                    click: function() {
-                        $form.dialog('close');
-                    }
-                }, {
                     text: '<?php echo __('Confirm'); ?>',
                     id: '<?php echo $block->getJsId('confirm-button') ?>',
-                    'class': 'primary',
+                    'class': 'action-primary',
                     click: function() {
                         if ($form.find('input[name=affected-attribute-set]:checked').val() == 'current') {
                             $('#new-variations-attribute-set-id').val($('#attribute_set_id').val());
@@ -91,6 +99,13 @@
 
                         return false;
                     }
+                },{
+                    text: '<?php echo __('Cancel'); ?>',
+                    id: '<?php echo $block->getJsId('close-button') ?>',
+                    'class': 'action-close',
+                    click: function() {
+                        $form.dialog('close');
+                    }
                 }]
             })
             .find('input[name=affected-attribute-set]').on('change', function() {
diff --git a/app/code/Magento/Cron/Model/Schedule.php b/app/code/Magento/Cron/Model/Schedule.php
index 7b200e04b809e6ad47708362c79814064fad3a41..eeb13bde4cde959b646efe452c10db48b158da0b 100644
--- a/app/code/Magento/Cron/Model/Schedule.php
+++ b/app/code/Magento/Cron/Model/Schedule.php
@@ -114,11 +114,11 @@ class Schedule extends \Magento\Framework\Model\AbstractModel
 
         $dateWithTimezone = $this->timezone->date($time);
 
-        $match = $this->matchCronExpression($e[0], $dateWithTimezone->get(\Zend_Date::MINUTE))
-            && $this->matchCronExpression($e[1], $dateWithTimezone->get(\Zend_Date::HOUR))
-            && $this->matchCronExpression($e[2], $dateWithTimezone->get(\Zend_Date::DAY))
-            && $this->matchCronExpression($e[3], $dateWithTimezone->get(\Zend_Date::MONTH))
-            && $this->matchCronExpression($e[4], $dateWithTimezone->get(\Zend_Date::WEEKDAY));
+        $match = $this->matchCronExpression($e[0], $dateWithTimezone->format('i'))
+            && $this->matchCronExpression($e[1], $dateWithTimezone->format('H'))
+            && $this->matchCronExpression($e[2], $dateWithTimezone->format('d'))
+            && $this->matchCronExpression($e[3], $dateWithTimezone->format('m'))
+            && $this->matchCronExpression($e[4], $dateWithTimezone->format('N'));
 
         return $match;
     }
diff --git a/app/code/Magento/Cron/Test/Unit/Model/ScheduleTest.php b/app/code/Magento/Cron/Test/Unit/Model/ScheduleTest.php
index d1dbcf1fdc201cd4ca0b4655dc6e911c92ec018e..a5678197291887d8de73ee75f918da7c80310d72 100644
--- a/app/code/Magento/Cron/Test/Unit/Model/ScheduleTest.php
+++ b/app/code/Magento/Cron/Test/Unit/Model/ScheduleTest.php
@@ -162,10 +162,6 @@ class ScheduleTest extends \PHPUnit_Framework_TestCase
             ->disableOriginalConstructor()
             ->setMethods(['date'])
             ->getMockForAbstractClass();
-        $dateMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->disableOriginalConstructor()
-            ->setMethods(['get'])
-            ->getMockForAbstractClass();
 
         /** @var \Magento\Cron\Model\Schedule $model */
         $model = $this->helper->getObject(
@@ -179,13 +175,11 @@ class ScheduleTest extends \PHPUnit_Framework_TestCase
         $model->setScheduledAt($scheduledAt);
         $model->setCronExprArr($cronExprArr);
         if ($scheduledAt && $cronExprArr) {
-            $timezoneMock->expects($this->once())->method('date')->willReturn($dateMock);
-            $date = getdate(is_numeric($scheduledAt) ? $scheduledAt : strtotime($scheduledAt));
-            $dateMock->expects($this->at(0))->method('get')->with(\Zend_Date::MINUTE)->willReturn($date['minutes']);
-            $dateMock->expects($this->at(1))->method('get')->with(\Zend_Date::HOUR)->willReturn($date['hours']);
-            $dateMock->expects($this->at(2))->method('get')->with(\Zend_Date::DAY)->willReturn($date['mday']);
-            $dateMock->expects($this->at(3))->method('get')->with(\Zend_Date::MONTH)->willReturn($date['mon']);
-            $dateMock->expects($this->at(4))->method('get')->with(\Zend_Date::WEEKDAY)->willReturn($date['wday']);
+            $date = is_numeric($scheduledAt) ? $scheduledAt : strtotime($scheduledAt);
+            $timezoneMock->expects($this->once())
+                ->method('date')
+                ->with($date)
+                ->willReturn((new \DateTime())->setTimestamp($date));
         }
 
         // 3. Run tested method
diff --git a/app/code/Magento/CurrencySymbol/Model/System/Currencysymbol.php b/app/code/Magento/CurrencySymbol/Model/System/Currencysymbol.php
index c89fbd8b94ddcf14cd82224a78902e800fb53cc8..66510bd9522d6f05a8fe9e0e9e6849f624305a7b 100644
--- a/app/code/Magento/CurrencySymbol/Model/System/Currencysymbol.php
+++ b/app/code/Magento/CurrencySymbol/Model/System/Currencysymbol.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\CurrencySymbol\Model\System;
 
+use Magento\Framework\Locale\Bundle\CurrencyBundle;
+
 /**
  * Custom currency symbol model
  */
@@ -89,9 +90,9 @@ class Currencysymbol
     protected $_storeManager;
 
     /**
-     * @var \Magento\Framework\LocaleInterface
+     * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_locale;
+    protected $localeResolver;
 
     /**
      * @var \Magento\Framework\App\Config\ReinitableConfigInterface
@@ -129,7 +130,7 @@ class Currencysymbol
         $this->_configFactory = $configFactory;
         $this->_cacheTypeList = $cacheTypeList;
         $this->_storeManager = $storeManager;
-        $this->_locale = $localeResolver->getLocale();
+        $this->localeResolver = $localeResolver;
         $this->_systemStore = $systemStore;
         $this->_eventManager = $eventManager;
         $this->_scopeConfig = $scopeConfig;
@@ -196,13 +197,9 @@ class Currencysymbol
         $currentSymbols = $this->_unserializeStoreConfig(self::XML_PATH_CUSTOM_CURRENCY_SYMBOL);
 
         foreach ($allowedCurrencies as $code) {
-            if (!($symbol = $this->_locale->getTranslation($code, 'currencysymbol'))) {
-                $symbol = $code;
-            }
-            $name = $this->_locale->getTranslation($code, 'nametocurrency');
-            if (!$name) {
-                $name = $code;
-            }
+            $currencies = (new CurrencyBundle())->get($this->localeResolver->getLocale())['Currencies'];
+            $symbol = $currencies[$code][0] ?: $code;
+            $name = $currencies[$code][1] ?: $code;
             $this->_symbolsData[$code] = ['parentSymbol' => $symbol, 'displayName' => $name];
 
             if (isset($currentSymbols[$code]) && !empty($currentSymbols[$code])) {
diff --git a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Newsletter.php b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Newsletter.php
index 6467fe865e6db15c13c46a9bf3281ada2daff897..7e84b670e96cc42a1d0230f19dc8a52d8c487491 100644
--- a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Newsletter.php
+++ b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Newsletter.php
@@ -192,7 +192,7 @@ class Newsletter extends \Magento\Backend\Block\Widget\Form\Generic implements T
         if ($subscriber->getChangeStatusAt()) {
             return $this->formatDate(
                 $subscriber->getChangeStatusAt(),
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM,
+                \IntlDateFormatter::MEDIUM,
                 true
             );
         }
diff --git a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfo.php b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfo.php
index 2ea02b24ab271ec0f4dd0648ae99eefc779051bb..891ba0e5fcad0cfd8153c0600ed705583a5b92a6 100644
--- a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfo.php
+++ b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfo.php
@@ -133,12 +133,8 @@ class PersonalInfo extends \Magento\Backend\Block\Template
     {
         $createdAt = $this->getCustomer()->getCreatedAt();
         try {
-            $date = $this->_localeDate->scopeDate(
-                $this->getCustomer()->getStoreId(),
-                $this->dateTime->toTimestamp($createdAt),
-                true
-            );
-            return $this->formatDate($date, TimezoneInterface::FORMAT_TYPE_MEDIUM, true);
+            $date = $this->_localeDate->scopeDate($this->getCustomer()->getStoreId(), $createdAt, true);
+            return $this->formatDate($date, \IntlDateFormatter::MEDIUM, true);
         } catch (\Exception $e) {
             $this->_logger->critical($e);
             return '';
@@ -166,7 +162,7 @@ class PersonalInfo extends \Magento\Backend\Block\Template
     {
         return $this->formatDate(
             $this->getCustomer()->getCreatedAt(),
-            TimezoneInterface::FORMAT_TYPE_MEDIUM,
+            \IntlDateFormatter::MEDIUM,
             true
         );
     }
diff --git a/app/code/Magento/Customer/Block/Widget/Dob.php b/app/code/Magento/Customer/Block/Widget/Dob.php
index 61d24dcc78e493c4adad33fecac516cca3a0bce9..5d272f753f732a8db5af008da3a293effa850786 100644
--- a/app/code/Magento/Customer/Block/Widget/Dob.php
+++ b/app/code/Magento/Customer/Block/Widget/Dob.php
@@ -160,7 +160,7 @@ class Dob extends AbstractWidget
      */
     public function getDateFormat()
     {
-        return $this->_localeDate->getDateFormat(TimezoneInterface::FORMAT_TYPE_SHORT);
+        return $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
     }
 
     /**
diff --git a/app/code/Magento/Customer/Model/AccountManagement.php b/app/code/Magento/Customer/Model/AccountManagement.php
index 62790ea7352258c30889500f912bc8ebcccda42f..7fb85ee1caf5ab41cce6309d8843ccacd43f070b 100644
--- a/app/code/Magento/Customer/Model/AccountManagement.php
+++ b/app/code/Magento/Customer/Model/AccountManagement.php
@@ -981,8 +981,8 @@ class AccountManagement implements AccountManagementInterface
 
         $expirationPeriod = $this->customerModel->getResetPasswordLinkExpirationPeriod();
 
-        $currentTimestamp = $this->dateTime->toTimestamp($this->dateTime->now());
-        $tokenTimestamp = $this->dateTime->toTimestamp($rpTokenCreatedAt);
+        $currentTimestamp = (new \DateTime())->getTimestamp();
+        $tokenTimestamp = (new \DateTime($rpTokenCreatedAt))->getTimestamp();
         if ($tokenTimestamp > $currentTimestamp) {
             return true;
         }
@@ -1016,7 +1016,9 @@ class AccountManagement implements AccountManagementInterface
         if (is_string($passwordLinkToken) && !empty($passwordLinkToken)) {
             $customerSecure = $this->customerRegistry->retrieveSecureData($customer->getId());
             $customerSecure->setRpToken($passwordLinkToken);
-            $customerSecure->setRpTokenCreatedAt($this->dateTime->now());
+            $customerSecure->setRpTokenCreatedAt(
+                (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+            );
             $this->customerRepository->save($customer);
         }
         return true;
diff --git a/app/code/Magento/Customer/Model/Customer.php b/app/code/Magento/Customer/Model/Customer.php
index 67327f1012ebd9499b7d35c90962fa6551d88954..49917e246c52a0f90991a8d4e5c27897a9ee9f04 100644
--- a/app/code/Magento/Customer/Model/Customer.php
+++ b/app/code/Magento/Customer/Model/Customer.php
@@ -159,11 +159,6 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     protected $_transportBuilder;
 
-    /**
-     * @var AttributeFactory
-     */
-    protected $_attributeFactory;
-
     /**
      * @var GroupRepositoryInterface
      */
@@ -237,7 +232,6 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
         \Magento\Customer\Model\Resource\Address\CollectionFactory $addressesFactory,
         \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
         GroupRepositoryInterface $groupRepository,
-        AttributeFactory $attributeFactory,
         \Magento\Framework\Encryption\EncryptorInterface $encryptor,
         \Magento\Framework\Stdlib\DateTime $dateTime,
         CustomerInterfaceFactory $customerDataFactory,
@@ -254,7 +248,6 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
         $this->_addressesFactory = $addressesFactory;
         $this->_transportBuilder = $transportBuilder;
         $this->_groupRepository = $groupRepository;
-        $this->_attributeFactory = $attributeFactory;
         $this->_encryptor = $encryptor;
         $this->dateTime = $dateTime;
         $this->customerDataFactory = $customerDataFactory;
@@ -1015,18 +1008,15 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
         }
 
         $entityType = $this->_config->getEntityType('customer');
-        $attribute = $this->_createCustomerAttribute();
-        $attribute->loadByCode($entityType, 'dob');
+        $attribute = $this->_config->getAttribute($entityType, 'dob');
         if ($attribute->getIsRequired() && '' == trim($this->getDob())) {
             $errors[] = __('The Date of Birth is required.');
         }
-        $attribute = $this->_createCustomerAttribute();
-        $attribute->loadByCode($entityType, 'taxvat');
+        $attribute = $this->_config->getAttribute($entityType, 'taxvat');
         if ($attribute->getIsRequired() && '' == trim($this->getTaxvat())) {
             $errors[] = __('The TAX/VAT number is required.');
         }
-        $attribute = $this->_createCustomerAttribute();
-        $attribute->loadByCode($entityType, 'gender');
+        $attribute = $this->_config->getAttribute($entityType, 'gender');
         if ($attribute->getIsRequired() && '' == trim($this->getGender())) {
             $errors[] = __('Gender is required.');
         }
@@ -1113,7 +1103,7 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
     {
         $date = $this->getCreatedAt();
         if ($date) {
-            return $this->dateTime->toTimestamp($date);
+            return (new \DateTime($date))->getTimestamp();
         }
         return null;
     }
@@ -1278,8 +1268,8 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
 
         $expirationPeriod = $this->getResetPasswordLinkExpirationPeriod();
 
-        $currentTimestamp = $this->dateTime->toTimestamp($this->dateTime->now());
-        $tokenTimestamp = $this->dateTime->toTimestamp($linkTokenCreatedAt);
+        $currentTimestamp = (new \DateTime())->getTimestamp();
+        $tokenTimestamp = (new \DateTime($linkTokenCreatedAt))->getTimestamp();
         if ($tokenTimestamp > $currentTimestamp) {
             return true;
         }
@@ -1321,14 +1311,6 @@ class Customer extends \Magento\Framework\Model\AbstractExtensibleModel
         return $this->_addressesFactory->create();
     }
 
-    /**
-     * @return \Magento\Customer\Model\Attribute
-     */
-    protected function _createCustomerAttribute()
-    {
-        return $this->_attributeFactory->create();
-    }
-
     /**
      * @return array
      */
diff --git a/app/code/Magento/Customer/Model/Metadata/Form/AbstractData.php b/app/code/Magento/Customer/Model/Metadata/Form/AbstractData.php
index 04d96b70c24802c4f263410bc5c0273be57bc2f1..d762fb121b6ab9a08f519fe82bfe86fcc9e5f3d4 100644
--- a/app/code/Magento/Customer/Model/Metadata/Form/AbstractData.php
+++ b/app/code/Magento/Customer/Model/Metadata/Form/AbstractData.php
@@ -209,7 +209,7 @@ abstract class AbstractData
         if ($filterCode) {
             $filterClass = 'Magento\Framework\Data\Form\Filter\\' . ucfirst($filterCode);
             if ($filterCode == 'date') {
-                $filter = new $filterClass($this->_dateFilterFormat(), $this->_localeResolver->getLocale());
+                $filter = new $filterClass($this->_dateFilterFormat(), $this->_localeResolver);
             } else {
                 $filter = new $filterClass();
             }
@@ -229,7 +229,7 @@ abstract class AbstractData
         if (is_null($format)) {
             // get format
             if (is_null($this->_dateFilterFormat)) {
-                $this->_dateFilterFormat = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT;
+                $this->_dateFilterFormat = \IntlDateFormatter::SHORT;
             }
             return $this->_localeDate->getDateFormat($this->_dateFilterFormat);
         } elseif ($format === false) {
diff --git a/app/code/Magento/Customer/Model/Metadata/Form/Date.php b/app/code/Magento/Customer/Model/Metadata/Form/Date.php
index 6e55f61a5d225b968120b3013a093e4c2103c5aa..1bcbb500b4ae2970943fcf30ebb264e0e3ac6ce2 100644
--- a/app/code/Magento/Customer/Model/Metadata/Form/Date.php
+++ b/app/code/Magento/Customer/Model/Metadata/Form/Date.php
@@ -127,13 +127,13 @@ class Date extends AbstractData
                 case \Magento\Customer\Model\Metadata\ElementFactory::OUTPUT_FORMAT_TEXT:
                 case \Magento\Customer\Model\Metadata\ElementFactory::OUTPUT_FORMAT_HTML:
                 case \Magento\Customer\Model\Metadata\ElementFactory::OUTPUT_FORMAT_PDF:
-                    $this->_dateFilterFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM);
+                    $this->_dateFilterFormat(\IntlDateFormatter::MEDIUM);
                     break;
             }
             $value = $this->_applyOutputFilter($value);
         }
 
-        $this->_dateFilterFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $this->_dateFilterFormat(\IntlDateFormatter::SHORT);
 
         return $value;
     }
diff --git a/app/code/Magento/Customer/Model/Resource/Customer.php b/app/code/Magento/Customer/Model/Resource/Customer.php
index 9f87049ea88ebe00907e8b8efc17d14bdef6bc5f..9e14f1091ccb5954da6fd2663967ea7e466b2619 100644
--- a/app/code/Magento/Customer/Model/Resource/Customer.php
+++ b/app/code/Magento/Customer/Model/Resource/Customer.php
@@ -381,7 +381,9 @@ class Customer extends \Magento\Eav\Model\Entity\AbstractEntity
     {
         if (is_string($passwordLinkToken) && !empty($passwordLinkToken)) {
             $customer->setRpToken($passwordLinkToken);
-            $customer->setRpTokenCreatedAt($this->dateTime->now());
+            $customer->setRpTokenCreatedAt(
+                (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+            );
             $this->saveAttribute($customer, 'rp_token');
             $this->saveAttribute($customer, 'rp_token_created_at');
         }
diff --git a/app/code/Magento/Customer/Model/Visitor.php b/app/code/Magento/Customer/Model/Visitor.php
index 158a5b3c238546ad4661472368b5e32356cbb3d3..4fc1c3a8026535a7f3bad674f5c1abea19b7fb16 100644
--- a/app/code/Magento/Customer/Model/Visitor.php
+++ b/app/code/Magento/Customer/Model/Visitor.php
@@ -138,7 +138,9 @@ class Visitor extends \Magento\Framework\Model\AbstractModel
         }
         if (!$this->getId()) {
             $this->setSessionId($this->session->getSessionId());
-            $this->setLastVisitAt($this->dateTime->now());
+            $this->setLastVisitAt(
+                (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+            );
             $this->save();
             $this->_eventManager->dispatch('visitor_init', ['visitor' => $this]);
             $this->session->setVisitorData($this->getData());
diff --git a/app/code/Magento/Customer/Test/Unit/Block/Widget/DobTest.php b/app/code/Magento/Customer/Test/Unit/Block/Widget/DobTest.php
index 59cab7a204ef9d1da849202b2101b6ec1319cf24..347ad1ee35a4f2e2816c1a42204aa6968d02740e 100644
--- a/app/code/Magento/Customer/Test/Unit/Block/Widget/DobTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Block/Widget/DobTest.php
@@ -66,12 +66,10 @@ class DobTest extends \PHPUnit_Framework_TestCase
         $cache->expects($this->any())->method('getFrontend')->will($this->returnValue($frontendCache));
 
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $locale = $objectManager->getObject(
-            'Magento\Framework\Locale',
-            ['locale' => \Magento\Framework\Locale\ResolverInterface::DEFAULT_LOCALE]
-        );
         $localeResolver = $this->getMock('\Magento\Framework\Locale\ResolverInterface');
-        $localeResolver->expects($this->any())->method('getLocale')->will($this->returnValue($locale));
+        $localeResolver->expects($this->any())
+            ->method('getLocale')
+            ->willReturn(\Magento\Framework\Locale\ResolverInterface::DEFAULT_LOCALE);
         $timezone = $objectManager->getObject(
             'Magento\Framework\Stdlib\DateTime\Timezone',
             ['localeResolver' => $localeResolver]
diff --git a/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php b/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..aed47c9e45898f0b9e4ea6dc6877c06c87f92d1f
--- /dev/null
+++ b/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php
@@ -0,0 +1,210 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Customer\Test\Unit\Model;
+
+use Magento\Customer\Model\Attribute;
+
+/**
+ * @SuppressWarnings(PHPMD.TooManyFields)
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class AttributeTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Customer\Model\Attribute
+     */
+    protected $attribute;
+
+    /**
+     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $contextMock;
+
+    /**
+     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $registryMock;
+
+    /**
+     * @var \Magento\Framework\Api\MetadataServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $metadataServiceMock;
+
+    /**
+     * @var \Magento\Framework\Api\AttributeValueFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $attributeValueFactoryMock;
+
+    /**
+     * @var \Magento\Eav\Model\Config|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $configMock;
+
+    /**
+     * @var \Magento\Eav\Model\Entity\TypeFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $typeFactoryMock;
+
+    /**
+     * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManagerMock;
+
+    /**
+     * @var \Magento\Eav\Model\Resource\Helper|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $helperMock;
+
+    /**
+     * @var \Magento\Framework\Validator\UniversalFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $universalFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $timezoneMock;
+
+    /**
+     * @var \Magento\Framework\Model\Resource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $resourceMock;
+
+    /**
+     * @var \Magento\Catalog\Model\Product\ReservedAttributeList|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $reservedAttributeListMock;
+
+    /**
+     * @var \Magento\Framework\Locale\ResolverInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resolverMock;
+
+    /**
+     * @var \Magento\Framework\App\CacheInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $cacheManager;
+
+    /**
+     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $eventDispatcher;
+
+    /**
+     * @var \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $attributeOptionFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Reflection\DataObjectProcessor|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $dataObjectProcessorMock;
+
+    /**
+     * @var \Magento\Framework\Api\DataObjectHelper|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $dataObjectHelperMock;
+
+    protected function setUp()
+    {
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry')
+            ->getMock();
+        $this->metadataServiceMock = $this->getMockBuilder('Magento\Framework\Api\MetadataServiceInterface')
+            ->getMock();
+        $this->attributeValueFactoryMock = $this->getMockBuilder('Magento\Framework\Api\AttributeValueFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->configMock = $this->getMockBuilder('Magento\Eav\Model\Config')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->typeFactoryMock = $this->getMockBuilder('Magento\Eav\Model\Entity\TypeFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface')
+            ->getMock();
+        $this->helperMock = $this->getMockBuilder('Magento\Eav\Model\Resource\Helper')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->universalFactoryMock = $this->getMockBuilder('Magento\Framework\Validator\UniversalFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->attributeOptionFactoryMock =
+            $this->getMockBuilder('Magento\Eav\Api\Data\AttributeOptionInterfaceFactory')
+                ->disableOriginalConstructor()
+                ->getMock();
+        $this->dataObjectProcessorMock = $this->getMockBuilder('Magento\Framework\Reflection\DataObjectProcessor')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->dataObjectHelperMock = $this->getMockBuilder('Magento\Framework\Api\DataObjectHelper')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->timezoneMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\TimezoneInterface')
+            ->getMock();
+        $this->reservedAttributeListMock = $this->getMockBuilder('Magento\Catalog\Model\Product\ReservedAttributeList')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resolverMock = $this->getMockBuilder('Magento\Framework\Locale\ResolverInterface')
+            ->getMock();
+
+        $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\Resource\AbstractResource')
+            ->setMethods(['_construct', '_getReadAdapter', '_getWriteAdapter', 'getIdFieldName', 'saveInSetIncluding'])
+            ->getMock();
+        $this->cacheManager = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+            ->getMock();
+        $this->eventDispatcher = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
+            ->getMock();
+
+        $this->contextMock
+            ->expects($this->any())
+            ->method('getCacheManager')
+            ->willReturn($this->cacheManager);
+        $this->contextMock
+            ->expects($this->any())
+            ->method('getEventDispatcher')
+            ->willReturn($this->eventDispatcher);
+
+        $this->attribute = new Attribute(
+            $this->contextMock,
+            $this->registryMock,
+            $this->metadataServiceMock,
+            $this->attributeValueFactoryMock,
+            $this->configMock,
+            $this->typeFactoryMock,
+            $this->storeManagerMock,
+            $this->helperMock,
+            $this->universalFactoryMock,
+            $this->attributeOptionFactoryMock,
+            $this->dataObjectProcessorMock,
+            $this->dataObjectHelperMock,
+            $this->timezoneMock,
+            $this->reservedAttributeListMock,
+            $this->resolverMock,
+            $this->resourceMock
+        );
+    }
+
+    public function testAfterSaveEavCache()
+    {
+        $this->configMock
+            ->expects($this->once())
+            ->method('clear');
+
+        $this->attribute->afterSave();
+    }
+
+    public function testAfterDeleteEavCache()
+    {
+        $this->configMock
+            ->expects($this->once())
+            ->method('clear');
+
+        $this->attribute->afterDelete();
+    }
+}
diff --git a/app/code/Magento/Customer/Test/Unit/Model/CustomerTest.php b/app/code/Magento/Customer/Test/Unit/Model/CustomerTest.php
index 9461432d15cf1ba38b99a0e9e05f985ef93c096e..5f91793ec706725c0ce7b0123a5479408623571d 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/CustomerTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/CustomerTest.php
@@ -143,12 +143,9 @@ class CustomerTest extends \PHPUnit_Framework_TestCase
      */
     public function testValidate($data, $expected)
     {
-        $this->attributeFactoryMock->expects($this->exactly(3))
-            ->method('create')
+        $this->_config->expects($this->exactly(3))
+            ->method('getAttribute')
             ->will($this->returnValue($this->attributeCustomerMock));
-        $this->attributeCustomerMock->expects($this->exactly(3))
-            ->method('loadByCode')
-            ->will($this->returnSelf());
         $this->attributeCustomerMock->expects($this->exactly(3))
             ->method('getIsRequired')
             ->will($this->returnValue(true));
diff --git a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/AbstractDataTest.php b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/AbstractDataTest.php
index 64783020a608c1f9213709a00b97532b64671117..bb7405773f84d1ce0d3c630c52fe49274717f7e3 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/AbstractDataTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/AbstractDataTest.php
@@ -148,7 +148,7 @@ class AbstractDataTest extends \PHPUnit_Framework_TestCase
             )->method(
                 'getDateFormat'
             )->with(
-                $this->equalTo(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT)
+                $this->equalTo(\IntlDateFormatter::SHORT)
             )->will(
                 $this->returnValue($output)
             );
diff --git a/app/code/Magento/Customer/view/frontend/templates/form/resetforgottenpassword.phtml b/app/code/Magento/Customer/view/frontend/templates/form/resetforgottenpassword.phtml
index 9b82b3a7649d60ee1012c8c9bc626bd3d9ee3479..8719fda50b4374e928e9bd5fcf38c6493ea9aae5 100644
--- a/app/code/Magento/Customer/view/frontend/templates/form/resetforgottenpassword.phtml
+++ b/app/code/Magento/Customer/view/frontend/templates/form/resetforgottenpassword.phtml
@@ -29,7 +29,7 @@
     </fieldset>
     <div class="actions-toolbar">
         <div class="primary">
-            <button type="submit" title="<?php echo __('Reset a Password'); ?>" class="action submit primary"><span><?php echo __('Reset a Password'); ?></span></button>
+            <button type="submit" class="action submit primary"><span><?php echo __('Reset a Password'); ?></span></button>
         </div>
     </div>
 </form>
diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Address.php b/app/code/Magento/CustomerImportExport/Model/Import/Address.php
index 39fc75107758b08636300f3db1580be3173df63c..eb7a35225b27b91fad3f25ba8d7f5601c371703b 100644
--- a/app/code/Magento/CustomerImportExport/Model/Import/Address.php
+++ b/app/code/Magento/CustomerImportExport/Model/Import/Address.php
@@ -499,8 +499,8 @@ class Address extends AbstractCustomer
         $entityRow = [
             'entity_id' => $addressId,
             'parent_id' => $customerId,
-            'created_at' => $this->dateTime->now(),
-            'updated_at' => $this->dateTime->now(),
+            'created_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
+            'updated_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
         ];
 
         // attribute values
diff --git a/app/code/Magento/DesignEditor/Block/Adminhtml/Editor/Toolbar/Buttons/Edit.php b/app/code/Magento/DesignEditor/Block/Adminhtml/Editor/Toolbar/Buttons/Edit.php
index f2771c3694de21a58ce6167b680f574e655b742b..3e5fabf8992beca183eaf413856c1c53088d5dba 100644
--- a/app/code/Magento/DesignEditor/Block/Adminhtml/Editor/Toolbar/Buttons/Edit.php
+++ b/app/code/Magento/DesignEditor/Block/Adminhtml/Editor/Toolbar/Buttons/Edit.php
@@ -151,10 +151,9 @@ class Edit extends \Magento\Backend\Block\Widget\Button\SplitButton
     {
         $sourceChange = $this->_changeFactory->create();
         $sourceChange->loadByThemeId($this->_themeContext->getEditableTheme()->getId());
-        $dateMessage = $this->_localeDate->date(
-            $sourceChange->getChangeTime(),
-            \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-        )->toString();
+        $dateMessage = \IntlDateFormatter::formatObject(
+            $this->_localeDate->date($sourceChange->getChangeTime())
+        );
         $message = __('Do you want to restore the version saved at %1?', $dateMessage);
 
         $data = [
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/templates/dialog.phtml b/app/code/Magento/DesignEditor/view/adminhtml/templates/dialog.phtml
index de5fffe338b945acf86a9954481dc9460da23261..de6f2b73df97c7e6c516d2404003eb4538c55b45 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/templates/dialog.phtml
+++ b/app/code/Magento/DesignEditor/view/adminhtml/templates/dialog.phtml
@@ -20,8 +20,14 @@ require([
         var options = {
             autoOpen:    false,
             modal:       true,
-            width:       570,
-            dialogClass: 'vde-dialog'
+            width:       '75%',
+            dialogClass: 'vde-dialog',
+            open: function () {
+                $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+            },
+            close: function () {
+                $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+            }
         };
         $('#dialog-message-confirm').dialog(options);
     });
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2 b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..564c3e2191b5eeffceefd1b4c882e5b326f7fb30
Binary files /dev/null and b/app/code/Magento/DesignEditor/view/adminhtml/web/css/fonts/MUI-Icons.woff2 differ
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-assign.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-assign.js
index 0e582f7fea44fe32467690c23046ea36cb5b4a40..05da6050e258b8d780f974b11395c315d9d7d5c5 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-assign.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-assign.js
@@ -326,7 +326,7 @@ define([
                     }
                     return false;
                 }, this),
-                'class': 'primary'
+                'class': 'action-primary'
             };
             this._dialog.setButtons(buttons);
             this._dialog.open();
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-delete.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-delete.js
index c54655c134a3666870b0cdb921b203854dd61c61..aad78e48d3eb13498060fc6d88b76cad75496a53 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-delete.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-delete.js
@@ -71,7 +71,7 @@ define([
                 {
                     text: $.mage.__('Yes'),
                     click: callback,
-                    'class': 'primary'
+                    'class': 'action-primary'
                 }
             ];
 
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-edit.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-edit.js
index 4fcae47be3898b025d3581ac33575bf4c76489f0..4c41b59a02d521c468a43983f39d5c396cfd76ab 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-edit.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-edit.js
@@ -53,7 +53,7 @@ define([
             dialog.title.set(this.options.title);
             var buttons = (data.confirm && data.confirm.buttons) || [{
                 text: $.mage.__('OK'),
-                'class': 'primary',
+                'class': 'action-primary',
                 click: $.proxy(this._reloadPage, this)
             }];
 
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-revert.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-revert.js
index df7c8d91d47bdd4de014c7a90fc9480113ab3e0d..783d43c09d1d467cc7be23e935655b70c69a08b1 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-revert.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-revert.js
@@ -68,7 +68,7 @@ define([
             var buttons = {
                 text: $.mage.__('OK'),
                 click: callback,
-                'class': 'primary'
+                'class': 'action-primary'
             };
 
             dialog.title.set(this.options.eventData.confirm.title);
@@ -119,8 +119,14 @@ define([
                 this.options.dialog = $(this.options.dialogSelector).dialog({
                     autoOpen:    false,
                     modal:       true,
-                    width:       570,
-                    dialogClass: 'vde-dialog'
+                    width:       '75%',
+                    dialogClass: 'vde-dialog',
+                    open: function () {
+                        $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+                    },
+                    close: function () {
+                        $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                    }
                 });
             }
             return this.options.dialog;
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-save.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-save.js
index bc73a376181217c4907c85d537c5e047a8530a36..616225fb4f3329c24ee92f46c0957d474fa0edca 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-save.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/theme-save.js
@@ -69,7 +69,7 @@ define([
                             click: function() {
                                 $('body').trigger(saveConfirmEvent, eventData);
                             },
-                            'class': 'primary'
+                            'class': 'action-primary'
                         }
                     ]
                 );
@@ -155,7 +155,7 @@ define([
                             this.messages.add(response.message, messageType);
                         }, eventData.dialog);
                     },
-                    'class': 'primary'
+                    'class': 'action-primary'
                 }
             ];
             $(event.target).trigger('assign', eventData);
diff --git a/app/code/Magento/DesignEditor/view/adminhtml/web/js/tools-files.js b/app/code/Magento/DesignEditor/view/adminhtml/web/js/tools-files.js
index 303f14a1655b1fbf8a59c0df0ff0384f88da1399..1a933e0bd84941034b46c3db2db8dfdfbb32d6c2 100644
--- a/app/code/Magento/DesignEditor/view/adminhtml/web/js/tools-files.js
+++ b/app/code/Magento/DesignEditor/view/adminhtml/web/js/tools-files.js
@@ -38,7 +38,11 @@ define([
                 width:      width || 950,
                 height:     height || 456,
                 zIndex:     this.getMaxZIndex(),
-                close:      function(event, ui) {
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+                },
+                close: function(event, ui) {
+                    jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                     jQuery(this).dialog('destroy');
                     jQuery('#' + windowId).remove();
                 }
@@ -287,17 +291,17 @@ define([
                 modal:       true,
                 resizable:   false,
                 dialogClass: 'vde-dialog',
-                width:       500,
+                width:       '75%',
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+                },
+                close: function () {
+                    resetValidation();
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                },
                 buttons: [{
-                    text: jQuery.mage.__('Cancel'),
-                    'class': 'action-close',
-                    click: function() {
-                        jQuery('#contents').trigger('hideLoadingPopup');
-                        jQuery('#' + dialogId).dialog('close');
-                    }
-                }, {
                     text: jQuery.mage.__('Yes'),
-                    'class': 'primary',
+                    'class': 'action-primary',
                     click: function() {
                         new Ajax.Request(MediabrowserInstance.deleteFolderUrl, {
                             onSuccess: function(transport) {
@@ -314,6 +318,13 @@ define([
                         });
                         jQuery('#' + dialogId).dialog('close');
                     }
+                }, {
+                    text: jQuery.mage.__('Cancel'),
+                    'class': 'action-close',
+                    click: function() {
+                        jQuery('#contents').trigger('hideLoadingPopup');
+                        jQuery('#' + dialogId).dialog('close');
+                    }
                 }]
             });
             jQuery('#' + dialogId).text(jQuery.mage.__('Are you sure you want to delete the folder named') + ' "' + this.currentNode.text + '"?');
@@ -332,7 +343,7 @@ define([
                 modal:       true,
                 resizable:   false,
                 dialogClass: 'vde-dialog',
-                width:       500,
+                width:       '75%',
                 buttons: [{
                     text: jQuery.mage.__('Cancel'),
                     'class': 'action-close',
diff --git a/app/code/Magento/Dhl/Model/Carrier.php b/app/code/Magento/Dhl/Model/Carrier.php
index a4abc7b4909f3d30ac603168bb1c2ca0e8a51649..64f37e2b674b8fbde5e63cff1b70f16343a92cf9 100644
--- a/app/code/Magento/Dhl/Model/Carrier.php
+++ b/app/code/Magento/Dhl/Model/Carrier.php
@@ -973,7 +973,10 @@ class Carrier extends \Magento\Dhl\Model\AbstractDhl implements \Magento\Shippin
 
         $nodeBkgDetails = $nodeGetQuote->addChild('BkgDetails');
         $nodeBkgDetails->addChild('PaymentCountryCode', $rawRequest->getOrigCountryId());
-        $nodeBkgDetails->addChild('Date', $this->_dateTime->now(true));
+        $nodeBkgDetails->addChild(
+            'Date',
+            (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+        );
         $nodeBkgDetails->addChild('ReadyTime', 'PT' . (int)(string)$this->getConfigData('ready_time') . 'H00M');
 
         $nodeBkgDetails->addChild('DimensionUnit', $this->_getDimensionUnit());
diff --git a/app/code/Magento/Dhl/Setup/InstallData.php b/app/code/Magento/Dhl/Setup/InstallData.php
index 0ff473fdec0392597aff1543012807c630b0ed38..ac0912d7105a51dac9439bf87b366f4a668c8aa4 100644
--- a/app/code/Magento/Dhl/Setup/InstallData.php
+++ b/app/code/Magento/Dhl/Setup/InstallData.php
@@ -6,7 +6,8 @@
 
 namespace Magento\Dhl\Setup;
 
-use Magento\Framework\Locale\ListsInterface;
+use Magento\Framework\Locale\Bundle\DataBundle;
+use Magento\Framework\Locale\ResolverInterface;
 use Magento\Framework\Setup\InstallDataInterface;
 use Magento\Framework\Setup\ModuleContextInterface;
 use Magento\Framework\Setup\ModuleDataSetupInterface;
@@ -19,18 +20,18 @@ class InstallData implements InstallDataInterface
     /**
      * Locale list
      *
-     * @var ListsInterface
+     * @var ResolverInterface
      */
-    private $localeLists;
+    private $localeResolver;
 
     /**
      * Init
      *
-     * @param ListsInterface $localeLists
+     * @param ResolverInterface $localeResolver
      */
-    public function __construct(ListsInterface $localeLists)
+    public function __construct(ResolverInterface $localeResolver)
     {
-        $this->localeLists = $localeLists;
+        $this->localeResolver = $localeResolver;
     }
 
     /**
@@ -38,12 +39,9 @@ class InstallData implements InstallDataInterface
      */
     public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
     {
-        $days = $this->localeLists->getTranslationList('days');
-
-        $days = array_keys($days['format']['wide']);
-        foreach ($days as $key => $value) {
-            $days[$key] = ucfirst($value);
-        }
+        $days = (new DataBundle())->get(
+            $this->localeResolver->getLocale()
+        )['calendar']['gregorian']['dayNames']['format']['abbreviated'];
 
         $select = $setup->getConnection()->select()->from(
             $setup->getTable('core_config_data'),
@@ -54,7 +52,12 @@ class InstallData implements InstallDataInterface
         );
 
         foreach ($setup->getConnection()->fetchAll($select) as $configRow) {
-            $row = ['value' => implode(',', array_intersect_key($days, array_flip(explode(',', $configRow['value']))))];
+            $row = [
+                'value' => implode(
+                    ',',
+                    array_intersect_key(iterator_to_array($days), array_flip(explode(',', $configRow['value'])))
+                )
+            ];
             $setup->getConnection()->update(
                 $setup->getTable('core_config_data'),
                 $row,
diff --git a/app/code/Magento/Directory/Block/Currency.php b/app/code/Magento/Directory/Block/Currency.php
index b032eed0a1b7b111394098f4416ec5742b3e6270..b6d8217657a054f7c3e6bc003616852427cc3582 100644
--- a/app/code/Magento/Directory/Block/Currency.php
+++ b/app/code/Magento/Directory/Block/Currency.php
@@ -9,6 +9,8 @@
  */
 namespace Magento\Directory\Block;
 
+use Magento\Framework\Locale\Bundle\CurrencyBundle as CurrencyBundle;
+
 class Currency extends \Magento\Framework\View\Element\Template
 {
     /**
@@ -22,9 +24,9 @@ class Currency extends \Magento\Framework\View\Element\Template
     protected $_postDataHelper;
 
     /**
-     * @var \Magento\Framework\LocaleInterface
+     * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_locale;
+    protected $localeResolver;
 
     /**
      * @param \Magento\Framework\View\Element\Template\Context $context
@@ -43,7 +45,7 @@ class Currency extends \Magento\Framework\View\Element\Template
         $this->_currencyFactory = $currencyFactory;
         $this->_postDataHelper = $postDataHelper;
         parent::__construct($context, $data);
-        $this->_locale = $localeResolver->getLocale();
+        $this->localeResolver = $localeResolver;
     }
 
     /**
@@ -78,7 +80,10 @@ class Currency extends \Magento\Framework\View\Element\Template
 
                 foreach ($codes as $code) {
                     if (isset($rates[$code])) {
-                        $currencies[$code] = $this->_locale->getTranslation($code, 'nametocurrency');
+                        $allCurrencies = (new CurrencyBundle())->get(
+                            $this->localeResolver->getLocale()
+                        )['Currencies'];
+                        $currencies[$code] = $allCurrencies[$code][1] ?: $code;
                     }
                 }
             }
diff --git a/app/code/Magento/Directory/Model/Resource/Country/Collection.php b/app/code/Magento/Directory/Model/Resource/Country/Collection.php
index 99e1306287d0aca4ac01e55693168ba93ec140cd..43baa2bf22a8c4df546c335b4ce943fd177be691 100644
--- a/app/code/Magento/Directory/Model/Resource/Country/Collection.php
+++ b/app/code/Magento/Directory/Model/Resource/Country/Collection.php
@@ -200,7 +200,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac
                 $sort[$name] = $data['value'];
             }
         }
-        $this->_arrayUtils->ksortMultibyte($sort, $this->_localeResolver->getLocaleCode());
+        $this->_arrayUtils->ksortMultibyte($sort, $this->_localeResolver->getLocale());
         foreach (array_reverse($this->_foregroundCountries) as $foregroundCountry) {
             $name = array_search($foregroundCountry, $sort);
             unset($sort[$name]);
diff --git a/app/code/Magento/Directory/Model/Resource/Region.php b/app/code/Magento/Directory/Model/Resource/Region.php
index 12a28ad0477551a5fe4cbd89098d7445c027a82d..d36b9bb519814852cefa2674abd66a044e09cc2b 100644
--- a/app/code/Magento/Directory/Model/Resource/Region.php
+++ b/app/code/Magento/Directory/Model/Resource/Region.php
@@ -63,7 +63,7 @@ class Region extends \Magento\Framework\Model\Resource\Db\AbstractDb
         $select = parent::_getLoadSelect($field, $value, $object);
         $adapter = $this->_getReadAdapter();
 
-        $locale = $this->_localeResolver->getLocaleCode();
+        $locale = $this->_localeResolver->getLocale();
         $systemLocale = \Magento\Framework\AppInterface::DISTRO_LOCALE_CODE;
 
         $regionField = $adapter->quoteIdentifier($this->getMainTable() . '.' . $this->getIdFieldName());
@@ -102,7 +102,7 @@ class Region extends \Magento\Framework\Model\Resource\Db\AbstractDb
     protected function _loadByCountry($object, $countryId, $value, $field)
     {
         $adapter = $this->_getReadAdapter();
-        $locale = $this->_localeResolver->getLocaleCode();
+        $locale = $this->_localeResolver->getLocale();
         $joinCondition = $adapter->quoteInto('rname.region_id = region.region_id AND rname.locale = ?', $locale);
         $select = $adapter->select()->from(
             ['region' => $this->getMainTable()]
diff --git a/app/code/Magento/Directory/Model/Resource/Region/Collection.php b/app/code/Magento/Directory/Model/Resource/Region/Collection.php
index 7fdb61efb5c16023b5bacb0cfd34a263ef271626..6474d480eaaaddbe613636c66989f2b06064141b 100644
--- a/app/code/Magento/Directory/Model/Resource/Region/Collection.php
+++ b/app/code/Magento/Directory/Model/Resource/Region/Collection.php
@@ -76,7 +76,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac
     protected function _initSelect()
     {
         parent::_initSelect();
-        $locale = $this->_localeResolver->getLocaleCode();
+        $locale = $this->_localeResolver->getLocale();
 
         $this->addBindParam(':region_locale', $locale);
         $this->getSelect()->joinLeft(
diff --git a/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php b/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php
index 47e31d0b0ef8f59219b8b8f1fff2a8395ae362c3..bc7196634e0e80410fd37a4a665d5ec838f0e94b 100644
--- a/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php
+++ b/app/code/Magento/Eav/Block/Adminhtml/Attribute/Edit/Main/AbstractMain.php
@@ -202,7 +202,7 @@ abstract class AbstractMain extends \Magento\Backend\Block\Widget\Form\Generic
             ]
         );
 
-        $dateFormat = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $fieldset->addField(
             'default_value_date',
             'date',
diff --git a/app/code/Magento/Eav/Model/Attribute.php b/app/code/Magento/Eav/Model/Attribute.php
index d6a034e9bbebb4d7ff5629f257cdde3e27df70c8..7cde5a2bb7797a6c6f01a63a3a8e4fe34a27669d 100644
--- a/app/code/Magento/Eav/Model/Attribute.php
+++ b/app/code/Magento/Eav/Model/Attribute.php
@@ -179,4 +179,13 @@ abstract class Attribute extends \Magento\Eav\Model\Entity\Attribute
     {
         return $this->_getScopeValue('multiline_count');
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function afterDelete()
+    {
+        $this->_eavConfig->clear();
+        return parent::afterDelete();
+    }
 }
diff --git a/app/code/Magento/Eav/Model/Attribute/Data/AbstractData.php b/app/code/Magento/Eav/Model/Attribute/Data/AbstractData.php
index 02bd473d196d37e76afdc28c345f334bc7168e22..124830186527cbb2dc6da670aee811abf1556156 100644
--- a/app/code/Magento/Eav/Model/Attribute/Data/AbstractData.php
+++ b/app/code/Magento/Eav/Model/Attribute/Data/AbstractData.php
@@ -255,7 +255,7 @@ abstract class AbstractData
         if (is_null($format)) {
             // get format
             if (is_null($this->_dateFilterFormat)) {
-                $this->_dateFilterFormat = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT;
+                $this->_dateFilterFormat = \IntlDateFormatter::SHORT;
             }
             return $this->_localeDate->getDateFormat($this->_dateFilterFormat);
         } elseif ($format === false) {
diff --git a/app/code/Magento/Eav/Model/Attribute/Data/Date.php b/app/code/Magento/Eav/Model/Attribute/Data/Date.php
index b1ef1c3c84b35eb61667b8c14c18ff326ce0a5c6..8d59db8adf4606a0ea55bb1731320e72ee09fa27 100644
--- a/app/code/Magento/Eav/Model/Attribute/Data/Date.php
+++ b/app/code/Magento/Eav/Model/Attribute/Data/Date.php
@@ -138,13 +138,13 @@ class Date extends \Magento\Eav\Model\Attribute\Data\AbstractData
                 case \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_TEXT:
                 case \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_HTML:
                 case \Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_PDF:
-                    $this->_dateFilterFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM);
+                    $this->_dateFilterFormat(\IntlDateFormatter::MEDIUM);
                     break;
             }
             $value = $this->_applyOutputFilter($value);
         }
 
-        $this->_dateFilterFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $this->_dateFilterFormat(\IntlDateFormatter::SHORT);
 
         return $value;
     }
diff --git a/app/code/Magento/Eav/Model/Config.php b/app/code/Magento/Eav/Model/Config.php
index 0b19787babb92c03a525f62cee9931cec188cbac..90c6560658f09b01ee0cd9d41b3085db0280e1d7 100644
--- a/app/code/Magento/Eav/Model/Config.php
+++ b/app/code/Magento/Eav/Model/Config.php
@@ -69,13 +69,6 @@ class Config
      */
     protected $_isCacheEnabled = null;
 
-    /**
-     * Array of attributes objects used in collections
-     *
-     * @var array
-     */
-    protected $_collectionAttributes = [];
-
     /**
      * @var \Magento\Framework\App\CacheInterface
      */
@@ -120,6 +113,16 @@ class Config
         $this->_universalFactory = $universalFactory;
     }
 
+    /**
+     * Get cache interface
+     *
+     * @return \Magento\Framework\App\CacheInterface
+     */
+    public function getCache()
+    {
+        return $this->_cache;
+    }
+
     /**
      * Reset object state
      *
@@ -246,7 +249,7 @@ class Config
      *
      * @return bool
      */
-    protected function _isCacheEnabled()
+    public function isCacheEnabled()
     {
         if ($this->_isCacheEnabled === null) {
             $this->_isCacheEnabled = $this->_cacheState->isEnabled(\Magento\Eav\Model\Cache\Type::TYPE_IDENTIFIER);
@@ -266,7 +269,7 @@ class Config
         }
         \Magento\Framework\Profiler::start('EAV: ' . __METHOD__, ['group' => 'EAV', 'method' => __METHOD__]);
 
-        if ($this->_isCacheEnabled() && ($cache = $this->_cache->load(self::ENTITIES_CACHE_ID))) {
+        if ($this->isCacheEnabled() && ($cache = $this->_cache->load(self::ENTITIES_CACHE_ID))) {
             $this->_entityTypeData = unserialize($cache);
             foreach ($this->_entityTypeData as $typeCode => $data) {
                 $typeId = $data['entity_type_id'];
@@ -289,7 +292,7 @@ class Config
             $this->_entityTypeData[$typeCode] = $typeData;
         }
 
-        if ($this->_isCacheEnabled()) {
+        if ($this->isCacheEnabled()) {
             $this->_cache->save(
                 serialize($this->_entityTypeData),
                 self::ENTITIES_CACHE_ID,
@@ -306,7 +309,7 @@ class Config
     /**
      * Get entity type object by entity type code/identifier
      *
-     * @param int|string $code
+     * @param int|string|Type $code
      * @return Type
      * @throws \Magento\Framework\Exception\LocalizedException
      */
@@ -360,7 +363,7 @@ class Config
             return $this;
         }
         $cacheKey = self::ATTRIBUTES_CACHE_ID . $entityTypeCode;
-        if ($this->_isCacheEnabled() && ($attributes = $this->_cache->load($cacheKey))) {
+        if ($this->isCacheEnabled() && ($attributes = $this->_cache->load($cacheKey))) {
             $attributes = unserialize($attributes);
             if ($attributes) {
                 foreach ($attributes as $attribute) {
@@ -383,10 +386,13 @@ class Config
             if (empty($attribute['attribute_model'])) {
                 $attribute['attribute_model'] = $entityType->getAttributeModel();
             }
-            $this->_createAttribute($entityType, $attribute);
-            $this->_attributeData[$entityTypeCode][$attribute['attribute_code']] = $attribute;
+            // attributes should be reloaded via model to be processed by custom resource model
+            $attributeObject = $this->_createAttribute($entityType, $attribute);
+            $this->_attributeData[$entityTypeCode][$attribute['attribute_code']] = $attributeObject->load(
+                $attributeObject->getId()
+            )->toArray();
         }
-        if ($this->_isCacheEnabled()) {
+        if ($this->isCacheEnabled()) {
             $this->_cache->save(
                 serialize($this->_attributeData[$entityTypeCode]),
                 $cacheKey,
@@ -430,6 +436,7 @@ class Config
         if (!$attribute) {
             // TODO: refactor wrong method usage in: addAttributeToSelect, joinAttribute
             $entityType = $this->getEntityType($entityType);
+            /** @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute $attribute */
             $attribute = $this->_universalFactory->create($entityType->getAttributeModel());
             $attribute->setAttributeCode($code);
             $entity = $entityType->getEntity();
@@ -470,7 +477,7 @@ class Config
             return $this->_attributeCodes[$cacheKey];
         }
 
-        if ($this->_isCacheEnabled() && ($attributes = $this->_cache->load($cacheKey))) {
+        if ($this->isCacheEnabled() && ($attributes = $this->_cache->load($cacheKey))) {
             $this->_attributeCodes[$cacheKey] = unserialize($attributes);
             return $this->_attributeCodes[$cacheKey];
         }
@@ -496,7 +503,7 @@ class Config
         }
 
         $this->_attributeCodes[$cacheKey] = $attributes;
-        if ($this->_isCacheEnabled()) {
+        if ($this->isCacheEnabled()) {
             $this->_cache->save(
                 serialize($attributes),
                 $cacheKey,
@@ -510,82 +517,6 @@ class Config
         return $attributes;
     }
 
-    /**
-     * Get attribute object for colection usage
-     *
-     * @param   mixed $entityType
-     * @param   string $attribute
-     * @return  \Magento\Eav\Model\Entity\Attribute\AbstractAttribute|null
-     */
-    public function getCollectionAttribute($entityType, $attribute)
-    {
-        $entityType = $this->getEntityType($entityType);
-        $entityTypeCode = $entityType->getEntityTypeCode();
-
-        if (is_numeric($attribute)) {
-            $attribute = $this->_getAttributeReference($attribute, $entityTypeCode);
-            if (!$attribute) {
-                return null;
-            }
-        }
-
-        $attributeKey = $this->_getAttributeKey($entityTypeCode, $attribute);
-        $attributeObject = $this->_load($attributeKey);
-        if ($attributeObject) {
-            return $attributeObject;
-        }
-
-        return $this->getAttribute($entityType, $attribute);
-    }
-
-    /**
-     * Prepare attributes for usage in EAV collection
-     *
-     * @param   mixed $entityType
-     * @param   array $attributes
-     * @return $this
-     */
-    public function loadCollectionAttributes($entityType, $attributes)
-    {
-        $entityType = $this->getEntityType($entityType);
-        $entityTypeCode = $entityType->getEntityTypeCode();
-
-        if (!isset($this->_collectionAttributes[$entityTypeCode])) {
-            $this->_collectionAttributes[$entityTypeCode] = [];
-        }
-        $loadedAttributes = array_keys($this->_collectionAttributes[$entityTypeCode]);
-        $attributes = array_diff($attributes, $loadedAttributes);
-
-        foreach ($attributes as $k => $attribute) {
-            if (is_numeric($attribute)) {
-                $attribute = $this->_getAttributeReference($attribute, $entityTypeCode);
-            }
-            $attributeKey = $this->_getAttributeKey($entityTypeCode, $attribute);
-            if ($this->_load($attributeKey)) {
-                unset($attributes[$k]);
-            }
-        }
-
-        if (empty($attributes)) {
-            return $this;
-        }
-        $attributeCollection = $entityType->getEntityAttributeCollection();
-        $attributesInfo = $this->_universalFactory->create(
-            $attributeCollection
-        )->useLoadDataFields()->setEntityTypeFilter(
-            $entityType
-        )->setCodeFilter(
-            $attributes
-        )->getData();
-
-        foreach ($attributesInfo as $attributeData) {
-            $attribute = $this->_createAttribute($entityType, $attributeData);
-            $this->_collectionAttributes[$entityTypeCode][$attribute->getAttributeCode()] = $attribute;
-        }
-
-        return $this;
-    }
-
     /**
      * Create attribute from attribute data array
      *
@@ -614,6 +545,7 @@ class Config
         } else {
             $model = $entityType->getAttributeModel();
         }
+        /** @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute $attribute */
         $attribute = $this->_universalFactory->create($model)->setData($attributeData);
         $this->_addAttributeReference(
             $attributeData['attribute_id'],
diff --git a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
index 671b7a1d7bbe1a5a2a914aba5edd9e5cd3d3514d..5a2b8365a25204491b4c079f86ef3aca4768b3b6 100644
--- a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
+++ b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
@@ -955,8 +955,7 @@ abstract class AbstractEntity extends \Magento\Framework\Model\Resource\Abstract
         } else {
             $value = $object->getData($attribute->getAttributeCode());
             if ($attribute->getBackend()->getType() == 'datetime') {
-                $date = new \Magento\Framework\Stdlib\DateTime\Date($value, \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT);
-                $value = $date->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+                $value = (new \DateTime($value))->format('Y-m-d H:i:s');
             }
             $bind = [
                 'attribute_id' => $attribute->getId(),
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute.php b/app/code/Magento/Eav/Model/Entity/Attribute.php
index a7aa71ece91c365a1deed6d335178cc9f3e9dca3..ef74bb1e59e968598de052ba3c08707c67f402cd 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute.php
@@ -248,22 +248,12 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute\AbstractAttribute im
         $hasDefaultValue = (string)$defaultValue != '';
 
         if ($this->getBackendType() == 'decimal' && $hasDefaultValue) {
-            if (!\Zend_Locale_Format::isNumber(
-                $defaultValue,
-                ['locale' => $this->_localeResolver->getLocaleCode()]
-            )
-            ) {
-                throw new EavException(__('Invalid default decimal value'));
-            }
-
-            try {
-                $filter = new \Zend_Filter_LocalizedToNormalized(
-                    ['locale' => $this->_localeResolver->getLocaleCode()]
-                );
-                $this->setDefaultValue($filter->filter($defaultValue));
-            } catch (\Exception $e) {
+            $numberFormatter = new \NumberFormatter($this->_localeResolver->getLocale(), \NumberFormatter::DECIMAL);
+            $defaultValue = $numberFormatter->parse($defaultValue);
+            if ($defaultValue === false) {
                 throw new EavException(__('Invalid default decimal value'));
             }
+            $this->setDefaultValue($defaultValue);
         }
 
         if ($this->getBackendType() == 'datetime') {
@@ -278,10 +268,10 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute\AbstractAttribute im
             // save default date value as timestamp
             if ($hasDefaultValue) {
                 $format = $this->_localeDate->getDateFormat(
-                    \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+                    \IntlDateFormatter::SHORT
                 );
                 try {
-                    $defaultValue = $this->_localeDate->date($defaultValue, $format, null, false)->toValue();
+                    $defaultValue = \IntlDateFormatter::formatObject(new \DateTime($defaultValue), $format);
                     $this->setDefaultValue($defaultValue);
                 } catch (\Exception $e) {
                     throw new EavException(__('Invalid default date'));
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php
index 11e927f5488d6f85a39cbff079ccae2d998a51e4..464d03acab2f9187d7e59e0acd0de17c4827dacc 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php
@@ -61,7 +61,7 @@ class Datetime extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBacke
      * string format used from input fields (all date input fields need apply locale settings)
      * int value can be declared in code (this meen whot we use valid date)
      *
-     * @param string|int $date
+     * @param string|int|\DateTime $date
      * @return string
      */
     public function formatDate($date)
@@ -70,21 +70,13 @@ class Datetime extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBacke
             return null;
         }
         // unix timestamp given - simply instantiate date object
-        if (preg_match('/^[0-9]+$/', $date)) {
-            $date = new \Magento\Framework\Stdlib\DateTime\Date((int)$date);
+        if (is_scalar($date) && preg_match('/^[0-9]+$/', $date)) {
+            $date = new \DateTime('@' . $date);
             // international format
-        } elseif (preg_match('#^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}:\d{2})?$#', $date)) {
-            $zendDate = new \Magento\Framework\Stdlib\DateTime\Date();
-            $date = $zendDate->setIso($date);
+        } elseif (!($date instanceof \DateTime)) {
+            $date = new \DateTime($date);
             // parse this date in current locale, do not apply GMT offset
-        } else {
-            $date = $this->_localeDate->date(
-                $date,
-                $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT),
-                null,
-                false
-            );
         }
-        return $date->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+        return $date->format('Y-m-d H:i:s');
     }
 }
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
index b3c59efbb7887bcc4a13697a75ee661930164476..5e14ddca8729ee2299fc60b3c4dd28488d75eb10 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
@@ -33,7 +33,10 @@ class Created extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBacken
     {
         $attributeCode = $this->getAttribute()->getAttributeCode();
         if ($object->isObjectNew() && is_null($object->getData($attributeCode))) {
-            $object->setData($attributeCode, $this->dateTime->now());
+            $object->setData(
+                $attributeCode,
+                (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+            );
         }
 
         return $this;
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Updated.php b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Updated.php
index af8e2613c91566962f081177bb27e634e0068f76..d889eb031c5cc33e6b43bd34522cf4e43c3302bd 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Updated.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Updated.php
@@ -31,7 +31,10 @@ class Updated extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBacken
      */
     public function beforeSave($object)
     {
-        $object->setData($this->getAttribute()->getAttributeCode(), $this->dateTime->now());
+        $object->setData(
+            $this->getAttribute()->getAttributeCode(),
+            (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+        );
         return $this;
     }
 }
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Frontend/Datetime.php b/app/code/Magento/Eav/Model/Entity/Attribute/Frontend/Datetime.php
index 57f0b73b6c7589bc64f66324209ea3e63ffd4a54..715d8677614c86e3a1ec5b69d3900ec301467789 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Frontend/Datetime.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Frontend/Datetime.php
@@ -37,14 +37,13 @@ class Datetime extends \Magento\Eav\Model\Entity\Attribute\Frontend\AbstractFron
     {
         $data = '';
         $value = parent::getValue($object);
-        $format = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM);
 
         if ($value) {
-            try {
-                $data = $this->_localeDate->date($value, \Zend_Date::ISO_8601, null, false)->toString($format);
-            } catch (\Exception $e) {
-                $data = $this->_localeDate->date($value, null, null, false)->toString($format);
-            }
+            $data = $this->_localeDate->formatDateTime(
+                new \DateTime($value),
+                \IntlDateFormatter::MEDIUM,
+                \IntlDateFormatter::NONE
+            );
         }
 
         return $data;
diff --git a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php
index 7f2680769a2dc29da58ca9340a32a93f5fd26a89..6cd6cf0e6d018dc745d1d4f66a73581ae593a915 100644
--- a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php
+++ b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php
@@ -454,7 +454,6 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Db
     public function addAttributeToSelect($attribute, $joinType = false)
     {
         if (is_array($attribute)) {
-            $this->_eavConfig->loadCollectionAttributes($this->getEntity()->getType(), $attribute);
             foreach ($attribute as $a) {
                 $this->addAttributeToSelect($a, $joinType);
             }
@@ -472,7 +471,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Db
             if (isset($this->_joinAttributes[$attribute])) {
                 $attrInstance = $this->_joinAttributes[$attribute]['attribute'];
             } else {
-                $attrInstance = $this->_eavConfig->getCollectionAttribute($this->getEntity()->getType(), $attribute);
+                $attrInstance = $this->_eavConfig->getAttribute($this->getEntity()->getType(), $attribute);
             }
             if (empty($attrInstance)) {
                 throw new EavException(__('Invalid attribute requested: %1', (string)$attribute));
@@ -1121,7 +1120,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Db
             if (!$attributeId) {
                 continue;
             }
-            $attribute = $this->_eavConfig->getCollectionAttribute($entity->getType(), $attributeCode);
+            $attribute = $this->_eavConfig->getAttribute($entity->getType(), $attributeCode);
             if ($attribute && !$attribute->isStatic()) {
                 $tableAttributes[$attribute->getBackendTable()][] = $attributeId;
                 if (!isset($attributeTypes[$attribute->getBackendTable()])) {
@@ -1226,7 +1225,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Db
         }
         $attributeCode = array_search($valueInfo['attribute_id'], $this->_selectAttributes);
         if (!$attributeCode) {
-            $attribute = $this->_eavConfig->getCollectionAttribute(
+            $attribute = $this->_eavConfig->getAttribute(
                 $this->getEntity()->getType(),
                 $valueInfo['attribute_id']
             );
diff --git a/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Set.php b/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Set.php
index 2dab1d5aae67cc30486212bf696da19a7a95075f..0c083a7d88c9ca12325e9bca91d3ab870debac6f 100644
--- a/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Set.php
+++ b/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Set.php
@@ -12,6 +12,11 @@ namespace Magento\Eav\Model\Resource\Entity\Attribute;
  */
 class Set extends \Magento\Framework\Model\Resource\Db\AbstractDb
 {
+    /**
+     * EAV cache ids
+     */
+    const ATTRIBUTES_CACHE_ID = 'EAV_ENTITY_ATTRIBUTES_BY_SET_ID';
+
     /**
      * @var \Magento\Eav\Model\Resource\Entity\Attribute\GroupFactory
      */
@@ -140,43 +145,38 @@ class Set extends \Magento\Framework\Model\Resource\Db\AbstractDb
      */
     public function getSetInfo(array $attributeIds, $setId = null)
     {
-        $adapter = $this->_getReadAdapter();
-        $setInfo = [];
-        $attributeToSetInfo = [];
-
-        if (count($attributeIds) > 0) {
-            $select = $adapter->select()->from(
-                ['entity' => $this->getTable('eav_entity_attribute')],
-                ['attribute_id', 'attribute_set_id', 'attribute_group_id', 'sort_order']
-            )->joinLeft(
-                ['attribute_group' => $this->getTable('eav_attribute_group')],
-                'entity.attribute_group_id = attribute_group.attribute_group_id',
-                ['group_sort_order' => 'sort_order']
-            )->where(
-                'entity.attribute_id IN (?)',
-                $attributeIds
-            );
-            $bind = [];
-            if (is_numeric($setId)) {
-                $bind[':attribute_set_id'] = $setId;
-                $select->where('entity.attribute_set_id = :attribute_set_id');
-            }
-            $result = $adapter->fetchAll($select, $bind);
+        $cacheKey = self::ATTRIBUTES_CACHE_ID . $setId;
 
-            foreach ($result as $row) {
+        if ($this->eavConfig->isCacheEnabled() && ($cache = $this->eavConfig->getCache()->load($cacheKey))) {
+            $setInfoData = unserialize($cache);
+        } else {
+            $attributeSetData = $this->fetchAttributeSetData($setId);
+
+            $setInfoData = [];
+            foreach ($attributeSetData as $row) {
                 $data = [
                     'group_id' => $row['attribute_group_id'],
                     'group_sort' => $row['group_sort_order'],
                     'sort' => $row['sort_order'],
                 ];
-                $attributeToSetInfo[$row['attribute_id']][$row['attribute_set_id']] = $data;
+                $setInfoData[$row['attribute_id']][$row['attribute_set_id']] = $data;
+            }
+
+            if ($this->eavConfig->isCacheEnabled()) {
+                $this->eavConfig->getCache()->save(
+                    serialize($setInfoData),
+                    $cacheKey,
+                    [
+                        \Magento\Eav\Model\Cache\Type::CACHE_TAG,
+                        \Magento\Eav\Model\Entity\Attribute::CACHE_TAG
+                    ]
+                );
             }
         }
 
-        foreach ($attributeIds as $atttibuteId) {
-            $setInfo[$atttibuteId] = isset(
-                $attributeToSetInfo[$atttibuteId]
-            ) ? $attributeToSetInfo[$atttibuteId] : [];
+        $setInfo = [];
+        foreach ($attributeIds as $attributeId) {
+            $setInfo[$attributeId] = isset($setInfoData[$attributeId]) ? $setInfoData[$attributeId] : [];
         }
 
         return $setInfo;
@@ -204,4 +204,29 @@ class Set extends \Magento\Framework\Model\Resource\Db\AbstractDb
         );
         return $adapter->fetchOne($select, $bind);
     }
+
+    /**
+     * Returns data from eav_entity_attribute table for given $setId (or all if $setId is null)
+     *
+     * @param int $setId
+     * @return array
+     */
+    protected function fetchAttributeSetData($setId = null)
+    {
+        $adapter = $this->_getReadAdapter();
+        $select = $adapter->select()->from(
+            ['entity' => $this->getTable('eav_entity_attribute')],
+            ['attribute_id', 'attribute_set_id', 'attribute_group_id', 'sort_order']
+        )->joinLeft(
+            ['attribute_group' => $this->getTable('eav_attribute_group')],
+            'entity.attribute_group_id = attribute_group.attribute_group_id',
+            ['group_sort_order' => 'sort_order']
+        );
+        $bind = [];
+        if (is_numeric($setId)) {
+            $bind[':attribute_set_id'] = $setId;
+            $select->where('entity.attribute_set_id = :attribute_set_id');
+        }
+        return $adapter->fetchAll($select, $bind);
+    }
 }
diff --git a/app/code/Magento/Eav/Test/Unit/Model/ConfigTest.php b/app/code/Magento/Eav/Test/Unit/Model/ConfigTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e9d0fdc69cb0148ee5d5b412533564e40ad8fdc7
--- /dev/null
+++ b/app/code/Magento/Eav/Test/Unit/Model/ConfigTest.php
@@ -0,0 +1,194 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Eav\Test\Unit\Model;
+
+use Magento\Framework\Object;
+use Magento\Eav\Model\Config;
+
+class ConfigTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Eav\Model\Config
+     */
+    protected $config;
+
+    /**
+     * @var \Magento\Framework\App\CacheInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheMock;
+
+    /**
+     * @var \Magento\Eav\Model\Entity\TypeFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $typeFactoryMock;
+
+    /**
+     * @var \Magento\Eav\Model\Resource\Entity\Type\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $collectionFactoryMock;
+
+    /**
+     * @var \Magento\Framework\App\Cache\StateInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $stateMock;
+
+    /**
+     * @var \Magento\Framework\Validator\UniversalFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $universalFactoryMock;
+
+    protected function setUp()
+    {
+        $this->cacheMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+            ->disableOriginalConstructor()
+            ->setMethods(['load', 'getFrontend', 'save', 'remove', 'clean'])
+            ->getMock();
+        $this->typeFactoryMock = $this->getMockBuilder('Magento\Eav\Model\Entity\TypeFactory')
+            ->setMethods(['create'])
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->collectionFactoryMock = $this->getMockBuilder('Magento\Eav\Model\Resource\Entity\Type\CollectionFactory')
+            ->setMethods(['create'])
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->stateMock = $this->getMockBuilder('Magento\Framework\App\Cache\StateInterface')
+            ->setMethods(['isEnabled', 'setEnabled', 'persist'])
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->universalFactoryMock = $this->getMockBuilder('Magento\Framework\Validator\UniversalFactory')
+            ->setMethods(['create'])
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->config = new Config(
+            $this->cacheMock,
+            $this->typeFactoryMock,
+            $this->collectionFactoryMock,
+            $this->stateMock,
+            $this->universalFactoryMock
+        );
+    }
+
+    /**
+     * @param boolean $cacheEnabled
+     * @param int $loadCalls
+     * @param string $cachedValue
+     * @param array $factoryCalls
+     * @dataProvider getAttributeCacheDataProvider
+     * @return void
+     */
+    public function testGetAttributeCache($cacheEnabled, $loadCalls, $cachedValue, $factoryCalls)
+    {
+        $this->stateMock
+            ->expects($this->atLeastOnce())
+            ->method('isEnabled')
+            ->with(\Magento\Eav\Model\Cache\Type::TYPE_IDENTIFIER)
+            ->willReturn($cacheEnabled);
+        $this->cacheMock
+            ->expects($this->exactly($loadCalls))
+            ->method('load')
+            ->with(Config::ATTRIBUTES_CACHE_ID)
+            ->willReturn($cachedValue);
+
+        $collectionStub = new Object([
+            ['entity_type_code' => 'type_code_1', 'entity_type_id' => 1]
+        ]);
+        $this->collectionFactoryMock
+            ->expects($this->any())
+            ->method('create')
+            ->willReturn($collectionStub);
+
+        $this->typeFactoryMock
+            ->expects($this->any())
+            ->method('create')
+            ->willReturn(new Object(['id' => 101]));
+
+        $this->universalFactoryMock
+            ->expects($this->exactly(count($factoryCalls)))
+            ->method('create')
+            ->will($this->returnValueMap($factoryCalls));
+
+        $entityType = $this->getMockBuilder('\Magento\Eav\Model\Entity\Type')
+            ->setMethods(['getEntity'])
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->config->getAttribute($entityType, 'attribute_code_1');
+    }
+
+    /**
+     * @return array
+     */
+    public function getAttributeCacheDataProvider()
+    {
+        $attributeCollectionMock = $this->getMockBuilder('Magento\Eav\Model\Resource\Entity\Attribute\Collection')
+            ->disableOriginalConstructor()
+            ->setMethods(['getData', 'setEntityTypeFilter'])
+            ->getMock();
+        $attributeCollectionMock
+            ->expects($this->any())
+            ->method('setEntityTypeFilter')
+            ->will($this->returnSelf());
+        $attributeCollectionMock
+            ->expects($this->any())
+            ->method('getData')
+            ->willReturn([]);
+        $entityAttributeMock = $this->getMockBuilder('Magento\Eav\Model\Entity\Attribute')
+            ->setMethods(['dummy'])
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        return [
+            'cache-disabled' => [
+                false,
+                0,
+                false,
+                [
+                    ['Magento\Eav\Model\Resource\Entity\Attribute\Collection', [], $attributeCollectionMock],
+                    ['Magento\Eav\Model\Entity\Attribute', [], $entityAttributeMock]
+                ]
+            ],
+            'cache-miss' => [
+                true,
+                1,
+                false,
+                [
+                    ['Magento\Eav\Model\Resource\Entity\Attribute\Collection', [], $attributeCollectionMock],
+                    ['Magento\Eav\Model\Entity\Attribute', [], $entityAttributeMock]
+                ]
+            ],
+            'cached' => [
+                true,
+                1,
+                serialize(
+                    [
+                        ['attribute_code' => 'attribute_code_1', 'attribute_id' => 1]
+                    ]
+                ),
+                [
+                    ['Magento\Eav\Model\Entity\Attribute', [], $entityAttributeMock]
+                ]
+            ]
+        ];
+    }
+
+    public function testClear()
+    {
+        $this->cacheMock
+            ->expects($this->once())
+            ->method('clean')
+            ->with(
+                $this->equalTo(
+                    [
+                        \Magento\Eav\Model\Cache\Type::CACHE_TAG,
+                        \Magento\Eav\Model\Entity\Attribute::CACHE_TAG
+                    ]
+                )
+            );
+        $this->config->clear();
+    }
+}
diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Frontend/DatetimeTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Frontend/DatetimeTest.php
index d9cfb312804b8fadd6a00ce876a810f89340b7f4..d7a86c6ad49db762af3009c042f1b378f31ff65f 100644
--- a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Frontend/DatetimeTest.php
+++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Frontend/DatetimeTest.php
@@ -57,43 +57,14 @@ class DatetimeTest extends \PHPUnit_Framework_TestCase
     public function testGetValue()
     {
         $attributeValue = '11-11-2011';
-        $dateFormat = 'dd-mm-yyyy';
+        $date = new \DateTime($attributeValue);
         $object = new \Magento\Framework\Object(['datetime' => $attributeValue]);
         $this->attributeMock->expects($this->any())->method('getData')->with('frontend_input')
             ->will($this->returnValue('text'));
 
-        $this->localeDateMock->expects($this->once())->method('getDateFormat')
-            ->with(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM)
-            ->will($this->returnValue($dateFormat));
-        $dateMock = $this->getMock('\Magento\Framework\Stdlib\DateTime\DateInterface');
-        $dateMock->expects($this->once())->method('toString')->with($dateFormat)
-            ->will($this->returnValue($attributeValue));
-        $this->localeDateMock->expects($this->once())->method('date')
-            ->with($attributeValue, \Zend_Date::ISO_8601, null, false)
-            ->will($this->returnValue($dateMock));
-
-        $this->assertEquals($attributeValue, $this->model->getValue($object));
-    }
-
-    public function testGetValueWhenDateCannotBeRepresentedUsingIso8601()
-    {
-        $attributeValue = '11-11-2011';
-        $dateFormat = 'dd-mm-yyyy';
-        $object = new \Magento\Framework\Object(['datetime' => $attributeValue]);
-        $this->localeDateMock->expects($this->once())->method('getDateFormat')
-            ->with(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM)
-            ->will($this->returnValue($dateFormat));
-        $this->attributeMock->expects($this->any())->method('getData')->with('frontend_input')
-            ->will($this->returnValue('text'));
-
-        $dateMock = $this->getMock('\Magento\Framework\Stdlib\DateTime\DateInterface');
-        $dateMock->expects($this->once())->method('toString')->with($dateFormat)
-            ->will($this->returnValue($attributeValue));
-        $this->localeDateMock->expects($this->at(1))->method('date')
-            ->will($this->throwException(new \Exception('Wrong Date')));
-        $this->localeDateMock->expects($this->at(2))->method('date')
-            ->with($attributeValue, null, null, false)
-            ->will($this->returnValue($dateMock));
+        $this->localeDateMock->expects($this->once())->method('formatDateTime')
+            ->with($date, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::NONE, null, null, null)
+            ->willReturn($attributeValue);
 
         $this->assertEquals($attributeValue, $this->model->getValue($object));
     }
diff --git a/app/code/Magento/Eav/Test/Unit/Model/Resource/Entity/Attribute/SetTest.php b/app/code/Magento/Eav/Test/Unit/Model/Resource/Entity/Attribute/SetTest.php
index 47c87ff760354073d3df6893aff4e9f671d54a12..bb02ce4be05e5386c08224f321a42cc928328e26 100644
--- a/app/code/Magento/Eav/Test/Unit/Model/Resource/Entity/Attribute/SetTest.php
+++ b/app/code/Magento/Eav/Test/Unit/Model/Resource/Entity/Attribute/SetTest.php
@@ -6,11 +6,13 @@
  */
 
 namespace Magento\Eav\Test\Unit\Model\Resource\Entity\Attribute;
+
+use Magento\Eav\Model\Resource\Entity\Attribute\Set;
  
 class SetTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
+     * @var \PHPUnit_Framework_MockObject_MockObject|Set
      */
     protected $model;
 
@@ -44,9 +46,15 @@ class SetTest extends \PHPUnit_Framework_TestCase
      */
     protected $relationProcessor;
 
+    /**
+     * {@inheritdoc}
+     */
     protected function setUp()
     {
-        $this->resourceMock = $this->getMock('\Magento\Framework\App\Resource', ['getConnection'], [], '', false);
+        $this->resourceMock = $this->getMockBuilder('Magento\Framework\App\Resource')
+            ->disableOriginalConstructor()
+            ->setMethods(['getConnection', 'getTableName'])
+            ->getMock();
         $this->transactionManagerMock = $this->getMock(
             '\Magento\Framework\Model\Resource\Db\TransactionManagerInterface'
         );
@@ -66,7 +74,10 @@ class SetTest extends \PHPUnit_Framework_TestCase
             ->willReturn($this->relationProcessor);
         $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock);
 
-        $this->eavConfigMock = $this->getMock('Magento\Eav\Model\Config', [], [], '', false);
+        $this->eavConfigMock = $this->getMockBuilder('Magento\Eav\Model\Config')
+            ->setMethods(['isCacheEnabled', 'getEntityType', 'getCache'])
+            ->disableOriginalConstructor()
+            ->getMock();
         $this->model = $this->getMock(
             'Magento\Eav\Model\Resource\Entity\Attribute\Set',
             [
@@ -109,6 +120,7 @@ class SetTest extends \PHPUnit_Framework_TestCase
     /**
      * @expectedException \Magento\Framework\Exception\StateException
      * @expectedExceptionMessage Default attribute set can not be deleted
+     * @return void
      */
     public function testBeforeDeleteStateException()
     {
@@ -132,6 +144,7 @@ class SetTest extends \PHPUnit_Framework_TestCase
     /**
      * @expectedException \Exception
      * @expectedExceptionMessage test exception
+     * @return void
      */
     public function testBeforeDelete()
     {
@@ -154,4 +167,129 @@ class SetTest extends \PHPUnit_Framework_TestCase
 
         $this->model->delete($this->objectMock);
     }
+
+    /**
+     * @return void
+     */
+    public function testGetSetInfoCacheMiss()
+    {
+        $cacheMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+            ->disableOriginalConstructor()
+            ->setMethods(['load', 'save', 'getFrontend', 'remove', 'clean'])
+            ->getMock();
+        $cacheKey = Set::ATTRIBUTES_CACHE_ID . 1;
+        $cacheMock
+            ->expects($this->once())
+            ->method('load')
+            ->with($cacheKey)
+            ->willReturn(false);
+        $cacheMock
+            ->expects($this->once())
+            ->method('save')
+            ->with(
+                serialize(
+                    [
+                        1 => [
+                            10000 => [
+                                'group_id' =>  10,
+                                'group_sort' =>  100,
+                                'sort' =>  1000
+                            ]
+                        ]
+                    ]
+                ),
+                $cacheKey,
+                [\Magento\Eav\Model\Cache\Type::CACHE_TAG, \Magento\Eav\Model\Entity\Attribute::CACHE_TAG]
+            );
+
+        $this->eavConfigMock->expects($this->any())->method('isCacheEnabled')->willReturn(true);
+        $this->eavConfigMock->expects($this->any())->method('getCache')->willReturn($cacheMock);
+
+        $fetchResult = [
+            [
+                'attribute_id' => 1,
+                'attribute_group_id' => 10,
+                'group_sort_order' => 100,
+                'sort_order' => 1000,
+                'attribute_set_id' => 10000
+            ]
+        ];
+
+        $selectMock = $this->getMockBuilder('Magento\Framework\DB\Select')
+            ->disableOriginalConstructor()
+            ->setMethods(['from', 'joinLeft', 'where'])
+            ->getMock();
+        $selectMock->expects($this->once())->method('from')->will($this->returnSelf());
+        $selectMock->expects($this->once())->method('joinLeft')->will($this->returnSelf());
+        $selectMock->expects($this->atLeastOnce())->method('where')->will($this->returnSelf());
+
+        $connectionMock = $this->getMockBuilder('Magento\Framework\DB\Adapter\Pdo\Mysql')
+            ->disableOriginalConstructor()
+            ->setMethods(['select', 'fetchAll'])
+            ->getMock();
+        $connectionMock->expects($this->atLeastOnce())->method('select')->willReturn($selectMock);
+        $connectionMock->expects($this->atLeastOnce())->method('fetchAll')->willReturn($fetchResult);
+
+        $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($connectionMock);
+        $this->resourceMock->expects($this->any())->method('getTableName')->willReturn('_TABLE_');
+        $this->assertEquals(
+            [
+                1 => [
+                    10000 => [
+                        'group_id' =>  10,
+                        'group_sort' =>  100,
+                        'sort' =>  1000
+                    ]
+                ],
+                2 => [],
+                3 => []
+            ],
+            $this->model->getSetInfo([1, 2, 3], 1)
+        );
+    }
+
+    /**
+     * @return void
+     */
+    public function testGetSetInfoCacheHit()
+    {
+        $cached = [
+            1 => [
+                10000 => [
+                    'group_id' => 10,
+                    'group_sort' => 100,
+                    'sort' => 1000
+                ]
+            ]
+        ];
+
+        $this->resourceMock->expects($this->never())->method('getConnection');
+        $this->eavConfigMock->expects($this->any())->method('isCacheEnabled')->willReturn(true);
+        $cacheMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+            ->disableOriginalConstructor()
+            ->setMethods(['load', 'save', 'getFrontend', 'remove', 'clean'])
+            ->getMock();
+        $cacheMock
+            ->expects($this->once())
+            ->method('load')
+            ->with(Set::ATTRIBUTES_CACHE_ID . 1)
+            ->willReturn(serialize($cached));
+
+        $this->eavConfigMock->expects($this->any())->method('getCache')->willReturn($cacheMock);
+
+        $this->assertEquals(
+            [
+                1 => [
+                    10000 => [
+                        'group_id' =>  10,
+                        'group_sort' =>  100,
+                        'sort' =>  1000
+                    ]
+                ],
+                2 => [],
+                3 => []
+            ],
+            $this->model->getSetInfo([1, 2, 3], 1)
+        );
+    }
 }
diff --git a/app/code/Magento/Email/Block/Adminhtml/Template/Edit/Form.php b/app/code/Magento/Email/Block/Adminhtml/Template/Edit/Form.php
index bc5b39fd601bd1f266fc72fb86ca9c00d2c7c5c2..cc10d6112ddaaf5c890675ae50df2ae9579d845a 100644
--- a/app/code/Magento/Email/Block/Adminhtml/Template/Edit/Form.php
+++ b/app/code/Magento/Email/Block/Adminhtml/Template/Edit/Form.php
@@ -51,7 +51,6 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic
     protected function _prepareLayout()
     {
         $this->pageConfig->addPageAsset('prototype/windows/themes/default.css');
-        $this->pageConfig->addPageAsset('Magento_Theme::prototype/magento.css');
         return parent::_prepareLayout();
     }
 
diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json
index dea2ff9867fdff5ee6987ef8777ee76ac11b7af6..7eae5d149b013397761753c02789deb21b2abc46 100644
--- a/app/code/Magento/Email/composer.json
+++ b/app/code/Magento/Email/composer.json
@@ -8,7 +8,6 @@
         "magento/module-store": "0.42.0-beta11",
         "magento/module-cms": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
-        "magento/module-theme": "0.42.0-beta11",
         "magento/module-variable": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "magento/magento-composer-installer": "*"
diff --git a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml
index 2ccc9b94c477c7f72636831ece5500589d533402..e30879e3ca02b11971a88d7387c7775d746bf6e6 100644
--- a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml
+++ b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml
@@ -6,9 +6,6 @@
  */
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
-    <head>
-        <css src="Magento_Theme::prototype/magento.css"/>
-    </head>
     <body>
         <referenceBlock name="order_item_extra_info">
             <block class="Magento\GiftMessage\Block\Adminhtml\Sales\Order\View\Giftoptions" name="gift_options_link" template="sales/order/view/giftoptions.phtml">
diff --git a/app/code/Magento/GiftMessage/view/adminhtml/templates/popup.phtml b/app/code/Magento/GiftMessage/view/adminhtml/templates/popup.phtml
index b7aa0ebfe19a78b353d46e9a8b78d6692c56a496..6aaa0d855962d2b20eec81f57b3f34f88f219de3 100644
--- a/app/code/Magento/GiftMessage/view/adminhtml/templates/popup.phtml
+++ b/app/code/Magento/GiftMessage/view/adminhtml/templates/popup.phtml
@@ -15,12 +15,13 @@
             <?php echo $block->getChildHtml();?>
         </div>
         <div class="ui-dialog-buttonset">
-            <button type="button" class="scalable" id="gift_options_cancel_button"><span><span><span><?php echo __('Cancel'); ?></span></span></span></button>
-            <button type="button" class="scalable" id="gift_options_ok_button"><span><span><span><?php echo __('OK'); ?></span></span></span></button>
+            <button type="button" class="action-close" id="gift_options_cancel_button"><span><?php echo __('Cancel'); ?></span></button>
+            <button type="button" class="action-primary" id="gift_options_ok_button"><span><?php echo __('OK'); ?></span></button>
         </div>
     </div>
 </div>
-<div id="giftoptions_tooltip_window" class="gift-options-tooltip" style="display:none;">
+
+<div id="giftoptions_tooltip_window" class="gift-options-tooltip" style="display: none;">
     <div id="giftoptions_tooltip_window_content">&nbsp;</div>
 </div>
 
diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php b/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php
index b3051af419642516ab85bd11c79cf8354beb0232..dbd69ac3d7611c1839b9d961e9668b1067ad938c 100644
--- a/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php
+++ b/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php
@@ -12,11 +12,6 @@ namespace Magento\GoogleAdwords\Model\Config\Source;
  */
 class Language implements \Magento\Framework\Option\ArrayInterface
 {
-    /**
-     * @var \Magento\Framework\LocaleInterface
-     */
-    protected $_locale;
-
     /**
      * @var \Magento\GoogleAdwords\Helper\Data
      */
@@ -28,19 +23,14 @@ class Language implements \Magento\Framework\Option\ArrayInterface
     protected $_uppercaseFilter;
 
     /**
-     * Constructor
-     *
-     * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      * @param \Magento\GoogleAdwords\Helper\Data $helper
      * @param \Magento\GoogleAdwords\Model\Filter\UppercaseTitle $uppercaseFilter
      */
     public function __construct(
-        \Magento\Framework\Locale\ResolverInterface $localeResolver,
         \Magento\GoogleAdwords\Helper\Data $helper,
         \Magento\GoogleAdwords\Model\Filter\UppercaseTitle $uppercaseFilter
     ) {
         $this->_helper = $helper;
-        $this->_locale = $localeResolver->getLocale();
         $this->_uppercaseFilter = $uppercaseFilter;
     }
 
@@ -54,8 +44,8 @@ class Language implements \Magento\Framework\Option\ArrayInterface
         $languages = [];
         foreach ($this->_helper->getLanguageCodes() as $languageCode) {
             $localeCode = $this->_helper->convertLanguageCodeToLocaleCode($languageCode);
-            $translationForSpecifiedLanguage = $this->_locale->getTranslation($localeCode, 'language', $localeCode);
-            $translationForDefaultLanguage = $this->_locale->getTranslation($localeCode, 'language');
+            $translationForSpecifiedLanguage = \Locale::getDisplayLanguage($localeCode, $localeCode);
+            $translationForDefaultLanguage = \Locale::getDisplayLanguage($localeCode);
 
             $label = sprintf(
                 '%s / %s (%s)',
diff --git a/app/code/Magento/GoogleShopping/Model/Attribute/DefaultAttribute.php b/app/code/Magento/GoogleShopping/Model/Attribute/DefaultAttribute.php
index c9c68afd0fdca97caaa67ba2cce0c171f324ca24..0e54ab0a0300a58fb46275cab0d274affbcba0a0 100644
--- a/app/code/Magento/GoogleShopping/Model/Attribute/DefaultAttribute.php
+++ b/app/code/Magento/GoogleShopping/Model/Attribute/DefaultAttribute.php
@@ -72,11 +72,11 @@ class DefaultAttribute extends \Magento\GoogleShopping\Model\Attribute
 
         if ($productAttribute->getFrontendInput() == 'date' || $productAttribute->getBackendType() == 'date') {
             $value = $product->getData($productAttribute->getAttributeCode());
-            if (empty($value) || !\Zend_Date::isDate($value, \Zend_Date::ISO_8601)) {
+            if (empty($value)) {
                 return null;
             }
-            $date = new \Magento\Framework\Stdlib\DateTime\Date($value, \Zend_Date::ISO_8601);
-            $value = $date->toString(\Zend_Date::ATOM);
+            $date = new \DateTime($value);
+            $value = $date->format('c');
         } else {
             $value = $productAttribute->getFrontend()->getValue($product);
         }
diff --git a/app/code/Magento/GoogleShopping/Model/Attribute/SalePriceEffectiveDate.php b/app/code/Magento/GoogleShopping/Model/Attribute/SalePriceEffectiveDate.php
index 494e7185eb277037d3213af27e6613495c08ca1f..56deb7a9945512a36f0f1903cd8e0a6eaa4e3df6 100644
--- a/app/code/Magento/GoogleShopping/Model/Attribute/SalePriceEffectiveDate.php
+++ b/app/code/Magento/GoogleShopping/Model/Attribute/SalePriceEffectiveDate.php
@@ -31,30 +31,30 @@ class SalePriceEffectiveDate extends \Magento\GoogleShopping\Model\Attribute\Def
         $toValue = $effectiveDateTo->getProductAttributeValue($product);
 
         $from = $to = null;
-        if (!empty($fromValue) && \Zend_Date::isDate($fromValue, \Zend_Date::ATOM)) {
-            $from = new \Magento\Framework\Stdlib\DateTime\Date($fromValue, \Zend_Date::ATOM);
+        if (!empty($fromValue)) {
+            $from = new \DateTime($fromValue);
         }
-        if (!empty($toValue) && \Zend_Date::isDate($toValue, \Zend_Date::ATOM)) {
-            $to = new \Magento\Framework\Stdlib\DateTime\Date($toValue, \Zend_Date::ATOM);
+        if (!empty($toValue)) {
+            $to = new \DateTime($toValue);
         }
 
         $dateString = null;
         // if we have from an to dates, and if these dates are correct
-        if (!is_null($from) && !is_null($to) && $from->isEarlier($to)) {
-            $dateString = $from->toString(\Zend_Date::ATOM) . '/' . $to->toString(\Zend_Date::ATOM);
+        if (!is_null($from) && !is_null($to) && $from < $to) {
+            $dateString = $from->format('Y-m-d H:i:s') . '/' . $to->format('Y-m-d H:i:s');
         }
 
         // if we have only "from" date, send "from" day
         if (!is_null($from) && is_null($to)) {
-            $dateString = $from->toString('YYYY-MM-dd');
+            $dateString = $from->format('Y-m-d');
         }
 
         // if we have only "to" date, use "now" date for "from"
         if (is_null($from) && !is_null($to)) {
-            $from = new \Magento\Framework\Stdlib\DateTime\Date();
+            $from = new \DateTime();
             // if "now" date is earlier than "to" date
-            if ($from->isEarlier($to)) {
-                $dateString = $from->toString(\Zend_Date::ATOM) . '/' . $to->toString(\Zend_Date::ATOM);
+            if ($from < $to) {
+                $dateString = $from->format('Y-m-d H:i:s') . '/' . $to->format('Y-m-d H:i:s');
             }
         }
 
diff --git a/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml b/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml
index 6ade4e9454fa44cd914c384e6b681ef843dbedf0..ba0d01345700119c949a48e3f48e24372d5e983b 100644
--- a/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml
+++ b/app/code/Magento/GoogleShopping/view/adminhtml/templates/captcha.phtml
@@ -9,9 +9,11 @@
 ?>
 
 <?php if ($block->getGcontentCaptchaToken() && $block->getGcontentCaptchaUrl()): ?>
-<div class="messages">
-    <div class="message error">
-        <div><img src="<?php echo $block->getGcontentCaptchaUrl() ?>"> <input type="text" id="user_confirm"> <?php echo $block->getConfirmButtonHtml() ?></div>
+<div class="admin__scope">
+    <div class="messages">
+        <div class="message message-error error">
+            <div><img src="<?php echo $block->getGcontentCaptchaUrl() ?>"> <input type="text" id="user_confirm"> <?php echo $block->getConfirmButtonHtml() ?></div>
+        </div>
     </div>
 </div>
 <?php endif; ?>
diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js
index 9590eddd54467a8d8542aac531876ece81317e2f..363841686c8aee2b9792ecd42ea5522feb8acccc 100644
--- a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js
+++ b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js
@@ -107,19 +107,28 @@ define([
                 title: $.mage.__('Add Products to Group'),
                 autoOpen: false,
                 minWidth: 980,
+                width: '75%',
                 modal: true,
                 resizable: true,
                 dialogClass: 'grouped',
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 55;
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                },
+                close: function () {
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                },
                 buttons: [{
-                    id: 'grouped-product-dialog-cancel-button',
-                    text: $.mage.__('Cancel'),
-                    click: function () {
-                        $(this).dialog('close');
-                    }
-                }, {
                     id: 'grouped-product-dialog-apply-button',
                     text: $.mage.__('Add Selected Products'),
-                    'class': 'add primary',
+                    'class': 'action-primary action-add',
                     click: function () {
                         $.each(selectedProductList, function (index, product) {
                             widget._add(null, product);
@@ -128,6 +137,13 @@ define([
                         widget._updateGridVisibility();
                         $(this).dialog('close');
                     }
+                }, {
+                    id: 'grouped-product-dialog-cancel-button',
+                    text: $.mage.__('Cancel'),
+                    'class': 'action-close',
+                    click: function () {
+                        $(this).dialog('close');
+                    }
                 }]
             });
 
diff --git a/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php b/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php
index 8aa42f3a82a756ac0b1d5958705e53351c121b59..4f0408598040781afb0783254bf0ff4fc15c447a 100644
--- a/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php
+++ b/app/code/Magento/ImportExport/Block/Adminhtml/Export/Filter.php
@@ -78,7 +78,7 @@ class Filter extends \Magento\Backend\Block\Widget\Grid\Extended
             'id' => $this->getFilterElementId($attribute->getAttributeCode()),
             'class' => 'input-text input-text-range-date',
             'date_format' => $this->_localeDate->getDateFormat(
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+                \IntlDateFormatter::SHORT
             ),
             'image' => $this->getViewFileUrl('images/grid-cal.png'),
         ];
diff --git a/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEav.php b/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEav.php
index 8803d34fc3d7061be086a9d5ad8c2627ac41377b..cf771ea7cdddbcb2b56d3811ee82e77592538815 100644
--- a/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEav.php
+++ b/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEav.php
@@ -147,11 +147,11 @@ abstract class AbstractEav extends \Magento\ImportExport\Model\Export\AbstractEn
                         $to = array_shift($exportFilter[$attributeCode]);
 
                         if (is_scalar($from) && !empty($from)) {
-                            $date = $this->_localeDate->date($from, null, null, false)->toString('MM/dd/YYYY');
+                            $date = (new \DateTime($from))->format('m/d/Y');
                             $collection->addAttributeToFilter($attributeCode, ['from' => $date, 'date' => true]);
                         }
                         if (is_scalar($to) && !empty($to)) {
-                            $date = $this->_localeDate->date($to, null, null, false)->toString('MM/dd/YYYY');
+                            $date = (new \DateTime($to))->format('m/d/Y');
                             $collection->addAttributeToFilter($attributeCode, ['to' => $date, 'date' => true]);
                         }
                     }
diff --git a/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEntity.php
index b700658b9f166aad7dc9ccfe3090f19f8a8d6c84..4ed67c3b79911df439eea70b54a538d6aa112b0a 100644
--- a/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEntity.php
+++ b/app/code/Magento/ImportExport/Model/Export/Entity/AbstractEntity.php
@@ -283,11 +283,11 @@ abstract class AbstractEntity
                         $to = array_shift($exportFilter[$attrCode]);
 
                         if (is_scalar($from) && !empty($from)) {
-                            $date = $this->_localeDate->date($from, null, null, false)->toString('MM/dd/YYYY');
+                            $date = (new \DateTime($from))->format('m/d/Y');
                             $collection->addAttributeToFilter($attrCode, ['from' => $date, 'date' => true]);
                         }
                         if (is_scalar($to) && !empty($to)) {
-                            $date = $this->_localeDate->date($to, null, null, false)->toString('MM/dd/YYYY');
+                            $date = (new \DateTime($to))->format('m/d/Y');
                             $collection->addAttributeToFilter($attrCode, ['to' => $date, 'date' => true]);
                         }
                     }
diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml
index f8e4a24cf2db22baf964ee8cd0e873cedff3673e..49c4283cc60e81c3f490e4ff247e65f9878a0dad 100644
--- a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml
+++ b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml
@@ -8,7 +8,11 @@
     <div class="legend">
         <span><?php echo __('Status'); ?></span>
     </div><br>
-    <div class="message success">
-        <div><?php echo $block->getStatusMessage(); ?>hh</div>
+    <div class="admin__scope">
+        <div class="messages">
+            <div class="message message-success success">
+                <div><?php echo $block->getStatusMessage(); ?>hh</div>
+            </div>
+        </div>
     </div>
 </div>
diff --git a/app/code/Magento/Indexer/Model/Indexer.php b/app/code/Magento/Indexer/Model/Indexer.php
index 71c3a6704cea450b6fcc0d2a22e1509cc89cbc1b..87d4dd8d5e81d9b3251acc8e0775fe1f392abf20 100644
--- a/app/code/Magento/Indexer/Model/Indexer.php
+++ b/app/code/Magento/Indexer/Model/Indexer.php
@@ -254,9 +254,9 @@ class Indexer extends \Magento\Framework\Object implements IndexerInterface
             if (!$this->getState()->getUpdated()) {
                 return $this->getView()->getUpdated();
             }
-            $indexerUpdatedDate = new \Magento\Framework\Stdlib\DateTime\Date($this->getState()->getUpdated());
-            $viewUpdatedDate = new \Magento\Framework\Stdlib\DateTime\Date($this->getView()->getUpdated());
-            if ($viewUpdatedDate->compare($indexerUpdatedDate) == 1) {
+            $indexerUpdatedDate = new \DateTime($this->getState()->getUpdated());
+            $viewUpdatedDate = new \DateTime($this->getView()->getUpdated());
+            if ($viewUpdatedDate > $indexerUpdatedDate) {
                 return $this->getView()->getUpdated();
             }
         }
diff --git a/app/code/Magento/Indexer/Model/Mview/View/State.php b/app/code/Magento/Indexer/Model/Mview/View/State.php
index 2a7a7364aef97105d11a56350917bb0abeb03bfc..b51d14289b3962887ac57761f3049332c6c60dd8 100644
--- a/app/code/Magento/Indexer/Model/Mview/View/State.php
+++ b/app/code/Magento/Indexer/Model/Mview/View/State.php
@@ -140,7 +140,7 @@ class State extends \Magento\Framework\Model\AbstractModel implements \Magento\F
     /**
      * Set state updated time
      *
-     * @param string|int|\Magento\Framework\Stdlib\DateTime\DateInterface $updated
+     * @param string|int|\DateTime $updated
      * @return $this
      */
     public function setUpdated($updated)
diff --git a/app/code/Magento/Integration/Model/Oauth/Token.php b/app/code/Magento/Integration/Model/Oauth/Token.php
index d4b000518187dba43910309c9b1e9ed6e3c1ddf0..7757ed194ffd3e2a249cc5c83f67a97887e59613 100644
--- a/app/code/Magento/Integration/Model/Oauth/Token.php
+++ b/app/code/Magento/Integration/Model/Oauth/Token.php
@@ -259,7 +259,7 @@ class Token extends \Magento\Framework\Model\AbstractModel
     public function beforeSave()
     {
         if ($this->isObjectNew() && null === $this->getCreatedAt()) {
-            $this->setCreatedAt($this->_dateTime->now());
+            $this->setCreatedAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT));
         }
         parent::beforeSave();
         return $this;
diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml
index aa4987136a850637e2b85e8e7f25a825683b7bf7..201baa3fd24c39cd963b89029ff7358e4e23bfd5 100644
--- a/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml
+++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/activate/permissions.phtml
@@ -9,7 +9,9 @@
  */
 ?>
 <div><p><?php echo __('The integration you selected asks you to approve access to the following:'); ?></p></div>
-<div id="integration-activate-permissions-tabs">
-    <?php echo $block->getChildHtml('tabs'); ?>
-</div>
-<div id="integrations-activate-permissions-content"></div>
+<div class="admin__scope">
+    <div id="integration-activate-permissions-tabs">
+        <?php echo $block->getChildHtml('tabs'); ?>
+    </div>
+    <div id="integrations-activate-permissions-content"></div>
+</div>
\ No newline at end of file
diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml
index 17f2e31187545f4f0f619022e4fe9f422d436340..7c4083e2387ed2526f55ee887a4bc6c3ec95b00c 100644
--- a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml
+++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml
@@ -34,17 +34,36 @@ require([
                 resizable: false,
                 minHeight: 200,
                 minWidth: 300,
-                dialogClass: "no-close",
-                position: {at: 'center'},
-                buttons: {
-                    Cancel: function () {
-                        $(this).dialog("close");
-                    },
-                    Delete: function () {
+                width: '75%',
+                dialogClass: 'no-close ui-popup-message',
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight();
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                },
+                close: function () {
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                },
+                buttons: [{
+                    text: $.mage.__('Delete'),
+                    'class': 'action-primary',
+                    click: function () {
                         $(this).dialog("close");
                         window.location.href = $(e.target).data('url');
                     }
-                }
+                }, {
+                    text: $.mage.__('Cancel'),
+                    'class': 'action-close',
+                    click: function () {
+                        $(this).dialog('close');
+                    }
+                }]
             });
             e.stopPropagation();
         });
@@ -52,7 +71,15 @@ require([
 
 });
 </script>
-<div id="integration-popup-container" style="display:none;"></div>
-<div id="integration-delete-container" style="display:none;" title="<?php echo __('Are you sure ?'); ?>">
-    <p><?php echo __("Are you sure you want to delete this integration? You can't undo this action."); ?></p>
+
+<div id="integration-popup-container" style="display: none;"></div>
+<div id="integration-delete-container"
+     class="messages admin__scope"
+     style="display: none;"
+     title="<?php echo __('Are you sure ?'); ?>">
+    <div class="message message-notice notice">
+        <div>
+            <?php echo __("Are you sure you want to delete this integration? You can't undo this action."); ?>
+        </div>
+    </div>
 </div>
diff --git a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js
index 5e71b3b7ab7be7687addb3c48c0cab45f79cf961..3e299ddf77e45aacd9d480d355dea456157689d7 100644
--- a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js
+++ b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js
@@ -232,15 +232,30 @@ define([
                             autoOpen: true,
                             minHeight: 450,
                             minWidth: 600,
+                            width: '75%',
                             dialogClass: dialog == 'permissions' ? 'integration-dialog' : 'integration-dialog no-close',
-                            position: {at: 'center'},
-                            closeOnEscape: false
+                            closeOnEscape: false,
+                            position: {
+                                my: 'left top',
+                                at: 'center top',
+                                of: 'body'
+                            },
+                            open: function () {
+                                $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                                var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                                $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                            },
+                            close: function () {
+                                $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                            }
                         };
                     if (dialog == 'permissions') {
                         // We don't need this button in 'tokens' dialog, since if you got there - integration is
                         // already activated and have necessary tokens
                         buttons.push({
                             text: $.mage.__('Cancel'),
+                            'class': 'action-close',
                             click: function () {
                                 $(this).dialog('close');
                             }
@@ -306,7 +321,7 @@ define([
                     var okButton = {
                         permissions: {
                             text: (isReauthorize == '1') ? $.mage.__('Reauthorize') : $.mage.__('Allow'),
-                            'class': 'primary',
+                            'class': 'action-primary',
                             // This data is going to be used in the next dialog
                             'data-row-id': integrationId,
                             'data-row-name': integrationName,
@@ -316,7 +331,7 @@ define([
                             click: function () {
                                 // Find the 'Allow' button and clone - it has all necessary data, but is going to be
                                 // destroyed along with the current dialog
-                                var ctx = $(this).parent().find('button.primary').clone(true);
+                                var ctx = $(this).parent().find('button.action-primary').clone(true);
                                 $(this).dialog('destroy');
                                 // Make popup out of data we saved from 'Allow' button
                                 window.integration.popup.show(ctx);
@@ -324,7 +339,7 @@ define([
                         },
                         tokens: {
                             text: $.mage.__('Done'),
-                            'class': 'primary',
+                            'class': 'action-primary',
                             click: function () {
                                 // Integration has been activated at the point of generating tokens
                                 window.location.href = url.grid;
diff --git a/app/code/Magento/Log/Block/Adminhtml/Customer/Edit/Tab/View/Status.php b/app/code/Magento/Log/Block/Adminhtml/Customer/Edit/Tab/View/Status.php
index a79bb9e48809f4156cd131293bb23190f00f84c5..0a6d8f2b1c8255a3db0b538695d7b25d6ba2adb5 100644
--- a/app/code/Magento/Log/Block/Adminhtml/Customer/Edit/Tab/View/Status.php
+++ b/app/code/Magento/Log/Block/Adminhtml/Customer/Edit/Tab/View/Status.php
@@ -5,11 +5,9 @@
  */
 namespace Magento\Log\Block\Adminhtml\Customer\Edit\Tab\View;
 
-use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
-
 /**
  * Class Status
- * @package Magento\Log\Block\Adminhtml\Customer\Edit\Tab\View
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Status extends \Magento\Backend\Block\Template
 {
@@ -104,7 +102,7 @@ class Status extends \Magento\Backend\Block\Template
         $log = $this->getCustomerLog();
         $interval = $this->modelLog->getOnlineMinutesInterval();
         if ($log->getLogoutAt() ||
-            strtotime($this->dateTime->now()) - strtotime($log->getLastVisitAt()) > $interval * 60
+            (new \DateTime())->getTimestamp() - strtotime($log->getLastVisitAt()) > $interval * 60
         ) {
             return __('Offline');
         }
@@ -120,7 +118,7 @@ class Status extends \Magento\Backend\Block\Template
     {
         $date = $this->getCustomerLog()->getLoginAt();
         if ($date) {
-            return $this->formatDate($date, TimezoneInterface::FORMAT_TYPE_MEDIUM, true);
+            return $this->formatDate($date, \IntlDateFormatter::MEDIUM, true);
         }
         return __('Never');
     }
@@ -133,7 +131,7 @@ class Status extends \Magento\Backend\Block\Template
         $date = $this->getCustomerLog()->getLoginAtTimestamp();
         if ($date) {
             $date = $this->_localeDate->scopeDate($this->getCustomer()->getStoreId(), $date, true);
-            return $this->formatDate($date, TimezoneInterface::FORMAT_TYPE_MEDIUM, true);
+            return $this->formatDate($date, \IntlDateFormatter::MEDIUM, true);
         }
         return __('Never');
     }
diff --git a/app/code/Magento/Log/Model/Customer.php b/app/code/Magento/Log/Model/Customer.php
index 2272c261901f11ce1f3df3e61dbc48a1d5b6ad79..00eb53e17253721a9925c43839cf34b8ca21e58c 100644
--- a/app/code/Magento/Log/Model/Customer.php
+++ b/app/code/Magento/Log/Model/Customer.php
@@ -81,7 +81,7 @@ class Customer extends \Magento\Framework\Model\AbstractModel
     {
         $loginAt = $this->getLoginAt();
         if ($loginAt) {
-            return $this->dateTime->toTimestamp($loginAt);
+            return (new \DateTime($loginAt))->getTimestamp();
         }
 
         return null;
diff --git a/app/code/Magento/Log/Model/Visitor.php b/app/code/Magento/Log/Model/Visitor.php
index ddd051f7ba5c3703625e49e65ac9510caefe296c..99f9ff81530b7e25d732a8d805eb9b4500be7ea1 100644
--- a/app/code/Magento/Log/Model/Visitor.php
+++ b/app/code/Magento/Log/Model/Visitor.php
@@ -153,7 +153,7 @@ class Visitor extends \Magento\Framework\Model\AbstractModel
     public function getFirstVisitAt()
     {
         if (!$this->hasData('first_visit_at')) {
-            $this->setData('first_visit_at', $this->dateTime->now());
+            $this->setData('first_visit_at', (new \DateTime())->getTimestamp());
         }
         return $this->getData('first_visit_at');
     }
@@ -166,7 +166,7 @@ class Visitor extends \Magento\Framework\Model\AbstractModel
     public function getLastVisitAt()
     {
         if (!$this->hasData('last_visit_at')) {
-            $this->setData('last_visit_at', $this->dateTime->now());
+            $this->setData('last_visit_at', (new \DateTime())->getTimestamp());
         }
         return $this->getData('last_visit_at');
     }
@@ -184,7 +184,7 @@ class Visitor extends \Magento\Framework\Model\AbstractModel
         $visitor = $observer->getEvent()->getVisitor();
         $this->setData($visitor->getData());
         $this->initServerData();
-        $this->setFirstVisitAt($this->dateTime->now());
+        $this->setFirstVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT));
         $this->setIsNewVisitor(true);
         $this->save();
         $visitor->setData($this->getData());
@@ -206,7 +206,9 @@ class Visitor extends \Magento\Framework\Model\AbstractModel
             $this->setData($visitor->getData());
             if ($this->getId() && $this->getVisitorId()) {
                 $this->initServerData();
-                $this->setLastVisitAt($this->dateTime->now());
+                $this->setLastVisitAt(
+                    (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+                );
                 $this->save();
                 $visitor->setData($this->getData());
             }
diff --git a/app/code/Magento/Log/Test/Unit/Block/Adminhtml/Customer/Edit/Tab/View/StatusTest.php b/app/code/Magento/Log/Test/Unit/Block/Adminhtml/Customer/Edit/Tab/View/StatusTest.php
index 51434ab1b91daf5422c0e4afcbe28961fde4b580..c155c22aca514c592d5a87f4b04c3d99ef491e35 100644
--- a/app/code/Magento/Log/Test/Unit/Block/Adminhtml/Customer/Edit/Tab/View/StatusTest.php
+++ b/app/code/Magento/Log/Test/Unit/Block/Adminhtml/Customer/Edit/Tab/View/StatusTest.php
@@ -77,7 +77,7 @@ class StatusTest extends \PHPUnit_Framework_TestCase
         $backendSession->expects($this->any())->method('getCustomerData')->will($this->returnValue($customerData));
 
         $this->localeDate = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\Timezone')
-            ->setMethods(['scopeDate', 'formatDate', 'getDefaultTimezonePath'])
+            ->setMethods(['scopeDate', 'formatDateTime', 'getDefaultTimezonePath'])
             ->disableOriginalConstructor()->getMock();
         $this->localeDate->expects($this->any())->method('getDefaultTimezonePath')
             ->will($this->returnValue('path/to/default/timezone'));
@@ -126,7 +126,7 @@ class StatusTest extends \PHPUnit_Framework_TestCase
     {
         $date = date('Y-m-d H:i:s');
         $this->customerLog->expects($this->any())->method('getLoginAt')->will($this->returnValue($date));
-        $this->localeDate->expects($this->once())->method('formatDate')->will($this->returnValue($date));
+        $this->localeDate->expects($this->once())->method('formatDateTime')->will($this->returnValue($date));
         $this->assertEquals($date, $this->block->getLastLoginDate());
     }
 
@@ -141,7 +141,7 @@ class StatusTest extends \PHPUnit_Framework_TestCase
         $time = strtotime($date);
 
         $this->localeDate->expects($this->once())->method('scopeDate')->will($this->returnValue($date));
-        $this->localeDate->expects($this->once())->method('formatDate')->will($this->returnValue($date));
+        $this->localeDate->expects($this->once())->method('formatDateTime')->will($this->returnValue($date));
 
         $this->customerLog->expects($this->any())->method('getLoginAtTimestamp')->will($this->returnValue($time));
         $this->assertEquals($date, $this->block->getStoreLastLoginDate());
diff --git a/app/code/Magento/Log/Test/Unit/Model/VisitorTest.php b/app/code/Magento/Log/Test/Unit/Model/VisitorTest.php
index ad2173013629dd4dca84b16c3c1739669bcefa34..79e8d2bee271fd48e1e5b4854aa768cfae68c73a 100644
--- a/app/code/Magento/Log/Test/Unit/Model/VisitorTest.php
+++ b/app/code/Magento/Log/Test/Unit/Model/VisitorTest.php
@@ -122,14 +122,12 @@ class VisitorTest extends \PHPUnit_Framework_TestCase
     public function testGetFirstVisitAt()
     {
         $time = time();
-        $this->dateTime->expects($this->once())->method('now')->will($this->returnValue($time));
         $this->assertEquals($time, $this->visitor->getFirstVisitAt());
     }
 
     public function testGetLastVisitAt()
     {
         $time = time();
-        $this->dateTime->expects($this->once())->method('now')->will($this->returnValue($time));
         $this->assertEquals($time, $this->visitor->getLastVisitAt());
     }
 
diff --git a/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml b/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml
index 72af92b3d94b1ce232eed46a88f66129c0499dfb..1bd26773cd483696932f4817d8074011b17510f1 100644
--- a/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml
+++ b/app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml
@@ -46,7 +46,7 @@ if ($product->isSaleable()) {
 }
 ?>
 <?php if ($product->getMsrp()): ?>
-    <span class="old-price"><?php echo $msrpPrice ?></span>
+    <span class="old-price map-old-price msrp-price-wrapper"><?php echo $msrpPrice ?></span>
 <?php endif; ?>
 
 <?php if ($priceType->isShowPriceOnGesture()): ?>
@@ -72,10 +72,11 @@ if ($product->isSaleable()) {
     <span id="<?php echo $block->getPriceId() ? $block->getPriceId() : $priceElementId ?>" style="display:none"></span>
     <a href="#"
        id="<?php echo($popupId);?>"
+       class="action map-show-info"
        data-mage-init="<?=$block->escapeHtml($this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($data))?>"><?php echo __('Click for price'); ?>
     </a>
 <?php else: ?>
-    <span class="msrp message">
+    <span class="msrp-message">
      <?php echo $priceType->getMsrpPriceMessage() ?>
     </span>
 <?php endif; ?>
@@ -84,7 +85,7 @@ if ($product->isSaleable()) {
     <?php $helpLinkId = 'msrp-help-' . $productId . $block->getRandomString(20); ?>
     <a href="#"
        id="<?php echo $helpLinkId;?>"
-       class="action show map"
+       class="action map-show-info"
        data-mage-init='{"addToCart":{"helpLinkId": "#<?php echo $helpLinkId;?>",
                                      "productName": "<?php echo $product->getName() ?>",
                                      "closeButtonId": "#map-popup-close"}}'><span><?php echo __("What's this?"); ?></span>
diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js
index cad64361095450e8055d7d35f8fdf0a94e4eaa88..2630130271999815d3134b6fd181bc59ff36f250 100644
--- a/app/code/Magento/Msrp/view/base/web/js/msrp.js
+++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js
@@ -2,86 +2,171 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-/*jshint browser:true jquery:true*/
 define([
-    "jquery",
-    "jquery/ui",
-    "mage/dropdown"
-], function($){
+    'jquery',
+    'underscore',
+    'jquery/ui',
+    'mage/dropdown'
+], function ($, _) {
     'use strict';
 
+    var openDropDown = null;
     $.widget('mage.addToCart', {
         options: {
             showAddToCart: true,
-            cartForm: '.form.map.checkout'
+            submitUrl: '',
+            singleOpenDropDown: true,
+            dialog: {}, // Options for mage/dropdown
+            dialogDelay: 500, // Delay in ms after resize dropdown shown again
+
+            // Selectors
+            cartForm: '.form.map.checkout',
+            cartButtonId: '', // better to be cartButton
+            popupId: '', // better to be popup
+            realPrice: '',
+            msrpPrice: '',
+            helpLinkId: '', // better to be helpLink
+            addToCartButton: '',
+
+            // Text options
+            productName: '',
+            addToCartUrl: ''
         },
 
-        _create: function() {
-            $(this.options.cartButtonId).on('click', $.proxy(function() {
-                this._addToCartSubmit();
-            }, this));
+        openDropDown: null,
+
+        /**
+         * Creates widget instance
+         * @private
+         */
+        _create: function () {
+            $(this.options.cartButtonId).on('click', this._addToCartSubmit.bind(this));
+
+            $(this.options.popupId).on('click', function (event) {
+                var dialog;
+                event.preventDefault();
 
-            $(this.options.popupId).on('click', $.proxy(function(e) {
                 if (this.options.submitUrl) {
                     location.href = this.options.submitUrl;
                 } else {
-                    $(this.options.popupCartButtonId).off('click');
-                    $(this.options.popupCartButtonId).on('click', $.proxy(function() {
-                        this._addToCartSubmit();
-                    }, this));
+                    $(this.options.popupCartButtonId)
+                        .off('click')
+                        .on('click', this._addToCartSubmit.bind(this));
                     $('#map-popup-heading-price').text(this.options.productName);
-                    $('#map-popup-price').html($(this.options.realPrice));
+                    $('#map-popup-price').html($(this.options.realPrice).html().trim());
                     $('#map-popup-msrp > span.price').html(this.options.msrpPrice);
+
                     this.element.trigger('reloadPrice');
-                    var dialog = $("#map-popup-click-for-price");
+
+                    dialog = $('#map-popup-click-for-price');
                     this._popupDialog(dialog, this.options.popupId);
+
                     if (this.options.addToCartUrl) {
                         $(this.options.cartForm).attr('action', this.options.addToCartUrl);
                     }
+
                     if (!this.options.showAddToCart) {
                         $('#product_addtocart_form_from_popup').hide();
                     }
+
                     return false;
                 }
-            }, this));
+            }.bind(this));
 
-            $(this.options.helpLinkId).on('click', $.proxy(function(e) {
+            $(this.options.helpLinkId).on('click', function () {
                 $('#map-popup-heading-what-this').text(this.options.productName);
-                var dialog = $("#map-popup-what-this");
-                this._popupDialog(dialog, this.options.helpLinkId);
+                this._popupDialog($('#map-popup-what-this'), this.options.helpLinkId);
+
                 return false;
-            }, this));
+            }.bind(this));
         },
 
-        _popupDialog: function(target, trigger) {
-            if (!target.hasClass('ui-dialog-content')) {
-                target.dropdownDialog({
-                    appendTo: ".column.main",
-                    dialogContentClass: 'active',
-                    timeout: "2000",
-                    autoPosition: true,
-                    "dialogClass": "popup"
-                });
+        /**
+         * Handler for dialog popup
+         * @param {jQuery} elementTarget
+         * @param {jQuery} elementTrigger
+         * @private
+         */
+        _popupDialog: function (elementTarget, elementTrigger) {
+            var target = $(elementTarget),
+                trigger = $(elementTrigger),
+                counter = 0,
+                triggerClass = 'dropdown-active',
+                options;
+
+            options = {
+                appendTo: 'body',
+                dialogContentClass: 'active',
+                closeOnMouseLeave: false,
+                autoPosition: true,
+                'dialogClass': 'popup map-popup-wrapper',
+                position: {
+                    my: 'left top',
+                    collision: 'fit none',
+                    at: 'left bottom',
+                    within: 'body',
+                    of: trigger
+                },
+                shadowHinter: 'popup popup-pointer'
+            };
+            options = _.extend(options, this.options.dialog);
+
+            if (openDropDown && openDropDown.is(':data(mage-dropdownDialog)')) {
+                openDropDown.dropdownDialog('close');
             }
-            $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog("close");
-            target.dropdownDialog("option", "position", {my: "right+50% top", collision: "none", at: "center bottom", of: trigger});
-            target.dropdownDialog("option", "triggerTarget", trigger);
-            target.dropdownDialog("open");
 
+            if (this.options.singleOpenDropDown) {
+                this.openDropDown = openDropDown;
+            }
+            openDropDown = target
+                .dropdownDialog(options)
+                .off('dropdowndialogclose')
+                .on('dropdowndialogclose', function () {
+                    if (!counter) {
+                        openDropDown = null;
+                        $(window).off('resize');
+                    }
+                    trigger.removeClass(triggerClass);
+                })
+                .on('dropdowndialogopen', function () {
+                    trigger.addClass(triggerClass);
+                })
+                .dropdownDialog('open');
+
+            $(window)
+                .resize(_.debounce(function () {
+                    if (openDropDown) {
+                        counter--;
+                        openDropDown.dropdownDialog('open');
+                    }
+                }, this.options.dialogDelay))
+                .resize(_.debounce(function () {
+                    if (openDropDown) {
+                        counter++;
+                        openDropDown.dropdownDialog('close');
+                    }
+                }, this.options.dialogDelay, true));
         },
 
-        _addToCartSubmit: function() {
+        /**
+         * Handler for addToCart action
+         * @private
+         */
+        _addToCartSubmit: function () {
             this.element.trigger('addToCart', this.element);
+
             if (this.options.addToCartButton) {
                 $(this.options.addToCartButton).click();
+
                 return;
             }
+
             if (this.options.addToCartUrl) {
-                $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog("close");
+                $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog('close');
             }
             $(this.options.cartForm).submit();
         }
     });
-    
+
     return $.mage.addToCart;
 });
diff --git a/app/code/Magento/Msrp/view/frontend/templates/popup.phtml b/app/code/Magento/Msrp/view/frontend/templates/popup.phtml
index d9a046d663177c0bb1065d9e1f945fa1bf0e7d69..ff65afb1f2281eff342d07e8f33f407c3084d291 100644
--- a/app/code/Magento/Msrp/view/frontend/templates/popup.phtml
+++ b/app/code/Magento/Msrp/view/frontend/templates/popup.phtml
@@ -11,48 +11,50 @@
 /** @var \Magento\Msrp\Block\Popup $block */
 ?>
 <?php if ($block->isEnabled()): ?>
-    <div id="map-popup-click-for-price" class="map popup">
+    <div id="map-popup-click-for-price" class="map-popup">
         <div class="popup-header">
             <strong class="title" id="map-popup-heading-price"></strong>
         </div>
         <div class="popup-content">
-            <div class="map add form" id="map-popup-content">
+            <div class="map-info-price" id="map-popup-content">
                 <div class="price-box">
-                    <div class="map msrp" id="map-popup-msrp-box">
+                    <div class="map-msrp" id="map-popup-msrp-box">
                         <span class="label"><?php echo __('Price'); ?></span>
-                        <span class="old-price" id="map-popup-msrp">
+                        <span class="old-price map-old-price" id="map-popup-msrp">
                             <span class="price"></span>
                         </span>
                     </div>
-                    <div class="map price" id="map-popup-price-box">
+                    <div class="map-price" id="map-popup-price-box">
                         <span class="label"><?php echo __('Actual Price'); ?></span>
                         <span id="map-popup-price" class="actual-price"></span>
                     </div>
                 </div>
-                <form action="" method="POST" id="product_addtocart_form_from_popup" class="form map checkout">
+                <form action="" method="POST" id="product_addtocart_form_from_popup" class="map-form-addtocart">
                     <input type="hidden" name="product" class="product_id" value="" id="map-popup-product-id"/>
 
                     <div class="additional-addtocart-box">
                         <?php echo $block->getChildHtml(); ?>
                     </div>
-                    <button type="button" title="<?php echo __('Add to Cart') ?>" class="action tocart"
+                    <button type="button"
+                            title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>"
+                            class="action tocart primary"
                             id="map-popup-button">
-                        <span><?php echo __('Add to Cart') ?></span>
+                        <span><?php echo __('Add to Cart'); ?></span>
                     </button>
                 </form>
             </div>
-            <div class="map text" id="map-popup-text">
+            <div class="map-text" id="map-popup-text">
                 <?php echo $block->getExplanationMessage(); ?>
             </div>
         </div>
     </div>
 
-    <div id="map-popup-what-this" class="map popup">
-        <div class="popup header">
+    <div id="map-popup-what-this" class="map-popup">
+        <div class="popup-header">
             <strong class="title" id="map-popup-heading-what-this"></strong>
         </div>
-        <div class="popup content">
-            <div class="map help text" id="map-popup-text-what-this">
+        <div class="popup-content">
+            <div class="map-help-text" id="map-popup-text-what-this">
                 <?php echo $block->getExplanationMessageWhatsThis(); ?>
             </div>
         </div>
diff --git a/app/code/Magento/Msrp/view/frontend/templates/render/item/price_msrp_item.phtml b/app/code/Magento/Msrp/view/frontend/templates/render/item/price_msrp_item.phtml
index 052642b91eef4bf73187faa284f8ae147f7bb14d..f21cbe891bbd359df6b468589338dfdfcf32d53a 100644
--- a/app/code/Magento/Msrp/view/frontend/templates/render/item/price_msrp_item.phtml
+++ b/app/code/Magento/Msrp/view/frontend/templates/render/item/price_msrp_item.phtml
@@ -29,7 +29,7 @@
 <div class="price-box msrp">
     <?php if ($_product->getMsrp()): ?>
         <?php $_msrpPrice = $pricingHelper->currency($_product->getMsrp(), true, false) ?>
-        <span class="old-price" ><?php echo $_msrpPrice ?></span>
+        <span class="old-price"><?php echo $_msrpPrice ?></span>
     <?php endif; ?>
     <?php if ($_catalogHelper->isShowPriceOnGesture($_product)): ?>
         <?php $priceElementId = 'product-price-' . $_id . $block->getIdSuffix(); ?>
@@ -46,7 +46,7 @@
                                          "cartForm": "#wishlist-view-form"}}'><?php echo __('Click for price') ?>
         </a>
     <?php else: ?>
-        <span class="msrp message">
+        <span class="msrp-message">
             <?php echo $_catalogHelper->getMsrpPriceMessage($_product) ?>
         </span>
     <?php endif; ?>
diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php
index 924206f42ec41db8f96e3a404efdc570c31f5402..b590aa30c731f0a90799f55bee4a6926feeab409 100644
--- a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php
+++ b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php
@@ -78,10 +78,10 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic
         );
 
         $dateFormat = $this->_localeDate->getDateFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+            \IntlDateFormatter::MEDIUM
         );
         $timeFormat = $this->_localeDate->getTimeFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+            \IntlDateFormatter::MEDIUM
         );
 
         if ($queue->getQueueStatus() == \Magento\Newsletter\Model\Queue::STATUS_NEVER) {
@@ -157,7 +157,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic
             $form->getElement(
                 'date'
             )->setValue(
-                $this->_localeDate->date($queue->getQueueStartAt(), \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                $this->_localeDate->date(new \DateTime($queue->getQueueStartAt()))
             );
         }
 
diff --git a/app/code/Magento/Newsletter/Model/Queue.php b/app/code/Magento/Newsletter/Model/Queue.php
index 72239c7dcfabd57bc466a3773e292e719169dfbf..05a4ef51bc9ef698ae2ad71add8caf14dd71999f 100644
--- a/app/code/Magento/Newsletter/Model/Queue.php
+++ b/app/code/Magento/Newsletter/Model/Queue.php
@@ -87,11 +87,6 @@ class Queue extends \Magento\Email\Model\AbstractTemplate
      */
     protected $_date;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
-     */
-    protected $_localeDate;
-
     /**
      * Problem factory
      *
@@ -134,7 +129,6 @@ class Queue extends \Magento\Email\Model\AbstractTemplate
         \Magento\Store\Model\App\Emulation $appEmulation,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Newsletter\Model\Template\Filter $templateFilter,
-        \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
         \Magento\Framework\Stdlib\DateTime\DateTime $date,
         \Magento\Newsletter\Model\TemplateFactory $templateFactory,
         \Magento\Newsletter\Model\ProblemFactory $problemFactory,
@@ -145,7 +139,6 @@ class Queue extends \Magento\Email\Model\AbstractTemplate
         parent::__construct($context, $design, $registry, $appEmulation, $storeManager, $data);
         $this->_templateFilter = $templateFilter;
         $this->_date = $date;
-        $this->_localeDate = $localeDate;
         $this->_templateFactory = $templateFactory;
         $this->_problemFactory = $problemFactory;
         $this->_subscribersCollection = $subscriberCollectionFactory->create();
@@ -184,10 +177,7 @@ class Queue extends \Magento\Email\Model\AbstractTemplate
         if (is_null($startAt) || $startAt == '') {
             $this->setQueueStartAt(null);
         } else {
-            $format = $this->_localeDate->getDateTimeFormat(
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
-            );
-            $time = $this->_localeDate->date($startAt, $format)->getTimestamp();
+            $time = (new \DateTime($startAt))->getTimestamp();
             $this->setQueueStartAt($this->_date->gmtDate(null, $time));
         }
         return $this;
diff --git a/app/code/Magento/PageCache/Controller/Block/Render.php b/app/code/Magento/PageCache/Controller/Block/Render.php
index 2758db3f574214ca247997de092f4cc580c990e3..8afaeb27e5c3a552d83e8a72d1a940ddab4434ba 100644
--- a/app/code/Magento/PageCache/Controller/Block/Render.php
+++ b/app/code/Magento/PageCache/Controller/Block/Render.php
@@ -19,7 +19,8 @@ class Render extends \Magento\PageCache\Controller\Block
             $this->_forward('noroute');
             return;
         }
-
+        // disable profiling during private content handling AJAX call
+        \Magento\Framework\Profiler::reset();
         $blocks = $this->_getBlocks();
         $data = [];
         foreach ($blocks as $blockName => $blockInstance) {
diff --git a/app/code/Magento/Payment/Block/Info/Cc.php b/app/code/Magento/Payment/Block/Info/Cc.php
index 0cb99fe22f0d8ffe764746265dabaaff90ae459f..bd92161c86834c161277851a5895e8d86d9152a1 100644
--- a/app/code/Magento/Payment/Block/Info/Cc.php
+++ b/app/code/Magento/Payment/Block/Info/Cc.php
@@ -73,13 +73,12 @@ class Cc extends \Magento\Payment\Block\Info
     /**
      * Retrieve CC expiration date
      *
-     * @return \Magento\Framework\Stdlib\DateTime\Date
+     * @return \DateTime
      */
     public function getCcExpDate()
     {
-        $date = $this->_localeDate->date(0);
-        $date->setYear($this->getInfo()->getCcExpYear());
-        $date->setMonth($this->getInfo()->getCcExpMonth());
+        $date = new \DateTime('now', new \DateTimeZone($this->_localeDate->getConfigTimezone()));
+        $date->setDate($this->getInfo()->getCcExpYear(), $this->getInfo()->getCcExpMonth(), $date->format('d'));
         return $date;
     }
 
diff --git a/app/code/Magento/Payment/Model/Config.php b/app/code/Magento/Payment/Model/Config.php
index a36c3dff9ec978b8ab3ac436079b267165f522eb..62a196bfce79f0b267fea1af1edc2cbf5dd35097 100644
--- a/app/code/Magento/Payment/Model/Config.php
+++ b/app/code/Magento/Payment/Model/Config.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Payment\Model;
 
+use Magento\Framework\Locale\Bundle\DataBundle;
 use Magento\Payment\Model\Method\AbstractMethod;
 use Magento\Store\Model\ScopeInterface;
 
@@ -40,9 +41,9 @@ class Config
     /**
      * Locale model
      *
-     * @var \Magento\Framework\Locale\ListsInterface
+     * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_localeLists;
+    protected $localeResolver;
 
     /**
      * Payment method factory
@@ -63,21 +64,21 @@ class Config
      *
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
      * @param \Magento\Payment\Model\Method\Factory $paymentMethodFactory
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
+     * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      * @param \Magento\Framework\Config\DataInterface $dataStorage
      * @param \Magento\Framework\Stdlib\DateTime\DateTime $date
      */
     public function __construct(
         \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
         \Magento\Payment\Model\Method\Factory $paymentMethodFactory,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
+        \Magento\Framework\Locale\ResolverInterface $localeResolver,
         \Magento\Framework\Config\DataInterface $dataStorage,
         \Magento\Framework\Stdlib\DateTime\DateTime $date
     ) {
         $this->_scopeConfig = $scopeConfig;
         $this->_dataStorage = $dataStorage;
         $this->_paymentMethodFactory = $paymentMethodFactory;
-        $this->_localeLists = $localeLists;
+        $this->localeResolver = $localeResolver;
         $this->_date = $date;
     }
 
@@ -139,9 +140,12 @@ class Config
      */
     public function getMonths()
     {
-        $data = $this->_localeLists->getTranslationList('month');
-        foreach ($data as $key => $value) {
-            $monthNum = $key < 10 ? '0' . $key : $key;
+        $data = [];
+        $months = (new DataBundle())->get(
+            $this->localeResolver->getLocale()
+        )['calendar']['gregorian']['monthNames']['format']['wide'];
+        foreach ($months as $key => $value) {
+            $monthNum = ++$key < 10 ? '0' . $key : $key;
             $data[$key] = $monthNum . ' - ' . $value;
         }
         return $data;
diff --git a/app/code/Magento/Payment/Model/Method/Cc.php b/app/code/Magento/Payment/Model/Method/Cc.php
index 8cc8dd3632fe4bd13bbc41028f8de672bc66362a..23e7dfda59a9b40a4da2e115d01deb1ff1017307 100644
--- a/app/code/Magento/Payment/Model/Method/Cc.php
+++ b/app/code/Magento/Payment/Model/Method/Cc.php
@@ -285,14 +285,9 @@ class Cc extends \Magento\Payment\Model\Method\AbstractMethod
      */
     protected function _validateExpDate($expYear, $expMonth)
     {
-        $date = $this->_localeDate->date();
-        if (!$expYear || !$expMonth || $date->compareYear(
-            $expYear
-        ) == 1 || $date->compareYear(
-            $expYear
-        ) == 0 && $date->compareMonth(
-            $expMonth
-        ) == 1
+        $date = new \DateTime();
+        if (!$expYear || !$expMonth || (int)$date->format('Y') > $expYear
+            || (int)$date->format('Y') == $expYear && (int)$date->format('m') > $expMonth
         ) {
             return false;
         }
diff --git a/app/code/Magento/Payment/Test/Unit/Block/Info/CcTest.php b/app/code/Magento/Payment/Test/Unit/Block/Info/CcTest.php
index 233b554d435344fd1817d4b43cb3b545055d6c08..98760f01eacc72e2c5536061b47d90dc130638dc 100644
--- a/app/code/Magento/Payment/Test/Unit/Block/Info/CcTest.php
+++ b/app/code/Magento/Payment/Test/Unit/Block/Info/CcTest.php
@@ -139,29 +139,12 @@ class CcTest extends \PHPUnit_Framework_TestCase
             ->method('getCcExpYear')->will($this->returnValue($ccExpYear));
         $this->model->setData('info', $paymentInfo);
 
-        $date = $this->getMock(
-            'Magento\Framework\Stdlib\DateTime\TimezoneInterface',
-            [
-                'setYear', 'getYear', 'setMonth', 'getMonth', 'getDefaultTimezonePath', 'getDefaultTimezone',
-                'getDateFormat', 'getDateFormatWithLongYear', 'getTimeFormat', 'getDateTimeFormat', 'date',
-                'scopeDate', 'utcDate', 'scopeTimeStamp', 'formatDate', 'formatTime', 'getConfigTimezone',
-                'isScopeDateInInterval'
-            ],
-            [],
-            '',
-            false
-        );
-        $date->expects($this->any())
-            ->method('getYear')
-            ->willReturn($ccExpYear);
-        $date->expects($this->any())
-            ->method('getMonth')
-            ->willReturn($ccExpMonth);
-        $this->localeDate->expects($this->any())
-            ->method('date')
-            ->will($this->returnValue($date));
-        $this->assertEquals($ccExpYear, $this->model->getCcExpDate()->getYear());
-        $this->assertEquals($ccExpMonth, $this->model->getCcExpDate()->getMonth());
+        $this->localeDate->expects($this->exactly(2))
+            ->method('getConfigTimezone')
+            ->willReturn('America/Los_Angeles');
+
+        $this->assertEquals($ccExpYear, $this->model->getCcExpDate()->format('Y'));
+        $this->assertEquals($ccExpMonth, $this->model->getCcExpDate()->format('m'));
     }
 
     /**
diff --git a/app/code/Magento/Payment/Test/Unit/Model/ConfigTest.php b/app/code/Magento/Payment/Test/Unit/Model/ConfigTest.php
index cd16afc559a683ad23790e47b6dc9201b5521afc..ee549bebbe29c8678ba693e4b878b726b5851010 100644
--- a/app/code/Magento/Payment/Test/Unit/Model/ConfigTest.php
+++ b/app/code/Magento/Payment/Test/Unit/Model/ConfigTest.php
@@ -27,8 +27,8 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
     /** @var \Magento\Payment\Model\Method\Factory|\PHPUnit_Framework_MockObject_MockObject */
     protected $paymentMethodFactory;
 
-    /** @var \Magento\Framework\Locale\ListsInterface|\PHPUnit_Framework_MockObject_MockObject */
-    protected $localeLists;
+    /** @var \Magento\Framework\Locale\ResolverInterface|\PHPUnit_Framework_MockObject_MockObject */
+    protected $localeResolver;
 
     /** @var \Magento\Framework\Config\DataInterface|\PHPUnit_Framework_MockObject_MockObject */
     protected $dataStorage;
@@ -55,8 +55,18 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
      * @var array
      */
     protected $monthList = [
-        1 => 'Marsabruary',
-        11 => 'Venusly',
+        1 => 'January',
+        'February',
+        'March',
+        'April',
+        'May',
+        'June',
+        'July',
+        'August',
+        'September',
+        'October',
+        'November',
+        'December',
     ];
 
     /**
@@ -65,8 +75,18 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
      * @var array
      */
     protected $expectedMonthList = [
-        1 => '01 - Marsabruary',
-        11 => '11 - Venusly',
+        1 => '01 - January',
+        '02 - February',
+        '03 - March',
+        '04 - April',
+        '05 - May',
+        '06 - June',
+        '07 - July',
+        '08 - August',
+        '09 - September',
+        '10 - October',
+        '11 - November',
+        '12 - December',
     ];
 
     /**
@@ -84,7 +104,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             false
         );
         $this->paymentMethodFactory = $this->getMock('Magento\Payment\Model\Method\Factory', [], [], '', false);
-        $this->localeLists = $this->getMock('Magento\Framework\Locale\ListsInterface', [], [], '', false);
+        $this->localeResolver = $this->getMock('Magento\Framework\Locale\ResolverInterface', [], [], '', false);
         $this->dataStorage = $this->getMock('Magento\Framework\Config\DataInterface', [], [], '', false);
         $this->date = $this->getMock('Magento\Framework\Stdlib\DateTime\DateTime', [], [], '', false);
 
@@ -94,7 +114,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             [
                 'scopeConfig' => $this->scopeConfig,
                 'paymentMethodFactory' => $this->paymentMethodFactory,
-                'localeLists' => $this->localeLists,
+                'localeResolver' => $this->localeResolver,
                 'dataStorage' => $this->dataStorage,
                 'date' => $this->date
             ]
@@ -161,9 +181,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
 
     public function testGetMonths()
     {
-        $this->localeLists->expects($this->once())->method('getTranslationList')->with('month')->will(
-            $this->returnValue($this->monthList)
-        );
+        $this->localeResolver->expects($this->once())->method('getLocale')->willReturn('en_US');
         $this->assertEquals($this->expectedMonthList, $this->config->getMonths());
     }
 
diff --git a/app/code/Magento/Reports/Block/Adminhtml/Config/Form/Field/YtdStart.php b/app/code/Magento/Reports/Block/Adminhtml/Config/Form/Field/YtdStart.php
index fa7025f4ae385ac75a07874571b5919a7b3bc2b2..b56638fcbd9f68ca8ca0dfa040494b5f710c9b6b 100644
--- a/app/code/Magento/Reports/Block/Adminhtml/Config/Form/Field/YtdStart.php
+++ b/app/code/Magento/Reports/Block/Adminhtml/Config/Form/Field/YtdStart.php
@@ -23,7 +23,7 @@ class YtdStart extends \Magento\Config\Block\System\Config\Form\Field
     {
         $_months = [];
         for ($i = 1; $i <= 12; $i++) {
-            $_months[$i] = $this->_localeDate->date(mktime(null, null, null, $i))->get(\Zend_Date::MONTH_NAME);
+            $_months[$i] = $this->_localeDate->date(mktime(null, null, null, $i))->format('m');
         }
 
         $_days = [];
diff --git a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php
index 48e968de6798c0e2c1191c4d1eff1af216ff1b1b..ebb83d33ff59e4793fe68abc806ad30e7fd9a8e3 100644
--- a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php
+++ b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php
@@ -120,7 +120,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic
         $form->setHtmlIdPrefix($htmlIdPrefix);
         $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Filter')]);
 
-        $dateFormat = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
 
         $fieldset->addField('store_ids', 'hidden', ['name' => 'store_ids']);
 
diff --git a/app/code/Magento/Reports/Block/Adminhtml/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Grid.php
index ffe52417938c1a70831f6e7c517b0f5615ae7526..5a09854e7c076d98bf3ea5c7587bc4ea5bc8a5dc 100644
--- a/app/code/Magento/Reports/Block/Adminhtml/Grid.php
+++ b/app/code/Magento/Reports/Block/Adminhtml/Grid.php
@@ -92,14 +92,22 @@ class Grid extends \Magento\Backend\Block\Widget\Grid
 
             if (!isset($data['report_from'])) {
                 // getting all reports from 2001 year
-                $date = new \Magento\Framework\Stdlib\DateTime\Date(mktime(0, 0, 0, 1, 1, 2001));
-                $data['report_from'] = $date->toString($this->_localeDate->getDateFormat('short'));
+                $date = new \DateTime('@' . mktime(0, 0, 0, 1, 1, 2001));
+                $data['report_from'] = $this->_localeDate->formatDateTime(
+                    $date,
+                    \IntlDateFormatter::SHORT,
+                    \IntlDateFormatter::NONE
+                );
             }
 
             if (!isset($data['report_to'])) {
                 // getting all reports from 2001 year
-                $date = new \Magento\Framework\Stdlib\DateTime\Date();
-                $data['report_to'] = $date->toString($this->_localeDate->getDateFormat('short'));
+                $date = new \DateTime();
+                $data['report_to'] = $this->_localeDate->formatDateTime(
+                    $date,
+                    \IntlDateFormatter::SHORT,
+                    \IntlDateFormatter::NONE
+                );
             }
 
             $this->_setFilterValues($data);
@@ -121,11 +129,10 @@ class Grid extends \Magento\Backend\Block\Widget\Grid
                 try {
                     $from = $this->_localeDate->date(
                         $this->getFilter('report_from'),
-                        \Zend_Date::DATE_SHORT,
                         null,
                         false
                     );
-                    $to = $this->_localeDate->date($this->getFilter('report_to'), \Zend_Date::DATE_SHORT, null, false);
+                    $to = $this->_localeDate->date($this->getFilter('report_to'), null, false);
 
                     $collection->setInterval($from, $to);
                 } catch (\Exception $e) {
@@ -281,7 +288,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid
      */
     public function getDateFormat()
     {
-        return $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        return $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
     }
 
     /**
diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php
index e6beaf64c46af0227697fa6c3a3e9b2af000fdee..35767de5d79cfb72b72223283c411d572ad8ba8b 100644
--- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php
+++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Reports\Block\Adminhtml\Sales\Grid\Column\Renderer;
 
+use Magento\Framework\Locale\Bundle\DataBundle;
+
 /**
  * Adminhtml grid item renderer date
  */
@@ -35,20 +37,22 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Date
         if (!$format) {
             if (is_null(self::$_format)) {
                 try {
-                    $localeCode = $this->_localeResolver->getLocaleCode();
-                    $localeData = new \Zend_Locale_Data();
+                    $formats = (new DataBundle())->get(
+                        $this->_localeResolver->getLocale()
+                    )['calendar']['gregorian']['availableFormats'];
+
                     switch ($this->getColumn()->getPeriodType()) {
                         case 'month':
-                            self::$_format = $localeData->getContent($localeCode, 'dateitem', 'yM');
+                            self::$_format = $formats['yM'];
                             break;
 
                         case 'year':
-                            self::$_format = $localeData->getContent($localeCode, 'dateitem', 'y');
+                            self::$_format = $formats['y'];
                             break;
 
                         default:
                             self::$_format = $this->_localeDate->getDateFormat(
-                                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+                                \IntlDateFormatter::MEDIUM
                             );
                             break;
                     }
@@ -68,6 +72,7 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Date
      */
     public function render(\Magento\Framework\Object $row)
     {
+        //@todo: check this logic manually
         if ($data = $row->getData($this->getColumn()->getIndex())) {
             switch ($this->getColumn()->getPeriodType()) {
                 case 'month':
@@ -83,33 +88,33 @@ class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Date
 
             $format = $this->_getFormat();
             try {
-                $data = $this->getColumn()->getGmtoffset() ? $this->_localeDate->date(
-                    $data,
-                    $dateFormat
-                )->toString(
-                    $format
-                ) : $this->_localeDate->date(
-                    $data,
-                    \Zend_Date::ISO_8601,
-                    null,
-                    false
-                )->toString(
-                    $format
-                );
+                $data = $this->getColumn()->getGmtoffset()
+                    ? \IntlDateFormatter::formatObject(
+                        $this->_localeDate->date(new \DateTime($data)),
+                        $format
+                    )
+                    : \IntlDateFormatter::formatObject(
+                        $this->_localeDate->date(
+                            new \DateTime($data),
+                            null,
+                            false
+                        ),
+                        $format
+                    );
             } catch (\Exception $e) {
-                $data = $this->getColumn()->getTimezone() ? $this->_localeDate->date(
-                    $data,
-                    $dateFormat
-                )->toString(
-                    $format
-                ) : $this->_localeDate->date(
-                    $data,
-                    $dateFormat,
-                    null,
-                    false
-                )->toString(
-                    $format
-                );
+                $data = $this->getColumn()->getTimezone()
+                    ? \IntlDateFormatter::formatObject(
+                        $this->_localeDate->date(new \DateTime($data)),
+                        $format
+                    )
+                    : \IntlDateFormatter::formatObject(
+                        $this->_localeDate->date(
+                            new \DateTime($data),
+                            null,
+                            false
+                        ),
+                        $format
+                    );
             }
             return $data;
         }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/AbstractReport.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/AbstractReport.php
index 3fd529b3fb3b9f94777427a9535fe5c4931bb18d..950022b1649bb60f8ffae60c9e540142f172e762 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/AbstractReport.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/AbstractReport.php
@@ -124,16 +124,14 @@ abstract class AbstractReport extends \Magento\Backend\App\Action
         $flag = $this->_objectManager->create('Magento\Reports\Model\Flag')->setReportFlagCode($flagCode)->loadSelf();
         $updatedAt = 'undefined';
         if ($flag->hasData()) {
-            $date = new \Magento\Framework\Stdlib\DateTime\Date(
-                $flag->getLastUpdate(),
-                \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-            );
-            $updatedAt = $this->_objectManager->get(
-                'Magento\Framework\Stdlib\DateTime\TimezoneInterface'
-            )->scopeDate(
-                0,
-                $date,
-                true
+            $updatedAt =  \IntlDateFormatter::formatObject(
+                $this->_objectManager->get(
+                    'Magento\Framework\Stdlib\DateTime\TimezoneInterface'
+                )->scopeDate(
+                    0,
+                    $flag->getLastUpdate(),
+                    true
+                )
             );
         }
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
index e9a7af224129c85700d9c2f3550b1acbc744e5d4..e4e5c4e651095eb8a147b5d1ccc88522bd6038ef 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
@@ -18,9 +18,9 @@ class RefreshRecent extends \Magento\Reports\Controller\Adminhtml\Report\Statist
     {
         try {
             $collectionsNames = $this->_getCollectionNames();
-            /** @var \Magento\Framework\Stdlib\DateTime\DateInterface $currentDate */
+            /** @var \DateTime $currentDate */
             $currentDate = $this->_objectManager->get('Magento\Framework\Stdlib\DateTime\TimezoneInterface')->date();
-            $date = $currentDate->subHour(25);
+            $date = $currentDate->modify('-25 hours');
             foreach ($collectionsNames as $collectionName) {
                 $this->_objectManager->create($collectionName)->aggregate($date);
             }
diff --git a/app/code/Magento/Reports/Helper/Data.php b/app/code/Magento/Reports/Helper/Data.php
index 7553ee48de465cc896f4dc1d07015272b579be43..50856d3b37cde36d9b1066dcc9aa5d608a004b9b 100644
--- a/app/code/Magento/Reports/Helper/Data.php
+++ b/app/code/Magento/Reports/Helper/Data.php
@@ -53,44 +53,23 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper
             return $intervals;
         }
 
-        $start = new \Magento\Framework\Stdlib\DateTime\Date($from, \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT);
-
-        if ($period == self::REPORT_PERIOD_TYPE_DAY) {
-            $dateStart = $start;
-        }
-
-        if ($period == self::REPORT_PERIOD_TYPE_MONTH) {
-            $dateStart = new \Magento\Framework\Stdlib\DateTime\Date(
-                date("Y-m", $start->getTimestamp()),
-                DateTime::DATE_INTERNAL_FORMAT
-            );
-        }
-
-        if ($period == self::REPORT_PERIOD_TYPE_YEAR) {
-            $dateStart = new \Magento\Framework\Stdlib\DateTime\Date(
-                date("Y", $start->getTimestamp()),
-                DateTime::DATE_INTERNAL_FORMAT
-            );
-        }
-
-        $dateEnd = new \Magento\Framework\Stdlib\DateTime\Date($to, DateTime::DATE_INTERNAL_FORMAT);
-
-        while ($dateStart->compare($dateEnd) <= 0) {
+        $dateStart = new \DateTime($from);
+        $dateEnd = new \DateTime($to);
+        while ($dateStart->diff($dateEnd)->invert = 0) {
             switch ($period) {
                 case self::REPORT_PERIOD_TYPE_DAY:
-                    $t = $dateStart->toString('yyyy-MM-dd');
-                    $dateStart->addDay(1);
+                    $intervals[] = $dateStart->format('Y-m-d');
+                    $dateStart->add(new \DateInterval('P1D'));
                     break;
                 case self::REPORT_PERIOD_TYPE_MONTH:
-                    $t = $dateStart->toString('yyyy-MM');
-                    $dateStart->addMonth(1);
+                    $intervals[] = $dateStart->format('Y-m');
+                    $dateStart->add(new \DateInterval('P1M'));
                     break;
                 case self::REPORT_PERIOD_TYPE_YEAR:
-                    $t = $dateStart->toString('yyyy');
-                    $dateStart->addYear(1);
+                    $intervals[] = $dateStart->format('Y');
+                    $dateStart->add(new \DateInterval('P1Y'));
                     break;
             }
-            $intervals[] = $t;
         }
         return $intervals;
     }
diff --git a/app/code/Magento/Reports/Model/DateFactory.php b/app/code/Magento/Reports/Model/DateFactory.php
deleted file mode 100644
index b604af9135446a9aea30ce5a684cd1fd1c68b5e4..0000000000000000000000000000000000000000
--- a/app/code/Magento/Reports/Model/DateFactory.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-// @codingStandardsIgnoreFile
-
-namespace Magento\Reports\Model;
-
-class DateFactory
-{
-    /**
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface|array  $date    OPTIONAL Date value or value of date part to set
-     *                                                 ,depending on $part. If null the actual time is set
-     * @param  string                          $part    OPTIONAL Defines the input format of $date
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\Date
-     */
-    public function create($date = null, $part = null, $locale = null)
-    {
-        return new \Magento\Framework\Stdlib\DateTime\Date($date, $part, $locale);
-    }
-}
diff --git a/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php b/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php
index 4d3ca4716833f3ba99cd5dae823c9085e92880c6..6f6f216e634e88817fc9bcfe35fc379f73b11e73 100644
--- a/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php
+++ b/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php
@@ -102,7 +102,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\AbstractModel
             $this->setStoreId($this->getStoreId());
         }
         if (!$this->hasAddedAt()) {
-            $this->setAddedAt($this->dateTime->now());
+            $this->setAddedAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT));
         }
 
         return $this;
diff --git a/app/code/Magento/Reports/Model/Resource/Entity/Summary/Collection/AbstractCollection.php b/app/code/Magento/Reports/Model/Resource/Entity/Summary/Collection/AbstractCollection.php
deleted file mode 100644
index 5da4e2f6b1efdd2fbf944ec31f1e46baeb12de40..0000000000000000000000000000000000000000
--- a/app/code/Magento/Reports/Model/Resource/Entity/Summary/Collection/AbstractCollection.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-// @codingStandardsIgnoreFile
-
-/**
- * Reports summary collection
- *
- * @author      Magento Core Team <core@magentocommerce.com>
- */
-namespace Magento\Reports\Model\Resource\Entity\Summary\Collection;
-
-class AbstractCollection extends \Magento\Framework\Data\Collection
-{
-    /**
-     * Entity collection for summaries
-     *
-     * @var \Magento\Eav\Model\Entity\Collection\AbstractCollection
-     */
-    protected $_entityCollection;
-
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime
-     */
-    protected $dateTime;
-
-    /**
-     * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
-     * @param \Magento\Framework\Stdlib\DateTime $dateTime
-     */
-    public function __construct(\Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Magento\Framework\Stdlib\DateTime $dateTime)
-    {
-        $this->dateTime = $dateTime;
-        parent::__construct($entityFactory);
-    }
-
-    /**
-     * Filters the summaries by some period
-     *
-     * @param string $periodType
-     * @param string|int|null $customStart
-     * @param string|int|null $customEnd
-     * @return $this
-     */
-    public function setSelectPeriod($periodType, $customStart = null, $customEnd = null)
-    {
-        switch ($periodType) {
-            case "24h":
-                $customStart = $this->dateTime->toTimestamp(true) - 86400;
-                $customEnd = $this->dateTime->toTimestamp(true);
-                break;
-
-            case "7d":
-                $customStart = $this->dateTime->toTimestamp(true) - 604800;
-                $customEnd = $this->dateTime->toTimestamp(true);
-                break;
-
-            case "30d":
-                $customStart = $this->dateTime->toTimestamp(true) - 2592000;
-                $customEnd = $this->dateTime->toTimestamp(true);
-                break;
-
-            case "1y":
-                $customStart = $this->dateTime->toTimestamp(true) - 31536000;
-                $customEnd = $this->dateTime->toTimestamp(true);
-                break;
-
-            default:
-                if (is_string($customStart)) {
-                    $customStart = strtotime($customStart);
-                }
-                if (is_string($customEnd)) {
-                    $customEnd = strtotime($customEnd);
-                }
-                break;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set date period
-     *
-     * @param int $period
-     * @return $this
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function setDatePeriod($period)
-    {
-        return $this;
-    }
-
-    /**
-     * Set store filter
-     *
-     * @param int $storeId
-     * @return $this
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function setStoreFilter($storeId)
-    {
-        return $this;
-    }
-
-    /**
-     * Return collection for summaries
-     *
-     * @return \Magento\Eav\Model\Entity\Collection\AbstractCollection
-     */
-    public function getCollection()
-    {
-        if (empty($this->_entityCollection)) {
-            $this->_initCollection();
-        }
-        return $this->_entityCollection;
-    }
-
-    /**
-     * Init collection
-     *
-     * @return $this
-     */
-    protected function _initCollection()
-    {
-        return $this;
-    }
-}
diff --git a/app/code/Magento/Reports/Model/Resource/Order/Collection.php b/app/code/Magento/Reports/Model/Resource/Order/Collection.php
index 107112fb91026b8dc1c63d403962e4fccb629b47..68558080b6670588778570df2e4506f4a246536d 100644
--- a/app/code/Magento/Reports/Model/Resource/Order/Collection.php
+++ b/app/code/Magento/Reports/Model/Resource/Order/Collection.php
@@ -372,12 +372,16 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection
     protected function _getTZRangeExpressionForAttribute($range, $attribute, $tzFrom = '+00:00', $tzTo = null)
     {
         if (null == $tzTo) {
-            $tzTo = $this->_localeDate->scopeDate()->toString(\Zend_Date::GMT_DIFF_SEP);
+            $tzTo = $this->_localeDate->scopeDate()->format('P');
         }
         $adapter = $this->getConnection();
         $expression = $this->_getRangeExpression($range);
         $attribute = $adapter->quoteIdentifier($attribute);
-        $periodExpr = $adapter->getDateAddSql($attribute, $tzTo, \Magento\Framework\DB\Adapter\AdapterInterface::INTERVAL_HOUR);
+        $periodExpr = $adapter->getDateAddSql(
+            $attribute,
+            $tzTo,
+            \Magento\Framework\DB\Adapter\AdapterInterface::INTERVAL_HOUR
+        );
 
         return str_replace('{{attribute}}', $periodExpr, $expression);
     }
@@ -394,34 +398,32 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection
      */
     public function getDateRange($range, $customStart, $customEnd, $returnObjects = false)
     {
-        $dateEnd = $this->_localeDate->date();
-        $dateStart = clone $dateEnd;
+        $dateEnd = new \DateTime();
+        $dateStart = new \DateTime();
 
         // go to the end of a day
-        $dateEnd->setHour(23);
-        $dateEnd->setMinute(59);
-        $dateEnd->setSecond(59);
+        $dateEnd->setTime(23, 59, 59);
 
-        $dateStart->setHour(0);
-        $dateStart->setMinute(0);
-        $dateStart->setSecond(0);
+        $dateStart->setTime(0, 0, 0);
 
         switch ($range) {
             case '24h':
-                $dateEnd = $this->_localeDate->date();
-                $dateEnd->addHour(1);
+                $dateEnd = new \DateTime();
+                $dateEnd->modify('+1 hour');
                 $dateStart = clone $dateEnd;
-                $dateStart->subDay(1);
+                $dateStart->modify('-1 day');
                 break;
 
             case '7d':
                 // substract 6 days we need to include
                 // only today and not hte last one from range
-                $dateStart->subDay(6);
+                $dateStart->modify('-6 days');
                 break;
 
             case '1m':
-                $dateStart->setDay(
+                $dateStart->setDate(
+                    $dateStart->format('Y'),
+                    $dateStart->format('m'),
                     $this->_scopeConfig->getValue(
                         'reports/dashboard/mtd_start',
                         \Magento\Store\Model\ScopeInterface::SCOPE_STORE
@@ -445,16 +447,15 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection
                 );
                 $startMonth = isset($startMonthDay[0]) ? (int)$startMonthDay[0] : 1;
                 $startDay = isset($startMonthDay[1]) ? (int)$startMonthDay[1] : 1;
-                $dateStart->setMonth($startMonth);
-                $dateStart->setDay($startDay);
+                $dateStart->setDate($dateStart->format('Y'), $startMonth, $startDay);
                 if ($range == '2y') {
-                    $dateStart->subYear(1);
+                    $dateStart->modify('-1 year');
                 }
                 break;
         }
 
-        $dateStart->setTimezone('Etc/UTC');
-        $dateEnd->setTimezone('Etc/UTC');
+        $dateStart->setTimezone(new \DateTimeZone('Etc/UTC'));
+        $dateEnd->setTimezone(new \DateTimeZone('Etc/UTC'));
 
         if ($returnObjects) {
             return [$dateStart, $dateEnd];
@@ -896,8 +897,8 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection
         $this->addFieldToFilter(
             $fieldToFilter,
             [
-                'from' => $from->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT),
-                'to' => $to->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                'from' => $from->format(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT),
+                'to' => $to->format(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
             ]
         );
 
diff --git a/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php b/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php
index 8eb599d23118d20be6ccbb7d1aa2fa10c339566c..52d72406cb130d56d6a11e75ed1d68e139268287 100644
--- a/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php
+++ b/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php
@@ -84,14 +84,14 @@ abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\Abstra
                 $data = [
                     'visitor_id' => $object->getVisitorId(),
                     'store_id' => $object->getStoreId(),
-                    'added_at' => $this->dateTime->now(),
+                    'added_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
                 ];
             } else {
                 $where = ['index_id = ?' => $row['index_id']];
                 $data = [
                     'customer_id' => $object->getCustomerId(),
                     'store_id' => $object->getStoreId(),
-                    'added_at' => $this->dateTime->now(),
+                    'added_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
                 ];
             }
 
@@ -202,7 +202,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\Abstra
             'customer_id' => $object->getCustomerId(),
             'store_id' => $object->getStoreId(),
         ];
-        $addedAt = $this->dateTime->toTimestamp(true);
+        $addedAt = (new \DateTime())->getTimestamp();
         $data = [];
         foreach ($productIds as $productId) {
             $productId = (int)$productId;
diff --git a/app/code/Magento/Reports/Model/Resource/Refresh/Collection.php b/app/code/Magento/Reports/Model/Resource/Refresh/Collection.php
index 930dbf4ce444e43bb5b3827dbc091b86186ae758..51710f72ab2c11e7677aad3cfdad9c2630a94366 100644
--- a/app/code/Magento/Reports/Model/Resource/Refresh/Collection.php
+++ b/app/code/Magento/Reports/Model/Resource/Refresh/Collection.php
@@ -42,17 +42,14 @@ class Collection extends \Magento\Framework\Data\Collection
      * Get if updated
      *
      * @param string $reportCode
-     * @return string|\Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return string|\DateTime
      */
     protected function _getUpdatedAt($reportCode)
     {
         $flag = $this->_reportsFlagFactory->create()->setReportFlagCode($reportCode)->loadSelf();
         return $flag->hasData() ? $this->_localeDate->scopeDate(
             0,
-            new \Magento\Framework\Stdlib\DateTime\Date(
-                $flag->getLastUpdate(),
-                \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-            ),
+            $flag->getLastUpdate(),
             true
         ) : '';
     }
diff --git a/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php b/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php
index 215051833602f4bfb69d738a2db062aecf84c782..2de8eaf41e183af60a117dd093ccc338adaba2a5 100644
--- a/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php
+++ b/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php
@@ -90,7 +90,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
             $this->_getFlag()->setFlagData($value);
         }
 
-        $time = $this->dateTime->toTimestamp(true);
+        $time = (new \DateTime())->getTimestamp();
         // touch last_update
         $this->_getFlag()->setLastUpdate($this->dateTime->formatDate($time));
 
@@ -175,8 +175,8 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
      * @param string $table
      * @param string $column
      * @param string $whereColumn
-     * @param null|string $from
-     * @param null|string $to
+     * @param null|string|\DateTime $from
+     * @param null|string|\DateTime $to
      * @param array $additionalWhere
      * @param string $alias
      * @return \Magento\Framework\DB\Select
@@ -341,26 +341,6 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
         return $select;
     }
 
-    /**
-     * Check range dates and transforms it to strings
-     *
-     * @param mixed &$dateFrom
-     * @param mixed &$dateTo
-     * @return $this
-     */
-    protected function _checkDates(&$dateFrom, &$dateTo)
-    {
-        if ($dateFrom !== null) {
-            $dateFrom = $this->dateTime->formatDate($dateFrom);
-        }
-
-        if ($dateTo !== null) {
-            $dateTo = $this->dateTime->formatDate($dateTo);
-        }
-
-        return $this;
-    }
-
     /**
      * Retrieve query for attribute with timezone conversion
      *
@@ -381,7 +361,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
         }
 
         $periods = $this->_getTZOffsetTransitions(
-            $this->_localeDate->scopeDate($store)->toString(\Zend_Date::TIMEZONE_NAME),
+            $this->_localeDate->scopeDate($store)->format('e'),
             $from,
             $to
         );
@@ -424,19 +404,17 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
         $tzTransitions = [];
         try {
             if (!empty($from)) {
-                $from = new \Magento\Framework\Stdlib\DateTime\Date($from, \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
-                $from = $from->getTimestamp();
+                $from = (new \DateTime($from))->getTimestamp();
             }
 
-            $to = new \Magento\Framework\Stdlib\DateTime\Date($to, \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT);
+            $to = new \DateTime($to);
             $nextPeriod = $this->_getWriteAdapter()->formatDate(
-                $to->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                $to->format('Y-m-d H:i:s')
             );
             $to = $to->getTimestamp();
 
             $dtz = new \DateTimeZone($timezone);
             $transitions = $dtz->getTransitions();
-            $dateTimeObject = new \Magento\Framework\Stdlib\DateTime\Date('c');
 
             for ($i = count($transitions) - 1; $i >= 0; $i--) {
                 $tr = $transitions[$i];
@@ -446,9 +424,8 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
                     continue;
                 }
 
-                $dateTimeObject->set($tr['time']);
                 $tr['time'] = $this->_getWriteAdapter()->formatDate(
-                    $dateTimeObject->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                    (new \DateTime($tr['time']))->format('Y-m-d H:i:s')
                 );
                 $tzTransitions[$tr['offset']][] = ['from' => $tr['time'], 'to' => $nextPeriod];
 
@@ -472,22 +449,28 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr
      */
     protected function _getStoreTimezoneUtcOffset($store = null)
     {
-        return $this->_localeDate->scopeDate($store)->toString(\Zend_Date::GMT_DIFF_SEP);
+        return $this->_localeDate->scopeDate($store)->format('P');
     }
 
     /**
      * Retrieve date in UTC timezone
      *
      * @param mixed $date
-     * @return null|\Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return null|\DateTime
      */
     protected function _dateToUtc($date)
     {
         if ($date === null) {
             return null;
         }
-        $dateUtc = new \Magento\Framework\Stdlib\DateTime\Date($date);
-        $dateUtc->setTimezone('Etc/UTC');
-        return $dateUtc;
+
+        if ($date instanceof \DateTimeInterface) {
+            $dateUtc = $date;
+        } else {
+            $dateUtc = new \DateTime($date);
+        }
+
+        $dateUtc->setTimezone(new \DateTimeZone('UTC'));
+        return $dateUtc->format('Y-m-d H:i:s');
     }
 }
diff --git a/app/code/Magento/Reports/Model/Resource/Report/Collection.php b/app/code/Magento/Reports/Model/Resource/Report/Collection.php
index 79968a4d34d0575aafe52537a5d264b9c16f9249..4c3eff00d4171366fab8490aeafa10413aa21855 100644
--- a/app/code/Magento/Reports/Model/Resource/Report/Collection.php
+++ b/app/code/Magento/Reports/Model/Resource/Report/Collection.php
@@ -69,11 +69,6 @@ class Collection extends \Magento\Framework\Data\Collection
      */
     protected $_reportCollection = null;
 
-    /**
-     * @var  \Magento\Reports\Model\DateFactory
-     */
-    protected $_dateFactory;
-
     /**
      * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
      */
@@ -87,16 +82,13 @@ class Collection extends \Magento\Framework\Data\Collection
     /**
      * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
      * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
-     * @param \Magento\Reports\Model\DateFactory $dateFactory
      * @param \Magento\Reports\Model\Resource\Report\Collection\Factory $collectionFactory
      */
     public function __construct(
         \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
         \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
-        \Magento\Reports\Model\DateFactory $dateFactory,
         \Magento\Reports\Model\Resource\Report\Collection\Factory $collectionFactory
     ) {
-        $this->_dateFactory = $dateFactory;
         $this->_localeDate = $localeDate;
         $this->_collectionFactory = $collectionFactory;
         parent::__construct($entityFactory);
@@ -117,8 +109,8 @@ class Collection extends \Magento\Framework\Data\Collection
     /**
      * Set interval
      *
-     * @param int $fromDate
-     * @param int $toDate
+     * @param \DateTime $fromDate
+     * @param \DateTime $toDate
      * @return $this
      */
     public function setInterval($fromDate, $toDate)
@@ -141,16 +133,15 @@ class Collection extends \Magento\Framework\Data\Collection
             if (!$this->_from && !$this->_to) {
                 return $this->_intervals;
             }
-            $dateStart = $this->_dateFactory->create($this->_from);
-            $dateEnd = $this->_dateFactory->create($this->_to);
+            $dateStart = $this->_from;
+            $dateEnd = $this->_to;
 
-            $interval = [];
             $firstInterval = true;
-            while ($dateStart->compare($dateEnd) <= 0) {
+            while ($dateStart <= $dateEnd) {
                 switch ($this->_period) {
                     case 'day':
                         $interval = $this->_getDayInterval($dateStart);
-                        $dateStart->addDay(1);
+                        $dateStart->modify('+1 day');
                         break;
                     case 'month':
                         $interval = $this->_getMonthInterval($dateStart, $dateEnd, $firstInterval);
@@ -172,15 +163,19 @@ class Collection extends \Magento\Framework\Data\Collection
     /**
      * Get interval for a day
      *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $dateStart
+     * @param \DateTime $dateStart
      * @return array
      */
-    protected function _getDayInterval(\Magento\Framework\Stdlib\DateTime\DateInterface $dateStart)
+    protected function _getDayInterval(\DateTime $dateStart)
     {
         $interval = [
-            'period' => $dateStart->toString($this->_localeDate->getDateFormat()),
-            'start' => $dateStart->toString('yyyy-MM-dd HH:mm:ss'),
-            'end' => $dateStart->toString('yyyy-MM-dd 23:59:59'),
+            'period' => $this->_localeDate->formatDateTime(
+                $dateStart,
+                \IntlDateFormatter::SHORT,
+                \IntlDateFormatter::NONE
+            ),
+            'start' => $dateStart->format('Y-m-d H:i:s'),
+            'end' => $dateStart->format('Y-m-d 23:59:59'),
         ];
         return $interval;
     }
@@ -188,36 +183,37 @@ class Collection extends \Magento\Framework\Data\Collection
     /**
      * Get interval for a month
      *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $dateStart
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $dateEnd
+     * @param \DateTime $dateStart
+     * @param \DateTime $dateEnd
      * @param bool $firstInterval
      * @return array
      */
-    protected function _getMonthInterval(
-        \Magento\Framework\Stdlib\DateTime\DateInterface $dateStart,
-        \Magento\Framework\Stdlib\DateTime\DateInterface $dateEnd,
-        $firstInterval
-    ) {
+    protected function _getMonthInterval(\DateTime $dateStart, \DateTime $dateEnd, $firstInterval)
+    {
         $interval = [];
-        $interval['period'] = $dateStart->toString('MM/yyyy');
+        $interval['period'] = $dateStart->format('m/Y');
         if ($firstInterval) {
-            $interval['start'] = $dateStart->toString('yyyy-MM-dd 00:00:00');
+            $interval['start'] = $dateStart->format('Y-m-d 00:00:00');
         } else {
-            $interval['start'] = $dateStart->toString('yyyy-MM-01 00:00:00');
+            $interval['start'] = $dateStart->format('Y-m-01 00:00:00');
         }
 
-        $lastInterval = $dateStart->compareMonth($dateEnd->getMonth()) == 0;
-
-        if ($lastInterval) {
-            $interval['end'] = $dateStart->setDay($dateEnd->getDay())->toString('yyyy-MM-dd 23:59:59');
+        if ($dateStart->diff($dateEnd)->m == 0) {
+            $interval['end'] = $dateStart->setDate(
+                $dateStart->format('Y'),
+                $dateStart->format('m'),
+                $dateEnd->format('d')
+            )->format(
+                'Y-m-d 23:59:59'
+            );
         } else {
-            $interval['end'] = $dateStart->toString('yyyy-MM-' . date('t', $dateStart->getTimestamp()) . ' 23:59:59');
+            $interval['end'] = $dateStart->format('Y-m-' . date('t', $dateStart->getTimestamp()) . ' 23:59:59');
         }
 
-        $dateStart->addMonth(1);
+        $dateStart->modify('+1 month');
 
-        if ($dateStart->compareMonth($dateEnd->getMonth()) == 0) {
-            $dateStart->setDay(1);
+        if ($dateStart->diff($dateEnd)->m == 0) {
+            $dateStart->setDate($dateStart->format('Y'), $dateStart->format('m'), 1);
         }
 
         return $interval;
@@ -226,39 +222,27 @@ class Collection extends \Magento\Framework\Data\Collection
     /**
      * Get Interval for a year
      *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $dateStart
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $dateEnd
+     * @param \DateTime $dateStart
+     * @param \DateTime $dateEnd
      * @param bool $firstInterval
      * @return array
      */
-    protected function _getYearInterval(
-        \Magento\Framework\Stdlib\DateTime\DateInterface $dateStart,
-        \Magento\Framework\Stdlib\DateTime\DateInterface $dateEnd,
-        $firstInterval
-    ) {
+    protected function _getYearInterval(\DateTime $dateStart, \DateTime $dateEnd, $firstInterval)
+    {
         $interval = [];
-        $interval['period'] = $dateStart->toString('yyyy');
-        $interval['start'] = $firstInterval ? $dateStart->toString(
-            'yyyy-MM-dd 00:00:00'
-        ) : $dateStart->toString(
-            'yyyy-01-01 00:00:00'
-        );
-
-        $lastInterval = $dateStart->compareYear($dateEnd->getYear()) == 0;
-
-        $interval['end'] = $lastInterval ? $dateStart->setMonth(
-            $dateEnd->getMonth()
-        )->setDay(
-            $dateEnd->getDay()
-        )->toString(
-            'yyyy-MM-dd 23:59:59'
-        ) : $dateStart->toString(
-            'yyyy-12-31 23:59:59'
-        );
-        $dateStart->addYear(1);
-
-        if ($dateStart->compareYear($dateEnd->getYear()) == 0) {
-            $dateStart->setMonth(1)->setDay(1);
+        $interval['period'] = $dateStart->format('Y');
+        $interval['start'] = $firstInterval
+            ? $dateStart->format('Y-m-dd 00:00:00')
+            : $dateStart->format('Y-01-01 00:00:00');
+
+        $interval['end'] = $dateStart->diff($dateEnd)->y == 0
+            ? $dateStart->setDate($dateStart->format('Y'), $dateEnd->format('m'), $dateEnd->format('d'))
+                ->format('Y-m-d 23:59:59')
+            : $dateStart->format('Y-12-31 23:59:59');
+        $dateStart->modify('+1 year');
+
+        if ($dateStart->diff($dateEnd)->y == 0) {
+            $dateStart->setDate($dateStart->format('Y'), 1, 1);
         }
 
         return $interval;
@@ -379,14 +363,9 @@ class Collection extends \Magento\Framework\Data\Collection
      */
     public function timeShift($datetime)
     {
-        return $this->_localeDate->utcDate(
-            null,
-            $datetime,
-            true,
-            \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-        )->toString(
-            \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-        );
+        return $this->_localeDate->scopeDate(null, $datetime, true)
+            ->setTimezone(new \DateTimeZone('UTC'))
+            ->format('Y-m-d H:i:s');
     }
 
     /**
diff --git a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php
index 10e3ece5c87289e85dc0ac619832ebb1f391909a..9ebd26efbd7e7dc3edd48e5e8a00dc901ec666ab 100644
--- a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php
+++ b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php
@@ -102,8 +102,6 @@ class Viewed extends \Magento\Sales\Model\Resource\Report\AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
-
         if ($from !== null || $to !== null) {
             $subSelect = $this->_getTableDateRangeSelect(
                 $this->getTable('report_event'),
diff --git a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed/Collection.php b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed/Collection.php
index 1a3f120b6df895e73561edc41709a3e58a8f2b82..d1b75ea2a05c4b8736a63ff611529784d5a8924c 100644
--- a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed/Collection.php
+++ b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed/Collection.php
@@ -4,393 +4,28 @@
  * See COPYING.txt for license details.
  */
 
-// @codingStandardsIgnoreFile
-
-/**
- * Report most viewed collection
- */
 namespace Magento\Reports\Model\Resource\Report\Product\Viewed;
 
-/**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
-class Collection extends \Magento\Reports\Model\Resource\Report\Collection\AbstractCollection
+class Collection extends \Magento\Sales\Model\Resource\Report\Bestsellers\Collection
 {
     /**
-     * Rating limit
-     *
-     * @var int
-     */
-    protected $_ratingLimit = 5;
-
-    /**
-     * Selected columns
+     * Tables per period
      *
      * @var array
      */
-    protected $_selectedColumns = [];
-
-    /**
-     * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
-     * @param \Psr\Log\LoggerInterface $logger
-     * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
-     * @param \Magento\Framework\Event\ManagerInterface $eventManager
-     * @param \Magento\Sales\Model\Resource\Report $resource
-     * @param mixed $connection
-     */
-    public function __construct(
-        \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
-        \Psr\Log\LoggerInterface $logger,
-        \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
-        \Magento\Framework\Event\ManagerInterface $eventManager,
-        \Magento\Sales\Model\Resource\Report $resource,
-        $connection = null
-    ) {
-        $resource->init(\Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_DAILY);
-        parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource);
-        $this->setModel('Magento\Reports\Model\Item');
-    }
-
-    /**
-     * Retrieve selected columns
-     *
-     * @return array
-     */
-    protected function _getSelectedColumns()
-    {
-        $adapter = $this->getConnection();
-
-        if (!$this->_selectedColumns) {
-            if ($this->isTotals()) {
-                $this->_selectedColumns = $this->getAggregatedColumns();
-            } else {
-                $this->_selectedColumns = [
-                    'period' => sprintf('MAX(%s)', $adapter->getDateFormatSql('period', '%Y-%m-%d')),
-                    'views_num' => 'SUM(views_num)',
-                    'product_id' => 'product_id',
-                    'product_name' => 'MAX(product_name)',
-                    'product_price' => 'MAX(product_price)',
-                ];
-                if ('year' == $this->_period) {
-                    $this->_selectedColumns['period'] = $adapter->getDateFormatSql('period', '%Y');
-                } elseif ('month' == $this->_period) {
-                    $this->_selectedColumns['period'] = $adapter->getDateFormatSql('period', '%Y-%m');
-                }
-            }
-        }
-        return $this->_selectedColumns;
-    }
-
-    /**
-     * Make select object for date boundary
-     *
-     * @param mixed $from
-     * @param mixed $to
-     * @return \Zend_Db_Select
-     */
-    protected function _makeBoundarySelect($from, $to)
-    {
-        $adapter = $this->getConnection();
-        $cols = $this->_getSelectedColumns();
-        $cols['views_num'] = 'SUM(views_num)';
-        $select = $adapter->select()->from(
-            $this->getResource()->getMainTable(),
-            $cols
-        )->where(
-            'period >= ?',
-            $from
-        )->where(
-            'period <= ?',
-            $to
-        )->group(
-            'product_id'
-        )->order(
-            'views_num DESC'
-        )->limit(
-            $this->_ratingLimit
-        );
-
-        $this->_applyStoresFilterToSelect($select);
-
-        return $select;
-    }
-
-    /**
-     * Init collection select
-     *
-     * @return $this
-     */
-    protected function _applyAggregatedTable()
-    {
-        $select = $this->getSelect();
-
-        // if grouping by product, not by period
-        if (!$this->_period) {
-            $cols = $this->_getSelectedColumns();
-            $cols['views_num'] = 'SUM(views_num)';
-            if ($this->_from || $this->_to) {
-                $mainTable = $this->getTable(\Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_DAILY);
-                $select->from($mainTable, $cols);
-            } else {
-                $mainTable = $this->getTable(
-                    \Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_YEARLY
-                );
-                $select->from($mainTable, $cols);
-            }
-
-            //exclude removed products
-            $subSelect = $this->getConnection()->select();
-            $subSelect->from(
-                ['existed_products' => $this->getTable('catalog_product_entity')],
-                new \Zend_Db_Expr('1)')
-            );
-
-            $select->exists(
-                $subSelect,
-                $mainTable . '.product_id = existed_products.entity_id'
-            )->group(
-                'product_id'
-            )->order(
-                'views_num ' . \Magento\Framework\DB\Select::SQL_DESC
-            )->limit(
-                $this->_ratingLimit
-            );
-
-            return $this;
-        }
-
-        if ('year' == $this->_period) {
-            $mainTable = $this->getTable(\Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_YEARLY);
-            $select->from($mainTable, $this->_getSelectedColumns());
-        } elseif ('month' == $this->_period) {
-            $mainTable = $this->getTable(\Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_MONTHLY);
-            $select->from($mainTable, $this->_getSelectedColumns());
-        } else {
-            $mainTable = $this->getTable(\Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_DAILY);
-            $select->from($mainTable, $this->_getSelectedColumns());
-        }
-        if (!$this->isTotals()) {
-            $select->group(['period', 'product_id']);
-        }
-        $select->where('rating_pos <= ?', $this->_ratingLimit);
-
-        return $this;
-    }
-
-    /**
-     * Get SQL for get record count
-     *
-     * @return \Magento\Framework\DB\Select
-     */
-    public function getSelectCountSql()
-    {
-        $this->_renderFilters();
-        $select = clone $this->getSelect();
-        $select->reset(\Zend_Db_Select::ORDER);
-        return $this->getConnection()->select()->from($select, 'COUNT(*)');
-    }
-
-    /**
-     * Set ids for store restrictions
-     *
-     * @param  array $storeIds
-     * @return $this
-     */
-    public function addStoreRestrictions($storeIds)
-    {
-        if (!is_array($storeIds)) {
-            $storeIds = [$storeIds];
-        }
-        $currentStoreIds = $this->_storesIds;
-        if (isset(
-            $currentStoreIds
-        ) && $currentStoreIds != \Magento\Store\Model\Store::DEFAULT_STORE_ID && $currentStoreIds != [
-            \Magento\Store\Model\Store::DEFAULT_STORE_ID
-        ]
-        ) {
-            if (!is_array($currentStoreIds)) {
-                $currentStoreIds = [$currentStoreIds];
-            }
-            $this->_storesIds = array_intersect($currentStoreIds, $storeIds);
-        } else {
-            $this->_storesIds = $storeIds;
-        }
-
-        return $this;
-    }
+    protected $tableForPeriod = [
+        'daily' => \Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_DAILY,
+        'monthly' => \Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_MONTHLY,
+        'yearly' => \Magento\Reports\Model\Resource\Report\Product\Viewed::AGGREGATION_YEARLY,
+    ];
 
     /**
-     * Re-declare parent method for applying filters after parent method, but before adding unions and calculating
-     * totals
+     * Return ordered filed
      *
-     * @return $this|\Magento\Framework\Model\Resource\Db\Collection\AbstractCollection
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
+     * @return string
      */
-    protected function _beforeLoad()
+    protected function getOrderedField()
     {
-        parent::_beforeLoad();
-
-        $this->_applyStoresFilter();
-
-        if ($this->_period) {
-            $selectUnions = [];
-
-            // apply date boundaries (before calling $this->_applyDateRangeFilter())
-            $dtFormat = \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT;
-            $periodFrom = !is_null($this->_from) ? new \Magento\Framework\Stdlib\DateTime\Date($this->_from, $dtFormat) : null;
-            $periodTo = !is_null($this->_to) ? new \Magento\Framework\Stdlib\DateTime\Date($this->_to, $dtFormat) : null;
-            if ('year' == $this->_period) {
-                if ($periodFrom) {
-                    // not the first day of the year
-                    if ($periodFrom->toValue(\Zend_Date::MONTH) != 1 || $periodFrom->toValue(\Zend_Date::DAY) != 1) {
-                        $dtFrom = $periodFrom->getDate();
-                        // last day of the year
-                        $dtTo = $periodFrom->getDate()->setMonth(12)->setDay(31);
-                        if (!$periodTo || $dtTo->isEarlier($periodTo)) {
-                            $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
-                            );
-
-                            // first day of the next year
-                            $this->_from = $periodFrom->getDate()->addYear(
-                                1
-                            )->setMonth(
-                                1
-                            )->setDay(
-                                1
-                            )->toString(
-                                $dtFormat
-                            );
-                        }
-                    }
-                }
-
-                if ($periodTo) {
-                    // not the last day of the year
-                    if ($periodTo->toValue(\Zend_Date::MONTH) != 12 || $periodTo->toValue(\Zend_Date::DAY) != 31) {
-                        $dtFrom = $periodTo->getDate()->setMonth(1)->setDay(1);
-                        // first day of the year
-                        $dtTo = $periodTo->getDate();
-                        if (!$periodFrom || $dtFrom->isLater($periodFrom)) {
-                            $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
-                            );
-
-                            // last day of the previous year
-                            $this->_to = $periodTo->getDate()->subYear(
-                                1
-                            )->setMonth(
-                                12
-                            )->setDay(
-                                31
-                            )->toString(
-                                $dtFormat
-                            );
-                        }
-                    }
-                }
-
-                if ($periodFrom && $periodTo) {
-                    // the same year
-                    if ($periodFrom->toValue(\Zend_Date::YEAR) == $periodTo->toValue(\Zend_Date::YEAR)) {
-                        $dtFrom = $periodFrom->getDate();
-                        $dtTo = $periodTo->getDate();
-                        $selectUnions[] = $this->_makeBoundarySelect(
-                            $dtFrom->toString($dtFormat),
-                            $dtTo->toString($dtFormat)
-                        );
-
-                        $this->getSelect()->where('1<>1');
-                    }
-                }
-            } elseif ('month' == $this->_period) {
-                if ($periodFrom) {
-                    // not the first day of the month
-                    if ($periodFrom->toValue(\Zend_Date::DAY) != 1) {
-                        $dtFrom = $periodFrom->getDate();
-                        // last day of the month
-                        $dtTo = $periodFrom->getDate()->addMonth(1)->setDay(1)->subDay(1);
-                        if (!$periodTo || $dtTo->isEarlier($periodTo)) {
-                            $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
-                            );
-
-                            // first day of the next month
-                            $this->_from = $periodFrom->getDate()->addMonth(1)->setDay(1)->toString($dtFormat);
-                        }
-                    }
-                }
-
-                if ($periodTo) {
-                    // not the last day of the month
-                    if ($periodTo->toValue(\Zend_Date::DAY) != $periodTo->toValue(\Zend_Date::MONTH_DAYS)) {
-                        $dtFrom = $periodTo->getDate()->setDay(1);
-                        // first day of the month
-                        $dtTo = $periodTo->getDate();
-                        if (!$periodFrom || $dtFrom->isLater($periodFrom)) {
-                            $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
-                            );
-
-                            // last day of the previous month
-                            $this->_to = $periodTo->getDate()->setDay(1)->subDay(1)->toString($dtFormat);
-                        }
-                    }
-                }
-
-                if ($periodFrom && $periodTo) {
-                    // the same month
-                    if ($periodFrom->toValue(
-                        \Zend_Date::YEAR
-                    ) == $periodTo->toValue(
-                        \Zend_Date::YEAR
-                    ) && $periodFrom->toValue(
-                        \Zend_Date::MONTH
-                    ) == $periodTo->toValue(
-                        \Zend_Date::MONTH
-                    )
-                    ) {
-                        $dtFrom = $periodFrom->getDate();
-                        $dtTo = $periodTo->getDate();
-                        $selectUnions[] = $this->_makeBoundarySelect(
-                            $dtFrom->toString($dtFormat),
-                            $dtTo->toString($dtFormat)
-                        );
-
-                        $this->getSelect()->where('1<>1');
-                    }
-                }
-            }
-
-            $this->_applyDateRangeFilter();
-
-            // add unions to select
-            if ($selectUnions) {
-                $unionParts = [];
-                $cloneSelect = clone $this->getSelect();
-                $unionParts[] = '(' . $cloneSelect . ')';
-                foreach ($selectUnions as $union) {
-                    $unionParts[] = '(' . $union . ')';
-                }
-                $this->getSelect()->reset()->union($unionParts, \Zend_Db_Select::SQL_UNION_ALL);
-            }
-
-            if ($this->isTotals()) {
-                // calculate total
-                $cloneSelect = clone $this->getSelect();
-                $this->getSelect()->reset()->from($cloneSelect, $this->getAggregatedColumns());
-            } else {
-                // add sorting
-                $this->getSelect()->order(['period ASC', 'views_num DESC']);
-            }
-        }
-
-        return $this;
+        return 'views_num';
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php
index 61ef8da7318b61e154fc7dad6f37d572512dfd21..c1e8adeeee7d3c16a6bb8984939699ef12c1ef48 100644
--- a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php
@@ -12,43 +12,23 @@ class CollectionTest extends \PHPUnit_Framework_TestCase
      */
     protected $_model;
 
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_factoryMock;
-
     protected function setUp()
     {
         $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $this->_factoryMock = $this->getMock(
-            '\Magento\Reports\Model\DateFactory',
-            ['create'],
-            [],
-            '',
-            false
-        );
-        $arguments = ['dateFactory' => $this->_factoryMock];
-        $this->_model = $helper->getObject('Magento\Reports\Model\Resource\Report\Collection', $arguments);
+        $this->_model = $helper->getObject('Magento\Reports\Model\Resource\Report\Collection');
     }
 
     public function testGetIntervalsWithoutSpecifiedPeriod()
     {
-        $startDate = date('m/d/Y', strtotime('-3 day'));
-        $endDate = date('m/d/Y', strtotime('+3 day'));
+        $startDate = new \DateTime('-3 day');
+        $endDate = new \DateTime('+3 day');
         $this->_model->setInterval($startDate, $endDate);
 
-        $startDateMock = $this->getMock('Magento\Framework\Stdlib\DateTime\DateInterface', [], [], '', false);
-        $endDateMock = $this->getMock('Magento\Framework\Stdlib\DateTime\DateInterface', [], [], '', false);
-        $map = [[$startDate, null, null, $startDateMock], [$endDate, null, null, $endDateMock]];
-        $this->_factoryMock->expects($this->exactly(2))->method('create')->will($this->returnValueMap($map));
-        $startDateMock->expects($this->once())->method('compare')->with($endDateMock)->will($this->returnValue(true));
-
         $this->assertEquals(0, $this->_model->getSize());
     }
 
     public function testGetIntervalsWithoutSpecifiedInterval()
     {
-        $this->_factoryMock->expects($this->never())->method('create');
         $this->assertEquals(0, $this->_model->getSize());
     }
 }
diff --git a/app/code/Magento/Review/Block/Customer/ListCustomer.php b/app/code/Magento/Review/Block/Customer/ListCustomer.php
index c8caacb6a0afc776b9fc4f034ce3d558a09cfe2f..30a856c8384f419fb2e11d46bbdf888c7c3940ac 100644
--- a/app/code/Magento/Review/Block/Customer/ListCustomer.php
+++ b/app/code/Magento/Review/Block/Customer/ListCustomer.php
@@ -168,7 +168,7 @@ class ListCustomer extends \Magento\Customer\Block\Account\Dashboard
      */
     public function dateFormat($date)
     {
-        return $this->formatDate($date, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        return $this->formatDate($date, \IntlDateFormatter::SHORT);
     }
 
     /**
diff --git a/app/code/Magento/Review/Block/Customer/Recent.php b/app/code/Magento/Review/Block/Customer/Recent.php
index 1adc0a3e587adb8685148f3c1f2ab82069025da8..bbb8cf71cb44bb7af39c2ca26cb7d8984c1a20ba 100644
--- a/app/code/Magento/Review/Block/Customer/Recent.php
+++ b/app/code/Magento/Review/Block/Customer/Recent.php
@@ -150,7 +150,7 @@ class Recent extends \Magento\Framework\View\Element\Template
      */
     public function dateFormat($date)
     {
-        return $this->formatDate($date, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        return $this->formatDate($date, \IntlDateFormatter::SHORT);
     }
 
     /**
diff --git a/app/code/Magento/Review/Block/Customer/View.php b/app/code/Magento/Review/Block/Customer/View.php
index 19414ec64e8f0d8a03a4dfb5a70f38110bcc9efa..7ca1541ba9842f61f3454f6a4a1babc4a46cf5db 100644
--- a/app/code/Magento/Review/Block/Customer/View.php
+++ b/app/code/Magento/Review/Block/Customer/View.php
@@ -196,7 +196,7 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
      */
     public function dateFormat($date)
     {
-        return $this->formatDate($date, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_LONG);
+        return $this->formatDate($date, \IntlDateFormatter::LONG);
     }
 
     /**
diff --git a/app/code/Magento/Review/Block/View.php b/app/code/Magento/Review/Block/View.php
index 12adedfd3542c7763211e04a7c89648e186411f6..f596e4c5042507bb29743a1a1b341e78e6fbe197 100644
--- a/app/code/Magento/Review/Block/View.php
+++ b/app/code/Magento/Review/Block/View.php
@@ -56,6 +56,7 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
     ) {
         $this->_voteFactory = $voteFactory;
         $this->_reviewFactory = $reviewFactory;
+        $this->_ratingFactory = $ratingFactory;
 
         parent::__construct(
             $context,
@@ -155,7 +156,7 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
      */
     public function dateFormat($date)
     {
-        return $this->formatDate($date, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_LONG);
+        return $this->formatDate($date, \IntlDateFormatter::LONG);
     }
 
     /**
diff --git a/app/code/Magento/Review/Test/Unit/Model/Resource/Review/Product/CollectionTest.php b/app/code/Magento/Review/Test/Unit/Model/Resource/Review/Product/CollectionTest.php
index cc3683bbe0150c82e36d039f0fa6eb7f4625173b..9e49be6d7aa6cfc9f28cd1a65c618bee8b59dd7a 100644
--- a/app/code/Magento/Review/Test/Unit/Model/Resource/Review/Product/CollectionTest.php
+++ b/app/code/Magento/Review/Test/Unit/Model/Resource/Review/Product/CollectionTest.php
@@ -25,8 +25,8 @@ class CollectionTest extends \PHPUnit_Framework_TestCase
     public function setUp()
     {
         $attribute = $this->getMock('\Magento\Eav\Model\Entity\Attribute\AbstractAttribute', null, [], '', false);
-        $eavConfig = $this->getMock('\Magento\Eav\Model\Config', ['getCollectionAttribute'], [], '', false);
-        $eavConfig->expects($this->any())->method('getCollectionAttribute')->will($this->returnValue($attribute));
+        $eavConfig = $this->getMock('\Magento\Eav\Model\Config', ['getAttribute'], [], '', false);
+        $eavConfig->expects($this->any())->method('getAttribute')->will($this->returnValue($attribute));
         $this->dbSelect = $this->getMock('Magento\Framework\DB\Select', ['where', 'from', 'join'], [], '', false);
         $this->dbSelect->expects($this->any())->method('from')->will($this->returnSelf());
         $this->dbSelect->expects($this->any())->method('join')->will($this->returnSelf());
diff --git a/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml b/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml
index c261d742a3cd9f9fcca46c2d73af0b8ef28540b1..0fbed76b6a38335059ecea71b5b475044a95be20 100644
--- a/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml
+++ b/app/code/Magento/Review/view/adminhtml/templates/rating/form.phtml
@@ -7,8 +7,12 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div class="message info">
-    <div><?php echo __('Please specify a rating title for a store, or we\'ll just use the default value.'); ?></div>
+<div class="admin__scope">
+    <div class="messages">
+        <div class="message message-notice message-in-rating-edit">
+            <div><?php echo __('Please specify a rating title for a store, or we\'ll just use the default value.'); ?></div>
+        </div>
+    </div>
 </div>
 
 <?php echo $block->getFormHtml() ?>
diff --git a/app/code/Magento/Review/view/frontend/templates/product/view/list.phtml b/app/code/Magento/Review/view/frontend/templates/product/view/list.phtml
index 95e8ad599d4f9b8cbde68ee0d6e3aeef0ca8b89c..431dcf446e66e6f073e4c01b347b71a5d616ccf3 100644
--- a/app/code/Magento/Review/view/frontend/templates/product/view/list.phtml
+++ b/app/code/Magento/Review/view/frontend/templates/product/view/list.phtml
@@ -15,7 +15,7 @@
 ?>
 <?php
     $_items = $block->getReviewsCollection()->getItems();
-    $format = $block->getDateFormat() ?: 'short';
+    $format = $block->getDateFormat() ?: \IntlDateFormatter::SHORT;
 ?>
 <?php if (count($_items)):?>
 <div class="block review-list" id="customer-reviews">
diff --git a/app/code/Magento/Review/view/frontend/templates/view.phtml b/app/code/Magento/Review/view/frontend/templates/view.phtml
index eca7fab7d8bb6b55a5c8249919d65b90cff1a8a1..32a21a40bdacc6eb56c5e26c649857737b20a395 100644
--- a/app/code/Magento/Review/view/frontend/templates/view.phtml
+++ b/app/code/Magento/Review/view/frontend/templates/view.phtml
@@ -9,7 +9,7 @@
 ?>
 <?php if ($block->getProductData()->getId()): ?>
 <div class="product-review">
-    <div class="page-title">
+    <div class="page-title-wrapper">
         <h1><?php echo __('Review Details') ?></h1>
     </div>
     <div class="product-img-box">
diff --git a/app/code/Magento/Rule/Model/AbstractModel.php b/app/code/Magento/Rule/Model/AbstractModel.php
index d5e0837b37343f988217fe030b9b5e3a61d438d6..786635077534fa972b45ed061ec5b28cf2b0142f 100644
--- a/app/code/Magento/Rule/Model/AbstractModel.php
+++ b/app/code/Magento/Rule/Model/AbstractModel.php
@@ -294,7 +294,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel
     /**
      * Set specified data to current rule.
      * Set conditions and actions recursively.
-     * Convert dates into \Zend_Date.
+     * Convert dates into \DateTime.
      *
      * @param array $data
      * @return array
@@ -320,15 +320,10 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel
                 }
             } else {
                 /**
-                 * Convert dates into \Zend_Date
+                 * Convert dates into \DateTime
                  */
                 if (in_array($key, ['from_date', 'to_date']) && $value) {
-                    $value = $this->_localeDate->date(
-                        $value,
-                        \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT,
-                        null,
-                        false
-                    );
+                    $value = new \DateTime($value);
                 }
                 $this->setData($key, $value);
             }
@@ -367,10 +362,10 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel
         }
 
         if ($fromDate && $toDate) {
-            $fromDate = new \Magento\Framework\Stdlib\DateTime\Date($fromDate, \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT);
-            $toDate = new \Magento\Framework\Stdlib\DateTime\Date($toDate, \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT);
+            $fromDate = new \DateTime($fromDate);
+            $toDate = new \DateTime($toDate);
 
-            if ($fromDate->compare($toDate) === 1) {
+            if ($fromDate > $toDate) {
                 $result[] = __('End Date must follow Start Date.');
             }
         }
diff --git a/app/code/Magento/Rule/Model/Condition/AbstractCondition.php b/app/code/Magento/Rule/Model/Condition/AbstractCondition.php
index 6bc5bd70d37e79939021284eda38e6c0a4812bb2..022aad5ad09fbde4638dc8d6586ed4d17bc3e5f3 100644
--- a/app/code/Magento/Rule/Model/Condition/AbstractCondition.php
+++ b/app/code/Magento/Rule/Model/Condition/AbstractCondition.php
@@ -397,14 +397,7 @@ abstract class AbstractCondition extends \Magento\Framework\Object implements Co
         if ($this->getInputType() == 'date' && !$this->getIsValueParsed()) {
             // date format intentionally hard-coded
             $this->setValue(
-                $this->_localeDate->date(
-                    $this->getData('value'),
-                    \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT,
-                    null,
-                    false
-                )->toString(
-                    \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT
-                )
+                (new \DateTime($this->getData('value')))->format('Y-m-d H:i:s')
             );
             $this->setIsValueParsed(true);
         }
diff --git a/app/code/Magento/Rule/Model/Resource/AbstractResource.php b/app/code/Magento/Rule/Model/Resource/AbstractResource.php
index ee4a276ec1d9a6a0e593b0cf1035371619fdfb6b..070086bac80eb2a4cbc2f919416553c64518b5ee 100644
--- a/app/code/Magento/Rule/Model/Resource/AbstractResource.php
+++ b/app/code/Magento/Rule/Model/Resource/AbstractResource.php
@@ -44,15 +44,15 @@ abstract class AbstractResource extends \Magento\Framework\Model\Resource\Db\Abs
     public function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
     {
         $fromDate = $object->getFromDate();
-        if ($fromDate instanceof \Zend_Date) {
-            $object->setFromDate($fromDate->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT));
+        if ($fromDate instanceof \DateTime) {
+            $object->setFromDate($fromDate->format('Y-m-d H:i:s'));
         } elseif (!is_string($fromDate) || empty($fromDate)) {
             $object->setFromDate(null);
         }
 
         $toDate = $object->getToDate();
-        if ($toDate instanceof \Zend_Date) {
-            $object->setToDate($toDate->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT));
+        if ($toDate instanceof \DateTime) {
+            $object->setToDate($toDate->format('Y-m-d H:i:s'));
         } elseif (!is_string($toDate) || empty($toDate)) {
             $object->setToDate(null);
         }
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create.php
index 8994b27ec75a14f27ebb46276de99fc079883219..ee801eba084fce513635ba84253fe69424f2a65f 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create.php
@@ -91,8 +91,8 @@ class Create extends \Magento\Backend\Block\Widget\Form\Container
     protected function _prepareLayout()
     {
         $pageTitle = $this->getLayout()->createBlock('Magento\Sales\Block\Adminhtml\Order\Create\Header')->toHtml();
-        if (is_object($this->getLayout()->getBlock('page-title'))) {
-            $this->getLayout()->getBlock('page-title')->setPageTitle($pageTitle);
+        if (is_object($this->getLayout()->getBlock('page.title'))) {
+            $this->getLayout()->getBlock('page.title')->setPageTitle($pageTitle);
         }
         return parent::_prepareLayout();
     }
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php
index 79951197f43d1873903d949891c2d41042a1fc46..8cafee1d7ee9dee625337a965c94d7ff2c7fe5cd 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Form/AbstractForm.php
@@ -202,7 +202,7 @@ abstract class AbstractForm extends \Magento\Sales\Block\Adminhtml\Order\Create\
                     $element->setValues($options);
                 } elseif ($inputType == 'date') {
                     $format = $this->_localeDate->getDateFormat(
-                        \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+                        \IntlDateFormatter::SHORT
                     );
                     $element->setImage($this->getViewFileUrl('images/grid-cal.png'));
                     $element->setDateFormat($format);
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Creditmemo/View.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Creditmemo/View.php
index ae12ef9bb44dead928fea0a4509fe53b1cf9b1e0..c319a376a1bb36434a953c5ce7bcc221acf79852 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Creditmemo/View.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Creditmemo/View.php
@@ -137,7 +137,7 @@ class View extends \Magento\Backend\Block\Widget\Form\Container
         return __(
             'Credit Memo #%1 | %3 | %2 (%4)',
             $this->getCreditmemo()->getIncrementId(),
-            $this->formatDate($this->getCreditmemo()->getCreatedAtDate(), 'medium', true),
+            $this->formatDate($this->getCreditmemo()->getCreatedAtDate(), \IntlDateFormatter::MEDIUM, true),
             $this->getCreditmemo()->getStateName(),
             $emailSent
         );
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Invoice/View.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Invoice/View.php
index 10732ed47b941bce313c3ed0c71111ab9855d309..de3a079d0894f9233392a3d1a6a652372aec7313 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Invoice/View.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Invoice/View.php
@@ -198,7 +198,7 @@ class View extends \Magento\Backend\Block\Widget\Form\Container
             $this->getInvoice()->getIncrementId(),
             $this->getInvoice()->getStateName(),
             $emailSent,
-            $this->formatDate($this->getInvoice()->getCreatedAtDate(), 'medium', true)
+            $this->formatDate($this->getInvoice()->getCreatedAtDate(), \IntlDateFormatter::MEDIUM, true)
         );
     }
 
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
index b295e9a275f211d005768a55b5cef9e8b89dbb8f..ffa72f42735bf81a8f1f96d6db68e0c9e58d96d3 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
@@ -287,7 +287,7 @@ class View extends \Magento\Backend\Block\Widget\Form\Container
             'Order # %1 %2 | %3',
             $this->getOrder()->getRealOrderId(),
             $_extOrderId,
-            $this->formatDate($this->getOrder()->getCreatedAtDate(), 'medium', true)
+            $this->formatDate($this->getOrder()->getCreatedAtDate(), \IntlDateFormatter::MEDIUM, true)
         );
     }
 
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
index 70de5fcfcd62d0b3a9b7b521ee2ed4cdba153e06..7e1f2548c0bf45fa36436c9825dabde5466cc32c 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
@@ -141,18 +141,21 @@ class History extends \Magento\Backend\Block\Template implements \Magento\Backen
      *
      * @param array $item
      * @param string $dateType
-     * @param string $format
+     * @param int $format
      * @return string
      */
-    public function getItemCreatedAt(array $item, $dateType = 'date', $format = 'medium')
+    public function getItemCreatedAt(array $item, $dateType = 'date', $format = \IntlDateFormatter::MEDIUM)
     {
         if (!isset($item['created_at'])) {
             return '';
         }
+        $date = $item['created_at'] instanceof \DateTimeInterface
+            ? $item['created_at']
+            : new \DateTime($item['created_at']);
         if ('date' === $dateType) {
-            return $this->formatDate($item['created_at'], $format);
+            return $this->_localeDate->formatDateTime($date, $format, $format);
         }
-        return $this->formatTime($item['created_at'], $format);
+        return $this->_localeDate->formatDateTime($date, \IntlDateFormatter::NONE, $format);
     }
 
     /**
@@ -198,7 +201,7 @@ class History extends \Magento\Backend\Block\Template implements \Magento\Backen
      *
      * @param string $label
      * @param bool $notified
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface $created
+     * @param \DateTime $created
      * @param string $comment
      * @return array
      */
@@ -293,7 +296,7 @@ class History extends \Magento\Backend\Block\Template implements \Magento\Backen
         $createdAtA = $a['created_at'];
         $createdAtB = $b['created_at'];
 
-        /** @var $createdAta \Magento\Framework\Stdlib\DateTime\DateInterface */
+        /** @var $createdAtA \DateTime */
         if ($createdAtA->getTimestamp() == $createdAtB->getTimestamp()) {
             return 0;
         }
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail.php b/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail.php
index 04882426490e8275ed64312142c4ac334b093c76..8eed288ca073359398473eb23997870c5b03db36 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Transactions/Detail.php
@@ -84,7 +84,7 @@ class Detail extends \Magento\Backend\Block\Widget\Container
             $this->_txn->getTxnId(),
             $this->formatDate(
                 $this->_txn->getCreatedAt(),
-                \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM,
+                \IntlDateFormatter::MEDIUM,
                 true
             )
         );
@@ -119,7 +119,7 @@ class Detail extends \Magento\Backend\Block\Widget\Container
             $this->_txn->getCreatedAt()
         ) ? $this->formatDate(
             $this->_txn->getCreatedAt(),
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM,
+            \IntlDateFormatter::MEDIUM,
             true
         ) : __(
             'N/A'
diff --git a/app/code/Magento/Sales/Controller/Download.php b/app/code/Magento/Sales/Controller/Download.php
deleted file mode 100644
index dc2d31878bc5373fc1741c7cde49ac563bf7bc9c..0000000000000000000000000000000000000000
--- a/app/code/Magento/Sales/Controller/Download.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Sales\Controller;
-
-use Magento\Framework\App\Action\Context;
-use Magento\Sales\Model\Download as ModelDownload;
-
-/**
- * Sales controller for download purposes
- */
-class Download extends \Magento\Framework\App\Action\Action
-{
-    /**
-     * @var \Magento\Sales\Model\Download
-     */
-    protected $_download;
-
-    /**
-     * @param Context $context
-     * @param ModelDownload $download
-     */
-    public function __construct(Context $context, ModelDownload $download)
-    {
-        $this->_download = $download;
-        parent::__construct($context);
-    }
-}
diff --git a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
index aa5e0541fc896b059a7e881506ddbab43f50b03e..de556cb7ebf21884aad8570bae246277e60e8014 100644
--- a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
+++ b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
@@ -7,9 +7,9 @@
 namespace Magento\Sales\Controller\Download;
 
 use Magento\Sales\Model\Download;
-use Magento\Backend\App\Action\Context;
+use Magento\Framework\App\Action\Context;
 use Magento\Catalog\Model\Product\Type\AbstractType;
-use Magento\Backend\Model\View\Result\ForwardFactory;
+use Magento\Framework\Controller\Result\ForwardFactory;
 
 class DownloadCustomOption extends \Magento\Framework\App\Action\Action
 {
@@ -49,8 +49,8 @@ class DownloadCustomOption extends \Magento\Framework\App\Action\Action
     public function execute()
     {
         $quoteItemOptionId = $this->getRequest()->getParam('id');
-        /** @var $option \Magento\Sales\Model\Quote\Item\Option */
-        $option = $this->_objectManager->create('Magento\Sales\Model\Quote\Item\Option')->load($quoteItemOptionId);
+        /** @var $option \Magento\Quote\Model\Quote\Item\Option */
+        $option = $this->_objectManager->create('Magento\Quote\Model\Quote\Item\Option')->load($quoteItemOptionId);
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
 
diff --git a/app/code/Magento/Sales/Model/AbstractModel.php b/app/code/Magento/Sales/Model/AbstractModel.php
index 3020f422be2b68bcffce2ec51ad0ad3ba67ae530..b87d43e79f47cb97ceedab4e14bdd9babb13e002 100644
--- a/app/code/Magento/Sales/Model/AbstractModel.php
+++ b/app/code/Magento/Sales/Model/AbstractModel.php
@@ -69,23 +69,23 @@ abstract class AbstractModel extends AbstractExtensibleModel
     /**
      * Get object created at date affected current active store timezone
      *
-     * @return \Magento\Framework\Stdlib\DateTime\Date
+     * @return \DateTime
      */
     public function getCreatedAtDate()
     {
-        return $this->_localeDate->date($this->dateTime->toTimestamp($this->getCreatedAt()), null, null, true);
+        return $this->_localeDate->date(new \DateTime($this->getCreatedAt()));
     }
 
     /**
      * Get object created at date affected with object store timezone
      *
-     * @return \Magento\Framework\Stdlib\DateTime\Date
+     * @return \DateTime
      */
     public function getCreatedAtStoreDate()
     {
         return $this->_localeDate->scopeDate(
             $this->getStore(),
-            $this->dateTime->toTimestamp($this->getCreatedAt()),
+            $this->getCreatedAt(),
             true
         );
     }
diff --git a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportBestsellersData.php b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportBestsellersData.php
index 4ddd51afacdce51cc71737d3ad35e607249ba469..e31a27b612e148a9e34f777baad7d0c03960342c 100644
--- a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportBestsellersData.php
+++ b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportBestsellersData.php
@@ -52,7 +52,7 @@ class AggregateSalesReportBestsellersData
     {
         $this->localeResolver->emulate(0);
         $currentDate = $this->localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->sub(new \DateInterval('PT25H'));
         $this->bestsellersFactory->create()->aggregate($date);
         $this->localeResolver->revert();
     }
diff --git a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportInvoicedData.php b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportInvoicedData.php
index 53d85b00206a7608f704aca21ad9ffd232b0b664..d849812c97b37f4a6887a5a60522b6619709b578 100644
--- a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportInvoicedData.php
+++ b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportInvoicedData.php
@@ -49,7 +49,7 @@ class AggregateSalesReportInvoicedData
     {
         $this->localeResolver->emulate(0);
         $currentDate = $this->localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->sub(new \DateInterval('PT25H'));
         $this->invoicedFactory->create()->aggregate($date);
         $this->localeResolver->revert();
     }
diff --git a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportOrderData.php b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportOrderData.php
index 7e9ca13863aa433fc1ede090f8f346ed63230256..441a48958f665106fa9284a4444768c41faf8991 100644
--- a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportOrderData.php
+++ b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportOrderData.php
@@ -49,7 +49,7 @@ class AggregateSalesReportOrderData
     {
         $this->localeResolver->emulate(0);
         $currentDate = $this->localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->sub(new \DateInterval('PT25H'));
         $this->orderFactory->create()->aggregate($date);
         $this->localeResolver->revert();
     }
diff --git a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportRefundedData.php b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportRefundedData.php
index 2246aad3738ee6c67e25aa027e6879c9ecc051be..22c1d56d9a2e905bb49316aa424d0470e2e51987 100644
--- a/app/code/Magento/Sales/Model/Observer/AggregateSalesReportRefundedData.php
+++ b/app/code/Magento/Sales/Model/Observer/AggregateSalesReportRefundedData.php
@@ -52,7 +52,7 @@ class AggregateSalesReportRefundedData
     {
         $this->localeResolver->emulate(0);
         $currentDate = $this->localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->sub(new \DateInterval('PT25H'));
         $this->refundedFactory->create()->aggregate($date);
         $this->localeResolver->revert();
     }
diff --git a/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php b/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
index e3c1f1c0010394db484f35a9f7c0f50ee1cb4034..87bac857aa6a9a0d82fef129c00f159491d0dcd0 100644
--- a/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
+++ b/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
@@ -390,7 +390,7 @@ abstract class AbstractPdf extends \Magento\Framework\Object
             $page->drawText(__('Order # ') . $order->getRealOrderId(), 35, $top -= 30, 'UTF-8');
         }
         $page->drawText(
-            __('Order Date: ') . $this->_localeDate->formatDate($order->getCreatedAtStoreDate(), 'medium', false),
+            __('Order Date: ') . $this->_localeDate->formatDate($order->getCreatedAtStoreDate(), \IntlDateFormatter::MEDIUM, false),
             35,
             $top -= 15,
             'UTF-8'
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Bestsellers.php b/app/code/Magento/Sales/Model/Resource/Report/Bestsellers.php
index 0526cdde459118b67e5fc53041ab18421d54d68a..43d3b6911072c8b354383f9dd07b9598a9d12eeb 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Bestsellers.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Bestsellers.php
@@ -88,8 +88,8 @@ class Bestsellers extends AbstractReport
     /**
      * Aggregate Orders data by order created at
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      * @throws \Exception
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
@@ -100,7 +100,6 @@ class Bestsellers extends AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $adapter = $this->_getWriteAdapter();
         //$this->_getWriteAdapter()->beginTransaction();
 
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Bestsellers/Collection.php b/app/code/Magento/Sales/Model/Resource/Report/Bestsellers/Collection.php
index 1b4f298b38dfb66a8269ffc6bd1c1245e715f06c..3e08b43e5e835b5d0d86b04409eee4102e5f1ac3 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Bestsellers/Collection.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Bestsellers/Collection.php
@@ -9,9 +9,7 @@
 namespace Magento\Sales\Model\Resource\Report\Bestsellers;
 
 /**
- * Report bestsellers collection
- *
- * @author      Magento Core Team <core@magentocommerce.com>
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Collection extends \Magento\Sales\Model\Resource\Report\Collection\AbstractCollection
 {
@@ -23,12 +21,23 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
     protected $_ratingLimit = 5;
 
     /**
-     * Columns for select
+     * Selected columns
      *
      * @var array
      */
     protected $_selectedColumns = [];
 
+    /**
+     * Tables per period
+     *
+     * @var array
+     */
+    protected $tableForPeriod = [
+        'daily'   => 'sales_bestsellers_aggregated_daily',
+        'monthly' => 'sales_bestsellers_aggregated_monthly',
+        'yearly'  => 'sales_bestsellers_aggregated_yearly',
+    ];
+
     /**
      * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
      * @param \Psr\Log\LoggerInterface $logger
@@ -45,12 +54,33 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
         \Magento\Sales\Model\Resource\Report $resource,
         $connection = null
     ) {
-        $resource->init('sales_bestsellers_aggregated_daily');
+        $resource->init($this->getTableByAggregationPeriod('daily'));
         parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $resource, $connection);
     }
 
     /**
-     * Retrieve columns for select
+     * Return ordered filed
+     *
+     * @return string
+     */
+    protected function getOrderedField()
+    {
+        return 'qty_ordered';
+    }
+
+    /**
+     * Return table per period
+     *
+     * @param string $period
+     * @return mixed
+     */
+    public function getTableByAggregationPeriod($period)
+    {
+        return $this->tableForPeriod[$period];
+    }
+
+    /**
+     * Retrieve selected columns
      *
      * @return array
      */
@@ -64,7 +94,7 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
             } else {
                 $this->_selectedColumns = [
                     'period' => sprintf('MAX(%s)', $adapter->getDateFormatSql('period', '%Y-%m-%d')),
-                    'qty_ordered' => 'SUM(qty_ordered)',
+                    $this->getOrderedField() => 'SUM(' . $this->getOrderedField() . ')',
                     'product_id' => 'product_id',
                     'product_name' => 'MAX(product_name)',
                     'product_price' => 'MAX(product_price)',
@@ -90,8 +120,8 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
     {
         $adapter = $this->getConnection();
         $cols = $this->_getSelectedColumns();
-        $cols['qty_ordered'] = 'SUM(qty_ordered)';
-        $sel = $adapter->select()->from(
+        $cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
+        $select = $adapter->select()->from(
             $this->getResource()->getMainTable(),
             $cols
         )->where(
@@ -103,18 +133,18 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
         )->group(
             'product_id'
         )->order(
-            'qty_ordered DESC'
+            $this->getOrderedField() . ' DESC'
         )->limit(
             $this->_ratingLimit
         );
 
-        $this->_applyStoresFilterToSelect($sel);
+        $this->_applyStoresFilterToSelect($select);
 
-        return $sel;
+        return $select;
     }
 
     /**
-     * Add selected data
+     * Init collection select
      *
      * @return $this
      */
@@ -125,12 +155,12 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
         // if grouping by product, not by period
         if (!$this->_period) {
             $cols = $this->_getSelectedColumns();
-            $cols['qty_ordered'] = 'SUM(qty_ordered)';
+            $cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
             if ($this->_from || $this->_to) {
-                $mainTable = $this->getTable('sales_bestsellers_aggregated_daily');
+                $mainTable = $this->getTable($this->getTableByAggregationPeriod('daily'));
                 $select->from($mainTable, $cols);
             } else {
-                $mainTable = $this->getTable('sales_bestsellers_aggregated_yearly');
+                $mainTable = $this->getTable($this->getTableByAggregationPeriod('yearly'));
                 $select->from($mainTable, $cols);
             }
 
@@ -147,7 +177,7 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
             )->group(
                 'product_id'
             )->order(
-                'qty_ordered ' . \Magento\Framework\DB\Select::SQL_DESC
+                $this->getOrderedField() . ' ' . \Magento\Framework\DB\Select::SQL_DESC
             )->limit(
                 $this->_ratingLimit
             );
@@ -156,13 +186,13 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
         }
 
         if ('year' == $this->_period) {
-            $mainTable = $this->getTable('sales_bestsellers_aggregated_yearly');
+            $mainTable = $this->getTable($this->getTableByAggregationPeriod('yearly'));
             $select->from($mainTable, $this->_getSelectedColumns());
         } elseif ('month' == $this->_period) {
-            $mainTable = $this->getTable('sales_bestsellers_aggregated_monthly');
+            $mainTable = $this->getTable($this->getTableByAggregationPeriod('monthly'));
             $select->from($mainTable, $this->_getSelectedColumns());
         } else {
-            $mainTable = $this->getTable('sales_bestsellers_aggregated_daily');
+            $mainTable = $this->getTable($this->getTableByAggregationPeriod('daily'));
             $select->from($mainTable, $this->_getSelectedColumns());
         }
         if (!$this->isTotals()) {
@@ -219,7 +249,7 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
      * Redeclare parent method for applying filters after parent method
      * but before adding unions and calculating totals
      *
-     * @return $this
+     * @return $this|\Magento\Framework\Model\Resource\Db\Collection\AbstractCollection
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
@@ -231,74 +261,64 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
         $this->_applyStoresFilter();
 
         if ($this->_period) {
-            //
             $selectUnions = [];
 
             // apply date boundaries (before calling $this->_applyDateRangeFilter())
-            $dtFormat = \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT;
-            $periodFrom = !is_null($this->_from) ? new \Magento\Framework\Stdlib\DateTime\Date($this->_from, $dtFormat) : null;
-            $periodTo = !is_null($this->_to) ? new \Magento\Framework\Stdlib\DateTime\Date($this->_to, $dtFormat) : null;
+            $periodFrom = !is_null($this->_from) ? new \DateTime($this->_from) : null;
+            $periodTo = !is_null($this->_to) ? new \DateTime($this->_to) : null;
             if ('year' == $this->_period) {
                 if ($periodFrom) {
                     // not the first day of the year
-                    if ($periodFrom->toValue(\Zend_Date::MONTH) != 1 || $periodFrom->toValue(\Zend_Date::DAY) != 1) {
-                        $dtFrom = $periodFrom->getDate();
+                    if ($periodFrom->format('m') != 1 || $periodFrom->format('d') != 1) {
+                        $dtFrom = clone $periodFrom;
                         // last day of the year
-                        $dtTo = $periodFrom->getDate()->setMonth(12)->setDay(31);
-                        if (!$periodTo || $dtTo->isEarlier($periodTo)) {
+                        $dtTo = clone $periodFrom;
+                        $dtTo->setDate($dtTo->format('Y'), 12, 31);
+                        if (!$periodTo || $dtTo < $periodTo) {
                             $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
+                                $dtFrom->format('Y-m-d'),
+                                $dtTo->format('Y-m-d')
                             );
 
                             // first day of the next year
-                            $this->_from = $periodFrom->getDate()->addYear(
-                                1
-                            )->setMonth(
-                                1
-                            )->setDay(
-                                1
-                            )->toString(
-                                $dtFormat
-                            );
+                            $this->_from = clone $periodFrom;
+                            $this->_from->modify('+1 year');
+                            $this->_from->setDate($this->_from->format('Y'), 1, 1);
+                            $this->_from = $this->_from->format('Y-m-d');
                         }
                     }
                 }
 
                 if ($periodTo) {
                     // not the last day of the year
-                    if ($periodTo->toValue(\Zend_Date::MONTH) != 12 || $periodTo->toValue(\Zend_Date::DAY) != 31) {
-                        $dtFrom = $periodTo->getDate()->setMonth(1)->setDay(1);
+                    if ($periodTo->format('m') != 12 || $periodTo->format('d') != 31) {
+                        $dtFrom = clone $periodTo;
+                        $dtFrom->setDate($dtFrom->format('Y'), 1, 1);
                         // first day of the year
-                        $dtTo = $periodTo->getDate();
-                        if (!$periodFrom || $dtFrom->isLater($periodFrom)) {
+                        $dtTo = clone $periodTo;
+                        if (!$periodFrom || $dtFrom > $periodFrom) {
                             $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
+                                $dtFrom->format('Y-m-d'),
+                                $dtTo->format('Y-m-d')
                             );
 
                             // last day of the previous year
-                            $this->_to = $periodTo->getDate()->subYear(
-                                1
-                            )->setMonth(
-                                12
-                            )->setDay(
-                                31
-                            )->toString(
-                                $dtFormat
-                            );
+                            $this->_to = clone $periodTo;
+                            $this->_to->modify('-1 year');
+                            $this->_to->setDate($this->_to->format('Y'), 12, 31);
+                            $this->_to = $this->_to->format('Y-m-d');
                         }
                     }
                 }
 
                 if ($periodFrom && $periodTo) {
                     // the same year
-                    if ($periodFrom->toValue(\Zend_Date::YEAR) == $periodTo->toValue(\Zend_Date::YEAR)) {
-                        $dtFrom = $periodFrom->getDate();
-                        $dtTo = $periodTo->getDate();
+                    if ($periodTo->format('Y') == $periodFrom->format('Y')) {
+                        $dtFrom = clone $periodFrom;
+                        $dtTo = clone $periodTo;
                         $selectUnions[] = $this->_makeBoundarySelect(
-                            $dtFrom->toString($dtFormat),
-                            $dtTo->toString($dtFormat)
+                            $dtFrom->format('Y-m-d'),
+                            $dtTo->format('Y-m-d')
                         );
 
                         $this->getSelect()->where('1<>1');
@@ -307,57 +327,60 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
             } elseif ('month' == $this->_period) {
                 if ($periodFrom) {
                     // not the first day of the month
-                    if ($periodFrom->toValue(\Zend_Date::DAY) != 1) {
-                        $dtFrom = $periodFrom->getDate();
+                    if ($periodFrom->format('d') != 1) {
+                        $dtFrom = clone $periodFrom;
                         // last day of the month
-                        $dtTo = $periodFrom->getDate()->addMonth(1)->setDay(1)->subDay(1);
-                        if (!$periodTo || $dtTo->isEarlier($periodTo)) {
+                        $dtTo = clone $periodFrom;
+                        $dtTo->modify('+1 month');
+                        $dtTo->setDate($dtTo->format('Y'), $dtTo->format('m'), 1);
+                        $dtTo->modify('-1 day');
+                        if (!$periodTo || $dtTo < $periodTo) {
                             $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
+                                $dtFrom->format('Y-m-d'),
+                                $dtTo->format('Y-m-d')
                             );
 
                             // first day of the next month
-                            $this->_from = $periodFrom->getDate()->addMonth(1)->setDay(1)->toString($dtFormat);
+                            $this->_from = clone $periodFrom;
+                            $this->_from->modify('+1 month');
+                            $this->_from->setDate($this->_from->format('Y'), $this->_from->format('m'), 1);
+                            $this->_from = $this->_from->format('Y-m-d');
                         }
                     }
                 }
 
                 if ($periodTo) {
                     // not the last day of the month
-                    if ($periodTo->toValue(\Zend_Date::DAY) != $periodTo->toValue(\Zend_Date::MONTH_DAYS)) {
-                        $dtFrom = $periodTo->getDate()->setDay(1);
+                    if ($periodTo->format('d') != $periodTo->format('t')) {
+                        $dtFrom = clone $periodTo;
+                        $dtFrom->setDate($dtFrom->format('Y'), $dtFrom->format('m'), 1);
                         // first day of the month
-                        $dtTo = $periodTo->getDate();
-                        if (!$periodFrom || $dtFrom->isLater($periodFrom)) {
+                        $dtTo = clone $periodTo;
+                        if (!$periodFrom || $dtFrom > $periodFrom) {
                             $selectUnions[] = $this->_makeBoundarySelect(
-                                $dtFrom->toString($dtFormat),
-                                $dtTo->toString($dtFormat)
+                                $dtFrom->format('Y-m-d'),
+                                $dtTo->format('Y-m-d')
                             );
 
                             // last day of the previous month
-                            $this->_to = $periodTo->getDate()->setDay(1)->subDay(1)->toString($dtFormat);
+                            $this->_to = clone $periodTo;
+                            $this->_to->setDate($this->_to->format('Y'), $this->_to->format('m'), 1);
+                            $this->_to->modify('-1 day');
+                            $this->_to = $this->_to->format('Y-m-d');
                         }
                     }
                 }
 
                 if ($periodFrom && $periodTo) {
                     // the same month
-                    if ($periodFrom->toValue(
-                        \Zend_Date::YEAR
-                    ) == $periodTo->toValue(
-                        \Zend_Date::YEAR
-                    ) && $periodFrom->toValue(
-                        \Zend_Date::MONTH
-                    ) == $periodTo->toValue(
-                        \Zend_Date::MONTH
-                    )
+                    if ($periodTo->format('Y') == $periodFrom->format('Y') &&
+                        $periodTo->format('m') == $periodFrom->format('m')
                     ) {
-                        $dtFrom = $periodFrom->getDate();
-                        $dtTo = $periodTo->getDate();
+                        $dtFrom = clone $periodFrom;
+                        $dtTo = clone $periodTo;
                         $selectUnions[] = $this->_makeBoundarySelect(
-                            $dtFrom->toString($dtFormat),
-                            $dtTo->toString($dtFormat)
+                            $dtFrom->format('Y-m-d'),
+                            $dtTo->format('Y-m-d')
                         );
 
                         $this->getSelect()->where('1<>1');
@@ -384,7 +407,7 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
                 $this->getSelect()->reset()->from($cloneSelect, $this->getAggregatedColumns());
             } else {
                 // add sorting
-                $this->getSelect()->order(['period ASC', 'qty_ordered DESC']);
+                $this->getSelect()->order(['period ASC', $this->getOrderedField() . ' DESC']);
             }
         }
 
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Collection/AbstractCollection.php b/app/code/Magento/Sales/Model/Resource/Report/Collection/AbstractCollection.php
index 8aac1910ca9c3ea6e388323fbb30e85cc707f879..c9bf2f1b8d4d324af67f2fb80a5585b064e1cb55 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Collection/AbstractCollection.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Collection/AbstractCollection.php
@@ -25,7 +25,7 @@ class AbstractCollection extends \Magento\Reports\Model\Resource\Report\Collecti
      * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
      * @param \Magento\Framework\Event\ManagerInterface $eventManager
      * @param \Magento\Sales\Model\Resource\Report $resource
-     * @param \Zend_Db_Adapter_Abstract $connection
+     * @param null $connection
      */
     public function __construct(
         \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Invoiced.php b/app/code/Magento/Sales/Model/Resource/Report/Invoiced.php
index ceb64d2658b67dcee2baf3763617168bb9290570..a56ed1886c43aaba41cf50910f59dc557bb020c8 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Invoiced.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Invoiced.php
@@ -25,8 +25,8 @@ class Invoiced extends AbstractReport
     /**
      * Aggregate Invoiced data
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
@@ -35,7 +35,6 @@ class Invoiced extends AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $this->_aggregateByOrderCreatedAt($from, $to);
         $this->_aggregateByInvoiceCreatedAt($from, $to);
 
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Order.php b/app/code/Magento/Sales/Model/Resource/Report/Order.php
index c128a2ba3794b24c492aac5a618f1cac2b58718f..d1b7d02ad6395e2d9bb3d86f9619b935f1b93c63 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Order.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Order.php
@@ -68,8 +68,8 @@ class Order extends AbstractReport
     /**
      * Aggregate Orders data
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Order/Createdat.php b/app/code/Magento/Sales/Model/Resource/Report/Order/Createdat.php
index 0de50475f360db0bbc4491d5b1e3ce398f02a118..0847e441109157daef079ae1a7fa26a854f16ad2 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Order/Createdat.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Order/Createdat.php
@@ -25,8 +25,8 @@ class Createdat extends \Magento\Sales\Model\Resource\Report\AbstractReport
     /**
      * Aggregate Orders data by order created at
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
@@ -38,8 +38,8 @@ class Createdat extends \Magento\Sales\Model\Resource\Report\AbstractReport
      * Aggregate Orders data by custom field
      *
      * @param string $aggregationField
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      * @throws \Exception
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
@@ -51,7 +51,6 @@ class Createdat extends \Magento\Sales\Model\Resource\Report\AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $adapter = $this->_getWriteAdapter();
 
         $adapter->beginTransaction();
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Order/Updatedat.php b/app/code/Magento/Sales/Model/Resource/Report/Order/Updatedat.php
index e8f108cf853d8ff78485bc05859fac933f24444e..be7479f9335fd9d1b123f1dd931b0c2e1d54d118 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Order/Updatedat.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Order/Updatedat.php
@@ -25,8 +25,8 @@ class Updatedat extends Createdat
     /**
      * Aggregate Orders data by order updated at
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Refunded.php b/app/code/Magento/Sales/Model/Resource/Report/Refunded.php
index 80a0f43fb28d2daab8e2edfe8b0754a95336b731..0444f43b81077debe6c38d03212da25dacc1e8e6 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Refunded.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Refunded.php
@@ -25,8 +25,8 @@ class Refunded extends AbstractReport
     /**
      * Aggregate Refunded data
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
@@ -35,7 +35,6 @@ class Refunded extends AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $this->_aggregateByOrderCreatedAt($from, $to);
         $this->_aggregateByRefundCreatedAt($from, $to);
 
diff --git a/app/code/Magento/Sales/Model/Resource/Report/Shipping.php b/app/code/Magento/Sales/Model/Resource/Report/Shipping.php
index 5d041dac931ef9b188f71d3d873e7b12e10de816..c19e0beb5746f0dd7f5824a0a5d36ece648cdc1a 100644
--- a/app/code/Magento/Sales/Model/Resource/Report/Shipping.php
+++ b/app/code/Magento/Sales/Model/Resource/Report/Shipping.php
@@ -25,8 +25,8 @@ class Shipping extends AbstractReport
     /**
      * Aggregate Shipping data
      *
-     * @param string|int|\Zend_Date|array|null $from
-     * @param string|int|\Zend_Date|array|null $to
+     * @param string|int|\DateTime|array|null $from
+     * @param string|int|\DateTime|array|null $to
      * @return $this
      */
     public function aggregate($from = null, $to = null)
@@ -35,7 +35,6 @@ class Shipping extends AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $this->_aggregateByOrderCreatedAt($from, $to);
         $this->_aggregateByShippingCreatedAt($from, $to);
         $this->_setFlagData(\Magento\Reports\Model\Flag::REPORT_SHIPPING_FLAG_CODE);
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportBestsellersDataTest.php b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportBestsellersDataTest.php
index 37952d0a6371d4720f6ef9151e59da1f7efec014..3321509f914b3c0bbf83e886a850fc8d7c61b20e 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportBestsellersDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportBestsellersDataTest.php
@@ -71,26 +71,21 @@ class AggregateSalesReportBestsellersDataTest extends \PHPUnit_Framework_TestCas
     /**
      * Set up aggregate
      *
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return \DateTime
      */
     protected function setupAggregate()
     {
-        $date = $this->getMock('Magento\Framework\Stdlib\DateTime\Date', ['emulate', 'revert'], [], '', false);
         $this->localeResolverMock->expects($this->once())
             ->method('emulate')
             ->with(0);
         $this->localeResolverMock->expects($this->once())
             ->method('revert');
-        $dateMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $dateMock->expects($this->once())
-            ->method('subHour')
-            ->with(25)
-            ->will($this->returnValue($date));
+
+        $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
         $this->localeDateMock->expects($this->once())
             ->method('date')
-            ->will($this->returnValue($dateMock));
+            ->will($this->returnValue($date));
+
         return $date;
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportInvoicedDataTest.php b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportInvoicedDataTest.php
index 65d1c9daa266edb437b79e2dba421298b992cac6..602754ba9e2818ea3f73b714eaa6c3728129eb0f 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportInvoicedDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportInvoicedDataTest.php
@@ -71,26 +71,21 @@ class AggregateSalesReportInvoicedDataTest extends \PHPUnit_Framework_TestCase
     /**
      * Set up aggregate
      *
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return \DateTime
      */
     protected function setupAggregate()
     {
-        $date = $this->getMock('Magento\Framework\Stdlib\DateTime\Date', ['emulate', 'revert'], [], '', false);
         $this->localeResolverMock->expects($this->once())
             ->method('emulate')
             ->with(0);
         $this->localeResolverMock->expects($this->once())
             ->method('revert');
-        $dateMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $dateMock->expects($this->once())
-            ->method('subHour')
-            ->with(25)
-            ->will($this->returnValue($date));
+
+        $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
         $this->localeDateMock->expects($this->once())
             ->method('date')
-            ->will($this->returnValue($dateMock));
+            ->will($this->returnValue($date));
+
         return $date;
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportOrderDataTest.php b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportOrderDataTest.php
index 40279eab419ee75e37829f9e6847bbf550cc2b79..81a719a67187d865403add4a5acd1340ec13eb4e 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportOrderDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportOrderDataTest.php
@@ -71,26 +71,21 @@ class AggregateSalesReportOrderDataTest extends \PHPUnit_Framework_TestCase
     /**
      * Set up aggregate
      *
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return \DateTime
      */
     protected function setupAggregate()
     {
-        $date = $this->getMock('Magento\Framework\Stdlib\DateTime\Date', ['emulate', 'revert'], [], '', false);
         $this->localeResolverMock->expects($this->once())
             ->method('emulate')
             ->with(0);
         $this->localeResolverMock->expects($this->once())
             ->method('revert');
-        $dateMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $dateMock->expects($this->once())
-            ->method('subHour')
-            ->with(25)
-            ->will($this->returnValue($date));
+
+        $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
         $this->localeDateMock->expects($this->once())
             ->method('date')
-            ->will($this->returnValue($dateMock));
+            ->will($this->returnValue($date));
+
         return $date;
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportRefundedDataTest.php b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportRefundedDataTest.php
index d940eb59451f582d202883c6bbb25caa45f85150..2525439b893d638def14128b73c2e24955ea0855 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportRefundedDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Observer/AggregateSalesReportRefundedDataTest.php
@@ -71,26 +71,21 @@ class AggregateSalesReportRefundedDataTest extends \PHPUnit_Framework_TestCase
     /**
      * Set up aggregate
      *
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return \DateTime
      */
     protected function setupAggregate()
     {
-        $date = $this->getMock('Magento\Framework\Stdlib\DateTime\Date', ['emulate', 'revert'], [], '', false);
         $this->localeResolverMock->expects($this->once())
             ->method('emulate')
             ->with(0);
         $this->localeResolverMock->expects($this->once())
             ->method('revert');
-        $dateMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $dateMock->expects($this->once())
-            ->method('subHour')
-            ->with(25)
-            ->will($this->returnValue($date));
+
+        $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
         $this->localeDateMock->expects($this->once())
             ->method('date')
-            ->will($this->returnValue($dateMock));
+            ->will($this->returnValue($date));
+
         return $date;
     }
 }
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
index 1ff0f10b343809274aab54f356416e00f0adcf40..06ed8294a589594008322138d77bef3c7c24de64 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
@@ -9,11 +9,10 @@
     <update handle="sales_order_create_customer_block"/>
     <head>
         <link src="Magento_Sales::js/bootstrap/order-create-index.js"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
     </head>
     <update handle="sales_order_create_item_price"/>
     <body>
-        <referenceBlock name="page-title">
+        <referenceBlock name="page.title">
             <action method="setTitleId">
                 <argument translate="true" name="id" xsi:type="string">order-header</argument>
             </action>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml
index 1bf4bf4d532264c265029b2f1d80b0956a5a3e20..1a4008b367a0a185a321a2366c30aa9f079cc787 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/address/form.phtml
@@ -7,11 +7,14 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div class="message message-info">
-    <div class="message-inner">
-        <div class="message-content"><?php echo __('Changing address information will not recalculate shipping, tax or other order amount.') ?></div>
+<div class="admin__scope">
+    <div class="message message-notice">
+        <div class="message-inner">
+            <div class="message-content"><?php echo __('Changing address information will not recalculate shipping, tax or other order amount.') ?></div>
+        </div>
     </div>
 </div>
+
 <fieldset class="fieldset">
     <legend class="legend">
         <span><?php echo $block->getHeaderText() ?></span>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
index 2547a415f2cae044f9a2f618d4044ee3887964c4..cbe3b6f40e5b08784d20e03f978f0940d9ee0ddc 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
@@ -27,8 +27,8 @@
     <ul class="note-list">
     <?php foreach ($_entity->getCommentsCollection(true) as $_comment): ?>
         <li>
-            <span class="note-list-date"><?php echo $block->formatDate($_comment->getCreatedAtDate(), 'medium') ?></span>
-            <span class="note-list-time"><?php echo $block->formatTime($_comment->getCreatedAtDate(), 'medium') ?></span>
+            <span class="note-list-date"><?php echo $block->formatDate($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
+            <span class="note-list-time"><?php echo $block->formatTime($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
             <span class="note-list-customer">
                 <?php echo __('Customer') ?>
                 <?php if ($_comment->getIsCustomerNotified()): ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/address.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/address.phtml
index c85158c2511b1b78829b4d8aadecea73e5ab43df..abab97a13d08bb763ea20884263497b39b127874 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/address.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/address.phtml
@@ -50,15 +50,17 @@ endif; ?>
                 <?php //endif; ?>
                 <?php endforeach; ?>
             </select>
-        </div>
-        <?php if ($block->getIsShipping()): ?>
-            <label for="order-shipping_same_as_billing" class="no-float">
+            <p>
+            <?php if ($block->getIsShipping()): ?>
                 <input type="checkbox" id="order-shipping_same_as_billing" name="shipping_same_as_billing" onclick="order.setShippingAsBilling(this.checked)" <?php if ($block->getIsAsBilling()): ?>checked<?php endif; ?>/>
-                <?php echo __('Same As Billing Address') ?>
-            </label>
-        <?php else: ?>
-            &nbsp;
-        <?php endif; ?>
+                <label for="order-shipping_same_as_billing" class="no-float">
+                    <?php echo __('Same As Billing Address') ?>
+                </label>
+            <?php else: ?>
+                &nbsp;
+            <?php endif; ?>
+            </p>
+        </div>
     </div>
 
     <div class="order-address" id="<?php echo $_fieldsContainerId ?>">
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
index 164721ce9d173c65d407d9ab84c334564827b1eb..4b552dfa576a3575f71e04c75f4c8afc195548bb 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
@@ -21,11 +21,13 @@
                 <?php $_code = $_rate->getCode() ?>
                 <li>
                    <?php if ($_rate->getErrorMessage()): ?>
-                        <div class="messages">
-                            <div class="message error">
-                                <div><?php echo $block->escapeHtml($_rate->getErrorMessage()) ?></div>
-                            </div>
-                        </div>
+                       <div class="admin__scope">
+                           <div class="messages">
+                               <div class="message message-error error">
+                                   <div><?php echo $block->escapeHtml($_rate->getErrorMessage()) ?></div>
+                               </div>
+                           </div>
+                       </div>
                    <?php else: ?>
                         <?php $_checked = $block->isMethodActive($_code) ? 'checked="checked"' : '' ?>
                         <input <?php echo $_radioProperty ?> value="<?php echo $_code ?>" id="s_method_<?php echo $_code ?>" <?php echo $_checked ?>/>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
index 13e01ff7b101a5a91faa4b42220091a5510bea88..a202b3aa0dcee89d76652153dadcd23cb3e2476a 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
@@ -39,8 +39,8 @@
     <ul class="note-list">
     <?php foreach ($block->getOrder()->getStatusHistoryCollection(true) as $_item): ?>
         <li>
-            <span class="note-list-date"><?php echo $block->formatDate($_item->getCreatedAtDate(), 'medium') ?></span>
-            <span class="note-list-time"><?php echo $block->formatTime($_item->getCreatedAtDate(), 'medium') ?></span>
+            <span class="note-list-date"><?php echo $block->formatDate($_item->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
+            <span class="note-list-time"><?php echo $block->formatTime($_item->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
             <span class="note-list-status"><?php echo $_item->getStatusLabel() ?></span>
             <span class="note-list-customer">
                 <?php echo __('Customer') ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
index cedcfdd1ea109fff61129463c65baa20e837627b..fbcdaf14723840f56efa7b8ea620fd93f629d4f1 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
@@ -10,8 +10,8 @@
 <?php /** @var $block \Magento\Sales\Block\Adminhtml\Order\View\Info */ ?>
 <?php $_order = $block->getOrder() ?>
 <?php
-$orderAdminDate = $block->formatDate($_order->getCreatedAtDate(), 'medium', true);
-$orderStoreDate = $block->formatDate($_order->getCreatedAtStoreDate(), 'medium', true);
+$orderAdminDate = $block->formatDate($_order->getCreatedAtDate(), \IntlDateFormatter::MEDIUM, true);
+$orderStoreDate = $block->formatDate($_order->getCreatedAtStoreDate(), \IntlDateFormatter::MEDIUM, true);
 ?>
 
 <?php /* the opening and closing divs of these two clearfixes are in app\code\core\Mage\Adminhtml\view\adminhtml\sales\order\invoice\create\form.phtml */?>
@@ -43,7 +43,7 @@ $orderStoreDate = $block->formatDate($_order->getCreatedAtStoreDate(), 'medium',
                 </tr>
                 <?php if ($orderAdminDate != $orderStoreDate):?>
                 <tr>
-                    <th><?php echo __('Order Date (%1)', $_order->getCreatedAtStoreDate()->getTimezone()) ?></th>
+                    <th><?php echo __('Order Date (%1)', $_order->getCreatedAtStoreDate()->getTimezone()->getName()) ?></th>
                     <td><?php echo $orderStoreDate ?></td>
                 </tr>
                 <?php endif;?>
diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/giftmessage.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/giftmessage.js
index 3d00cf7c934edcf0554d693129912f1493ad77f8..c589e3f6d3beb13fbae4ae1ec11a24b08284d3fe 100644
--- a/app/code/Magento/Sales/view/adminhtml/web/order/create/giftmessage.js
+++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/giftmessage.js
@@ -159,8 +159,23 @@ GiftOptionsPopup.prototype = {
             autoOpen:   false,
             modal:      true,
             resizable:  false,
+            dialogClass: 'gift-options-popup',
             minWidth:   500,
-            dialogClass: 'gift-options-popup'
+            width:      '75%',
+            position: {
+                my: 'left+12.5% top',
+                at: 'center top',
+                of: 'body'
+            },
+            open: function () {
+                jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
+            },
+            close: function() {
+                jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+            }
         });
     },
 
diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js b/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js
index b2ab3345c5b57ed7850a7c3ecda810560a30ca98..06ee87a09018b3bcd7ec7448ee6eba15498891dc 100644
--- a/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js
+++ b/app/code/Magento/Sales/view/adminhtml/web/order/edit/message.js
@@ -52,14 +52,31 @@ define([
                     title:       $.mage.__('Edit Order'),
                     modal:       true,
                     resizable:   false,
-                    width:       500,
+                    width:       '75%',
+                    dialogClass: 'edit-order-popup',
+                    position: {
+                        my: 'left top',
+                        at: 'center top',
+                        of: 'body'
+                    },
+                    open: function () {
+                        jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                        var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() - 20;
+                        $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                    },
+                    close: function() {
+                        jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                    },
                     buttons: [{
                         text: $.mage.__('Ok'),
+                        'class': 'action-primary',
                         click: function(){
                             self.redirect();
                         }
                     }, {
                         text: $.mage.__('Cancel'),
+                        'class': 'action-close',
                         click: function(){
                             $(this).dialog('close');
                         }
diff --git a/app/code/Magento/Sales/view/email/order_new.html b/app/code/Magento/Sales/view/email/order_new.html
index b6d4877836375cd27117cb45ea2e0f85e6def466..0063a9e6b6130d7da0283b378463feb0fec1f075 100644
--- a/app/code/Magento/Sales/view/email/order_new.html
+++ b/app/code/Magento/Sales/view/email/order_new.html
@@ -13,7 +13,7 @@
 "var store.getFrontendName()":"Store Name",
 "store url=\"customer/account/\"":"Customer Account Url",
 "var order.increment_id":"Order Id",
-"var order.getCreatedAtFormated('long')":"Order Created At (datetime)",
+"var order.getCreatedAtFormated(1)":"Order Created At (datetime)",
 "var order.getBillingAddress().format('html')":"Billing Address",
 "var payment_html":"Payment Details",
 "var order.getShippingAddress().format('html')":"Shipping Address",
@@ -50,7 +50,7 @@ body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;
             </tr>
             <tr>
                 <td>
-                    <h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated('long')}})</small></h2>
+                    <h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated(1)}})</small></h2>
                 </td>
             </tr>
             <tr>
diff --git a/app/code/Magento/Sales/view/email/order_new_guest.html b/app/code/Magento/Sales/view/email/order_new_guest.html
index 53f9120dd9ae29aa1e7c44426613def9e4d20e35..202714ed9b56b496a24d432f14c76ee22abe2af2 100644
--- a/app/code/Magento/Sales/view/email/order_new_guest.html
+++ b/app/code/Magento/Sales/view/email/order_new_guest.html
@@ -12,7 +12,7 @@
 "escapehtml var=$order.getBillingAddress().getName()":"Guest Customer Name",
 "var store.getFrontendName()":"Store Name",
 "var order.increment_id":"Order Id",
-"var order.getCreatedAtFormated('long')":"Order Created At (datetime)",
+"var order.getCreatedAtFormated(1)":"Order Created At (datetime)",
 "var order.getBillingAddress().format('html')":"Billing Address",
 "var payment_html":"Payment Details",
 "var order.getShippingAddress().format('html')":"Shipping Address",
@@ -48,7 +48,7 @@ body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;
             </tr>
             <tr>
                 <td>
-                    <h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated('long')}})</small></h2>
+                    <h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated(1)}})</small></h2>
                 </td>
             </tr>
             <tr>
diff --git a/app/code/Magento/Sales/view/frontend/templates/order/comments.phtml b/app/code/Magento/Sales/view/frontend/templates/order/comments.phtml
index 0a3d4469ac54ced19b18358d08dcfa5ebb8fb49c..4027cb5b2337af1992fdaedcba249cfae04ec113 100644
--- a/app/code/Magento/Sales/view/frontend/templates/order/comments.phtml
+++ b/app/code/Magento/Sales/view/frontend/templates/order/comments.phtml
@@ -18,7 +18,7 @@
         <h3 class="subtitle"><?php echo $block->getTitle() ?></h3>
         <dl class="order comments">
             <?php foreach ($block->getComments() as $_commentItem): ?>
-                <dt class="comment date"><?php echo $block->formatDate($_commentItem->getCreatedAtStoreDate(), 'medium', true) ?></dt>
+                <dt class="comment date"><?php echo $block->formatDate($_commentItem->getCreatedAtStoreDate(), \IntlDateFormatter::MEDIUM, true) ?></dt>
                 <dd class="comment text"><?php echo $block->escapeHtml($_commentItem->getComment()) ?></dd>
             <?php endforeach; ?>
         </dl>
diff --git a/app/code/Magento/Sales/view/frontend/templates/order/order_comments.phtml b/app/code/Magento/Sales/view/frontend/templates/order/order_comments.phtml
index a13cfe16685ab15e55c7806afea62e00fbe17b62..c4bedbcdb5aeb95bd7f5aa7ec17de17de88a8875 100644
--- a/app/code/Magento/Sales/view/frontend/templates/order/order_comments.phtml
+++ b/app/code/Magento/Sales/view/frontend/templates/order/order_comments.phtml
@@ -16,7 +16,7 @@
         <div class="block-content">
             <dl class="order-comments">
                 <?php foreach ($_history as $_historyItem): ?>
-                    <dt class="comment-date"><?php echo $block->formatDate($_historyItem->getCreatedAtStoreDate(), 'medium', true) ?></dt>
+                    <dt class="comment-date"><?php echo $block->formatDate($_historyItem->getCreatedAtStoreDate(), \IntlDateFormatter::MEDIUM, true) ?></dt>
                     <dd class="comment-content"><?php echo $block->escapeHtml($_historyItem->getComment()) ?></dd>
                 <?php endforeach; ?>
             </dl>
diff --git a/app/code/Magento/Sales/view/frontend/templates/order/order_date.phtml b/app/code/Magento/Sales/view/frontend/templates/order/order_date.phtml
index 304aa827e10dda9fb2d6e0bab31b0051b0eb1ccf..4558eccaf040abd7c1af0138ab359ff7dfde1dd7 100644
--- a/app/code/Magento/Sales/view/frontend/templates/order/order_date.phtml
+++ b/app/code/Magento/Sales/view/frontend/templates/order/order_date.phtml
@@ -8,4 +8,4 @@
 
 ?>
 
-<div class="order-date"><?php echo __('<span class="label">Order Date:</span> %1', '<date>' . $block->formatDate($block->getOrder()->getCreatedAtStoreDate(), 'long') . '</date>') ?></div>
+<div class="order-date"><?php echo __('<span class="label">Order Date:</span> %1', '<date>' . $block->formatDate($block->getOrder()->getCreatedAtStoreDate(), \IntlDateFormatter::LONG) . '</date>') ?></div>
diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php
index 66a0d45ed5b022ac73d4f9a762c075575a3d4c99..c0e0d6e522797fce7146788f4c2055a407554ba8 100644
--- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php
+++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Main.php
@@ -257,7 +257,7 @@ class Main extends Generic implements TabInterface
             ]
         );
 
-        $dateFormat = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
+        $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);
         $fieldset->addField(
             'from_date',
             'date',
diff --git a/app/code/Magento/SalesRule/Block/Rss/Discounts.php b/app/code/Magento/SalesRule/Block/Rss/Discounts.php
index 8227baf46e6a117128ab9af7b52e919e7e6a2199..c8691c2c9406d343979a5dcb9d5ec2550f856042 100644
--- a/app/code/Magento/SalesRule/Block/Rss/Discounts.php
+++ b/app/code/Magento/SalesRule/Block/Rss/Discounts.php
@@ -91,14 +91,14 @@ class Discounts extends \Magento\Framework\View\Element\AbstractBlock implements
         /** @var $rule \Magento\SalesRule\Model\Rule */
         foreach ($this->rssModel->getDiscountCollection($websiteId, $customerGroupId) as $rule) {
             $toDate = $rule->getToDate()
-                ? '<br/>Discount End Date: ' . $this->formatDate($rule->getToDate(), 'medium')
+                ? '<br/>Discount End Date: ' . $this->formatDate($rule->getToDate(), \IntlDateFormatter::MEDIUM)
                 : '';
             $couponCode = $rule->getCouponCode() ? '<br/> Coupon Code: ' . $rule->getCouponCode() : '';
 
             $description = sprintf(
                 '<table><tr><td style="text-decoration:none;">%s<br/>Discount Start Date: %s %s %s</td></tr></table>',
                 $rule->getDescription(),
-                $this->formatDate($rule->getFromDate(), 'medium'),
+                $this->formatDate($rule->getFromDate(), \IntlDateFormatter::MEDIUM),
                 $toDate,
                 $couponCode
             );
diff --git a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php
index 80188b18140bfc34b1e555b21df0204ee258200b..493d3cbfaf6f75c99978dde9fe5d7deeff5bb088 100644
--- a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php
+++ b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php
@@ -165,10 +165,8 @@ class Massgenerator extends \Magento\Framework\Model\AbstractModel implements
             } while ($this->getResource()->exists($code));
 
             $expirationDate = $this->getToDate();
-            if ($expirationDate instanceof \Zend_Date) {
-                $expirationDate = $expirationDate->toString(
-                    \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-                );
+            if ($expirationDate instanceof \DateTime) {
+                $expirationDate = $expirationDate->format('Y-m-d H:i:s');
             }
 
             $coupon->setId(null)
diff --git a/app/code/Magento/SalesRule/Model/Observer.php b/app/code/Magento/SalesRule/Model/Observer.php
index a31d559ee54756197e8b6c1137069ad14f17c0ca..1bf3e12e752eb62bb186b8e2584322b02c9865dc 100644
--- a/app/code/Magento/SalesRule/Model/Observer.php
+++ b/app/code/Magento/SalesRule/Model/Observer.php
@@ -157,7 +157,7 @@ class Observer
     {
         $this->_localeResolver->emulate(0);
         $currentDate = $this->_localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->modify('-25 hours');
         $this->_reportRule->aggregate($date);
         $this->_localeResolver->revert();
         return $this;
diff --git a/app/code/Magento/SalesRule/Model/Resource/Coupon.php b/app/code/Magento/SalesRule/Model/Resource/Coupon.php
index cf3c76fbc96a15d89621aae0ad041180cd56a323..31562bda2af036466a2ebd1d0b6a545752e4c322 100644
--- a/app/code/Magento/SalesRule/Model/Resource/Coupon.php
+++ b/app/code/Magento/SalesRule/Model/Resource/Coupon.php
@@ -35,9 +35,9 @@ class Coupon extends \Magento\Framework\Model\Resource\Db\AbstractDb
     {
         if (!$object->getExpirationDate()) {
             $object->setExpirationDate(null);
-        } elseif ($object->getExpirationDate() instanceof \Zend_Date) {
+        } elseif ($object->getExpirationDate() instanceof \DateTimeInterface) {
             $object->setExpirationDate(
-                $object->getExpirationDate()->toString(\Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT)
+                $object->getExpirationDate()->format('Y-m-d H:i:s')
             );
         }
 
@@ -125,10 +125,10 @@ class Coupon extends \Magento\Framework\Model\Resource\Db\AbstractDb
             $updateArray['usage_per_customer'] = $rule->getUsesPerCustomer();
         }
 
-        $ruleNewDate = new \Magento\Framework\Stdlib\DateTime\Date($rule->getToDate());
-        $ruleOldDate = new \Magento\Framework\Stdlib\DateTime\Date($rule->getOrigData('to_date'));
+        $ruleNewDate = new \DateTime($rule->getToDate());
+        $ruleOldDate = new \DateTime($rule->getOrigData('to_date'));
 
-        if ($ruleNewDate->compare($ruleOldDate)) {
+        if ($ruleNewDate != $ruleOldDate) {
             $updateArray['expiration_date'] = $rule->getToDate();
         }
 
diff --git a/app/code/Magento/SalesRule/Model/Resource/Report/Collection.php b/app/code/Magento/SalesRule/Model/Resource/Report/Collection.php
index 4c8dc6f056004a7f75267bb76d73bbbbb9fafe71..96883618eeabdb6c71da9d0d444aff5d6d15f029 100644
--- a/app/code/Magento/SalesRule/Model/Resource/Report/Collection.php
+++ b/app/code/Magento/SalesRule/Model/Resource/Report/Collection.php
@@ -50,8 +50,8 @@ class Collection extends \Magento\Sales\Model\Resource\Report\Collection\Abstrac
      * @param \Psr\Log\LoggerInterface $logger
      * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
      * @param \Magento\Framework\Event\ManagerInterface $eventManager
-     * @param \Magento\Sales\Model\Resource\Report $resource
      * @param \Magento\SalesRule\Model\Resource\Report\RuleFactory $ruleFactory
+     * @param \Magento\Sales\Model\Resource\Report $resource
      * @param mixed $connection
      */
     public function __construct(
diff --git a/app/code/Magento/SalesRule/Model/Resource/Report/Rule/Createdat.php b/app/code/Magento/SalesRule/Model/Resource/Report/Rule/Createdat.php
index 8f87fc3feb640e41759c71091bc638bf37575cc8..09ac004deb982ed5f51a8e537d60a50617bdc763 100644
--- a/app/code/Magento/SalesRule/Model/Resource/Report/Rule/Createdat.php
+++ b/app/code/Magento/SalesRule/Model/Resource/Report/Rule/Createdat.php
@@ -52,8 +52,6 @@ class Createdat extends \Magento\Reports\Model\Resource\Report\AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
-
         $table = $this->getMainTable();
         $sourceTable = $this->getTable('sales_order');
         $adapter = $this->_getWriteAdapter();
diff --git a/app/code/Magento/SalesRule/Model/Rss/Discounts.php b/app/code/Magento/SalesRule/Model/Rss/Discounts.php
index 2a45ca5af889a226671cb7d89f11c6b5a5cb4e76..54b45399455ada22045511adb76365de460eaa6f 100644
--- a/app/code/Magento/SalesRule/Model/Rss/Discounts.php
+++ b/app/code/Magento/SalesRule/Model/Rss/Discounts.php
@@ -42,7 +42,11 @@ class Discounts
     {
         /** @var $collection \Magento\SalesRule\Model\Resource\Rule\Collection */
         $collection = $this->collectionFactory->create();
-        $collection->addWebsiteGroupDateFilter($websiteId, $customerGroupId, $this->dateTime->now(true))
+        $collection->addWebsiteGroupDateFilter(
+            $websiteId,
+            $customerGroupId,
+            (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT)
+        )
             ->addFieldToFilter('is_rss', 1)
             ->setOrder('from_date', 'desc');
         $collection->load();
diff --git a/app/code/Magento/SalesRule/Test/Unit/Block/Rss/DiscountsTest.php b/app/code/Magento/SalesRule/Test/Unit/Block/Rss/DiscountsTest.php
index 768ef3e4bda028936f603269f22c276d42d57b56..1205bfa3273095ee9a3f09cdd8a6d036ff55fb5c 100644
--- a/app/code/Magento/SalesRule/Test/Unit/Block/Rss/DiscountsTest.php
+++ b/app/code/Magento/SalesRule/Test/Unit/Block/Rss/DiscountsTest.php
@@ -181,7 +181,7 @@ class DiscountsTest extends \PHPUnit_Framework_TestCase
         $ruleModel->expects($this->once())->method('getName')->will($this->returnValue($ruleData['name']));
         $this->rssModel->expects($this->any())->method('getDiscountCollection')
             ->will($this->returnValue([$ruleModel]));
-        $this->timezoneInterface->expects($this->any())->method('formatDate')->will($this->returnValue('12/12/14'));
+        $this->timezoneInterface->expects($this->any())->method('formatDateTime')->will($this->returnValue('12/12/14'));
 
         $data = $this->block->getRssData();
 
diff --git a/app/code/Magento/SalesRule/Test/Unit/Model/ObserverTest.php b/app/code/Magento/SalesRule/Test/Unit/Model/ObserverTest.php
index 9a5c7df8ff6db4e04d4fb26845c930258c4dae69..544ee949a91179d5c6b78b00ecf38ee61e246f7c 100644
--- a/app/code/Magento/SalesRule/Test/Unit/Model/ObserverTest.php
+++ b/app/code/Magento/SalesRule/Test/Unit/Model/ObserverTest.php
@@ -249,20 +249,16 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
 
     public function testAggregateSalesReportCouponsData()
     {
-        $dateMock = $this->getMock('Magento\Framework\Stdlib\DateTime\DateInterface', [], [], '', false);
+        $data = new \DateTime();
         $this->localeResolver->expects($this->once())
             ->method('emulate')
             ->with(0);
         $this->localeDate->expects($this->once())
             ->method('date')
-            ->will($this->returnValue($dateMock));
-        $dateMock->expects($this->once())
-            ->method('subHour')
-            ->with(25)
-            ->will($this->returnSelf());
+            ->will($this->returnValue($data));
         $this->reportRule->expects($this->once())
             ->method('aggregate')
-            ->with($dateMock);
+            ->with($data);
         $this->localeResolver->expects($this->once())
             ->method('revert');
 
diff --git a/app/code/Magento/SalesRule/Test/Unit/Model/Rss/DiscountsTest.php b/app/code/Magento/SalesRule/Test/Unit/Model/Rss/DiscountsTest.php
index 7b82b5b9ef08ffbc5aa263527eaa0ef30fab38eb..e0cf41a83ec86ba02f9a60f628dc67a4ecd84dbd 100644
--- a/app/code/Magento/SalesRule/Test/Unit/Model/Rss/DiscountsTest.php
+++ b/app/code/Magento/SalesRule/Test/Unit/Model/Rss/DiscountsTest.php
@@ -23,11 +23,6 @@ class DiscountsTest extends \PHPUnit_Framework_TestCase
      */
     protected $objectManagerHelper;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $dateTime;
-
     /**
      * @var \PHPUnit_Framework_MockObject_MockObject
      */
@@ -35,7 +30,6 @@ class DiscountsTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->dateTime = $this->getMock('Magento\Framework\Stdlib\DateTime');
         $this->collectionFactory = $this->getMock(
             'Magento\SalesRule\Model\Resource\Rule\CollectionFactory',
             ['create'],
@@ -48,7 +42,6 @@ class DiscountsTest extends \PHPUnit_Framework_TestCase
         $this->discounts = $this->objectManagerHelper->getObject(
             'Magento\SalesRule\Model\Rss\Discounts',
             [
-                'dateTime' => $this->dateTime,
                 'collectionFactory' => $this->collectionFactory
             ]
         );
@@ -68,7 +61,6 @@ class DiscountsTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->dateTime->expects($this->once())->method('now');
         $this->collectionFactory->expects($this->once())->method('create')->will($this->returnValue($ruleCollection));
         $ruleCollection->expects($this->once())->method('addWebsiteGroupDateFilter')->will($this->returnSelf());
         $ruleCollection->expects($this->once())->method('addFieldToFilter')->will($this->returnSelf());
diff --git a/app/code/Magento/Shipping/Block/Adminhtml/View.php b/app/code/Magento/Shipping/Block/Adminhtml/View.php
index 70885bfe1de7e4edd45a6802ceed4686f8456624..ad98a7e5a97c95578bf1316e6e567f24de562390 100644
--- a/app/code/Magento/Shipping/Block/Adminhtml/View.php
+++ b/app/code/Magento/Shipping/Block/Adminhtml/View.php
@@ -96,7 +96,7 @@ class View extends \Magento\Backend\Block\Widget\Form\Container
             'Shipment #%1 | %3 (%2)',
             $this->getShipment()->getIncrementId(),
             $emailSent,
-            $this->formatDate($this->getShipment()->getCreatedAtDate(), 'medium', true)
+            $this->formatDate($this->getShipment()->getCreatedAtDate(), \IntlDateFormatter::MEDIUM, true)
         );
     }
 
diff --git a/app/code/Magento/Shipping/Block/Tracking/Popup.php b/app/code/Magento/Shipping/Block/Tracking/Popup.php
index 2959384a80acd7377399d80ca1a36fa266619e9b..0430f049fdb737fef68cb392e2856efc1349fd86 100644
--- a/app/code/Magento/Shipping/Block/Tracking/Popup.php
+++ b/app/code/Magento/Shipping/Block/Tracking/Popup.php
@@ -64,8 +64,8 @@ class Popup extends \Magento\Framework\View\Element\Template
      */
     public function formatDeliveryDate($date)
     {
-        $format = $this->_localeDate->getDateFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM);
-        return $this->_localeDate->date(strtotime($date), \Zend_Date::TIMESTAMP, null, false)->toString($format);
+        $format = $this->_localeDate->getDateFormat(\IntlDateFormatter::MEDIUM);
+        return \IntlDateFormatter::formatObject($this->_localeDate->date(new \DateTime($date)), $format);
     }
 
     /**
@@ -81,8 +81,8 @@ class Popup extends \Magento\Framework\View\Element\Template
             $time = $date . ' ' . $time;
         }
 
-        $format = $this->_localeDate->getTimeFormat(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT);
-        return $this->_localeDate->date(strtotime($time), \Zend_Date::TIMESTAMP, null, false)->toString($format);
+        $format = $this->_localeDate->getTimeFormat(\IntlDateFormatter::SHORT);
+        return \IntlDateFormatter::formatObject($this->_localeDate->date(new \DateTime($time)), $format);
     }
 
     /**
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
index 2318dc57afa398cf78efc77a96486cf4294ce7e3..1a73f56dea862cc478b034816aecc15ef333f603 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
@@ -199,7 +199,7 @@ require([
             <button type="button" class="action-ok disabled SavePackagesBtn" disabled="disabled" onclick="packaging.confirmPackaging();" title="<?php echo __('Products should be added to package(s)')?>">
                 <span><?php echo __('OK') ?></span>
             </button>
-            <button type="button" class="action-cancel" onclick="packaging.cancelPackaging();">
+            <button type="button" class="action-close" onclick="packaging.cancelPackaging();">
                 <span><?php echo __('Cancel') ?></span>
             </button>
         </div>
diff --git a/app/code/Magento/Sitemap/Model/Sitemap.php b/app/code/Magento/Sitemap/Model/Sitemap.php
index 8e0542d141ea130504b334f9ab5748ee541e2104..ffc884eef4af30737b8b567b63bca488a9c7ad03 100644
--- a/app/code/Magento/Sitemap/Model/Sitemap.php
+++ b/app/code/Magento/Sitemap/Model/Sitemap.php
@@ -411,7 +411,7 @@ class Sitemap extends \Magento\Framework\Model\AbstractModel
      */
     protected function _getCurrentDateTime()
     {
-        return $this->dateTime->now();
+        return (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT);
     }
 
     /**
diff --git a/app/code/Magento/Store/Model/App/Emulation.php b/app/code/Magento/Store/Model/App/Emulation.php
index 5b64511218ac279cc0bc1bb8c56a4e73436d9f8a..cf960361e21db45ca103210893d78fde70b45e8c 100644
--- a/app/code/Magento/Store/Model/App/Emulation.php
+++ b/app/code/Magento/Store/Model/App/Emulation.php
@@ -134,7 +134,7 @@ class Emulation extends \Magento\Framework\Object
             \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
             $storeId
         );
-        $this->_localeResolver->setLocaleCode($newLocaleCode);
+        $this->_localeResolver->setLocale($newLocaleCode);
         $this->_translate->setLocale($newLocaleCode);
         $this->_translate->loadData($area);
 
@@ -182,7 +182,7 @@ class Emulation extends \Magento\Framework\Object
                 'store' => $this->_storeManager->getStore()->getStoreId(),
             ]
         )->setInitialLocaleCode(
-            $this->_localeResolver->getLocaleCode()
+            $this->_localeResolver->getLocale()
         );
     }
 
@@ -221,7 +221,7 @@ class Emulation extends \Magento\Framework\Object
         $initialLocaleCode,
         $initialArea = \Magento\Framework\App\Area::AREA_ADMIN
     ) {
-        $this->_localeResolver->setLocaleCode($initialLocaleCode);
+        $this->_localeResolver->setLocale($initialLocaleCode);
         $this->_translate->setLocale($initialLocaleCode);
         $this->_translate->loadData($initialArea);
 
diff --git a/app/code/Magento/Store/Test/Unit/Model/App/EmulationTest.php b/app/code/Magento/Store/Test/Unit/Model/App/EmulationTest.php
index 6a8e42dfaaeb670c577c57bc4b4e4e680f027d8e..3a78de2dee4960fe5675db9b434966cb326dff75 100644
--- a/app/code/Magento/Store/Test/Unit/Model/App/EmulationTest.php
+++ b/app/code/Magento/Store/Test/Unit/Model/App/EmulationTest.php
@@ -141,7 +141,7 @@ class EmulationTest extends \PHPUnit_Framework_TestCase
         $this->storeManagerMock->expects($this->any())->method('getStore')->willReturn($this->storeMock);
         $this->storeMock->expects($this->any())
             ->method('getStoreId')->willReturn($initStore);
-        $this->localeResolverMock->expects($this->any())->method('getLocaleCode')->willReturn($initLocale);
+        $this->localeResolverMock->expects($this->any())->method('getLocale')->willReturn($initLocale);
         $this->inlineConfigMock->expects($this->any())->method('isActive')->willReturn($newInlineTranslate);
         $this->viewDesignMock->expects($this->any())->method('getConfigurationDesignTheme')->willReturn($initTheme);
         $this->scopeConfigMock->expects($this->any())->method('getValue')->willReturn($newLocale);
@@ -150,7 +150,7 @@ class EmulationTest extends \PHPUnit_Framework_TestCase
         $this->storeMock->expects($this->any())->method('getStoreId')->willReturn($initStore);
         $this->inlineTranslationMock->expects($this->any())->method('suspend')->with($newInlineTranslate);
         $this->viewDesignMock->expects($this->any())->method('setDesignTheme')->with($initTheme);
-        $this->localeResolverMock->expects($this->any())->method('setLocaleCode')->with($newLocale);
+        $this->localeResolverMock->expects($this->any())->method('setLocale')->with($newLocale);
         $this->translateMock->expects($this->any())->method('setLocale')->with($newLocale);
         $this->translateMock->expects($this->any())->method('loadData')->with($newArea);
         $this->storeManagerMock->expects($this->any())
@@ -181,7 +181,7 @@ class EmulationTest extends \PHPUnit_Framework_TestCase
         $this->storeManagerMock->expects($this->any())->method('getStore')->willReturn($this->storeMock);
         $this->storeMock->expects($this->once())->method('getStoreId')->willReturn($initialStore);
         $this->localeResolverMock->expects($this->once())
-            ->method('getLocaleCode')
+            ->method('getLocale')
             ->willReturn($initLocale);
 
         $this->model->storeCurrentEnvironmentInfo();
@@ -196,7 +196,7 @@ class EmulationTest extends \PHPUnit_Framework_TestCase
         $this->storeManagerMock->expects($this->once())
             ->method('setCurrentStore')->with($initialStore);
         $this->localeResolverMock->expects($this->once())
-            ->method('setLocaleCode')
+            ->method('setLocale')
             ->with($initLocale);
         $this->translateMock->expects($this->once())
             ->method('setLocale')
diff --git a/app/code/Magento/Tax/Model/Observer.php b/app/code/Magento/Tax/Model/Observer.php
index cc1253efd30a0d508fdb889457ef6c3131e753da..b83a599cd0680764604722dd2d71370c67d3159d 100644
--- a/app/code/Magento/Tax/Model/Observer.php
+++ b/app/code/Magento/Tax/Model/Observer.php
@@ -264,7 +264,7 @@ class Observer
     {
         $this->_localeResolver->emulate(0);
         $currentDate = $this->_localeDate->date();
-        $date = $currentDate->subHour(25);
+        $date = $currentDate->modify('-25 hours');
         /** @var $reportTax \Magento\Tax\Model\Resource\Report\Tax */
         $reportTax = $this->_reportTaxFactory->create();
         $reportTax->aggregate($date);
diff --git a/app/code/Magento/Tax/Model/Resource/Report/Tax/Createdat.php b/app/code/Magento/Tax/Model/Resource/Report/Tax/Createdat.php
index a54cdc3512ce1ca77c7fb3e54f5dbec453325e00..c1e02c6c840655dda3506d1b888769975a404656 100644
--- a/app/code/Magento/Tax/Model/Resource/Report/Tax/Createdat.php
+++ b/app/code/Magento/Tax/Model/Resource/Report/Tax/Createdat.php
@@ -50,7 +50,6 @@ class Createdat extends \Magento\Reports\Model\Resource\Report\AbstractReport
         $from = $this->_dateToUtc($from);
         $to = $this->_dateToUtc($to);
 
-        $this->_checkDates($from, $to);
         $writeAdapter = $this->_getWriteAdapter();
         $writeAdapter->beginTransaction();
 
diff --git a/app/code/Magento/Tax/view/adminhtml/layout/tax_rule_edit.xml b/app/code/Magento/Tax/view/adminhtml/layout/tax_rule_edit.xml
index fa67d8474a7e93779edc1e22485e3c0825e56fca..a0710e8fa63ca9bb31ed8e6294a7f2ebe2f040ae 100644
--- a/app/code/Magento/Tax/view/adminhtml/layout/tax_rule_edit.xml
+++ b/app/code/Magento/Tax/view/adminhtml/layout/tax_rule_edit.xml
@@ -9,7 +9,6 @@
     <head>
         <link src="Magento_Tax::js/bootstrap.js"/>
         <css src="jquery/editableMultiselect/css/jquery.multiselect.css"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
     </head>
     <body>
         <referenceContainer name="content">
diff --git a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml
index 9e59dd766d975d9b758b42890562e3515f8677d2..04c2c6ebcc303436117a56781757b4dab3185c43 100644
--- a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml
+++ b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml
@@ -181,13 +181,27 @@ require([
                 id: '<?php echo $block->getJsId() ?>',
                 minWidth: 560,
                 modal: true,
-                zIndex: 1003,
                 dialogClass: 'tax-rate-popup',
                 resizable: false,
+                width: '75%',
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
+                open: function () {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+                },
+                close: function() {
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
+                },
                 buttons: [{
                     text: '<?php echo __('Save'); ?>',
                     id: '<?php echo $block->getJsId('apply-button') ?>',
-                    'class' :'action-save primary',
+                    'class': 'action-save action-primary',
                     click: function() {
                         $(this).dialogRates('updateItemRate');
                         var itemRate = $(this).dialogRates('option').itemRate,
@@ -233,7 +247,7 @@ require([
                 }, {
                     text: '<?php echo __('Cancel'); ?>',
                     id: '<?php echo $block->getJsId('close-button') ?>',
-                    'class': 'action-cancel',
+                    'class': 'action-close',
                     click: function() {
                         $(this).dialogRates("close");
                         taxRateFormElement.data('validation').clearError();
diff --git a/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme.php b/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme.php
index 9528fcb4220f14d48c693a2f9ea37e51959e2326..7a8b782c137bbb6747d2b4721c3571c6ff2628a8 100644
--- a/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme.php
+++ b/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme.php
@@ -20,8 +20,8 @@ class Theme extends \Magento\Backend\Block\Widget\Grid\Container
         parent::_construct();
         $this->_blockGroup = 'Magento_Theme';
         $this->_controller = 'Adminhtml_System_Design_Theme';
-        if (is_object($this->getLayout()->getBlock('page-title'))) {
-            $this->getLayout()->getBlock('page-title')->setPageTitle('Themes');
+        if (is_object($this->getLayout()->getBlock('page.title'))) {
+            $this->getLayout()->getBlock('page.title')->setPageTitle('Themes');
         }
 
         $this->buttonList->remove('add');
diff --git a/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme/Edit.php b/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme/Edit.php
index 01fe8ab2ec584667fce38322f6bf965e150db692..1820ae3751c837072f316cf234e13690888b62b8 100644
--- a/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme/Edit.php
+++ b/app/code/Magento/Theme/Block/Adminhtml/System/Design/Theme/Edit.php
@@ -43,8 +43,8 @@ class Edit extends \Magento\Backend\Block\Widget\Form\Container
         $this->_controller = 'Adminhtml_System_Design_Theme';
         $this->setId('theme_edit');
 
-        if (is_object($this->getLayout()->getBlock('page-title'))) {
-            $this->getLayout()->getBlock('page-title')->setPageTitle($this->getHeaderText());
+        if (is_object($this->getLayout()->getBlock('page.title'))) {
+            $this->getLayout()->getBlock('page.title')->setPageTitle($this->getHeaderText());
         }
 
         /** @var $theme \Magento\Framework\View\Design\ThemeInterface */
diff --git a/app/code/Magento/Theme/Model/Resource/Design.php b/app/code/Magento/Theme/Model/Resource/Design.php
index 4364a24c8eec8ed77dac90ce4dbd4206e654154e..38782199dcad0b6ef86aef7fbc5f5f881b61bfd3 100644
--- a/app/code/Magento/Theme/Model/Resource/Design.php
+++ b/app/code/Magento/Theme/Model/Resource/Design.php
@@ -66,15 +66,10 @@ class Design extends \Magento\Framework\Model\Resource\Db\AbstractDb
             $object->setDateTo(null);
         }
 
-        if (!is_null(
-            $object->getDateFrom()
-        ) && !is_null(
-            $object->getDateTo()
-        ) && $this->dateTime->toTimestamp(
-            $object->getDateFrom()
-        ) > $this->dateTime->toTimestamp(
-            $object->getDateTo()
-        )
+        if (!is_null($object->getDateFrom())
+            && !is_null($object->getDateTo())
+            && (new \DateTime($object->getDateFrom()))->getTimestamp()
+            > (new \DateTime($object->getDateTo()))->getTimestamp()
         ) {
             throw new \Magento\Framework\Exception\LocalizedException(__('Start date cannot be greater than end date.'));
         }
diff --git a/app/code/Magento/Theme/Model/Resource/Design/Collection.php b/app/code/Magento/Theme/Model/Resource/Design/Collection.php
index 82b97096f8d68894134a59e8a1f5f9d3396bbde9..dda3e02b2fcf331ccb9cc1b04c823a654c6cb0f0 100644
--- a/app/code/Magento/Theme/Model/Resource/Design/Collection.php
+++ b/app/code/Magento/Theme/Model/Resource/Design/Collection.php
@@ -60,7 +60,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac
     /**
      * Add date filter to collection
      *
-     * @param null|int|string|\Zend_Date $date
+     * @param null|int|string|\DateTime $date
      * @return $this
      */
     public function addDateFilter($date = null)
diff --git a/app/code/Magento/Theme/Model/View/Design.php b/app/code/Magento/Theme/Model/View/Design.php
index 3d7e2067cc3c8f42f39bcc009ed507496d5c2704..f839d6ba900f71e2998634aa9e36776bcd863105 100644
--- a/app/code/Magento/Theme/Model/View/Design.php
+++ b/app/code/Magento/Theme/Model/View/Design.php
@@ -247,7 +247,7 @@ class Design implements \Magento\Framework\View\DesignInterface
         if (null === $this->_locale) {
             $this->_locale = $this->objectManager->get('Magento\Framework\Locale\ResolverInterface');
         }
-        return $this->_locale->getLocaleCode();
+        return $this->_locale->getLocale();
     }
 
     /**
diff --git a/app/code/Magento/Theme/Test/Unit/Model/View/DesignTest.php b/app/code/Magento/Theme/Test/Unit/Model/View/DesignTest.php
index dbebb8dc82839d87f1ae3398a865ea3aa5a7f6f7..3c2d253a71790ddf579b6b6a5ab0a734e3fe354d 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/View/DesignTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/View/DesignTest.php
@@ -41,7 +41,7 @@ class DesignTest extends \PHPUnit_Framework_TestCase
         $expected = 'locale';
         $localeMock = $this->getMockForAbstractClass('\Magento\Framework\Locale\ResolverInterface');
         $localeMock->expects($this->once())
-            ->method('getLocaleCode')
+            ->method('getLocale')
             ->will($this->returnValue($expected));
         $this->objectManager->expects($this->once())
             ->method('get')
diff --git a/app/code/Magento/Theme/view/adminhtml/layout/adminhtml_system_design_theme_edit.xml b/app/code/Magento/Theme/view/adminhtml/layout/adminhtml_system_design_theme_edit.xml
index 6df539955bce215d2d936aa46874982f87579706..605ae047411a1585f7971b0153fea30739bb7f7b 100644
--- a/app/code/Magento/Theme/view/adminhtml/layout/adminhtml_system_design_theme_edit.xml
+++ b/app/code/Magento/Theme/view/adminhtml/layout/adminhtml_system_design_theme_edit.xml
@@ -10,7 +10,6 @@
         <css src="jquery/fileUploader/css/jquery.fileupload-ui.css"/>
         <css src="Magento_Theme::css/theme.css"/>
         <css src="prototype/windows/themes/default.css"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
         <link src="Magento_Theme::js/bootstrap.js"/>
     </head>
     <body>
diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml
index 2a22e7631144417cd790fa8fb7dbbd44e5033e38..4965ab5e9c4a86209e1bf58ecaac70e219d12362 100644
--- a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml
+++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-1column.xml
@@ -10,31 +10,39 @@
         <container name="backend.page">
             <container name="after.body.start" as="after.body.start" label="Page Top" before="-"/>
             <container name="page.wrapper" as="page_wrapper" htmlTag="div" htmlClass="page-wrapper">
-                <container name="notification.window" as="notification_window" before="-"/>
-                <container name="global.notices" as="global_notices" after="notification.window"/>
-                <container name="page.header.wrapper" as="page_header_wrapper" after="global.notices" htmlTag="div" htmlClass="page-header-wrapper">
-                    <container name="header" htmlTag="header" htmlClass="page-header"/>
+
+                <container name="notices.wrapper" before="-" htmlClass="notices-wrapper" htmlTag="div">
+                    <container name="notifications" as="notifications" />
+                    <container name="notification.window" as="notification_window" before="-"/>
+                    <container name="global.notices" as="global_notices" after="notification.window"/>
                 </container>
-                <container name="page.menu" as="page.menu" after="page.header.wrapper"/>
-                <container name="notifications" as="notifications" after="page.menu"/>
+
+                <container name="header" after="global.notices" htmlTag="header" htmlClass="page-header"/>
+                <container name="page.menu" as="page.menu" after="header"/>
                 <container name="page.breadcrumbs" after="notifications" as="page.breadcrumbs"/>
 
                 <container name="page.formkey" as="page.formkey"/>
                 <container name="page.js.translate" as="page.js.translate"/>
 
-                <container name="page.content" as="page_content" htmlTag="section" htmlId="anchor-content" htmlClass="page-content">
+                <container name="page.content" as="page_content" htmlTag="main" htmlId="anchor-content" htmlClass="page-content">
                     <container name="main.top" as="main-top" label="main-top"/>
-                    <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages" htmlClass="messages">
-                        <container name="page.messages" as="page.messages"/>
+                    <container name="page.main.actions.wrapper" htmlTag="div" htmlClass="admin__scope">
+                        <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/>
+                    </container>
+                    <container name="message-wrapper.scope" htmlTag="div" htmlClass="admin__scope">
+                        <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages">
+                            <container name="page.messages" as="page.messages"/>
+                        </container>
                     </container>
-                    <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/>
                     <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="col-1-layout">
                        <container name="content" as="content"/>
                     </container>
                 </container>
                 <container name="js" as="js" label="JavaScript"/>
-                <container name="page.footer.wrapper" as="page_footer_wrapper" after="page.content" htmlTag="div" htmlClass="page-footer-wrapper">
-                    <container name="footer" htmlTag="footer" htmlClass="page-footer"/>
+                <container name="page.footer.wrapper" after="page.content" as="page_footer_wrapper" htmlTag="div" htmlClass="admin__scope">
+                    <container htmlTag="footer" htmlClass="page-footer">
+                        <container name="footer" htmlTag="div" htmlClass="page-footer-content row" />
+                    </container>
                 </container>
             </container>
             <container name="before.body.end" as="before_body_end" label="Before Body End" after="-"/>
diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml
index c70a5bba698a541569c08f2ce2792f37e328bb80..4bab4ab9904421b43f9e62910f03fe781f2000ad 100644
--- a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml
+++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-2columns-left.xml
@@ -10,24 +10,30 @@
         <container name="backend.page">
             <container name="after.body.start" as="after.body.start" label="Page Top" before="-"/>
             <container name="page.wrapper" as="page_wrapper" htmlTag="div" htmlClass="page-wrapper">
-                <container name="notification.window" as="notification_window" before="-"/>
-                <container name="global.notices" as="global_notices" after="notification.window"/>
-                <container name="page.header.wrapper" as="page_header_wrapper" after="global.notices" htmlTag="div" htmlClass="page-header-wrapper">
-                    <container name="header" htmlTag="header" htmlClass="page-header"/>
+
+                <container name="notices.wrapper" before="-" htmlClass="notices-wrapper" htmlTag="div">
+                    <container name="notifications" as="notifications" />
+                    <container name="notification.window" as="notification_window" before="-"/>
+                    <container name="global.notices" as="global_notices" after="notification.window"/>
                 </container>
-                <container name="page.menu" as="page.menu" after="page.header.wrapper"/>
-                <container name="notifications" as="notifications" after="page.menu"/>
+
+                <container name="header" after="global.notices" htmlTag="header" htmlClass="page-header"/>
+                <container name="page.menu" as="page.menu" after="header"/>
                 <container name="page.breadcrumbs" after="notifications" as="page.breadcrumbs"/>
 
                 <container name="page.formkey" as="page.formkey"/>
                 <container name="page.js.translate" as="page.js.translate"/>
 
-                <container name="page.content" as="page_content" htmlTag="section" htmlId="anchor-content" htmlClass="page-content">
+                <container name="page.content" as="page_content" htmlTag="main" htmlId="anchor-content" htmlClass="page-content">
                     <container name="main.top" as="main-top" label="main-top"/>
-                    <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages" htmlClass="messages">
-                        <container name="page.messages" as="page.messages"/>
+                    <container name="page.main.actions.wrapper" htmlTag="div" htmlClass="admin__scope">
+                        <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/>
+                    </container>
+                    <container name="message-wrapper.scope" htmlTag="div" htmlClass="admin__scope">
+                        <container name="messages.wrapper" as="messages.wrapper" htmlTag="div" htmlId="messages">
+                            <container name="page.messages" as="page.messages"/>
+                        </container>
                     </container>
-                    <container name="page.main.actions" as="page_main_actions" htmlTag="div" htmlClass="page-main-actions"/>
                     <container name="page.main.container" as="page_main_container" htmlId="page:main-container" htmlTag="div" htmlClass="col-2-left-layout">
                         <container name="main.col" as="main-col" htmlId="container" htmlTag="div" htmlClass="main-col">
                             <container name="content" as="content"/>
@@ -38,8 +44,10 @@
                     </container>
                 </container>
                 <container name="js" as="js" label="JavaScript"/>
-                <container name="page.footer.wrapper" as="page_footer_wrapper" after="page.content" htmlTag="div" htmlClass="page-footer-wrapper">
-                    <container name="footer" htmlTag="footer" htmlClass="page-footer"/>
+                <container name="page.footer.wrapper" after="page.content" as="page_footer_wrapper" htmlTag="div" htmlClass="admin__scope">
+                    <container htmlTag="footer" htmlClass="page-footer">
+                        <container name="footer" htmlTag="div" htmlClass="page-footer-content row" />
+                    </container>
                 </container>
             </container>
             <container name="before.body.end" as="before_body_end" label="Before Body End" after="-"/>
diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5c7c757a560dfd7ec48b78f5701e373d0a85674f
--- /dev/null
+++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
+    <container name="root" htmlTag="section" htmlClass="page-wrapper">
+        <container name="login.header" htmlTag="header" htmlClass="login-header"/>
+        <container name="login.content" htmlTag="div" htmlClass="login-content"/>
+        <container name="login.footer" htmlTag="footer" htmlClass="login-footer"/>
+    </container>
+</layout>
diff --git a/app/code/Magento/Theme/view/adminhtml/templates/title.phtml b/app/code/Magento/Theme/view/adminhtml/templates/title.phtml
index df6f8c81fbdb81c9533c3a4965055b646c2a65a0..986a01292f44d9fb8bcd8c7ab6a5270ba30ee20a 100644
--- a/app/code/Magento/Theme/view/adminhtml/templates/title.phtml
+++ b/app/code/Magento/Theme/view/adminhtml/templates/title.phtml
@@ -11,9 +11,8 @@ $titleId = ($block->getTitleId()) ? ' id="' . $block->getTitleId() . '"' : '';
 $titleClass = ($block->getTitleClass()) ? ' ' . $block->getTitleClass() : '';
 $title = $block->escapeHtml($block->getPageTitle());
 ?>
-<div class="page-title<?php echo $titleClass; ?>">
-    <div class="page-title-inner">
-        <h1 class="title"<?php echo $titleId?>><?php echo $title ?></h1>
-        <?php echo $block->getChildHtml(); ?>
-    </div>
+
+<div class="page-title-wrapper<?php echo $titleClass; ?>">
+    <h1 class="page-title"<?php echo $titleId?>><?php echo $title ?></h1>
+    <?php echo $block->getChildHtml(); ?>
 </div>
diff --git a/app/code/Magento/Theme/view/adminhtml/web/prototype/magento.css b/app/code/Magento/Theme/view/adminhtml/web/prototype/magento.css
index 344536005b44070a572de6f2b2d7f79e0b995e6a..d2cd31b464be4b28d8d0a9ecd3d8c925171bfcac 100644
--- a/app/code/Magento/Theme/view/adminhtml/web/prototype/magento.css
+++ b/app/code/Magento/Theme/view/adminhtml/web/prototype/magento.css
@@ -499,4 +499,4 @@
 
 .insert-title-inner:after {
     clear: both;
-}
\ No newline at end of file
+}
diff --git a/app/code/Magento/Theme/view/frontend/templates/html/skiptarget.phtml b/app/code/Magento/Theme/view/frontend/templates/html/skiptarget.phtml
index 8eebdbebb06e2c48467183d2561d933b0dbb5ae9..4d676a2b5ac8cacdbc983df5d303e503355cd0c3 100644
--- a/app/code/Magento/Theme/view/frontend/templates/html/skiptarget.phtml
+++ b/app/code/Magento/Theme/view/frontend/templates/html/skiptarget.phtml
@@ -8,4 +8,4 @@
 
 $target_id = $block->getTargetId();
 ?>
-<a id="<?php echo $target_id?>" name="<?php echo $target_id?>" tabindex="0"></a>
+<a id="<?php echo $target_id?>" name="<?php echo $target_id?>" tabindex="-1"></a>
diff --git a/app/code/Magento/Theme/view/frontend/templates/html/title.phtml b/app/code/Magento/Theme/view/frontend/templates/html/title.phtml
index 56db5569a498456a8daa94889ca90850e6520cff..a7ee310ea0d86d863211ff314f7a49e1139f1951 100644
--- a/app/code/Magento/Theme/view/frontend/templates/html/title.phtml
+++ b/app/code/Magento/Theme/view/frontend/templates/html/title.phtml
@@ -12,12 +12,19 @@
 $cssClass = $block->getCssClass() ? ' ' . $block->getCssClass() : '';
 $title = '';
 if (trim($block->getPageTitle())) {
-    $title = '<span class="base" data-ui-id="page-title" ' .  $block->getAddBaseAttribute() . '>' . $block->escapeHtml($block->getPageTitle()) . '</span>';
+    $title = '<span class="base" data-ui-id="page-title-wrapper" ' .  $block->getAddBaseAttribute() . '>'
+        . $block->escapeHtml($block->getPageTitle()) . '</span>';
 }
 ?>
 <?php if ($title): ?>
-<div class="page-title<?php echo $cssClass; ?>">
-    <h1 class="title"><?php echo $title ?></h1>
+<div class="page-title-wrapper<?php echo $cssClass; ?>">
+    <h1 class="page-title"
+        <?php if ($block->getId()): ?> id="<?php echo $block->getId();?>" <?php endif; ?>
+        <?php if ($block->getAddBaseAttributeAria()): ?>
+            aria-labelledby="<?php echo $block->getAddBaseAttributeAria(); ?>"
+        <?php endif; ?>>
+        <?php echo $title ?>
+    </h1>
     <?php echo $block->getChildHtml(); ?>
 </div>
 <?php endif; ?>
diff --git a/app/code/Magento/Translation/Model/Resource/String.php b/app/code/Magento/Translation/Model/Resource/String.php
index d33c95badef8ec492f67f03d3abe84a0a5cf7f08..7d6891372bbad5b399c671988fccb190ed27636a 100644
--- a/app/code/Magento/Translation/Model/Resource/String.php
+++ b/app/code/Magento/Translation/Model/Resource/String.php
@@ -181,7 +181,7 @@ class String extends \Magento\Framework\Model\Resource\Db\AbstractDb
     public function deleteTranslate($string, $locale = null, $storeId = null)
     {
         if (is_null($locale)) {
-            $locale = $this->_localeResolver->getLocaleCode();
+            $locale = $this->_localeResolver->getLocale();
         }
 
         $where = ['locale = ?' => $locale, 'string = ?' => $string];
@@ -212,7 +212,7 @@ class String extends \Magento\Framework\Model\Resource\Db\AbstractDb
         $table = $this->getMainTable();
 
         if (is_null($locale)) {
-            $locale = $this->_localeResolver->getLocaleCode();
+            $locale = $this->_localeResolver->getLocale();
         }
 
         if (is_null($storeId)) {
diff --git a/app/code/Magento/Ui/Component/Filter/Type/Date.php b/app/code/Magento/Ui/Component/Filter/Type/Date.php
index fa7a9564032774cf76e01c3078f7a403d7251ed9..90b7e16a4aeeb16e7d70fa2a4da2663a0f4df92e 100644
--- a/app/code/Magento/Ui/Component/Filter/Type/Date.php
+++ b/app/code/Magento/Ui/Component/Filter/Type/Date.php
@@ -6,7 +6,6 @@
 namespace Magento\Ui\Component\Filter\Type;
 
 use Magento\Framework\Locale\ResolverInterface;
-use Magento\Framework\LocaleInterface;
 use Magento\Framework\View\Element\Template\Context as TemplateContext;
 use Magento\Framework\View\Element\UiComponent\ConfigBuilderInterface;
 use Magento\Framework\View\Element\UiComponent\ConfigFactory;
@@ -117,7 +116,7 @@ class Date extends FilterAbstract
                 $value['to'] = $this->convertDate(strtotime($value['to']), $locale);
             }
             $value['datetime'] = true;
-            $value['locale'] = $locale->toString();
+            $value['locale'] = $this->localeResolver->getLocale();
         } else {
             $value = null;
         }
@@ -129,33 +128,16 @@ class Date extends FilterAbstract
      * Convert given date to default (UTC) timezone
      *
      * @param int $date
-     * @param LocaleInterface $locale
-     * @return \Magento\Framework\Stdlib\DateTime\Date|null
+     * @param string $locale
+     * @return \DateTime|null
      */
-    protected function convertDate($date, LocaleInterface $locale)
+    protected function convertDate($date, $locale)
     {
         try {
-            $dateObj = $this->localeDate->date(null, null, $locale, false);
-
-            //set default timezone for store (admin)
-            $dateObj->setTimezone(
-                $this->scopeConfig->getValue(
-                    $this->localeDate->getDefaultTimezonePath(),
-                    \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-                )
-            );
-
-            //set beginning of day
-            $dateObj->setHour(00);
-            $dateObj->setMinute(00);
-            $dateObj->setSecond(00);
-
-            //set date with applying timezone of store
-            $dateObj->set($date, null, $locale);
-
+            $dateObj = $this->localeDate->date(new \DateTime($date), $locale, false);
+            $dateObj->setTime(0, 0, 0);
             //convert store date to default date in UTC timezone without DST
-            $dateObj->setTimezone(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::DEFAULT_TIMEZONE);
-
+            $dateObj->setTimezone(new \DateTimeZone('UTC'));
             return $dateObj;
         } catch (\Exception $e) {
             return null;
diff --git a/app/code/Magento/Ui/Component/Listing.php b/app/code/Magento/Ui/Component/Listing.php
index efd05db22a826931acf8edfae37ce4f25c6cb533..edc8d667758a7396d77b60ba7dcdbe0f10525854 100644
--- a/app/code/Magento/Ui/Component/Listing.php
+++ b/app/code/Magento/Ui/Component/Listing.php
@@ -147,7 +147,7 @@ class Listing extends AbstractView
         foreach ($meta['fields'] as $key => $field) {
             if ($field['data_type'] === 'date') {
                 $field['date_format'] = $this->_localeDate->getDateTimeFormat(
-                    \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM
+                    \IntlDateFormatter::MEDIUM
                 );
             }
 
diff --git a/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php b/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php
index a489bf14e49968ee9be6d91f4035d6626bb775cc..e5f795227c825879d26bb72cd441cdb7c32eaa22 100644
--- a/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php
+++ b/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php
@@ -154,7 +154,7 @@ class ListingTest extends \PHPUnit_Framework_TestCase
         $this->listingView->setData('meta', $meta);
         $this->localeDate->expects($this->any())
             ->method('getDateTimeFormat')
-            ->with('medium')
+            ->with(\IntlDateFormatter::MEDIUM)
             ->willReturn('format_type');
         $options = $this->getMock('Magento\Cms\Ui\DataProvider\Page\Options\PageLayout', [], [], '', false);
         $this->optionsFactory->expects($this->any())
diff --git a/app/code/Magento/Ui/composer.json b/app/code/Magento/Ui/composer.json
index 60a6ded8ec6e28d38070c33d7bf71531b3e310e9..303f152dda5dd73a90eb7292cfb11315ea3af158 100644
--- a/app/code/Magento/Ui/composer.json
+++ b/app/code/Magento/Ui/composer.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "magento/module-eav": "0.42.0-beta11",
diff --git a/app/code/Magento/Ui/view/base/layout/ui_components.xml b/app/code/Magento/Ui/view/base/layout/ui_components.xml
index 0a2a85b793f16b58fe5b21a4fc5dc3b96be55686..ac23d0fefa2995ff3a7a600eae5e92ce8511913c 100644
--- a/app/code/Magento/Ui/view/base/layout/ui_components.xml
+++ b/app/code/Magento/Ui/view/base/layout/ui_components.xml
@@ -155,7 +155,6 @@
                 <item name="extends" xsi:type="string">input</item>
                 <item name="config" xsi:type="array">
                     <item name="input_type" xsi:type="string">email</item>
-                    <item name="addbefore" xsi:type="string">@email:</item>
                 </item>
             </argument>
         </arguments>
diff --git a/app/code/Magento/Ui/view/base/templates/form/default.phtml b/app/code/Magento/Ui/view/base/templates/form/default.phtml
index 7114fa52a1271a1bdf8fc3f5a70422e08b4bc825..f9510c9f9b387857e88dd65c3c4186dacd3bed0c 100644
--- a/app/code/Magento/Ui/view/base/templates/form/default.phtml
+++ b/app/code/Magento/Ui/view/base/templates/form/default.phtml
@@ -15,9 +15,13 @@ $formConfig = $block->getRenderContext()->getConfigBuilder()->toJsonNew($block->
         }
     }
 </script>
+<div class="admin__scope">
 <div data-role="spinner" data-component="<?php echo $block->getDataScope(); ?>.areas" class="grid-loading-mask">
-    <div class="grid-loader"></div>
+    <div class="spinner">
+        <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
+    </div>
 </div>
-<div data-bind="scope: '<?php echo $block->getDataScope(); ?>.areas'" class="entry-edit form-inline">
+</div>
+<div data-bind="scope: '<?php echo $block->getDataScope(); ?>.areas'">
     <!-- ko template: getTemplate() --><!-- /ko -->
 </div>
diff --git a/app/code/Magento/Ui/view/base/templates/form/fieldset/default.phtml b/app/code/Magento/Ui/view/base/templates/form/fieldset/default.phtml
index 772ff693c6424f583cf3326db99061ab140a4cdf..0d814d882b5f9ca4524523847e639d1680bf7516 100644
--- a/app/code/Magento/Ui/view/base/templates/form/fieldset/default.phtml
+++ b/app/code/Magento/Ui/view/base/templates/form/fieldset/default.phtml
@@ -13,15 +13,14 @@ $children = $block->getChildren();
 $content = $block->getContent();
 $ajaxUrl = $block->getAjaxUrl();
 ?>
-
-<div class="fieldset-wrapper-title" tabindex="3" data-bind="click: onClick, keyboard: { 13: toggle }">
+<div class="admin__fieldset-wrapper-title" tabindex="3" data-bind="click: onClick, keyboard: { 13: toggle }">
     <strong class="title">
         <span data-bind="text: label"><?php echo $block->getData('config/label'); ?></span>
     </strong>
 </div>
 
-<div class="fieldset-wrapper-content">
-    <fieldset id="<?php echo $block->getData('index'); ?>" class="fieldset">
+<div class="admin__fieldset-wrapper-content">
+    <fieldset id="<?php echo $block->getData('index'); ?>" class="admin__fieldset">
         <?php if (!empty($content)): ?>
             <?php echo $content; ?>
         <?php endif; ?>
diff --git a/app/code/Magento/Ui/view/base/templates/layout/group/default.phtml b/app/code/Magento/Ui/view/base/templates/layout/group/default.phtml
index 1f764adc5a3adc15090a45689cd819205e7f79a0..c3a67828419eda7d3fd5465d6b45acd1181dd23f 100644
--- a/app/code/Magento/Ui/view/base/templates/layout/group/default.phtml
+++ b/app/code/Magento/Ui/view/base/templates/layout/group/default.phtml
@@ -11,11 +11,11 @@
  */
 
 ?>
-<div class="field form__field <?php echo $block->getIsRequired()?>" data-bind="css: {'required': required}">
-    <label class="label" data-bind="attr: { for: <?php echo $block->getData('index')?> }" for="R1WKK">
+<div class="admin__field <?php echo $block->getIsRequired()?>" data-bind="css: {'required': required}">
+    <label class="admin__field-label" data-bind="attr: { for: <?php echo $block->getData('index')?> }" for="R1WKK">
         <span data-bind="text: element.label"><?php echo $block->getData('label')?></span>
     </label>
-    <div class="control">
+    <div class="admin__field-control">
         <?php if ($block->getChildren()): ?>
             <?php foreach ($block->getChildren() as $child): ?>
             <?php echo $block->renderElement($child['dataType'], ['field_config' => $child]); ?>
diff --git a/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml b/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml
index cc3224cb8def3ae65b1adadd6fc0eabf05c8cf6a..db67e197b9d390fcfde700069d2b232a8e71dcb4 100644
--- a/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml
+++ b/app/code/Magento/Ui/view/base/templates/layout/tabs/nav/default.phtml
@@ -7,8 +7,12 @@
  * @var \Magento\Ui\Component\Layout\Tabs\Nav $block
  */
 ?>
+<div class="admin__scope">
 <div data-role="spinner" data-component="<?php echo $block->getDataScope(); ?>.sections" class="grid-loading-mask">
-    <div class="grid-loader"></div>
+    <div class="spinner">
+        <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
+    </div>
+</div>
 </div>
 <div data-bind="scope: '<?php echo $block->getDataScope(); ?>.sections' " class="ui-tabs">
     <!-- ko template: getTemplate() --><!-- /ko -->
diff --git a/app/code/Magento/Ui/view/base/web/templates/content/content.html b/app/code/Magento/Ui/view/base/web/templates/content/content.html
index 2fd05488003929676db7453d752a15d44ae929dc..cc9ae96bf6d379a2b741b72cf57ba9efa7016624 100644
--- a/app/code/Magento/Ui/view/base/web/templates/content/content.html
+++ b/app/code/Magento/Ui/view/base/web/templates/content/content.html
@@ -7,7 +7,9 @@
 <div data-bind="html: content"></div>
 
 <!--ko if: showSpinner -->
+<div class="admin__scope">
 <div data-role="spinner" class="grid-loading-mask" data-bind="visible: loading">
-    <div class="grid-loader"></div>
+    <div class="spinner"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
+</div>
 </div>
 <!-- /ko -->
diff --git a/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html b/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html
index f514147b5711db205450d0a88c7a92f455038e27..97407fc8c8641a6bcdd3e3d9718ac977549afb4d 100644
--- a/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html
+++ b/app/code/Magento/Ui/view/base/web/templates/fieldset/fieldset.html
@@ -5,18 +5,20 @@
  */
 -->
 <!-- ko if: elems -->
-<div class="fieldset-wrapper" data-bind="css: {'collapsable-wrapper': collapsible, 'opened': opened}">
-    <div class="fieldset-wrapper-title" tabindex="3" data-bind="click: onClick, keyboard: { 13: toggle }">
+<div class="admin__scope">
+<div class="admin__fieldset-wrapper" data-bind="css: {'collapsable-wrapper': collapsible, 'opened': opened}">
+    <div class="admin__fieldset-wrapper-title" tabindex="3" data-bind="click: onClick, keyboard: { 13: toggle }">
         <strong class="title">
             <span data-bind="text: label"></span>
         </strong>
     </div>
-    <div class="fieldset-wrapper-content" data-bind="visible: opened">
-        <fieldset class="fieldset">
+    <div class="admin__fieldset-wrapper-content" data-bind="visible: opened">
+        <fieldset class="admin__fieldset">
         <!-- ko foreach: { data: elems, as: 'element' } -->
             <!-- ko template: element.getTemplate() --><!-- /ko -->
         <!-- /ko -->
         </fieldset>
     </div>
 </div>
+</div>
 <!-- /ko -->
\ No newline at end of file
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/components/collection.html b/app/code/Magento/Ui/view/base/web/templates/form/components/collection.html
index 887031d81c5c94317d7d6ed31d15584978c0b602..5fd7ccc4bfed8874636abd5fa9c154c65ffc6422 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/components/collection.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/components/collection.html
@@ -10,8 +10,8 @@
         <!-- ko foreach: { data: element.elems, as: 'element' } -->
             <li class="address-list-item" data-bind="css: { 'ui-state-active': element.active }, click: activate">
                 <div class="address-list-item-actions">
-                    <button class="action-delete" type="button" data-bind="attr: { title: $parent.removeLabel }, click: $parent.removeChild(element)">
-                        <span data-bind="text: element.removeLabel"></span>
+                    <button class="action-delete" type="button" data-bind="click: $parent.removeChild(element)">
+                        <span data-bind="text: $parent.removeLabel"></span>
                     </button>
                 </div>
                 <!-- ko template: previewTpl --><!-- /ko -->
@@ -22,7 +22,7 @@
         <!-- /ko -->
 
         <li class="address-list-actions last">
-            <button data-bind="attr: { title: element.addLabel }, click: element.addChild" type="button" class="scalable add">
+            <button data-bind="click: element.addChild" type="button" class="scalable add">
                 <span data-bind="text: element.addLabel"></span>
             </button>
         </li>
@@ -30,8 +30,8 @@
     <!-- ko foreach: { data: element.elems, as: 'element' } -->
     <div class="address-item-edit" data-bind="visible: element.active">
         <div class="address-item-edit-content">
-            <fieldset class="fieldset">
-                <legend style="display: none;" class="legend">
+            <fieldset class="admin__fieldset">
+                <legend class="admin__legend">
                     <span data-bind="text: $parent.label"></span>
                 </legend>
                 <br>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html b/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html
index 49044013d22bae2ce07518fff59b5a3143924f8e..1f712a604aba029f64399a5063e0faf8e964a7a3 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html
@@ -4,10 +4,10 @@
  * See COPYING.txt for license details.
  */
 -->
-<div class="form__field choice">
-    <input type="checkbox" class="control-checkbox" data-bind="checked: value, attr: { id: uid, disabled: disabled, name: inputName }, hasFocus: focused">
-    
-    <label class="label" data-bind="checked: value, attr: { for: uid }">
+<div class="admin__field admin__field-option">
+    <input type="checkbox" class="admin__control-checkbox" data-bind="checked: value, attr: { id: uid, disabled: disabled, name: inputName }, hasFocus: focused">
+
+    <label class="admin__field-label" data-bind="checked: value, attr: { for: uid }">
         <!-- ko if: $parent.isSingle() -->
             <span data-bind="text: description"></span>
         <!-- /ko -->
@@ -15,8 +15,8 @@
             <span data-bind="text: description || label"></span>
         <!-- /ko -->
     </label>
-    
+
     <!-- ko if: notice -->
-        <div class="note" data-bind="attr: {id: noticeId}"><span data-bind="text: notice"></span></div>
+        <div class="admin__field-note" data-bind="attr: {id: noticeId}"><span data-bind="text: notice"></span></div>
     <!-- /ko -->
-</div>
\ No newline at end of file
+</div>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/date.html b/app/code/Magento/Ui/view/base/web/templates/form/element/date.html
index 8afe0982185106af260167e151cbf4226a6f7dce..2c3f8d14b2923d8fb45cb1087e49b78af21346da 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/date.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/date.html
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<input class="control-text" type="text" data-bind="
+<input class="admin__control-text" type="text" data-bind="
     hasFocus: focused,
     datepicker: { storage: value, options: options },
     attr: {
@@ -13,4 +13,4 @@
         placeholder: placeholder,
         'aria-describedby': noticeId,
         disabled: disabled
-    }" />
\ No newline at end of file
+    }" />
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/email.html b/app/code/Magento/Ui/view/base/web/templates/form/element/email.html
index 0606cf3016d715bb89f3ad954499c5df9977df86..2fbef67511572a796b9eb2421b49e1e20b52d8d2 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/email.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/email.html
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<input class="control-text" type="email" data-bind="
+<input class="admin__control-text" type="email" data-bind="
     hasFocus: focused,
     value: value,
     attr: {
@@ -13,4 +13,4 @@
         'aria-describedby': noticeId,
         id: uid,
         disabled: disabled
-    }"/>
\ No newline at end of file
+    }"/>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/helper/tooltip.html b/app/code/Magento/Ui/view/base/web/templates/form/element/helper/tooltip.html
index 48c463acd831606f83695a721472558ffe1c439c..c8fa34985fc66ca6c8bbd485edf097440121247c 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/helper/tooltip.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/helper/tooltip.html
@@ -4,10 +4,10 @@
  * See COPYING.txt for license details.
  */
 -->
- <div class="field-tooltip">
-    <a class="field-tooltip-action action-help" target="_blank" tabindex="1" data-bind="attr: {href: tooltip.link}">
+ <div class="admin__field-tooltip">
+    <a class="admin__field-tooltip-action action-help" target="_blank" tabindex="1" data-bind="attr: {href: tooltip.link}">
     </a>
-    <div class="field-tooltip-content">
+    <div class="admin__field-tooltip-content">
         <!-- ko text: tooltip.description --><!-- /ko -->
     </div>
 </div>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/input.html b/app/code/Magento/Ui/view/base/web/templates/form/element/input.html
index bf7b144bc94b2c65acb3a96e630c1f0a73bc2de3..124b398235c2de16665c5adc5665694a9084a3ea 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/input.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/input.html
@@ -4,13 +4,13 @@
  * See COPYING.txt for license details.
  */
 -->
-<input class="control-text" type="text" data-bind="
+<input class="admin__control-text" type="text" data-bind="
     value: value,
     hasFocus: focused,
     attr: {
         name: inputName,
         placeholder: placeholder,
         'aria-describedby': noticeId,
-        id: uid, 
+        id: uid,
         disabled: disabled
-    }" />
\ No newline at end of file
+    }" />
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/media.html b/app/code/Magento/Ui/view/base/web/templates/form/element/media.html
index 27f3271c4028a07791f4283ddd69c2d47d98f8f3..4751836181f622a806f5e7cf93ce818f31f7dc5e 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/media.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/media.html
@@ -4,13 +4,16 @@
  * See COPYING.txt for license details.
  */
 -->
-<input class="control-file" type="file" data-bind="
-    value: value,
-    attr: {
-        name: inputName,
-        id: uid,
-        'aria-describedby': noticeId,
-        disabled: disabled 
-    },
-    hasFocus: focused"
->
\ No newline at end of file
+<div class="admin__control-file-wrapper">
+    <input class="admin__control-file" type="file" data-bind="
+        value: value,
+        attr: {
+            name: inputName,
+            id: uid,
+            'aria-describedby': noticeId,
+            disabled: disabled
+        },
+        hasFocus: focused"
+    />
+    <label class="admin__control-file-label" data-bind="attr: { for: uid}"></label>
+</div>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/multiselect.html b/app/code/Magento/Ui/view/base/web/templates/form/element/multiselect.html
index 2d4160470951a49e56bb559ff81ec85faee64afe..df0211b23571214ec9f430906e2e2d15b475b754 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/multiselect.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/multiselect.html
@@ -4,11 +4,11 @@
  * See COPYING.txt for license details.
  */
 -->
-<select multiple class="control-select multiselect" data-bind="
+<select multiple class="admin__control-multiselect" data-bind="
     attr: {
         name: inputName,
         id: uid,
-        size: size,
+        size: size ? size : '6',
         disabled: disabled,
         'aria-describedby': noticeId,
         placeholder: placeholder
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/price.html b/app/code/Magento/Ui/view/base/web/templates/form/element/price.html
index dfbb6de96be55265dd1f441dfcdf9e7518761483..4fe9ac8105e9d72d91b18a8919dc214be1e9334f 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/price.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/price.html
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<div class="control-addon">
-    <input class="control-text" type="text" data-bind="value: value, attr: { id: uid, disabled: disabled, name: inputName }, hasFocus: focused">
-    <label class="control-before" data-bind="attr: { for: uid }"><span data-bind="text: currency_sign"></span></label>
-</div>
\ No newline at end of file
+<div class="admin__control-addon">
+    <input class="admin__control-text" type="text" data-bind="value: value, attr: { id: uid, disabled: disabled, name: inputName }, hasFocus: focused">
+    <label class="admin__addon-prefix" data-bind="attr: { for: uid }"><span data-bind="text: currency_sign"></span></label>
+</div>
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/select.html b/app/code/Magento/Ui/view/base/web/templates/form/element/select.html
index 3a859699aca9601a7eeb8bbeac7f083ad038b4c1..31b2c87e5d9a6754088d2e7133938e6bb68ea9e0 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/select.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/select.html
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<select class="control-select" data-bind="
+<select class="admin__control-select" data-bind="
     attr: {
         name: inputName,
         id: uid,
diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/textarea.html b/app/code/Magento/Ui/view/base/web/templates/form/element/textarea.html
index 99fbe9026d96f658c4b4d2fbf9b2e8a7a7a395d8..8aa979d0658994b3bb64d9f397e991f1bb4891bd 100644
--- a/app/code/Magento/Ui/view/base/web/templates/form/element/textarea.html
+++ b/app/code/Magento/Ui/view/base/web/templates/form/element/textarea.html
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<textarea class="control-textarea" data-bind="
+<textarea class="admin__control-textarea" data-bind="
     value: value,
     hasFocus: focused,
     attr: {
diff --git a/app/code/Magento/Ui/view/base/web/templates/group/field.html b/app/code/Magento/Ui/view/base/web/templates/group/field.html
index 48d0a28dccf0c5380240f1ac77f34984584de3d9..e01470fa2aed8f7e15547bcc6c2e20f909bb9f69 100644
--- a/app/code/Magento/Ui/view/base/web/templates/group/field.html
+++ b/app/code/Magento/Ui/view/base/web/templates/group/field.html
@@ -4,29 +4,29 @@
  * See COPYING.txt for license details.
  */
 -->
-<div class="field form__field" data-bind="css: {'required': element.required, 'field-disabled': element.disabled, 'field-error': element.error}">
+<div class="admin__field" data-bind="css: {'_required': element.required, '_disabled': element.disabled, '_error': element.error}">
 
     <!-- ko if: element.label -->
-    <label class="label" data-bind="attr: { for: element.uid }, css: {'dublicated': element.label === $parent.label}">
+    <label class="admin__field-label" data-bind="attr: { for: element.uid }, css: {'_dublicated': element.label === $parent.label}">
         <span data-bind="text: element.label"></span>
     </label>
     <!-- /ko -->
 
-    <div class="control">
+    <div class="admin__field-control">
         <!-- ko ifnot: element.hasAddons() -->
             <!-- ko template: element.getTemplate() --><!-- /ko -->
         <!-- /ko -->
 
         <!-- ko if: element.hasAddons() -->
-            <div class="control-addon">
+            <div class="admin__control-addon">
                 <!-- ko template: element.getTemplate() --><!-- /ko -->
 
                 <!-- ko if: element.addbefore -->
-                    <label class="control-before" data-bind="attr: { for: element.uid }"><span data-bind="text: element.addbefore"></span></label>
+                    <label class="admin__addon-prefix" data-bind="attr: { for: element.uid }"><span data-bind="text: element.addbefore"></span></label>
                 <!-- /ko -->
 
                 <!-- ko if: element.addafter -->
-                    <label class="control-after" data-bind="attr: { for: element.uid }"><span data-bind="text: element.addafter"></span></label>
+                    <label class="admin__addon-suffix" data-bind="attr: { for: element.uid }"><span data-bind="text: element.addafter"></span></label>
                 <!-- /ko -->
             </div>
         <!-- /ko -->
@@ -36,13 +36,13 @@
         <!-- /ko -->
 
         <!-- ko if: element.notice -->
-            <div class="note" data-bind="attr: { id: element.noticeId }"><span data-bind="text: element.notice"></span></div>
+            <div class="admin__field-note" data-bind="attr: { id: element.noticeId }"><span data-bind="text: element.notice"></span></div>
         <!-- /ko -->
 
         <!-- ko if: $parent.isSingle() -->
              <!-- ko if: element.error() && !element.hidden() -->
-                <label class="mage-error" data-bind="attr: { for: element.uid }, text: element.error"></label>
+                <label class="admin__field-error" data-bind="attr: { for: element.uid }, text: element.error"></label>
             <!-- /ko -->
         <!-- /ko -->
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/app/code/Magento/Ui/view/base/web/templates/group/group.html b/app/code/Magento/Ui/view/base/web/templates/group/group.html
index 92de6c1ac5d70a01774dcfeb14549f8c09c7c222..519aefbcee9f2dae72e0db9fd75f74738d8aeba8 100644
--- a/app/code/Magento/Ui/view/base/web/templates/group/group.html
+++ b/app/code/Magento/Ui/view/base/web/templates/group/group.html
@@ -6,11 +6,11 @@
 -->
 
 <!-- ko if: element.isMultiple() -->
-<fieldset class="field form__field" data-bind="css: {'required': element.required}">
-    <legend class="label">
+<fieldset class="admin__field" data-bind="css: {'_required': element.required}">
+    <legend class="admin__field-label">
         <span data-bind="text: element.label"></span>
     </legend><br />
-    <div class="control" data-bind="css: {'control-fields': element.breakLine, 'control-grouped': !element.breakLine}">
+    <div class="admin__field-control" data-bind="css: {'admin__control-fields': element.breakLine, 'admin__control-grouped': !element.breakLine}">
         <!-- ko foreach: { data: elems, as: 'element' } -->
 
             <!-- ko ifnot: element.hidden -->
@@ -29,7 +29,7 @@
 
         <!-- ko foreach: { data: elems, as: 'element' } -->
             <!-- ko if: element.error() && !element.hidden() -->
-                <label class="mage-error" data-bind="attr: { for: uid }, text: element.error"></label>
+                <label class="admin__field-error" data-bind="attr: { for: uid }, text: element.error"></label>
             <!-- /ko -->
         <!-- /ko -->
     </div>
@@ -39,9 +39,9 @@
 <!-- ko if: element.isSingle() -->
 
     <!-- ko foreach: { data: elems, as: 'element' } -->
-    
+
         <!-- ko template: $parent.fieldTemplate --><!-- /ko -->
-    
+
     <!-- /ko -->
 
 <!-- /ko -->
\ No newline at end of file
diff --git a/app/code/Magento/Ui/view/base/web/templates/tab.html b/app/code/Magento/Ui/view/base/web/templates/tab.html
index 46aef3d2b6cfe4f9caab1ad15e7929d3769fcc5d..f194f87400ea02f3a4c3086955196276533193c3 100644
--- a/app/code/Magento/Ui/view/base/web/templates/tab.html
+++ b/app/code/Magento/Ui/view/base/web/templates/tab.html
@@ -4,15 +4,17 @@
  * See COPYING.txt for license details.
  */
 -->
-<div class="block tab-nav">
-    <div class="block-title" data-bind="css: { 'ui-accordion-header': collapsible, 'ui-accordion-header-active': opened() && collapsible }, click: toggle, click: onClick, keyboard: { 13: onClick }">
+<div class="admin__scope">
+<div class="admin__section-nav">
+    <div class="admin__section-nav-title" data-bind="css: { '_collapsible': collapsible, '_opened': opened() && collapsible }, click: toggle, click: onClick, keyboard: { 13: onClick }">
         <strong tabindex="1" data-bind="text: label, keyboard: { 13: toggle }"></strong>
     </div>
-    <ul class="tab-nav-items items" data-bind="visible: opened">
+    <ul class="admin__section-nav-items items" data-bind="visible: opened">
         <!-- ko foreach: elems -->
-            <li class="tab-nav-item" tabindex="2" data-bind="css: { 'ui-state-active': active, 'ui-tabs-loading': loading }, click: activate, keyboard: { 13: activate }">
-                <a class="tab-nav-item-link" href="#" data-bind="text: label, css: { changed: changed }, attr: { id: 'tab_' + index }"></a>
+            <li class="admin__section-nav-item" tabindex="2" data-bind="css: { '_active': active, '_loading': loading }, click: activate, keyboard: { 13: activate }">
+                <a class="admin__section-nav-link" href="#" data-bind="text: label, css: { '_changed': changed }, attr: { id: 'tab_' + index }"></a>
             </li>
         <!-- /ko -->
     </ul>
+</div>
 </div>
\ No newline at end of file
diff --git a/app/code/Magento/User/Model/Resource/User.php b/app/code/Magento/User/Model/Resource/User.php
index 17f4806688a6f9a92e16bf17cac860c82274fcb3..992d8e1c834478ee040049dcd2b4518a50c54a4b 100644
--- a/app/code/Magento/User/Model/Resource/User.php
+++ b/app/code/Magento/User/Model/Resource/User.php
@@ -100,7 +100,10 @@ class User extends \Magento\Framework\Model\Resource\Db\AbstractDb
     {
         $adapter = $this->_getWriteAdapter();
 
-        $data = ['logdate' => $this->dateTime->now(), 'lognum' => $user->getLognum() + 1];
+        $data = [
+            'logdate' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
+            'lognum' => $user->getLognum() + 1,
+        ];
 
         $condition = ['user_id = ?' => (int)$user->getUserId()];
 
diff --git a/app/code/Magento/User/Model/User.php b/app/code/Magento/User/Model/User.php
index a2aff90186976cd054c09ab21cba5afa7b15e0f2..17579addd8c51b7f572a07f3536d5eb3e41f278b 100644
--- a/app/code/Magento/User/Model/User.php
+++ b/app/code/Magento/User/Model/User.php
@@ -229,7 +229,7 @@ class User extends AbstractModel implements StorageInterface
             'firstname' => $this->getFirstname(),
             'lastname' => $this->getLastname(),
             'email' => $this->getEmail(),
-            'modified' => $this->dateTime->now(),
+            'modified' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
             'extra' => serialize($this->getExtra()),
         ];
 
@@ -674,7 +674,7 @@ class User extends AbstractModel implements StorageInterface
             throw new \Magento\Framework\Exception\LocalizedException(__('Please correct the password reset token.'));
         }
         $this->setRpToken($newToken);
-        $this->setRpTokenCreatedAt($this->dateTime->now());
+        $this->setRpTokenCreatedAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT));
 
         return $this;
     }
@@ -695,8 +695,8 @@ class User extends AbstractModel implements StorageInterface
 
         $expirationPeriod = $this->_userData->getResetPasswordLinkExpirationPeriod();
 
-        $currentTimestamp = $this->dateTime->toTimestamp($this->dateTime->now());
-        $tokenTimestamp = $this->dateTime->toTimestamp($linkTokenCreatedAt);
+        $currentTimestamp = (new \DateTime())->getTimestamp();
+        $tokenTimestamp = (new \DateTime($linkTokenCreatedAt))->getTimestamp();
         if ($tokenTimestamp > $currentTimestamp) {
             return true;
         }
diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json
index 327dc973e6b4e2fe9e52c8ee557987643275a08a..b8b8c082c03e2b723ec7e1b596ec2606cacdad6c 100644
--- a/app/code/Magento/User/composer.json
+++ b/app/code/Magento/User/composer.json
@@ -7,9 +7,7 @@
         "magento/module-authorization": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/module-integration": "0.42.0-beta11",
-        "magento/module-theme": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
-        "magento/module-require-js": "0.42.0-beta11",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
diff --git a/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_forgotpassword.xml b/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_forgotpassword.xml
index fae7536694512adff6e84b33945ff95d5d3e9378..c9b4dcf6eab108018b0b15c096fd2a86a909b7fa 100644
--- a/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_forgotpassword.xml
+++ b/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_forgotpassword.xml
@@ -5,12 +5,13 @@
  * See COPYING.txt for license details.
  */
 -->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/layout_generic.xsd">
-    <container name="root" label="Root">
-        <block class="Magento\Backend\Block\Template" name="content" template="Magento_User::admin/forgotpassword.phtml">
-            <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright"/>
-            <block class="Magento\RequireJs\Block\Html\Head\Config" name="requirejs-config" as="requirejs-config"/>
-            <container name="form.additional.info" label="Form Additional Info"/>
-        </block>
-    </container>
-</layout>
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="admin_login" />
+    <body>
+        <referenceContainer name="login.content">
+            <block class="Magento\Backend\Block\Template" name="forgotpassword.content" template="Magento_User::admin/forgotpassword.phtml">
+                <container name="form.additional.info" label="Form Additional Info"/>
+            </block>
+        </referenceContainer>
+    </body>
+</page>
diff --git a/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_resetpassword.xml b/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_resetpassword.xml
index b880b5dd0a9f8f1af3eabbff5efa54101c1eeee1..5c13d12f6b207ef9032f83089a7329458c4f0d10 100644
--- a/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_resetpassword.xml
+++ b/app/code/Magento/User/view/adminhtml/layout/adminhtml_auth_resetpassword.xml
@@ -5,10 +5,11 @@
  * See COPYING.txt for license details.
  */
 -->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/layout_generic.xsd">
-    <container name="root" label="Root">
-        <block class="Magento\Backend\Block\Template" name="content" template="Magento_User::admin/resetforgottenpassword.phtml">
-            <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright"/>
-        </block>
-    </container>
-</layout>
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="admin_login" />
+    <body>
+        <referenceContainer name="login.content">
+            <block class="Magento\Backend\Block\Template" name="content" template="Magento_User::admin/resetforgottenpassword.phtml" />
+        </referenceContainer>
+    </body>
+</page>
\ No newline at end of file
diff --git a/app/code/Magento/User/view/adminhtml/templates/admin/forgotpassword.phtml b/app/code/Magento/User/view/adminhtml/templates/admin/forgotpassword.phtml
index 9cd163e90d5150ab0e2ff82ff724698c89227ca3..5f68522a58e8ddbc5b9c7354236eb98de279093b 100644
--- a/app/code/Magento/User/view/adminhtml/templates/admin/forgotpassword.phtml
+++ b/app/code/Magento/User/view/adminhtml/templates/admin/forgotpassword.phtml
@@ -7,80 +7,27 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<!doctype html>
-<html lang="en">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title><?php echo __('Log into Magento Admin Page'); ?></title>
-
-    <link rel="icon" href="<?php echo $block->getViewFileUrl('Magento_Theme::favicon.ico'); ?>" type="image/x-icon" />
-    <link rel="shortcut icon" href="<?php echo $block->getViewFileUrl('Magento_Theme::favicon.ico'); ?>" type="image/x-icon" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/reset.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/base.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/elements.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/form.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('css/admin.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('css/pages.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/utils.css') ?>" media="all" />
-
-     <script src="<?php echo $block->getViewFileUrl('prototype/prototype.js'); ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('scriptaculous/effects.js'); ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('mage/captcha.js') ?>"></script>
-
-    <script src="<?php echo $block->getViewFileUrl('requirejs/require.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('jquery.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('Magento_User::app-config.js') ?>"></script>
-    <?php echo $block->getChildHtml('requirejs-config');?>
-
-<body id="page-login" class="page-login page-forgotpassword">
-    <div class="wrapper">
-        <div class="wrapper-inner">
-            <div class="form-login form-inline">
-                <header class="header">
-                    <div class="logo" title="<?php echo __('Magento Admin Panel') ?>"><span><?php echo __('Magento Admin Panel') ?></span></div>
-                </header>
-                <div id="messages">
-                    <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml(); ?>
-                </div>
-                <form method="post" action="" id="login-form">
-                    <fieldset class="fieldset">
-                        <legend class="legend"><span><?php echo __('Forgot your user name or password?'); ?></span></legend><br/>
-                        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey(); ?>" />
-                        <div class="field field-email">
-                            <label for="email" class="label"><span><?php echo __('Email Address:'); ?></span></label>
-                            <div class="control">
-                                <input type="text" id="email" name="email" value="" class="required-entry input-text forgot-password validate-email" />
-                            </div>
-                        </div>
-                        <?php echo $block->getChildHtml('form.additional.info'); ?>
-                        <div class="form-actions">
-                            <div class="actions">
-                                <button class="action-retrieve primary" type="submit"><span><?php echo __('Retrieve Password'); ?></span></button>
-                            </div>
-                            <div class="links">
-                                <a class="action-back" href="<?php echo $block->getUrl('adminhtml', ['_nosecret' => true]); ?>">
-                                    <?php echo __('Back to Login'); ?>
-                                </a>
-                            </div>
-                        </div>
-                    </fieldset>
-                </form>
-                <script>
-                    require([
-                        "jquery",
-                        "mage/backend/form",
-                        "mage/backend/validation"
-                    ], function(jQuery){
-                        jQuery('#login-form').form().validation();
-                    });
-                </script>
+<form method="post" action="" id="login-form" data-mage-init='{"form": {}, "validation": {}}'>
+    <fieldset class="admin__fieldset">
+        <legend class="admin__legend"><span><?php echo __('Password Help'); ?></span></legend><br/>
+        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey(); ?>" />
+        <p class="admin__field-info"><?php echo __('Enter your email address.  You will receive an email with a link to reset your password.'); ?></p>
+        <div class="admin__field _required field-email">
+            <label for="email" class="admin__field-label"><span><?php echo __('Email address'); ?></span></label>
+            <div class="admin__field-control">
+                <input type="text" id="email" name="email" value="" data-validate="{required:true, 'validate-email':true}" class="admin__control-text" />
             </div>
         </div>
-    </div>
-    <footer class="footer">
-        <div class="footer-content">
-            <div class="footer-copyright"><?php echo $block->getChildHtml('copyright');?></div>
+        <?php echo $block->getChildHtml('form.additional.info'); ?>
+        <div class="form-actions">
+            <div class="actions">
+                <button class="action-retrieve action-primary" type="submit"><span><?php echo __('Retrieve Password'); ?></span></button>
+            </div>
+            <div class="links">
+                <a class="action-back" href="<?php echo $block->getUrl('adminhtml', ['_nosecret' => true]); ?>">
+                    <?php echo __('Back to Sign in'); ?>
+                </a>
+            </div>
         </div>
-    </footer>
-</body>
-</html>
+    </fieldset>
+</form>
diff --git a/app/code/Magento/User/view/adminhtml/templates/admin/resetforgottenpassword.phtml b/app/code/Magento/User/view/adminhtml/templates/admin/resetforgottenpassword.phtml
index 9d620bede3d0f00c5d07c1f07a60fdd508133324..2beb2b1a277ff95823e5d9a9873896542725015c 100644
--- a/app/code/Magento/User/view/adminhtml/templates/admin/resetforgottenpassword.phtml
+++ b/app/code/Magento/User/view/adminhtml/templates/admin/resetforgottenpassword.phtml
@@ -7,84 +7,30 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html lang="en">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title><?php echo __('Reset a Password'); ?></title>
-    <link rel="icon" href="<?php echo $block->getViewFileUrl('Magento_Theme::favicon.ico'); ?>" type="image/x-icon" />
-    <link rel="shortcut icon" href="<?php echo $block->getViewFileUrl('Magento_Theme::favicon.ico'); ?>" type="image/x-icon" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/reset.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/base.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/elements.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/form.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('css/admin.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('css/pages.css') ?>" media="all" />
-    <link rel="stylesheet" href="<?php echo $block->getViewFileUrl('mui/utils.css') ?>" media="all" />
 
-    <script src="<?php echo $block->getViewFileUrl('prototype/prototype.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('scriptaculous/effects.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('mage/captcha.js') ?>"></script>
-
-    <script src="<?php echo $block->getViewFileUrl('requirejs/require.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('jquery.js') ?>"></script>
-    <script src="<?php echo $block->getViewFileUrl('Magento_User::app-config.js') ?>"></script>
-    <?php echo $block->getChildHtml('requirejs-config');?>
-
-<body id="page-login" class="page-login page-resetpass">
-    <div class="wrapper">
-        <div class="wrapper-inner">
-            <div class="form-inline form-login">
-                <header class="header">
-                    <div class="logo" title="<?php echo __('Magento Admin Panel') ?>"><span><?php echo __('Magento Admin Panel') ?></span></div>
-                </header>
-                <div id="messages">
-                    <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml(); ?>
-                </div>
-                <form method="post" action="<?php echo $block->getUrl('*/auth/resetpasswordpost', ['_query' => ['id' => $block->getUserId(), 'token' => $block->getResetPasswordLinkToken()]]); ?>" id="reset-password-form">
-                    <fieldset class="fieldset">
-                        <legend class="legend"><span><?php echo __('Reset a Password'); ?></span></legend><br />
-                        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey(); ?>" />
-                        <div class="field field-password">
-                            <label class="label" for="password"><span><?php echo __('New Password'); ?></span></label>
-                            <div class="control">
-                                <input type="password" class="input-text required-entry validate-admin-password" name="password" id="password" placeholder="new password" />
-                            </div>
-                        </div>
-                        <div class="field field-confirmation">
-                            <label class="label" for="confirmation"><span><?php echo __('Confirm New Password'); ?></span></label>
-                            <div class="control">
-                                <input type="password" class="input-text required-entry validate-cpassword" name="confirmation" id="confirmation" placeholder="confirm new password" />
-                            </div>
-                        </div>
-                        <div class="form-actions">
-                            <div class="actions">
-                                <button type="submit" title="<?php echo __('Reset Password'); ?>" class="action-reset primary"><span><?php echo __('Reset Password'); ?></span></button>
-                            </div>
-                            <div class="links">
-                                <a class="action-back" href="<?php echo $block->getUrl('adminhtml', ['_nosecret' => true]) ?>"><?php echo __('Back to Login'); ?></a>
-                            </div>
-                        </div>
-                    </fieldset>
-                </form>
-                <script>
-require([
-    "jquery",
-    "mage/backend/form",
-    "mage/backend/validation"
-], function(jQuery){
-
-    jQuery('#reset-password-form').form().validation();
-
-});
-</script>
+<form method="post" data-mage-init='{"form": {}, "validation": {}}' action="<?php echo $block->getUrl('*/auth/resetpasswordpost', ['_query' => ['id' => $block->getUserId(), 'token' => $block->getResetPasswordLinkToken()]]); ?>" id="reset-password-form">
+    <fieldset class="admin__fieldset">
+        <legend class="admin__legend"><span><?php echo __('Reset a Password'); ?></span></legend><br />
+        <input name="form_key" type="hidden" value="<?php echo $block->getFormKey(); ?>" />
+        <div class="admin__field _required field-password">
+            <label class="admin__field-label" for="password"><span><?php echo __('New Password'); ?></span></label>
+            <div class="admin__field-control">
+                <input type="password" class="admin__control-text" data-validate="{required:true, 'validate-admin-password':true}" name="password" id="password" placeholder="new password" />
             </div>
         </div>
-    </div>
-    <footer class="footer">
-        <div class="footer-content">
-            <div class="footer-copyright"><?php echo $block->getChildHtml('copyright');?></div>
+        <div class="admin__field _required field-confirmation">
+            <label class="admin__field-label" for="confirmation"><span><?php echo __('Confirm New Password'); ?></span></label>
+            <div class="admin__field-control">
+                <input type="password" class="admin__control-text" data-validate="{required:true, 'validate-cpassword':true}" name="confirmation" id="confirmation" placeholder="confirm new password" />
+            </div>
+        </div>
+        <div class="form-actions">
+            <div class="actions">
+                <button type="submit" title="<?php echo __('Reset Password'); ?>" class="action-reset action-primary"><span><?php echo __('Reset Password'); ?></span></button>
+            </div>
+            <div class="links">
+                <a class="action-back" href="<?php echo $block->getUrl('adminhtml', ['_nosecret' => true]) ?>"><?php echo __('Back to Sign in'); ?></a>
+            </div>
         </div>
-    </footer>
-</body>
-</html>
+    </fieldset>
+</form>
diff --git a/app/code/Magento/Usps/Test/Unit/Helper/DataTest.php b/app/code/Magento/Usps/Test/Unit/Helper/DataTest.php
index f7c6fa4b490940c3bc2562567edcb58c7852ade6..46f0740b94c84207a735c5ec17afc6217a791190 100644
--- a/app/code/Magento/Usps/Test/Unit/Helper/DataTest.php
+++ b/app/code/Magento/Usps/Test/Unit/Helper/DataTest.php
@@ -17,7 +17,6 @@ class DataTest extends \PHPUnit_Framework_TestCase
         $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $arguments = [
             'context' => $this->getMock('Magento\Framework\App\Helper\Context', [], [], '', false),
-            'locale' => $this->getMock('Magento\Framework\Locale', [], [], '', false),
         ];
 
         $this->_helperData = $helper->getObject('Magento\Usps\Helper\Data', $arguments);
diff --git a/app/code/Magento/Variable/view/adminhtml/web/variables.js b/app/code/Magento/Variable/view/adminhtml/web/variables.js
index e8d2b80775069318a781933c44a4b5a7e9a4132d..2b71f6bc50c7c4aff622bc881b35818f5bad2f77 100644
--- a/app/code/Magento/Variable/view/adminhtml/web/variables.js
+++ b/app/code/Magento/Variable/view/adminhtml/web/variables.js
@@ -59,7 +59,20 @@ window.Variables = {
             modal:      true,
             resizable:  false,
             minWidth:   500,
-            close:      function(event, ui) {
+            width:      '75%',
+            position: {
+                my: 'left top',
+                at: 'center top',
+                of: 'body'
+            },
+            open: function () {
+                jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30;
+                jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
+            },
+            close: function(event, ui) {
+                jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                 jQuery(this).dialog('destroy');
                 jQuery('#' + windowId).remove();
             }
diff --git a/app/code/Magento/Webapi/Model/Soap/Fault.php b/app/code/Magento/Webapi/Model/Soap/Fault.php
index 411b4770ddec94e48c92932b2a8350c8fa68784f..940fc85e4446b07d9e36fc3942ae4b08fbe63e6b 100644
--- a/app/code/Magento/Webapi/Model/Soap/Fault.php
+++ b/app/code/Magento/Webapi/Model/Soap/Fault.php
@@ -196,7 +196,7 @@ class Fault extends \RuntimeException
      */
     public function getLanguage()
     {
-        return $this->_localeResolver->getLocale()->getLanguage();
+        return \Locale::getPrimaryLanguage($this->_localeResolver->getLocale());
     }
 
     /**
diff --git a/app/code/Magento/Webapi/Test/Unit/Controller/SoapTest.php b/app/code/Magento/Webapi/Test/Unit/Controller/SoapTest.php
index 7eb4036a0a2d1c83c78aba758f1c9b1d6b029f4c..fa71cf08332d5ed0f9f5a1111c1cc5d60ccdd6d7 100644
--- a/app/code/Magento/Webapi/Test/Unit/Controller/SoapTest.php
+++ b/app/code/Magento/Webapi/Test/Unit/Controller/SoapTest.php
@@ -72,18 +72,13 @@ class SoapTest extends \PHPUnit_Framework_TestCase
             ->setMethods(['maskException'])
             ->getMock();
         $this->_appStateMock =  $this->getMock('\Magento\Framework\App\State', [], [], '', false);
-        $localeMock =  $this->getMockBuilder('Magento\Framework\Locale')
-            ->disableOriginalConstructor()
-            ->setMethods(['getLanguage'])
-            ->getMock();
-        $localeMock->expects($this->any())->method('getLanguage')->will($this->returnValue('en'));
 
         $localeResolverMock = $this->getMockBuilder(
             'Magento\Framework\Locale\Resolver'
         )->disableOriginalConstructor()->setMethods(
             ['getLocale']
         )->getMock();
-        $localeResolverMock->expects($this->any())->method('getLocale')->will($this->returnValue($localeMock));
+        $localeResolverMock->expects($this->any())->method('getLocale')->will($this->returnValue('en'));
 
         $this->_responseMock->expects($this->any())->method('clearHeaders')->will($this->returnSelf());
         $this->_responseMock
diff --git a/app/code/Magento/Webapi/Test/Unit/Model/Soap/FaultTest.php b/app/code/Magento/Webapi/Test/Unit/Model/Soap/FaultTest.php
index e2f10c7c4243891ab2c08aa98261e7099f2d9c77..fa0c51de71a8019044be6578cd7bab7158450e75 100644
--- a/app/code/Magento/Webapi/Test/Unit/Model/Soap/FaultTest.php
+++ b/app/code/Magento/Webapi/Test/Unit/Model/Soap/FaultTest.php
@@ -59,7 +59,7 @@ class FaultTest extends \PHPUnit_Framework_TestCase
         )->method(
             'getLocale'
         )->will(
-            $this->returnValue(new \Zend_Locale('en_US'))
+            $this->returnValue('en_US')
         );
 
         $this->_appStateMock = $this->getMock('\Magento\Framework\App\State', [], [], '', false);
diff --git a/app/code/Magento/Widget/Block/Adminhtml/Widget.php b/app/code/Magento/Widget/Block/Adminhtml/Widget.php
index cc8d4932b55c4e48d37baba7e66c664701531292..66cfdbcbcf73de5d1a5fc7d77d992282c5805291 100644
--- a/app/code/Magento/Widget/Block/Adminhtml/Widget.php
+++ b/app/code/Magento/Widget/Block/Adminhtml/Widget.php
@@ -30,7 +30,7 @@ class Widget extends \Magento\Backend\Block\Widget\Form\Container
         $this->removeButton('reset');
         $this->removeButton('back');
         $this->buttonList->update('save', 'label', __('Insert Widget'));
-        $this->buttonList->update('save', 'class', 'add-widget');
+        $this->buttonList->update('save', 'class', 'action-primary add-widget');
         $this->buttonList->update('save', 'id', 'insert_button');
         $this->buttonList->update('save', 'onclick', 'wWidget.insertWidget()');
         $this->buttonList->update('save', 'region', 'footer');
diff --git a/app/code/Magento/Widget/view/adminhtml/layout/adminhtml_widget_instance_edit.xml b/app/code/Magento/Widget/view/adminhtml/layout/adminhtml_widget_instance_edit.xml
index a407c6cee5a82e2f40904662a2a75be95fbacf12..85e56f73713425f126be4cfddba3951b5d83985b 100644
--- a/app/code/Magento/Widget/view/adminhtml/layout/adminhtml_widget_instance_edit.xml
+++ b/app/code/Magento/Widget/view/adminhtml/layout/adminhtml_widget_instance_edit.xml
@@ -8,7 +8,6 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <head>
         <css src="prototype/windows/themes/default.css"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
     </head>
     <body>
         <referenceContainer name="content">
diff --git a/app/code/Magento/Wishlist/Block/AbstractBlock.php b/app/code/Magento/Wishlist/Block/AbstractBlock.php
index a8a1b6a56abe0f25e76f8f9d86e853491ed2d215..b4f82d988af11f346aef365fb33350232bf19703 100644
--- a/app/code/Magento/Wishlist/Block/AbstractBlock.php
+++ b/app/code/Magento/Wishlist/Block/AbstractBlock.php
@@ -213,7 +213,7 @@ abstract class AbstractBlock extends \Magento\Catalog\Block\Product\AbstractProd
      */
     public function getFormatedDate($date)
     {
-        return $this->formatDate($date, \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM);
+        return $this->formatDate($date, \IntlDateFormatter::MEDIUM);
     }
 
     /**
diff --git a/app/code/Magento/Wishlist/Model/LocaleQuantityProcessor.php b/app/code/Magento/Wishlist/Model/LocaleQuantityProcessor.php
index 1c533cc6f4a7b0c6cd1809db5e60078a459fc7d7..ce0fdfcf8539e42909844400fabc30edf21acd23 100644
--- a/app/code/Magento/Wishlist/Model/LocaleQuantityProcessor.php
+++ b/app/code/Magento/Wishlist/Model/LocaleQuantityProcessor.php
@@ -38,7 +38,7 @@ class LocaleQuantityProcessor
      */
     public function process($qty)
     {
-        $this->localFilter->setOptions(['locale' => $this->localeResolver->getLocaleCode()]);
+        $this->localFilter->setOptions(['locale' => $this->localeResolver->getLocale()]);
         $qty = $this->localFilter->filter((double)$qty);
         if ($qty < 0) {
             $qty = null;
diff --git a/app/code/Magento/Wishlist/Model/Resource/Item/Collection.php b/app/code/Magento/Wishlist/Model/Resource/Item/Collection.php
index 6552345f30f3dff942846b789708c352caf9cdf7..3d5b15fc2c7752c2bf1081dac7c73607f020e5b5 100644
--- a/app/code/Magento/Wishlist/Model/Resource/Item/Collection.php
+++ b/app/code/Magento/Wishlist/Model/Resource/Item/Collection.php
@@ -445,23 +445,16 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac
 
         $filter = [];
 
-        $now = $this->_date->date();
-        $gmtOffset = (int)$this->_date->getGmtOffset();
+        $gmtOffset = (new \DateTimeZone(date_default_timezone_get()))->getOffset(new \DateTime());
         if (isset($constraints['from'])) {
-            $lastDay = new \Magento\Framework\Stdlib\DateTime\Date(
-                $now,
-                \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-            );
-            $lastDay->subSecond($gmtOffset)->subDay(intval($constraints['from']));
+            $lastDay = new \DateTime();
+            $lastDay->modify('-' . $gmtOffset . ' second')->modify('-' . $constraints['from'] . ' day');
             $filter['to'] = $lastDay;
         }
 
         if (isset($constraints['to'])) {
-            $firstDay = new \Magento\Framework\Stdlib\DateTime\Date(
-                $now,
-                \Magento\Framework\Stdlib\DateTime::DATETIME_INTERNAL_FORMAT
-            );
-            $firstDay->subSecond($gmtOffset)->subDay(intval($constraints['to']) + 1);
+            $firstDay = new \DateTime();
+            $firstDay->modify('-' . $gmtOffset . ' second')->modify('-' . (intval($constraints['to']) + 1) . ' day');
             $filter['from'] = $firstDay;
         }
 
diff --git a/app/code/Magento/Wishlist/Model/Wishlist.php b/app/code/Magento/Wishlist/Model/Wishlist.php
index 6a65ef8b7f79f362e2202b0bdec1f6f8baa4ef38..03dcabd313f0c51e20d988e53b8bdfc264b0212f 100644
--- a/app/code/Magento/Wishlist/Model/Wishlist.php
+++ b/app/code/Magento/Wishlist/Model/Wishlist.php
@@ -295,7 +295,7 @@ class Wishlist extends \Magento\Framework\Model\AbstractModel implements \Magent
             $item = $this->_wishlistItemFactory->create();
             $item->setProductId($product->getId());
             $item->setWishlistId($this->getId());
-            $item->setAddedAt($this->dateTime->now());
+            $item->setAddedAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT));
             $item->setStoreId($storeId);
             $item->setOptions($product->getCustomOptions());
             $item->setProduct($product);
diff --git a/app/code/Magento/Wishlist/Test/Unit/Model/LocaleQuantityProcessorTest.php b/app/code/Magento/Wishlist/Test/Unit/Model/LocaleQuantityProcessorTest.php
index 81b29766f1d3144c7a90349626e940043c74e842..304bef75da99b70dc51a2a96108e6bc9d99130ab 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Model/LocaleQuantityProcessorTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Model/LocaleQuantityProcessorTest.php
@@ -44,7 +44,7 @@ class LocaleQuantityProcessorTest extends \PHPUnit_Framework_TestCase
         $localCode = 'en_US';
 
         $this->resolver->expects($this->once())
-            ->method('getLocaleCode')
+            ->method('getLocale')
             ->willReturn($localCode);
 
         $this->filter->expects($this->once())
diff --git a/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less
new file mode 100644
index 0000000000000000000000000000000000000000..4d372ba38dafb8857a4777951f7b8dbf4cab4329
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less
@@ -0,0 +1,46 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@message-system__background-color: @color-lazy-sun;
+@message-system-short-message__padding-vertical: 1.8rem;
+
+//
+//  Message system
+//  ---------------------------------------------
+
+.message-system-inner {
+    background: @message-system__background-color;
+    .extend__clearfix();
+    .message-system-list {
+        float: left;
+        width: 75%;
+    }
+}
+
+.message-system-list {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.message-system-short {
+    overflow: hidden;
+    text-align: right;
+    .message-system-short-label {
+        display: inline-block;
+        padding: @message-system-short-message__padding-vertical .3rem @message-system-short-message__padding-vertical 1rem;
+    }
+    .message {
+        display: inline-block;
+        padding: @message-system-short-message__padding-vertical 2rem @message-system-short-message__padding-vertical 3.3rem;
+        &:before {
+            left: .3rem;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/module.less
deleted file mode 100644
index 62fe617cb167e0f5d8408d85dcc75103f2b296a6..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/module.less
+++ /dev/null
@@ -1,102 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-/*
-    System Messages
--------------------------------------- */
-.message-system {
-    &:extend(._layout-width all);
-}
-
-.message-system-inner {
-    background: #f7f3eb;
-    border: 1px solid #c0bbaf;
-    border-top: 0;
-    border-radius: 0 0 5px 5px;
-    float: right;
-    overflow: hidden;
-}
-
-.message-system-unread .message-system-inner {
-    float: none;
-}
-
-.message-system-list {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-    float: left;
-}
-
-.message-system .message-system-list {
-    width: 75%;
-}
-
-.message-system-list li {
-    padding: 5px 13px 7px 36px;
-    position: relative;
-}
-
-.message-system-short {
-    padding: 5px 13px 7px;
-    float: right;
-}
-
-.message-system-short span {
-    display: inline-block;
-    margin-left: 7px;
-    border-left: 1px #d1ccc3 solid;
-}
-
-.message-system-short span:first-child {
-    border: 0;
-    margin-left: 0;
-}
-
-.message-system-short a {
-    padding-left: 27px;
-    position: relative;
-    height: 16px;
-}
-
-.message-system .message-system-short a:before,
-.message-system-list li:before {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    height: 16px;
-    width: 16px;
-    font-size: 16px;
-    line-height: 16px;
-    text-align: center;
-    position: absolute;
-    left: 7px;
-    top: 2px;
-}
-
-.message-system-list li:before {
-    top: 5px;
-    left: 13px;
-}
-
-.message-system .message-system-short .warning a:before,
-.message-system-list li.warning:before {
-    content: "\e006";
-    color: #f2a825;
-}
-
-.message-system .message-system-short .error a:before,
-.message-system-list li.error:before {
-    content: "\e086";
-    font-family: 'MUI-Icons';
-    color: #c00815;
-}
-
-.ui-dialog .message-system-list {
-    margin-bottom: 25px;
-}
-
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
index bbad15a0bd0227e9a8c1505a8921d2c62c2aafe3..2c46eb45d6bd66a1f9e695eea71ed635646f3454 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
@@ -7,18 +7,34 @@
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <head>
-        <css src="mui/reset.css"/>
-        <css src="mui/base.css"/>
-        <css src="mui/elements.css"/>
-        <css src="mui/form.css"/>
-        <css src="mui/components.css"/>
-        <css src="css/admin.css"/>
-        <css src="css/pages.css"/>
+        <css src="mui/mui_legacy.css"/>
         <css src="css/styles-old.css"/>
-        <css src="mui/utils.css"/>
-        <css src="Magento_Theme::prototype/magento.css"/>
-        <css src="mui/print.css" media="print"/>
+        <css src="css/styles-migration.css"/> <!-- New styles scope -->
     </head>
 
-    <body/>
+    <body>
+
+        <referenceContainer name="page.wrapper">
+            <container name="header.wrapper.scope" before="-" htmlTag="div" htmlClass="admin__scope"/>
+            <container name="menu.wrapper.scope" before="-" htmlTag="div" htmlClass="admin__scope">
+                <container name="menu.wrapper" before="-" htmlTag="div" htmlClass="menu-wrapper"/>
+            </container>
+        </referenceContainer>
+
+        <referenceContainer name="header" htmlClass="page-header row">
+            <container name="header.inner.left" before="-" htmlTag="div" htmlClass="page-header-hgroup col-l-8 col-m-6"/>
+            <container name="header.inner.right" after="header.inner.left" htmlTag="div" htmlClass="page-header-actions col-l-4 col-m-6"/>
+        </referenceContainer>
+
+        <move element="page.menu" destination="menu.wrapper" />
+        <move element="logo" before="-" destination="menu.wrapper" />
+
+        <move element="header" destination="header.wrapper.scope" />
+        <move element="notices.wrapper" before="header" destination="header.wrapper.scope" />
+        <move element="page.title" before="-" destination="header.inner.left" />
+        <move element="user" before="-" destination="header.inner.right" />
+        <move element="notification.messages" after="user" destination="header.inner.right" />
+        <move element="global.search" after="notification.messages" destination="header.inner.right" />
+
+    </body>
 </page>
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml
index 8d7bc28aa03f8c5d1c663da778619d209a1dec93..4215232ebe558e505152f816e3d35c2730efd44e 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/styles.xml
@@ -7,18 +7,10 @@
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <head>
-        <remove src="mui/reset.css"/>
-        <remove src="mui/base.css"/>
-        <remove src="mui/elements.css"/>
-        <remove src="mui/form.css"/>
-        <remove src="mui/components.css"/>
-        <remove src="css/admin.css"/>
-        <remove src="css/pages.css"/>
+        <remove src="mui/mui_legacy.css"/>
         <remove src="css/styles-old.css"/>
+        <remove src="css/styles-migration.css"/>
         <remove src="jquery/farbtastic/css/farbtastic.css"/>
-        <remove src="mui/utils.css"/>
-        <remove src="Magento_Theme::prototype/magento.css"/>
-        <remove src="mui/print.css"/>
 
         <css src="css/styles.css"/>
     </head>
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less
index b291bbc08a55bbb4ecd2244e50a0147175ec1363..6709ead590095da512b91a481a369d09e033888b 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_module.less
@@ -3,4 +3,17 @@
 //  * See COPYING.txt for license details.
 //  */
 
-@import '_dashboard'; //  Import dashboard styles
+//
+//  Crosspage components
+//  _____________________________________________
+
+@import 'module/_menu';
+@import 'module/_header';
+@import 'module/_footer';
+@import 'module/_main';
+
+//
+//  Pages
+//  _____________________________________________
+
+@import 'module/pages/_dashboard';
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less
index 9a1ee879bbc84e6ed02f449cd684a60cc9326b02..f44522671c3614ccba264599fe80ef790c41f147 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module.less
@@ -3,252 +3,8 @@
 //  * See COPYING.txt for license details.
 //  */
 
-.search-global {
-    &.miniform {
-        position: relative;
-        z-index: 1000;
-        display: inline-block;
-        vertical-align: top;
-        margin:6px 10px 0;
-        .mage-suggest {
-            border: 0;
-            border-radius: 0;
-        }
-    }
-    &-actions {
-        display: none;
-    }
-    &-field {
-        margin: 0;
-        .label {
-            position: absolute;
-            right: 4px;
-            z-index: 2;
-            cursor: pointer;
-            .icon-font(
-                "\e01f",
-                @_icon-font: 'MUI-Icons',
-                @_icon-font-size: 18px,
-                @_icon-font-line-height: 29px,
-                @_icon-font-color: #cac3b4,
-                @_icon-font-text-hide: true
-                );
-        }
-        .control {
-            width:48px;
-            overflow: hidden;
-            opacity: 0;
-            transition: all .3s ease;
-            input[type="text"] {
-                background: transparent;
-                border: none;
-                width: 100%;
-            }
-        }
-    }
-    &-field.active {
-        z-index: 2;
-        .label:before {
-            display: none;
-        }
-        .control {
-            overflow: visible;
-            opacity: 1;
-            transition: all .3s ease;
-            width:300px;
-        }
-    }
-    &-menu {
-        box-sizing: border-box;
-        display: block;
-        width: 100%;
-    }
-}
-
-.notifications {
-    &-summary {
-        display: inline-block;
-        text-align: left;
-        position: relative;
-        z-index: 1;
-        &.active {
-            z-index: 999;
-        }
-    }
-    &-action {
-        color: @primary7;
-        display: inline-block;
-        padding: 12px 22px 11px 22px;
-        text-transform: capitalize;
-        .icon-font(
-            "\e06e",
-            @_icon-font: "MUI-Icons",
-            @_icon-font-size: 18px,
-            @_icon-font-line-height: 18px
-        );
-        &:visited,
-        &:focus,
-        &:active,
-        &:hover {
-            color: @primary7;
-            text-decoration: none;
-        }
-        &.active {
-            background-color: #FFF; // @todo: color;
-            color: #676056; // @todo: color;
-        }
-        .text {
-            .visually-hidden();
-        }
-        .qty.counter {
-            display: inline-block;
-            background: #ed4f2e;
-            color: @primary7;
-            font-size: 12px;
-            line-height: 12px;
-            font-weight: bold;
-            padding: 1px 3px;
-            position: absolute;
-            top: 6px;
-            left: 50%;
-            border-radius: 4px;
-        }
-    }
-    &-list {
-        width: 300px;
-        padding: 0;
-        margin: 0;
-        .last {
-            padding:10px;
-            text-align: center;
-            font-size: 12px;
-        }
-    }
-    &-summary &-entry {
-        padding: 15px;
-        .style14();
-
-    }
-    &-entry {
-        &:hover .action {
-            display: block;
-        }
-        position: relative;
-        z-index: 1;
-        &-title {
-            padding-right:15px;
-            .style33();
-            display: block;
-            margin-bottom: 10px;
-            }
-        &-description {
-            line-height:1.3;
-            display: block;
-            max-height: 1.3*3em;
-            overflow: hidden;
-            margin-bottom: 10px;
-            text-overflow: ellipsis;
-        }
-    }
-    &-close.action {
-        position: absolute;
-        z-index: 1;
-        top: 12px;
-        right: 12px;
-        .icon-font(
-            "\e07f",
-            @_icon-font: 'MUI-Icons',
-            @_icon-font-text-hide: true,
-            @_icon-font-size: 16px
-            );
-        .button-reset();
-        display: none;
-    }
-    &-dialog-content {
-        display:none;
-    }
-    &-critical &-entry-title {
-        padding-left: 25px;
-        .icon-font(
-            "\e086",
-            @_icon-font: 'MUI-Icons',
-            @_icon-font-size: 18px,
-            @_icon-font-line-height: 18px,
-            @_icon-font-color: #c00815
-        )
-    }
-    &-critical &-entry-title:before {
-        position: absolute;
-        margin-left: -25px;
-    }
-    &-dialog-content &-entry-time {
-        color: #8c867e;
-        font-size: 13px;
-        font-family: Helvetica, Arial, sans-serif;
-        position: absolute;
-        right: 17px;
-        bottom: 27px;
-        text-align: right;
-    }
-    &-url {
-        .icon-font(
-            "\e084",
-            @_icon-font: 'MUI-Icons',
-            @_icon-font-text-hide: true,
-            @_icon-font-size: 16px,
-            @_icon-font-position: after,
-            @_icon-font-margin: -2px 0 0 10px
-        );
-    }
-    &-dialog-content &-entry-title {
-        font-size: 15px;
-    }
-}
-
-.locale-switcher {
-    &-field {
-        white-space: nowrap;
-        float: left;
-        .control,
-        .label {
-            vertical-align: middle;
-            margin: 0 10px 0 0;
-            display: inline-block;
-        }
-    }
-    &-select {
-        .css(appearance, none, 1);
-        appearance: none;
-        border: 1px solid #ada89e;
-        max-width: 200px;
-        height: 31px;
-        background: url("@{baseDir}images/select-bg.svg") no-repeat 100% 50%;
-        background-size:30px 60px;
-        padding-right:29px;
-        text-indent: .01px;
-        text-overflow: '';
-        &::-ms-expand{
-          display:none;
-        }
-        .lt-ie10 & {
-            background-image: none;
-            padding-right: 4px;
-        }
-    }
-}
-@-moz-document url-prefix() {
-    .locale-switcher-select {
-        background-image: none;
-    }
-}
-
-@-moz-document url-prefix() {
-    .locale-switcher-select {
-        background-image: none;
-    }
-}
-
-.autocomplete-results {
+.link-copyright {
+    display: none;
 }
 
 .mage-suggest {
@@ -261,6 +17,15 @@
     background-color: #fff;
     border: 1px solid #ada89e;
     border-radius: 2px;
+    .search-global-field & {
+        position: static;
+        display: block;
+        vertical-align: baseline;
+        width: auto;
+        background-color: transparent;
+        border: none;
+        border-radius: 0;
+    }
     &:after {
         position: absolute;
         top: 3px;
@@ -276,6 +41,9 @@
         content: '\e01f'; // search icon
         font-size: 18px;
         color: #b2b2b2;
+        .search-global-field & {
+            display: none;
+        }
     }
     input[type="search"],
     input.search {
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
new file mode 100644
index 0000000000000000000000000000000000000000..c8333911914ef0b9074034bd5f189d17d516fe12
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
@@ -0,0 +1,104 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page footer
+//  _____________________________________________
+
+@footer__background-color: @body__background-color;
+@footer__border-color: @color-light-gray;
+@footer__border-width: .1rem;
+@footer__color: @color-very-dark-gray1;
+@footer-version__color: @color-gray40;
+@footer-copyright__color: @color-gray40;
+
+@footer-link__color: @color-light-phoenix;
+@footer-link__text-decoration: underline;
+
+@footer-link__hover__color: @color-light-phoenix;
+@footer-link__hover__text-decoration: underline;
+
+.page-footer {
+    background-color: @footer__background-color;
+    border-top: @footer__border-width solid @footer__border-color;
+    color: @footer__color;
+    margin-top: auto;
+    padding: 2.6rem 2rem 6rem 3rem;
+    a {
+        .link(
+            @_link-color: @footer-link__color,
+            @_link-text-decoration: @footer-link__text-decoration,
+            @_link-color-visited: false,
+            @_link-text-decoration-visited: false,
+            @_link-color-hover: @footer-link__color,
+            @_link-text-decoration-hover: false,
+            @_link-color-active: false,
+            @_link-text-decoration-active: false
+        );
+    }
+}
+
+.magento-version {
+    margin-bottom: .5rem;
+    strong {
+        color: @footer-version__color;
+    }
+}
+
+//  Copyright
+.copyright {
+    margin-bottom: -.2rem;
+    position: relative;
+    .link-copyright {
+        display: inline-block;
+        margin-right: .5rem;
+        text-decoration: none;
+        vertical-align: top;
+        &:hover {
+            &:before {
+                color: lighten(@color-light-phoenix, 10%);
+            }
+        }
+        &:before {
+            &:extend(.abs-icon all);
+            .transition(color);
+            color: @primary__color;
+            content: @icon-logo__content;
+            display: block;
+            font-size: 2.5rem;
+            position: relative;
+            top: -.2rem;
+        }
+        &:active {
+            &:before {
+                .scale();
+            }
+        }
+    }
+}
+
+.footer-legal {
+    padding-top: 1rem;
+    text-align: right;
+}
+
+//  Locale switcher
+.locale-switcher {
+    .label {
+        display: block;
+        margin-bottom: 1rem;
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .footer-legal {
+        padding-top: 3rem;
+        text-align: left;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_header.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_header.less
new file mode 100644
index 0000000000000000000000000000000000000000..4890433ca569a1c98455335b7669625743fec647
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_header.less
@@ -0,0 +1,28 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header
+//  _____________________________________________
+
+//
+//  Components
+//  ---------------------------------------------
+
+@import 'header/_actions-group';
+@import 'header/_headings-group';
+
+//  Variables
+//  ---------------------------------------------
+
+@page-header__indent-horizontal: @content__indent;
+@page-header__indent-vertical: @content__indent / 2;
+
+//
+
+.page-header {
+    margin-bottom: 1.2rem;
+    padding: @page-header__indent-vertical @page-header__indent-horizontal;
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_navigation.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less
similarity index 59%
rename from app/design/adminhtml/Magento/backend/web/css/source/components/_navigation.less
rename to app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less
index 1eed11f4d86f33e35b5203ccb629aca3b4cc78d7..7cba7fd177752deda155bde1b6e1010ba28925cd 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/components/_navigation.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_main.less
@@ -4,9 +4,11 @@
 //  */
 
 //
-//  Global Navigation
-//  ---------------------------------------------
+//  Page elements
+//  _____________________________________________
 
-.navigation {
+//
+//  Components
+//  ---------------------------------------------
 
-}
+@import 'main/_actions-bar';
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less
new file mode 100644
index 0000000000000000000000000000000000000000..63cbbf33a9b34bcbd3e3f6e8a83f2c6c519f6f34
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less
@@ -0,0 +1,409 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Menu
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@menu-wrapper__z-index: @menu__z-index - 1;
+
+@menu__background-color: @color-very-dark-grayish-orange;
+
+@menu-logo__margin-bottom: 2.2rem;
+@menu-logo__outer-size: @menu-logo__padding-vertical + @menu-logo-img__height + @menu-logo__margin-bottom;
+@menu-logo__padding-vertical: 1.2rem;
+@menu-logo-img__height: 4.1rem;
+@menu-logo-img__width: 3.5rem;
+
+@menu-item__color: @color-gray65-lighten;
+@menu-item__font-size: 1rem;
+@menu-item__active__background-color: @color-brownie-almost;
+@menu-item__active__color: @color-ivory;
+@menu-item-icon__height: 2.2rem;
+
+@menu-line-before__background-color: @color-brownie-vanilla;
+@menu-line-before__height: 1px;
+
+@menu-overlay__z-index: @menu__z-index - 3;
+
+@submenu__background-color: @menu-item__active__background-color;
+@submenu__padding-horizontal: 1.5rem;
+@submenu__padding-vertical: 2rem;
+@submenu__z-index: @menu__z-index - 2;
+@submenu-column__width: 23.8rem;
+@submenu-column__width__l: 19.8rem;
+@submenu-title__color: @color-white;
+@submenu-link__color: @color-very-light-gray;
+@submenu-link__focus__background-color: @color-black4-almost;
+@submenu-section-label__color: @color-gray65-almost;
+@submenu-heading-group__indent-bottom: 3.8rem;
+@submenu-action-close__indent-right: 2.8rem;
+
+//
+//  Menu wrapper
+//  ---------------------------------------------
+
+.menu-wrapper {
+    height: 100%;
+    left: 0;
+    position: fixed;
+    top: 0;
+    width: @menu__width;
+    z-index: @menu__z-index;
+    &:after {
+        background-color: @menu__background-color;
+        bottom: 0;
+        content: '';
+        left: 0;
+        position: absolute;
+        right: 0;
+        top: 0;
+        z-index: @menu-wrapper__z-index;
+    }
+    .logo {
+        display: block;
+        height: @menu-logo-img__height + @menu-logo__padding-vertical * 2;
+        margin-bottom: @menu-logo__margin-bottom - @menu-logo__padding-vertical;
+        padding: @menu-logo__padding-vertical 0;
+        position: relative;
+        text-align: center;
+        z-index: @menu__z-index;
+        &:hover {
+            .logo-img {
+                -webkit-filter: brightness(1.1);
+                        filter: brightness(1.1);
+            }
+        }
+        &:active {
+            .logo-img {
+                transform: scale(.95);
+            }
+        }
+        .logo-img {
+            height: @menu-logo-img__height;
+            transition: -webkit-filter .2s linear,
+                                filter .2s linear,
+                        transform .1s linear;
+            width: @menu-logo-img__width;
+        }
+    }
+}
+
+//
+//  First menu level
+//  ---------------------------------------------
+
+.admin__menu {
+    position: relative;
+    li {
+        display: block;
+    }
+    .level-0 {
+        &:first-child {
+            > a {
+                position: relative;
+                //  Separator between logo and menu
+                &:after {
+                    @_menu-separator__width: 68%;
+
+                    background-color: @menu-line-before__background-color;
+                    content: '';
+                    display: block;
+                    height: @menu-line-before__height;
+                    left: 0;
+                    margin-left: (100% - @_menu-separator__width) / 2;
+                    position: absolute;
+                    top: 0;
+                    width: @_menu-separator__width;
+                }
+            }
+            &._active {
+                > a {
+                    &:after {
+                        display: none;
+                    }
+                }
+            }
+        }
+        //  Hover & active state for menu level 0 item
+        &._active,
+        &._hover,
+        &:hover {
+            > a {
+                background-color: @menu-item__active__background-color;
+                color: @menu-item__active__color;
+            }
+        }
+        > a {
+            color: @menu-item__color;
+            display: block;
+            font-size: @menu-item__font-size;
+            letter-spacing: .025em;
+            min-height: 6.2rem;
+            padding: 1.2rem .5rem .5rem;
+            position: relative;
+            text-align: center;
+            text-decoration: none;
+            text-transform: uppercase;
+            transition: background-color .1s linear;
+            word-break: break-all;
+            z-index: @menu__z-index;
+            &:focus {
+                box-shadow: none;
+            }
+            &:before {
+                &:extend(.abs-icon all);
+                content: @icon-menu-item__content;
+                display: block;
+                font-family: @icons-admin__font-name;
+                font-size: 2.2rem;
+                height: @menu-item-icon__height;
+                margin-bottom: .3rem;
+            }
+        }
+    }
+
+    //
+    //  Second menu level
+    //  ---------------------------------------------
+
+    .level-0 {
+        > .submenu {
+            background-color: @submenu__background-color;
+            box-shadow: 0 0 3px @color-black;
+            left: -100rem;
+            min-height: ~'calc(@{menu-logo__outer-size} + 2rem + 100%)';
+            padding: @submenu__padding-vertical 0 0;
+            position: absolute;
+            top: -@menu-logo__outer-size;
+            transition: all .7s linear;
+            visibility: hidden;
+            z-index: @submenu__z-index;
+            &._show {
+                left: 100%;
+                visibility: visible;
+            }
+        }
+        &._recent {
+            &._hover {
+                .submenu {
+                    left: 100%;
+                    visibility: visible;
+                }
+            }
+        }
+    }
+
+    .level-1 {
+        margin-left: @submenu__padding-horizontal;
+        margin-right: @submenu__padding-horizontal;
+    }
+
+    [class*='level-'] {
+        &:not(.level-0) {
+            a {
+                display: block;
+                padding: 1.25rem @submenu__padding-horizontal;
+            }
+        }
+    }
+
+    .submenu {
+        li {
+            min-width: @submenu-column__width;
+        }
+        a {
+            color: @submenu-link__color;
+            .keyfocus & {
+                text-decoration: none;
+            }
+            &:active,
+            &:focus {
+                box-shadow: none;
+                .keyfocus & {
+                    background-color: @submenu-link__focus__background-color;
+                }
+            }
+        }
+        .parent {
+            margin-bottom: 4.5rem;
+            //  Section title
+            //  ToDo UI: Should be not a link, strong instead and have a classname
+            > a {
+                color: @submenu-section-label__color;
+                display: block;
+                font-size: 1.6rem;
+                font-weight: @font-weight__semibold;
+                margin-bottom: .7rem;
+                pointer-events: none;
+            }
+        }
+        .column {
+            display: table-cell;
+        }
+    }
+
+    .submenu-title {
+        color: @submenu-title__color;
+        display: block;
+        font-size: 2.2rem;
+        font-weight: @font-weight__semibold;
+        margin-bottom: .4rem + @submenu-heading-group__indent-bottom;
+        margin-left: @submenu__padding-horizontal * 2;
+        margin-right: @submenu__padding-horizontal * 2 + @submenu-action-close__indent-right;
+    }
+
+    .submenu-sub-title {
+        color: @submenu-title__color;
+        display: block;
+        font-size: @font-size__s;
+        margin: -(@submenu-heading-group__indent-bottom) @submenu__padding-horizontal * 2 + @submenu-action-close__indent-right 3.8rem @submenu__padding-horizontal * 2;
+    }
+
+    .submenu-close {
+        &:extend(.abs-action-reset all);
+        padding: 2.4rem @submenu-action-close__indent-right;
+        position: absolute;
+        right: 0;
+        top: 0;
+        &:before {
+            &:extend(.abs-icon all);
+            color: @submenu-section-label__color;
+            content: @icon-close-mage__content;
+            font-size: 1.7rem;
+            .transition(color);
+        }
+        &:hover {
+            &:before {
+                color: @color-white;
+            }
+        }
+    }
+
+    //
+    //  Menu icons
+    //  ---------------------------------------------
+
+    .item-dashboard {
+        > a {
+            &:before {
+                @_menu-item-dashboard__size: 1.8rem;
+
+                content: @icon-dashboard__content;
+                font-size: @_menu-item-dashboard__size;
+                padding-top: @menu-item-icon__height - @_menu-item-dashboard__size;
+            }
+        }
+    }
+
+    .item-sales {
+        > a {
+            &:before {
+                content: @icon-sales__content;
+            }
+        }
+    }
+
+    .item-catalog {
+        > a {
+            &:before {
+                content: @icon-product__content;
+            }
+        }
+    }
+
+    .item-customer {
+        > a {
+            &:before {
+                @_menu-item-dashboard__size: 2.6rem;
+
+                content: @icon-customers__content;
+                font-size: @_menu-item-dashboard__size;
+                position: relative;
+                top: @menu-item-icon__height - @_menu-item-dashboard__size;
+            }
+        }
+    }
+
+    .item-marketing {
+        > a {
+            &:before {
+                @_menu-item-dashboard__size: 2rem;
+
+                content: @icon-promotions__content;
+                font-size: @_menu-item-dashboard__size;
+                padding-top: @menu-item-icon__height - @_menu-item-dashboard__size;
+            }
+        }
+    }
+
+    .item-content {
+        > a {
+            &:before {
+                @_menu-item-dashboard__size: 2.4rem;
+
+                content: @icon-cms__content;
+                font-size: @_menu-item-dashboard__size;
+                position: relative;
+                top: @menu-item-icon__height - @_menu-item-dashboard__size;
+            }
+        }
+    }
+
+    .item-report {
+        > a {
+            &:before {
+                content: @icon-reports__content;
+            }
+        }
+    }
+
+    .item-stores {
+        > a {
+            &:before {
+                @_menu-item-dashboard__size: 1.9rem;
+
+                content: @icon-stores__content;
+                font-size: @_menu-item-dashboard__size;
+                padding-top: @menu-item-icon__height - @_menu-item-dashboard__size;
+            }
+        }
+    }
+
+    .item-system {
+        > a {
+            &:before {
+                content: @icon-systems__content;
+            }
+        }
+    }
+}
+
+.admin__menu-overlay {
+    bottom: 0;
+    left: 0;
+    position: absolute;
+    right: 0;
+    top: 0;
+    z-index: @menu-overlay__z-index;
+}
+
+//
+//  Tablets
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__l) {
+    .admin__menu {
+        .submenu {
+            li {
+                min-width: @submenu-column__width__l;
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_actions-group.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_actions-group.less
new file mode 100644
index 0000000000000000000000000000000000000000..5cb3dbfa13ca1c6820d21240d0357598a122a908
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_actions-group.less
@@ -0,0 +1,75 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Actions group
+//  _____________________________________________
+
+//
+//  Components
+//  ---------------------------------------------
+
+@import 'actions-group/_user';
+@import 'actions-group/_search';
+@import 'actions-group/_notifications';
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@page-header-action__height: 3.4rem;
+@page-header-action__color: @text__color;
+@page-header-action__hover__color: darken(@page-header-action__color, 20%);
+@page-header-action__background-color: @page-wrapper__background-color;
+@page-header-action__active__border-color: @color-blue-pure;
+@page-header-action__border-color: @color-light-gray;
+
+//
+//  Extends
+//  ---------------------------------------------
+
+.abs-page-header-action {
+    background-color: @page-header-action__background-color;
+    border: 1px solid transparent;
+    border-bottom: none;
+    color: @page-header-action__color;
+    display: inline-block;
+    height: @page-header-action__height;
+    position: relative;
+    transition: border-color @appering__transition-duration @apperaing__transition-timing-function;
+    &:hover {
+        color: @page-header-action__hover__color;
+        text-decoration: none;
+    }
+}
+
+.abs-page-header-action-menu {
+    background-color: @page-header-action__background-color;
+    border: 1px solid @page-header-action__active__border-color;
+    box-shadow: @component__box-shadow__base;
+    margin-top: -1px;
+    opacity: 0;
+    position: absolute;
+    right: 0;
+    top: 100%;
+    transition: all @appering__transition-duration @apperaing__transition-timing-function;
+    visibility: hidden;
+    &:before {
+        content: '';
+        position: absolute;
+    }
+    > li {
+        display: block;
+        > a {
+        }
+    }
+}
+
+//
+
+.page-header-actions {
+    &:extend(.abs-clearfix all);
+    padding-top: 1.1rem;
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_headings-group.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_headings-group.less
new file mode 100644
index 0000000000000000000000000000000000000000..0e97ccafd436e846d72f2b04444a4d32a1841a09
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/_headings-group.less
@@ -0,0 +1,45 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Headings group
+//  _____________________________________________
+
+//
+//  Imports
+//  ---------------------------------------------
+
+// @import 'headings-group/_breadcrumbs.less'; // Component exist only in design
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@page-title__color: @text__color;
+@page-title__font-size: 2.8rem;
+
+//  Breadcrumbs component not included in common styles, but title used it
+@page-title-breadcrumbs__min-height: round(@page-title-breadcrumb__font-size * @line-height__base, 1);
+@page-title-breadcrumb__font-size: @font-size__s;
+
+//
+
+.page-header-hgroup {
+    padding-right: @content__indent / 2;
+}
+
+//
+//  Page title
+//  ---------------------------------------------
+
+.page-title-wrapper {
+    margin-top: @page-title-breadcrumbs__min-height;
+}
+
+.page-title {
+    color: @page-title__color;
+    font-size: @page-title__font-size;
+    margin-bottom: 0;
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_notifications.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_notifications.less
new file mode 100644
index 0000000000000000000000000000000000000000..fd094d1ee44c7d1516e6f1989fb7086ad5b5034b
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_notifications.less
@@ -0,0 +1,181 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Action group -> Notifications
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@notifications__font-size: round(@font-size__s - .1rem, 1);
+@notifications__color: @color-gray20;
+
+@notifications-action__color: @text__color;
+@notifications-action__padding-bottom: (@page-header-action__height - @notifications-action-icon__size) / 2 - .05rem;
+@notifications-action__padding-side: 2rem;
+@notifications-action__padding-top: (@page-header-action__height - @notifications-action-icon__size) / 2 + .05rem;
+@notifications-action__hover__color: darken(@page-header-action__color, 20%);
+@notifications-action-icon__size: 1.9rem;
+@notifications-action-menu__z-index: @header__z-index;
+
+@notifications-close__color: @color-gray80;
+@notifications-counter__background-color: @color-tomato-brick;
+@notifications-entry__padding-top: .6rem;
+@notifications-entry__hover__background-color: @color-blue-clear-sky;
+@notifications-list__width: 32rem;
+@notifications-title__color: @color-light-phoenix;
+@notifications-time__color: @color-very-dark-gray1;
+
+//
+
+.notifications-wrapper {
+    float: right;
+    line-height: 1;
+    position: relative;
+    &.active {
+        z-index: @notifications-action-menu__z-index; // Should be over global search when active
+        .notifications-action {
+            border-color: @page-header-action__active__border-color;
+            box-shadow: @component__box-shadow__base;
+            &:after {
+                background-color: @page-header-action__background-color;
+                content: '';
+                height: @component__shadow-size__base + 1;
+                left: -(@component__shadow-size__base + 1);
+                position: absolute;
+                right: 0;
+                top: 100%;
+            }
+        }
+        .notifications-list {
+            opacity: 1;
+            visibility: visible;
+        }
+    }
+}
+
+.notifications-action {
+    &:extend(.abs-page-header-action all);
+    padding: @notifications-action__padding-top @notifications-action__padding-side @notifications-action__padding-bottom;
+    z-index: 2;
+    &:before {
+        &:extend(.abs-icon all);
+        content: @icon-notification-02__content;
+        font-size: @notifications-action-icon__size;
+    }
+    &:active {
+        &:before {
+            position: relative;
+            top: 1px;
+        }
+    }
+    .notifications-counter {
+        background-color: @notifications-counter__background-color;
+        border-radius: 1em;
+        color: @color-white;
+        display: inline-block;
+        font-size: @notifications__font-size;
+        font-weight: @font-weight__bold;
+        left: 50%;
+        margin-left: .3em;
+        margin-top: -1.1em;
+        padding: .3em .5em;
+        position: absolute;
+        top: 50%;
+    }
+}
+
+.notifications-list {
+    &:extend(.abs-page-header-action-menu all);
+    padding-top: 1rem;
+    width: @notifications-list__width;
+    z-index: 1;
+    &:before {
+        z-index: 2;
+    }
+}
+
+.notifications-entry {
+    line-height: @line-height__base;
+    padding: @notifications-entry__padding-top @notifications-action__padding-side .8rem;
+    position: relative;
+    transition: background-color .2s linear;
+    &:hover {
+        background-color: @notifications-entry__hover__background-color;
+    }
+    &.notifications-entry-last {
+        margin: 0 @notifications-action__padding-side;
+        padding: .3rem 0 1.3rem;
+        text-align: center;
+        &:hover {
+            background-color: transparent;
+        }
+    }
+    + .notifications-entry-last {
+        border-top: 1px solid @color-light-gray;
+        padding-bottom: .6rem;
+    }
+    //  Case with cutted message description
+    ._cutted {
+        cursor: pointer;
+        .notifications-entry-description-start {
+            &:after {
+                content: '...';
+            }
+        }
+    }
+}
+
+.notifications-entry-title {
+    color: @notifications-title__color;
+    display: block;
+    font-size: @notifications__font-size;
+    font-weight: @font-weight__bold;
+    margin-bottom: .7rem;
+    margin-right: 1em;
+}
+
+.notifications-entry-description {
+    color: @notifications__color;
+    font-size: @notifications__font-size;
+    margin-bottom: .8rem;
+}
+
+.notifications-entry-description-end {
+    display: none;
+    &._show {
+        display: inline;
+    }
+}
+
+.notifications-entry-time {
+    color: @notifications-time__color;
+    font-size: @notifications__font-size;
+}
+
+.notifications-close {
+    &:extend(.abs-action-reset all);
+    line-height: 1;
+    padding: @notifications-action__padding-side / 2;
+    position: absolute;
+    right: 0;
+    top: .6rem;
+    &:before {
+        &:extend(.abs-icon all);
+        color: @notifications-close__color;
+        content: @icon-remove-small__content;
+        .transition(color);
+    }
+    &:hover {
+        &:before {
+            color: darken(@notifications-close__color, 10%);
+        }
+    }
+    &:active {
+        transform: scale(.95);
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less
new file mode 100644
index 0000000000000000000000000000000000000000..8b733d549c46afbd5e8f133acc3ec51ee86b5515
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_search.less
@@ -0,0 +1,149 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Actions group -> Global search
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@search-global__z-index: @user-account-menu__z-index - 10; // Should be lower than user account
+
+@search-global-field__width: @search-global-input__width;
+
+@search-global-input__font-size: @font-size__base;
+@search-global-input__height: @page-header-action__height;
+@search-global-input__padding-bottom: (@search-global-input__height - @search-global-icon__height) / 2 - .1rem;
+@search-global-input__padding-top: (@search-global-input__height - @search-global-icon__height) / 2 + .1rem;
+@search-global-input__padding-side: @font-size__base;
+@search-global-input__width: @search-global-icon__width + @search-global-input__padding-side * 2;
+
+@search-global-input__active__padding-right: @search-global-icon__height + 2rem;
+@search-global-input__active__width: 25rem;
+
+@search-global-icon__height: 2rem;
+@search-global-icon__width: 2.2rem;
+
+@search-global-action__width: @search-global-input__active__padding-right;
+
+//
+
+.search-global {
+    float: right;
+    margin-right: -.3rem; // px perfect
+    position: relative;
+    z-index: @search-global__z-index;
+}
+
+.search-global-field {
+    min-width: @search-global-field__width;
+    &._active {
+        .search-global-input {
+            background-color: @page-header-action__background-color;
+            border-color: @page-header-action__active__border-color;
+            box-shadow: @component__box-shadow__base;
+            padding-right: @search-global-input__active__padding-right;
+            width: @search-global-input__active__width;
+        }
+        .search-global-action {
+            &:extend(.abs-action-reset all);
+            display: block;
+            height: @search-global-input__height;
+            position: absolute;
+            right: 0;
+            text-indent: -100%;
+            top: 0;
+            width: @search-global-icon__width + @search-global-input__padding-side * 2;
+            z-index: 3;
+        }
+    }
+    //  Autocomplete
+    .autocomplete-results {
+        height: @search-global-input__height;
+        position: absolute;
+        right: 0;
+        top: 0;
+        width: @search-global-input__active__width;
+    }
+    .search-global-menu {
+        border: 1px solid @page-header-action__active__border-color;
+        border-top-color: transparent;
+        box-shadow: @component__box-shadow__base;
+        left: 0;
+        margin-top: -2px;
+        padding: 0;
+        position: absolute;
+        right: 0;
+        top: 100%;
+        z-index: 2;
+        &:after {
+            background-color: @page-header-action__background-color;
+            content: '';
+            height: @component__shadow-size__base;
+            left: 0;
+            position: absolute;
+            right: 0;
+            top: -@component__shadow-size__base;
+        }
+        > li {
+            background-color: @page-header-action__background-color;
+            border-top: 1px solid @page-header-action__border-color;
+            display: block;
+            font-size: @font-size__s;
+            padding: @search-global-input__padding-top @search-global-input__padding-side @search-global-input__padding-bottom;
+        }
+        .title {
+            display: block;
+            font-size: @search-global-input__font-size;
+        }
+        .type {
+            color: darken(@text__color, 10%);
+            display: block;
+        }
+    }
+}
+
+.search-global-label {
+    cursor: pointer;
+    height: @search-global-input__height;
+    padding: @search-global-input__padding-top @search-global-input__padding-side @search-global-input__padding-bottom;
+    position: absolute;
+    right: 0;
+    top: 0;
+    z-index: 2;
+    &:active {
+        .scale();
+    }
+    &:hover {
+        &:before {
+            color: @page-header-action__hover__color;
+        }
+    }
+    &:before {
+        &:extend(.abs-icon all);
+        content: @icon-search__content;
+        font-size: @search-global-icon__height;
+    }
+}
+
+.search-global-input {
+    background-color: transparent;
+    border: 1px solid transparent;
+    font-size: @search-global-input__font-size;
+    height: @search-global-input__height;
+    padding: @search-global-input__padding-top @search-global-input__padding-side @search-global-input__padding-bottom;
+    position: absolute;
+    right: 0;
+    top: 0;
+    transition: all .1s linear, width .3s linear;
+    width: @search-global-input__width;
+    z-index: 1;
+}
+
+.search-global-action {
+    display: none;
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_user.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_user.less
new file mode 100644
index 0000000000000000000000000000000000000000..678ed4b2342689e39c6a8bc2e1e8b21288409102
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/actions-group/_user.less
@@ -0,0 +1,128 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Actions group -> User menu
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@user__font-size: round(@font-size__base - .1rem, 1);
+
+@user-account__padding-bottom: .4rem;
+@user-account__padding-left: 4rem;
+@user-account__padding-top: .7rem;
+@user-account__padding-right: 2.8rem;
+
+@user-account-menu__min-width: 20rem;
+@user-account-menu__z-index: @notifications-action-menu__z-index - 10; // Should be lower than notifications
+
+//
+
+.admin-user {
+    float: right;
+    line-height: @line-height__base; // ToDo UI: Delete with admin scope
+    margin-left: .3rem;
+    position: relative;
+    z-index: @user-account-menu__z-index;
+    &.active {
+        .admin-user-account {
+            border-color: @page-header-action__active__border-color;
+            box-shadow: @component__box-shadow__base;
+        }
+        .admin-user-account-text-wrapper {
+            &:after {
+                background-color: @page-header-action__background-color;
+                content: '';
+                height: @component__shadow-size__base + 1;
+                left: -(@component__shadow-size__base + 1);
+                position: absolute;
+                right: 0;
+                top: 100%;
+            }
+        }
+        .admin-user-menu {
+            opacity: 1;
+            visibility: visible;
+        }
+    }
+}
+
+.admin-user-account {
+    &:extend(.abs-page-header-action all);
+    .dropdown-triangle(
+        @_dropdown__padding-right: @user-account__padding-right;
+        @_triangle__color: @page-header-action__color;
+        @_triangle__hover__color: @page-header-action__hover__color;
+        @_triangle__right: 1.3rem;
+    );
+    font-size: @user__font-size;
+    letter-spacing: .05em;
+    padding-bottom: @user-account__padding-bottom;
+    padding-left: @user-account__padding-left;
+    padding-top: @user-account__padding-top;
+    z-index: 2;
+    &:before {
+        @_icon-user__size: 2rem;
+        
+        &:extend(.abs-icon all);
+        content: @icon-account__content;
+        font-size: @_icon-user__size;
+        left: 1.1rem;
+        margin-top: -(@_icon-user__size / 2) - .1rem;
+        position: absolute;
+        top: 50%;
+    }
+}
+
+.admin-user-account-text {
+    display: inline-block;
+    max-width: @user-account-menu__min-width - @user-account__padding-left - @user-account__padding-right - 2rem;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.admin-user-menu {
+    @_user-menu__inden-side: 1rem;
+    
+    &:extend(.abs-page-header-action-menu all);
+    line-height: @line-height__base;
+    min-width: @user-account-menu__min-width;
+    padding: .5em @_user-menu__inden-side;
+    z-index: 1;
+    &:before {
+        z-index: 1;
+    }
+    > li {
+        > a {
+            color: @page-header-action__color;
+            display: block;
+            padding: .6rem (@user-account__padding-right - @_user-menu__inden-side) .6rem .5em;
+            text-decoration: none;
+            transition: background-color .1s linear;
+            white-space: nowrap;
+            &:hover {
+                background-color: @dropdown-menu__hover__background-color;
+                color: @page-header-action__color;
+            }
+            &:active {
+                background-color: @dropdown-menu__active__background-color;
+                bottom: -1px;
+                position: relative;
+            }
+        }
+    }
+    .admin-user-name {
+        display: inline-block;
+        max-width: @user-account-menu__min-width;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        vertical-align: text-top;
+        white-space: nowrap;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/headings-group/_breadcrumbs.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/headings-group/_breadcrumbs.less
new file mode 100644
index 0000000000000000000000000000000000000000..d1823bc11637a2bfd952e97c414de419d6db8f96
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/header/headings-group/_breadcrumbs.less
@@ -0,0 +1,28 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page header -> Headings group -> Breadcrumbs
+//  _____________________________________________
+
+.page-title-breadcrumbs {
+    font-size: @page-title-breadcrumb__font-size;
+    min-height: @page-title-breadcrumbs__min-height;
+    + .page-title-wrapper {
+        margin-top: 0;
+    }
+}
+
+.page-title-breadcrumb {
+    &:hover {
+        text-decoration: none;
+    }
+    &:after {
+        &:extend(.abs-icon all);
+        content: @icon-caret-right__content;
+        font-size: .75em;
+        margin-left: .5em;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_actions-bar.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_actions-bar.less
new file mode 100644
index 0000000000000000000000000000000000000000..8b1eab46f1be18403700a87a4b4b0fbe605edcd6
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_actions-bar.less
@@ -0,0 +1,126 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+//
+//  Main elements -> Actions bar
+//  _____________________________________________
+
+//  ToDo UI: Consist old styles, should be changed with new design
+
+//
+//  Components
+//  ---------------------------------------------
+
+@import 'actions_bar/_store-switcher';
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@page-main-actions__background-color: @color-white-fog;
+@page-main-actions__border-color: @color-gray89;
+@page-main-actions__padding-side: @content__indent / 2;
+
+//
+
+.page-main-actions,
+.page-actions.fixed {
+    .extend__clearfix();
+    background: @page-main-actions__background-color;
+    border-bottom: 1px solid @page-main-actions__border-color;
+    border-top: 1px solid @page-main-actions__border-color;
+    padding: @page-main-actions__padding-side;
+}
+
+.page-main-actions {
+    margin: 0 0 2rem;
+}
+
+//
+//  Page actions group
+//  ---------------------------------------------
+
+.page-actions {
+    @_page-action__indent: 1.3rem;
+    float: right;
+    &.fixed {
+        left: @page-wrapper__indent-left;
+        position: fixed;
+        right: 0;
+        top: 0;
+        z-index: @page-actions__fixed__z-index;
+        .page-actions-inner {
+            &:before {
+                color: @page-title__color;
+                content: attr(data-title);
+                float: left;
+                font-size: @page-title__font-size;
+                margin-top: .3rem;
+                max-width: 50%;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                white-space: nowrap;
+            }
+        }
+    }
+    button,
+    .page-actions-buttons > button {
+        &:extend(.abs-action-l all);
+    }
+    > button,
+    .page-actions-buttons > button {
+        &:extend(.abs-action-quaternary all);
+        float: right;
+        margin-left: @_page-action__indent;
+        &.back,
+        &.action-back {
+            //  ToDo UI: Should be changed to ._back
+            float: left;
+            .vendor-prefix-order(-1);
+            &:before {
+                &:extend(.abs-icon all);
+                content: @icon-back-arrow__content;
+                margin-right: .5em;
+                position: relative;
+                top: 1px;
+            }
+        }
+        &.action-primary,
+        &.primary {
+            //  ToDo UI: Should be changed to .action-primary
+            &:extend(.abs-action-primary all);
+            &:extend(.abs-action-l all);
+            .vendor-prefix-order(2);
+        }
+        &.save {
+            //  ToDo UI: Should be changed to ._save
+            &:not(.primary) {
+                .vendor-prefix-order(1);
+            }
+        }
+        &.delete {
+            //  ToDo UI: Should be changed to ._delete
+            .vendor-prefix-order(-1);
+        }
+    }
+    .actions-split {
+        float: right;
+        margin-left: @_page-action__indent;
+        .vendor-prefix-order(2);
+        .dropdown-menu {
+            .item {
+                display: block;
+            }
+        }
+    }
+}
+
+.page-actions-buttons {
+    float: right;
+    justify-content: flex-end;
+    .vendor-prefix-display(flex);
+    .customer-index-edit & {
+        background-color: transparent;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/actions_bar/_store-switcher.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/actions_bar/_store-switcher.less
new file mode 100644
index 0000000000000000000000000000000000000000..3e699e2172984de88021448463571bcd9f5f87e1
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/actions_bar/_store-switcher.less
@@ -0,0 +1,263 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Main elements -> Actions bar -> Store Switcher
+//  _____________________________________________
+
+//  ToDo UI: Consist old styles, should be changed with new design
+
+.store-switcher {
+    color: @text__color; // ToDo UI: Delete with admin scope
+    float: left;
+    font-size: round(@font-size__base - .1rem, 1);
+    margin-top: 1.1rem;
+    .admin__action-dropdown {
+        margin-left: .5em;
+    }
+    .dropdown {
+        .dropdown(
+        @_options-selector: ~".dropdown-menu",
+        @_dropdown-list-border: 1px #ada89e solid,
+        @_dropdown-list-pointer: false,
+        @_icon-font-line-height: 2,
+        @_icon-font-color: @text__color,
+        @_icon-font-color-hover: @text__color,
+        @_icon-font-color-active: @text__color,
+        @_dropdown-list-item-hover: transparent,
+        @_dropdown-list-item-padding: 0,
+        @_dropdown-list-min-width: 19.5rem,
+        @_dropdown-list-shadow: @component__box-shadow__base
+        );
+    }
+    .dropdown-menu {
+        left: 0;
+        margin-top: .5em;
+        padding-top: .25em;
+        li {
+            border: 0;
+            cursor: default;
+            &:hover {
+                cursor: default;
+            }
+            a,
+            span {
+                color: @text__color;
+                display: block;
+                padding: .5rem 1.3rem;
+            }
+            a {
+                text-decoration: none;
+                &:hover {
+                    background: @color-lighter-gray;
+                }
+            }
+            span {
+                color: @color-gray68;
+                cursor: default;
+            }
+            &.current {
+                span {
+                    background: #eee;
+                    color: @text__color;
+                }
+            }
+        }
+        .store-switcher-store {
+            a,
+            span {
+                padding-left: 2.6rem;
+            }
+        }
+        .store-switcher-store-view {
+            a,
+            span {
+                padding-left: 3.9rem;
+            }
+        }
+        .dropdown-toolbar {
+            border-top: 1px solid @color-gray92;
+            margin-top: 1rem;
+            a {
+                &:before {
+                    &:extend(.abs-icon all);
+                    content: @icon-systems__content;
+                    margin-right: .25em;
+                    position: relative;
+                    top: 1px;
+                }
+            }
+        }
+    }
+}
+
+.store-switcher-label {
+    font-weight: @font-weight__bold;
+}
+
+.store-switcher-alt {
+    display: inline-block;
+    position: relative;
+    &.active {
+        .dropdown-menu {
+            display: block;
+        }
+    }
+    .dropdown-menu {
+        margin-top: 2px;
+        white-space: nowrap;
+        ul {
+            list-style: none;
+            margin: 0;
+            padding: 0;
+        }
+    }
+    strong {
+        color: #a6a098;
+        display: block;
+        font-size: 14px;
+        font-weight: 500;
+        line-height: 1.333;
+        padding: 5px 10px;
+    }
+    .store-selected {
+        color: #676056;
+        cursor: pointer;
+        font-size: 12px;
+        font-weight: 400;
+        line-height: 1.333;
+        &:after {
+            color: #b3b0ad;
+            content: '\e02c'; /* arrow down icon */
+            -webkit-font-smoothing: antialiased;
+            font-style: normal;
+            font-weight: normal;
+            margin: 0 0 0 3px;
+            speak: none;
+            vertical-align: text-top;
+        }
+    }
+    .store-switcher-website,
+    .store-switcher-store {
+        padding: 0;
+        &:hover {
+            background: none;
+        }
+    }
+    .store-switcher-store-view {
+        padding: 0;
+    }
+    .store-switcher-all,
+    .manage-stores {
+        padding: 0;
+        > a {
+            color: #676056;
+            display: block;
+            font-size: 12px;
+            padding: 8px 15px;
+            text-decoration: none;
+        }
+    }
+}
+
+.store-switcher-website {
+    margin: 5px 0 0;
+    > strong {
+        padding-left: 13px;
+    }
+}
+
+.store-switcher-store {
+    margin: 1px 0 0;
+    > strong {
+        padding-left: 20px;
+    }
+    > ul {
+        margin-top: 1px;
+    }
+}
+
+.store-switcher-store-view {
+    &:first-child {
+        border-top: 1px solid #e5e5e5;
+    }
+    > a {
+        color: #333;
+        display: block;
+        font-size: 13px;
+        padding: 5px 15px 5px 24px;
+        text-decoration: none;
+    }
+}
+
+//
+//  Tooltip
+//  ---------------------------------------------
+
+.tooltip {
+    display: inline-block;
+    margin-left: .5em;
+    .help {
+        span,
+        a {
+            cursor: pointer;
+            display: inline-block;
+            height: 22px;
+            position: relative;
+            vertical-align: middle;
+            width: 22px;
+            z-index: 2;
+            &:before {
+                &:extend(.abs-icon all);
+                color: @text__color;
+                content: @icon-help__content;
+                font-size: 1.7rem;
+            }
+            span {
+                .visually-hidden();
+            }
+        }
+        a {
+            &:hover {
+                text-decoration: none;
+            }
+        }
+    }
+    .tooltip-content {
+        background: rgba(49, 48, 43, .8);
+        background: #000;
+        border-radius: 3px;
+        color: #fff;
+        display: none;
+        margin-left: -19px;
+        margin-top: 10px;
+        max-width: 200px;
+        padding: 4px 8px;
+        position: absolute;
+        text-shadow: none;
+        z-index: 20;
+        &:before {
+            border-bottom: 5px solid #000;
+            border-left: 5px solid transparent;
+            border-right: 5px solid transparent;
+            content: '';
+            height: 0;
+            left: 20px;
+            opacity: .8;
+            position: absolute;
+            top: -5px;
+            width: 0;
+        }
+        &.loading {
+            position: absolute;
+            &:before {
+                border-bottom-color: rgba(0, 0, 0, .3);
+            }
+        }
+    }
+    &:hover > .tooltip-content {
+        display: block;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_dashboard.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
similarity index 96%
rename from app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_dashboard.less
rename to app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
index acf37e82c5f6827b8ee5f1499c0313415e11ca04..9c5d8803f41d21ce991120baaeac420f56e82e65 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/_dashboard.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
@@ -110,9 +110,6 @@
     .label {
         .extend__visually-hidden();
     }
-    .form-select-label {
-        display: inline-block;
-    }
 }
 
 //  Chart
@@ -189,11 +186,11 @@
     }
 
     .tabs-horiz {
-        border-right: 1px solid @color-white; //  IE9 fix
-        float: left; //  IE9 fix
+        border-right: 1px solid @color-white; // IE9 fix
+        float: left; // IE9 fix
         overflow-x: auto;
         white-space: nowrap;
-        width: 100%; //  IE9 fix
+        width: 100%; // IE9 fix
         .ui-state-default {
             display: inline-block;
             float: none;
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/images/logo-magento-small.png b/app/design/adminhtml/Magento/backend/Magento_Backend/web/images/logo-magento-small.png
deleted file mode 100644
index 09cd7afd62f7d9e41cbba2157506b6698e4d3ac6..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/Magento_Backend/web/images/logo-magento-small.png and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module.less
index a2531a84aaa3cdaecce4c9ce9887c67f3c324534..9b0d06cc971cd25542d6272b76055b2414ffc5a2 100644
--- a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module.less
@@ -20,6 +20,7 @@
         border: 1px solid #ada89e;
         background: #fff;
         border-radius: 0 2px 2px 0;
+        height: 33px;
 
         &:after {
             width: 14px;
diff --git a/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less
index f5791698d7508ae95c3932abf1de6e9c55600bee..31318460a2ab255cd71b9e1df002f11d9b30b013 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Theme/web/css/source/module.less
@@ -27,7 +27,7 @@ body {
     line-height: @baseLineHeight;
     font-weight: @baseFontWeight;
     .font-size(@baseFontSize);
-    background: @primary7;
+    background: #f5f5f5;
     .vendor-prefix-display(flex);
     .vendor-prefix-flex-direction(column);
     & > * {
@@ -38,122 +38,11 @@ body {
 }
 
 .page-wrapper {
-    .vendor-prefix-display(flex);
-    .vendor-prefix-flex-direction(column);
-    min-height: 100%;
-    width: 100%;
     max-width: 100%;
     min-width: @layout__min-width + 2 * @layout-indent__width;
-    & > * {
-        .vendor-prefix-flex-grow(0);
-        .vendor-prefix-flex-shrink(0);
-        .vendor-prefix-flex-basis(auto);
-    }
-}
-
-.page-header {
-    &-wrapper {
-        background-color: @color-dark;
-    }
-    &:extend(._layout-width all);
-    text-align: right;
-     .clearer();
-    .logo {
-        margin-top: 5px;
-        float: left;
-        text-decoration: none;
-        display: inline-block;
-        &:before {
-            content:"";
-            display: inline-block;
-            vertical-align: middle;
-            width: 109px;
-            height: 35px;
-            background-image: url("@{baseDir}images/logo-admin.svg");
-            background-size: 109px 70px;
-            background-repeat: no-repeat;
-        }
-        &:after {
-            display: inline-block;
-            vertical-align: middle;
-            margin-left: 10px;
-            content: attr(data-edition);
-            font-weight: 600;
-            font-size: 16px;
-            color: #ef672f;
-            margin-top:-2px;
-        }
-        span {
-            .visually-hidden();
-        }
-    }
-    .dropdown-menu {
-        border: 0;
-    }
-}
-.admin-user {
-    display: inline-block;
-    vertical-align: top;
-    position: relative;
-    text-align: left;
-
-    &-account {
-        .icon-font(
-            "\e02c",
-            @_icon-font: "MUI-Icons",
-            @_icon-font-size: 13px,
-            @_icon-font-line-height: 13px,
-            @_icon-font-margin: -3px 0 0,
-            @_icon-font-position: after
-        );
-        display: inline-block;
-        padding: 12px 14px;
-        color: @primary7;
-        &:link,
-        &:visited {
-            color: @primary7;
-        }
-        &:focus,
-        &:active,
-        &:hover {
-            color: @primary7;
-            text-decoration: none;
-        }
-        .active & {
-            background-color: #FFF;
-            color: #676056;
-        }
-    }
-    &-menu {
-        padding: 15px;
-        white-space: nowrap;
-        margin-top: 0;
-        li {
-            border: 0;
-            padding: 0;
-            &:hover {
-                background: transparent;
-            }
-        }
-        a {
-            display: block;
-            .style6();
-            line-height: 1.385;
-            padding: 3px 12px 3px;
-            text-decoration: none;
-            &:hover {
-                color: @primary4;
-                background: @defaultButton5; // @todo: color var
-                text-decoration: none;
-            }
-            span:before {
-                content: "(";
-            }
-            span:after {
-                content: ")";
-            }
-        }
-    }
+    margin-left: 8.8rem; // migration styles -> @menu__width
+    background-color: #fff;
+    box-sizing: border-box;
 }
 
 .page-actions {
@@ -165,316 +54,6 @@ body {
     }
 }
 
-//
-//    Page main actions
-//--------------------------------------
-.page-main-actions {
-    .clearfix();
-    background: #e0dace;
-    color: @page-main-action-color;
-    padding: 15px;
-    margin-left: auto;
-    margin-right: auto;
-    box-sizing: border-box;
-    .page-actions {
-        float: right;
-        .page-actions-buttons {
-            float: right;
-            .vendor-prefix-display(flex);
-            justify-content: flex-end;
-        }
-        button {
-            margin-left: 13px;
-            //flex-shrink: 0;
-            &.primary {
-                // &:not(:last-child) {
-                //     float: right;
-                // }
-                float: right;
-                .vendor-prefix-order(2);
-            }
-            &.save:not(.primary) {
-                // &:not(:last-child) {
-                //     float: right;
-                // }
-                float: right;
-                .vendor-prefix-order(1);
-            }
-            &.back,
-            &.action-back,
-            &.delete {
-                .button-reset();
-                margin: 0 13px;
-                .ie & {
-                    margin-top: 6px;
-                }
-            }
-            &.delete {
-                color: #e22626;
-                float: left;
-                .vendor-prefix-order(-1);
-            }
-            &.back,
-            &.action-back {
-                float: left;
-                .vendor-prefix-order(-1);
-                .icon-font(
-                    @_icon-font-content: @icon-arrow-left-thin,
-                    @_icon-font-line-height: normal,
-                    @_icon-font-margin: 0 2px 0 0
-                );
-            }
-        }
-        .actions-split {
-            margin-left: 13px;
-            // &:not(:last-child) {
-            //     float: right;
-            // }
-            float: right;
-            .vendor-prefix-order(2);
-            button {
-                &.primary {
-                    float: left;
-                }
-            }
-            .dropdown-menu {
-                text-align: left;
-                .item {
-                    display: block;
-                }
-            }
-        }
-        // Fixed page actions
-        &.fixed {
-            position: fixed;
-            top: 0;
-            left: 0;
-            right: 0;
-            z-index: 10;
-            padding: 0;
-            background: -webkit-linear-gradient(top, rgba(245, 242, 237, 1) 0%, rgba(245, 242, 237, 1) 56%, rgba(245, 242, 237, 0) 100%); // Use in 4.3 Android
-            background: -ms-linear-gradient(top, rgba(245, 242, 237, 1) 0%, rgba(245, 242, 237, 1) 56%, rgba(245, 242, 237, 0) 100%); // Use in 10 IE
-            background: linear-gradient(to bottom, rgba(245, 242, 237, 1) 0%, rgba(245, 242, 237, 1) 56%, rgba(245, 242, 237, 0) 100%);
-            background: #e0dace;
-            .page-actions-inner {
-                position: relative;
-                padding-top: 15px;
-                padding-bottom: 15px;
-                min-height: 36px;
-                text-align: right;
-                .clearfix();
-                box-sizing: border-box;
-                &:before {
-                    text-align: left;
-                    content: attr(data-title);
-                    float: left;
-                    font-size: 20px;
-                    max-width: 50%;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    white-space: nowrap;
-                }
-                .lt-ie10 & {
-                    background: #f5f2ed;
-                }
-            }
-        }
-    }
-    .store-switcher {
-        margin-top: 5px;
-    }
-}
-
-//
-//    Store switcher
-//-------------------------------------
-
-.store-switcher {
-    display: inline-block;
-    font-size: 13px;
-    .label {
-        margin-right: 5px;
-    }
-    .actions.dropdown {
-        .dropdown(
-            @_options-selector :  ~".dropdown-menu",
-            @_dropdown-list-border: 1px #ada89e solid,
-            @_dropdown-list-pointer: false,
-            @_icon-font-line-height: 20px,
-            @_icon-font-color: @page-main-action-color,
-            @_icon-font-color-hover: @page-main-action-color,
-            @_icon-font-color-active: @page-main-action-color,
-            @_dropdown-list-item-hover: transparent,
-            @_dropdown-list-item-padding: 0,
-            @_dropdown-list-min-width: 195px
-        );
-        .action.toggle {
-            .button-reset();
-            color: @color-link;
-            line-height: normal;
-            margin-top: 2px;
-            vertical-align: middle;
-        }
-        ul.dropdown-menu {
-            margin-top: 4px;
-            padding-top: 5px;
-            left: 0;
-            li {
-                border: 0;
-                cursor: default;
-                &:hover {
-                    cursor: default;
-                }
-                a,
-                span {
-                    padding: 5px 13px;
-                    display: block;
-                    color: @page-main-action-color;
-                }
-                a {
-                    text-decoration: none;
-                    &:hover {
-                        background: #edf9fb;
-                    }
-                }
-                span {
-                    color: #ababab;
-                    cursor: default;
-                }
-                &.current {
-                    span {
-                        color: @page-main-action-color;
-                        background: #eee;
-                    }
-                }
-            }
-            .store-switcher-store {
-                a,
-                span {
-                    padding-left: 26px;
-                }
-            }
-            .store-switcher-store-view {
-                a,
-                span {
-                    padding-left: 39px;
-                }
-            }
-            .dropdown-toolbar {
-                border-top: 1px #ededed solid;
-                margin-top: 10px;
-                a {
-                    .icon-font(
-                        @_icon-font-content: @icon-settings,
-                        @_icon-font-size: 20px,
-                        @_icon-font-line-height: normal,
-                        @_icon-font-vertical-align: text-top,
-                        @_icon-font-margin: 0 3px 0 -4px
-                    );
-                    display: block;
-                }
-            }
-        }
-    }
-}
-
-//
-//    Tooltip
-//-------------------------------------
-.tooltip {
-    display: inline-block;
-    margin-left: 5px;
-    .help span,
-    .help a {
-        width: 16px;
-        height: 16px;
-        text-align: center;
-        background: rgba(194,186,169,.5);
-        cursor: pointer;
-        &:hover {
-            background: #c2baa9;
-        }
-        border-radius: 10px;
-        vertical-align: middle;
-        .icon-font(
-            @_icon-font: @font-family__base,
-            @_icon-font-content: '?',
-            @_icon-font-size: 13px,
-            @_icon-font-line-height: 16px,
-            @_icon-font-color: #5a534a,
-            @_icon-font-text-hide: true,
-            @_icon-font-vertical-align: top
-        );
-        &:before {
-            font-weight: 700;
-        }
-    }
-    //TODO Tooltips
-    .tooltip-content {
-        display: none;
-        position: absolute;
-        max-width: 200px;
-        margin-top: 10px;
-        margin-left: -19px;
-        padding: 4px 8px;
-        border-radius: 3px;
-        background: #000;
-        background: rgba(49, 48, 43, .8);
-        color: #fff;
-        text-shadow: none;
-        z-index: 20;
-        &:before {
-            content: '';
-            position: absolute;
-            width: 0;
-            height: 0;
-            top: -5px;
-            left: 20px;
-            border-left: 5px solid transparent;
-            border-right: 5px solid transparent;
-            border-bottom: 5px solid #000;
-            opacity: .8;
-        }
-        &.loading {
-            position: absolute;
-            &:before {
-                border-bottom-color: rgba(0, 0, 0, .3);
-            }
-        }
-    }
-    &:hover > .tooltip-content {
-        display: block;
-    }
-}
-
-//
-//    Buttons
-//--------------------------------------
-button {
-    border-radius: 2px;
-    .button();
-    &.primary {
-        .button-primary();
-    }
-}
-
-.actions-split {
-    button {
-        margin-left: 0!important;
-    }
-    .dropdown-split(
-        @_toggle-selector: ~".action-toggle",
-        @_button-selector: ~".action-default",
-        @_options-selector :  ~".dropdown-menu",
-        @_dropdown-split-button-border-radius-fix: true,
-        @_dropdown-split-list-min-width: 175px
-    );
-    vertical-align: middle;
-    .action-toggle:after {
-        height: 13px;
-    }
-}
-
 .page-content {
     &:extend(._layout-width all);
     .clearer();
@@ -484,38 +63,30 @@ button {
     margin-bottom: 20px;
 }
 
-.page-footer {
-    &-wrapper {
-        background-color: @color-light;
-        margin-top: auto;
+button {
+    border-radius: 2px;
+    .button();
+    &.primary {
+        .button-primary();
     }
-    padding: 15px 0;
-    &:extend(._layout-width all);
-    .clearer();
 }
 
-.footer-legal {
-    float: right;
-    width: 550px;
-    .link-report,
-    .magento-version,
-    .copyright {
-        font-size: 13px;
-    }
-    &:before {
-        content:"";
-        display: inline-block;
-        vertical-align: middle;
-        position: absolute;
-        z-index: 1;
-        margin-top: 2px;
-        margin-left: -35px;
-        width: 30px;
-        height: 35px;
-        background-size: 109px 70px;
-        background: url("@{baseDir}images/logo-admin.svg") no-repeat 0 -21px;
-    }
-}
+//.actions-split {
+//    button {
+//        margin-left: 0 !important;
+//    }
+//    .dropdown-split(
+//        @_toggle-selector: ~".action-toggle",
+//        @_button-selector: ~".action-default",
+//        @_options-selector :  ~".dropdown-menu",
+//        @_dropdown-split-button-border-radius-fix: true,
+//        @_dropdown-split-list-min-width: 175px
+//    );
+//    vertical-align: middle;
+//    .action-toggle:after {
+//        height: 13px;
+//    }
+//}
 
 //
 // Icons
diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less
index 31d54b3810f808d5d1e96e74a8944f0d43e96509..4b1700c9ad9b6e955cbe91cb40394161543b2101 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/_module.less
@@ -3,4 +3,4 @@
 //  * See COPYING.txt for license details.
 //  */
 
-//@import 'formelements';
+@import 'module/_tabnav';
diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/formelements.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/formelements.less
deleted file mode 100644
index 99605de8c00cfd088f76e1bbc946138ff0ab0ea7..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/formelements.less
+++ /dev/null
@@ -1,586 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-@field-control--border-color: #adadad;
-@field-control_focus--border-color: #007BDB;
-@field-scope--color: #808080;
-@field-label--color: #007BDB;
-@field-divider--color: #ccc;
-@field-label--color: #303030;
-@field-label-disabled--color: #999;
-@field-label_required--color: #EB5202;
-@field-note--color: #303030;
-@field-control--color: #303030;
-@field-control--background-color: #fff;
-@field-control_disabled--background-color: #E9E9E9;
-@field-control-addon--color: #858585;
-@field-date-icon--color: #514943;
-@field-tooltip-icon--color: #fff;
-@field-tooltip-icon--background-color: #514943;
-@field-tooltip-content--background-color: #fff8d7;
-@field-tooltip-content--border-color: #adadad;
-@field-error--color: #555;
-@field-error--background-color: #FFF8D6;
-@field-error--border-color: #E22626;
-
-
-// Reset inherited
-
-.control {
-    .nested {
-        padding: 0;
-    }
-    *:first-child {
-        margin-bottom: 0;
-    }
-}
-
-
-.field-tooltip {
-    display: inline-block;
-    vertical-align: top;
-    margin-top: 5px;
-    .field-choice & {
-        margin-top: 10px
-    }
-    position: relative;
-    &:hover {
-        z-index: 99;
-    }
-    z-index: 1;
-    width:0;
-    overflow: visible;
-    &-action {
-        position: relative;
-        z-index: 2;
-        margin-left: 18px;
-        width: 22px;
-        height: 22px;
-        display: inline-block;
-        cursor: pointer;
-        &:before {
-            content: "?";
-            font-weight: 500;
-            font-size: 18px;
-            display: inline-block;
-            overflow: hidden;
-            height: 22px;
-            border-radius: 11px;
-            line-height: 22px;
-            width: 22px;
-            text-align: center;
-            color: @field-tooltip-icon--color;
-            background-color: @field-tooltip-icon--background-color;
-        }
-        span {
-            .visually-hidden();
-        }
-    }
-    .control-text:focus + &-content,
-    &:hover &-content {
-        display: block;
-    }
-    &-content {
-        display: none;
-        position: absolute;
-        z-index: 1;
-        width: 320px;
-        background: @field-tooltip-content--background-color;
-        padding: 15px 25px;
-        right: -66px;
-        border: 1px solid @field-tooltip-content--border-color;
-        border-radius: 1px;
-        bottom: 42px;
-        @_shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
-        .css(box-shadow, @_shadow);
-        &:after,
-        &:before {
-            content: "";
-            display: block;
-            .arrow(down,16px,@field-tooltip-content--border-color);
-            position: absolute;
-            right: 20px;
-            top: 100%;
-            z-index: 3;
-        }
-        &:after {
-            border-top-color: @field-tooltip-content--background-color;
-            margin-top: -1px;
-            z-index: 4;
-        }
-    }
-}
-
-.form__field {
-    &.field-error {
-        .control [class*="control-"] {
-            border-color: @field-error--border-color;
-            &:before {
-                border-color: @field-error--border-color;
-            }
-        }
-    }
-    .mage-error {
-       border: 1px solid @field-error--border-color;
-       display: block;
-       margin: 2px 0 0;
-       padding: 6px 10px 10px;
-       background: @field-error--background-color;
-       color: @field-error--color;
-       font-size: 12px;
-       font-weight: 500;
-       box-sizing: border-box;
-       max-width: 380px;
-    }
-    .control-addon {
-        + .mage-error {
-            .no-flexbox.no-flexboxlegacy & {
-                display: inline-block;
-                width: 100%;
-            }
-        }
-    }
-}
-
-.form__field {
-    position: relative;
-    z-index: 1;
-    &:hover {
-        z-index: 2;
-    }
-    .control & {
-        position: static;
-    }
-}
-.form__field[data-config-scope]:before {
-    content: attr(data-config-scope);
-    display: inline-block;
-    position: absolute;
-    color: @field-scope--color;
-    right: 0;
-    top:6px;
-}
-.control .form__field[data-config-scope]:nth-child(n+2):before {
-    content: "";
-}
-
-.form__field.field-disabled {
-    > .label {
-        color: @field-label-disabled--color;
-    }
-    &.field .control [class*="control-"][disabled] {
-        background-color: @field-control_disabled--background-color;
-        opacity: .5;
-        color: @field-control--color;
-        border-color: @field-control--border-color;
-    }
-}
-
-
-
-// New styling
-
-.control-fields {
-    .label ~ .control {
-        width: 100%;
-    }
-}
-
-.form__field {
-    border: 0;
-    padding: 0;
-    .note {
-        color: @field-note--color;
-        padding: 0;
-        margin: 10px 0 0;
-        max-width: 380px;
-        &:before {
-            display: none;
-        }
-    }
-    &.form__field {
-        margin-bottom: 0;
-        & + & {
-            margin-top: 15px;
-        }
-        &:not(.choice) ~ .choice {
-            margin-left: 20px;
-            margin-top: 5px;
-        }
-        &.choice ~ .choice {
-            margin-top: 9px;
-        }
-        & ~ .choice:last-child {
-            margin-bottom: 8px;
-        }
-    }
-    .fieldset > & {
-        margin-bottom: 30px;
-    }
-
-    .label {
-        color: @field-label--color;
-    }
-    &:not(.choice) > .label {
-        font-size: 14px;
-        font-weight: 600;
-        width: 30%;
-        padding-right: 30px;
-        padding-top: 0;
-        line-height: 33px;
-        white-space: nowrap;
-        &:before {
-            content: ".";
-            visibility: hidden;
-            width: 0;
-            margin-left: -7px;
-            overflow: hidden;
-        }
-        span {
-            white-space: normal;
-            display: inline-block;
-            vertical-align: middle;
-            line-height: 1.2;
-        }
-    }
-    &.required > .label {
-        &:after {
-            content: "";
-            margin-left: 0;
-        }
-        span:after {
-            content: "*";
-            color: @field-label_required--color;
-            display: inline;
-            font-weight: 500;
-            font-size: 16px;
-            margin-top: 2px;
-            position: absolute;
-            z-index: 1;
-            margin-left: 10px;
-        }
-    }
-    .control {
-        &-file {
-            margin-top: 6px;
-        }
-        &-select {
-            line-height: 33px;
-        }
-        &-select:not([multiple]),
-        &-text {
-            height: 33px;
-            max-width: 380px;
-        }
-        &-addon {
-             max-width: 380px;
-        }
-        &-textarea,
-        &-select,
-        &-text {
-            border: 1px solid @field-control--border-color;
-            border-radius: 1px;
-            padding: 0 10px;
-            color: @field-control--color;
-            background-color: @field-control--background-color;
-            font-weight: 500;
-            font-size: 15px;
-            min-width: 11em;
-            &:focus {
-                outline: 0;
-                border-color: @field-control_focus--border-color;
-                box-shadow: none;
-            }
-        }
-        &-text {
-            line-height: auto;
-        }
-        &-textarea {
-            padding-top: 6px;
-            padding-bottom: 6px;
-            line-height: 1.18em;
-        }
-        &-select[multiple],
-        &-textarea {
-            width: 100%;
-            height: ~"calc(6 * 1.2em + 14px)";
-        }
-        &-value {
-            display: inline-block;
-            padding: 6px 10px;
-        }
-        &-fields {
-            .form__field:nth-child(n+2):not(.choice) {
-                > .label {
-                    .visually-hidden;
-                }
-            }
-        }
-        &-select {
-            padding: 0;
-            option {
-                box-sizing: border-box;
-                padding: 4px 10px;
-              display: block;
-            }
-            optgroup {
-              font-weight: 600;
-              display: block;
-              padding: 4px 10px;
-              line-height: 33px;
-              list-style: inside;
-              font-style: normal;
-            }
-        }
-    }
-    .control-range {
-        & > .form__field:nth-child(2) {
-            &:before {
-                content: "\2014";
-                content: ":";
-                display: inline-block;
-                margin-left: -25px;
-                float: left;
-                width: 20px;
-                line-height: 33px;
-                text-align: center;
-            }
-        }
-    }
-    &.choice {
-        position: relative;
-        z-index: 1;
-        padding-top: 8px;
-        padding-left: 26px;
-        padding-right: 0;
-        .label {
-            font-weight: 500;
-            padding: 0;
-            display: inline;
-            float: none;
-            line-height: 18px;
-        }
-        input {
-            position: absolute;
-            top: 8px;
-            margin-top: 3px!important;
-            &[disabled] + .label {
-                opacity: .5;
-                cursor: not-allowed;
-            }
-        }
-        .control > & {
-            max-width: 380px;
-            &:nth-child(1):nth-last-child(2),
-            &:nth-child(2):nth-last-child(1) {
-                display: inline-block;
-                & + .choice {
-                    margin-left: 41px;
-                    margin-top: 0;
-                }
-                & + .choice:before {
-                    content: "";
-                    position: absolute;
-                    display: inline-block;
-                    height: 20px;
-                    top: 8px;
-                    left: -20px;
-                    width: 1px;
-                    background: @field-divider--color;
-                }
-            }
-        }
-        .label {
-            cursor: pointer;
-        }
-        .label:before {
-            content: "";
-            position: absolute;
-            z-index: 1;
-            border: 1px solid @field-control--border-color;
-            width: 14px;
-            height: 14px;
-            top: 10px;
-            left: 0;
-            .url('images/choice_bkg.png', 'Magento_Ui');
-            border-radius: 2px;
-            background: url("@{url}") no-repeat -100% -100%;
-        }
-        input:focus + .label:before {
-            outline: 0;
-            border-color: @field-control_focus--border-color;
-            //box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
-        }
-        .control {
-            &-radio + .label:before {
-                border-radius: 8px;
-            }
-            &-radio:checked + .label:before {
-                background-position: -26px -1px;
-            }
-            &-checkbox:checked + .label:before {
-                background-position: -1px -1px;
-            }
-
-        }
-        input {
-            opacity: 0;
-        }
-        .fieldset > & {
-            margin-left: 30%;
-        }
-    }
-    .control {
-        &-after,
-        &-before {
-            border: 0;
-            color: @field-control-addon--color;
-            font-weight: 300;
-            font-size: 15px;
-            line-height: 33px;
-            display: inline-block;
-            height: 33px;
-            box-sizing: border-box;
-            padding: 0 3px;
-        }
-        .no-flexbox.no-flexboxlegacy &-before,
-        .no-flexbox.no-flexboxlegacy &-addon {
-            float: left;
-            white-space: nowrap;
-        }
-        &-addon {
-            display: inline-flex;
-            max-width: 380px;
-            width: 100%;
-            flex-flow: row nowrap;
-            position: relative;
-            z-index: 1;
-            > * {
-                position: relative;
-                z-index: 1;
-            }
-            .control-text[disabled][type],
-            .control-select[disabled][type],
-            .control-select,
-            .control-text {
-                background: transparent!important;
-                border: 0;
-                width: auto;
-                vertical-align: top;
-                order: 1;
-                flex: 1;
-                &:focus {
-                    box-shadow: none;
-                    & + label:before {
-                        outline: 0;
-                        border-color: @field-control_focus--border-color;
-                        //box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(82, 168, 236, .6);
-                    }
-                }
-                & + label {
-                    padding-left: 10px;
-                    position: static!important;
-                    z-index: 0;
-                    > * {
-                        vertical-align: top;
-                        position: relative;
-                        z-index: 2;
-                    }
-                }
-                & + label:before {
-                    box-sizing: border-box;
-                    border-radius: 1px;
-                    border: 1px solid @field-control--border-color;
-                    content: "";
-                    display: block;
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    width: 100%;
-                    height: 100%;
-                    z-index: 0;
-                    background: #fff;
-                }
-                &[disabled] + label:before {
-                    opacity: .5;
-                    background: @field-control_disabled--background-color;
-                }
-            }
-        }
-        &-after {
-            //float: right;
-            order: 3;
-            &:last-child {
-                padding-right: 10px;
-            }
-        }
-        &-before {
-            order: 0;
-        }
-
-        &-some {
-            display: flex;
-        }
-
-    }
-    [class*="control-grouped"] {
-        display: table;
-        width: 100%;
-        table-layout: fixed;
-        box-sizing: border-box;
-        & > .form__field {
-            display: table-cell;
-            width: 50%;
-            vertical-align: top;
-            > .control {
-                width: 100%;
-                float: none;
-            }
-            &:nth-child(n+2) {
-                padding-left: 20px;
-                &:not(.choice) .label {
-                    .visually-hidden();
-                }
-            }
-        }
-    }
-    [required] {
-        box-shadow: none;
-    }
-}
-
-fieldset.form__field {
-    position: relative;
-    [class*="control-grouped"],
-    .control-fields {
-        & > .form__field:first-child {
-            & > .label {
-                position: absolute;
-                left: 0;
-                top: 0;
-                opacity: 0;
-                cursor: pointer;
-                width: 30%;
-            }
-        }
-    }
-}
-
-.control-text + .ui-datepicker-trigger {
-    img {
-        display: none;
-    }
-    .button-reset();
-    .icon-font(
-        @icon-calendar,
-        @_icon-font-size: 38px,
-        @_icon-font-line-height: 33px,
-        @_icon-font-text-hide: true,
-        @_icon-font-position: after,
-        @_icon-font-color: @field-date-icon--color
-    );
-    margin-left: -40px;
-    display: inline-block;
-}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less
index 7aca453f6cef8bac6283ae193cceb750082f30b2..d990b0920e5fe022a97dbb9d4679cb5ebbb62453 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module.less
@@ -3,10 +3,7 @@
 //  * See COPYING.txt for license details.
 //  */
 
-@import "formelements.less";
-
 //colors
-
 @admin__color1: #adadad;
 @admin__color2: #d3d3d3;
 @admin__color3: #e0e0e0;
@@ -28,27 +25,24 @@
 @size-l: @size__base;
 @size-xl: @size__base;
 
+@field-date-icon--color: #514943;
+
 [class*="tab-nav-item"]:not(ul):active,
 [class*="tab-nav-item"]:not(ul):focus {
     box-shadow: none;
     outline: none;
 }
+
 .customer-index-edit {
-.col-2-left-layout, .col-1-layout {
-    background: #fff;
-}
-}
-.customer-index-edit {
-    background: #fff;
+    .page-wrapper {
+        background: #fff;
+    }
     .col-2-left-layout {
         background: #fff;
     }
     .main-col {
         padding-left: 40px;
     }
-    .page-main-actions {
-        background: transparent;
-    }
 }
 
 
@@ -541,56 +535,19 @@
 // Form Component
 //
 
-/* Price field */
-
-.addon {
-  input {
-    border-width: 1px 0 1px 1px;
-    ~ .addafter strong {
-      display: inline-block;
-      background: #fff;
-      line-height: 24px;
-      margin: 0 3px 0 -2px;
-      padding-left: 4px;
-      padding-right: 4px;
-      position: relative;
-      font-size: 12px;
-      top: 0;
-    }
-    &:focus ~ .addafter {
-      border-color: #75b9f0;
-      box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-      strong {
-        margin-top: 0;
-      }
-    }
-  }
-  .addafter {
-    background: none;
-    color: #a6a6a6;
-    border-width: 1px 1px 1px 0;
-    border-radius: 2px 2px 0 0;
-    padding: 0;
-    border-color: #ada89e;
-  }
-  .pager input {
-    border-width: 1px;
-  }
-}
-
 .field .control input[type='text'][disabled],
 .field .control input[type='text'][disabled] ~ .addafter,
 .field .control select[disabled],
 .field .control select[disabled] ~ .addafter {
-  background-color: #fff;
-  border-color: #eee;
-  box-shadow: none;
-  color: #999;
+    background-color: #f4f4f4;
+    border-color: #dddddd;
+    box-shadow: none;
+    color: #999;
 }
 
 .field .control input[type='text'][disabled] ~ .addafter strong,
 .field .control select[disabled] ~ .addafter strong {
-  background-color: #fff;
+  background-color: #f4f4f4;
 }
 
 .field-price.addon {
@@ -614,14 +571,6 @@
   border-width: 1px 1px 1px 0;
 }
 
-.field-price input:focus {
-  box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-}
-
-.field-price input:focus ~ label.addafter {
-  box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-}
-
 .field-price input ~ label.addafter strong {
   margin-left: 2px;
   margin-right: -2px;
diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less
new file mode 100644
index 0000000000000000000000000000000000000000..a4f3e70dfc4fbd232ac653cb569fa965e8b955de
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_tabnav.less
@@ -0,0 +1,125 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@admin__section-nav-title__color: @color-very-dark-gray-black;
+@admin__section-nav-title__bg-color: @color-white-fog2;
+@admin__section-nav-title__border-color: @color-gray89;
+
+@admin__section-nav-item__border-color: @color-gray89;
+@admin__section-nav-item__active__color: @color-phoenix;
+
+@admin__section-nav-link__color: @color-very-dark-gray-black;
+@admin__section-nav-link__hover__color: @color-very-dark-gray-black;
+@admin__section-nav-link__changed__color: @color-phoenix;
+
+//
+//  Tab Left Navigation
+//  _____________________________________________
+
+.admin__section-nav {
+    padding-bottom: 1px + 50px;
+}
+.admin__section-nav-title {
+    padding: 0;
+    margin: 0 0 -1px;
+    color: @admin__section-nav-title__color;
+    display: block;
+    padding: 20px 13px;
+    background: @admin__section-nav-title__bg-color;
+    text-transform: uppercase;
+    border: 1px solid @admin__section-nav-title__border-color;
+    line-height: 1.2;
+    &._collapsible {
+        padding-right: 35px;
+        &:after {
+            content: '\e628';
+            font-family: @icons-admin__font-name;
+            -webkit-font-smoothing: antialiased;
+            font-weight: normal;
+            speak: none;
+            position: absolute;
+            right: 18px;
+            top: 22px;
+            font-size: 1.3rem;
+        }
+    }
+    strong {
+        font-weight: @font-weight__bold;
+    }
+}
+.admin__section-nav-items {
+    list-style-type: none;
+    padding: 0;
+    margin: 0;
+}
+.admin__section-nav-item {
+    padding: 0;
+    border-left: 3px solid transparent;
+    margin: 0 0 -1px;
+    &._active {
+        border-color: @admin__section-nav-item__active__color;
+        .admin__section-nav-link {
+            border-color: @admin__section-nav-item__border-color;
+            margin: 0;
+            &:hover {
+                text-decoration: none;
+            }
+        }
+    }
+    &._loading {
+        position: relative;
+        z-index: 1;
+        &:before {
+            content: "";
+            display: block;
+            position: absolute;
+            z-index: 2;
+            .url('images/loader-2.gif');
+            background: url("@{url}") no-repeat 50% 50%;
+            background-size: 120px;
+            width: 2rem;
+            height: 2rem;
+            top: 2.1rem;
+            right: .5rem;
+        }
+    }
+}
+.admin__section-nav-link {
+    border: 1px solid transparent;
+    border-width: 1px 0;
+    line-height: 1.2;
+    font-weight: @font-weight__heavier;
+    color: @admin__section-nav-link__color;
+    display: block;
+    padding: 20px 30px 20px 10px;
+    &:hover {
+        color: @admin__section-nav-link__hover__color;
+        text-decoration: underline;
+    }
+    &._changed {
+        position: relative;
+        z-index: 1;
+        &:before {
+            content: '\e623';
+            font-family: @icons-admin__font-name;
+            -webkit-font-smoothing: antialiased;
+            font-style: normal;
+            font-weight: normal;
+            speak: none;
+            position: absolute;
+            z-index: 2;
+            font-size: 17px;
+            color: @admin__section-nav-link__changed__color;
+            width: 20px;
+            height: 20px;
+            top: 15px;
+            right: 5px;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/admin.less b/app/design/adminhtml/Magento/backend/web/css/admin.less
deleted file mode 100644
index c33e41ed2e1b7c6d204164a66490f86cac29a1de..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/admin.less
+++ /dev/null
@@ -1,3661 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/* Backend */
-
-@import '../less/styles/vars';
-@import '../less/styles/base';
-@import '../less/lib/buttons';
-@import 'source/lib/_utilities';
-
-.dont-use-this-class-big-size {
-    font-size: 18px;
-    line-height: 24px;
-    padding: 8px 19px;
-}
-
-/*
-    Reset 'button view' for actions
--------------------------------------- */
-.customer-current-activity .action-refresh,
-.data-table .action-.delete,
-.data-table .action-.delete:hover,
-.data-table .action-.delete:active,
-.data-table .action-.delete.active,
-.data-table .action-delete,
-.data-table .action-delete:hover,
-.data-table .action-delete:active,
-.data-table .action-delete.active,
-.data-table .action-locked,
-.data-table .action-locked:hover,
-.data-table .action-locked:active,
-.data-table .action-locked.active,
-.data-table .action-locked[disabled],
-#product-variations-matrix .action-choose,
-#product-variations-matrix .action-choose:hover,
-#product-variations-matrix .action-choose:active,
-#product-variations-matrix .action-choose.active,
-#product-variations-matrix .action-choose[disabled],
-.action-manage-images,
-.action-manage-images:hover,
-.action-manage-images:active,
-.action-manage-images.active,
-.action-manage-images[disabled],
-.image-panel .action-close,
-.image-panel .action-close:hover,
-.image-panel .action-close:active,
-.image-panel .action-close.active,
-.image-panel .action-close[disabled],
-.image-panel-controls .action-remove,
-.image-panel-controls .action-remove:hover,
-.image-panel-controls .action-remove:active,
-.image-panel-controls .action-remove.active,
-.image-panel-controls .action-remove[disabled],
-.vde-image-sizing .action-connect,
-.vde-image-sizing .action-connect:hover,
-.vde-image-sizing .action-connect:active,
-.vde-image-sizing .action-connect.active,
-.vde-image-sizing .action-connect[disabled],
-.suggest-expandable .action-show-all,
-.suggest-expandable .action-show-all:hover,
-.suggest-expandable .action-show-all:active,
-.suggest-expandable .action-show-all.active,
-.suggest-expandable .action-show-all[disabled],
-.custom-file > .action-add,
-.custom-file > .action-add:hover,
-.custom-file > .action-add:active,
-.custom-file > .action-add.active,
-.custom-file > .action-add[disabled],
-.vde-tools-header .action-close,
-.vde-tools-header .action-close:hover,
-.vde-tools-header .action-close:active,
-.vde-tools-header .action-close.active,
-.image .action-delete,
-.image .action-delete:hover,
-.image .action-delete:active,
-.image .action-delete.active,
-.fieldset-wrapper-title .actions .action-delete,
-.fieldset-wrapper-title .actions .action-delete:hover,
-.fieldset-wrapper-title .actions .action-delete:active,
-.fieldset-wrapper-title .actions .action-delete.active,
-.address-list-item-actions .action-delete,
-.address-list-item-actions .action-delete:hover,
-.address-list-item-actions .action-delete:active,
-.address-list-item-actions .action-delete.active,
-.notification .action-close,
-.notification .action-close:hover,
-.notification .action-close:active,
-.notification .action-close.active,
-.page-login .action-forgotpassword,
-.page-login .action-forgotpassword:hover,
-.page-login .action-forgotpassword:active,
-.page-login .action-forgotpassword.active,
-.page-login .action-back,
-.page-login .action-back:hover,
-.page-login .action-back:active,
-.page-login .action-back.active,
-.attribute-popup .page-actions #reset,
-.attribute-popup .page-actions #reset:hover,
-.attribute-popup .page-actions #reset:active,
-.attribute-popup .page-actions #reset.active,
-.attribute-popup .page-actions #reset[disabled] {
-    border: none;
-    border-radius: 0;
-    background: none;
-    margin: 0;
-    padding: 0;
-    box-shadow: none;
-    text-shadow: none;
-    filter: none;
-}
-.attribute-popup .messages {
-    margin: 0 15px;
-}
-
-.data-table .action-.delete[disabled],
-.data-table .action-delete[disabled],
-.data-table .action-locked[disabled],
-#product-variations-matrix .action-choose[disabled],
-.image-panel .action-close[disabled],
-.image-panel-controls .action-remove[disabled],
-.suggest-expandable .action-show-all[disabled],
-#store-view-window [class^='action-close'],
-#store-view-window [class^='action-close']:hover,
-#store-view-window [class^='action-close']:active,
-#store-view-window [class^='action-close'].active,
-#store-view-window [class^='action-close'][disabled],
-.custom-file > .action-add[disabled],
-.image .action-delete,
-.image .action-delete:hover,
-.image .action-delete:active,
-.image .action-delete.active,
-.fieldset-wrapper-title .actions .action-delete,
-.fieldset-wrapper-title .actions .action-delete:hover,
-.fieldset-wrapper-title .actions .action-delete:active,
-.fieldset-wrapper-title .actions .action-delete.active,
-.address-list-item-actions .action-delete,
-.address-list-item-actions .action-delete:hover,
-.address-list-item-actions .action-delete:active,
-.address-list-item-actions .action-delete.active,
-.notification .action-close,
-.notification .action-close:hover,
-.notification .action-close:active,
-.notification .action-close.active {
-    border: none;
-    border-radius: 0;
-    background: none;
-    margin: 0;
-    padding: 0;
-    box-shadow: none;
-    text-shadow: none;
-    filter: none;
-}
-
-.fade.critical-notification {
-    display: block;
-}
-
-.fade.critical-notification .popup {
-    top: 200px;
-}
-
-.data-table .action-.delete[disabled],
-.data-table .action-delete[disabled],
-.data-table .action-locked[disabled],
-#product-variations-matrix .action-choose[disabled],
-.image-panel .action-close[disabled],
-.image-panel-controls .action-remove[disabled],
-.suggest-expandable .action-show-all[disabled],
-#store-view-window [class^='action-close'],
-#store-view-window [class^='action-close']:hover,
-#store-view-window [class^='action-close']:active,
-#store-view-window [class^='action-close'].active,
-#store-view-window [class^='action-close'][disabled],
-.custom-file > .action-add[disabled],
-.vde-tools-header .action-close[disabled],
-.vde-image-sizing .action-reset,
-.vde-image-sizing .action-reset:hover,
-.vde-image-sizing .action-reset:active,
-.vde-image-sizing .action-reset.active,
-.vde-image-sizing .action-reset[disabled],
-.image .action-delete[disabled],
-.fieldset-wrapper-title .actions .action-delete[disabled],
-.address-list-item-actions .action-delete[disabled],
-// [class^=" catalog-product-"] .page-actions .action-back,
-// [class^=" catalog-product-"] .page-actions .action-back:hover,
-// [class^=" catalog-product-"] .page-actions .action-back:active,
-// [class^=" catalog-product-"] .page-actions .action-back.active,
-// [class^=" catalog-product-"] .page-actions .action-back[disabled],
-// [class^=" newsletter-"] .page-actions .action-back,
-// [class^=" newsletter-"] .page-actions .action-back:hover,
-// [class^=" newsletter-"] .page-actions .action-back:active,
-// [class^=" newsletter-"] .page-actions .action-back.active,
-// [class^=" newsletter-"] .page-actions .action-back[disabled],
-.notifications [class^="action-"],
-.notifications [class^="action-"]:hover,
-.notifications [class^="action-"]:active,
-.notifications [class^="action-"].active,
-.notifications [class^="action-"][disabled],
-.notification .action-close,
-.notification .action-close:hover,
-.notification .action-close:active,
-.notification .action-close.active,
-.notification .action-close[disabled]
-// .sales-order-create-index .page-actions-inner .cancel,
-// .sales-order-create-index .page-actions-inner .cancel:hover,
-// .sales-order-create-index .page-actions-inner .cancel:active,
-// .sales-order-create-index .page-actions-inner .cancel.active,
-// .sales-order-create-index .page-actions-inner .cancel[disabled]
- {
-    border: 0;
-    border-radius: 0;
-    background: none;
-    margin: 0;
-    padding: 0;
-    box-shadow: none;
-    text-shadow: none;
-    filter: none;
-}
-
-.vde-image-sizing .action-connect,
-.vde-image-sizing .action-connect:hover,
-.vde-image-sizing .action-connect:active,
-.vde-image-sizing .action-connect.active,
-.vde-image-sizing .action-connect[disabled],
-.vde-tab-data .action-download,
-.vde-tab-data .action-download:hover,
-.vde-tab-data .action-download:active,
-.vde-tab-data .action-download.active,
-.vde-tab-data .action-download[disabled],
-.vde-tab-data .action-delete,
-.vde-tab-data .action-delete:hover,
-.vde-tab-data .action-delete:active,
-.vde-tab-data .action-delete.active,
-.vde-tab-data .action-delete[disabled],
-.vde-tab-data .action-edit,
-.vde-tab-data .action-edit:hover,
-.vde-tab-data .action-edit:active,
-.vde-tab-data .action-edit.active,
-.vde-tab-data .action-edit[disabled] {
-    border: none;
-    border-radius: 0;
-    background: none;
-    margin: 0;
-    padding: 0;
-    box-shadow: none;
-    text-shadow: none;
-}
-
-/*
-    Actions as links
--------------------------------------- */
-.notification-entry-dialog .action-cancel,
-.attribute-popup .page-actions #reset {
-    background: none;
-    border: none;
-    color: #6d665e;
-    font-weight: normal;
-    font-size: 12px;
-    cursor: pointer;
-    text-decoration: underline;
-}
-
-.notification-entry-dialog .action-cancel:hover,
-.attribute-popup .page-actions #reset:hover {
-    color: #000;
-    border-bottom-color: #000;
-    filter: none;
-}
-
-/*
-    Fileupload button
--------------------------------------- */
-.action-upload {
-    position: relative;
-}
-
-.action-upload > span {
-}
-
-.action-upload > input[type="file"] {
-    position: absolute;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    opacity: 0;
-    font-size: 10em;
-}
-
-/*
-    Dropdown menu
--------------------------------------- */
-.dropdown-menu,
-.ui-autocomplete {
-    position: absolute;
-    display: none;
-    list-style: none;
-    min-width: 100px;
-    margin: 1px 0 0;
-    padding: 0;
-    right: 0;
-    top: 100%;
-    border: 1px solid #cac2b5;
-    background: #fff;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
-    z-index: 990;
-}
-
-.dropdown-menu > li,
-.ui-autocomplete > li {
-    padding: 5px;
-    border-bottom: 1px solid #e5e5e5;
-}
-
-.dropdown-menu > li.selected,
-.ui-autocomplete > li.selected {
-    background: #eef8fc;
-}
-
-.dropdown-menu > li:hover,
-.ui-autocomplete > li:hover {
-    background: #eef8fc;
-}
-
-.dropdown-menu > li:last-child,
-.ui-autocomplete > li:last-child {
-    border-bottom: none;
-}
-
-.dropdown-menu > li > .item,
-.ui-autocomplete > li > .item {
-    cursor: pointer;
-}
-
-.dropdown-menu-top {
-    margin: 0 0 3px;
-    top: auto;
-    bottom: 100%;
-}
-
-.ui-autocomplete {
-    right: auto;
-}
-
-.ui-autocomplete > li {
-    padding: 0;
-}
-
-.ui-autocomplete > li > a {
-    display: block;
-    padding: 5px;
-}
-
-.ui-autocomplete > li > a.level-0 {
-    padding-left: 5px !important;
-}
-
-.ui-autocomplete .ui-state-focus {
-    background: #f5f5f5;
-}
-
-.active .dropdown-menu {
-    display: block;
-}
-
-/*
-    Actions Dropdown
--------------------------------------- */
-.action-dropdown {
-    text-align: left;
-    position: relative;
-    display: inline-block;
-}
-
-.action-dropdown > [class^='action-'] {
-    float: left;
-    border-radius: 0;
-}
-
-.action-dropdown > .action-default {
-    border-radius: 5px 0 0 5px;
-}
-
-.action-dropdown > .action-toggle {
-    border-left: 1px solid #c5c0b9;
-    border-radius: 0 5px 5px 0;
-    margin-left: -1px;
-    padding: 4px 7px;
-}
-
-.action-dropdown > .action-toggle > span {
-    display: none;
-}
-
-.action-dropdown > .action-toggle:before {
-    display: block;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02c'; /* arrow down */
-    font-size: 11px;
-}
-
-.action-dropdown > .action-toggle.active:before {
-    content: '\e029'; /* arrow up */
-}
-
-.action-dropdown > .action-toggle.primary {
-    border-left: 1px solid #e1721d;
-}
-
-.action-dropdown > .action-toggle.primary:hover {
-    background: #e2701a;
-    margin-left: -1px;
-}
-
-.action-dropdown.active .dropdown-menu {
-    display: block;
-    white-space: nowrap;
-}
-
-.action-dropdown.active .dropdown-menu > li {
-    padding: 0;
-}
-
-.action-dropdown .dropdown-menu > li > .item {
-    display: block;
-    padding: 6px 10px 5px;
-    color: #333;
-    text-decoration: none;
-}
-
-/*
-    Action delete icon
--------------------------------------- */
-/* TODO: replase ".action-.delete" to ".action-delete" after buttons refactoring */
-.data-table .action-.delete span,
-.data-table .action-delete span,
-.data-table .action-locked span,
-.image .action-delete span,
-.fieldset-wrapper-title .actions .action-delete span,
-.address-list-item-actions .action-delete span {
-    display: none;
-}
-
-.data-table .action-.delete:before,
-.data-table .action-delete:before,
-.image .action-delete:before,
-.fieldset-wrapper-title .actions .action-delete:before,
-.address-list-item-actions .action-delete:before {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    font-size: 18px;
-    -webkit-font-smoothing: antialiased;
-    content: '\e07f'; /* delete icon */
-    color: #b7b3ad;
-}
-
-/*
-    Locked action icon
--------------------------------------- */
-.data-table .action-locked:before {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    font-size: 20px;
-    -webkit-font-smoothing: antialiased;
-    content: '\e03e'; /* lock icon */
-    color: #b7b3ad;
-}
-
-.data-table .action-.delete:hover:before,
-.data-table .action-delete:hover:before,
-.data-table .action-locked:hover:before,
-.image .action-delete:hover:before,
-.fieldset-wrapper-title .actions .action-delete:hover:before,
-.address-list-item-actions .action-delete:hover:before {
-    color: #7e7e7e;
-}
-
-.data-table input.action-.delete[type="button"],
-.data-table input.action-.delete[type="submit"],
-.data-table input.action-.delete[type="reset"],
-.data-table button.action-.delete,
-.data-table input.action-.delete[type="button"]:visited,
-.data-table input.action-.delete[type="submit"]:visited,
-.data-table input.action-.delete[type="reset"]:visited,
-.data-table button.action-.delete:visited,
-.data-table input.action-.delete[type="button"]:hover,
-.data-table input.action-.delete[type="submit"]:hover,
-.data-table input.action-.delete[type="reset"]:hover,
-.data-table button.action-.delete:hover,
-.data-table input.action-.delete[type="button"]:active,
-.data-table input.action-.delete[type="submit"]:active,
-.data-table input.action-.delete[type="reset"]:active,
-.data-table button.action-.delete:active {
-    background: transparent;
-    padding: 3px 7px 0;
-}
-
-.data-table input.action-.delete[type=button]:hover:before,
-.data-table input.action-.delete[type=submit]:hover:before,
-.data-table input.action-.delete[type=reset]:hover:before,
-.data-table button.action-.delete:hover:before,
-.data-table input.action-.delete[type=button]:focus:before,
-.data-table input.action-.delete[type=submit]:focus:before,
-.data-table input.action-.delete[type=reset]:focus:before,
-.data-table button.action-.delete:focus:before {
-    background: transparent;
-    color: #a5a29d;
-}
-
-/*
-    Forms
--------------------------------------- */
-
-fieldset {
-    border: 1px solid #ccc;
-    padding: 20px;
-}
-
-legend {
-    padding: 0 10px;
-    margin: 0 -10px;
-}
-
-fieldset legend + br {
-    display: none;
-}
-
-label {
-    display: inline-block;
-}
-
-label > input[type="radio"],
-label > input[type="checkbox"] {
-    margin: -3px 3px 0 0;
-    vertical-align: middle;
-}
-
-input[type=text],
-input[type=password],
-input[type=datetime],
-input[type=datetime-local],
-input[type=date],
-input[type=month],
-input[type=time],
-input[type=week],
-input[type=number],
-input[type=range],
-input[type=email],
-input[type=url],
-input[type=search],
-input.search,
-input[type=tel],
-input[type=color],
-textarea,
-.input-text {
-    display: inline-block;
-    padding: 4px;
-    margin: 0;
-    background-color: #fff;
-    height: 30px;
-    .style9();
-    border: 1px solid #ada89e;
-    box-sizing: border-box;
-    border-radius: 2px;
-}
-
-textarea,
-.input-text {
-    height: auto;
-}
-
-textarea {
-    resize: vertical;
-}
-
-select {
-    height: 30px;
-    padding: 4px 4px 5px;
-    margin: 0 0 8px;
-    border: 1px solid #ada89e;
-    border-radius: 2px;
-    box-sizing: border-box;
-}
-
-select[multiple],
-select[size] {
-    height: auto;
-}
-
-input[type=text]:focus,
-input[type=password]:focus,
-input[type=datetime]:focus,
-input[type=datetime-local]:focus,
-input[type=date]:focus,
-input[type=month]:focus,
-input[type=time]:focus,
-input[type=week]:focus,
-input[type=number]:focus,
-input[type=range]:focus,
-input[type=email]:focus,
-input[type=url]:focus,
-input[type=search]:focus,
-input.search:focus,
-input[type=tel]:focus,
-input[type=color]:focus,
-textarea:focus,
-select:focus {
-    border-color: #75b9f0;
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(82, 168, 236, .6);
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-    margin: 3px 0;
-    line-height: normal;
-}
-
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-    cursor: not-allowed;
-    background-color: #fff;
-    border-color: #eee;
-    box-shadow: none;
-    color: #999;
-}
-
-select[disabled] option[selected] {
-    color: #fff;
-    background: #aaa;
-}
-
-textarea:-moz-placeholder,
-input:-moz-placeholder {
-    color: #999 !important;
-    font-style: italic;
-}
-
-option.placeholder {
-    color: #999 !important;
-    font-style: italic !important;
-}
-
-:-ms-input-placeholder {
-    color: #999 !important;
-    font-style: italic;
-}
-
-::-webkit-input-placeholder {
-    color: #999 !important;
-}
-
-:-moz-placeholder {
-    color: #999 !important;
-}
-
-.form-inline .control {
-    width: 100%;
-}
-
-.form-inline .label {
-    width: 20%;
-    padding-top: 6px;
-}
-
-.form-inline .label ~ .control {
-    width: 60%;
-}
-
-.form-inline .no-label .control {
-    margin-left: 20%;
-    width: 60%;
-}
-
-fieldset.field [class^='fields-group-'] .field .control {
-    width: auto;
-    margin: 0 0 0 20px;
-}
-
-.form-inline .field-service {
-    box-sizing: border-box;
-    float: left;
-    width: 20%;
-    padding: 7px 0 0 15px;
-    color: #999;
-    font-size: 12px;
-    letter-spacing: .05em;
-}
-
-.form-inline .field-service[value-scope]:before {
-    content: attr(value-scope) !important;
-    white-space: nowrap;
-    display: block;
-    margin-bottom: 5px;
-}
-
-.form-inline .field-service .checkbox {
-    margin: 0;
-    vertical-align: middle;
-}
-
-.form-inline > form > div > .message {
-    margin-left: 18px;
-    margin-right: 18px;
-}
-
-.control > input {
-    width: 100%;
-}
-
-.control > input[type="button"] {
-    width: auto;
-}
-
-.control > input.hasDatepicker {
-    width: 160px;
-}
-
-.control > input[type="radio"],
-.control > input[type="checkbox"],
-.control > input[type="file"] {
-    width: auto;
-}
-
-.control > table {
-    width: 100%;
-}
-
-.multi-input {
-    margin: 0 0 20px;
-}
-
-.multi-input > input {
-    width: 100%;
-}
-
-.control .input-file {
-    margin-top: 4px;
-}
-
-/* TODO: remove styles for images when images will be replaced by font icons */
-.control .hasDatepicker + img {
-    margin: -3px 0 0 5px;
-    vertical-align: middle;
-}
-
-.nobr {
-    white-space: nowrap;
-}
-
-/*
-    Form Validation
--------------------------------------- */
-label.mage-error {
-    display: block;
-    color: red;
-    text-align: left;
-    clear: both;
-    margin: 3px 0 0;
-}
-
-textarea.mage-error,
-select.mage-error,
-input.mage-error {
-    border-color: #fa7973 !important;
-    box-shadow: 0 0 8px rgba(250, 121, 115, .6) !important;
-}
-
-input.mage-error ~ .addafter {
-    border-color: #fa7973 !important;
-    box-shadow: 0 0 8px rgba(250, 121, 115, .6) !important;
-}
-
-/*
-    Forms for Store Scope
--------------------------------------- */
-.form-inline .field-store_id .label + .control,
-.form-inline .field-store_ids .label + .control,
-.form-inline .field-website_ids .label + .control,
-.form-inline .field-website_id .label + .control,
-.form-inline .field-select_stores .label + .control,
-.form-inline .field-stores .label + .control {
-    width: auto;
-}
-
-/*
-    Forms styles
--------------------------------------- */
-.page-content-inner {
-    position: relative;
-    background: #f5f2ed;
-    border: 1px solid #b7b2a6;
-    border-radius: 5px;
-    padding: 20px;
-}
-
-.fieldset-wrapper,
-.fieldset {
-    background: #fff;
-    border: 0;
-    margin: 0;
-    padding: 5px 18px 38px;
-    position: relative;
-}
-
-.fieldset-wrapper > .fieldset-wrapper-title,
-.fieldset > .legend {
-    position: static;
-    float: left;
-    width: 100%;
-    box-sizing: border-box;
-    padding: 0;
-    border-bottom: 1px solid #cac3b4;
-    margin: 0 0 18px;
-}
-
-.fieldset-wrapper > .fieldset-wrapper-title {
-    float: none;
-}
-
-.fieldset-wrapper > .fieldset-wrapper-title .title,
-.fieldset > .legend span {
-    .style10();
-    padding: 7px 0 10px;
-    display: inline-block;
-}
-
-//
-//    Collapsable fieldset-wrapper
-//--------------------------------------
-.collapsable-wrapper {
-    padding-bottom: 2px;
-    > .fieldset-wrapper-title {
-        border-bottom: 1px solid #cac3b4;
-        margin-bottom: 0;
-        > .title {
-            position: relative;
-            padding-left: 22px;
-            cursor: pointer;
-            float: left;
-            &:before {
-                position: absolute;
-                left: 0;
-                top: 11px;
-                font-family: 'MUI-Icons';
-                font-size: 16px;
-                font-style: normal;
-                speak: none;
-                font-weight: normal;
-                -webkit-font-smoothing: antialiased;
-                content: '\e02a'; // arrow right icon
-                color: #b2b0ad;
-            }
-            &:hover:before {
-                color: #7e7e7e;
-            }
-        }
-    }
-    &.opened {
-        padding-bottom: 18px;
-        > .fieldset-wrapper-title {
-            //border-bottom: 1px solid #ededed;
-            margin-bottom: 18px;
-            > .title:before {
-                content: '\e02c'; // arrow down icon
-            }
-        }
-    }
-}
-
-/* Fieldset styles in another fieldset */
-.fieldset .fieldset-wrapper,
-.fieldset-wrapper .fieldset-wrapper {
-    border: 1px solid #cac3b4;
-    border-radius: 2px;
-    padding: 0;
-}
-
-.fieldset .fieldset-wrapper .fieldset-wrapper-title,
-.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title {
-    background:#f7f3eb;
-    padding: 0 18px;
-    border: 0;
-}
-
-.fieldset .fieldset-wrapper.opened .fieldset-wrapper-title,
-.fieldset-wrapper .fieldset-wrapper.opened .fieldset-wrapper-title {
-    border-bottom: 1px solid #cccbca;
-    -webkit-touch-callout: none;
-    -webkit-user-select: none; // use in 41 Chrome
-    -moz-user-select: none; // use in 36 Firefox
-    -ms-user-select: none; // use in 11 IE
-    min-height: 39px;
-}
-
-.fieldset .fieldset-wrapper .fieldset-wrapper-title .actions,
-.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .actions {
-    padding: 6px 0 0;
-}
-
-.fieldset .fieldset-wrapper .fieldset-wrapper-title .title,
-.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title {
-    padding-top: 9px;
-    padding-bottom: 8px;
-    color: #555;
-    font: normal 16px/1.333 Arial, Verdana, sans-serif;
-}
-
-.fieldset .fieldset-wrapper .fieldset-wrapper-title .title:before,
-.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title:before {
-    top: 9px;
-}
-
-.fieldset-wrapper-content .fieldset > .title {
-    margin-top: 0;
-    padding-left: 22px;
-}
-
-.fieldset-wrapper .draggable-handle,
-.fieldset .draggable-handle {
-    width: 8px;
-    height: 14px;
-    line-height: 14px;
-    background: url(Magento_Backend::images/draggable-handle-vertical.png) no-repeat 0 0;
-    cursor: ns-resize;
-    color: #b2b0ad;
-}
-
-.fieldset-wrapper-title > .draggable-handle {
-    position: absolute;
-    left: 10px;
-    top: 12px;
-}
-
-.fieldset .fieldset-wrapper .fieldset-wrapper-content,
-.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-content {
-    padding: 0 10px;
-}
-
-/* Sortable fieldsets */
-.ui-sortable .entry-edit .fieldset-wrapper-title,
-#product_options_container_top .fieldset-wrapper-title {
-    padding-left: 30px;
-}
-
-.ui-sortable .entry-edit .fieldset-wrapper-title > .title {
-}
-
-.fieldset-wrapper-title > .actions,
-.fieldset .legend > .actions {
-    float: right;
-    padding-top: 8px;
-}
-
-.fieldset > .legend + br {
-    display: block;
-    height: 0;
-    overflow: hidden;
-    clear: left;
-}
-
-.fieldset-wrapper .fieldset,
-.fieldset .fieldset {
-    background: transparent;
-    padding: 9px 0;
-    border: none;
-    border-radius: 0;
-    margin: 0 0 29px;
-}
-
-.fieldset .comment {
-    margin: 0 0 29px 10px;
-}
-
-.fieldset .field {
-    margin: 0 0 29px;
-}
-
-.with-note .note,
-.field .note,
-.data-table .note {
-    .style19();
-}
-
-.fieldset .field .options-list {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-.fieldset .field .options-list input[type="checkbox"],
-.fieldset .field .options-list input[type="radio"] {
-    margin-right: 5px;
-}
-
-[class^="fields-group-"] .field {
-    margin-bottom: 0;
-}
-
-.fieldset-wrapper .fieldset:last-child,
-.fieldset .fieldset:last-child,
-.fieldset .field:last-child {
-    margin-bottom: 0;
-}
-
-.fieldset .label {
-    .style2();
-}
-
-.fieldset .control .label {
-    .style9();
-}
-
-.field.required > .label:after {
-    .style8();
-}
-
-.with-addon .textarea {
-    margin: 0 0 6px;
-}
-
-.fieldset .control .textarea,
-.fieldset .control .addon .textarea {
-    border-radius: 2px;
-    width: 100%;
-}
-
-.fieldset > .field > input[type="checkbox"] {
-    margin-top: 12px;
-}
-
-.fieldset-alt {
-    position: relative;
-    display: table-row;
-    border: 0;
-    padding: 0;
-    margin-bottom: 20px;
-    width: 100%;
-}
-
-.fieldset-alt > .field {
-    display: table-cell;
-    vertical-align: top;
-    padding-right: 4%;
-}
-
-.fieldset-alt > .field.no-display {
-    display: none;
-}
-
-.fieldset-alt .field > .label {
-    display: block;
-    width: 100%;
-    clear: both;
-    text-align: left;
-    margin: 0 0 10px;
-}
-
-.fieldset-alt .label + .control {
-    width: 100%;
-}
-
-.fieldset-alt .field-option-title {
-    width: 50%;
-}
-
-.fieldset .tooltip .help {
-    margin: 7px 0 0 15px;
-}
-
-.fieldset-alt .field-option-store-view {
-    width: 20%;
-}
-
-.fieldset-alt .field-option-input-type {
-    width: 20%;
-}
-
-.fieldset-alt .field-option-input-type select {
-    width: 100%;
-}
-
-.fieldset-alt .field-option-req {
-    width: 105px;
-    white-space: nowrap;
-}
-
-.fieldset-alt .field-option-req .control {
-    position: relative;
-    top: 32px;
-}
-
-.fieldset-alt .field-option-position,
-.fieldset-alt .field-option-position .control {
-    width: 60px;
-}
-
-/* "Use default" checkbox */
-.use-default {
-
-}
-
-.use-default-control {
-    display: none;
-}
-
-.use-default-label {
-    cursor: pointer;
-    text-decoration: underline;
-    font-size: 11px;
-    color: #a29c94;
-}
-
-.use-default-label:hover {
-    color: #7e7e7e;
-}
-
-/*
-    Custom Multiselect
--------------------------------------- */
-.multiselect-alt {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-    border: 1px solid #ccc;
-    border-radius: 5px;
-    color: #333;
-}
-
-.multiselect-alt .item {
-    position: relative;
-    border-top: 1px solid #fff;
-    cursor: pointer;
-}
-
-.multiselect-alt .item:first-child {
-    border-top: 0;
-}
-
-.multiselect-alt .item.selected {
-    background: #d7ebf5;
-}
-
-.multiselect-alt .item.selected:hover {
-    background: #afdef2;
-}
-
-.multiselect-alt label {
-    display: block;
-    cursor: pointer;
-    padding: 6px 25px 5px;
-}
-
-.multiselect-alt .item.selected label:before {
-    position: absolute;
-    left: 8px;
-    top: 1px;
-    bottom: 0;
-    width: 10px;
-    line-height: 28px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e01e'; /* checked icon */
-    text-align: center;
-    color: #7ba4b1;
-    font-size: 9px;
-    text-shadow: 0 -1px 1px #60727b;
-}
-
-.multiselect-alt input[type="checkbox"] {
-    width: 0;
-    height: 0;
-    opacity: 0;
-    margin: 0;
-    padding: 0;
-}
-
-//
-//    Form item with table
-// --------------------------------------
-
-.with-table {
-    .label {
-        float: none;
-        text-align: left;
-        width: 100%;
-    }
-    .control {
-        clear: left;
-        float: none;
-        width: 100%;
-    }
-}
-
-//
-//    Form currency label
-// --------------------------------------
-
-.addon {
-    input {
-        border-width: 1px 0 1px 1px;
-        ~ .addafter strong {
-            display: inline-block;
-            background: #fff;
-            line-height: 24px;
-            margin: 0 3px 0 -2px;
-            padding-left: 4px;
-            padding-right: 4px;
-            position: relative;
-            font-size: 12px;
-            top: 0;
-        }
-        &:focus ~ .addafter {
-            border-color: #75b9f0;
-            box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-            strong {
-                margin-top: 0;
-            }
-        }
-    }
-    .addafter {
-        background: none;
-        color: #a6a6a6;
-        border-width: 1px 1px 1px 0;
-        border-radius: 2px 2px 0 0;
-        padding: 0;
-        border-color: #ada89e;
-    }
-    input,
-    select {
-        &[disabled],
-        &[readonly] {
-            ~ .addafter {
-                border-color: #eee;
-                color: #999;
-            }
-        }
-    }
-    .pager input {
-        border-width: 1px;
-    }
-}
-
-.field .control input[type='text'][disabled] ~ .addafter strong,
-.field .control select[disabled] ~ .addafter strong {
-    background-color: #fff;
-}
-
-.field.type-price .addon,
-.field-price .addon,
-.field-special_price .addon,
-.field-msrp .addon {
-    direction: rtl;
-}
-
-.field.type-price .addon > *,
-.field-price .addon > *,
-.field-special_price .addon > *,
-.field-msrp .addon > * {
-    direction: ltr;
-}
-
-.field.type-price .addon .addafter,
-.field-price .addon .addafter,
-.field-special_price .addon .addafter,
-.field-msrp .addon .addafter {
-    border-width: 1px 0 1px 1px;
-    border-radius: 2px 0 0 2px;
-}
-
-.field.type-price .addon input:first-child,
-.field-price .addon input:first-child,
-.field-special_price .addon input:first-child,
-.field-msrp .addon input:first-child {
-    border-radius: 0 2px 2px 0;
-}
-
-.field.type-price input,
-.field-price input,
-.field-special_price input,
-.field-msrp input {
-    border-width: 1px 1px 1px 0;
-}
-
-.field.type-price input:focus,
-.field-price input:focus,
-.field-special_price input:focus,
-.field-msrp input:focus {
-    box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-}
-
-.field.type-price input:focus ~ label.addafter,
-.field-price input:focus ~ label.addafter,
-.field-special_price input:focus ~ label.addafter,
-.field-msrp input:focus ~ label.addafter {
-    box-shadow: 0 0 8px rgba(82, 168, 236, .6);
-}
-
-.field.type-price input ~ label.addafter strong,
-.field-price input ~ label.addafter strong,
-.field-special_price input ~ label.addafter strong,
-.field-msrp input ~ label.addafter strong,
-.field-gift_wrapping_price input ~ label.addafter strong {
-    margin-left: 2px;
-    margin-right: -2px;
-}
-
-/*
-    Calendar
--------------------------------------- */
-.ui-datepicker {
-    z-index: 998 !important;
-}
-
-.ui-datepicker .ui-datepicker-calendar td {
-    padding: 0;
-}
-
-.ui-datepicker .ui-datepicker-calendar th {
-    background: #efefef;
-    border: 1px solid #cfcfcf;
-    padding: 4px;
-    color: #676056;
-    font-weight: bold;
-}
-
-.ui-datepicker-calendar tbody tr td,
-.ui-datepicker-calendar tbody tr:nth-child(2n+1) td {
-    background: #fff;
-}
-
-.ui-datepicker .ui-datepicker-prev span,
-.ui-datepicker .ui-datepicker-next span {
-    margin-top: -1px;
-}
-
-/*
-    Details element
--------------------------------------- */
-summary {
-    cursor: pointer;
-    display: inline-block;
-}
-
-.no-details details > * {
-    display: none;
-}
-
-.no-details details > summary:before {
-    float: left;
-    width: 20px;
-    content: 'â–º ';
-}
-
-.no-details details.open > summary:before {
-    content: 'â–¼ ';
-}
-
-.no-details details summary {
-    display: block;
-}
-
-/*
-    Blockquotes
--------------------------------------- */
-blockquote {
-    border-left: 2px solid #ccc;
-    padding-left: 5px;
-}
-
-blockquote small:before {
-    content: '\2014 \00A0';
-}
-
-/*
-    Addresses
--------------------------------------- */
-address {
-    font-style: normal;
-}
-
-/*
-    X-tree styles
--------------------------------------- */
-.x-tree-node .leaf .x-tree-node-icon {
-    background-image: url(../images/fam_leaf.png);
-}
-
-.x-tree-node .system-leaf .x-tree-node-icon {
-    background-image: url(../images/fam_application_form_delete.png);
-}
-
-/*
-    Styles for "js" tooltip with positionings
--------------------------------------- */
-.tipsy {
-    padding: 11px;
-}
-
-.tipsy-inner {
-    padding: 12px 15px;
-    max-width: 185px;
-    background: #faf8f6;
-    border: 1px solid #dcd8ce;
-    box-shadow: 0 2px 5px rgba(49, 48, 43, .4);
-}
-
-.tipsy-inner .error {
-    width: 158px;
-}
-
-.tipsy-inner .error h5 {
-    color: #be0a0a;
-    font-size: 16px;
-    font-weight: 500;
-    margin: 0 0 6px;
-}
-
-.tipsy-inner .error p {
-    color: #676056;
-    line-height: 1.5;
-    margin: 0;
-}
-
-.tipsy-e .tipsy-arrow {
-    top: 50%;
-    left: 1px;
-    margin-top: -10px;
-    border-top: 10px solid transparent;
-    border-right: 10px solid #dcd8ce;
-    border-bottom: 10px solid transparent;
-    border-left: none;
-}
-
-.tipsy-w .tipsy-arrow {
-    top: 50%;
-    right: 0;
-    margin-top: -10px;
-    border-top: 10px solid transparent;
-    border-right: none;
-    border-bottom: 10px solid transparent;
-    border-left: 10px solid #dcd8ce;
-}
-
-.tipsy-n .tipsy-arrow,
-.tipsy-ne .tipsy-arrow,
-.tipsy-nw .tipsy-arrow {
-    bottom: 1px;
-    border-top: 10px solid #dcd8ce;
-    border-right: 10px solid transparent;
-    border-bottom: none;
-    border-left: 10px solid transparent;
-}
-
-.tipsy-ne .tipsy-arrow {
-    left: 16px;
-}
-
-.tipsy-nw .tipsy-arrow {
-    right: 16px;
-}
-
-.tipsy-s .tipsy-arrow,
-.tipsy-se .tipsy-arrow,
-.tipsy-sw .tipsy-arrow {
-    top: 1px;
-    border-left: 10px solid transparent;
-    border-right: 10px solid transparent;
-    border-bottom: 10px solid #dcd8ce;
-    border-top: none;
-}
-
-.tipsy-se .tipsy-arrow {
-    left: 16px;
-}
-
-.tipsy-sw .tipsy-arrow {
-    right: 16px;
-}
-
-.tipsy-arrow:after,
-.tipsy-arrow:before {
-    position: absolute;
-    width: 0;
-    height: 0;
-    content: '';
-}
-
-.tipsy-e .tipsy-arrow:after {
-    top: -5px;
-    left: 2px;
-    margin-top: -4px;
-    border-top: 9px solid transparent;
-    border-right: 9px solid #faf8f6;
-    border-bottom: 9px solid transparent;
-}
-
-.tipsy-e .tipsy-arrow:before {
-    top: -8px;
-    margin-top: 0;
-    border-top: 10px solid transparent;
-    border-right: 10px solid rgba(49, 48, 43, .1);
-    border-bottom: 10px solid transparent;
-}
-
-.tipsy-w .tipsy-arrow:after {
-    top: -5px;
-    left: -12px;
-    margin-top: -4px;
-    border-top: 9px solid transparent;
-    border-right: none;
-    border-bottom: 9px solid transparent;
-    border-left: 9px solid #faf8f6;
-}
-
-.tipsy-w .tipsy-arrow:before {
-    top: -8px;
-    left: -10px;
-    margin-top: 0;
-    border-top: 10px solid transparent;
-    border-right: none;
-    border-bottom: 10px solid transparent;
-    border-left: 10px solid rgba(49, 48, 43, .1);
-}
-
-.tipsy-n .tipsy-arrow:after,
-.tipsy-ne .tipsy-arrow:after,
-.tipsy-nw .tipsy-arrow:after {
-    margin-top: -4px;
-    left: -9px;
-    top: -7px;
-    border-top: 9px solid #faf8f6;
-    border-right: 9px solid transparent;
-    border-left: 9px solid transparent;
-}
-
-.tipsy-n .tipsy-arrow:before,
-.tipsy-ne .tipsy-arrow:before,
-.tipsy-nw .tipsy-arrow:before {
-    left: -10px;
-    top: -8px;
-    margin-top: 0;
-    border-top: 10px solid rgba(49, 48, 43, .1);
-    border-right: 10px solid transparent;
-    border-left: 10px solid transparent;
-}
-
-.tipsy-s .tipsy-arrow:after,
-.tipsy-sw .tipsy-arrow:after,
-.tipsy-se .tipsy-arrow:after {
-    left: -9px;
-    top: 6px;
-    margin-top: -4px;
-    border-top: none;
-    border-right: 9px solid transparent;
-    border-bottom: 9px solid #faf8f6;
-    border-left: 9px solid transparent;
-}
-
-.tipsy-inner dl {
-    margin: 0;
-}
-
-.tipsy-inner dt {
-    margin: 0 0 4px;
-    font-size: 16px;
-    font-weight: 400;
-    color: #f47b20;
-}
-
-.tipsy-inner dd {
-    margin: 0;
-    color: #676056;
-    font-size: 12px;
-    line-height: 18px;
-    font-family: Arial, Helvetica, sans-serif;
-}
-
-/*
-    Popups
--------------------------------------- */
-.fade .popup {
-    padding: 0;
-    border: 5px solid #969288;
-    border-radius: 8px;
-}
-
-.wrapper-popup {
-    padding: 0 10px;
-}
-
-.fade .popup .popup-inner {
-    padding: 20px;
-    border-radius: 3px;
-}
-
-.fade .popup .popup-title {
-    margin: 0 0 10px;
-}
-
-.popup-loading {
-    position: fixed;
-    z-index: 1003;
-    width: 200px;
-    background: rgba(255, 255, 255, .8);
-    left: 50%;
-    top: 40%;
-    margin-left: -100px;
-    color: #d85909;
-    border-color: #d85909;
-    font-size: 14px;
-    font-weight: bold;
-    text-align: center;
-    padding: 100px 0 10px;
-}
-
-.popup-loading:after {
-    position: absolute;
-    left: 50%;
-    top: 40%;
-    background-image: url(../mui/images/ajax-loader-big.gif);
-    width: 64px;
-    height: 64px;
-    margin: -32px 0 0 -32px;
-    content: '';
-    z-index: 2;
-}
-
-/* Loading mask */
-.loading-old,
-.loading-mask {
-    background: rgba(255, 255, 255, .4);
-    z-index: 999;
-}
-
-.loading-old,
-.loading-mask {
-    position: fixed;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.loading-old .loader,
-.loading-mask .loader {
-    position: absolute;
-    margin: auto;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    width: 160px;
-    height: 160px;
-    color: #5e5b56;
-    font-size: 14px;
-    font-weight: bold;
-    text-align: center;
-    background: #e5e2dd url(../mui/images/ajax-loader-big.gif) no-repeat 50% 30%;
-    border-radius: 5px;
-    opacity: .95;
-}
-
-.loading-mask img {
-    display: none;
-}
-
-.loading-old p,
-.loading-mask p {
-    margin-top: 118px;
-}
-
-/* Backup popup */
-/* TODO: remove after backups page js refactoring */
-.backup-dialog {
-    margin-top: inherit !important;
-}
-
-/*
-    Login page
--------------------------------------- */
-.page-login {
-    height: 100%;
-}
-
-.page-login .wrapper {
-    min-height: 100%;
-    padding: 0;
-}
-
-.page-login .wrapper-inner {
-    overflow: auto;
-    padding-bottom: 140px;
-}
-
-.page-login .footer {
-    clear: both;
-    height: 100px;
-    margin-top: -100px;
-    position: relative;
-    box-sizing: border-box;
-}
-
-.page-login .footer-content {
-    max-width: none;
-    min-width: 0;
-}
-
-.page-login .footer-copyright {
-    text-align: left;
-}
-
-.page-login .form-login {
-    width: 280px;
-    margin: 160px auto 60px;
-    padding: 30px 25px;
-    border: 1px solid #e3ded5;
-    border-radius: 5px;
-    background: #f7f2ec;
-}
-
-.page-login .fieldset {
-    background: transparent;
-    border: 0;
-    border-radius: 0;
-    margin: 0;
-    padding: 0;
-}
-
-.page-login .fieldset > .legend {
-    border-bottom: 0;
-    margin-bottom: 15px;
-}
-
-.page-login .fieldset > .legend span {
-    font-size: 32px;
-    line-height: 32px;
-    padding: 0;
-    color: #8a847c;
-    display: inline;
-}
-
-.page-login .fieldset .field {
-    margin: 0 0 13px;
-}
-
-.page-login .form-inline .label {
-    width: auto;
-    padding: 0;
-    margin-bottom: 13px;
-}
-
-.page-login .field-username label,
-.page-login .field-password label,
-.page-login .field-confirmation label {
-    display: none;
-}
-
-.page-login .form-inline .label + .control {
-    width: auto;
-    float: none;
-}
-
-.page-login .header {
-    margin-bottom: 30px;
-    background: transparent;
-    padding: 0;
-    z-index: auto;
-    position: static;
-}
-
-.page-login .header .logo {
-    display: block;
-    width: 262px;
-    height: 64px;
-    text-indent: -999em;
-    .url('images/logo-magento.png', 'Magento_Backend');
-    background: url("@{url}") no-repeat;
-}
-
-.page-login {
-    button {
-      border-radius: 2px;
-    }
-    button:not(.primary) {
-      background-image: none;
-      background-color: #f7f3eb;
-      padding: 0 13px;
-      color: #676056;
-      border: 1px solid #ada89e;
-      cursor: pointer;
-      display: inline-block;
-      font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
-      font-size: 13px;
-      font-weight: 500;
-      line-height: 26px;
-      box-sizing: border-box;
-      margin: 0;
-      vertical-align: middle;
-    }
-    button:not(.primary):focus,
-    button:not(.primary):active {
-      background-color: #cac3b4;
-      border: 1px solid #989287;
-    }
-    button:not(.primary):hover {
-      background-color: #cac3b4;
-    }
-    button:not(.primary).disabled,
-    button:not(.primary)[disabled] {
-      cursor: default;
-      pointer-events: none;
-      opacity: .5;
-    }
-    button.primary {
-      background-image: none;
-      background-color: #007dbd;
-      padding: 0 13px;
-      color: #fff;
-      border: 1px solid #0a6c9f;
-      cursor: pointer;
-      display: inline-block;
-      font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
-      font-size: 13px;
-      font-weight: 500;
-      line-height: 26px;
-      box-sizing: border-box;
-      vertical-align: middle;
-    }
-    button.primary:focus,
-    button.primary:active {
-      background-color: #026294;
-      border: 1px solid #004c74;
-      color: #fff;
-    }
-    button.primary:hover {
-      background-color: #026294;
-      border: 1px solid #026294;
-    }
-    button.primary.disabled,
-    button.primary[disabled] {
-      cursor: default;
-      pointer-events: none;
-      opacity: .5;
-    }
-}
-
-///*
-//.page-login .logo {
-//    display: block;
-//    width: 100px;
-//    height: 65px;
-//    margin: 0;
-//    text-indent: -999em;
-//    position: relative;
-//    z-index: 1;
-//}
-//
-//.page-login .logo:before,
-//.page-login .logo:after {
-//    font-family: 'admin-icons';
-//    font-size: 65px;
-//    content: '\e00d';
-//    position: absolute;
-//    bottom: 0;
-//    left: 0;
-//    text-indent: 0;
-//    line-height: 1;
-//    font-weight: normal;
-//}
-//
-//.page-login .logo:before {
-//    content: '\e00d';
-//    color: #f37b20;
-//}
-//
-//.page-login .logo:after {
-//    content: '\e00e';
-//    color: #fab57f;
-//}
-//
-//.page-login .logo span:before {
-//    font-family: 'admin-icons';
-//    content: '\e00f';
-//    display: block;
-//    position: absolute;
-//    top: 0;
-//    bottom: 0;
-//    left: 70px;
-//    font-size: 154px;
-//    margin-top: -42px;
-//    text-indent: 0;
-//    line-height: 1;
-//    font-weight: normal;
-//    color: #000;
-//}
-//*/
-
-.page-login .form-actions {
-    padding: 0;
-    margin: 0;
-    box-sizing: border-box;
-}
-
-.page-login .actions,
-.page-login .links {
-    display: inline-block;
-    vertical-align: middle;
-}
-
-.page-login input[type=text],
-.page-login input[type=password] {
-    border-color: #cac3b4;
-    font-size: 18px;
-    padding: 12px 12px 14px;
-    height: auto;
-}
-
-.page-login :-ms-input-placeholder {
-    color: #bebab1 !important;
-}
-
-.page-login ::-webkit-input-placeholder {
-    color: #bebab1 !important;
-}
-
-.page-login :-moz-placeholder {
-    color: #bebab1 !important;
-}
-
-.page-login button.action-login,
-.page-login button.action-retrieve {
-    font-size: 22px;
-    padding: 14px 22px 16px;
-}
-
-.page-login button.action-retrieve,
-.page-login button.action-reset {
-    font-size: 18px;
-    padding: 10px 17px 10px;
-}
-
-.page-login .action-forgotpassword,
-.page-login .action-back {
-    font-size: 12px;
-    color: #1c8bb8;
-    text-decoration: underline;
-    position: absolute;
-    left: 0;
-    bottom: -70px;
-}
-
-.page-login .action-forgotpassword:hover,
-.page-login .action-back:hover {
-    text-decoration: none;
-}
-
-/*
-    Page title
--------------------------------------- */
-.page-title {
-    position: relative;
-    margin: 20px 0;
-}
-
-.page-content > .page-title {
-    max-width: 1300px;
-    min-width: 960px;
-    margin-left: auto;
-    margin-right: auto;
-}
-
-.page-title-inner > .title {
-    .style23();
-    display: inline-block;
-    margin: 0;
-    width: 100%;
-    word-wrap: break-word;
-}
-
-.page-title-inner .title > h3 {
-    margin: 0;
-}
-
-.page-title-inner .actions {
-    float: right;
-}
-
-.page-title-inner .actions form {
-    display: inline-block;
-}
-
-/*
-    Messages (Global)
--------------------------------------- */
-
-.wrapper > .message {
-    padding: 0 20px;
-}
-
-.page-content > #messages {
-    max-width: 1300px;
-    min-width: 960px;
-    margin: 0 auto;
-}
-
-.messages {
-    margin: 20px 0;
-    > .message:last-child {
-        margin-bottom: 0;
-    }
-    &.license {  // license message in view\adminhtml\checker\reminder.phtml
-        font-size: 20px;
-        line-height: 1.2;
-        margin: 20px auto;
-        max-width: 1300px;
-        min-width: 960px;
-        padding: 0 20px;
-    }
-}
-
-.message {
-    background: #f9f5ec;
-    border-bottom: 1px solid #c7c2b6;
-    border-radius: 5px;
-    color: #676056;
-    margin: 20px 0;
-    padding: 10px 26px 10px 35px;
-    position: relative;
-    text-shadow: none;
-    &:before {
-        position: absolute;
-        left: 11px;
-        top: 50%;
-        margin-top: -11px;
-        background: none;
-        text-shadow: none;
-        width: auto;
-        height: auto;
-        border: 0;
-        font-family: 'MUI-Icons';
-        font-style: normal;
-        speak: none;
-        font-weight: normal;
-        -webkit-font-smoothing: antialiased;
-        font-size: 16px;
-        line-height: inherit;
-        content: '\e046'; /* icon-info  */
-        color: #d87e34;
-    }
-    &.error {
-        color: #963535;
-        border-color: #963535;
-        background: #f3dcd8;
-        &:before {
-            content: '\e069';
-            color: #963535;
-        }
-    }
-    &.success {
-        border-color: #ceceb6;
-        background: #e4eecb;
-        color: #185b00;
-        &:before {
-            content: '\e067';
-            color: #185b00;
-        }
-    }
-}
-
-.messages-inbox {
-    float: right;
-}
-
-.messages-inbox .critical {
-    color: red;
-}
-
-/* System Messages */
-.message-system {
-    padding: 0;
-    &:before {
-        display: none;
-    }
-    .message-inner {
-        position: relative;
-        min-width: 960px;
-        max-width: 1300px;
-        margin: 0 auto;
-        &:before {
-            background: none;
-            border: 0;
-            content: '\e006'; /* notification icon */
-            color: #6e685e;
-            font-family: 'MUI-Icons';
-            font-style: normal;
-            font-weight: normal;
-            speak: none;
-            -webkit-font-smoothing: antialiased;
-            height: auto;
-            left: 8px;
-            margin-top: -10px;
-            position: absolute;
-            text-shadow: none;
-            top: 50%;
-            width: auto;
-            font-size: 16px;
-        }
-    }
-    .message-content {
-        padding: 10px 26px 10px 32px;
-    }
-}
-
-/*
-    No-javaScript-Enabled message
--------------------------------------- */
-.message-noscript {
-    background: #ff9;
-    padding: 0;
-    border: 0;
-    box-shadow: 0 1px 2px #46433d;
-    z-index: 994;
-    &:before {
-        content: '';
-    }
-    .message-content {
-        margin: 0 auto;
-        max-width: 1300px;
-        min-width: 960px;
-        padding: 3px 0;
-        position: relative;
-        text-align: center;
-        &:before {
-            position: relative;
-            background: none;
-            text-shadow: none;
-            width: auto;
-            height: auto;
-            vertical-align: middle;
-            border: 0;
-            font-family: 'MUI-Icons';
-            font-style: normal;
-            font-weight: normal;
-            font-size: 32px;
-            speak: none;
-            -webkit-font-smoothing: antialiased;
-            content: '\e006'; /* notification icon */
-            color: #6e685e;
-        }
-    }
-}
-
-.message-demo-mode {
-    background: #d75f07;
-    border: 0;
-    color: #fff;
-    text-align: center;
-    padding: 5px 0;
-    box-shadow: 0 1px 2px #46433d;
-    z-index: 993;
-    &:before {
-        content: '';
-    }
-    .message-content {
-        margin: 0 auto;
-        max-width: 1300px;
-        min-width: 960px;
-        position: relative;
-        text-align: center;
-        &:before {
-            position: relative;
-            background: none;
-            text-shadow: none;
-            width: auto;
-            height: auto;
-            vertical-align: middle;
-            border: 0;
-            font-family: 'MUI-Icons';
-            font-style: normal;
-            speak: none;
-            font-weight: normal;
-            -webkit-font-smoothing: antialiased;
-            font-size: 16px;
-            content: '\e006'; /* notification icon */
-        }
-    }
-}
-
-/*
-    Information message
--------------------------------------- */
-.message-info,
-.message.info {
-    background: #fffbf0;
-    border: 1px solid #d87e34;
-    margin-bottom: 20px;
-    &:before {
-        font-family: 'MUI-Icons';
-        font-style: normal;
-        speak: none;
-        font-weight: normal;
-        -webkit-font-smoothing: antialiased;
-        content: '\e046'; /* icon-info  */
-        color: #d87e34;
-    }
-}
-
-/*
-    Error message
--------------------------------------- */
-.message-error,
-.message.error {
-    color: #963535;
-    background: #f3dcd8;
-    border: 1px solid #963535;
-    margin-bottom: 20px;
-    &:before {
-        content: '\e069';
-        color: #963535;
-    }
-}
-
-/*
-    Store Switcher
--------------------------------------- */
-.store-switcher-alt {
-    position: relative;
-    display: inline-block;
-}
-
-.store-switcher-alt .dropdown-menu {
-    white-space: nowrap;
-    margin-top: 2px;
-}
-
-.store-switcher-alt.active .dropdown-menu {
-    display: block;
-}
-
-.store-switcher-alt .dropdown-menu ul {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-}
-
-.store-switcher-alt strong {
-    display: block;
-    font-size: 14px;
-    font-weight: 500;
-    line-height: 1.333;
-    color: #a6a098;
-    padding: 5px 10px;
-}
-
-.store-switcher-alt .store-selected {
-    font-size: 12px;
-    font-weight: 400;
-    line-height: 1.333;
-    color: #676056;
-    cursor: pointer;
-}
-
-.store-switcher-alt .store-selected:after {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02c'; /* arrow down icon */
-    color: #b3b0ad;
-    margin: 0 0 0 3px;
-    vertical-align: text-top;
-}
-
-.store-switcher-alt .store-switcher-website,
-.store-switcher-alt .store-switcher-store {
-    padding: 0;
-}
-
-.store-switcher-alt .store-switcher-website:hover,
-.store-switcher-alt .store-switcher-store:hover {
-    background: none;
-}
-
-.store-switcher-website {
-    margin: 5px 0 0;
-}
-
-.store-switcher-website > strong {
-    padding-left: 13px;
-}
-
-.store-switcher-store {
-    margin: 1px 0 0;
-}
-
-.store-switcher-store > strong {
-    padding-left: 20px;
-}
-
-.store-switcher-alt .store-switcher-store > ul {
-    margin-top: 1px;
-}
-
-.store-switcher-alt .store-switcher-store-view {
-    padding: 0;
-}
-
-.store-switcher-store-view:first-child {
-    border-top: 1px solid #e5e5e5;
-}
-
-.store-switcher-store-view > a {
-    display: block;
-    padding: 5px 15px 5px 24px;
-    color: #333;
-    font-size: 13px;
-    text-decoration: none;
-}
-
-.store-switcher-alt .store-switcher-all,
-.store-switcher-alt .manage-stores {
-    padding: 0;
-}
-
-.store-switcher-alt .store-switcher-all > a,
-.store-switcher-alt .manage-stores > a {
-    display: block;
-    padding: 8px 15px;
-    color: #676056;
-    text-decoration: none;
-    font-size: 12px;
-}
-
-/*
-    Page Structure
--------------------------------------- */
-
-.page-title.complex .title {
-    float: left;
-    width: 70%;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-}
-
-.page-title.complex .store-switcher-alt {
-    float: right;
-    margin: 12px 0 0;
-}
-
-.side-col {
-    padding-bottom: 20px;
-    position: relative;
-    width: 20%;
-}
-
-.main-col {
-    position: relative;
-    width: 80%;
-    padding: 0 20px 20px;
-    box-sizing: border-box;
-}
-
-.col-left {
-    float: left;
-}
-
-.col-right {
-    float: right;
-}
-
-.col-1-layout {
-    .main-col {
-        width: auto;
-    }
-}
-
-.col-2-left-layout,
-.col-1-layout {
-    background: #f7f3eb;
-    margin: 0 auto;
-    position: relative;
-}
-
-.col-2-left-layout {
-    padding-top: 20px;
-    &:before {
-        position: absolute;
-        content: "";
-        background-color: #fff;
-        right:0;
-        top: 0;
-        bottom: 0;
-        min-width: 730px;
-        width: 80%;
-    }
-    .main-col {
-        padding-right: 0;
-        padding-left: 0;
-        float: right;
-    }
-    .side-col {
-        float: left;
-    }
-}
-
-.col-2-right-layout {
-    .side-col {
-        float: right;
-    }
-    .main-col {
-        float: left;
-    }
-}
-
-.col-2-left-layout .main-col,
-.col-2-right-layout .main-col {
-    min-width: 730px;
-}
-
-/* Sidebar title */
-/* TODO: temporary styles */
-.side-col h3 {
-    padding: 0 17px;
-    margin-top: 16px;
-}
-
-.side-col .ui-tabs h3 {
-    margin-bottom: 5px;
-    color: #524c44;
-    text-shadow: 0 1px 0 #fff;
-}
-
-//
-//    Universal Sidebar Tabs
-// --------------------------------------
-// TODO: for "Product" page only while refactoring */
-.side-col .ui-tabs .ui-accordion-header {
-    margin: 10px 0 0;
-    padding: 0;
-    &:focus {
-        outline: none;
-    }
-    span {
-        color: #524c44;
-        cursor: pointer;
-        display: block;
-        position: relative;
-        padding: 5px 20px;
-        text-shadow: 0 1px 0 #fff;
-        &:before {
-            position: absolute;
-            left: 4px;
-            top: 7px;
-            font-family: 'MUI-Icons';
-            font-style: normal;
-            speak: none;
-            font-weight: normal;
-            -webkit-font-smoothing: antialiased;
-            content: '\e02a'; // arrow right icon
-            font-size: 14px;
-            color: #ada79e;
-        }
-    }
-    &:hover {
-        span:before {
-            color: #777;
-        }
-    }
-    &-active span:before {
-        content: '\e02c'; // arrow down icon
-    }
-}
-
-.side-col .tabs {
-    margin: 0 0 30px;
-    padding: 0;
-    list-style: none;
-    font-weight: 500;
-}
-
-.side-col > .ui-tabs > .tabs:first-child > li:first-child > a {
-    border-top-left-radius: 5px;
-}
-
-.side-col .tabs > li {
-    border-bottom: 1px solid #e5e1db;
-}
-
-.side-col .tabs > li:first-child {
-    border-top: 1px solid #e5e1db;
-}
-
-.side-col .tabs > li a {
-    position: relative;
-    display: block;
-    padding: 8px 18px;
-    text-decoration: none;
-    color: #676056;
-    transition: background .3s ease-in-out;
-}
-
-.side-col .tabs > li a:hover {
-    background: #fff;
-}
-
-.side-col .tabs > .ui-state-active a {
-    border-left: 3px solid #d87e34;
-    padding-left: 15px;
-    background: #dedcd8;
-    box-shadow: 0 1px 2px #ccc inset;
-}
-
-.side-col .tabs > .ui-state-active a:after,
-.side-col .tabs > .ui-state-active a:before {
-    position: absolute;
-    top: 50%;
-    right: 0;
-    width: 14px;
-    margin-top: -14px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02b'; /* left turned triangle icon */
-    font-size: 22px;
-    color: #fff;
-    overflow: hidden;
-    z-index: 4;
-}
-
-.side-col .tabs > .ui-state-active a:before {
-    color: #bdbbb7;
-    margin-top: -13px;
-    z-index: 3;
-}
-
-.side-col .tabs span.error,
-.side-col .tabs span.loader {
-    display: none;
-    position: absolute;
-    right: 12px;
-    top: 7px;
-    width: 16px;
-    height: 16px;
-    font-size: 16px;
-}
-
-.side-col .tab-item-link.changed {
-    font-style: italic;
-}
-
-.side-col .tab-item-link.error span.error,
-.side-col .ui-tabs-loading span.loader {
-    display: block;
-}
-
-.side-col .tab-item-link.error span.error:after {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e006'; /* warning icon */
-    color: #d87e34;
-}
-
-.side-col .ui-tabs-loading span.loader:after {
-    background: url(../mui/images/ajax-loader-small.gif) no-repeat 50% 50%;
-    display: block;
-    content: '';
-    width: 16px;
-    height: 16px;
-}
-
-/* TODO: styles for navigation on System > Configuration page */
-
-/*
-    Horizontal Tabs
--------------------------------------- */
-.ui-tabs {
-    clear: both;
-}
-.tabs-horiz {
-    list-style: none;
-    margin: 0;
-    padding: 3px 0 0;
-}
-
-.tabs-horiz > li {
-    float: left;
-    margin: 0 5px 0 0;
-}
-
-.tabs-horiz .ui-tabs-anchor {
-    position: relative;
-    display: block;
-    text-decoration: none;
-    .style7();
-    background: #e0dacf;
-    padding: 11px 15px 13px;
-    border-radius: 2px 2px 0 0;
-}
-
-.tabs-horiz > .ui-state-active .ui-tabs-anchor {
-    background: #fff;
-}
-
-/*
-    System -> Configuration page navigation in sidebar
--------------------------------------- */
-.config-nav,
-.config-nav .items {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-}
-
-.config-nav-block {
-
-}
-
-.config-nav-block:last-child {
-    margin-bottom: 30px;
-}
-
-.config-nav .item {
-    border-top: 1px solid #E5E1DB;
-}
-
-.config-nav .item:first-child {
-    border-top: 0;
-}
-
-.config-nav .title {
-    margin-bottom: 0;
-    text-transform: uppercase;
-    color: #444;
-    border: solid #CCC;
-    border-width: 1px 0;
-    opacity: .8;
-    padding: 7px 17px;
-    background: #E6E3DE;
-}
-
-.config-nav .item-nav {
-    display: block;
-    padding: 8px 18px;
-    text-decoration: none;
-    color: #676056;
-    transition: background .3s ease-in-out;
-}
-
-.config-nav .item-nav:hover {
-    background: #fff;
-}
-
-.config-nav .item-nav.active {
-    position: relative;
-    border-left: 3px solid #d87e34;
-    padding-left: 15px;
-    background: #dedcd8;
-    box-shadow: 0 1px 2px #ccc inset;
-}
-
-.config-nav .item-nav.active:after {
-    position: absolute;
-    top: 50%;
-    right: 0;
-    width: 14px;
-    margin-top: -14px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02b'; /* left turned triangle icon */
-    font-size: 22px;
-    text-shadow: -1px 1px 0 #bdbbb7;
-    color: #fff;
-    overflow: hidden;
-    z-index: 3;
-}
-
-/*
-    Footer
--------------------------------------- */
-.footer {
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    color: #989288;
-    font-size: 11px;
-}
-
-.footer-content {
-    margin: 0 auto;
-    max-width: 1300px;
-    min-width: 960px;
-    padding: 20px;
-}
-
-/*
-    Switcher
--------------------------------------- */
-.switcher {
-    -webkit-touch-callout: none;
-    -webkit-user-select: none; // use in 41 Chrome
-    -moz-user-select: none; // use in 36 Firefox
-    -ms-user-select: none; // use in 11 IE
-    user-select: none;
-    cursor: pointer;
-    display: inline-block;
-    overflow: hidden;
-}
-
-.switcher input[type="checkbox"] {
-    position: absolute;
-    left: -999em;
-}
-
-.switcher-label {
-    .style2();
-    text-transform: uppercase;
-}
-
-.switcher-label:before {
-    content: attr(data-text-off);
-}
-
-.switcher-label:after {
-    display: inline-block;
-    margin-left: 10px;
-    vertical-align: bottom;
-    width: 34px;
-    height: 17px;
-    background: url(../images/switcher.png) no-repeat;
-    content: '';
-}
-
-.switcher input[type="checkbox"]:focus + .switcher-label:after {
-    border-color: #75b9f0;
-}
-
-.switcher input[type="checkbox"]:checked + .switcher-label:after {
-    background-position: -34px 0;
-}
-
-.switcher input[type="checkbox"]:checked + .switcher-label:before {
-    content: attr(data-text-on);
-}
-
-/*
-    Content actions panel (with buttons, switchers...)
--------------------------------------- */
-// .page-actions {
-//     padding: 0 0 20px;
-//     text-align: right;
-// }
-
-.page-actions .buttons-group {
-    vertical-align: top;
-    text-align: left;
-}
-
-.page-actions > .switcher {
-    display: inline-block;
-    vertical-align: top;
-    margin: 6px 10px 0 0;
-}
-
-// .main-col .page-actions {
-//     padding: 20px 0;
-// }
-
-.page-actions .store-switcher {
-    float: left;
-}
-
-.catalog-product-index .page-actions {
-    padding-top: 0;
-}
-
-[class^=" catalog-product-"] .store-scope .store-tree {
-    float: left;
-}
-
-// TODO: refactor trees
-.x-tree ul {
-    margin: 0;
-    padding: 0;
-}
-
-.tree-wrapper {
-    width: 100%;
-    overflow: auto;
-    float: left; // Fixed Chrome scroll issue
-}
-
-.page-actions.fixed .page-actions-inner:before {
-    content: attr(data-title);
-    float: left;
-    font-size: 20px;
-    max-width: 50%;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-}
-
-/* Dynamic Grid */
-/* Used in pages like Catalog -> Attributes */
-.dynamic-grid th {
-    padding: 2px;
-    width: 100px;
-}
-
-.dynamic-grid td {
-    padding: 2px;
-}
-
-.dynamic-grid td input {
-    width: 94px;
-}
-
-tr.dynamic-grid td,
-tr.dynamic-grid th {
-    padding: 2px 10px 2px 0;
-    width: auto;
-}
-
-tr.dynamic-grid input.input-text {
-    width: 154px;
-}
-
-.available {
-    color: #080;
-    font-weight: bold;
-}
-
-.not-available {
-    color: #800;
-}
-
-.categories-side-col {
-    padding: 0 3%;
-}
-
-//
-//    Website store views tree
-// --------------------------------------
-.store-tree {
-    .website-name {
-        font-size: 14px;
-        font-weight: bold;
-    }
-    .webiste-groups {
-        margin: 5px 0 20px 18px;
-        dt {
-            font-weight: bold;
-        }
-        dd {
-            margin: 5px 0 15px 15px;
-            > ul {
-                list-style: none;
-                margin: 0;
-                padding: 0;
-                > li {
-                    margin: 0 0 5px;
-                }
-            }
-        }
-    }
-}
-
-//
-//    Customer Reviews
-// --------------------------------------
-.field-detailed_rating {
-    .control-value {
-        padding: 0;
-    }
-    .nested {
-        padding: 0;
-    }
-    .field-rating {
-        margin: 15px 0 0;
-        &:first-child {
-            margin-top: 0;
-        }
-        .label {
-            width: 75px;
-        }
-        .control {
-            unicode-bidi: bidi-override;
-            direction: rtl;
-            width: 125px;
-            label {
-                color: #ccc;
-                cursor: pointer;
-                font-size: 18px;
-                float: right;
-                overflow: hidden;
-                white-space: nowrap;
-                width: 18px;
-                transition: color 150ms linear;
-            }
-        }
-    }
-    input[type="radio"] {
-        display: none;
-    }
-}
-
-//
-//    Tree Store Scope
-// --------------------------------------
-.tree-store-scope {
-    .buttons-set {
-        margin-bottom: 9px;
-        button {
-            margin-right: 4px;
-        }
-    }
-    .field {
-        margin: 0 0 5px;
-        input[type="checkbox"] {
-            margin-right: 3px;
-            position: relative;
-            top: 2px;
-        }
-        .addafter {
-            display: inline-block;
-            padding-top: 6px;
-        }
-    }
-    [class^="field field-website_"] .label,
-    [class^="field field-group_"] .label,
-    [class^="field field-w_"] .label,
-    [class^="field field-sg_"] .label {
-        text-align: left;
-        font-size: 18px;
-        padding-right: 0;
-        width: auto;
-    }
-    [class^="field field-group_"] .label,
-    [class^="field field-sg_"] .label {
-        padding-left: 20px;
-    }
-    .tooltip .help {
-        margin-top: 11px;
-    }
-}
-
-//
-//    Widgets
-//--------------------------------------
-.widget-layout-updates .fieldset-wrapper,
-.widget-layout-updates .data-table {
-    margin: 0 0 18px;
-}
-
-.widget-layout-updates .fieldset-wrapper-title label {
-    padding: 10px 0 0;
-}
-
-.widget-layout-updates .fieldset-wrapper-title select {
-    margin: 3px 10px 5px;
-}
-
-.widget-layout-updates .fieldset-wrapper-title span,
-.widget-layout-updates .fieldset-wrapper-title select {
-    vertical-align: middle;
-}
-
-.widget-layout-updates .data-table {
-    table-layout: fixed;
-}
-
-.widget-layout-updates .data-table,
-.widget-layout-updates .data-table tr:nth-child(odd) td,
-.widget-layout-updates .data-table tr:nth-child(odd):hover td {
-    background: none;
-    border: none;
-}
-
-.widget-layout-updates .data-table th,
-.widget-layout-updates .data-table tbody td {
-    border: none;
-    padding: 5px 10px;
-}
-
-.widget-layout-updates .data-table select {
-    margin: 0;
-    max-width: 99%;
-    overflow: hidden;
-}
-
-.widget-layout-updates .chooser_container {
-    padding: 0 10px;
-    margin-bottom: 18px;
-}
-
-.widget-layout-updates .chooser_container p {
-    margin: 0 0 18px;
-}
-
-.widget-layout-updates .chooser_container p img,
-.widget-layout-updates .chooser_container p input {
-    vertical-align: middle;
-}
-
-/*
-    Preview window
--------------------------------------- */
-.preview-window {
-    background: #fff;
-}
-
-.preview-window .toolbar {
-    background: #f5f2ed;
-    padding: 20px;
-}
-
-.preview-window .toolbar .switcher {
-    margin: 0;
-}
-
-.preview-window .toolbar .switcher span {
-    background: none;
-    width: auto;
-}
-
-/*
-    Global 'No Products found' block
--------------------------------------- */
-.no-products-message {
-    background: #fbfaf6;
-    padding: 12px;
-    text-align: center;
-    font-size: 12px;
-    color: #666;
-    margin-bottom: 13px;
-}
-
-/*
-    WYSIWYG
--------------------------------------- */
-.action-wysiwyg {
-    margin: 10px 0;
-}
-
-#catalog-wysiwyg-editor .buttons-set {
-    margin-bottom: 9px;
-}
-
-#catalog-wysiwyg-editor .buttons-set button {
-    margin-right: 4px;
-}
-
-/*
-    System Messages
--------------------------------------- */
-.message-system {
-    margin: 0 auto;
-    overflow: hidden;
-}
-
-.message-system-inner {
-    background: #f7f3eb;
-    border: 1px solid #c0bbaf;
-    border-top: 0;
-    border-radius: 0 0 5px 5px;
-    float: right;
-    overflow: hidden;
-}
-
-.message-system-unread .message-system-inner {
-    float: none;
-}
-
-.message-system-list {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-    float: left;
-}
-
-.message-system .message-system-list {
-    width: 75%;
-}
-
-.message-system-list li {
-    padding: 5px 13px 7px 36px;
-    position: relative;
-}
-
-.message-system-short {
-    padding: 5px 13px 7px;
-    float: right;
-}
-
-.message-system-short span {
-    display: inline-block;
-    margin-left: 7px;
-    border-left: 1px #d1ccc3 solid;
-}
-
-.message-system-short span:first-child {
-    border: 0;
-    margin-left: 0;
-}
-
-.message-system-short a {
-    padding-left: 27px;
-    position: relative;
-    height: 16px;
-}
-
-.message-system .message-system-short a:before,
-.message-system-list li:before {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    height: 16px;
-    width: 16px;
-    font-size: 16px;
-    line-height: 16px;
-    text-align: center;
-    position: absolute;
-    left: 7px;
-    top: 2px;
-}
-
-.message-system-list li:before {
-    top: 5px;
-    left: 13px;
-}
-
-.message-system .message-system-short .warning a:before,
-.message-system-list li.warning:before {
-    content: "\e006";
-    color: #f2a825;
-}
-
-.message-system .message-system-short .error a:before,
-.message-system-list li.error:before {
-    content: "\e086";
-    font-family: 'MUI-Icons';
-    color: #c00815;
-}
-
-.ui-dialog .message-system-list {
-    margin-bottom: 25px;
-}
-
-/*
-    Add Attribute Popup
--------------------------------------- */
-#create_new_attribute {
-    overflow: hidden;
-}
-
-#create_new_attribute > .loading-mask {
-    left: -25px;
-    top: -50px;
-}
-
-.attribute-popup {
-    background: none;
-}
-
-.attribute-popup #edit_form {
-    padding-bottom: 80px;
-}
-
-.attribute-popup #edit_form > .fieldset > .legend {
-    display: none;
-}
-
-.attribute-popup .wrapper-popup {
-    padding: 0;
-    height: 511px;
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-
-.attribute-popup .fieldset,
-.attribute-popup .fieldset-wrapper {
-    border: none;
-    border-radius: 0;
-    padding: 4px 0 20px;
-    margin: 0 23px 20px;
-}
-
-.attribute-popup .fieldset-wrapper {
-    border-top: none;
-}
-
-.attribute-popup .fieldset-wrapper:not(.collapsable-wrapper) .fieldset-wrapper-title {
-    border-bottom: none;
-}
-
-.attribute-popup .fieldset-wrapper .fieldset-wrapper-content > .fieldset {
-    margin-left: 0;
-    margin-right: 0;
-}
-
-.attribute-popup .fieldset > .field > input[type="checkbox"] {
-    margin-top: 7px;
-}
-
-.attribute-popup .fieldset .label {
-    width: 35%;
-}
-
-.attribute-popup .collapsable-wrapper,
-#manage-titles-wrapper .fieldset-wrapper-title {
-    margin-bottom: 0;
-    padding-bottom: 0;
-}
-
-.attribute-popup .collapsable-wrapper .fieldset-wrapper-title > .title:before {
-    color: #797269;
-    font-size: 14px;
-    top: 9px;
-}
-
-.attribute-popup form .entry-edit:first-child .fieldset {
-    border-bottom: 1px solid #dfdcd7;
-}
-
-.attribute-popup .fieldset .legend {
-    border: none;
-}
-
-.attribute-popup .page-actions {
-    position: fixed;
-    top: auto !important;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    background: #fff;
-    padding: 27px 50px 25px 23px;
-    border-top: 1px solid #dfdcd7;
-}
-
-.attribute-popup .page-actions [class^='action-'] {
-    margin-left: 18px;
-}
-
-.attribute-popup #base_fieldset {
-    padding-top: 20px;
-}
-
-.attribute-popup #base_fieldset > .legend {
-    display: none;
-}
-
-.attribute-popup .page-actions #reset,
-.attribute-popup .page-actions #reset:hover,
-.attribute-popup .page-actions #reset:active,
-.attribute-popup .page-actions #reset:focus {
-    float: right;
-    vertical-align: middle;
-    margin: 5px 0 0 18px;
-}
-
-.attribute-popup .page-actions-placeholder {
-    display: none;
-}
-
-.attribute-popup .page-actions.fixed .page-actions-inner {
-    background: #fff;
-    padding: 0;
-    min-width: 100%;
-    max-width: 100%;
-    min-height: 100%;
-    margin: 0;
-}
-
-.attribute-popup .footer {
-    display: none;
-}
-
-#manage-options-panel > .data-table {
-    clear: both;
-}
-
-// Default & Primary Button
-// input[type=button],
-// input[type=submit],
-// input[type=reset],
-// button,
-// [class^="action-"],
-// .popup-window .add-widget {
-//     &:extend(.DefaultButton all);
-//     &.primary {
-//         &:extend(.PrimaryButton all);
-//     }
-// }
-
-// Custom grids view
-.CustomGridView {
-    .col-1-layout {
-        background: transparent;
-    }
-}
-
-// Custom grid action view for Primary Add Button at grid tables
-.CustomGridAction {
-    .grid-actions {
-        border-radius: 5px 5px 0 0;
-        margin-top: 20px;
-        padding: 9px 15px;
-    }
-    .page-actions.fixed {
-        left: 0;
-        margin: 0;
-        padding: 0 21px;
-        position: fixed;
-    }
-    .page-actions {
-        position: absolute;
-        z-index: 2;
-        margin-top: 10px;
-        margin-left: 15px;
-        padding: 0;
-    }
-}
-
-// // Primary Add Button for grid tables on pages:
-// // sales
-// .sales-order-index,
-// .adminhtml-rma-index,
-// // marketing
-// .adminhtml-catalog-event-index,
-// .adminhtml-urlrewrite-index,
-// .catalog-search-index,
-// .review-product-index,
-// .catalog-rule-promo-catalog-index,
-// .sales-rule-promo-quote-index,
-// .adminhtml-reminder-index,
-// .newsletter-template-index,
-// .adminhtml-system-email-template-index,
-// .adminhtml-sitemap-index,
-// // products
-// .adminhtml-googleshopping-types-index,
-// // customers
-// .customer-index-index,
-// // cms
-// .adminhtml-cms-page-index,
-// .cms-block-index,
-// .adminhtml-banner-index,
-// .adminhtml-widget-instance-index,
-// .cms-page-index,
-// // system
-// .adminhtml-webapi-user-index,
-// .adminhtml-webapi-role-index,
-// .adminhtml-system-variable-index,
-// .adminhtml-user-index,
-// .adminhtml-user-role-index,
-// .adminhtml-integration-index,
-// // content
-// .adminhtml-system-design-theme-index,
-// .adminhtml-system-design-index,
-// // stores
-// .adminhtml-customer-attribute-index,
-// .adminhtml-customer-address-attribute-index,
-// .rating-index-index,
-// .tax-rule-index,
-// .tax-rate-index,
-// .adminhtml-rma-item-attribute-index,
-// .adminhtml-reward-rate-index,
-// .customer-group-index,
-// .checkout-agreement-index,
-// .catalog-product-attribute-index,
-// .catalog-product-set-index {
-//     &:extend(.CustomGridView all);
-//     &:extend(.CustomGridAction all);
-//     .page-actions {
-//         .add {
-//             &:extend(.PrimaryAddButton all);
-//         }
-//     }
-// }
-
-// .catalog-product-index {
-//     &:extend(.CustomGridView all);
-//     &:extend(.CustomGridAction all);
-// }
-
-// Primary Add Split Button or Primary Split Button
-// .catalog-product-new,
-// .catalog-product-edit,
-// .catalog-product-index,
-// .adminhtml-integration-new {
-//     .actions-split {
-//         &:extend(.PrimarySplitButton all);
-//     }
-// }
-
-// // Custom Grid View for pages:
-// // sales
-// .sales-invoice-index,
-// .sales-shipment-index,
-// .sales-creditmemo-index,
-// .sales-billing-agreement-index,
-// .sales-transactions-index,
-// // products
-// .adminhtml-googleshopping-items-index,
-// // customer
-// .customer-online-index,
-// // marketing
-// .newsletter-queue-index,
-// .newsletter-subscriber-index,
-// // reports
-// .adminhtml-report-shopcart-product,
-// .adminhtml-report-shopcart-abandoned
-// .adminhtml-report-product-downloads,
-// .adminhtml-report-product-sold,
-// .adminhtml-report-product-lowstock,
-// .adminhtml-report-customer-accounts,
-// .adminhtml-report-customer-totals,
-// .adminhtml-report-customer-orders,
-// .adminhtml-report-customer-wishlist-wishlist,
-// .adminhtml-report-review-customer,
-// .adminhtml-report-review-product,
-// .adminhtml-report-search,
-// .adminhtml-report-statistics-index,
-// .newsletter-problem-index,
-// //store
-// .adminhtml-system-store-index,
-// .sales-order-status-index,
-// .adminhtml-system-currency-index,
-// .adminhtml-system-currencysymbol-index,
-// .adminhtml-scheduled-operation-index,
-// // system
-// .adminhtml-cache-index,
-// .adminhtml-system-backup-index,
-// .adminhtml-locks-index,
-// .adminhtml-notification-index,
-// .adminhtml-logging-archive,
-// .adminhtml-logging-index,
-// .adminhtml-process-list,
-// // product
-// .catalog-product-index {
-//     &:extend(.CustomGridView all);
-// }
-
-// Custom page-actions view
-.adminhtml-googleshopping-items-index .grid-title {
-    padding: 15px;
-}
-
-.adminhtml-googleshopping-items-index .grid {
-    padding-bottom: 25px;
-}
-
-.adminhtml-googleshopping-items-index .grid-title .title {
-    font-size: 18px;
-}
-
-.adminhtml-googleshopping-items-index .page-actions {
-    float: right;
-}
-
-.adminhtml-system-backup-index .page-actions.fixed,
-.adminhtml-scheduled-operation-index .page-actions.fixed,
-.adminhtml-system-currency-index .page-actions.fixed,
-.adminhtml-system-currencysymbol-index .page-actions.fixed,
-.adminhtml-cache-index .page-actions.fixed,
-.adminhtml-system-store-index .page-actions.fixed,
-.sales-order-status-index .page-actions.fixed {
-    background-image: none;
-    padding: 0 21px;
-    position: fixed;
-}
-
-.adminhtml-cache-index .additional-cache-management {
-    margin-bottom: 0;
-}
-
-// .catalog-rule-promo-catalog-index .grid-actions {
-//     padding-left: 210px;
-// }
-
-// .catalog-rule-promo-catalog-index .page-actions .apply {
-//     float: right;
-//     margin: 0 0 0 10px;
-// }
-
-.sidebar-actions {
-    padding: 14px 0;
-}
-
-.sidebar-actions button {
-    margin: 0 0 5px;
-}
-
-.adminhtml-system-currency-index .page-actions.fixed .import-service {
-    display: inline-block;
-    float: none;
-}
-
-.data-table .fpt-item-container {
-    td {
-        vertical-align: top;
-    }
-    select:first-child {
-        margin-bottom: 8px;
-    }
-}
-
-.eq-ie9 {
-    .col-1-layout,
-    .catalog-product-edit,
-    .catalog-product-new,
-    .sales-order-view,
-    .catalog-category-edit {
-        table.data {
-            table-layout: fixed;
-            word-wrap: break-word;
-            th {
-                word-wrap: normal;
-                overflow: hidden;
-                vertical-align: top;
-                > span {
-                    white-space: normal;
-                }
-            }
-            th:not(.col-select):not(.col-id):not(.col-severity),
-            td:not(.col-select):not(.col-id):not(.col-severity) {
-                width: auto;
-            }
-        }
-    }
-
-    #setGrid_table,
-    #attributeGrid_table,
-    .custom-options .data-table,
-    .ui-dialog .data,
-    .col-1-layout .data,
-    .sales-order-view .data,
-    .catalog-category-edit .data {
-        word-wrap: break-word;
-        table-layout: fixed;
-    }
-    .fieldset-wrapper {
-        table.data {
-            table-layout: inherit;
-            word-wrap: normal;
-        }
-    }
-    .sales-order-create-index table.data,
-    .sales-order-create-index .fieldset-wrapper table.data {
-        table-layout: fixed;
-        word-wrap: break-word;
-        th {
-            word-wrap: normal;
-            overflow: hidden;
-            vertical-align: top;
-            > span {
-                white-space: normal;
-            }
-        }
-    }
-
-    .entry-edit .product-options .grouped-items-table {
-        table-layout: fixed;
-        word-wrap: break-word;
-        th {
-            word-wrap: normal;
-            overflow: hidden;
-            vertical-align: top;
-            > span {
-                white-space: normal;
-            }
-        }
-    }
-
-    .catalog-category-edit,
-    .adminhtml-cache-index,
-    .adminhtml-process-list,
-    .indexer-indexer-list,
-    .adminhtml-notification-index {
-        table.data {
-            table-layout: inherit;
-            word-wrap: normal;
-        }
-    }
-}
-
-// Clearfix
-.clearfix:before,
-.clearfix:after,
-[class$="-layout"]:after,
-.footer-content:before,
-.footer-content:after,
-.page-title-inner:before,
-.page-title-inner:after,
-.tabs-horiz:before,
-.tabs-horiz:after,
-.actions-split:before,
-.actions-split:after,
-.page-create-order:before,
-.page-create-order:after,
-.order-addresses:before,
-.order-addresses:after,
-.order-methods:before,
-.order-methods:after,
-.order-summary:before,
-.order-summary:after,
-.order-methods:before,
-.order-methods:after,
-.grid-actions:before,
-.grid-actions:after,
-.fieldset-wrapper-title:before,
-.fieldset-wrapper-title:after {
-    content: "";
-    display: table;
-}
-
-.clearfix:after,
-[class$="-layout"]:after,
-.footer-content:after,
-.page-title-inner:after,
-.tabs-horiz:after,
-.actions-split:after,
-.page-create-order:after,
-.order-addresses:after,
-.order-methods:after,
-.order-summary:after,
-.order-methods:after,
-.grid-actions:after,
-.fieldset-wrapper-title:after {
-    clear: both;
-}
-@baseDir: "../"; //default
-
diff --git a/app/design/adminhtml/Magento/backend/web/css/override.less b/app/design/adminhtml/Magento/backend/web/css/override.less
new file mode 100644
index 0000000000000000000000000000000000000000..2b0da3d2c41f06e7269b4bc5c393b074b8ffb832
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/override.less
@@ -0,0 +1,4858 @@
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+html {
+  font-family: sans-serif;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+  font-size-adjust: 100%;
+}
+body {
+  margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+main,
+footer,
+header,
+main,
+nav,
+section,
+summary {
+  display: block;
+}
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  vertical-align: baseline;
+}
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+template {
+  display: none;
+}
+a {
+  background: transparent;
+}
+a:active,
+a:hover {
+  outline: 0;
+}
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+b,
+strong {
+  font-weight: bold;
+}
+dfn {
+  font-style: italic;
+}
+h1 {
+  font-size: 2em;
+  margin: .67em 0;
+}
+mark {
+  background: #ff0;
+  color: #000;
+}
+small {
+  font-size: 80%;
+}
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+sup {
+  top: -0.5em;
+}
+sub {
+  bottom: -0.25em;
+}
+img {
+  border: 0;
+}
+svg:not(:root) {
+  overflow: hidden;
+}
+figure {
+  margin: 1em 40px;
+}
+hr {
+  box-sizing: content-box;
+  height: 0;
+}
+pre {
+  overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit;
+  font: inherit;
+  margin: 0;
+}
+button {
+  overflow: visible;
+}
+button,
+select {
+  text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+input {
+  line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+input[type="search"] {
+  box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: .35em .625em .75em;
+}
+legend {
+  border: 0;
+  padding: 0;
+}
+textarea {
+  overflow: auto;
+}
+optgroup {
+  font-weight: bold;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td,
+th {
+  padding: 0;
+}
+html {
+  box-sizing: border-box;
+}
+* {
+  box-sizing: inherit;
+}
+*:before,
+*:after {
+  box-sizing: inherit;
+}
+*:focus {
+  box-shadow: none;
+  outline: 0;
+}
+.keyfocus *:focus,
+.keyfocus .admin__control-radio:focus + label,
+.keyfocus .admin__control-checkbox:focus + label {
+  box-shadow: 0 0 0 1px #008bdb;
+}
+img,
+video,
+embed,
+object {
+  max-width: 100%;
+}
+@font-face {
+  font-family: 'Open Sans';
+  src: url('../fonts/opensans/light/opensans-300.eot');
+  src: url('../fonts/opensans/light/opensans-300.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/light/opensans-300.woff2') format('woff2'), url('../fonts/opensans/light/opensans-300.woff') format('woff'), url('../fonts/opensans/light/opensans-300.ttf') format('truetype'), url('../fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');
+  font-weight: 300;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'Open Sans';
+  src: url('../fonts/opensans/regular/opensans-400.eot');
+  src: url('../fonts/opensans/regular/opensans-400.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/regular/opensans-400.woff2') format('woff2'), url('../fonts/opensans/regular/opensans-400.woff') format('woff'), url('../fonts/opensans/regular/opensans-400.ttf') format('truetype'), url('../fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');
+  font-weight: 400;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'Open Sans';
+  src: url('../fonts/opensans/semibold/opensans-600.eot');
+  src: url('../fonts/opensans/semibold/opensans-600.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/semibold/opensans-600.woff2') format('woff2'), url('../fonts/opensans/semibold/opensans-600.woff') format('woff'), url('../fonts/opensans/semibold/opensans-600.ttf') format('truetype'), url('../fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');
+  font-weight: 600;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'Open Sans';
+  src: url('../fonts/opensans/bold/opensans-700.eot');
+  src: url('../fonts/opensans/bold/opensans-700.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/bold/opensans-700.woff2') format('woff2'), url('../fonts/opensans/bold/opensans-700.woff') format('woff'), url('../fonts/opensans/bold/opensans-700.ttf') format('truetype'), url('../fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');
+  font-weight: 700;
+  font-style: normal;
+}
+html,
+body {
+  height: 100%;
+}
+html {
+  font-size: 62.5%;
+}
+body {
+  font-size: 1.4rem;
+  color: #41362f;
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-weight: 400;
+  font-style: normal;
+  line-height: 1.4;
+}
+h1 {
+  margin: 0 0 2rem;
+  font-size: 2.8rem;
+  color: #41362f;
+  font-weight: 400;
+  line-height: 1.2;
+}
+h2,
+.admin__fieldset-wrapper-title strong {
+  margin: 0 0 2rem;
+  font-size: 2rem;
+  color: #41362f;
+  font-weight: 400;
+  line-height: 1.2;
+}
+h3 {
+  margin: 0 0 2rem;
+  font-size: 1.7rem;
+  color: #41362f;
+  font-weight: 600;
+  line-height: 1.2;
+}
+h4,
+h5,
+h6 {
+  font-weight: 600;
+  margin-top: 0;
+}
+p {
+  margin: 0 0 .5em;
+}
+a {
+  color: #007bdb;
+  text-decoration: none;
+}
+a:hover {
+  color: #007bdb;
+  text-decoration: underline;
+}
+@font-face {
+  font-family: 'Admin Icons';
+  src: url('../fonts/admin-icons/admin-icons.eot');
+  src: url('../fonts/admin-icons/admin-icons.eot?#iefix') format('embedded-opentype'), url('../fonts/admin-icons/admin-icons.woff2') format('woff2'), url('../fonts/admin-icons/admin-icons.woff') format('woff'), url('../fonts/admin-icons/admin-icons.ttf') format('truetype'), url('../fonts/admin-icons/admin-icons.svg#Admin Icons') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+ul,
+ol,
+dl {
+  margin-top: 0;
+  padding-left: 0;
+}
+nav ul,
+nav ol {
+  list-style: none none;
+  margin: 0;
+  padding: 0;
+}
+.admin__control-text,
+.admin__control-select,
+.admin__control-multiselect,
+.admin__control-file-label:before,
+.admin__control-textarea,
+.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-']:before {
+  background-color: #ffffff;
+  border-radius: .1rem;
+  border: 1px solid #adadad;
+  color: #303030;
+  font-size: 1.4rem;
+  font-weight: 400;
+  height: 3.3rem;
+  max-width: 100%;
+  min-width: 10rem;
+  padding: 0 1rem;
+  transition: border-color 0.1s ease-in;
+}
+.admin__control-text:focus,
+.admin__control-select:focus,
+.admin__control-multiselect:focus,
+.admin__control-file:active + .admin__control-file-label:before,
+.admin__control-file:focus + .admin__control-file-label:before,
+.admin__control-textarea:focus,
+.admin__control-addon [class*='admin__control-']:focus + label:before {
+  border-color: #007bdb;
+  box-shadow: none;
+  outline: 0;
+}
+.admin__control-text[disabled],
+.admin__control-select[disabled],
+.admin__control-multiselect[disabled],
+.admin__control-file[disabled] + .admin__control-file-label:before,
+.admin__control-textarea[disabled],
+.admin__control-addon [class*='admin__control-'][disabled] + [class*='admin__addon-']:before {
+  background-color: #e9e9e9;
+  border-color: #adadad;
+  color: #303030;
+  opacity: .5;
+  cursor: not-allowed;
+}
+.address-item-edit-content .admin__field[class] > .admin__field-control,
+.page-layout-admin-login .admin__field[class] > .admin__field-control {
+  float: none;
+  clear: left;
+  text-align: left;
+  width: auto;
+}
+.address-item-edit-content .admin__field[class]:not(.admin__field-option) > .admin__field-label,
+.page-layout-admin-login .admin__field[class]:not(.admin__field-option) > .admin__field-label {
+  text-align: left;
+  width: auto;
+  display: block;
+  line-height: 1.4rem;
+  margin-bottom: 0.86rem;
+  margin-top: -0.14rem;
+}
+.address-item-edit-content .admin__field[class]:not(.admin__field-option) > .admin__field-label:before,
+.page-layout-admin-login .admin__field[class]:not(.admin__field-option) > .admin__field-label:before {
+  display: none;
+}
+.address-item-edit-content .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span,
+.page-layout-admin-login .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span {
+  padding-left: 1.5rem;
+}
+.address-item-edit-content .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span:after,
+.page-layout-admin-login .admin__field[class]:not(.admin__field-option)._required > .admin__field-label span:after {
+  left: 0;
+  margin-left: 30px;
+}
+.admin__control-text {
+  line-height: 3.3rem;
+  width: 100%;
+}
+.admin__control-select {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  -ms-appearance: none;
+  appearance: none;
+  background-repeat: no-repeat;
+  background-image: url('../images/arrows-bg.svg'), linear-gradient(#e3e3e3, #e3e3e3), linear-gradient(#adadad, #adadad);
+  background-position: ~" calc(100% - 12px) -34px, 100%, calc(100% - 33px) 0";
+  background-size: auto, 3.3rem 100%, 1px 100%;
+  padding-right: 4.4rem;
+}
+.admin__control-select:focus {
+  background-image: url('../images/arrows-bg.svg'), linear-gradient(#e3e3e3, #e3e3e3), linear-gradient(#007bdb, #007bdb);
+  background-position: ~" calc(100% - 12px) 13px, 100%, calc(100% - 33px) 0";
+}
+.admin__control-select::-ms-expand {
+  display: none;
+}
+.ie9 .admin__control-select {
+  padding-right: 0;
+}
+option:empty {
+  display: none;
+}
+.admin__control-multiselect {
+  height: auto;
+  padding: .6rem 1rem;
+}
+.admin__control-file-wrapper {
+  display: inline-block;
+  padding: .5rem 1rem;
+  position: relative;
+  z-index: 1;
+}
+.admin__control-file-label:before {
+  content: '';
+  left: 0;
+  position: absolute;
+  top: 0;
+  width: 100%;
+  z-index: 0;
+}
+.admin__control-file {
+  position: relative;
+  z-index: 1;
+  background: transparent;
+  border: 0;
+  width: auto;
+}
+.admin__control-textarea {
+  height: 8.48rem;
+  line-height: 1.18;
+  padding-top: .8rem;
+  width: 100%;
+}
+.admin__control-radio,
+.admin__control-checkbox {
+  margin: .3rem 0 0;
+  opacity: 0.01;
+  overflow: hidden;
+  position: absolute;
+  vertical-align: top;
+}
+.admin__control-radio + label,
+.admin__control-checkbox + label {
+  cursor: pointer;
+  display: inline-block;
+  padding-left: 26px;
+}
+.admin__control-radio + label:before,
+.admin__control-checkbox + label:before {
+  background: none;
+  border-radius: .2rem;
+  border: 1px solid #adadad;
+  color: transparent;
+  content: '\e62d';
+  float: left;
+  font: 0/14px 'Admin Icons';
+  height: 1.6rem;
+  margin: 1px 10px 0 -26px;
+  text-align: center;
+  transition: border-color 0.1s ease-in, color 0.1s ease-in, font-size 0.1s ease-in;
+  vertical-align: top;
+  width: 1.6rem;
+}
+.admin__control-radio:focus + label:before,
+.admin__control-checkbox:focus + label:before {
+  border-color: #007bdb;
+}
+.admin__control-radio[disabled] + label,
+.admin__control-checkbox[disabled] + label {
+  color: #303030;
+  opacity: .5;
+}
+.admin__control-radio[disabled] + label:before,
+.admin__control-checkbox[disabled] + label:before {
+  background-color: #e9e9e9;
+  border-color: #adadad;
+}
+.admin__control-radio + label:before {
+  border-radius: .8rem;
+  content: '\e637';
+}
+.admin__control-radio:checked + label:before {
+  color: #514943;
+  font-size: 1rem;
+}
+.admin__control-checkbox:checked + label:before {
+  color: #514943;
+  font-size: 1.1rem;
+}
+.admin__control-addon {
+  display: -webkit-inline-flex;
+  display: -ms-inline-flexbox;
+  -webkit-flex-direction: row;
+  -ms-flex-direction: row;
+  flex-direction: row;
+  display: inline-flex;
+  flex-flow: row nowrap;
+  position: relative;
+  width: 100%;
+  z-index: 1;
+}
+.admin__control-addon > [class*='admin__addon-'],
+.admin__control-addon > [class*='admin__control-'] {
+  -webkit-flex-basis: auto;
+  flex-basis: auto;
+  -webkit-flex-grow: 0;
+  flex-grow: 0;
+  -webkit-flex-shrink: 0;
+  flex-shrink: 0;
+  position: relative;
+  z-index: 1;
+}
+.admin__control-addon [class*='admin__control-'] {
+  appearence: none;
+  -webkit-flex-grow: 1;
+  flex-grow: 1;
+  box-shadow: none;
+  background-color: transparent;
+  border-color: transparent;
+  order: 1;
+  vertical-align: top;
+  width: auto;
+}
+.admin__control-addon [class*='admin__control-'] :focus {
+  box-shadow: 0;
+}
+.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-'] {
+  padding-left: 1rem;
+  position: static !important;
+  z-index: 0;
+}
+.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-'] > * {
+  position: relative;
+  vertical-align: top;
+  z-index: 2;
+}
+.admin__control-addon [class*='admin__control-'] + [class*='admin__addon-']:before {
+  bottom: 0;
+  box-sizing: border-box;
+  content: '';
+  left: 0;
+  position: absolute;
+  top: 0;
+  width: 100%;
+  z-index: 0;
+}
+.admin__addon-suffix,
+.admin__addon-prefix {
+  border: 0;
+  box-sizing: border-box;
+  color: #858585;
+  display: inline-block;
+  font-size: 1.4rem;
+  font-weight: 400;
+  height: 3.3rem;
+  line-height: 3.3rem;
+  padding: 0;
+}
+.admin__addon-suffix {
+  order: 3;
+}
+.admin__addon-suffix:last-child {
+  padding-right: 1rem;
+}
+.admin__addon-prefix {
+  order: 0;
+}
+.ie9 .admin__control-addon:after {
+  clear: both;
+  content: '';
+  display: block;
+  height: 0;
+  overflow: hidden;
+}
+.ie9 .admin__addon {
+  min-width: auto;
+  overflow: hidden;
+  text-align: right;
+  white-space: nowrap;
+  width: auto;
+}
+.ie9 .admin__addon [class*='admin__control-'] {
+  display: inline;
+}
+.ie9 .admin__addon-prefix {
+  float: left;
+}
+.ie9 .admin__addon-suffix {
+  float: right;
+}
+.admin__fieldset {
+  border: 0;
+  margin: 0;
+  min-width: 0;
+  padding: 0;
+}
+.admin__fieldset > .admin__field {
+  border: 0;
+  margin: 0;
+  padding: 0;
+  margin-left: -30px;
+}
+.admin__fieldset > .admin__field > .admin__field-control {
+  width: ~" calc( (100%) * 0.4444444444444444 - 30px )";
+  float: left;
+  margin-left: 30px;
+}
+.admin__fieldset > .admin__field > .admin__field-label {
+  width: ~" calc( (100%) * 0.3333333333333333 - 30px )";
+  float: left;
+  margin-left: 30px;
+}
+.admin__field-label {
+  color: #303030;
+  margin: 0;
+  text-align: right;
+}
+.admin__field-label + br {
+  display: none;
+}
+[class]:not(.admin__field-option) > .admin__field-label {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 1.4rem;
+  font-weight: 600;
+  line-height: 3.2rem;
+  padding: 0;
+  white-space: nowrap;
+}
+[class]:not(.admin__field-option) > .admin__field-label:before {
+  content: '.';
+  margin-left: -7px;
+  overflow: hidden;
+  visibility: hidden;
+  width: 0;
+}
+[class]:not(.admin__field-option) > .admin__field-label span {
+  display: inline-block;
+  line-height: 1.2;
+  vertical-align: middle;
+  white-space: normal;
+}
+._required > .admin__field-label span:after {
+  color: #eb5202;
+  content: '*';
+  display: inline;
+  font-size: 1.6rem;
+  font-weight: 500;
+  margin-left: 10px;
+  margin-top: 2px;
+  position: absolute;
+  z-index: 1;
+}
+._disabled > .admin__field-label {
+  color: #a79d95;
+}
+.admin__field {
+  margin-bottom: 0;
+}
+.admin__field + .admin__field {
+  margin-top: 1.5rem;
+}
+.admin__field:not(.admin__field-option) ~ .admin__field-option {
+  margin-top: .5rem;
+}
+.admin__field.admin__field-option ~ .admin__field-option {
+  margin-top: .9rem;
+}
+.admin__field ~ .admin__field-option:last-child {
+  margin-bottom: .8rem;
+}
+.admin__fieldset > .admin__field {
+  margin-bottom: 3rem;
+  position: relative;
+  z-index: 1;
+}
+.admin__fieldset > .admin__field:hover {
+  z-index: 2;
+}
+.admin__field[data-config-scope]:before {
+  color: #808080;
+  content: attr(data-config-scope);
+  display: inline-block;
+  position: absolute;
+  left: ~" calc( (100%) * 0.7777777777777778 - 30px )";
+  margin-left: 60px;
+  width: ~" calc( (100%) * 0.2222222222222222 - 30px )";
+}
+.admin__field-control .admin__field[data-config-scope]:nth-child(n+2):before {
+  content: '';
+}
+.admin__field._error .admin__field-control [class*='admin__addon-']:before,
+.admin__field._error .admin__field-control > [class*='admin__control-'] {
+  border-color: #e22626;
+}
+.admin__field-error,
+.admin__field-control label.mage-error {
+  background: #fffbbb;
+  border: 1px solid #ee7d7d;
+  box-sizing: border-box;
+  color: #555555;
+  display: block;
+  font-size: 1.2rem;
+  font-weight: 400;
+  line-height: 1.2;
+  margin: .2rem 0 0;
+  padding: .8rem 1rem .9rem;
+}
+.admin__field-note {
+  color: #303030;
+  font-size: 1.2rem;
+  margin: 10px 0 0;
+  padding: 0;
+}
+.admin__field-option {
+  padding-top: 8px;
+}
+.admin__field-option .admin__field-label {
+  text-align: left;
+}
+.admin__field-control > .admin__field-option:nth-child(1):nth-last-child(2),
+.admin__field-control > .admin__field-option:nth-child(2):nth-last-child(1) {
+  display: inline-block;
+}
+.admin__field-control > .admin__field-option:nth-child(1):nth-last-child(2) + .admin__field-option,
+.admin__field-control > .admin__field-option:nth-child(2):nth-last-child(1) + .admin__field-option {
+  display: inline-block;
+  margin-left: 41px;
+  margin-top: 0;
+}
+.admin__field-control > .admin__field-option:nth-child(1):nth-last-child(2) + .admin__field-option:before,
+.admin__field-control > .admin__field-option:nth-child(2):nth-last-child(1) + .admin__field-option:before {
+  background: #cacaca;
+  content: '';
+  display: inline-block;
+  height: 20px;
+  margin-left: -20px;
+  position: absolute;
+  width: 1px;
+}
+[class*='admin__control-grouped'] > .admin__field:first-child,
+.admin__control-fields > .admin__field:first-child {
+  position: static;
+}
+[class*='admin__control-grouped'] > .admin__field:first-child > .admin__field-label,
+.admin__control-fields > .admin__field:first-child > .admin__field-label {
+  width: ~" calc( (100%) * 0.3333333333333333 - 30px )";
+  float: left;
+  margin-left: 30px;
+  cursor: pointer;
+  left: 0;
+  opacity: 0;
+  position: absolute;
+  top: 0;
+}
+.admin__control-fields .admin__field-label ~ .admin__field-control {
+  width: 100%;
+}
+[class*='admin__control-grouped'] {
+  box-sizing: border-box;
+  display: table;
+  table-layout: fixed;
+  width: 100%;
+}
+[class*='admin__control-grouped'] > .admin__field {
+  display: table-cell;
+  vertical-align: top;
+  width: 50%;
+}
+[class*='admin__control-grouped'] > .admin__field > .admin__field-control {
+  float: none;
+  width: 100%;
+}
+[class*='admin__control-grouped'] > .admin__field:nth-child(n+2) {
+  padding-left: 20px;
+}
+[class*='admin__control-grouped'] > .admin__field:nth-child(n+2):not(.admin__field-option) .admin__field-label {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.admin__field-tooltip {
+  display: inline-block;
+  margin-top: 5px;
+  overflow: visible;
+  vertical-align: top;
+  width: 0;
+}
+.admin__field-tooltip:hover {
+  position: relative;
+  z-index: 500;
+}
+.admin__field-option .admin__field-tooltip {
+  margin-top: 10px;
+}
+.admin__field-tooltip .admin__field-tooltip-action {
+  margin-left: 20px;
+  display: inline-block;
+  text-decoration: none;
+}
+.admin__field-tooltip .admin__field-tooltip-action:before {
+  font-family: 'Admin Icons';
+  content: '\e633';
+  font-size: 2.2rem;
+  line-height: 1;
+  color: #514943;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: middle;
+  text-align: center;
+}
+.admin__field-tooltip .admin__control-text:focus + .admin__field-tooltip-content,
+.admin__field-tooltip:hover .admin__field-tooltip-content {
+  display: block;
+}
+.admin__field-tooltip .admin__field-tooltip-content {
+  box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);
+  background: #fffbbb;
+  border-radius: 1px;
+  border: 1px solid #afadac;
+  bottom: 42px;
+  display: none;
+  padding: 15px 25px;
+  position: absolute;
+  right: -70px;
+  width: 320px;
+  z-index: 1;
+}
+.admin__field-tooltip .admin__field-tooltip-content:after,
+.admin__field-tooltip .admin__field-tooltip-content:before {
+  border: 16px solid transparent;
+  height: 0;
+  width: 0;
+  border-top-color: #afadac;
+  content: "";
+  display: block;
+  position: absolute;
+  right: 20px;
+  top: 100%;
+  z-index: 3;
+}
+.admin__field-tooltip .admin__field-tooltip-content:after {
+  border-top-color: #fffbbb;
+  margin-top: -1px;
+  z-index: 4;
+}
+.col-2-left-layout {
+  margin-left: -30px;
+  margin-top: 50px;
+  width: auto;
+}
+.col-2-left-layout .main-col {
+  width: ~" calc( (100%) * 0.75 - 30px )";
+  float: right;
+}
+.col-2-left-layout .side-col {
+  width: ~" calc( (100%) * 0.75 - 30px )";
+  float: left;
+  margin-left: 30px;
+}
+.admin__fieldset-wrapper-title {
+  margin-bottom: 30px;
+  padding: 14px 0 16px;
+}
+.address-item-edit-content {
+  padding: 15px 30px;
+}
+.address-list {
+  float: left;
+  list-style-type: none;
+  margin: 0;
+  padding: 0;
+  width: 360px;
+}
+.address-list .address-list-item {
+  margin-bottom: 30px;
+}
+.address-list .action-delete {
+  background-image: none;
+  background: none;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  -moz-box-sizing: content-box;
+  box-shadow: none;
+  text-shadow: none;
+  line-height: inherit;
+  font-weight: 400;
+  display: inline-block;
+  text-decoration: none;
+}
+.address-list .action-delete:focus,
+.address-list .action-delete:active {
+  background: none;
+  border: none;
+}
+.address-list .action-delete:hover {
+  background: none;
+  border: none;
+}
+.address-list .action-delete.disabled,
+.address-list .action-delete[disabled],
+fieldset[disabled] .address-list .action-delete {
+  cursor: not-allowed;
+  pointer-events: none;
+  opacity: 0.5;
+}
+.address-list .action-delete > span {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.address-list .action-delete:after {
+  font-family: 'Admin Icons';
+  content: '\e620';
+  font-size: 1.6rem;
+  line-height: 16px;
+  color: #41362f;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: middle;
+  text-align: center;
+}
+.address-list .action-delete span {
+  max-height: 1px;
+  max-width: 1px;
+}
+.address-list .action-delete:hover {
+  position: relative;
+  z-index: 2;
+}
+.address-list .action-delete:hover:after {
+  color: #060504;
+}
+.address-list .action-delete:hover span {
+  background-color: #fcfcfc;
+  border: 1px solid #989287;
+  border-radius: .4rem;
+  bottom: 100%;
+  clip: auto;
+  font-size: 1.2rem;
+  height: auto;
+  left: auto;
+  margin: 0 auto .1rem;
+  padding: .5rem;
+  right: auto;
+  top: auto;
+  max-height: 50px;
+  max-width: 200px;
+  white-space: nowrap;
+  width: auto;
+  transition: all .01s linear .7s;
+}
+.address-item-edit {
+  margin-left: 359px;
+  max-width: 500px;
+}
+.address-item-edit .admin__legend {
+  display: none;
+}
+[class*='admin__control-'].mage-error ~ [class*='admin__addon-']:before,
+.admin__field-control > [class*='admin__control-'].mage-error {
+  border-color: #e22626;
+}
+.page-layout-admin-login .loading-mask {
+  background: rgba(255, 255, 255, 0.2);
+  height: 100%;
+  left: 0;
+  position: absolute;
+  top: 0;
+  width: 100%;
+  z-index: 1000;
+}
+.page-layout-admin-login .popup-loading {
+  height: 149px;
+  left: 50%;
+  margin-left: -109px;
+  margin-top: -74.5px;
+  position: absolute;
+  top: 50%;
+  overflow: hidden;
+  width: 218px;
+}
+.page-layout-admin-login .field-captcha {
+  padding-left: 30px;
+  vertical-align: middle;
+}
+.page-layout-admin-login .field-captcha .captcha-reload {
+  float: right;
+  vertical-align: middle;
+}
+.admin__action-dropdown {
+  background-color: transparent;
+  border: none;
+  border-radius: 0;
+  box-shadow: none;
+  margin: 0;
+  padding: 0;
+  padding-right: 3rem;
+  color: #41362f;
+}
+.admin__action-dropdown:hover {
+  background-color: transparent;
+  border: none;
+  box-shadow: none;
+}
+.admin__action-dropdown._active:after,
+.admin__action-dropdown.active:after {
+  transform: rotate(180deg);
+}
+.admin__action-dropdown:after {
+  border-color: #000000 transparent transparent transparent;
+  border-style: solid;
+  border-width: 0.5rem 0.4rem 0 0.4rem;
+  content: '';
+  height: 0;
+  margin-top: -0.2rem;
+  position: absolute;
+  right: 1.1rem;
+  top: 50%;
+  transition: all .2s linear;
+  width: 0;
+}
+._active .admin__action-dropdown:after,
+.active .admin__action-dropdown:after {
+  transform: rotate(180deg);
+}
+.admin__action-dropdown:hover:after {
+  border-color: #000000 transparent transparent transparent;
+}
+.actions-split {
+  position: relative;
+  z-index: 300;
+}
+.actions-split.active,
+.actions-split._active,
+.actions-split:hover {
+  box-shadow: 0 0 0 1px #007bdb;
+}
+.actions-split.active .action-toggle.action-primary,
+.actions-split._active .action-toggle.action-primary,
+.actions-split.active .action-toggle.primary,
+.actions-split._active .action-toggle.primary {
+  background-color: #ba4000;
+  border-color: #ba4000;
+}
+.actions-split.active .dropdown-menu,
+.actions-split._active .dropdown-menu {
+  opacity: 1;
+  visibility: visible;
+}
+.actions-split .action-toggle,
+.actions-split .action-default {
+  float: left;
+  margin: 0;
+}
+.actions-split .action-toggle.active,
+.actions-split .action-default.active,
+.actions-split .action-toggle._active,
+.actions-split .action-default._active,
+.actions-split .action-toggle:hover,
+.actions-split .action-default:hover {
+  box-shadow: none;
+}
+.actions-split .action-default {
+  margin-right: 4rem;
+  min-width: 9.3rem;
+}
+.actions-split .action-toggle {
+  padding-right: 4rem;
+  border-left-color: rgba(0, 0, 0, 0.2);
+  bottom: 0;
+  padding-left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+}
+.actions-split .action-toggle._active:after,
+.actions-split .action-toggle.active:after {
+  transform: rotate(180deg);
+}
+.actions-split .action-toggle:after {
+  border-color: #000000 transparent transparent transparent;
+  border-style: solid;
+  border-width: 0.9rem 0.6rem 0 0.6rem;
+  content: '';
+  height: 0;
+  margin-top: -0.3rem;
+  position: absolute;
+  right: 1.4rem;
+  top: 50%;
+  transition: all .2s linear;
+  width: 0;
+}
+._active .actions-split .action-toggle:after,
+.active .actions-split .action-toggle:after {
+  transform: rotate(180deg);
+}
+.actions-split .action-toggle:hover:after {
+  border-color: #000000 transparent transparent transparent;
+}
+.actions-split .action-toggle._active:after,
+.actions-split .action-toggle.active:after {
+  transform: none;
+}
+.actions-split .action-toggle.action-secondary:after,
+.actions-split .action-toggle.secondary:after,
+.actions-split .action-toggle.action-primary:after,
+.actions-split .action-toggle.primary:after {
+  border-color: #ffffff transparent transparent transparent;
+}
+.actions-split .action-toggle > span {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.actions-split .dropdown-menu {
+  background-color: #ffffff;
+  border: 1px solid #007bdb;
+  border-radius: 1px;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+  display: block;
+  left: 0;
+  list-style: none;
+  margin: 2px 0 0;
+  min-width: 0;
+  opacity: 0;
+  padding: 0;
+  position: absolute;
+  right: 0;
+  top: 100%;
+  transition: opacity 0.15s ease;
+  visibility: hidden;
+}
+.actions-split .dropdown-menu > li {
+  border: none;
+  padding: .6875em;
+}
+.actions-split .dropdown-menu > li:hover {
+  background-color: #e3e3e3;
+}
+.actions-split .dropdown-menu > li:active {
+  background-color: #cacaca;
+}
+.abs-action-reset,
+.admin__menu .submenu-close,
+.search-global-field._active .search-global-action,
+.notifications-close {
+  background-color: transparent;
+  border: none;
+  border-radius: 0;
+  box-shadow: none;
+  margin: 0;
+  padding: 0;
+}
+.abs-action-reset:hover,
+.admin__menu .submenu-close:hover,
+.search-global-field._active .search-global-action:hover,
+.notifications-close:hover {
+  background-color: transparent;
+  border: none;
+  box-shadow: none;
+}
+.abs-action-pattern,
+.abs-action-default,
+.abs-action-primary,
+.abs-action-secondary,
+.abs-action-tertiary,
+.abs-action-quaternary,
+.action-default,
+button,
+.action-primary,
+.action-secondary,
+.action-tertiary,
+.action-quaternary,
+button,
+button.primary,
+button.secondary,
+button.tertiary,
+.ui-dialog .action-close,
+.ui-dialog .ui-button,
+.ui-dialog .action-primary,
+.attribute-popup-actions .action-default.reset,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary,
+.page-actions > button,
+.page-actions .page-actions-buttons > button,
+.page-actions > button.action-primary,
+.page-actions .page-actions-buttons > button.action-primary,
+.page-actions > button.primary,
+.page-actions .page-actions-buttons > button.primary,
+.popup-window .magento_buttons .ok_button,
+.popup-window .magento_buttons .cancel_button,
+.fade .actions .primary,
+.fade .actions .cancel {
+  border: 1px solid;
+  border-radius: 0;
+  display: inline-block;
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 1.4rem;
+  font-weight: 600;
+  padding: 0.5em 1em 0.57em;
+  text-align: center;
+  vertical-align: baseline;
+}
+.abs-action-pattern[disabled],
+.abs-action-pattern.disabled,
+.abs-action-default[disabled],
+.abs-action-default.disabled,
+.abs-action-primary[disabled],
+.abs-action-primary.disabled,
+.abs-action-secondary[disabled],
+.abs-action-secondary.disabled,
+.abs-action-tertiary[disabled],
+.abs-action-tertiary.disabled,
+.abs-action-quaternary[disabled],
+.abs-action-quaternary.disabled,
+.action-default[disabled],
+.action-default.disabled,
+button[disabled],
+button.disabled,
+.action-primary[disabled],
+.action-primary.disabled,
+.action-secondary[disabled],
+.action-secondary.disabled,
+.action-tertiary[disabled],
+.action-tertiary.disabled,
+.action-quaternary[disabled],
+.action-quaternary.disabled,
+button[disabled],
+button.disabled,
+button.primary[disabled],
+button.primary.disabled,
+button.secondary[disabled],
+button.secondary.disabled,
+button.tertiary[disabled],
+button.tertiary.disabled,
+.ui-dialog .action-close[disabled],
+.ui-dialog .action-close.disabled,
+.ui-dialog .ui-button[disabled],
+.ui-dialog .ui-button.disabled,
+.ui-dialog .action-primary[disabled],
+.ui-dialog .action-primary.disabled,
+.attribute-popup-actions .action-default.reset[disabled],
+.attribute-popup-actions .action-default.reset.disabled,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary[disabled],
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary.disabled,
+.page-actions > button[disabled],
+.page-actions > button.disabled,
+.page-actions .page-actions-buttons > button[disabled],
+.page-actions .page-actions-buttons > button.disabled,
+.page-actions > button.action-primary[disabled],
+.page-actions > button.action-primary.disabled,
+.page-actions .page-actions-buttons > button.action-primary[disabled],
+.page-actions .page-actions-buttons > button.action-primary.disabled,
+.page-actions > button.primary[disabled],
+.page-actions > button.primary.disabled,
+.page-actions .page-actions-buttons > button.primary[disabled],
+.page-actions .page-actions-buttons > button.primary.disabled,
+.popup-window .magento_buttons .ok_button[disabled],
+.popup-window .magento_buttons .ok_button.disabled,
+.popup-window .magento_buttons .cancel_button[disabled],
+.popup-window .magento_buttons .cancel_button.disabled,
+.fade .actions .primary[disabled],
+.fade .actions .primary.disabled,
+.fade .actions .cancel[disabled],
+.fade .actions .cancel.disabled {
+  cursor: default;
+  opacity: 0.7;
+  pointer-events: none;
+}
+.abs-action-l,
+.ui-dialog .ui-button,
+.ui-dialog .action-primary,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary,
+.page-layout-admin-login .action-primary,
+.page-actions button,
+.page-actions .page-actions-buttons > button,
+.page-actions > button.action-primary,
+.page-actions .page-actions-buttons > button.action-primary,
+.page-actions > button.primary,
+.page-actions .page-actions-buttons > button.primary,
+.popup-window .magento_buttons .ok_button,
+.fade .actions .primary {
+  font-size: 1.6rem;
+  letter-spacing: .025em;
+  padding-bottom: 0.6875em;
+  padding-top: 0.6875em;
+}
+.abs-action-default,
+button {
+  background: #e3e3e3;
+  border-color: #adadad;
+  color: #514943;
+}
+.abs-action-default:hover,
+button:hover {
+  background-color: #dbdbdb;
+  color: #514943;
+  text-decoration: none;
+}
+.abs-action-primary,
+button.primary,
+.page-actions > button.action-primary,
+.page-actions .page-actions-buttons > button.action-primary,
+.page-actions > button.primary,
+.page-actions .page-actions-buttons > button.primary {
+  background-color: #eb5202;
+  border-color: #eb5202;
+  color: #ffffff;
+  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
+}
+.abs-action-primary:hover,
+.abs-action-primary:active,
+button.primary:hover,
+button.primary:active,
+.page-actions > button.action-primary:hover,
+.page-actions > button.action-primary:active,
+.page-actions .page-actions-buttons > button.action-primary:hover,
+.page-actions .page-actions-buttons > button.action-primary:active,
+.page-actions > button.primary:hover,
+.page-actions > button.primary:active,
+.page-actions .page-actions-buttons > button.primary:hover,
+.page-actions .page-actions-buttons > button.primary:active {
+  background-color: #ba4000;
+  border-color: #b84002;
+  box-shadow: 0 0 0 1px #007bdb;
+  color: #ffffff;
+  text-decoration: none;
+}
+.abs-action-primary.disabled,
+.abs-action-primary[disabled],
+button.primary.disabled,
+button.primary[disabled],
+.page-actions > button.action-primary.disabled,
+.page-actions > button.action-primary[disabled],
+.page-actions .page-actions-buttons > button.action-primary.disabled,
+.page-actions .page-actions-buttons > button.action-primary[disabled],
+.page-actions > button.primary.disabled,
+.page-actions > button.primary[disabled],
+.page-actions .page-actions-buttons > button.primary.disabled,
+.page-actions .page-actions-buttons > button.primary[disabled] {
+  cursor: default;
+  opacity: 0.7;
+  pointer-events: none;
+}
+.abs-action-secondary,
+button.secondary,
+.ui-dialog .ui-button,
+.ui-dialog .action-primary,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary,
+.popup-window .magento_buttons .ok_button,
+.fade .actions .primary {
+  background-color: #514943;
+  border-color: #514943;
+  color: #ffffff;
+  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+}
+.abs-action-secondary:hover,
+.abs-action-secondary:active,
+button.secondary:hover,
+button.secondary:active,
+.ui-dialog .ui-button:hover,
+.ui-dialog .ui-button:active,
+.ui-dialog .action-primary:hover,
+.ui-dialog .action-primary:active,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary:hover,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary:active,
+.popup-window .magento_buttons .ok_button:hover,
+.popup-window .magento_buttons .ok_button:active,
+.fade .actions .primary:hover,
+.fade .actions .primary:active {
+  background-color: #35302c;
+  box-shadow: 0 0 0 1px #007bdb;
+  color: #ffffff;
+  text-decoration: none;
+}
+.abs-action-secondary:active,
+button.secondary:active,
+.ui-dialog .ui-button:active,
+.ui-dialog .action-primary:active,
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary:active,
+.popup-window .magento_buttons .ok_button:active,
+.fade .actions .primary:active {
+  background-color: #35302c;
+}
+.abs-action-tertiary,
+button.tertiary,
+.ui-dialog .action-close,
+.attribute-popup-actions .action-default.reset,
+.popup-window .magento_buttons .cancel_button,
+.fade .actions .cancel {
+  background-color: transparent;
+  border-color: transparent;
+  text-shadow: none;
+  color: #007bdb;
+}
+.abs-action-tertiary:active,
+.abs-action-tertiary:hover,
+button.tertiary:active,
+button.tertiary:hover,
+.ui-dialog .action-close:active,
+.ui-dialog .action-close:hover,
+.attribute-popup-actions .action-default.reset:active,
+.attribute-popup-actions .action-default.reset:hover,
+.popup-window .magento_buttons .cancel_button:active,
+.popup-window .magento_buttons .cancel_button:hover,
+.fade .actions .cancel:active,
+.fade .actions .cancel:hover {
+  background-color: transparent;
+  border-color: transparent;
+  box-shadow: none;
+}
+.abs-action-tertiary:active,
+.abs-action-tertiary:hover,
+button.tertiary:active,
+button.tertiary:hover,
+.ui-dialog .action-close:active,
+.ui-dialog .action-close:hover,
+.attribute-popup-actions .action-default.reset:active,
+.attribute-popup-actions .action-default.reset:hover,
+.popup-window .magento_buttons .cancel_button:active,
+.popup-window .magento_buttons .cancel_button:hover,
+.fade .actions .cancel:active,
+.fade .actions .cancel:hover {
+  color: #007bdb;
+  text-decoration: underline;
+}
+.abs-action-quaternary,
+.page-actions > button,
+.page-actions .page-actions-buttons > button {
+  background-color: transparent;
+  border-color: transparent;
+  text-shadow: none;
+  color: #41362f;
+}
+.abs-action-quaternary:active,
+.abs-action-quaternary:hover,
+.page-actions > button:active,
+.page-actions > button:hover,
+.page-actions .page-actions-buttons > button:active,
+.page-actions .page-actions-buttons > button:hover {
+  background-color: transparent;
+  border-color: transparent;
+  box-shadow: none;
+}
+.abs-action-quaternary:active,
+.abs-action-quaternary:hover,
+.page-actions > button:active,
+.page-actions > button:hover,
+.page-actions .page-actions-buttons > button:active,
+.page-actions .page-actions-buttons > button:hover {
+  color: #231d1a;
+}
+.action-default,
+button {
+  background: #e3e3e3;
+  border-color: #adadad;
+  color: #514943;
+}
+.action-default:hover,
+button:hover {
+  background-color: #dbdbdb;
+  color: #514943;
+  text-decoration: none;
+}
+.action-primary {
+  background-color: #eb5202;
+  border-color: #eb5202;
+  color: #ffffff;
+  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
+}
+.action-primary:hover,
+.action-primary:active {
+  background-color: #ba4000;
+  border-color: #b84002;
+  box-shadow: 0 0 0 1px #007bdb;
+  color: #ffffff;
+  text-decoration: none;
+}
+.action-primary.disabled,
+.action-primary[disabled] {
+  cursor: default;
+  opacity: 0.7;
+  pointer-events: none;
+}
+.action-secondary {
+  background-color: #514943;
+  border-color: #514943;
+  color: #ffffff;
+  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
+}
+.action-secondary:hover,
+.action-secondary:active {
+  background-color: #35302c;
+  box-shadow: 0 0 0 1px #007bdb;
+  color: #ffffff;
+  text-decoration: none;
+}
+.action-secondary:active {
+  background-color: #35302c;
+}
+.action-tertiary,
+.action-quaternary {
+  background-color: transparent;
+  border-color: transparent;
+  text-shadow: none;
+}
+.action-tertiary:active,
+.action-quaternary:active,
+.action-tertiary:hover,
+.action-quaternary:hover {
+  background-color: transparent;
+  border-color: transparent;
+  box-shadow: none;
+}
+.action-tertiary {
+  color: #007bdb;
+}
+.action-tertiary:active,
+.action-tertiary:hover {
+  color: #007bdb;
+  text-decoration: underline;
+}
+.action-quaternary {
+  color: #41362f;
+}
+.action-quaternary:active,
+.action-quaternary:hover {
+  color: #231d1a;
+}
+table.table {
+  color: #303030;
+}
+table.table > caption {
+  margin-bottom: .5rem;
+}
+table.table tfoot {
+  background: #f8f8f8;
+}
+table.table tfoot th,
+table.table tfoot td {
+  text-align: left;
+}
+table.table th {
+  background: transparent;
+  border-bottom: 0.1rem solid #e3e3e3;
+  border-top: 0.1rem solid #e3e3e3;
+  font-weight: 700;
+  padding: 1rem 1.5rem;
+  text-align: left;
+}
+table.table td {
+  border-bottom: 0.1rem solid #e3e3e3;
+  padding: 1rem 1.5rem;
+  vertical-align: top;
+}
+table.table tbody td:first-child input[type='checkbox'] {
+  margin: 0;
+}
+table.table tbody tr:last-child td {
+  border-bottom-color: transparent;
+}
+.messages {
+  margin: 0 0 2rem;
+}
+.message {
+  background: #fffbbb;
+  border: none;
+  border-radius: 0;
+  color: #333333;
+  font-size: 1.4rem;
+  margin: 0 0 1px;
+  padding: 1.8rem 4rem 1.8rem 5.5rem;
+  position: relative;
+  text-shadow: none;
+}
+.message:before {
+  background: none;
+  border: 0;
+  color: #007bdb;
+  content: '\e61a';
+  font-family: 'Admin Icons';
+  font-size: 1.9rem;
+  font-style: normal;
+  font-weight: 400;
+  height: auto;
+  left: 1.9rem;
+  line-height: inherit;
+  margin-top: -1.3rem;
+  position: absolute;
+  speak: none;
+  text-shadow: none;
+  top: 50%;
+  width: auto;
+}
+.message-notice:before {
+  color: #007bdb;
+  content: '\e61a';
+}
+.message-warning:before {
+  color: #eb5202;
+  content: '\e623';
+}
+.message-error {
+  background: #ffcccc;
+}
+.message-error:before {
+  color: #e22626;
+  content: '\e632';
+  font-size: 1.5rem;
+  left: 2.2rem;
+  margin-top: -1rem;
+}
+.message-success:before {
+  color: #79a22e;
+  content: '\e62d';
+}
+.message-spinner:before {
+  display: none;
+}
+.message-spinner .spinner {
+  font-size: 2.5rem;
+  left: 1.5rem;
+  position: absolute;
+  top: 1.5rem;
+}
+.message-in-rating-edit {
+  margin-left: 1.8rem;
+  margin-right: 1.8rem;
+}
+.row {
+  margin-left: 0;
+  margin-right: 0;
+}
+.row:after {
+  content: "";
+  display: table;
+  clear: both;
+}
+.col-xs-1, .col-m-1, .col-l-1, .col-xl-1, .col-xs-2, .col-m-2, .col-l-2, .col-xl-2, .col-xs-3, .col-m-3, .col-l-3, .col-xl-3, .col-xs-4, .col-m-4, .col-l-4, .col-xl-4, .col-xs-5, .col-m-5, .col-l-5, .col-xl-5, .col-xs-6, .col-m-6, .col-l-6, .col-xl-6, .col-xs-7, .col-m-7, .col-l-7, .col-xl-7, .col-xs-8, .col-m-8, .col-l-8, .col-xl-8, .col-xs-9, .col-m-9, .col-l-9, .col-xl-9, .col-xs-10, .col-m-10, .col-l-10, .col-xl-10, .col-xs-11, .col-m-11, .col-l-11, .col-xl-11, .col-xs-12, .col-m-12, .col-l-12, .col-xl-12 {
+  position: relative;
+  min-height: 1px;
+  padding-left: 0;
+  padding-right: 0;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+  float: left;
+}
+.col-xs-12 {
+  width: 100%;
+}
+.col-xs-11 {
+  width: 91.66666667%;
+}
+.col-xs-10 {
+  width: 83.33333333%;
+}
+.col-xs-9 {
+  width: 75%;
+}
+.col-xs-8 {
+  width: 66.66666667%;
+}
+.col-xs-7 {
+  width: 58.33333333%;
+}
+.col-xs-6 {
+  width: 50%;
+}
+.col-xs-5 {
+  width: 41.66666667%;
+}
+.col-xs-4 {
+  width: 33.33333333%;
+}
+.col-xs-3 {
+  width: 25%;
+}
+.col-xs-2 {
+  width: 16.66666667%;
+}
+.col-xs-1 {
+  width: 8.33333333%;
+}
+.col-xs-pull-12 {
+  right: 100%;
+}
+.col-xs-pull-11 {
+  right: 91.66666667%;
+}
+.col-xs-pull-10 {
+  right: 83.33333333%;
+}
+.col-xs-pull-9 {
+  right: 75%;
+}
+.col-xs-pull-8 {
+  right: 66.66666667%;
+}
+.col-xs-pull-7 {
+  right: 58.33333333%;
+}
+.col-xs-pull-6 {
+  right: 50%;
+}
+.col-xs-pull-5 {
+  right: 41.66666667%;
+}
+.col-xs-pull-4 {
+  right: 33.33333333%;
+}
+.col-xs-pull-3 {
+  right: 25%;
+}
+.col-xs-pull-2 {
+  right: 16.66666667%;
+}
+.col-xs-pull-1 {
+  right: 8.33333333%;
+}
+.col-xs-pull-0 {
+  right: auto;
+}
+.col-xs-push-12 {
+  left: 100%;
+}
+.col-xs-push-11 {
+  left: 91.66666667%;
+}
+.col-xs-push-10 {
+  left: 83.33333333%;
+}
+.col-xs-push-9 {
+  left: 75%;
+}
+.col-xs-push-8 {
+  left: 66.66666667%;
+}
+.col-xs-push-7 {
+  left: 58.33333333%;
+}
+.col-xs-push-6 {
+  left: 50%;
+}
+.col-xs-push-5 {
+  left: 41.66666667%;
+}
+.col-xs-push-4 {
+  left: 33.33333333%;
+}
+.col-xs-push-3 {
+  left: 25%;
+}
+.col-xs-push-2 {
+  left: 16.66666667%;
+}
+.col-xs-push-1 {
+  left: 8.33333333%;
+}
+.col-xs-push-0 {
+  left: auto;
+}
+.col-xs-offset-12 {
+  margin-left: 100%;
+}
+.col-xs-offset-11 {
+  margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+  margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+  margin-left: 75%;
+}
+.col-xs-offset-8 {
+  margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+  margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+  margin-left: 50%;
+}
+.col-xs-offset-5 {
+  margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+  margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+  margin-left: 25%;
+}
+.col-xs-offset-2 {
+  margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+  margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+  margin-left: 0%;
+}
+.row-gutter {
+  margin-left: -1.5rem;
+  margin-right: -1.5rem;
+}
+.row-gutter .col-gutter {
+  padding-left: 1.5rem;
+  padding-right: 1.5rem;
+}
+.abs-icon,
+.admin__menu .level-0 > a:before,
+.admin__menu .submenu-close:before,
+.admin-user-account:before,
+.search-global-label:before,
+.notifications-action:before,
+.notifications-close:before,
+.copyright .link-copyright:before,
+.store-switcher .dropdown-menu .dropdown-toolbar a:before,
+.tooltip .help span:before,
+.tooltip .help a:before,
+.page-actions > button.back:before,
+.page-actions .page-actions-buttons > button.back:before,
+.page-actions > button.action-back:before,
+.page-actions .page-actions-buttons > button.action-back:before {
+  -webkit-font-smoothing: antialiased;
+  font-family: 'Admin Icons';
+  line-height: 1;
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+}
+.validation-symbol:after,
+table.table th.required:after {
+  content: '*';
+  color: #e22626;
+  font-weight: 400;
+  margin-left: 3px;
+}
+.abs-visually-hidden,
+.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option) > .admin__field-label,
+.dashboard-diagram-switcher .label {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.abs-clearfix:before,
+.abs-clearfix:after,
+.actions-split:before,
+.actions-split:after,
+.tabs-horiz:before,
+.tabs-horiz:after,
+.ui-dialog .ui-dialog-buttonset:before,
+.ui-dialog .ui-dialog-buttonset:after,
+.ui-dialog .main-col .insert-title-inner:before,
+.ui-dialog .main-col .insert-title-inner:after,
+.ui-dialog .magento_message .insert-title-inner:before,
+.ui-dialog .magento_message .insert-title-inner:after,
+.ui-dialog .main-col #contents-uploader:before,
+.ui-dialog .main-col #contents-uploader:after,
+.ui-dialog .magento_message #contents-uploader:before,
+.ui-dialog .magento_message #contents-uploader:after,
+.popup-window .magento_buttons:before,
+.popup-window .magento_buttons:after,
+.fade .popup-content:before,
+.fade .popup-content:after,
+.fade .actions:before,
+.fade .actions:after,
+.message-system-inner:before,
+.message-system-inner:after,
+.page-header-actions:before,
+.page-header-actions:after,
+.page-main-actions:before,
+.page-main-actions:after,
+.page-actions.fixed:before,
+.page-actions.fixed:after,
+.dashboard-totals-list:before,
+.dashboard-totals-list:after,
+.dashboard-store-stats .ui-tabs:before,
+.dashboard-store-stats .ui-tabs:after {
+  content: "";
+  display: table;
+}
+.abs-clearfix:after,
+.actions-split:after,
+.tabs-horiz:after,
+.ui-dialog .ui-dialog-buttonset:after,
+.ui-dialog .main-col .insert-title-inner:after,
+.ui-dialog .magento_message .insert-title-inner:after,
+.ui-dialog .main-col #contents-uploader:after,
+.ui-dialog .magento_message #contents-uploader:after,
+.popup-window .magento_buttons:after,
+.fade .popup-content:after,
+.fade .actions:after,
+.message-system-inner:after,
+.page-header-actions:after,
+.page-main-actions:after,
+.page-actions.fixed:after,
+.dashboard-totals-list:after,
+.dashboard-store-stats .ui-tabs:after {
+  clear: both;
+}
+.abs-clearer:after,
+.admin__fieldset > .admin__field:after,
+.col-2-left-layout:after {
+  content: "";
+  display: table;
+  clear: both;
+}
+.abs-list-reset-styles,
+.dashboard-totals-list {
+  margin: 0;
+  padding: 0;
+  list-style: none none;
+}
+.tabs-horiz {
+  margin: 0;
+  padding: 0;
+}
+.tabs-horiz .ui-state-default {
+  background: #e3e3e3;
+  border: 0.1rem solid #adadad;
+  float: left;
+  letter-spacing: .0183em;
+  list-style: none;
+  margin-right: .4rem;
+}
+.tabs-horiz .ui-state-hover {
+  background: #d6d6d6;
+}
+.tabs-horiz .ui-state-active {
+  background: #ffffff;
+  border-bottom: 0;
+  font-weight: 600;
+  letter-spacing: normal;
+  margin-bottom: -0.1rem;
+}
+.tabs-horiz .ui-state-active .ui-tabs-anchor {
+  border-bottom: 0.1rem solid #ffffff;
+  border-top: 0.4rem solid #eb5202;
+  padding-top: 1.1rem;
+}
+.tabs-horiz .ui-tabs-anchor {
+  color: #41362f;
+  display: block;
+  padding: 1.5rem 1.8rem 1.3rem;
+  text-decoration: none;
+}
+.ui-tabs-panel {
+  border-top: 0.1rem solid #adadad;
+  margin-top: -0.1rem;
+  padding: 2rem;
+}
+body {
+  background-color: #f5f5f5;
+}
+.page-wrapper {
+  background-color: #ffffff;
+  padding-left: 8.8rem;
+}
+.page-content {
+  padding-left: 3rem;
+  padding-right: 3rem;
+}
+.notices-wrapper {
+  margin: 0 3rem;
+}
+.notices-wrapper .messages {
+  margin-bottom: 0;
+}
+.admin__control-text.hasDatepicker {
+  width: 15rem;
+}
+.admin__control-text + .ui-datepicker-trigger {
+  background-image: none;
+  background: none;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  -moz-box-sizing: content-box;
+  box-shadow: none;
+  text-shadow: none;
+  line-height: inherit;
+  font-weight: 400;
+  text-decoration: none;
+  height: 3.3rem;
+  overflow: hidden;
+  vertical-align: top;
+  margin-left: -4rem;
+  display: inline-block;
+}
+.admin__control-text + .ui-datepicker-trigger:focus,
+.admin__control-text + .ui-datepicker-trigger:active {
+  background: none;
+  border: none;
+}
+.admin__control-text + .ui-datepicker-trigger:hover {
+  background: none;
+  border: none;
+}
+.admin__control-text + .ui-datepicker-trigger.disabled,
+.admin__control-text + .ui-datepicker-trigger[disabled],
+fieldset[disabled] .admin__control-text + .ui-datepicker-trigger {
+  cursor: not-allowed;
+  pointer-events: none;
+  opacity: 0.5;
+}
+.admin__control-text + .ui-datepicker-trigger > span {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.admin__control-text + .ui-datepicker-trigger:after {
+  font-family: 'icons-blank-theme';
+  content: '\e612';
+  font-size: 3.8rem;
+  line-height: 33px;
+  color: #514943;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: middle;
+  text-align: center;
+}
+.admin__control-text + .ui-datepicker-trigger img {
+  display: none;
+}
+.ui-datepicker {
+  box-sizing: border-box;
+  display: none;
+  padding: 23px 20px;
+  width: auto;
+  z-index: 999999 !important;
+}
+.ui-datepicker:before {
+  background: #ffffff;
+  border: 1px solid #007dbd;
+  bottom: 3px;
+  box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);
+  content: '';
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 3px;
+  z-index: 0;
+}
+.ui-datepicker-header {
+  padding: 0 0 10px;
+  position: relative;
+  z-index: 1;
+}
+.ui-datepicker-prev,
+.ui-datepicker-next {
+  cursor: pointer;
+  position: absolute;
+  line-height: 3rem;
+  top: 0;
+}
+.ui-datepicker-prev span,
+.ui-datepicker-next span {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.ui-datepicker-prev:before,
+.ui-datepicker-next:before {
+  color: #514943;
+  font-size: 34px;
+  display: inline-block;
+}
+.ui-datepicker-prev {
+  left: 0;
+}
+.ui-datepicker-prev:before {
+  content: '\2039';
+}
+.ui-datepicker-next {
+  right: 0;
+}
+.ui-datepicker-next:before {
+  content: '\203A';
+}
+.ui-datepicker .ui-datepicker-title {
+  margin: 0 2.3em;
+  line-height: 1.8em;
+  text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+  font-size: 1em;
+  margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month-year {
+  width: 100%;
+}
+.ui-datepicker table {
+  width: 100%;
+}
+.ui-datepicker table.ui-datepicker-calendar {
+  background: #FFFFFF;
+  border-collapse: collapse;
+  border: 0;
+  position: relative;
+  z-index: 1;
+}
+.ui-datepicker table.ui-datepicker-calendar thead {
+  background: transparent;
+}
+.ui-datepicker table.ui-datepicker-calendar tr {
+  background: transparent;
+}
+.ui-datepicker table.ui-datepicker-calendar tr th {
+  background: transparent;
+  border: 0;
+  padding: 0;
+}
+.ui-datepicker table.ui-datepicker-calendar tr th span {
+  font-weight: 700;
+  font-size: 12px;
+  line-height: 28px;
+}
+.ui-datepicker table.ui-datepicker-calendar tr td {
+  background: transparent;
+  border: 1px solid #adadad;
+  padding: 0;
+}
+.ui-datepicker table.ui-datepicker-calendar span,
+.ui-datepicker table.ui-datepicker-calendar a {
+  box-sizing: border-box;
+  color: #514943;
+  display: block;
+  font-size: 14px;
+  font-weight: 600;
+  line-height: 38px;
+  text-align: center;
+  text-decoration: none;
+  width: 38px;
+}
+.ui-datepicker table.ui-datepicker-calendar .ui-state-disabled span {
+  background: #f5f5f5;
+  color: #999999;
+}
+.ui-datepicker table.ui-datepicker-calendar .ui-state-active {
+  background: #514943;
+  color: #fff;
+}
+.ui-datepicker table.ui-datepicker-calendar .ui-datepicker-today a {
+  border: 3px solid #adadad;
+  line-height: 32px;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+  overflow: hidden;
+  padding-top: 15px;
+  position: relative;
+  white-space: nowrap;
+  z-index: 1;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+  background: #fff;
+  border-radius: 1px;
+  border: 1px solid #adadad;
+  box-sizing: border-box;
+  color: #008bdb;
+  float: left;
+  font-size: 14px;
+  line-height: 38px;
+  padding: 0;
+  text-align: center;
+  width: 49%;
+}
+.ui-datepicker .ui-datepicker-buttonpane .ui-datepicker-close {
+  float: right;
+}
+.ui-datepicker .ui-datepicker-title .ui-datepicker-month {
+  width: 47%;
+  margin-right: 6%;
+}
+.ui-datepicker .ui-datepicker-title .ui-datepicker-year {
+  width: 47%;
+}
+.ui-datepicker .ui-datepicker-calendar .ui-datepicker-week-col {
+  text-align: center;
+  border: #cfcfcf 1px solid;
+}
+.ui-timepicker-div .ui-widget-header {
+  margin-bottom: 8px;
+}
+.ui-timepicker-div dl {
+  text-align: left;
+}
+.ui-timepicker-div dl dd {
+  margin: 0 0 10px 65px;
+}
+.ui-timepicker-div td {
+  font-size: 90%;
+}
+.ui-tpicker-grid-label {
+  background: none;
+  border: none;
+  margin: 0;
+  padding: 0;
+}
+.ui-slider {
+  position: relative;
+  text-align: left;
+}
+.ui-slider-horizontal .ui-slider-handle {
+  margin-left: -5px;
+}
+.ui-slider .ui-slider-handle {
+  position: absolute;
+  z-index: 2;
+  cursor: default;
+}
+.ui-slider-horizontal {
+  height: 10px;
+  -webkit-border-radius: 10px;
+  border-radius: 10px;
+  border: none;
+  background: #adadad;
+}
+.ui-slider-handle {
+  height: 10px;
+  width: 10px;
+  -webkit-border-radius: 10px;
+  border-radius: 10px;
+  background: #514943;
+  display: block;
+  position: absolute;
+}
+.ui-timepicker-div {
+  padding: 10px 0 5px 0;
+}
+.ui-datepicker-rtl {
+  direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+  right: 2px;
+  left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+  left: 2px;
+  right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+  right: 1px;
+  left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+  left: 1px;
+  right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+  clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+  float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
+  float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group {
+  float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
+  border-right-width: 0;
+  border-left-width: 1px;
+}
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+  border-right-width: 0;
+  border-left-width: 1px;
+}
+.ui-timepicker-div .ui-widget-header {
+  margin-bottom: 8px;
+}
+.ui-timepicker-div dl {
+  text-align: left;
+}
+.ui-timepicker-div dl dt {
+  height: 25px;
+  margin-bottom: -22px;
+}
+.ui-timepicker-div dl .ui_tpicker_time_label {
+  margin-bottom: -25px;
+}
+.ui-timepicker-div dl dd {
+  margin: 0 10px 10px 65px;
+}
+.ui-timepicker-div td {
+  font-size: 90%;
+}
+.ui-tpicker-grid-label {
+  background: none;
+  border: none;
+  margin: 0;
+  padding: 0;
+}
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+  position: absolute;
+  /*must have*/
+  z-index: -1;
+  /*must have*/
+  filter: mask();
+  /*must have*/
+  top: -4px;
+  /*must have*/
+  left: -4px;
+  /*must have*/
+  width: 200px;
+  /*must have*/
+  height: 200px;
+  /*must have*/
+}
+.ui-dialog {
+  background: #ffffff;
+  min-width: 40%;
+  opacity: 0;
+  transform: scale(0.7);
+  transition: all 0.3s;
+  visibility: hidden;
+  width: 75%;
+}
+.ui-dialog.ui-dialog-active {
+  transform: scale(1);
+  opacity: 1;
+  visibility: visible;
+}
+.ui-dialog.ui-draggable .ui-dialog-titlebar {
+  cursor: move;
+}
+.ui-dialog .ui-dialog-titlebar,
+.popup-window .magento_title,
+.fade .popup-title {
+  color: #333333;
+  font-size: 2.4rem;
+  line-height: 2.4rem;
+  padding: 3rem 6rem 3rem 3rem;
+}
+.ui-dialog .ui-dialog-titlebar-close,
+.popup-window .magento_close,
+.fade .popup .close {
+  cursor: pointer;
+  display: inline-block;
+  text-decoration: none;
+  position: absolute;
+  right: 3rem;
+  top: 2.7rem;
+}
+.ui-dialog .ui-dialog-titlebar-close:before,
+.popup-window .magento_close:before,
+.fade .popup .close:before {
+  font-family: 'Admin Icons';
+  content: '\e62f';
+  font-size: 2rem;
+  line-height: inherit;
+  color: #736963;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: middle;
+  text-align: center;
+}
+.ui-dialog .ui-dialog-titlebar-close:hover:before,
+.popup-window .magento_close:hover:before,
+.fade .popup .close:hover:before {
+  color: #adadad;
+}
+.ui-dialog .ui-dialog-titlebar-close .ui-icon,
+.popup-window .magento_close .ui-icon,
+.fade .popup .close .ui-icon {
+  display: none;
+}
+.ui-dialog .ui-dialog-titlebar-close.ui-state-hover,
+.popup-window .magento_close.ui-state-hover,
+.fade .popup .close.ui-state-hover {
+  border: none;
+}
+.ui-dialog .ui-dialog-content {
+  overflow: auto;
+  padding: 0 3rem 3rem;
+}
+.ui-dialog .ui-dialog-content .fieldset {
+  padding-left: 0;
+  padding-right: 0;
+}
+.ui-dialog .ui-dialog-buttonpane {
+  padding: 0 3rem 3rem;
+}
+.ui-dialog .content + .ui-dialog-buttonset {
+  padding-top: 3rem;
+  text-align: right;
+}
+.ui-dialog .action-close,
+.popup-window .magento_buttons .cancel_button,
+.fade .actions .cancel {
+  font-size: 1.6rem;
+  margin: 0 0 0 3rem;
+  padding: 0.7em 0;
+}
+.ui-dialog .ui-button,
+.ui-dialog .action-primary,
+.popup-window .magento_buttons .ok_button,
+.fade .actions .primary {
+  float: right;
+  margin: 0 0 0 3rem;
+}
+.ui-dialog .fieldset:last-child {
+  padding-bottom: 0;
+}
+.ui-dialog .main-col,
+.ui-dialog .side-col {
+  float: left;
+  padding-bottom: 0;
+}
+.ui-dialog .main-col:after,
+.ui-dialog .side-col:after {
+  display: none;
+}
+.ui-dialog .main-col {
+  padding-right: 0;
+}
+.ui-dialog .grid,
+.ui-dialog .pager {
+  padding-bottom: 0;
+}
+.ui-dialog .grid-actions {
+  padding-top: 0;
+}
+.ui-dialog .ui-resizable {
+  position: relative;
+}
+.ui-dialog .ui-resizable-handle {
+  position: absolute;
+  font-size: 0.1px;
+  display: block;
+}
+.ui-dialog .ui-resizable-disabled .ui-resizable-handle,
+.ui-dialog .ui-resizable-autohide .ui-resizable-handle {
+  display: none;
+}
+.ui-dialog .ui-resizable-n {
+  cursor: n-resize;
+  height: 7px;
+  width: 100%;
+  top: -5px;
+  left: 0;
+}
+.ui-dialog .ui-resizable-s {
+  cursor: s-resize;
+  height: 7px;
+  width: 100%;
+  bottom: 0;
+  left: 0;
+}
+.ui-dialog .ui-resizable-e {
+  cursor: e-resize;
+  width: 7px;
+  right: 0;
+  top: 0;
+  height: 100%;
+}
+.ui-dialog .ui-resizable-w {
+  cursor: w-resize;
+  width: 7px;
+  left: -7px;
+  top: 0;
+  height: 100%;
+}
+.ui-dialog .ui-resizable-se {
+  cursor: se-resize;
+  width: 12px;
+  height: 12px;
+  right: 1px;
+  bottom: 1px;
+}
+.ui-dialog .ui-resizable-sw {
+  cursor: sw-resize;
+  width: 9px;
+  height: 9px;
+  left: -5px;
+  bottom: 0;
+}
+.ui-dialog .ui-resizable-nw {
+  cursor: nw-resize;
+  width: 9px;
+  height: 9px;
+  left: -5px;
+  top: -5px;
+}
+.ui-dialog .ui-resizable-ne {
+  cursor: ne-resize;
+  width: 9px;
+  height: 9px;
+  right: 0;
+  top: -5px;
+}
+.ui-dialog .main-col .insert-title-inner,
+.ui-dialog .magento_message .insert-title-inner {
+  border-bottom: 1px solid #adadad;
+  margin: 0 0 2rem;
+  padding-bottom: 0.5rem;
+}
+.ui-dialog .main-col .insert-actions,
+.ui-dialog .magento_message .insert-actions {
+  float: right;
+}
+.ui-dialog .main-col .title,
+.ui-dialog .magento_message .title {
+  font-size: 1.6rem;
+  padding-top: 0.5rem;
+}
+.ui-dialog .main-col .main-col-inner .uploader,
+.ui-dialog .magento_message .main-col-inner .uploader {
+  border: 1px solid #adadad;
+  margin: 0 0 1rem;
+  padding: 0.5rem;
+}
+.ui-dialog .main-col .breadcrumbs,
+.ui-dialog .magento_message .breadcrumbs {
+  padding-left: 0;
+}
+.ui-dialog .main-col .breadcrumbs li:after,
+.ui-dialog .magento_message .breadcrumbs li:after {
+  content: '';
+  margin: 0 0.5rem 0 0;
+}
+.ui-dialog .main-col #contents-uploader,
+.ui-dialog .magento_message #contents-uploader {
+  margin: 0 0 2rem;
+}
+.ui-dialog .main-col .fileinput-button,
+.ui-dialog .magento_message .fileinput-button {
+  cursor: pointer;
+  display: inline-block;
+  float: none;
+  vertical-align: middle;
+}
+.ui-dialog .main-col .fileinput-button span,
+.ui-dialog .magento_message .fileinput-button span {
+  display: none;
+}
+.ui-dialog .main-col .fileinput-button input,
+.ui-dialog .magento_message .fileinput-button input {
+  border: none;
+  -moz-transform: none;
+  opacity: 1;
+  position: static;
+}
+.ui-dialog .main-col .file-row,
+.ui-dialog .magento_message .file-row {
+  border: 1px solid #adadad;
+  margin: 0.5rem 0;
+  padding: 2px;
+}
+.ui-dialog .main-col .filecnt,
+.ui-dialog .magento_message .filecnt {
+  border: 1px solid #adadad;
+  display: inline-block;
+  margin: 0 0.5rem 15px 0;
+  padding: 3px;
+  width: 100px;
+  overflow: hidden;
+}
+.ui-dialog .main-col .filecnt.selected,
+.ui-dialog .magento_message .filecnt.selected {
+  border-color: #008bdb;
+}
+.ui-dialog .main-col .filecnt p,
+.ui-dialog .magento_message .filecnt p {
+  text-align: center;
+}
+.ui-dialog .main-col .x-tree,
+.ui-dialog .magento_message .x-tree {
+  margin-bottom: 2rem;
+}
+.ui-widget-overlay,
+.overlay_magento,
+.fade {
+  background: rgba(0, 0, 0, 0.35);
+  bottom: 0;
+  left: 0;
+  position: fixed;
+  right: 0;
+  top: 0;
+}
+.ui-popup-message .ui-dialog-titlebar {
+  background: #fffbbb;
+  font-size: 1.6rem;
+  font-weight: 700;
+  padding: 2rem 2rem 0;
+}
+.ui-popup-message .ui-dialog-titlebar-close {
+  right: 1.5rem;
+  top: 1rem;
+}
+.ui-popup-message .ui-dialog-titlebar-close:before {
+  font-size: 1.4rem;
+}
+.ui-popup-message .ui-dialog-content {
+  background: #fffbbb;
+  padding: 0 2rem 2rem;
+}
+.ui-popup-message .ui-dialog-content .message:last-child {
+  margin-bottom: 0;
+}
+.ui-popup-message .ui-dialog-buttonpane {
+  background: #fffbbb;
+  padding: 0 2rem 2rem;
+}
+.insert-variable {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+.insert-variable li {
+  margin-top: 0.5rem;
+  padding-left: 1rem;
+}
+.insert-variable li b {
+  margin-left: -1rem;
+  display: inline-block;
+}
+.attribute-popup-actions {
+  background: #ffffff;
+  border-top: 1px solid #adadad;
+  bottom: 0;
+  left: 0;
+  padding: 3rem;
+  position: fixed;
+  right: 0;
+  top: auto !important;
+}
+.attribute-popup-actions.fixed {
+  background: #ffffff !important;
+  border-bottom: 0 !important;
+  left: 0 !important;
+  padding: 3rem !important;
+}
+.attribute-popup-actions.fixed .page-actions-buttons {
+  padding-right: 0;
+}
+.attribute-popup-actions .action-default.reset {
+  font-size: 1.6rem;
+  padding: 0.7em 0;
+}
+.attribute-popup-actions .page-actions-buttons > button.action-default.primary {
+  float: right;
+}
+.attribute-popup-actions .page-actions-inner:before {
+  display: none;
+}
+.popup-window {
+  background: #ffffff;
+}
+.popup-window.dialog {
+  z-index: 900 !important;
+}
+.popup-window .table_window > tbody > tr > td {
+  background: #ffffff;
+  border: 0;
+  padding: 0;
+}
+.popup-window .magento_message {
+  padding: 0 3rem 3rem;
+  position: relative;
+}
+.popup-window .magento_content {
+  height: auto !important;
+}
+.popup-window .magento_buttons {
+  padding: 0 3rem 3rem;
+  text-align: right;
+}
+.popup-window .magento_buttons .ok_button {
+  float: right;
+  margin: 0 0 0 3rem;
+}
+.overlay_magento {
+  z-index: 800 !important;
+}
+.fade {
+  z-index: 1000;
+}
+.fade .popup {
+  background: #ffffff;
+  border: 0;
+  border-radius: 0;
+  display: inline-block;
+  left: 12.5%;
+  position: absolute;
+  top: 5rem;
+  text-align: left;
+  width: 75%;
+}
+.fade .popup-inner {
+  padding: 0;
+}
+.fade .popup-title {
+  background: #fffbbb;
+  font-size: 1.6rem;
+  font-weight: 700;
+  padding: 2rem 2rem 0;
+}
+.fade .popup-header .popup-title {
+  margin: 0;
+}
+.fade .popup-content {
+  background: #fffbbb;
+  padding: 0 2rem 2rem;
+}
+.fade .popup-content p {
+  margin-top: 0;
+}
+.fade .popup-content .messages:last-child {
+  margin-bottom: 0;
+}
+.fade .fieldset {
+  background: #fffbbb;
+  border: 0;
+  margin: 1.5rem 0 1.5rem 1.5rem;
+  padding: 0;
+}
+.fade .maintenance-checkbox-container {
+  padding-left: 20%;
+}
+.fade .messages {
+  margin: 0 !important;
+}
+.fade .actions {
+  margin: 0;
+  text-align: right;
+}
+.fade .actions .primary {
+  font-size: 1.4rem;
+  float: right;
+  margin: 0 0 0 3rem;
+}
+.fade .actions .primary:hover {
+  box-shadow: none;
+}
+.fade .actions .cancel {
+  font-size: 1.4rem;
+}
+.fade .actions .cancel:hover {
+  box-shadow: none;
+}
+.login-header {
+  margin: 0 0 3rem;
+}
+.page-layout-admin-login {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  background-color: #373330;
+  padding: 2rem 0 20rem;
+}
+.page-layout-admin-login .page-wrapper {
+  -webkit-flex-shrink: 0;
+  flex-shrink: 0;
+  -webkit-flex-grow: 0;
+  flex-grow: 0;
+  background-color: #ffffff;
+  border: 1px solid #e3e3e3;
+  box-shadow: 0 5px 30px 0 #000000;
+  margin: auto;
+  max-width: 45rem;
+  min-height: 30rem;
+  padding: 40px 80px 50px;
+  position: relative;
+  width: 100%;
+  z-index: 1;
+}
+.page-layout-admin-login :-ms-input-placeholder {
+  color: transparent;
+}
+.page-layout-admin-login ::-webkit-input-placeholder {
+  color: transparent;
+}
+.page-layout-admin-login ::-moz-placeholder {
+  color: transparent;
+}
+.page-layout-admin-login .admin__legend {
+  color: #eb5202;
+  font-size: 2.6rem;
+  font-weight: 300;
+  line-height: 1.2;
+  margin: -1rem 0 0.5rem;
+}
+.page-layout-admin-login .admin__field-info {
+  margin-bottom: 3rem;
+}
+.page-layout-admin-login .messages {
+  margin-top: -1rem;
+}
+.page-layout-admin-login .messages + form .admin__legend {
+  display: none;
+}
+.page-layout-admin-login .actions {
+  padding: 0 0 3rem;
+}
+.admin__control-dummy {
+  display: none;
+}
+.login-footer {
+  left: 0;
+  position: absolute;
+  top: 100%;
+  width: 100%;
+}
+.login-footer .copyright {
+  color: #989287;
+  font-size: 1rem;
+  font-weight: 400;
+  margin: 5rem 0 2rem;
+  text-align: center;
+}
+.login-footer .copyright .link-copyright:before {
+  display: none;
+}
+.adminhtml-auth-login .form-actions {
+  display: table;
+  margin-top: -2rem;
+}
+.adminhtml-auth-login .form-actions .links {
+  display: table-header-group;
+}
+.adminhtml-auth-login .form-actions .actions {
+  padding: 3rem 0 0;
+}
+.spinner {
+  display: inline-block;
+  font-size: 4rem;
+  height: 1em;
+  margin-right: 1.5rem;
+  position: relative;
+  width: 1em;
+}
+.spinner > span:nth-child( 1) {
+  -webkit-animation-delay: 0.27s;
+  -moz-animation-delay: 0.27s;
+  -ms-animation-delay: 0.27s;
+  animation-delay: 0.27s;
+  -webkit-transform: rotate(-315deg);
+  -moz-transform: rotate(-315deg);
+  -ms-transform: rotate(-315deg);
+  transform: rotate(-315deg);
+}
+.spinner > span:nth-child( 2) {
+  -webkit-animation-delay: 0.36s;
+  -moz-animation-delay: 0.36s;
+  -ms-animation-delay: 0.36s;
+  animation-delay: 0.36s;
+  -webkit-transform: rotate(-270deg);
+  -moz-transform: rotate(-270deg);
+  -ms-transform: rotate(-270deg);
+  transform: rotate(-270deg);
+}
+.spinner > span:nth-child( 3) {
+  -webkit-animation-delay: 0.45s;
+  -moz-animation-delay: 0.45s;
+  -ms-animation-delay: 0.45s;
+  animation-delay: 0.45s;
+  -webkit-transform: rotate(-225deg);
+  -moz-transform: rotate(-225deg);
+  -ms-transform: rotate(-225deg);
+  transform: rotate(-225deg);
+}
+.spinner > span:nth-child( 4) {
+  -webkit-animation-delay: 0.54s;
+  -moz-animation-delay: 0.54s;
+  -ms-animation-delay: 0.54s;
+  animation-delay: 0.54s;
+  -webkit-transform: rotate(-180deg);
+  -moz-transform: rotate(-180deg);
+  -ms-transform: rotate(-180deg);
+  transform: rotate(-180deg);
+}
+.spinner > span:nth-child( 5) {
+  -webkit-animation-delay: 0.63s;
+  -moz-animation-delay: 0.63s;
+  -ms-animation-delay: 0.63s;
+  animation-delay: 0.63s;
+  -webkit-transform: rotate(-135deg);
+  -moz-transform: rotate(-135deg);
+  -ms-transform: rotate(-135deg);
+  transform: rotate(-135deg);
+}
+.spinner > span:nth-child( 6) {
+  -webkit-animation-delay: 0.72s;
+  -moz-animation-delay: 0.72s;
+  -ms-animation-delay: 0.72s;
+  animation-delay: 0.72s;
+  -webkit-transform: rotate(-90deg);
+  -moz-transform: rotate(-90deg);
+  -ms-transform: rotate(-90deg);
+  transform: rotate(-90deg);
+}
+.spinner > span:nth-child( 7) {
+  -webkit-animation-delay: 0.81s;
+  -moz-animation-delay: 0.81s;
+  -ms-animation-delay: 0.81s;
+  animation-delay: 0.81s;
+  -webkit-transform: rotate(-45deg);
+  -moz-transform: rotate(-45deg);
+  -ms-transform: rotate(-45deg);
+  transform: rotate(-45deg);
+}
+.spinner > span:nth-child( 8) {
+  -webkit-animation-delay: 0.9;
+  -moz-animation-delay: 0.9;
+  -ms-animation-delay: 0.9;
+  animation-delay: 0.9;
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+@-moz-keyframes fade {
+  0% {
+    background-color: #514943;
+  }
+  100% {
+    background-color: #ffffff;
+  }
+}
+@-webkit-keyframes fade {
+  0% {
+    background-color: #514943;
+  }
+  100% {
+    background-color: #ffffff;
+  }
+}
+@-ms-keyframes fade {
+  0% {
+    background-color: #514943;
+  }
+  100% {
+    background-color: #ffffff;
+  }
+}
+@keyframes fade {
+  0% {
+    background-color: #514943;
+  }
+  100% {
+    background-color: #ffffff;
+  }
+}
+.spinner > span {
+  -webkit-transform: scale(0.4);
+  -moz-transform: scale(0.4);
+  -ms-transform: scale(0.4);
+  transform: scale(0.4);
+  -webkit-animation-name: fade;
+  -moz-animation-name: fade;
+  -ms-animation-name: fade;
+  animation-name: fade;
+  -webkit-animation-duration: 0.72s;
+  -moz-animation-duration: 0.72s;
+  -ms-animation-duration: 0.72s;
+  animation-duration: 0.72s;
+  -webkit-animation-iteration-count: infinite;
+  -moz-animation-iteration-count: infinite;
+  -ms-animation-iteration-count: infinite;
+  animation-iteration-count: infinite;
+  -webkit-animation-direction: linear;
+  -moz-animation-direction: linear;
+  -ms-animation-direction: linear;
+  animation-direction: linear;
+  background-color: #ffffff;
+  border-radius: 6px;
+  clip: rect(0 0.28571429em 0.1em 0);
+  height: .1em;
+  margin-top: 0.5em;
+  position: absolute;
+  width: 1em;
+}
+.ie9 .spinner {
+  background: url('../images/ajax-loader.gif') no-repeat center;
+}
+.ie9 .spinner > span {
+  display: none;
+}
+.message-system-inner {
+  background: #fffbbb;
+}
+.message-system-inner .message-system-list {
+  float: left;
+  width: 75%;
+}
+.message-system-list {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+.message-system-short {
+  overflow: hidden;
+  text-align: right;
+}
+.message-system-short .message-system-short-label {
+  display: inline-block;
+  padding: 1.8rem 0.3rem 1.8rem 1rem;
+}
+.message-system-short .message {
+  display: inline-block;
+  padding: 1.8rem 2rem 1.8rem 3.3rem;
+}
+.message-system-short .message:before {
+  left: .3rem;
+}
+.menu-wrapper {
+  height: 100%;
+  left: 0;
+  position: fixed;
+  top: 0;
+  width: 8.8rem;
+  z-index: 700;
+}
+.menu-wrapper:after {
+  background-color: #373330;
+  bottom: 0;
+  content: '';
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 699;
+}
+.menu-wrapper .logo {
+  display: block;
+  height: 6.5rem;
+  margin-bottom: 1rem;
+  padding: 1.2rem 0;
+  position: relative;
+  text-align: center;
+  z-index: 700;
+}
+.menu-wrapper .logo:hover .logo-img {
+  -webkit-filter: brightness(1.1);
+  filter: brightness(1.1);
+}
+.menu-wrapper .logo:active .logo-img {
+  transform: scale(0.95);
+}
+.menu-wrapper .logo .logo-img {
+  height: 4.1rem;
+  transition: -webkit-filter 0.2s linear, filter 0.2s linear, transform 0.1s linear;
+  width: 3.5rem;
+}
+.admin__menu {
+  position: relative;
+}
+.admin__menu li {
+  display: block;
+}
+.admin__menu .level-0:first-child > a {
+  position: relative;
+}
+.admin__menu .level-0:first-child > a:after {
+  background-color: #736963;
+  content: '';
+  display: block;
+  height: 1px;
+  left: 0;
+  margin-left: 16%;
+  position: absolute;
+  top: 0;
+  width: 68%;
+}
+.admin__menu .level-0:first-child._active > a:after {
+  display: none;
+}
+.admin__menu .level-0._active > a,
+.admin__menu .level-0._hover > a,
+.admin__menu .level-0:hover > a {
+  background-color: #524d49;
+  color: #f7f3eb;
+}
+.admin__menu .level-0 > a {
+  color: #aaa6a0;
+  display: block;
+  font-size: 1rem;
+  letter-spacing: .025em;
+  min-height: 6.2rem;
+  padding: 1.2rem .5rem .5rem;
+  position: relative;
+  text-align: center;
+  text-decoration: none;
+  text-transform: uppercase;
+  transition: background-color 0.1s linear;
+  word-break: break-all;
+  z-index: 700;
+}
+.admin__menu .level-0 > a:focus {
+  box-shadow: none;
+}
+.admin__menu .level-0 > a:before {
+  content: '\e63a';
+  display: block;
+  font-family: 'Admin Icons';
+  font-size: 2.2rem;
+  height: 2.2rem;
+  margin-bottom: .3rem;
+}
+.admin__menu .level-0 > .submenu {
+  background-color: #524d49;
+  box-shadow: 0 0 3px #000000;
+  left: -100rem;
+  min-height: ~" calc(7.5rem + 2rem + 100%)";
+  padding: 2rem 0 0;
+  position: absolute;
+  top: -7.5rem;
+  transition: all .7s linear;
+  visibility: hidden;
+  z-index: 698;
+}
+.admin__menu .level-0 > .submenu._show {
+  left: 100%;
+  visibility: visible;
+}
+.admin__menu .level-0._recent._hover .submenu {
+  left: 100%;
+  visibility: visible;
+}
+.admin__menu .level-1 {
+  margin-left: 1.5rem;
+  margin-right: 1.5rem;
+}
+.admin__menu [class*='level-']:not(.level-0) a {
+  display: block;
+  padding: 1.25rem 1.5rem;
+}
+.admin__menu .submenu li {
+  min-width: 23.8rem;
+}
+.admin__menu .submenu a {
+  color: #fcfcfc;
+}
+.keyfocus .admin__menu .submenu a {
+  text-decoration: none;
+}
+.admin__menu .submenu a:active,
+.admin__menu .submenu a:focus {
+  box-shadow: none;
+}
+.keyfocus .admin__menu .submenu a:active,
+.keyfocus .admin__menu .submenu a:focus {
+  background-color: #403934;
+}
+.admin__menu .submenu .parent {
+  margin-bottom: 4.5rem;
+}
+.admin__menu .submenu .parent > a {
+  color: #a79d95;
+  display: block;
+  font-size: 1.6rem;
+  font-weight: 600;
+  margin-bottom: .7rem;
+  pointer-events: none;
+}
+.admin__menu .submenu .column {
+  display: table-cell;
+}
+.admin__menu .submenu-title {
+  color: #ffffff;
+  display: block;
+  font-size: 2.2rem;
+  font-weight: 600;
+  margin-bottom: 4.2rem;
+  margin-left: 3rem;
+  margin-right: 5.8rem;
+}
+.admin__menu .submenu-sub-title {
+  color: #ffffff;
+  display: block;
+  font-size: 1.2rem;
+  margin: -3.8rem 5.8rem 3.8rem 3rem;
+}
+.admin__menu .submenu-close {
+  padding: 2.4rem 2.8rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+}
+.admin__menu .submenu-close:before {
+  color: #a79d95;
+  content: '\e62f';
+  font-size: 1.7rem;
+  transition: color 0.1s linear;
+}
+.admin__menu .submenu-close:hover:before {
+  color: #ffffff;
+}
+.admin__menu .item-dashboard > a:before {
+  content: '\e604';
+  font-size: 1.8rem;
+  padding-top: 0.4rem;
+}
+.admin__menu .item-sales > a:before {
+  content: '\e60b';
+}
+.admin__menu .item-catalog > a:before {
+  content: '\e608';
+}
+.admin__menu .item-customer > a:before {
+  content: '\e603';
+  font-size: 2.6rem;
+  position: relative;
+  top: -0.4rem;
+}
+.admin__menu .item-marketing > a:before {
+  content: '\e609';
+  font-size: 2rem;
+  padding-top: 0.2rem;
+}
+.admin__menu .item-content > a:before {
+  content: '\e602';
+  font-size: 2.4rem;
+  position: relative;
+  top: -0.2rem;
+}
+.admin__menu .item-report > a:before {
+  content: '\e60a';
+}
+.admin__menu .item-stores > a:before {
+  content: '\e60d';
+  font-size: 1.9rem;
+  padding-top: 0.3rem;
+}
+.admin__menu .item-system > a:before {
+  content: '\e610';
+}
+.admin__menu-overlay {
+  bottom: 0;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 697;
+}
+.admin-user {
+  float: right;
+  line-height: 1.4;
+  margin-left: .3rem;
+  position: relative;
+  z-index: 390;
+}
+.admin-user.active .admin-user-account {
+  border-color: #007bdb;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+}
+.admin-user.active .admin-user-account-text-wrapper:after {
+  background-color: #ffffff;
+  content: '';
+  height: 6px;
+  left: -6px;
+  position: absolute;
+  right: 0;
+  top: 100%;
+}
+.admin-user.active .admin-user-menu {
+  opacity: 1;
+  visibility: visible;
+}
+.admin-user-account {
+  padding-right: 2.8rem;
+  font-size: 1.3rem;
+  letter-spacing: .05em;
+  padding-bottom: 0.4rem;
+  padding-left: 4rem;
+  padding-top: 0.7rem;
+  z-index: 2;
+}
+.admin-user-account._active:after,
+.admin-user-account.active:after {
+  transform: rotate(180deg);
+}
+.admin-user-account:after {
+  border-color: #41362f transparent transparent transparent;
+  border-style: solid;
+  border-width: 0.5rem 0.4rem 0 0.4rem;
+  content: '';
+  height: 0;
+  margin-top: -0.2rem;
+  position: absolute;
+  right: 1.3rem;
+  top: 50%;
+  transition: all .2s linear;
+  width: 0;
+}
+._active .admin-user-account:after,
+.active .admin-user-account:after {
+  transform: rotate(180deg);
+}
+.admin-user-account:hover:after {
+  border-color: #41362f transparent transparent transparent;
+}
+.admin-user-account:before {
+  content: '\e600';
+  font-size: 2rem;
+  left: 1.1rem;
+  margin-top: -1.1rem;
+  position: absolute;
+  top: 50%;
+}
+.admin-user-account-text {
+  display: inline-block;
+  max-width: 11.2rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.admin-user-menu {
+  line-height: 1.4;
+  min-width: 20rem;
+  padding: 0.5em 1rem;
+  z-index: 1;
+}
+.admin-user-menu:before {
+  z-index: 1;
+}
+.admin-user-menu > li > a {
+  color: #41362f;
+  display: block;
+  padding: 0.6rem 1.8rem 0.6rem 0.5em;
+  text-decoration: none;
+  transition: background-color 0.1s linear;
+  white-space: nowrap;
+}
+.admin-user-menu > li > a:hover {
+  background-color: #e0f6fe;
+  color: #41362f;
+}
+.admin-user-menu > li > a:active {
+  background-color: #c7effd;
+  bottom: -1px;
+  position: relative;
+}
+.admin-user-menu .admin-user-name {
+  display: inline-block;
+  max-width: 20rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  vertical-align: text-top;
+  white-space: nowrap;
+}
+.search-global {
+  float: right;
+  margin-right: -0.3rem;
+  position: relative;
+  z-index: 380;
+}
+.search-global-field {
+  min-width: 5rem;
+}
+.search-global-field._active .search-global-input {
+  background-color: #ffffff;
+  border-color: #007bdb;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+  padding-right: 4rem;
+  width: 25rem;
+}
+.search-global-field._active .search-global-action {
+  display: block;
+  height: 3.4rem;
+  position: absolute;
+  right: 0;
+  text-indent: -100%;
+  top: 0;
+  width: 5rem;
+  z-index: 3;
+}
+.search-global-field .autocomplete-results {
+  height: 3.4rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+  width: 25rem;
+}
+.search-global-field .search-global-menu {
+  border: 1px solid #007bdb;
+  border-top-color: transparent;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+  left: 0;
+  margin-top: -2px;
+  padding: 0;
+  position: absolute;
+  right: 0;
+  top: 100%;
+  z-index: 2;
+}
+.search-global-field .search-global-menu:after {
+  background-color: #ffffff;
+  content: '';
+  height: 5px;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: -5px;
+}
+.search-global-field .search-global-menu > li {
+  background-color: #ffffff;
+  border-top: 1px solid #dddddd;
+  display: block;
+  font-size: 1.2rem;
+  padding: 0.8rem 1.4rem 0.6rem;
+}
+.search-global-field .search-global-menu .title {
+  display: block;
+  font-size: 1.4rem;
+}
+.search-global-field .search-global-menu .type {
+  color: #231d1a;
+  display: block;
+}
+.search-global-label {
+  cursor: pointer;
+  height: 3.4rem;
+  padding: 0.8rem 1.4rem 0.6rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 2;
+}
+.search-global-label:active {
+  transform: scale(0.9);
+}
+.search-global-label:hover:before {
+  color: #060504;
+}
+.search-global-label:before {
+  content: '\e60c';
+  font-size: 2rem;
+}
+.search-global-input {
+  background-color: transparent;
+  border: 1px solid transparent;
+  font-size: 1.4rem;
+  height: 3.4rem;
+  padding: 0.8rem 1.4rem 0.6rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+  transition: all .1s linear, width .3s linear;
+  width: 5rem;
+  z-index: 1;
+}
+.search-global-action {
+  display: none;
+}
+.notifications-wrapper {
+  float: right;
+  line-height: 1;
+  position: relative;
+}
+.notifications-wrapper.active {
+  z-index: 400;
+}
+.notifications-wrapper.active .notifications-action {
+  border-color: #007bdb;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+}
+.notifications-wrapper.active .notifications-action:after {
+  background-color: #ffffff;
+  content: '';
+  height: 6px;
+  left: -6px;
+  position: absolute;
+  right: 0;
+  top: 100%;
+}
+.notifications-wrapper.active .notifications-list {
+  opacity: 1;
+  visibility: visible;
+}
+.notifications-action {
+  padding: 0.8rem 2rem 0.7rem;
+  z-index: 2;
+}
+.notifications-action:before {
+  content: '\e607';
+  font-size: 1.9rem;
+}
+.notifications-action:active:before {
+  position: relative;
+  top: 1px;
+}
+.notifications-action .notifications-counter {
+  background-color: #e22626;
+  border-radius: 1em;
+  color: #ffffff;
+  display: inline-block;
+  font-size: 1.1rem;
+  font-weight: 700;
+  left: 50%;
+  margin-left: .3em;
+  margin-top: -1.1em;
+  padding: .3em .5em;
+  position: absolute;
+  top: 50%;
+}
+.notifications-list {
+  padding-top: 1rem;
+  width: 32rem;
+  z-index: 1;
+}
+.notifications-list:before {
+  z-index: 2;
+}
+.notifications-entry {
+  line-height: 1.4;
+  padding: 0.6rem 2rem 0.8rem;
+  position: relative;
+  transition: background-color 0.2s linear;
+}
+.notifications-entry:hover {
+  background-color: #e0f6fe;
+}
+.notifications-entry.notifications-entry-last {
+  margin: 0 2rem;
+  padding: .3rem 0 1.3rem;
+  text-align: center;
+}
+.notifications-entry.notifications-entry-last:hover {
+  background-color: transparent;
+}
+.notifications-entry + .notifications-entry-last {
+  border-top: 1px solid #dddddd;
+  padding-bottom: .6rem;
+}
+.notifications-entry ._cutted {
+  cursor: pointer;
+}
+.notifications-entry ._cutted .notifications-entry-description-start:after {
+  content: '...';
+}
+.notifications-entry-title {
+  color: #ef672f;
+  display: block;
+  font-size: 1.1rem;
+  font-weight: 700;
+  margin-bottom: .7rem;
+  margin-right: 1em;
+}
+.notifications-entry-description {
+  color: #333333;
+  font-size: 1.1rem;
+  margin-bottom: .8rem;
+}
+.notifications-entry-description-end {
+  display: none;
+}
+.notifications-entry-description-end._show {
+  display: inline;
+}
+.notifications-entry-time {
+  color: #777777;
+  font-size: 1.1rem;
+}
+.notifications-close {
+  line-height: 1;
+  padding: 1rem;
+  position: absolute;
+  right: 0;
+  top: .6rem;
+}
+.notifications-close:before {
+  color: #cccccc;
+  content: '\e620';
+  transition: color 0.1s linear;
+}
+.notifications-close:hover:before {
+  color: #b3b3b3;
+}
+.notifications-close:active {
+  transform: scale(0.95);
+}
+.abs-page-header-action,
+.admin-user-account,
+.notifications-action {
+  background-color: #ffffff;
+  border: 1px solid transparent;
+  border-bottom: none;
+  color: #41362f;
+  display: inline-block;
+  height: 3.4rem;
+  position: relative;
+  transition: border-color 0.15s ease;
+}
+.abs-page-header-action:hover,
+.admin-user-account:hover,
+.notifications-action:hover {
+  color: #060504;
+  text-decoration: none;
+}
+.abs-page-header-action-menu,
+.admin-user-menu,
+.notifications-list {
+  background-color: #ffffff;
+  border: 1px solid #007bdb;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+  margin-top: -1px;
+  opacity: 0;
+  position: absolute;
+  right: 0;
+  top: 100%;
+  transition: all 0.15s ease;
+  visibility: hidden;
+}
+.abs-page-header-action-menu:before,
+.admin-user-menu:before,
+.notifications-list:before {
+  content: '';
+  position: absolute;
+}
+.abs-page-header-action-menu > li,
+.admin-user-menu > li,
+.notifications-list > li {
+  display: block;
+}
+.page-header-actions {
+  padding-top: 1.1rem;
+}
+.page-header-hgroup {
+  padding-right: 1.5rem;
+}
+.page-title-wrapper {
+  margin-top: 1.7rem;
+}
+.page-title {
+  color: #41362f;
+  font-size: 2.8rem;
+  margin-bottom: 0;
+}
+.page-header {
+  margin-bottom: 1.2rem;
+  padding: 1.5rem 3rem;
+}
+.page-footer {
+  background-color: #f5f5f5;
+  border-top: 0.1rem solid #dddddd;
+  color: #777777;
+  margin-top: auto;
+  padding: 2.6rem 2rem 6rem 3rem;
+}
+.page-footer a {
+  color: #ef672f;
+  text-decoration: underline;
+}
+.page-footer a:hover {
+  color: #ef672f;
+}
+.magento-version {
+  margin-bottom: .5rem;
+}
+.magento-version strong {
+  color: #666666;
+}
+.copyright {
+  margin-bottom: -0.2rem;
+  position: relative;
+}
+.copyright .link-copyright {
+  display: inline-block;
+  margin-right: .5rem;
+  text-decoration: none;
+  vertical-align: top;
+}
+.copyright .link-copyright:hover:before {
+  color: #f38a5e;
+}
+.copyright .link-copyright:before {
+  transition: color 0.1s linear;
+  color: #eb5202;
+  content: '\e606';
+  display: block;
+  font-size: 2.5rem;
+  position: relative;
+  top: -0.2rem;
+}
+.copyright .link-copyright:active:before {
+  transform: scale(0.9);
+}
+.footer-legal {
+  padding-top: 1rem;
+  text-align: right;
+}
+.locale-switcher .label {
+  display: block;
+  margin-bottom: 1rem;
+}
+.store-switcher {
+  color: #41362f;
+  float: left;
+  font-size: 1.3rem;
+  margin-top: 1.1rem;
+}
+.store-switcher .admin__action-dropdown {
+  margin-left: .5em;
+}
+.store-switcher .dropdown {
+  display: inline-block;
+  position: relative;
+}
+.store-switcher .dropdown:before,
+.store-switcher .dropdown:after {
+  content: "";
+  display: table;
+}
+.store-switcher .dropdown:after {
+  clear: both;
+}
+.store-switcher .dropdown .action.toggle {
+  cursor: pointer;
+  display: inline-block;
+  text-decoration: none;
+}
+.store-switcher .dropdown .action.toggle:after {
+  font-family: 'icons-blank-theme';
+  content: '\e607';
+  font-size: 22px;
+  line-height: 2;
+  color: #41362f;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: top;
+  text-align: center;
+  margin: 0;
+}
+.store-switcher .dropdown .action.toggle:hover:after {
+  color: #41362f;
+}
+.store-switcher .dropdown .action.toggle:active:after {
+  color: #41362f;
+}
+.store-switcher .dropdown .action.toggle.active {
+  display: inline-block;
+  text-decoration: none;
+}
+.store-switcher .dropdown .action.toggle.active:after {
+  font-family: 'icons-blank-theme';
+  content: '\e618';
+  font-size: 22px;
+  line-height: 2;
+  color: #41362f;
+  overflow: hidden;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: top;
+  text-align: center;
+  margin: 0;
+}
+.store-switcher .dropdown .action.toggle.active:hover:after {
+  color: #41362f;
+}
+.store-switcher .dropdown .action.toggle.active:active:after {
+  color: #41362f;
+}
+.store-switcher .dropdown .dropdown-menu {
+  margin: 0;
+  padding: 0;
+  list-style: none none;
+  box-sizing: border-box;
+  background: #ffffff;
+  border: 1px #ada89e solid;
+  position: absolute;
+  z-index: 100;
+  top: 100%;
+  min-width: 19.5rem;
+  margin-top: 4px;
+  display: none;
+  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
+}
+.store-switcher .dropdown .dropdown-menu li {
+  margin: 0;
+  padding: 0;
+}
+.store-switcher .dropdown .dropdown-menu li:hover {
+  background: transparent;
+  cursor: pointer;
+}
+.store-switcher .dropdown.active {
+  overflow: visible;
+}
+.store-switcher .dropdown.active .dropdown-menu {
+  display: block;
+}
+.store-switcher .dropdown-menu {
+  left: 0;
+  margin-top: .5em;
+  padding-top: .25em;
+}
+.store-switcher .dropdown-menu li {
+  border: 0;
+  cursor: default;
+}
+.store-switcher .dropdown-menu li:hover {
+  cursor: default;
+}
+.store-switcher .dropdown-menu li a,
+.store-switcher .dropdown-menu li span {
+  color: #41362f;
+  display: block;
+  padding: .5rem 1.3rem;
+}
+.store-switcher .dropdown-menu li a {
+  text-decoration: none;
+}
+.store-switcher .dropdown-menu li a:hover {
+  background: #e9e9e9;
+}
+.store-switcher .dropdown-menu li span {
+  color: #adadad;
+  cursor: default;
+}
+.store-switcher .dropdown-menu li.current span {
+  background: #eee;
+  color: #41362f;
+}
+.store-switcher .dropdown-menu .store-switcher-store a,
+.store-switcher .dropdown-menu .store-switcher-store span {
+  padding-left: 2.6rem;
+}
+.store-switcher .dropdown-menu .store-switcher-store-view a,
+.store-switcher .dropdown-menu .store-switcher-store-view span {
+  padding-left: 3.9rem;
+}
+.store-switcher .dropdown-menu .dropdown-toolbar {
+  border-top: 1px solid #ebebeb;
+  margin-top: 1rem;
+}
+.store-switcher .dropdown-menu .dropdown-toolbar a:before {
+  content: '\e610';
+  margin-right: .25em;
+  position: relative;
+  top: 1px;
+}
+.store-switcher-label {
+  font-weight: 700;
+}
+.store-switcher-alt {
+  display: inline-block;
+  position: relative;
+}
+.store-switcher-alt.active .dropdown-menu {
+  display: block;
+}
+.store-switcher-alt .dropdown-menu {
+  margin-top: 2px;
+  white-space: nowrap;
+}
+.store-switcher-alt .dropdown-menu ul {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+.store-switcher-alt strong {
+  color: #a6a098;
+  display: block;
+  font-size: 14px;
+  font-weight: 500;
+  line-height: 1.333;
+  padding: 5px 10px;
+}
+.store-switcher-alt .store-selected {
+  color: #676056;
+  cursor: pointer;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1.333;
+}
+.store-switcher-alt .store-selected:after {
+  color: #b3b0ad;
+  content: '\e02c';
+  /* arrow down icon */
+  -webkit-font-smoothing: antialiased;
+  font-style: normal;
+  font-weight: normal;
+  margin: 0 0 0 3px;
+  speak: none;
+  vertical-align: text-top;
+}
+.store-switcher-alt .store-switcher-website,
+.store-switcher-alt .store-switcher-store {
+  padding: 0;
+}
+.store-switcher-alt .store-switcher-website:hover,
+.store-switcher-alt .store-switcher-store:hover {
+  background: none;
+}
+.store-switcher-alt .store-switcher-store-view {
+  padding: 0;
+}
+.store-switcher-alt .store-switcher-all,
+.store-switcher-alt .manage-stores {
+  padding: 0;
+}
+.store-switcher-alt .store-switcher-all > a,
+.store-switcher-alt .manage-stores > a {
+  color: #676056;
+  display: block;
+  font-size: 12px;
+  padding: 8px 15px;
+  text-decoration: none;
+}
+.store-switcher-website {
+  margin: 5px 0 0;
+}
+.store-switcher-website > strong {
+  padding-left: 13px;
+}
+.store-switcher-store {
+  margin: 1px 0 0;
+}
+.store-switcher-store > strong {
+  padding-left: 20px;
+}
+.store-switcher-store > ul {
+  margin-top: 1px;
+}
+.store-switcher-store-view:first-child {
+  border-top: 1px solid #e5e5e5;
+}
+.store-switcher-store-view > a {
+  color: #333;
+  display: block;
+  font-size: 13px;
+  padding: 5px 15px 5px 24px;
+  text-decoration: none;
+}
+.tooltip {
+  display: inline-block;
+  margin-left: .5em;
+}
+.tooltip .help span,
+.tooltip .help a {
+  cursor: pointer;
+  display: inline-block;
+  height: 22px;
+  position: relative;
+  vertical-align: middle;
+  width: 22px;
+  z-index: 2;
+}
+.tooltip .help span:before,
+.tooltip .help a:before {
+  color: #41362f;
+  content: '\e633';
+  font-size: 1.7rem;
+}
+.tooltip .help span span,
+.tooltip .help a span {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+.tooltip .help a:hover {
+  text-decoration: none;
+}
+.tooltip .tooltip-content {
+  background: rgba(49, 48, 43, 0.8);
+  background: #000;
+  border-radius: 3px;
+  color: #fff;
+  display: none;
+  margin-left: -19px;
+  margin-top: 10px;
+  max-width: 200px;
+  padding: 4px 8px;
+  position: absolute;
+  text-shadow: none;
+  z-index: 20;
+}
+.tooltip .tooltip-content:before {
+  border-bottom: 5px solid #000;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  content: '';
+  height: 0;
+  left: 20px;
+  opacity: .8;
+  position: absolute;
+  top: -5px;
+  width: 0;
+}
+.tooltip .tooltip-content.loading {
+  position: absolute;
+}
+.tooltip .tooltip-content.loading:before {
+  border-bottom-color: rgba(0, 0, 0, 0.3);
+}
+.tooltip:hover > .tooltip-content {
+  display: block;
+}
+.page-main-actions,
+.page-actions.fixed {
+  background: #f8f8f8;
+  border-bottom: 1px solid #e3e3e3;
+  border-top: 1px solid #e3e3e3;
+  padding: 1.5rem;
+}
+.page-main-actions {
+  margin: 0 0 2rem;
+}
+.page-actions {
+  float: right;
+}
+.page-actions.fixed {
+  left: 8.8rem;
+  position: fixed;
+  right: 0;
+  top: 0;
+  z-index: 400;
+}
+.page-actions.fixed .page-actions-inner:before {
+  color: #41362f;
+  content: attr(data-title);
+  float: left;
+  font-size: 2.8rem;
+  margin-top: .3rem;
+  max-width: 50%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.page-actions > button,
+.page-actions .page-actions-buttons > button {
+  float: right;
+  margin-left: 1.3rem;
+}
+.page-actions > button.back,
+.page-actions .page-actions-buttons > button.back,
+.page-actions > button.action-back,
+.page-actions .page-actions-buttons > button.action-back {
+  float: left;
+  -ms-flex-order: -1;
+  -webkit-order: -1;
+  order: -1;
+}
+.page-actions > button.back:before,
+.page-actions .page-actions-buttons > button.back:before,
+.page-actions > button.action-back:before,
+.page-actions .page-actions-buttons > button.action-back:before {
+  content: '\e626';
+  margin-right: .5em;
+  position: relative;
+  top: 1px;
+}
+.page-actions > button.action-primary,
+.page-actions .page-actions-buttons > button.action-primary,
+.page-actions > button.primary,
+.page-actions .page-actions-buttons > button.primary {
+  -ms-flex-order: 2;
+  -webkit-order: 2;
+  order: 2;
+}
+.page-actions > button.save:not(.primary),
+.page-actions .page-actions-buttons > button.save:not(.primary) {
+  -ms-flex-order: 1;
+  -webkit-order: 1;
+  order: 1;
+}
+.page-actions > button.delete,
+.page-actions .page-actions-buttons > button.delete {
+  -ms-flex-order: -1;
+  -webkit-order: -1;
+  order: -1;
+}
+.page-actions .actions-split {
+  float: right;
+  margin-left: 1.3rem;
+  -ms-flex-order: 2;
+  -webkit-order: 2;
+  order: 2;
+}
+.page-actions .actions-split .dropdown-menu .item {
+  display: block;
+}
+.page-actions-buttons {
+  float: right;
+  justify-content: flex-end;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+}
+.customer-index-edit .page-actions-buttons {
+  background-color: transparent;
+}
+.dashboard-data {
+  background: #ffffff;
+  font-size: 1.3rem;
+  width: 100%;
+}
+.dashboard-data th,
+.dashboard-data td {
+  padding: 1rem 0 1rem 1rem;
+}
+.dashboard-data th:first-child,
+.dashboard-data td:first-child {
+  padding-left: 0;
+}
+.dashboard-data th {
+  border-top: 0;
+}
+.dashboard-main .dashboard-data th,
+.dashboard-main .dashboard-data td {
+  text-align: right;
+  white-space: nowrap;
+  width: 15%;
+}
+.dashboard-main .dashboard-data .col-name {
+  text-align: left;
+  white-space: normal;
+  width: 55%;
+}
+.dashboard-main .dashboard-data .col-product {
+  width: 70%;
+}
+.dashboard-main .dashboard-data .col-orders_count {
+  text-align: left;
+}
+.dashboard-secondary .dashboard-data .col-popularity,
+.dashboard-secondary .dashboard-data .col-total {
+  text-align: right;
+  width: 21.27659574%;
+}
+.dashboard-secondary .dashboard-data .col-customer,
+.dashboard-secondary .dashboard-data .col-search_query {
+  width: 57.44680851%;
+}
+.dashboard-container .empty-text {
+  background: #ffffff;
+  font-size: 1.3rem;
+}
+.dashboard-diagram-disabled {
+  padding: .5rem 2rem 2rem;
+}
+.dashboard-diagram-switcher {
+  margin-bottom: 2rem;
+}
+.dashboard-diagram-image {
+  max-width: 100%;
+}
+.dashboard-totals {
+  margin: 1rem 2rem 6rem;
+}
+.dashboard-totals-list {
+  display: table;
+  width: 100%;
+}
+.dashboard-totals-item {
+  display: table-cell;
+  padding: 0 1rem 0 0;
+  width: 25%;
+}
+.dashboard-totals-item:first-child .price {
+  color: #eb5202;
+}
+.dashboard-totals-label {
+  display: block;
+  font-size: 1.3rem;
+  font-weight: 700;
+}
+.dashboard-totals-value {
+  font-size: 2.4rem;
+  font-weight: 600;
+}
+.dashboard-store-stats .ui-tabs {
+  position: relative;
+}
+.dashboard-store-stats .ui-tabs:before {
+  background-color: rgba(255, 255, 255, 0);
+  background-repeat: repeat-x;
+  background-image: -webkit-linear-gradient(left, color-stop(rgba(255, 255, 255, 0) 0%), color-stop(#ffffff 100%));
+  background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 0)', endColorstr='#ffffff', GradientType=1);
+  content: '';
+  height: 4.8rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+  width: 2rem;
+}
+.dashboard-store-stats .ui-tabs-panel {
+  background: url(../images/ajax-loader-small.gif) no-repeat 50% 50%;
+  min-height: 6rem;
+}
+.dashboard-store-stats .tabs-horiz {
+  border-right: 1px solid #ffffff;
+  float: left;
+  overflow-x: auto;
+  white-space: nowrap;
+  width: 100%;
+}
+.dashboard-store-stats .tabs-horiz .ui-state-default {
+  display: inline-block;
+  float: none;
+  margin-right: .1rem;
+}
+.dashboard-container .dashboard-secondary {
+  padding-right: 3.5rem;
+}
+.dashboard-item {
+  margin-bottom: 3rem;
+}
+.dashboard-item-title {
+  font-size: 1.8rem;
+  font-weight: 700;
+}
+.dashboard-item-primary:first-child .dashboard-sales-value {
+  color: #eb5202;
+}
+.dashboard-sales-value {
+  font-size: 2.4rem;
+  font-weight: 600;
+}
+.admin__section-nav {
+  padding-bottom: 51px;
+}
+.admin__section-nav-title {
+  padding: 0;
+  margin: 0 0 -1px;
+  color: #303030;
+  display: block;
+  padding: 20px 13px;
+  background: #f1f1f1;
+  text-transform: uppercase;
+  border: 1px solid #e3e3e3;
+  line-height: 1.2;
+}
+.admin__section-nav-title._collapsible {
+  padding-right: 35px;
+}
+.admin__section-nav-title._collapsible:after {
+  content: '\e628';
+  font-family: 'Admin Icons';
+  -webkit-font-smoothing: antialiased;
+  font-weight: normal;
+  speak: none;
+  position: absolute;
+  right: 18px;
+  top: 22px;
+  font-size: 1.3rem;
+}
+.admin__section-nav-title strong {
+  font-weight: 700;
+}
+.admin__section-nav-items {
+  list-style-type: none;
+  padding: 0;
+  margin: 0;
+}
+.admin__section-nav-item {
+  padding: 0;
+  border-left: 3px solid transparent;
+  margin: 0 0 -1px;
+}
+.admin__section-nav-item._active {
+  border-color: #eb5202;
+}
+.admin__section-nav-item._active .admin__section-nav-link {
+  border-color: #e3e3e3;
+  margin: 0;
+}
+.admin__section-nav-item._active .admin__section-nav-link:hover {
+  text-decoration: none;
+}
+.admin__section-nav-item._loading {
+  position: relative;
+  z-index: 1;
+}
+.admin__section-nav-item._loading:before {
+  content: "";
+  display: block;
+  position: absolute;
+  z-index: 2;
+  background: url("../images/loader-2.gif") no-repeat 50% 50%;
+  background-size: 120px;
+  width: 2rem;
+  height: 2rem;
+  top: 2.1rem;
+  right: .5rem;
+}
+.admin__section-nav-link {
+  border: 1px solid transparent;
+  border-width: 1px 0;
+  line-height: 1.2;
+  font-weight: 500;
+  color: #303030;
+  display: block;
+  padding: 20px 30px 20px 10px;
+}
+.admin__section-nav-link:hover {
+  color: #303030;
+  text-decoration: underline;
+}
+.admin__section-nav-link._changed {
+  position: relative;
+  z-index: 1;
+}
+.admin__section-nav-link._changed:before {
+  content: '\e623';
+  font-family: 'Admin Icons';
+  -webkit-font-smoothing: antialiased;
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+  position: absolute;
+  z-index: 2;
+  font-size: 17px;
+  color: #eb5202;
+  width: 20px;
+  height: 20px;
+  top: 15px;
+  right: 5px;
+}
+@media all and (max-width: 1023px) {
+  .admin__menu .submenu li {
+    min-width: 19.8rem;
+  }
+}
+@media all and (min-width: 768px) {
+  .col-m-1, .col-m-2, .col-m-3, .col-m-4, .col-m-5, .col-m-6, .col-m-7, .col-m-8, .col-m-9, .col-m-10, .col-m-11, .col-m-12 {
+    float: left;
+  }
+  .col-m-12 {
+    width: 100%;
+  }
+  .col-m-11 {
+    width: 91.66666667%;
+  }
+  .col-m-10 {
+    width: 83.33333333%;
+  }
+  .col-m-9 {
+    width: 75%;
+  }
+  .col-m-8 {
+    width: 66.66666667%;
+  }
+  .col-m-7 {
+    width: 58.33333333%;
+  }
+  .col-m-6 {
+    width: 50%;
+  }
+  .col-m-5 {
+    width: 41.66666667%;
+  }
+  .col-m-4 {
+    width: 33.33333333%;
+  }
+  .col-m-3 {
+    width: 25%;
+  }
+  .col-m-2 {
+    width: 16.66666667%;
+  }
+  .col-m-1 {
+    width: 8.33333333%;
+  }
+  .col-m-pull-12 {
+    right: 100%;
+  }
+  .col-m-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-m-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-m-pull-9 {
+    right: 75%;
+  }
+  .col-m-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-m-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-m-pull-6 {
+    right: 50%;
+  }
+  .col-m-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-m-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-m-pull-3 {
+    right: 25%;
+  }
+  .col-m-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-m-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-m-pull-0 {
+    right: auto;
+  }
+  .col-m-push-12 {
+    left: 100%;
+  }
+  .col-m-push-11 {
+    left: 91.66666667%;
+  }
+  .col-m-push-10 {
+    left: 83.33333333%;
+  }
+  .col-m-push-9 {
+    left: 75%;
+  }
+  .col-m-push-8 {
+    left: 66.66666667%;
+  }
+  .col-m-push-7 {
+    left: 58.33333333%;
+  }
+  .col-m-push-6 {
+    left: 50%;
+  }
+  .col-m-push-5 {
+    left: 41.66666667%;
+  }
+  .col-m-push-4 {
+    left: 33.33333333%;
+  }
+  .col-m-push-3 {
+    left: 25%;
+  }
+  .col-m-push-2 {
+    left: 16.66666667%;
+  }
+  .col-m-push-1 {
+    left: 8.33333333%;
+  }
+  .col-m-push-0 {
+    left: auto;
+  }
+  .col-m-offset-12 {
+    margin-left: 100%;
+  }
+  .col-m-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-m-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-m-offset-9 {
+    margin-left: 75%;
+  }
+  .col-m-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-m-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-m-offset-6 {
+    margin-left: 50%;
+  }
+  .col-m-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-m-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-m-offset-3 {
+    margin-left: 25%;
+  }
+  .col-m-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-m-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-m-offset-0 {
+    margin-left: 0%;
+  }
+}
+@media all and (min-width: 1024px) {
+  .col-l-1, .col-l-2, .col-l-3, .col-l-4, .col-l-5, .col-l-6, .col-l-7, .col-l-8, .col-l-9, .col-l-10, .col-l-11, .col-l-12 {
+    float: left;
+  }
+  .col-l-12 {
+    width: 100%;
+  }
+  .col-l-11 {
+    width: 91.66666667%;
+  }
+  .col-l-10 {
+    width: 83.33333333%;
+  }
+  .col-l-9 {
+    width: 75%;
+  }
+  .col-l-8 {
+    width: 66.66666667%;
+  }
+  .col-l-7 {
+    width: 58.33333333%;
+  }
+  .col-l-6 {
+    width: 50%;
+  }
+  .col-l-5 {
+    width: 41.66666667%;
+  }
+  .col-l-4 {
+    width: 33.33333333%;
+  }
+  .col-l-3 {
+    width: 25%;
+  }
+  .col-l-2 {
+    width: 16.66666667%;
+  }
+  .col-l-1 {
+    width: 8.33333333%;
+  }
+  .col-l-pull-12 {
+    right: 100%;
+  }
+  .col-l-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-l-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-l-pull-9 {
+    right: 75%;
+  }
+  .col-l-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-l-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-l-pull-6 {
+    right: 50%;
+  }
+  .col-l-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-l-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-l-pull-3 {
+    right: 25%;
+  }
+  .col-l-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-l-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-l-pull-0 {
+    right: auto;
+  }
+  .col-l-push-12 {
+    left: 100%;
+  }
+  .col-l-push-11 {
+    left: 91.66666667%;
+  }
+  .col-l-push-10 {
+    left: 83.33333333%;
+  }
+  .col-l-push-9 {
+    left: 75%;
+  }
+  .col-l-push-8 {
+    left: 66.66666667%;
+  }
+  .col-l-push-7 {
+    left: 58.33333333%;
+  }
+  .col-l-push-6 {
+    left: 50%;
+  }
+  .col-l-push-5 {
+    left: 41.66666667%;
+  }
+  .col-l-push-4 {
+    left: 33.33333333%;
+  }
+  .col-l-push-3 {
+    left: 25%;
+  }
+  .col-l-push-2 {
+    left: 16.66666667%;
+  }
+  .col-l-push-1 {
+    left: 8.33333333%;
+  }
+  .col-l-push-0 {
+    left: auto;
+  }
+  .col-l-offset-12 {
+    margin-left: 100%;
+  }
+  .col-l-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-l-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-l-offset-9 {
+    margin-left: 75%;
+  }
+  .col-l-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-l-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-l-offset-6 {
+    margin-left: 50%;
+  }
+  .col-l-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-l-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-l-offset-3 {
+    margin-left: 25%;
+  }
+  .col-l-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-l-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-l-offset-0 {
+    margin-left: 0%;
+  }
+}
+@media all and (min-width: 1440px) {
+  .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
+    float: left;
+  }
+  .col-xl-12 {
+    width: 100%;
+  }
+  .col-xl-11 {
+    width: 91.66666667%;
+  }
+  .col-xl-10 {
+    width: 83.33333333%;
+  }
+  .col-xl-9 {
+    width: 75%;
+  }
+  .col-xl-8 {
+    width: 66.66666667%;
+  }
+  .col-xl-7 {
+    width: 58.33333333%;
+  }
+  .col-xl-6 {
+    width: 50%;
+  }
+  .col-xl-5 {
+    width: 41.66666667%;
+  }
+  .col-xl-4 {
+    width: 33.33333333%;
+  }
+  .col-xl-3 {
+    width: 25%;
+  }
+  .col-xl-2 {
+    width: 16.66666667%;
+  }
+  .col-xl-1 {
+    width: 8.33333333%;
+  }
+  .col-xl-pull-12 {
+    right: 100%;
+  }
+  .col-xl-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-xl-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-xl-pull-9 {
+    right: 75%;
+  }
+  .col-xl-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-xl-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-xl-pull-6 {
+    right: 50%;
+  }
+  .col-xl-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-xl-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-xl-pull-3 {
+    right: 25%;
+  }
+  .col-xl-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-xl-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-xl-pull-0 {
+    right: auto;
+  }
+  .col-xl-push-12 {
+    left: 100%;
+  }
+  .col-xl-push-11 {
+    left: 91.66666667%;
+  }
+  .col-xl-push-10 {
+    left: 83.33333333%;
+  }
+  .col-xl-push-9 {
+    left: 75%;
+  }
+  .col-xl-push-8 {
+    left: 66.66666667%;
+  }
+  .col-xl-push-7 {
+    left: 58.33333333%;
+  }
+  .col-xl-push-6 {
+    left: 50%;
+  }
+  .col-xl-push-5 {
+    left: 41.66666667%;
+  }
+  .col-xl-push-4 {
+    left: 33.33333333%;
+  }
+  .col-xl-push-3 {
+    left: 25%;
+  }
+  .col-xl-push-2 {
+    left: 16.66666667%;
+  }
+  .col-xl-push-1 {
+    left: 8.33333333%;
+  }
+  .col-xl-push-0 {
+    left: auto;
+  }
+  .col-xl-offset-12 {
+    margin-left: 100%;
+  }
+  .col-xl-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-xl-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-xl-offset-9 {
+    margin-left: 75%;
+  }
+  .col-xl-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-xl-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-xl-offset-6 {
+    margin-left: 50%;
+  }
+  .col-xl-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-xl-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-xl-offset-3 {
+    margin-left: 25%;
+  }
+  .col-xl-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-xl-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-xl-offset-0 {
+    margin-left: 0%;
+  }
+}
+@media all and (max-width: 767px) {
+  .footer-legal {
+    padding-top: 3rem;
+    text-align: left;
+  }
+  .dashboard-totals-item {
+    float: left;
+    margin-bottom: 1rem;
+    width: 50%;
+  }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/pages.less b/app/design/adminhtml/Magento/backend/web/css/pages.less
deleted file mode 100644
index dfa4e92c55826d42e6752de910034ddd5ea7b71c..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/pages.less
+++ /dev/null
@@ -1,2052 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-@import "../less/styles/vars.less";
-
-/*
-    Product Creation
--------------------------------------- */
-
-// /* Action "Back" as cross  */
-// [class^=" catalog-product-"] .page-actions .action-back,
-// [class^=" catalog-product-"] .page-actions .action-back:hover,
-// [class^=" catalog-product-"] .page-actions .action-back:active,
-// [class^=" newsletter-"] .page-actions .action-back,
-// [class^=" newsletter-"] .page-actions .action-back:hover,
-// [class^=" newsletter-"] .page-actions .action-back:active {
-//     overflow: hidden;
-//     padding: 5px 6px 3px;
-//     margin-left: 12px;
-//     color: #7a7976;
-// }
-
-// .sales-order-create-index .page-actions-inner .cancel,
-// .sales-order-create-index .page-actions-inner .cancel:hover,
-// .sales-order-create-index .page-actions-inner .cancel:active {
-//     filter: none;
-//     border: 0;
-// }
-
-// [class^=" catalog-product-"] .page-actions .action-back:hover,
-// [class^=" newsletter-"] .page-actions .action-back:hover,
-// .sales-order-create-index .page-actions-inner .cancel:hover {
-//     color: #000;
-// }
-
-[class^=" catalog-product-"] .page-actions .action-back.mage-error,
-[class^=" newsletter-"] .page-actions .action-back.mage-error {
-    color: #b57c72;
-}
-
-// [class^=" catalog-product-"] .page-actions .action-back:before,
-// [class^=" newsletter-"] .page-actions .action-back:before,
-// .sales-order-create-index .page-actions-inner .cancel:before {
-//     display: inline-block;
-//     font-family: 'MUI-Icons';
-//     font-style: normal;
-//     speak: none;
-//     font-weight: normal;
-//     -webkit-font-smoothing: antialiased;
-//     content: '\e07d'; /* close icon */
-//     font-size: 16px;
-// }
-
-// [class^=" catalog-product-"] .page-actions .action-back span,
-// [class^=" newsletter-"] .page-actions .action-back span,
-// .sales-order-create-index .page-actions-inner .cancel span {
-//     display: inline-block;
-//     overflow: hidden;
-//     text-indent: -999em;
-// }
-
-// .page-actions .switcher {
-//     display: inline-block;
-//     vertical-align: top;
-//     margin: 6px 17px 6px 6px;
-// }
-
-.field-weight .control .field:first-child {
-    width: 36%;
-    margin-right: 15px;
-}
-
-#allow_open_amount {
-    margin-top: 8px;
-}
-
-.catalog-product-new .user-defined.type-select select,
-.catalog-product-edit .user-defined.type-select select {
-    width: 100%;
-}
-
-#tab_content_downloadableInfo .data-table td {
-    vertical-align: top;
-    .row {
-        margin-bottom: 10px;
-    }
-}
-
-/*
-    Customer
----------------------------------------*/
-.customer-index-edit .grid tr.headings th > span {
-    white-space: normal;
-}
-
-#customer_info_tabs_account_content #_accountsendemail {
-    margin-top: 8px;
-}
-
-.customer-information:before,
-.customer-information:after {
-    content: "";
-    display: table;
-}
-
-.customer-information:after {
-    clear: both;
-}
-
-.customer-information .data-table,
-.customer-information address {
-    width: 48.5%;
-}
-
-.customer-information .data-table {
-    float: left;
-    width: 48.5%;
-}
-
-.customer-information address {
-    padding-top: 4px;
-    line-height: 2.2;
-    float: right;
-}
-
-.address-list {
-    list-style: none;
-    width: 278px;
-    margin: 0 0 10px;
-    padding: 0;
-    float: left;
-}
-
-.address-list li {
-    border: 1px solid #d9d2ca;
-    background: #f7f2ec;
-    padding: 10px 10px 15px;
-    cursor: pointer;
-    margin-bottom: -1px;
-}
-
-.address-list li.ui-state-active {
-    background: #fff;
-    position: relative;
-    box-shadow: 0 1px 1px 0 rgba(217, 210, 202, 1);
-    margin-left: -2px;
-    padding-left: 12px;
-}
-
-.address-list li.ui-state-active:before,
-.address-list li.ui-state-active:after {
-    position: absolute;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    font-size: 18px;
-    color: #fff;
-    content: "\e02a";
-    speak: none;
-    line-height: 11px;
-    width: 10px;
-    right: -9px;
-    text-indent: -6px;
-    top: 50%;
-    margin-top: -5px;
-    z-index: 2;
-}
-
-.address-list li.ui-state-active:before {
-    color: #d9d2ca;
-    right: -11px;
-    z-index: 1;
-}
-
-.address-list li.address-list-actions:before,
-.address-list li.address-list-actions:after {
-    display: none;
-}
-
-.address-list li.address-list-actions {
-    padding: 20px 0 0;
-    border: 0;
-    background: none;
-    box-shadow: none;
-    cursor: default;
-}
-
-.address-list li.address-list-actions:first-child {
-    padding: 0;
-}
-
-.address-list .label {
-    float: none;
-    width: auto;
-    padding: 0 0 0 10px;
-}
-
-.address-list input[type="checkbox"] {
-    float: left;
-}
-
-.address-list address:first-line {
-    /*  its not work  if First Name and Last Name in two lines */
-    font-weight: bold;
-}
-
-.address-list address {
-    margin: 0 20px 15px 0;
-    line-height: 1.5;
-}
-
-.address-list-item-actions {
-    float: right;
-}
-
-.address-list .action-edit {
-    display: none;
-}
-
-.address-list .field {
-    margin-bottom: 15px;
-}
-
-.ui-tabs-nav .address-list-item a {
-    text-decoration: none;
-    color: #676056;
-}
-
-.address-item-edit {
-    margin-left: 277px;
-}
-
-.address-item-edit-content {
-    border: 1px solid #dad1c8;
-    background: #fff;
-    box-shadow: 0 2px 1px 0 rgba(217, 210, 202, .5);
-    padding-left: 10px;
-}
-
-.address-item-edit-content .fieldset:last-child {
-    margin-bottom: 29px;
-}
-
-.address-item-edit .legend {
-    border-bottom: 0;
-    margin: 0 0 18px;
-    padding-left: 20%;
-}
-
-.address-item-edit .legend span {
-    padding-left: 0;
-}
-
-.address-item-edit-actions {
-    padding: 0 0 18px 20%;
-}
-
-/*
-    Configuration -> Design
--------------------------------------- */
-#row_design_theme_ua_regexp .design_theme_ua_regexp {
-    float: left;
-    width: 100%;
-}
-#row_design_theme_ua_regexp .tooltip {
-    margin-top: 8px;
-}
-#row_design_theme_ua_regexp .note {
-    clear: both;
-}
-
-/*
-    Configuration -> Payment Methods
--------------------------------------- */
-.adminhtml-system-config-edit .payflow-settings-notice .important-label {
-    .style32();
-}
-
-.adminhtml-system-config-edit .payflow-settings-notice ul.options-list strong {
-    .style28();
-}
-
-/*
-    CMS -> Banners
--------------------------------------- */
-
-/* Banner Properties */
-#banner_properties_customer_segment_ids {
-    min-width: 20%;
-}
-
-/* Content */
-
-.field-store_default_content .buttons-set {
-    margin-bottom: 9px;
-}
-
-.field-store_default_content .buttons-set button {
-    margin-right: 4px;
-}
-
-.field-store_0_content_use input[type="checkbox"] {
-    margin-right: 3px;
-    position: relative;
-    top: 2px;
-}
-
-/*
-    CMS -> Manage Hierarchy
--------------------------------------- */
-
-.cms-hierarchy .cms-scope {
-    float: right;
-    margin-right: 25px;
-    position: relative;
-    top: 2px;
-    z-index: 1;
-}
-
-.cms-hierarchy #tree-container {
-    margin-top: 25px;
-    overflow: auto;
-    padding-bottom: 10px;
-}
-
-.cms-hierarchy .buttons-set {
-    margin-bottom: 10px;
-}
-
-.cms-hierarchy .cms-hierarchy-tree {
-    width: 48.93617020799999%;
-    float: left;
-    margin: 10px 0 8px 0;
-}
-
-.cms-hierarchy .cms-hierarchy-node {
-    width: 48.93617020799999%;
-    float: left;
-    margin: 10px 0 8px 2.127659574%;
-}
-
-.cms-hierarchy #cms_page_grid_container {
-    clear: both;
-}
-
-.cms-hierarchy .store-switcher {
-    position: relative;
-    top: 10px;
-}
-
-.cms-hierarchy .store-switcher label {
-    margin-right: 8px;
-}
-
-.cms-hierarchy-node #node_properties_fieldset #node_preview {
-    position: relative;
-    top: 6px;
-}
-
-.cms-hierarchy-node .form-inline .label {
-    width: 30%;
-}
-
-/*
-    CMS -> Widgets
--------------------------------------- */
-
-#widget_instace_tabs_properties_section_content .widget-option-label {
-    margin-top: 6px;
-}
-
-/*
-    CMS -> Static Blocks
--------------------------------------- */
-
-#buttonsblock_content.buttons-set {
-    margin-bottom: 9px;
-}
-
-#buttonsblock_content.buttons-set button {
-    margin-right: 4px;
-}
-
-/*
-    CMS -> Manage Content
--------------------------------------- */
-
-/* Content */
-
-.cms-manage-content-actions .buttons-set {
-    margin-bottom: 9px;
-}
-
-.cms-manage-content-actions .buttons-set button {
-    margin-right: 4px;
-}
-
-.cms-manage-content-actions textarea {
-    width: 100%;
-}
-
-/*
-    System -> Action Log -> Report
--------------------------------------- */
-.adminhtml-logging-details .log-details-grid table {
-    th {
-        border: 1px solid #c9c2b8;
-        border-width: 0 0 1px;
-        padding: 6px 10px 7px;
-        background: #fff;
-        .style2();
-
-        span {
-            border: 0;
-            padding: 0;
-        }
-    }
-
-    td {
-        border: none;
-        padding: 6px 10px 7px;
-        background: #fff;
-    }
-
-    tr:last-child td {
-        border: 1px solid #eae8e4;
-        border-width: 0 0 1px;
-    }
-
-    tr.on-mouse {
-        cursor: inherit;
-    }
-
-    tr:nth-child(odd) td,
-    tr.on-mouse:nth-child(odd):hover td {
-        background: #fbfaf6;
-    }
-}
-
-//
-//    System -> Roles
-// --------------------------------------
-
-#gws_container ul {
-    padding: 0;
-    margin: 0;
-    list-style: none;
-}
-
-#gws_container ul ul {
-    margin: .8em 0 .8em 1.4em;
-}
-
-#gws_container input[type="checkbox"] {
-    margin-right: 3px;
-    position: relative;
-    top: -1px;
-}
-
-//
-//    Reports
-// -------------------------------------- */
-.reports-title .page-actions {
-    float: right;
-}
-
-.reports-title .store-switcher {
-    padding: 14px 0 18px;
-}
-
-.reports-content select {
-    width: 160px;
-}
-
-.reports-content input.hasDatepicker {
-    width: 133px;
-}
-
-.reports-content .required .control {
-    position: relative;
-}
-
-.reports-content input.hasDatepicker + label.mage-error {
-    left: 0;
-    position: absolute;
-    top: 30px;
-}
-
-.reports-title:before,
-.reports-title:after {
-    content: "";
-    display: table;
-}
-
-.reports-title:after {
-    clear: both;
-}
-
-//
-//    Reports - PayPal Settlement Reports
-//--------------------------------------
-
-.adminhtml-paypal-reports-index .grid tr.headings th > span {
-    white-space: normal;
-}
-
-.adminhtml-paypal-reports-index .col-transaction_event_code {
-    max-width: 150px;
-}
-
-.adminhtml-paypal-reports-index .col-amount,
-.adminhtml-paypal-reports-index .col-fee-amount {
-    text-align: right;
-}
-
-/*
-    Newsletter Templates
--------------------------------------- */
-.newsletter-template-index .col-id {
-    width: 35px;
-}
-
-.newsletter-template-index .col-actions {
-    width: 80px;
-}
-
-.newsletter-template-index .col-type {
-    width: 100px;
-}
-
-.newsletter-template-index .col-added,
-.newsletter-template-index .col-updated {
-    width: 140px;
-}
-
-[class^=' newsletter-'] .buttons-set {
-    margin: 0 0 15px;
-}
-
-[class^=" newsletter-"] .buttons-set button {
-    margin-right: 4px;
-}
-
-/*
-    Newsletter - Queue
--------------------------------------- */
-.newsletter-queue-index .col-id {
-    width: 35px;
-}
-
-.newsletter-queue-index .col-finish,
-.newsletter-queue-index .col-start {
-    width: 130px;
-}
-
-.newsletter-queue-index .col-status,
-.newsletter-queue-index .col-processed,
-.newsletter-queue-index .col-recipients {
-    white-space: nowrap;
-    width: 85px;
-}
-
-.newsletter-queue-index td.col-processed,
-.newsletter-queue-index td.col-recipients {
-    text-align: right;
-}
-
-.newsletter-queue-index .col-actions {
-    width: 80px;
-}
-
-/*
-    Newsletter - Subscribers
--------------------------------------- */
-.newsletter-subscriber-index .col-id {
-    width: 35px;
-}
-
-.newsletter-subscriber-index .col-type {
-    width: 75px;
-}
-
-.newsletter-subscriber-index .col-status {
-    white-space: nowrap;
-    width: 85px;
-}
-
-/*
-    Newsletter - Problems
--------------------------------------- */
-.newsletter-problem-index .col-select {
-    width: 25px;
-}
-
-.newsletter-problem-index .col-id {
-    width: 35px;
-}
-
-.newsletter-problem-index .col-start {
-    width: 130px;
-}
-
-.newsletter-problem-index .col-error-code {
-    width: 150px;
-}
-
-
-.table-fieldset-alt,
-.type-options {
-    margin-bottom: 20px;
-}
-
-.table-fieldset-alt thead th,
-.table-fieldset-alt tbody tr td {
-    border-width: 0;
-}
-
-.table-fieldset-alt tbody tr:nth-child(odd) td,
-.table-fieldset-alt tbody tr:nth-child(odd):hover td {
-    background: #fff;
-}
-
-/*
-    System - Tax
---------------------------------------*/
-.tax-rate-popup .ui-dialog-content.ui-widget-content {
-    padding: 10px 10px 0;
-}
-
-.tax-rate-popup .fieldset {
-    margin: 0;
-}
-
-.tax-rate-popup .field {
-    margin-bottom: 20px;
-}
-
-.tax-rate-popup .field .label {
-    margin: 5px 0 0;
-    width: 26%;
-    padding: 0 20px 0 0;
-    float: left;
-    text-align: right;
-    box-sizing: content-box;
-}
-
-.tax-rate-popup .field .control {
-    width: 58%;
-    margin: 0;
-    float: left;
-}
-
-.tax-rate-popup .field .control select,
-.tax-rate-popup .field .control .input-text {
-    width: 100%;
-}
-
-.tax-rate-popup .field-rate .control .input-text {
-    width: 50%;
-}
-
-.tax-rate-popup .field-rate label.mage-error {
-    display: block;
-}
-
-.tax-rate-popup .tax-rate-titles-note-td {
-    margin-left: 26%;
-    padding-left: 20px;
-}
-
-.field-tax_rate,
-.field-tax_customer_class,
-.field-tax_product_class {
-    position: relative;
-}
-
-.mselect-hidden + .mage-error {
-    position: absolute;
-    top: 100%;
-}
-
-/*
-    Tags
--------------------------------------- */
-.tag-title {
-    overflow: hidden;
-}
-
-.tag-title .page-actions {
-    float: right;
-}
-
-/*
-    Attribute Mapping
--------------------------------------- */
-.field-attributes_box .control-value {
-    width: 100%;
-}
-
-.adminhtml-googleshopping-types-new #attribute_set {
-    padding: 0;
-}
-
-.adminhtml-googleshopping-types-new #gcontent_attributes_container {
-    margin-top: -6px;
-}
-
-
-/*
-    Sales
--------------------------------------- */
-
-#order-totals strong {
-    .style28();
-}
-
-#order-shipping-method-summary a {
-    .style3();
-}
-
-.order-sidebar {
-    float: left;
-    width: 22%;
-}
-
-.customer-current-activity-inner {
-    padding: 18px;
-}
-
-.customer-current-activity .action-refresh {
-    float: right;
-    &:hover {
-        text-decoration: none;
-    }
-}
-
-.order-currency {
-    padding: 18px;
-}
-.order-detail {
-}
-.order-details-existing-customer {
-    background: #fff;
-    padding-left: 0;
-    position: relative;
-    width: 77.9%;
-    float: right;
-}
-
-.order-billing-address,
-.order-billing-method,
-[class*="-order-"] .order-history,
-[class*="-order-"] .order-comments-history,
-[class*="-order-"] .order-information,
-[class*="-order-"] .order-billing-address,
-[class*="-order-"] .order-payment-method,
-[class^=" adminhtml-rma-"] .order-comments-history,
-[class^=" adminhtml-rma-"] .order-shipping-address,
-[class^=" adminhtml-rma-"] .rma-request-details {
-    float: left;
-    width: 49.5%;
-}
-
-.order-shipping-address,
-.order-shipping-method,
-[class*="-order-"] .order-totals,
-[class*="-order-"] .order-account-information,
-[class*="-order-"] .order-shipping-address,
-[class*="-order-"] .order-payment-method-virtual,
-[class*="-order-"] .order-shipping-method,
-[class^=" adminhtml-rma-"] .rma-confirmation,
-[class^=" adminhtml-rma-"] .order-shipping-method,
-[class^=" adminhtml-rma-"] .order-return-address {
-    float: right;
-    width: 49%;
-}
-
-[class*="-order-"] {
-    .order-card-validation {
-        width: 49.5%;
-        box-sizing: border-box;
-
-        .actions {
-            margin-top: 17px;
-        }
-    }
-    .order-totals {
-        .field.choice {
-            margin: 20px 0;
-        }
-    } 
-}
-
-#order-data .order-account-information {
-    float: none;
-    width: auto;
-}
-
-[class^=" sales-"] .order-information .fieldset-wrapper > .fieldset-wrapper-title .title {
-    width: 100%;
-}
-
-#order-data .actions .action-add,
-#order-data .actions .action-delete,
-#order-customer-selector .actions .action-add {
-    margin: 0 0 0 20px;
-}
-
-#order-data .order-methods ul {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-#order-data .order-methods dl,
-#order-data .order-methods dt,
-#order-data .order-methods dd,
-#order-data .payment-methods dl,
-#order-data .payment-methods dt,
-#order-data .payment-methods dd {
-    margin: 0;
-    padding: 0;
-}
-
-#order-data .order-methods dd + dt,
-#order-data .payment-methods dd + dt {
-    margin-top: 17px;
-}
-
-#order-data .order-methods dt,
-#order-data .payment-methods dt {
-    margin: 0 0 8px;
-}
-
-.order-coupons .box-left,
-.order-gift-options .box-left {
-    float: left;
-    width: 49%;
-}
-
-.order-coupons .box-right,
-.order-gift-options .box-right {
-    float: right;
-    width: 49%;
-}
-
-.order-gift-options .box-left:last-child,
-.order-gift-options .fieldset-wrapper-title + .box-right {
-    float: none;
-    width: auto;
-}
-
-.order-coupons .content {
-    .action- {
-        vertical-align: top;
-    }
-    input[type="text"] {
-        height: 28px;
-    }
-}
-
-.order-gift-options {
-    fieldset {
-        border-radius: 5px;
-    }
-
-    .gift-wrapping-form select {
-        margin-left: 10px;
-    }
-
-    .giftmessage-entire-order textarea {
-        height: 6em;
-        width: 100%;
-    }
-
-    .giftmessage-whole-order-container {
-        textarea {
-            height: 6em;
-            width: 100%;
-        }
-        .actions {
-            margin-left: 20%;
-        }
-    }
-}
-
-.ui-dialog.gift-options-popup .ui-dialog-content {
-    padding: 25px;
-}
-
-.ui-dialog.gift-options-popup .ui-dialog-content h4 {
-    margin: 0 0 17px;
-}
-
-.gift-options-tooltip {
-    background: #fff;
-    border-radius: 5px;
-    padding: 10px;
-    box-shadow: 0 0 3px rgba(0, 0, 0, .3);
-}
-
-#order-data .box-left fieldset,
-#order-data .box-right fieldset {
-    border-radius: 5px;
-}
-
-.adminhtml-rma-new .order-totals,
-.order-comments-history .order-comments-history,
-[class^=" adminhtml-rma-"] .rma-comments-history {
-    float: none;
-    width: 100%;
-}
-
-[class*="-order-"] .order-billing-address .actions,
-[class*="-order-"] .order-shipping-address .actions {
-    margin: 17px 0;
-}
-
-[class*="-order-"] .order-billing-address .control + label,
-[class*="-order-"] .order-shipping-address .control + label {
-    margin: 17px 0 0;
-}
-
-.sales-order-create-index #order-message .messages .message,
-.sales-order-edit-index #order-message  .messages .message {
-    margin: 0 0 60px;
-}
-
-//
-//    Sales -> Create Order
-// --------------------------------------
-.sales-order-create-index {
-
-}
-
-.sales-order-create-index .order-items.fieldset-wrapper,
-.sales-order-create-index .order-search-items.fieldset-wrapper,
-.sales-order-create-index .order-additional-area.fieldset-wrapper,
-.sales-order-create-index .order-errors,
-.checkout-index-index .checkout-errors {
-    .fieldset-wrapper-title {
-        border-bottom: 0;
-        margin: 0;
-    }
-    .title {
-        border-bottom: 1px solid #cac3b4;
-        margin: 0 0 18px;
-        width: 100%;
-    }
-}
-
-[class*="-order-"] {
-    .fieldset-wrapper-title {
-        .actions {
-            float: right;
-            padding: 0;
-            a:link,
-            a:visited,
-            a:hover,
-            a:active {
-                color: #a29c94;
-            }
-        }
-    }
-    .order-customer-selector .fieldset-wrapper-title .actions {
-        padding-top: 8px;
-    }
-    .order-details .fieldset-wrapper-title .actions {
-        padding-bottom: 15px;
-    }
-}
-
-.sales-order-create-index {
-    // Configure product popup
-    .ui-dialog {
-        // Virtual and downloadable product
-        .downloadable.information .link {
-            .label {
-                margin-left: 0;
-            }
-            .nested {
-                margin-left: 8px;
-            }
-        }
-        // Bundle product
-        .fieldset.bundle {
-            .nested {
-                padding-left: 6px;
-                .field {
-                    margin: 0 0 5px;
-                }
-                .label {
-                    font-size: 13px;
-                    margin: 0;
-                }
-                .qty .control {
-                    display: inline-block;
-                    margin: 0 0 0 10px;
-                    width: 60px;
-                }
-            }
-        }
-    }
-    .order-billing-method {
-        .payment-methods {
-            .fieldset {
-                padding: 0;
-                margin: 0;
-                .field {
-                    margin: 0 0 12px 0;
-                }
-            }
-        }
-    }
-    .grid .action-configure {
-        float: right;
-        &.disabled {
-            cursor: default;
-            opacity: .5;
-            &:hover {
-                text-decoration: none;
-            }
-        }
-    }
-    .order-items.fieldset-wrapper {
-        .clearfix();
-    }
-}
-
-.summary-total {
-    .summary-collapse {
-        cursor: pointer;
-        display: inline-block;
-        &:before {
-            @iconsize: 16px;
-            content: "\e02d";
-            color: #816063;
-            background: #f2ebde;
-            display: inline-block;
-            text-indent: 0;
-            font-size: @iconsize;
-            width:@iconsize;
-            height:@iconsize;
-            line-height: @iconsize;
-            overflow: hidden;
-            font-family: 'MUI-Icons';
-            border:1px solid #ada89e;
-            font-style: normal;
-            vertical-align: top;
-            margin-right:7px;
-            font-weight: normal;
-            speak: none;
-            -webkit-font-smoothing: antialiased;
-            border-radius: 2px;
-        }
-        &:hover:before {
-            background: #cac3b4;
-        }
-    }
-    &.show-details .summary-collapse:before {
-        content: "\e03a";
-    }
-}
-
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) td,
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(even) td,
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(even) td {
-    background:  #fbfaf6;
-}
-
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(odd) td,
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(odd) td,
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) td {
-    background: #fff;
-}
-
-/* ----------------------------------- */
-
-#order-data .page-actions {
-    padding-top: 0;
-}
-
-// #order-data .store-switcher {
-//     margin: -46px 0 0;
-//     position: relative;
-//     width: 50%;
-// }
-
-.create-order-sidebar-container > div + div {
-    border-top: 1px solid #cac3b4;
-    margin-top: 35px;
-}
-
-.create-order-sidebar-container > div .head h5 {
-    .style9();
-    margin: 17px 0 17px;
-}
-
-.customer-current-activity-inner > h4 {
-    .style10();
-    border-bottom: 1px solid #cac3b4;
-    margin-top: 0;
-    padding: 0 0 16px;
-}
-
-.customer-current-activity-inner .auto-scroll {
-    margin-right: -18px;
-    margin-left: -18px;
-    .no-items {
-        padding: 5px 18px;
-        display: block;
-    }
-}
-.customer-current-activity-inner .data-table {
-    thead {
-        background-color: transparent;
-    }
-    thead th {
-        background-color: transparent;
-        .style18();
-        border: 0;
-        &:first-child {
-            padding-left: 18px;
-        }
-        &:last-child {
-            padding-right: 18px;
-        }
-    }
-    tbody tr {
-        td {
-            background-color: transparent;
-            border: 0;
-            &:first-child {
-                padding-left: 18px;
-            }
-            &:first-child {
-                padding-right: 18px;
-            }
-        }
-        &:nth-child(2n + 1) td {
-            background: #e0dace;
-        }
-    }
-}
-.customer-current-activity .action-refresh {
-    float: right;
-}
-
-.customer-current-activity .action-refresh,
-.customer-current-activity .data-table .icon {
-    display: inline-block;
-    text-indent: 100%;
-    overflow: hidden;
-    height: 16px;
-    width: 16px;
-    line-height: 16px;
-    white-space: nowrap;
-}
-
-.customer-current-activity .action-refresh:before,
-.customer-current-activity .data-table .icon:before {
-    content: "\e010";
-    color: #c3c2be;
-    display: block;
-    text-indent: 0;
-    font-size: 16px;
-    line-height: 16px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-}
-
-.customer-current-activity .data-table .icon-remove:before {
-    content: "\e07f";
-}
-
-.customer-current-activity .data-table .icon-add:before {
-    content: "\e071";
-}
-
-.customer-current-activity .auto-scroll {
-    .style18();
-    overflow: auto;
-    max-height: 150px;
-}
-
-.customer-current-activity .auto-scroll + button {
-    margin: 22px 0 0;
-}
-
-.customer-current-activity .actions {
-    border-top: none;
-    margin: 20px 0 0;
-    padding: 0;
-}
-
-.overlay {
-    background: rgba(255, 255, 255, .5);
-    border-radius: 5px;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-
-    span {
-        color: #111;
-        font-weight: bold;
-        position: absolute;
-        top: 56px;
-        left: 0;
-        margin: 0 8px;
-        padding: 10px;
-        background: #fff;
-    }
-}
-
-//
-//    Order view
-// --------------------------------------
-
-.order-comments-history fieldset {
-    border: 0;
-    margin: 0;
-    padding: 0;
-}
-
-.order-comments-history textarea,
-.rma-history-form textarea {
-    height: 6em;
-    margin: 5px 0 10px;
-    resize: vertical;
-    width: 100%;
-}
-
-.order-comments-history input[type="checkbox"] {
-    margin-right: 5px;
-}
-
-.order-history-comments-options {
-    float: left;
-}
-
-.order-comments-history .actions {
-    float: right;
-}
-
-[class*="-order-"] .fieldset-wrapper address {
-    overflow: auto;
-}
-
-//
-//    Orders comments
-//--------------------------------------
-.note-list {
-    list-style: none;
-    padding: 0;
-    li {
-        border-top: 1px solid #ededed;
-        padding: 9px 0;
-        &:first-child {
-            border: 0;
-            padding-top: 13px;
-        }
-    }
-    div {
-        font-size: 12px;
-    }
-    .note-list-date,
-    .note-list-status,
-    .note-list-customer span {
-        font-weight: bold;
-    }
-    .note-list-time,
-    .note-list-status {
-        border-right: 1px solid #676056;
-        padding: 0 5px 0 0;
-        margin: 0 5px 0 0;
-    }
-    .note-list-customer {
-        white-space: nowrap;
-    }
-    .note-list-comment {
-        margin: 5px 0 0;
-    }
-    .note-list-customer-notapplicable {
-        color: #d87e34;
-    }
-    .note-list-customer-notified {
-        color: #185b00;
-    }
-    .note-list-customer-not-notified {
-        color: #963535;
-    }
-}
-
-[class^=" sales-"] tr.headings .col-parent-transaction-id > span,
-[class^=" sales-"] tr.headings .col-method > span,
-[class^=" sales-"] tr.headings .col-transaction-id > span,
-[class^=" sales-"] tr.headings .col-transaction-type > span,
-[class^=" sales-"] tr.headings .col-gtbase > span,
-[class^=" sales-"] tr.headings .col-gtpurchased > span,
-[class*="-order-"] tr.headings .col-discont > span {
-    white-space: normal;
-}
-
-[class^=" sales-"] .col-2-left-layout .hor-scroll {
-    margin-bottom: -4px;
-    overflow: auto;
-    padding-bottom: 4px;
-    width: 100%;
-}
-
-[class*="-order-"] .col-price .label,
-[class*="-order-"] .col-subtotal .label {
-    display: inline-block;
-    min-width: 60px;
-    white-space: nowrap;
-}
-
-[class*="-order-"] .item-options {
-    margin: 5px 0 5px 10px;
-    dt {
-        font-weight: bold;
-    }
-    dd {
-        margin: 0 0 0 10px;
-    }
-}
-
-.adminhtml-rma-item-attribute-edit .col-position input {
-    text-align: center;
-}
-
-.order-subtotal .label {
-    text-align: right;
-}
-
-.items-to-invoice {
-    border: 1px solid #c0bbaf;
-    margin-top: 13px;
-    width: 100%;
-}
-
-.items-to-invoice td,
-table.items-to-invoice tbody tr:hover td {
-    background-color: #e6e3de;
-    border: 0;
-    text-align: center;
-}
-
-[class~=" -order-creditmemo-"] .no-items {
-    padding-top: 13px;
-    text-align: center;
-}
-
-.items-to-invoice .grand-total {
-    color: #19a3d1;
-    font-weight: bold;
-}
-
-.adminhtml-order-shipment-new .order-totals .fieldset-wrapper {
-    padding-top: 18px;
-}
-
-.creditmemo-totals .data-table input[type="text"] {
-    text-align: right;
-    width: 60px;
-}
-
-[class*="-order-"] .order-subtotal .label {
-    width: 80%;
-}
-
-[class^=" adminhtml-rma-"] .rma-items th.col-qty span,
-.adminhtml-rma-edit .rma-items th.col-qty span {
-    text-align: left;
-    white-space: normal;
-}
-
-.adminhtml-rma-edit .data-table .col-carrier,
-[class^=" sales-billing-agreement-"] .log-details .data-table th {
-    width: 20%;
-}
-
-.adminhtml-rma-edit .data-table .col-title {
-    width: 35%;
-}
-
-.adminhtml-rma-edit .data-table .col-number {
-    width: 25%;
-}
-
-[class*="-order-"] .order-shipping-address .price,
-.order-shipping-address .shipping-description-title {
-    font-weight: bold;
-}
-
-[class^=" adminhtml-rma-"] .col-actions a {
-    cursor: pointer;
-    white-space: nowrap;
-}
-
-[class^=" adminhtml-rma-"] .col-reason input[type="text"] {
-    margin: 5px 0 0;
-    width: 100%;
-}
-
-[class^=" adminhtml-rma-"] .col-actions .separator {
-    margin: 0 3px;
-}
-
-[class^=" sales-"] .order-payment-method .data-table {
-    margin-top: 15px;
-}
-
-[class^=" sales-"] .order-payment-currency {
-    margin-top: 15px;
-}
-
-[class^=" sales-"] .grid .data {
-    border-bottom: 1px solid #c0bbaf;
-}
-
-[class^=" sales-"] .grid td .option-label {
-    font-weight: bold;
-}
-
-[class^=" sales-"] .grid td .option-value {
-    margin: 0 0 0 10px;
-}
-
-.col-product .product_to_add {
-    float: right;
-}
-
-[class^=" adminhtml-extension-custom-"] {
-    #authors_fieldset .data-table td {
-        vertical-align: top;
-    }
-}
-
-//
-//    Orders refund
-//--------------------------------------
-.field-refund-store-credit {
-    .input-text {
-        text-align: right;
-        width: 60px;
-    }
-}
-
-//
-//    Packaging for Shipping Popup
-// --------------------------------------
-#popup-window-mask,
-.popup-window-mask {
-    background: rgba(0, 0, 0, .5);
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    z-index: 999;
-}
-
-.packaging-window,
-.packed-window {
-    background: #fff;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
-    left: 50%;
-    margin: -200px 0 0 -471px;
-    position: fixed;
-    top: 50%;
-    width: 1000px;
-    z-index: 1000;
-}
-
-.packaging-window .entry-edit-head {
-    padding: 3px 5px;
-}
-
-.packaging-window .messages {
-    padding: 10px 26px 10px 32px;
-    border-radius: 0;
-    color: #963535;
-    text-shadow: none;
-    position: relative;
-    background: #f3dcd8;
-    border: 1px solid #963535;
-    margin-top: -1px;
-}
-
-.packaging-window .messages:before {
-    position: absolute;
-    left: 8px;
-    top: 50%;
-    margin-top: -11px;
-    background: none;
-    text-shadow: none;
-    width: auto;
-    height: auto;
-    border: 0;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    font-size: 16px;
-    content: '\e069';
-    color: #963535;
-}
-
-.packaging-window .validation-failed {
-    background: #fef0ed;
-    border: 1px dashed #d6340e;
-}
-
-.packaging-window {
-    .packaging-content {
-        overflow: auto;
-        overflow-x: hidden;
-        height: auto !important;
-        max-height: 400px;
-        .measures {
-            width: 50px;
-        }
-        .options-weight {
-            vertical-align: top;
-        }
-    }
-}
-
-.packaging-window .package-options {
-    width: 100%;
-    border-top: 1px solid #ccc;
-    padding: 10px 0 0;
-    margin: 3px 0 0;
-}
-
-.packaging-window .package-options td {
-    vertical-align: middle;
-}
-
-.packaging-window .package-options .input-text {
-    width: 50px;
-}
-
-.packaging-window .package_prapare {
-    margin-bottom: 15px;
-}
-
-.packaging-window .package-options .customs-value {
-    width: 80px;
-}
-
-.packaging-window .package-options .options-weight {
-    width: 75px;
-}
-
-.packaging-window .package-options .options-units-weight {
-    width: 45px;
-}
-
-.packaging-window .package-options .options-units-dimensions {
-    width: 45px;
-}
-
-.packaging-window .package-options .options-content-type {
-    width: 120px;
-}
-
-.packaging-window .package-options input[type=text].disabled,
-.packaging-window .package-options select.disabled {
-    background: #eee;
-}
-
-.packaging-window .package-options-contents {
-    border-top: 0;
-}
-
-.packaging-window .package-add-products {
-    margin: 20px 0 0;
-}
-
-.packaging-window .package-add-products .grid {
-    padding: 0;
-}
-
-.packaging-window .package-add-products .grid button {
-    vertical-align: middle;
-}
-
-.packaging-window .package-number {
-    font-weight: bold;
-}
-
-.packaging-window .package-number span {
-    margin-left: 5px;
-}
-
-.packed-window .entry-edit-head {
-    padding: 3px 5px;
-}
-
-.packed-window .packed-content {
-    padding: 10px 10px 0;
-    overflow: auto;
-    max-height: 400px;
-}
-
-.packed-window .package {
-    border-top: 1px solid #ededed;
-    margin-bottom: 30px;
-    padding: 10px;
-}
-
-.packed-window .package:first-child {
-    border-top: 0;
-}
-
-.package-info {
-    background: #e6e3de;
-    border: 1px solid #c0bbaf;
-}
-
-.package-info th {
-    font-weight: bold;
-}
-
-.packed-window .package-info table tbody tr td,
-.packed-window .package-info table tbody tr th,
-.package-info table tbody tr:nth-child(2n+1) td,
-.package-info table tbody tr:nth-child(2n+1) th {
-    background: none;
-    border: 0;
-    padding: 5px 5px 2px;
-}
-
-.packed-window .package .grid {
-    padding: 0;
-}
-
-.packed-window .package-options {
-    width: 60%;
-}
-
-.packed-window .package-options td,
-.packed-window .package-options th {
-    padding: 1px 0;
-}
-
-.grid .popup-window {
-    text-align: left;
-}
-
-.grid tr.on-mouse td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
-.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
-.grid table tbody tr.on-mouse:hover td .popup-window .data-table tbody tr:nth-child(2n+1),
-.grid table tbody tr.on-mouse:hover th .popup-window .data-table tbody tr:nth-child(2n+1) {
-    background-color: #fbfaf6;
-}
-
-.grid .popup-window {
-    text-align: left;
-}
-
-.popup-window-buttons-set {
-    text-align: right;
-    padding: 25px;
-}
-
-.popup-window-title {
-    background: #f3efea;
-    padding: 19px 20px;
-}
-
-.popup-window-title .title {
-    color: #676056;
-    display: block;
-    font-size: 20px;
-    line-height: 1;
-}
-
-.popup-window-title .actions {
-    float: right;
-}
-
-.popup-window-content {
-    padding: 25px 25px 0;
-}
-
-.popup-window-content > ul {
-    list-style: none;
-    padding: 0;
-}
-
-.packaging-window .col-weight {
-    text-align: left;
-    width: 60px;
-}
-
-.packaging-window .col-qty {
-    text-align: left;
-    width: 80px;
-}
-
-.packed-window .col-qty,
-.packed-window .col-weight,
-.packed-window .col-qty_ordered {
-    text-align: right;
-    width: 70px;
-}
-
-.packaging-window .col-select,
-.packaging-window .col-measure {
-    text-align: center;
-    width: 35px;
-}
-
-.popup-fieldset-title .title {
-    color: #666;
-    display: inline-block;
-    font-size: 18px;
-    font-weight: normal;
-    padding: 7px 0 10px;
-}
-
-.popup-fieldset-title .actions {
-    float: right;
-}
-
-.packaging-window select {
-    margin-bottom: 0;
-}
-
-.packaging-window .col-width,
-.packaging-window .col-height,
-.packaging-window .col-length,
-.packaging-window .data-table .col-total-weight input[type="text"],
-.packaging-window .data-table .col-custom input[type="text"] {
-    width: 60px;
-}
-
-.packaging-window .col-total-weight {
-    white-space: nowrap;
-    width: 100px;
-}
-
-.packaging-window .col-signature {
-    width: 160px;
-}
-
-.packaging-window .data-table .col-actions,
-.packaging-window .col-total-weight,
-.packaging-window .data-table .col-custom {
-    white-space: nowrap;
-}
-
-.packaging-window .data-table .action-delete {
-    margin: 5px 0 0 5px;
-}
-
-.packaging-window .grid tr th {
-    border-bottom: 1px solid #c9c2b8;
-}
-
-.packaging-window .grid tr th:first-child,
-.packaging-window .grid td:first-child,
-.packaging-window .grid td:last-child {
-    border-left: 0;
-    border-right: 0;
-}
-
-.packaging-window .data-table .col-qty-edit {
-    white-space: nowrap;
-    width: 50px;
-}
-
-.packaging-window .data-table .col-qty-edit input[type="text"] {
-    width: 50px;
-}
-
-.sp-methods > dt {
-    font-weight: bold;
-}
-
-.sp-methods > dd {
-    margin: 5px 0 5px 15px;
-}
-
-.sp-methods > dd > ul {
-    list-style: none;
-    padding: 0;
-}
-
-[class*="-order-"] .order-billing-address .packaging-window .actions,
-[class*="-order-"] .order-shipping-address .packaging-window .actions {
-    margin: 0;
-}
-
-/*
-    Popup Configuration Popup
--------------------------------------- */
-#product_composite_configure_messages {
-    margin-left: 0 !important;
-    padding: 10px 15px;
-}
-
-.rma-popup, .cms-popup {
-    background: #fff;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
-    cursor: default;
-    position: fixed;
-    left: 50%;
-    top: 50%;
-    z-index: 1000;
-}
-
-.rma-popup {
-    width: 540px;
-    margin: 0 0 0 -271px;
-}
-
-.rma-popup .entry-edit .fieldset {
-    border: none;
-}
-
-.rma-popup .validation-advice,
-.rma-popup label.mage-error {
-    margin-left: 0;
-}
-
-.rma-popup .content {
-    background: #fff;
-    border-bottom: 1px solid #ccc;
-    max-height: 400px;
-    overflow: auto;
-}
-
-.rma-popup .content .grid {
-    padding: 0;
-}
-
-.rma-popup .content .grid table {
-    border-bottom: 1px solid #cbd3d4;
-}
-
-.rma-popup .product-options {
-    border-bottom: 1px solid #e7e7e7;
-    margin: 0 0 15px;
-    padding: 0 0 12px;
-}
-
-.rma-popup .product-options .required {
-    color: #333 !important;
-    font-weight: normal !important;
-}
-
-.rma-popup .product-options .required em {
-    color: #d40707;
-}
-
-.rma-popup .last-fieldset .product-options {
-    border: 0 none;
-    margin-bottom: 0;
-    padding-bottom: 0;
-}
-
-.rma-popup .buttons-set {
-    text-align: right;
-    margin: 0;
-    overflow: hidden;
-    padding: 7px 10px 8px;
-}
-
-.rma-popup .buttons-set {
-    width: 518px;
-}
-
-.cms-popup .buttons-set {
-    width: 289px;
-}
-
-.rma-popup .buttons-set button {
-    margin: 0 0 0 5px;
-}
-
-.grid .rma-popup .form-list tr,
-.grid tr.even .rma-popup .form-list tr,
-.grid tr.on-mouse .rma-popup .form-list tr {
-    background: #fff !important;
-}
-
-/*
-    URL rewrite
--------------------------------------- */
-.adminhtml-urlrewrite-edit .field-entity-type-selector .label {
-    width: auto;
-}
-
-/*
-    Shopping Cart Price Rule
--------------------------------------- */
-.fieldset .field-coupon_code,
-.fieldset .field-rule_use_auto_generation {
-    margin-bottom: 0;
-}
-
-.field-rule_use_auto_generation .label {
-    margin-left: 5px;
-}
-
-.field-rule_use_auto_generation .nested {
-    margin-bottom: 29px;
-}
-
-/*
-    Product Image Placeholders
--------------------------------------- */
-#catalog_placeholder .input-file,
-#catalog_placeholder .delete-image > input {
-    margin-right: 5px;
-}
-
-/* Permanent Redirect for old URL */
-.control > [name="product[url_key_create_redirect]"],
-.control > [name="general[url_key_create_redirect]"] {
-    float: left;
-    margin: 8px 5px 0 0;
-}
-
-.control > [name="product[url_key_create_redirect]"] + .label,
-.control > [name="general[url_key_create_redirect]"] + .label {
-    width: auto;
-}
-
-/*
-    New Product Attribute Set
--------------------------------------- */
-.field-skeleton_set .select {
-    width: 100%;
-}
-
-#affected-attribute-set-form .fieldset .field {
-    margin-bottom: 12px;
-
-    &:last-child {
-        margin-bottom: 0;
-    }
-}
-
-/*
-    Cache Management
--------------------------------------- */
-.additional-cache-management .label {
-    margin-top: 5px;
-}
-
-/*
-    Categories
--------------------------------------- */
-.category-content .form-inline.permissions-custom-options {
-    .messages {
-        li {
-            margin-top: 0;
-        }
-    }
-    .data-table {
-        margin-bottom: 25px;
-    }
-}
-
-/*
-    Marketing - Email Reminders
--------------------------------------- */
-.lt-1280 .adminhtml-reminder-edit #customerGrid .grid .filter .range div.date {
-    min-width: 0;
-}
-
-/*
-    Customers - Manage Shopping Cart
--------------------------------------- */
-.checkout-index-index {
-    .products-search {
-        margin-top: 35px;
-        > .actions {
-            text-align: right;
-            margin: 10px 0;
-        }
-    }
-    .shopping-cart-items {
-        > .actions {
-            margin-bottom: 15px;
-        }
-        .box-left,
-        .box.right {
-            width: 49%;
-            fieldset {
-                border-radius: 5px;
-            }
-        }
-        .box-left {
-            float: left;
-        }
-        .box.right {
-            float: right;
-        }
-    }
-    .grid table .action-configure {
-        float: right;
-    }
-}
-
-/*
-    Clearfix
--------------------------------------- */
-.shopping-cart-items:before,
-.shopping-cart-items:after,
-.image-panel:before,
-.image-panel:after,
-.images:before,
-.images:after,
-.tax-rate-popup .field:before,
-.tax-rate-popup .field:after,
-.clearfix:before,
-.clearfix:after,
-#tab_content_downloadableInfo .data-table td .row:before,
-#tab_content_downloadableInfo .data-table td .row:after {
-    content: "";
-    display: table;
-}
-
-.shopping-cart-items:after,
-.image-panel:after,
-.images:after,
-.tax-rate-popup .field:after,
-.clearfix:after,
-#tab_content_downloadableInfo .data-table td .row:after {
-    clear: both;
-}
-
-@import "../less/styles/debug.less";
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_actions.less b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less
new file mode 100644
index 0000000000000000000000000000000000000000..f74a3ca904a394d1463ebb48c2df431a71e0e896
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less
@@ -0,0 +1,235 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Imports
+//  _____________________________________________
+
+@import 'actions/_actions-split.less';
+
+//
+//  Variables
+//  _____________________________________________
+
+//  Base button
+@button__background-color: @color-gray89;
+@button__border-color: @color-gray68;
+@button__color: @color-brownie;
+@button__font-family: @font-family__base;
+@button__font-size: @font-size__base;
+@button__padding-top: .5em;
+@button__padding-bottom: .57em;
+@button__padding-horizontal: 1em;
+@button__padding-vertical__l: .6875em;
+
+@button__active__background-color: darken(@button__background-color, 5%);
+@button__hover__background-color: darken(@button__background-color, 3%);
+@button__hover__border-color: @color-blue-pure;
+@button__hover__box-shadow: 0 0 0 1px @button__hover__border-color;
+
+@button__large__font-size: 1.6rem;
+@button__large__padding-horizontal: 1.45em;
+@button__large__padding-vertical: .7em;
+
+//  Primary button
+@button-primary__background-color: @primary__color;
+@button-primary__color: @color-white;
+@button-primary__hover__background-color: @color-phoenix-brown-almost;
+@button-primary__hover__border-color: @color-phoenix-brown;
+
+//  Secondary button
+@button-secondary__background-color: @color-brownie;
+@button-secondary__border-color: @color-brownie;
+@button-secondary__color: @color-white;
+@button-secondary__active__background-color: @color-very-dark-gray-black2;
+@button-secondary__hover__background-color: @color-very-dark-gray-black2;
+
+//
+//  Utilities
+//  _____________________________________________
+
+.action-reset () {
+    background-color: transparent;
+    border: none;
+    border-radius: 0;
+    box-shadow: none;
+    margin: 0;
+    padding: 0;
+    &:hover {
+        background-color: transparent;
+        border: none;
+        box-shadow: none;
+    }
+}
+
+//
+//  Extends
+//  _____________________________________________
+
+.abs-action-reset {
+    .action-reset();
+}
+
+.abs-action-pattern {
+    border: 1px solid;
+    border-radius: 0; // ToDo UI: Delete with admin scope
+    display: inline-block;
+    font-family: @button__font-family;
+    font-size: @button__font-size;
+    font-weight: @font-weight__semibold;
+    padding: @button__padding-top @button__padding-horizontal @button__padding-bottom;
+    text-align: center;
+    vertical-align: baseline; // ToDo UI: Delete with admin scope
+    &[disabled],
+    &.disabled {
+        cursor: default;
+        opacity: @disabled__opacity;
+        pointer-events: none;
+    }
+}
+
+.abs-action-l {
+    font-size: @font-size__l;
+    letter-spacing: .025em;
+    padding-bottom: @button__padding-vertical__l;
+    padding-top: @button__padding-vertical__l;
+}
+
+.abs-action-default {
+    .action-default();
+}
+
+.abs-action-primary {
+    .action-primary();
+}
+
+.abs-action-secondary {
+    .action-secondary();
+}
+
+.abs-action-tertiary {
+    .action-tertiary();
+}
+
+.abs-action-quaternary {
+    .action-quaternary();
+}
+
+//
+//  Default action
+//  ---------------------------------------------
+
+.action-default,
+button {
+    &:extend(.abs-action-pattern all);
+    background: @button__background-color;
+    border-color: @button__border-color;
+    color: @button__color;
+    &:hover {
+        background-color: @button__hover__background-color;
+        color: @button__color;
+        text-decoration: none;
+    }
+}
+
+//
+//  Primary action
+//  ---------------------------------------------
+
+.action-primary {
+    &:extend(.abs-action-pattern all);
+    background-color: @button-primary__background-color;
+    border-color: @button-primary__background-color;
+    color: @button-primary__color;
+    text-shadow: 1px 1px 0 rgba(0, 0, 0, .25);
+    &:hover,
+    &:active {
+        background-color: @button-primary__hover__background-color;
+        border-color: @button-primary__hover__border-color;
+        box-shadow: @button__hover__box-shadow;
+        color: @button-primary__color;
+        text-decoration: none;
+    }
+    &.disabled,
+    &[disabled] {
+        cursor: default;
+        opacity: @disabled__opacity;
+        pointer-events: none;
+    }
+}
+
+//
+//  Secondary action
+//  ---------------------------------------------
+
+.action-secondary {
+    &:extend(.abs-action-pattern all);
+    background-color: @button-secondary__background-color;
+    border-color: @button-secondary__border-color;
+    color: @button-secondary__color;
+    text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
+    &:hover,
+    &:active {
+        background-color: @button-secondary__hover__background-color;
+        box-shadow: @button__hover__box-shadow;
+        color: @button-secondary__color;
+        text-decoration: none;
+    }
+    &:active {
+        background-color: @button-secondary__active__background-color;
+    }
+}
+
+//
+//  Tertiary action & Quaternary action
+//  ---------------------------------------------
+
+.action-tertiary,
+.action-quaternary {
+    &:extend(.abs-action-pattern all);
+    background-color: transparent;
+    border-color: transparent;
+    text-shadow: none;
+    &:active,
+    &:hover {
+        background-color: transparent;
+        border-color: transparent;
+        box-shadow: none;
+    }
+}
+
+.action-tertiary {
+    color: @link__color;
+    &:active,
+    &:hover {
+        color: @link__hover__color;
+        text-decoration: underline;
+    }
+}
+
+.action-quaternary {
+    color: @text__color;
+    &:active,
+    &:hover {
+        color: darken(@text__color, 10%);
+    }
+}
+
+//
+//  ToDo UI: Button migration
+//  _____________________________________________
+
+button {
+    &:extend(.abs-action-default all);
+    &.primary {
+        &:extend(.abs-action-primary all);
+    }
+    &.secondary {
+        &:extend(.abs-action-secondary all);
+    }
+    &.tertiary {
+        &:extend(.abs-action-tertiary all);
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_alerts.less b/app/design/adminhtml/Magento/backend/web/css/source/_alerts.less
deleted file mode 100644
index 24b82e6fbe64eeec168ba5bf04cc0d470689d7ff..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/_alerts.less
+++ /dev/null
@@ -1,81 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  _____________________________________________
-
-//  Colors
-@alert__background-color: @color-lazy-sunny;
-@alert__color: @color-gray20;
-
-//  Sizes
-@alert__font-size: 1.9rem;
-
-//  States
-@alert-icon__info__color: @color-pure-blue;
-@alert-icon__error__color: @color-phoenix;
-@alert-icon__success__color: @color-green-apple;
-
-//
-//  Messages (Global)
-//  ---------------------------------------------
-
-.messages {
-    margin: 20px 0;
-    > .message:last-child {
-        margin-bottom: 0;
-    }
-}
-
-.message {
-    background: @alert__background-color;
-    color: @alert__color;
-    margin-bottom: 3.5rem;
-    padding: 1.8rem 4rem 1.8rem 1.9rem;
-    position: relative;
-    text-shadow: none;
-
-    &:before {
-        background: none;
-        border: 0;
-        font-family: @icon-font__admin-name;
-        font-size: @alert__font-size;
-        font-style: @font-style__base;
-        font-weight: @font-weight__regular;
-        height: auto;
-        left: 1.9rem;
-        line-height: inherit;
-        margin-top: -1.3rem;
-        position: absolute;
-        speak: none;
-        text-shadow: none;
-        top: 50%;
-        width: auto;
-    }
-    &-info,
-    &.info {
-        padding-left: 5rem;
-        &:before {
-            color: @alert-icon__info__color;
-            content: @icon-info;
-        }
-    }
-    &-error,
-    &.error {
-        padding-left: 5rem;
-        &:before {
-            color: @alert-icon__error__color;
-            content: @icon-error;
-        }
-    }
-    &.success {
-        padding-left: 5rem;
-        &:before {
-            color: @alert-icon__success__color;
-            content: @icon-check-mage;
-        }
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_buttons.less b/app/design/adminhtml/Magento/backend/web/css/source/_buttons.less
deleted file mode 100644
index 80a450bb82c6db33b78ecac601f51947c5ccd8e4..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/_buttons.less
+++ /dev/null
@@ -1,215 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  _____________________________________________
-
-//  Sizes
-@button__font-size__base: 1.4rem;
-@button__padding-vertical__base: .55em;
-@button__padding-horizontal__base: 1em;
-
-//  Colors
-@button__color__base: @color-brownie;
-@button__background-color__base: @color-gray89;
-
-@button-primary__color: @color-white;
-@button-primary__background-color: @color-phoenix;
-
-@button-secondary__color: @color-white;
-@button-secondary__background-color: @color-brownie;
-@button-secondary__border-color: @color-brownie;
-
-//  ToDo UI: Seems we don't need tertiary color cuz it the same as base
-@button-tertiary__color: @color-gray20;
-@button-tertiary__background-color: @color-gray89;
-@button-tertiary__border-color: @color-gray68;
-
-//  States
-@button__font-size__large: 1.6rem;
-@button__base__large__padding-vertical: .7em;
-@button__base__large__padding-horizontal: 1.45em;
-
-@button__base__hover__background-color: darken(@button__background-color__base, 3%);
-@button__base__hover__box-shadow: 0 0 0 1px @color-dodger-blue;
-@button__base__active__background-color: darken(@button__background-color__base, 5%);
-
-@button-primary__hover__background-color: @color-phoenix-brown;
-@button-primary__hover__border-color: @color-phoenix-brown;
-
-@button-secondary__hover__background-color: @color-very-dark-gray-black2;
-@button-secondary__active__background-color: @color-very-dark-gray-black2;
-
-@button-tertiary__hover_bg-color: @color-lighter-grayish;
-@button-tertiary__hover__border-color: @color-gray56;
-
-//
-//  Common
-//  _____________________________________________
-
-.action {
-    background: @button__background-color__base;
-    border: 1px solid transparent;
-    color: @button__color__base;
-    display: inline-block;
-    font-family: @font-family__base;
-    font-size: @button__font-size__base;
-    font-weight: @font-weight__regular;
-    padding: @button__padding-vertical__base @button__padding-horizontal__base;
-    text-align: center;
-    vertical-align: middle;
-    &:hover {
-        background-color: @button__base__hover__background-color;
-        .css(box-shadow, @button__base__hover__box-shadow);
-        color: @button__color__base;
-        text-decoration: none;
-    }
-    &:active {
-        background-color: @button__base__active__background-color;
-    }
-    &[disabled],
-    &.disabled {
-        cursor: default;
-        opacity: @opacity-disabled;
-        pointer-events: none;
-    }
-}
-
-.action-large {
-    font-size: @button__font-size__large;
-    padding: @button__base__large__padding-vertical @button__base__large__padding-horizontal;
-}
-
-//
-//  Buttons
-//  _____________________________________________
-
-//
-//  Link button
-//  ---------------------------------------------
-
-.action-link {
-    background-color: transparent;
-    border: none;
-    color: @color-link;
-    font-family: @font-family__base;
-    font-size: 1.4rem;
-    &:hover,
-    &:active {
-        background-color: transparent;
-        border-color: transparent;
-        color: @color-link-hover;
-        text-decoration: underline;
-    }
-}
-
-//
-//  Primary button
-//  ---------------------------------------------
-
-.action-primary {
-    background-color: @button-primary__background-color;
-    color: @button-primary__color;
-    text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
-    &:hover,
-    &:active {
-        background-color: @button-primary__hover__background-color;
-        border-color: @button-primary__hover__border-color;
-        color: @button-primary__color;
-    }
-    &.disabled,
-    &[disabled] {
-        cursor: default;
-        opacity: @opacity-disabled;
-        pointer-events: none;
-    }
-}
-
-//
-//  Secondary button
-//  ---------------------------------------------
-
-.action-secondary {
-    background-color: @button-secondary__background-color;
-    border-color: @button-secondary__border-color;
-    color: @button-secondary__color;
-    text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
-    &:hover,
-    &:active {
-        background-color: @button-secondary__hover__background-color;
-        color: @button-secondary__color;
-    }
-    &:active {
-        background-color: @button-secondary__active__background-color;
-    }
-}
-
-//
-//  Default button
-//  ---------------------------------------------
-
-.action-reset {
-    background-color: transparent;
-    border-color: transparent;
-    color: @color-gray20;
-    &:hover,
-    &:active {
-        background-color: transparent;
-    }
-}
-
-//
-//  Tertiary button
-//  ---------------------------------------------
-
-.action-tertiary {
-    background: @button-tertiary__background-color;
-    border-color: @button-tertiary__border-color;
-    color: @button-tertiary__color;
-    &:hover,
-    &:active {
-        background-color: @button-tertiary__hover_bg-color;
-        border-color: @button-tertiary__hover__border-color;
-    }
-}
-
-//
-//  Split button
-//  ---------------------------------------------
-
-.actions-split {
-    .dropdown-split(
-        @_toggle-selector: ~".action-toggle",
-        @_button-selector: ~".action-default",
-        @_options-selector :  ~".dropdown-menu",
-        @_dropdown-split-button-border-radius-fix: true,
-        @_dropdown-split-list-min-width: 175px,
-        @_icon-font-size: 40px,
-        @_icon-font-line-height: 14px,
-        @_icon-font-vertical-align: middle
-    );
-    &:hover {
-        &:not(.disabled) {
-            .css(box-shadow, @button__base__hover__box-shadow);
-        }
-    }
-    vertical-align: middle;
-    button {
-        margin-left: 0;
-        &.action-toggle {
-            border-left: 1px solid #c34706;
-            padding: @button__padding-vertical__base 0;
-        }
-        &.action-large {
-            &.action-toggle {
-                padding: @button__base__large__padding-vertical 0;
-            }
-        }
-        &:hover {
-            box-shadow: none;
-        }
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less b/app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less
new file mode 100644
index 0000000000000000000000000000000000000000..b44e8820d1c991e8c60bc2e8df245827f3fad819
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_calendar-temp.less
@@ -0,0 +1,388 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+// ToDo UI Align variables after complete migration to new styles
+@import 'lib/_lib.less';
+
+//
+//  Variables
+//  _____________________________________________
+
+@ui-datepicker-calendar__border-color: #adadad;
+@ui-datepicker-icon__color: #514943;
+@ui-datepicker__background: #fff;
+@ui-datepicker__border: 1px solid #007dbd;
+@ui-datepicker__indent: 3px;
+@ui-datepicker__padding: 20px;
+@ui-datepicker__shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);
+
+//
+//  Datepicker control
+//  ---------------------------------------------
+
+.admin__control-text.hasDatepicker {
+    width: 15rem;
+}
+
+.admin__control-text {
+    + .ui-datepicker-trigger {
+        .button-reset();
+        .icon-font(
+            @icon-calendar,
+            @_icon-font-size: 3.8rem,
+            @_icon-font-line-height: 33px,
+            @_icon-font-text-hide: true,
+            @_icon-font-position: after,
+            @_icon-font-color: @ui-datepicker-icon__color
+        );
+        height: 3.3rem;
+        overflow: hidden;
+        vertical-align: top;
+        margin-left: -4rem;
+        display: inline-block;
+        img {
+            display: none;
+        }
+    }
+}
+
+//
+//  Container
+//  ---------------------------------------------
+
+.ui-datepicker {
+    box-sizing: border-box;
+    display: none;
+    padding: @ui-datepicker__padding + @ui-datepicker__indent  @ui-datepicker__padding;
+    width: auto;
+    z-index: 999999 !important;
+    &:before {
+        background: @ui-datepicker__background;
+        border: @ui-datepicker__border;
+        bottom: @ui-datepicker__indent;
+        box-shadow: @ui-datepicker__shadow;
+        content: '';
+        display: block;
+        left: 0;
+        position: absolute;
+        right: 0;
+        top: @ui-datepicker__indent;
+        z-index: 0;
+    }
+}
+
+.ui-datepicker-header {
+    padding: 0 0 10px;
+    position: relative;
+    z-index: 1;
+}
+
+//
+//  Previous, next buttons
+//  ---------------------------------------------
+.ui-datepicker-prev,
+.ui-datepicker-next {
+    cursor: pointer;
+    position: absolute;
+    line-height: 3rem;
+    top: 0;
+    span {
+        .visually-hidden();
+    }
+    &:before {
+        color: #514943;
+        font-size: 34px;
+        display: inline-block;
+    }
+}
+
+.ui-datepicker-prev {
+    left: 0;
+    &:before {
+        content: '\2039';
+    }
+}
+
+.ui-datepicker-next {
+    right: 0;
+    &:before {
+        content: '\203A';
+    }
+}
+
+//
+//  Title
+//  ---------------------------------------------
+
+.ui-datepicker .ui-datepicker-title {
+    margin: 0 2.3em;
+    line-height: 1.8em;
+    text-align: center;
+}
+
+.ui-datepicker .ui-datepicker-title select {
+    font-size: 1em;
+    margin: 1px 0;
+}
+
+.ui-datepicker select.ui-datepicker-month-year {
+    width: 100%;
+}
+
+//
+//  Calendar table
+//  ---------------------------------------------
+
+.ui-datepicker table {
+    width: 100%;
+}
+
+.ui-datepicker table.ui-datepicker-calendar {
+    background: #FFFFFF;
+    border-collapse: collapse;
+    border: 0;
+    position: relative;
+    z-index: 1;
+    thead {
+        background: transparent;
+    }
+    tr {
+        background: transparent;
+    }
+    tr th {
+        background: transparent;
+        border: 0;
+        padding: 0;
+        span {
+            font-weight: 700;
+            font-size: 12px;
+            line-height: 28px;
+        }
+    }
+    tr td {
+        background: transparent;
+        border: 1px solid @ui-datepicker-calendar__border-color;
+        padding: 0;
+    }
+    span,
+    a {
+        box-sizing: border-box;
+        color: #514943;
+        display: block;
+        font-size: 14px;
+        font-weight: 600;
+        line-height: 38px;
+        text-align: center;
+        text-decoration: none;
+        width: 38px;
+    }
+    .ui-state-disabled {
+        span {
+            background: #f5f5f5;
+            color: #999999;
+        }
+    }
+    .ui-state-active {
+        background: #514943;
+        color: #fff;
+    }
+    .ui-datepicker-today {
+        a {
+            border: 3px solid @ui-datepicker-calendar__border-color;
+            line-height: 32px;
+        }
+    }
+}
+
+.ui-datepicker .ui-datepicker-buttonpane {
+    overflow: hidden;
+    padding-top: 15px;
+    position: relative;
+    white-space: nowrap;
+    z-index: 1;
+    button {
+        background: #fff;
+        border-radius: 1px;
+        border: 1px solid @ui-datepicker-calendar__border-color;
+        box-sizing: border-box;
+        color: #008bdb;
+        float: left;
+        font-size: 14px;
+        line-height: 38px;
+        padding: 0;
+        text-align: center;
+        width: 49%;
+    }
+    .ui-datepicker-close {
+        float: right;
+    }
+}
+
+.ui-datepicker .ui-datepicker-title .ui-datepicker-month {
+    width: 47%;
+    margin-right: 6%;
+}
+
+.ui-datepicker .ui-datepicker-title .ui-datepicker-year {
+    width: 47%;
+}
+
+.ui-datepicker .ui-datepicker-calendar .ui-datepicker-week-col {
+    text-align: center;
+    border: #cfcfcf 1px solid;
+}
+
+.ui-timepicker-div .ui-widget-header {
+    margin-bottom: 8px;
+}
+
+.ui-timepicker-div dl {
+    text-align: left;
+}
+
+.ui-timepicker-div dl dd {
+    margin: 0 0 10px 65px;
+}
+
+.ui-timepicker-div td {
+    font-size: 90%;
+}
+
+.ui-tpicker-grid-label {
+    background: none;
+    border: none;
+    margin: 0;
+    padding: 0;
+}
+
+.ui-slider {
+    position: relative;
+    text-align: left;
+}
+
+.ui-slider-horizontal .ui-slider-handle {
+    margin-left: -5px;
+}
+
+.ui-slider .ui-slider-handle {
+    position: absolute;
+    z-index: 2;
+    cursor: default;
+}
+
+.ui-slider-horizontal {
+    height: 10px;
+    -webkit-border-radius: 10px;
+    border-radius: 10px;
+    border: none;
+    background: @ui-datepicker-calendar__border-color;
+}
+
+.ui-slider-handle {
+    height: 10px;
+    width: 10px;
+    -webkit-border-radius: 10px;
+    border-radius: 10px;
+    background: @ui-datepicker-icon__color;
+    display: block;
+    position: absolute;
+}
+
+.ui-timepicker-div {
+    padding: 10px 0 5px 0;
+}
+
+.ui-datepicker-rtl {
+    direction: rtl;
+}
+
+.ui-datepicker-rtl .ui-datepicker-prev {
+    right: 2px;
+    left: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-next {
+    left: 2px;
+    right: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+    right: 1px;
+    left: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+    left: 1px;
+    right: auto;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+    clear: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+    float: left;
+}
+
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
+    float: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group {
+    float: right;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
+    border-right-width: 0;
+    border-left-width: 1px;
+}
+
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+    border-right-width: 0;
+    border-left-width: 1px;
+}
+
+.ui-timepicker-div .ui-widget-header {
+    margin-bottom: 8px;
+}
+
+.ui-timepicker-div dl {
+    text-align: left;
+}
+
+.ui-timepicker-div dl dt {
+    height: 25px;
+    margin-bottom: -22px;
+}
+
+.ui-timepicker-div dl .ui_tpicker_time_label {
+    margin-bottom: -25px;
+}
+
+.ui-timepicker-div dl dd {
+    margin: 0 10px 10px 65px;
+}
+
+.ui-timepicker-div td {
+    font-size: 90%;
+}
+
+.ui-tpicker-grid-label {
+    background: none;
+    border: none;
+    margin: 0;
+    padding: 0;
+}
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_components.less b/app/design/adminhtml/Magento/backend/web/css/source/_components.less
index 3fb515d0badf515b7c766e400cd08fc3646813c8..484c72b5326605fe86a005ea8920020401f57d61 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_components.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_components.less
@@ -1,12 +1,10 @@
-/**
- * @category    design
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
 
 //
 //  Components
 //  _____________________________________________
 
-@import 'components/_navigation';
 @import 'components/_spinner';
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_extends.less b/app/design/adminhtml/Magento/backend/web/css/source/_extends.less
index fd9cf80d3f6429d0ffe826706ed103604c14cab9..80094085bd6aafa04cb696c402e271d66b0388d9 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_extends.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_extends.less
@@ -4,36 +4,40 @@
 //  */
 
 //
-//  LESS Extend
-//  ---------------------------------------------
-
-//  Buttons
-button {
-    &:extend(.action all);
+//  Styles Extends
+//  _____________________________________________
 
-    &.primary {
-        &:extend(.action-primary all);
-    }
-
-    &.secondary {
-        &:extend(.action-secondary all);
-    }
+//
+//  Icons
+//  ---------------------------------------------
 
-    &.tertiary  {
-        &:extend(.action-tertiary all);
-    }
+.abs-icon {
+    -webkit-font-smoothing: antialiased;
+    font-family: @icons-admin__font-name;
+    line-height: 1;
+    font-style: normal;
+    font-weight: normal;
+    speak: none;
 }
 
+//
+//  Forms
+//  ---------------------------------------------
+
 //  Validation
 .validation-symbol {
     &:after {
         content: '*';
-        color: @validation-color;
+        color: @validation__color;
         font-weight: @font-weight__regular;
         margin-left: 3px;
     }
 }
 
+//
+//  Other
+//  ---------------------------------------------
+
 //  Visually hidden
 .abs-visually-hidden {
     .visually-hidden();
@@ -52,6 +56,15 @@ button {
     &:extend(.abs-clearfix all);
 }
 
+//  Clearer - clearing container using only :after element
+.abs-clearer {
+    .clearer();
+}
+
+.extend__clearer() {
+    &:extend(.abs-clearer all);
+}
+
 //  Reset list styles
 .abs-list-reset-styles {
     .list-reset-styles();
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less
index 8b726a648e8be92318f35f2c3f359595b820429c..131ae92ae03dee1b4e619d4a5939357de56fa86b 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less
@@ -3,5 +3,8 @@
 //  * See COPYING.txt for license details.
 //  */
 
-@import 'forms/_forms';
-@import 'forms/_selects';
+@import 'forms/_controls.less';
+@import 'forms/_fields.less';
+@import 'forms/_tooltip.less';
+@import 'forms/_temp.less';
+@import 'forms/_dropdown.less';
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_grid.less b/app/design/adminhtml/Magento/backend/web/css/source/_grid.less
index b4b308a89dec8b5d4bc52356838320956fabd19e..f139356abfa2948d91e01fa63dffde477b7067de 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_grid.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_grid.less
@@ -57,3 +57,17 @@
 .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__xl) {
     .make-grid(xl);
 }
+
+//
+//  Gutter
+//  ---------------------------------------------
+
+.row-gutter {
+    margin-left: -(@content__indent / 2);
+    margin-right: -(@content__indent / 2);
+    .col-gutter {
+        padding-left: @content__indent / 2;
+        padding-right: @content__indent / 2;
+    }
+}
+
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_icons.less b/app/design/adminhtml/Magento/backend/web/css/source/_icons.less
index 3b10fc8d99ab51b2122f990bc8d4edccb6fe679f..9c1c8f624ccca2aecba12ace52508dbccde7ad10 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_icons.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_icons.less
@@ -3,298 +3,13 @@
 //  * See COPYING.txt for license details.
 //  */
 
-//
-//  Variables
-//  _____________________________________________
-
-//
-//  Icons
-//  ---------------------------------------------
-
-@icon-info: '\e61a';
-@icon-error: '\e632';
-@icon-check-mage: '\e62d';
-
 //
 //  Admin Theme Icons
-//  ---------------------------------------------
-
-.font-face(
-    @family-name: @icon-font__admin-name,
-    @font-path: @icon-font__admin-path,
-    @font-weight: normal,
-    @font-style: normal
-);
-
-//
-//  Blank Theme Icons
-//  ---------------------------------------------
-
-.font-face(
-    @family-name: @icon-font__blank-name,
-    @font-path: @icon-font__blank-path,
-    @font-weight: normal,
-    @font-style: normal
-);
-
-//
-//  MUI Icons
-//  ---------------------------------------------
+//  _____________________________________________
 
 .font-face(
-    @family-name: @icon-font__mui-name,
-    @font-path: @icon-font__mui-path,
+    @family-name: @icons-admin__font-name,
+    @font-path: @icons-admin__font-name-path,
     @font-weight: normal,
     @font-style: normal
 );
-
-//  Use the following CSS code if you want to use data attributes for inserting your icons
-[data-icon]:before {
-    content: attr(data-icon);
-    font-family: @icon-font__admin-name;
-    -webkit-font-smoothing: antialiased;
-    font-weight: normal;
-    speak: none;
-}
-
-//  Use the following CSS code if you want to have a class per icon
-[class^='icon-']:before,
-[class*=' icon-']:before {
-    font-family: @icon-font__admin-name;
-    -webkit-font-smoothing: antialiased;
-    font-style: normal;
-    font-weight: normal;
-    speak: none;
-}
-
-.icon-info:before {
-    content: @icon-info;
-}
-
-.icon-lock:before {
-    content: '\e61b';
-}
-
-.icon-loop:before {
-    content: '\e61c';
-}
-
-.icon-plus:before {
-    content: '\e61d';
-}
-
-.icon-recover:before {
-    content: '\e61e';
-}
-
-.icon-refresh:before {
-    content: '\e61f';
-}
-
-.icon-remove-small:before {
-    content: '\e620';
-}
-
-.icon-retweet:before {
-    content: '\e621';
-}
-
-.icon-unlocked:before {
-    content: '\e622';
-}
-
-.icon-warning:before {
-    content: '\e623';
-}
-
-.icon-arrow-left:before {
-    content: '\e624';
-}
-
-.icon-arrow-right:before {
-    content: '\e625';
-}
-
-.icon-back-arrow:before {
-    content: '\e626';
-}
-
-.icon-calendar:before {
-    content: '\e627';
-}
-
-.icon-caret-down:before {
-    content: '\e628';
-}
-
-.icon-caret-left:before {
-    content: '\e629';
-}
-
-.icon-caret-right:before {
-    content: '\e62a';
-}
-
-.icon-caret-up:before {
-    content: '\e62b';
-}
-
-.icon-ccw:before {
-    content: '\e62c';
-}
-
-.icon-check-mage:before {
-    content: @icon-check-mage;
-}
-
-.icon-clock:before {
-    content: '\e62e';
-}
-
-.icon-close-mage:before {
-    content: '\e62f';
-}
-
-.icon-delete:before {
-    content: '\e630';
-}
-
-.icon-edit:before {
-    content: '\e631';
-}
-
-.icon-error:before {
-    content: @icon-error;
-}
-
-.icon-help:before {
-    content: '\e633';
-}
-
-.icon-history:before {
-    content: '\e634';
-}
-
-.icon-icon-gripper:before {
-    content: '\e617';
-}
-
-.icon-icon-forward:before {
-    content: '\e618';
-}
-
-.icon-icon-backward:before {
-    content: '\e619';
-}
-
-.icon-icon-expand-close:before {
-    content: '\e615';
-}
-
-.icon-icon-expand-open:before {
-    content: '\e616';
-}
-
-.icon-icon-system-config:before {
-    content: '\e610';
-}
-
-.icon-icon-home:before {
-    content: '\e611';
-}
-
-.icon-icon-lego:before {
-    content: '\e612';
-}
-
-.icon-icon-tool:before {
-    content: '\e613';
-}
-
-.icon-icon-upgrade:before {
-    content: '\e614';
-}
-
-.icon-notification:before {
-    content: '\e607';
-}
-
-.icon-product:before {
-    content: '\e608';
-}
-
-.icon-logo:before {
-    content: '\e606';
-}
-
-.icon-account:before {
-    content: '\e600';
-}
-
-.icon-arrowdown:before {
-    content: '\e601';
-}
-
-.icon-cms:before {
-    content: '\e602';
-}
-
-.icon-customers:before {
-    content: '\e603';
-}
-
-.icon-dashboard:before {
-    content: '\e604';
-}
-
-.icon-filter:before {
-    content: '\e605';
-}
-
-.icon-promotions:before {
-    content: '\e609';
-}
-
-.icon-reports:before {
-    content: '\e60a';
-}
-
-.icon-sales:before {
-    content: '\e60b';
-}
-
-.icon-search:before {
-    content: '\e60c';
-}
-
-.icon-stores:before {
-    content: '\e60d';
-}
-
-.icon-systems:before {
-    content: '\e60e';
-}
-
-.icon-views:before {
-    content: '\e60f';
-}
-
-.icon-import:before {
-    content: '\e636';
-}
-
-.icon-export:before {
-    content: '\e635';
-}
-
-.icon-enable:before {
-    content: '\e637';
-}
-
-.icon-not-installed:before {
-    content: '\e638';
-}
-
-.icon-disabled:before {
-    content: '\e639';
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_lists.less b/app/design/adminhtml/Magento/backend/web/css/source/_lists.less
index 94cf22b66a4d61ad7e107094d845fa9416f16dae..242f7f6b2f833e3145b57f6b6b61a032d7f16126 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_lists.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_lists.less
@@ -7,6 +7,7 @@ ul,
 ol,
 dl {
     margin-top: 0;
+    padding-left: 0;
 }
 
 ul,
@@ -17,47 +18,3 @@ ol {
         padding: 0;
     }
 }
-
-.list {
-    margin-bottom: 1rem;
-    padding-left: 0;
-    > li {
-        margin-bottom: .5rem;
-        ul {
-            padding-left: 1rem;
-            padding-top: .5rem;
-        }
-    }
-    &-reset {
-        list-style: none;
-    }
-}
-
-//  Definition list
-.list-definition {
-    margin: 0 0 3rem;
-    padding: 0;
-    > dt {
-        clear: left;
-        float: left;
-    }
-    > dd {
-        margin-bottom: 1em;
-        margin-left: 20rem;
-    }
-}
-
-//
-//  Mobile
-//  _____________________________________________
-
-.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
-    .list-definition {
-        > dt {
-            float: none;
-        }
-        > dd {
-            margin-left: 0;
-        }
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_login.less b/app/design/adminhtml/Magento/backend/web/css/source/_login.less
new file mode 100644
index 0000000000000000000000000000000000000000..87f75735592af933a6e4d7b83657f3be9cbe10cb
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_login.less
@@ -0,0 +1,122 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@login-box__background-color: @color-white;
+@login-box__border: 1px solid @color-gray89;
+@login-box__max-width: 45rem;
+@login-box__min-height: 30rem;
+@login-box__shadow: 0 5px 30px 0 rgba(0, 0, 0, 1);
+@login-page__background-color: @color-very-dark-grayish-orange;
+
+
+//
+//  Admin user auth pages layout
+//  ---------------------------------------------
+
+// Header
+.login-header {
+    margin: 0 0 3rem;
+}
+
+// Login box
+.page-layout-admin-login {
+    .vendor-prefix-display(flex);
+    background-color: @login-page__background-color;
+    padding: 2rem 0 20rem;
+    .page-wrapper {
+        .vendor-prefix-flex-shrink(0);
+        .vendor-prefix-flex-grow(0);
+        background-color: @login-box__background-color;
+        border: @login-box__border;
+        box-shadow: @login-box__shadow;
+        margin: auto;
+        max-width: @login-box__max-width;
+        min-height: @login-box__min-height;
+        padding: 40px 80px 50px;
+        position: relative;
+        width: 100%;
+        z-index: 1;
+    }
+    :-ms-input-placeholder {
+        color: transparent;
+    }
+    ::-webkit-input-placeholder {
+        color: transparent;
+    }
+    ::-moz-placeholder {
+        color: transparent;
+    }
+    .admin__legend {
+        color: @color-phoenix;
+        font-size: 2.6rem;
+        font-weight: @font-weight__light;
+        line-height: @line-height__s;
+        margin: -1rem 0 .5rem;
+    }
+    .admin__field-info {
+        margin-bottom: 3rem;
+    }
+    .admin__field {
+        .extend__field-rows();
+    }
+    .messages {
+        margin-top: -1rem;
+        + form .admin__legend {
+            display: none;
+        }
+    }
+    .actions {
+        padding: 0 0 3rem;
+    }
+    .action-primary {
+        &:extend(.abs-action-l all);
+    }
+}
+
+// @todo ui - Find out if this trick still relevant app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml:23
+.admin__control-dummy {
+    display: none;
+}
+
+// Footer
+.login-footer {
+    left: 0;
+    position: absolute;
+    top: 100%;
+    width: 100%;
+    .copyright {
+        color: @color-heathered-grey;
+        font-size: @font-size__xs;
+        font-weight: @font-weight__regular;
+        margin: 5rem 0 2rem;
+        text-align: center;
+        .link-copyright {
+            &:before {
+                display: none;
+            }
+        }
+    }
+}
+
+//
+//  Login page features
+//  ---------------------------------------------
+
+.adminhtml-auth-login {
+    .form-actions {
+        display: table;
+        margin-top: -2rem;
+        .links {
+            display: table-header-group;
+        }
+        .actions {
+            padding: 3rem 0 0;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_messages.less b/app/design/adminhtml/Magento/backend/web/css/source/_messages.less
new file mode 100644
index 0000000000000000000000000000000000000000..ca1ba9e89027796d131a03fbf6890239a62fb4ea
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_messages.less
@@ -0,0 +1,126 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@alert__font-size: @font-size__base;
+@alert__font-style: @font-style__base;
+@alert__font-weight: @font-weight__regular;
+@alert__color: @color-gray20;
+@alert__background-color: @color-lazy-sun;
+@alert__error__background-color: @color-pink;
+@alert__spinner__font-size: 2.5rem;
+
+
+//
+//  Alert Icons
+//  ---------------------------------------------
+
+@alert-icon__font-name: @icons-admin__font-name;
+@alert-icon__font-size: 1.9rem;
+
+@alert-icon__notice__content: @icon-info__content;
+@alert-icon__notice__color: @color-blue-pure;
+
+@alert-icon__warning__content: @icon-warning__content;
+@alert-icon__warning__color: @color-phoenix;
+
+@alert-icon__success__content: @icon-check-mage__content;
+@alert-icon__success__color: @color-green-apple;
+
+@alert-icon__error__content: @icon-error__content;
+@alert-icon__error__color: @color-tomato-brick;
+@alert-icon__error__font-size: 1.5rem;
+
+//
+//  Messages
+//  ---------------------------------------------
+
+.messages {
+    margin: 0 0 2rem;
+}
+
+.message {
+    background: @alert__background-color;
+    border: none;
+    border-radius: 0;
+    color: @alert__color;
+    font-size: @alert__font-size;
+    margin: 0 0 1px;
+    padding: 1.8rem 4rem 1.8rem 5.5rem;
+    position: relative;
+    text-shadow: none;
+
+    &:before {
+        background: none;
+        border: 0;
+        color: @alert-icon__notice__color;
+        content: @alert-icon__notice__content;
+        font-family: @alert-icon__font-name;
+        font-size: @alert-icon__font-size;
+        font-style: @alert__font-style;
+        font-weight: @alert__font-weight;
+        height: auto;
+        left: 1.9rem;
+        line-height: inherit;
+        margin-top: -1.3rem;
+        position: absolute;
+        speak: none;
+        text-shadow: none;
+        top: 50%;
+        width: auto;
+    }
+}
+
+.message-notice {
+    &:before {
+        color: @alert-icon__notice__color;
+        content: @alert-icon__notice__content;
+    }
+}
+
+.message-warning {
+    &:before {
+        color: @alert-icon__warning__color;
+        content: @alert-icon__warning__content;
+    }
+}
+
+.message-error {
+    background: @alert__error__background-color;
+    &:before {
+        color: @alert-icon__error__color;
+        content: @alert-icon__error__content;
+        font-size: @alert-icon__error__font-size;
+        left: 2.2rem;
+        margin-top: -1rem;
+    }
+}
+
+.message-success {
+    &:before {
+        color: @alert-icon__success__color;
+        content: @alert-icon__success__content;
+    }
+}
+
+.message-spinner {
+    &:before {
+        display: none;
+    }
+    .spinner {
+        font-size: @alert__spinner__font-size;
+        left: 1.5rem;
+        position: absolute;
+        top: 1.5rem;
+    }
+}
+
+.message-in-rating-edit {
+    margin-left: 1.8rem;
+    margin-right: 1.8rem;
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/_popups.less
new file mode 100644
index 0000000000000000000000000000000000000000..f036b1bf4ede5e58fbbfe322eeeadba1f77eac8e
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_popups.less
@@ -0,0 +1,568 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@popup__background-color: @color-white;
+@popup__padding: 3rem;
+@popup__padding__horizontal: @popup__padding;
+@popup__padding__vertical: @popup__padding;
+
+@popup-title__color: @color-gray20;
+@popup-title__font-size: 2.4rem;
+@popup-title__line-height: 2.4rem;
+
+@popup-close-icon__color: @color-brownie-vanilla;
+@popup-close-icon__hover__color: @color-gray68;
+@popup-close-icon__font: @icons-admin__font-name;
+@popup-close-icon__font-size: 2rem;
+@popup-close-icon__content: @icon-close-mage__content;
+@popup-close-icon__right: 3rem;
+@popup-close-icon__top: 3rem;
+
+@popup-overlay__background-color: rgba(0, 0, 0, .35);
+
+//
+//  Jquery UI popup window
+//  _____________________________________________
+
+.ui-dialog {
+    background: @popup__background-color;
+    min-width: 40%;
+    opacity: 0;
+    transform: scale(0.7);
+    transition: all 0.3s;
+    visibility: hidden;
+    width: 75%;
+
+    &.ui-dialog-active {
+        transform: scale(1);
+        opacity: 1;
+        visibility: visible;
+    }
+
+    &.ui-draggable {
+        .ui-dialog-titlebar {
+            cursor: move;
+        }
+    }
+
+    .ui-dialog-titlebar {
+        color: @popup-title__color;
+        font-size: @popup-title__font-size;
+        line-height: @popup-title__line-height;
+        padding: @popup__padding__vertical @popup__padding__horizontal * 2 @popup__padding__vertical @popup__padding__horizontal;
+    }
+
+    .ui-dialog-titlebar-close {
+        cursor: pointer;
+        .icon-font(
+        @_icon-font-content: @popup-close-icon__content,
+        @_icon-font: @popup-close-icon__font,
+        @_icon-font-size: @popup-close-icon__font-size,
+        @_icon-font-color: @popup-close-icon__color,
+        @_icon-font-color-hover: @popup-close-icon__hover__color
+        );
+        position: absolute;
+        right: @popup-close-icon__right;
+        top: @popup-close-icon__top - .3;
+        .ui-icon {
+            display: none;
+        }
+        &.ui-state-hover {
+            border: none;
+        }
+    }
+
+    .ui-dialog-content {
+        overflow: auto;
+        padding: 0 @popup__padding__horizontal @popup__padding__vertical;
+
+        .fieldset {
+            padding-left: 0;
+            padding-right: 0;
+        }
+    }
+
+    .ui-dialog-buttonpane {
+        padding: 0 @popup__padding__horizontal @popup__padding__vertical;
+    }
+    
+    .content + .ui-dialog-buttonset {
+        padding-top: @popup__padding__vertical;
+        text-align: right;
+    }
+
+    .ui-dialog-buttonset {
+        .extend__clearfix();
+    }
+
+    .action-close {
+        &:extend(.abs-action-tertiary all);
+        font-size: @button__large__font-size;
+        margin: 0 0 0 @popup__padding__horizontal;
+        padding: @button__large__padding-vertical 0;
+    }
+
+    .ui-button,
+    .action-primary {
+        &:extend(.abs-action-secondary all);
+        &:extend(.abs-action-l all);
+        float: right;
+        margin: 0 0 0 @popup__padding__horizontal;
+    }
+    
+    .fieldset {
+        &:last-child {
+            padding-bottom: 0;
+        }
+    }
+
+    .main-col,
+    .side-col {
+        float: left;
+        padding-bottom: 0;
+        &:after {
+            display: none;
+        }
+    }
+
+    .main-col {
+        padding-right: 0;
+    }
+
+    .grid,
+    .pager {
+        padding-bottom: 0;
+    }
+    
+    .grid-actions {
+        padding-top: 0;
+    }
+
+    .ui-resizable {
+        position: relative;
+    }
+
+    .ui-resizable-handle {
+        position: absolute;
+        font-size: 0.1px;
+        display: block;
+    }
+
+    .ui-resizable-disabled,
+    .ui-resizable-autohide {
+        .ui-resizable-handle {
+            display: none;
+        }
+    }
+
+    .ui-resizable-n {
+        cursor: n-resize;
+        height: 7px;
+        width: 100%;
+        top: -5px;
+        left: 0;
+    }
+
+    .ui-resizable-s {
+        cursor: s-resize;
+        height: 7px;
+        width: 100%;
+        bottom: 0;
+        left: 0;
+    }
+
+    .ui-resizable-e {
+        cursor: e-resize;
+        width: 7px;
+        right: 0;
+        top: 0;
+        height: 100%;
+    }
+
+    .ui-resizable-w {
+        cursor: w-resize;
+        width: 7px;
+        left: -7px;
+        top: 0;
+        height: 100%;
+    }
+
+    .ui-resizable-se {
+        cursor: se-resize;
+        width: 12px;
+        height: 12px;
+        right: 1px;
+        bottom: 1px;
+    }
+
+    .ui-resizable-sw {
+        cursor: sw-resize;
+        width: 9px;
+        height: 9px;
+        left: -5px;
+        bottom: 0;
+    }
+
+    .ui-resizable-nw {
+        cursor: nw-resize;
+        width: 9px;
+        height: 9px;
+        left: -5px;
+        top: -5px;
+    }
+
+    .ui-resizable-ne {
+        cursor: ne-resize;
+        width: 9px;
+        height: 9px;
+        right: 0;
+        top: -5px;
+    }
+
+    //
+    //  Block 'Insert File'
+    //  -----------------------------------------
+
+    .main-col,
+    .magento_message {
+        .insert-title-inner {
+            border-bottom: 1px solid @color-gray68;
+            margin: 0 0 @indent__base;
+            padding-bottom: @indent__xs;
+            .extend__clearfix();
+        }
+        .insert-actions {
+            float: right;
+        }
+        .title {
+            font-size: @font-size__l;
+            padding-top: @indent__xs;
+        }
+
+        .main-col-inner .uploader {
+            border: 1px solid @color-gray68;
+            margin: 0 0 @indent__s;
+            padding: @indent__xs;
+        }
+
+        .breadcrumbs {
+            padding-left: 0;
+            li {
+                &:after {
+                    content: '';
+                    margin: 0 @indent__xs 0 0;
+                }
+            }
+        }
+
+        #contents-uploader {
+            margin: 0 0 @indent__base;
+        }
+
+        .fileinput-button {
+            cursor: pointer;
+            display: inline-block;
+            float: none;
+            vertical-align: middle;
+            span {
+                display: none;
+            }
+            input {
+                border: none;
+                -moz-transform: none;
+                opacity: 1;
+                position: static;
+            }
+        }
+
+        .file-row {
+            border: 1px solid @color-gray68;
+            margin: @indent__xs 0;
+            padding: 2px;
+        }
+
+        .filecnt {
+            border: 1px solid @color-gray68;
+            display: inline-block;
+            margin: 0 @indent__xs 15px 0;
+            padding: 3px;
+            width: 100px;
+            overflow: hidden;
+            &.selected {
+                border-color: @color-blue-dodger;
+            }
+            p {
+                text-align: center;
+            }
+        }
+
+        #contents-uploader {
+            .extend__clearfix()
+        }
+
+        .x-tree {
+            margin-bottom: @indent__base;
+        }
+    }
+}
+
+.ui-widget-overlay {
+    background: @popup-overlay__background-color;
+    bottom: 0;
+    left: 0;
+    position: fixed;
+    right: 0;
+    top: 0;
+}
+
+.ui-popup-message {
+    .ui-dialog-titlebar {
+        background: @color-lazy-sun;
+        font-size: 1.6rem;
+        font-weight: @font-weight__bold;
+        padding: 2rem 2rem 0;
+    }
+    .ui-dialog-titlebar-close {
+        right: 1.5rem;
+        top: 1rem;
+        &:before {
+            font-size: 1.4rem;
+        }
+    }
+    .ui-dialog-content {
+        background: @color-lazy-sun;
+        padding: 0 2rem 2rem;
+        .message {
+            &:last-child {
+                margin-bottom: 0;
+            }
+        }
+    }
+    .ui-dialog-buttonpane {
+        background: @color-lazy-sun;
+        padding: 0 2rem 2rem;
+    }
+}
+
+//
+//  Block 'Insert Variable'
+//  _____________________________________________
+
+.insert-variable {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    li {
+        margin-top: @indent__xs;
+        padding-left: @indent__s;
+        b {
+            margin-left: -@indent__s;
+            display: inline-block;
+        }
+    }
+}
+
+//
+//  Attribute Popup
+//  _____________________________________________
+
+.attribute-popup-actions {
+    background: @color-white;
+    border-top: 1px solid @color-gray68;
+    bottom: 0;
+    left: 0;
+    padding: @popup__padding;
+    position: fixed;
+    right: 0;
+    top: auto !important;
+    &.fixed { // ToDo UI: remove or refactor after New attribute popup refactored to sliding panel
+        background: @color-white !important;
+        border-bottom: 0 !important;
+        left: 0 !important;
+        padding: @popup__padding !important;
+        .page-actions-buttons {
+            padding-right: 0;
+        }
+    }
+
+    .action-default {
+        &.reset {
+            &:extend(.abs-action-tertiary all);
+            font-size: @button__large__font-size;
+            padding: @button__large__padding-vertical 0;
+        }
+    }
+
+    .page-actions-buttons > button.action-default.primary {
+        &:extend(.abs-action-secondary all);
+        &:extend(.abs-action-l all);
+        float: right;
+    }
+
+    .page-actions-inner {
+        &:before {
+            display: none;
+        }
+    }
+}
+
+//
+//  Prototype popup window
+//  _____________________________________________
+
+//  Prototype popup window is used to display WYSIWYG
+//  ToDo UI: Remove after complete Prototype removing
+
+.popup-window {
+    background: @popup__background-color;
+    &.dialog {
+        z-index: 900 !important;
+    }
+
+    .table_window > tbody > tr > td {
+        background: @popup__background-color;
+        border: 0;
+        padding: 0;
+    }
+
+    .magento_close {
+        &:extend(.ui-dialog .ui-dialog-titlebar-close all);
+    }
+
+    .magento_title {
+        &:extend(.ui-dialog .ui-dialog-titlebar all);
+    }
+
+    .magento_message {
+        padding: 0 @popup__padding__horizontal @popup__padding__vertical;
+        position: relative;
+    }
+
+    .magento_content {
+        height: auto !important;
+    }
+
+    .magento_buttons {
+        padding: 0 @popup__padding__horizontal @popup__padding__vertical;
+        text-align: right;
+        .extend__clearfix();
+
+        .ok_button {
+            &:extend(.ui-dialog .action-primary all);
+            float: right;
+            margin: 0 0 0 @popup__padding__horizontal;
+        }
+
+        .cancel_button {
+            &:extend(.ui-dialog .action-close all);
+        }
+    }
+}
+
+.overlay_magento {
+    &:extend(.ui-widget-overlay all);
+    z-index: 800 !important;
+}
+
+//
+//  Old popup window
+//  _____________________________________________
+
+//  ToDo UI: old popups should be replaced by jquery UI popup
+
+.fade {
+    &:extend(.ui-widget-overlay all);
+    z-index: 1000;
+
+    .popup {
+        background: @popup__background-color;
+        border: 0;
+        border-radius: 0;
+        display: inline-block;
+        left: 12.5%;
+        position: absolute;
+        top: 5rem;
+        text-align: left;
+        width: 75%;
+        .close {
+            &:extend(.ui-dialog .ui-dialog-titlebar-close all);
+        }
+    }
+
+    .popup-inner {
+        padding: 0;
+    }
+
+    .popup-title {
+        &:extend(.ui-dialog .ui-dialog-titlebar all);
+        background: @color-lazy-sun;
+        font-size: 1.6rem;
+        font-weight: @font-weight__bold;
+        padding: 2rem 2rem 0;
+    }
+
+    .popup-header {
+        .popup-title {
+            margin: 0;
+        }
+    }
+
+    .popup-content {
+        background: @color-lazy-sun;
+        .extend__clearfix();
+        padding: 0 2rem 2rem;
+        p {
+            margin-top: 0;
+        }
+        .messages {
+            &:last-child {
+                margin-bottom: 0;
+            }
+        }
+    }
+    
+    .fieldset {
+        background: @color-lazy-sun;
+        border: 0;
+        margin: 1.5rem 0 1.5rem 1.5rem;
+        padding: 0;
+    }
+
+    .maintenance-checkbox-container {
+        padding-left: 20%;
+    }
+
+    .messages {
+        margin: 0 !important;
+    }
+    
+    .actions {
+        margin: 0;
+        text-align: right;
+        .extend__clearfix();
+
+        .primary {
+            &:extend(.ui-dialog .action-primary all);
+            font-size: 1.4rem;
+            float: right;
+            margin: 0 0 0 @popup__padding__horizontal;
+            &:hover {
+                box-shadow: none;
+            }
+        }
+
+        .cancel {
+            &:extend(.ui-dialog .action-close all);
+            font-size: 1.4rem;
+            &:hover {
+                box-shadow: none;
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_reset.less b/app/design/adminhtml/Magento/backend/web/css/source/_reset.less
index 401b090a8a71dda80dd513fd25d2a258de7ded80..7eb8e5df2a1247474bbb6688887d79f7b3769c39 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_reset.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_reset.less
@@ -5,8 +5,16 @@
 
 .normalize();
 
-* {
+html {
     box-sizing: border-box;
+}
+
+* {
+    box-sizing: inherit;
+    &:before,
+    &:after {
+        box-sizing: inherit;
+    }
     &:focus {
         box-shadow: none;
         outline: 0;
@@ -27,10 +35,10 @@ object {
 }
 
 //  ToDo UI: experimantal, need to test on webkit
-.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
-    html {
-        margin-left: ~'calc(100vw - 100%)';
-        margin-right: 0;
-        overflow: auto;
-    }
-}
+//.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+//    html {
+//        margin-left: ~'calc(100vw - 100%)';
+//        margin-right: 0;
+//        overflow: auto;
+//    }
+//}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_sources.less b/app/design/adminhtml/Magento/backend/web/css/source/_sources.less
index 8954d42dee144211e9a75dc09627272996117f26..575a5a6fcc5e1afcfb70598c7ee41037aa3f2ac0 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_sources.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_sources.less
@@ -1,35 +1,33 @@
-/**
- * @category    design
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
 
 //
 //  Local backend lib
 //  _____________________________________________
 
-@import '_variables';
-@import '_utilities';
-@import '_reset';
-@import '_typography';
-@import '_icons';
-@import '_lists';
-@import '_buttons';
-@import '_forms';
-@import '_tables';
-@import '_alerts';
-@import '_grid';
-@import '_extends';
-@import '_tabs';
+@import '_variables.less';
+@import '_utilities.less';
+@import '_reset.less';
+@import '_typography.less';
+@import '_icons.less';
+@import '_lists.less';
+@import '_forms.less';
+@import '_actions.less';
+@import '_tables.less';
+@import '_messages.less';
+@import '_grid.less';
+@import '_extends.less';
+@import '_tabs.less';
+@import '_structure.less';
+@import '_calendar-temp.less';
+@import '_popups.less';
+@import '_login.less';
 
-//
-//  Components
-//  _____________________________________________
-
-@import '_components';
 
 //
-//  Media queries collector
+//  Components
 //  _____________________________________________
 
-@import '_responsive';
+@import '_components.less';
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_structure.less b/app/design/adminhtml/Magento/backend/web/css/source/_structure.less
new file mode 100644
index 0000000000000000000000000000000000000000..fa01ce62b577a3dc6ec10cd902c135cfc0080acf
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_structure.less
@@ -0,0 +1,65 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Structure
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@body__background-color: @color-white-smoke;
+
+@page-wrapper__indent-left: @menu__width;
+@page-wrapper__background-color: @color-white;
+
+@page-content__padding-horizontal: @content__indent;
+
+@notices-wrapper__border-color: @color-gray83;
+
+//
+
+body {
+    background-color: @body__background-color;
+}
+
+.page-wrapper {
+    background-color: @page-wrapper__background-color;
+    padding-left: @page-wrapper__indent-left;
+}
+
+.page-content {
+    padding-left: @page-content__padding-horizontal;
+    padding-right: @page-content__padding-horizontal;
+}
+
+.notices-wrapper {
+    margin: 0 3rem;
+    .messages {
+        margin-bottom: 0;
+    }
+}
+
+//
+//  Popups
+//  ---------------------------------------------
+
+@popup__background-color: @color-white;
+@popup__padding__horizontal: 3rem;
+@popup__padding__vertical: 3rem;
+
+@popup-title__color: @color-gray20;
+@popup-title__font-size: 2.4rem;
+
+@popup-close-icon__color: @color-brownie-vanilla;
+@popup-close-icon__hover__color: @color-gray68;
+@popup-close-icon__font: @icons-admin__font-name;
+@popup-close-icon__font-size: 2rem;
+@popup-close-icon__content: @icon-close-mage__content;
+@popup-close-icon__right: 3rem;
+@popup-close-icon__top: 3rem;
+
+@popup-overlay__background-color: rgba(0, 0, 0, .35);
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tables.less b/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
index 846e1b2531725df74aedd4b65fe5102aaa77377a..11e8b27d4571427bc42d50d7a5efbf16e14255e5 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
@@ -16,7 +16,7 @@
 //  Tables
 //  _____________________________________________
 
-table {
+table.table {
     color: @base-table-color;
     > caption {
         margin-bottom: .5rem;
@@ -32,7 +32,7 @@ table {
         background: transparent;
         border-bottom: .1rem solid @base-table-border-th-color;
         border-top: .1rem solid @base-table-border-th-color;
-        font-weight: 700;
+        font-weight: @font-weight__bold;
         padding: 1rem 1.5rem;
         text-align: left;
     }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
index 2003aada175d62dab85c8dd158155d08ebee9436..9353e93e411612d918f83d782ecbf0abcc147636 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
@@ -44,7 +44,7 @@
     }
 
     .ui-tabs-anchor {
-        color: @color-dark-brownie;
+        color: @color-brown-darkie;
         display: block;
         padding: 1.5rem 1.8rem 1.3rem;
         text-decoration: none;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_theme.less b/app/design/adminhtml/Magento/backend/web/css/source/_theme.less
index 6969c644d3949205545a53f121d12265b5645272..758b72b3ba863e6529f3c7d0897d8e751f54b9e7 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_theme.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_theme.less
@@ -12,5 +12,5 @@
 @line-height__base: 1.4;
 
 //  Focus
-@focus__color: @color-dodger-blue;
+@focus__color: @color-blue-dodger;
 @focus__box-shadow: 0 0 0 1px @focus__color;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less b/app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less
new file mode 100644
index 0000000000000000000000000000000000000000..13da06ecca185047a5843120c4166a9dbec99dbd
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_tooltip-temp.less
@@ -0,0 +1,81 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Main elements -> Tooltip
+//  _____________________________________________
+
+//  ToDo UI: Consist old styles, should be changed with new design
+
+.tooltip {
+    display: inline-block;
+    margin-left: 5px;
+    .help span,
+    .help a {
+        position: relative;
+        z-index: 2;
+        width: 22px;
+        height: 22px;
+        display: inline-block;
+        vertical-align: middle;
+        cursor: pointer;
+        &:before {
+            content: "?";
+            font-weight: 500;
+            font-size: 18px;
+            display: inline-block;
+            overflow: hidden;
+            height: 22px;
+            border-radius: 11px;
+            line-height: 22px;
+            width: 22px;
+            text-align: center;
+            color: #ffffff;
+            background-color: #514943;
+            .page-main-actions & {
+                background-color: transparent;
+            }
+        }
+        span {
+            .visually-hidden();
+        }
+    }
+    //  TODO Tooltips
+    .tooltip-content {
+        display: none;
+        position: absolute;
+        max-width: 200px;
+        margin-top: 10px;
+        margin-left: -19px;
+        padding: 4px 8px;
+        border-radius: 3px;
+        background: #000;
+        background: rgba(49, 48, 43, .8);
+        color: #fff;
+        text-shadow: none;
+        z-index: 20;
+        &:before {
+            content: '';
+            position: absolute;
+            width: 0;
+            height: 0;
+            top: -5px;
+            left: 20px;
+            border-left: 5px solid transparent;
+            border-right: 5px solid transparent;
+            border-bottom: 5px solid #000;
+            opacity: .8;
+        }
+        &.loading {
+            position: absolute;
+            &:before {
+                border-bottom-color: rgba(0, 0, 0, .3);
+            }
+        }
+    }
+    &:hover > .tooltip-content {
+        display: block;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_typography.less b/app/design/adminhtml/Magento/backend/web/css/source/_typography.less
index f13c86fd1adb5a4f82afd46a13eeaa19bee2ab47..762fe46e82ddaf41df2906e1e98be9ae9a1130b1 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_typography.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_typography.less
@@ -31,6 +31,11 @@
     @font-style: normal
 );
 
+html,
+body {
+    height: 100%;
+}
+
 html {
     font-size: 62.5%;
 }
@@ -38,7 +43,7 @@ html {
 body {
     .typography(
         @_font-size: @font-size__base,
-        @_color: @color__base,
+        @_color: @text__color,
         @_font-family: @font-family__base,
         @_font-weight: @font-weight__regular,
         @_line-height: @line-height__base,
@@ -51,39 +56,39 @@ body {
 //  ---------------------------------------------
 
 h1 {
+    margin: 0 0 2rem;
     .typography(
         @_font-size: 2.8rem,
-        @_color: @color-dark-brownie,
+        @_color: @color-brown-darkie,
         @_font-weight: @font-weight__regular,
-        @_line-height: 3.4rem,
+        @_line-height: @line-height__s,
         @_font-family: false,
         @_font-style: false
     );
-    margin: 0 0 2rem;
 }
 
 h2 {
+    margin: 0 0 2rem;
     .typography(
         @_font-size: 2rem,
-        @_color: @color-dark-brownie,
+        @_color: @color-brown-darkie,
         @_font-weight: @font-weight__regular,
-        @_line-height: 2.5rem,
+        @_line-height: @line-height__s,
         @_font-family: false,
         @_font-style: false
     );
-    margin: 0 0 2rem;
 }
 
 h3 {
+    margin: 0 0 2rem;
     .typography(
         @_font-size: 1.7rem,
-        @_color: @color-dark-brownie,
+        @_color: @color-brown-darkie,
         @_font-weight: @font-weight__semibold,
-        @_line-height: 2.2rem,
+        @_line-height: @line-height__s,
         @_font-family: false,
         @_font-style: false
     );
-    margin: 0 0 2rem;
 }
 
 h4,
@@ -95,15 +100,15 @@ h6 {
 
 //  Text
 p {
-    margin: 0 0 1.5rem;
+    margin: 0 0 .5em;
 }
 
 //  Links
 a {
-    color: @color-link;
+    color: @link__color;
     text-decoration: none;
     &:hover {
-        color: @color-link-hover;
+        color: @link__hover__color;
         text-decoration: underline;
     }
 }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_variables.less b/app/design/adminhtml/Magento/backend/web/css/source/_variables.less
index ae7bde2f5fd238513a220be8144d53e409d095eb..a18ebc40b4799ca255df30f31ef303b596f8665c 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_variables.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_variables.less
@@ -7,70 +7,9 @@
 //  Admin theme variables
 //  _____________________________________________
 
-//
-//  Typography
-//  ---------------------------------------------
-
-//  Base Font
-@font-family-name__base: 'Open Sans';
-@font-family__base: @font-family-name__base, @font-family__sans-serif;
-@font-family__console: 'Courier New', Courier, monospace;
-
-//  Admin Font Icons
-@icon-font__admin-name: 'UX-Icons';
-@icon-font__admin-path: '@{baseDir}fonts/@{icon-font__admin-name}/@{icon-font__admin-name}';
-
-//  Legacy Font Icons
-@icon-font__blank-name: 'icons-blank-theme';
-@icon-font__blank-path: '@{baseDir}fonts/Blank-Theme-Icons/Blank-Theme-Icons';
-@icon-font__mui-name: 'MUI-Icons';
-@icon-font__mui-path: '@{baseDir}fonts/@{icon-font__mui-name}/@{icon-font__mui-name}';
-
-@font-size__small: @font-size__base * .85;
-
-//  Colors
-@color-light-brownie: #676056;
-@color-dark-gray: #808080;
-@color-very-dark-gray: #666;
-@color-very-dark-gray2: #555;
-@color-lighter-grayish: #cacaca;
-@color-lighter-gray: #e9e9e9;
-@color-dark-grayish-orange: #afadac;
-@color-dark-grayish: #aeaeae;
-@color-gray65: #a6a6a6;
-@color-gray75: #bfbfbf;
-@color-gray83: #d4d4d4;
-@color-gray84: #d6d6d6;
-@color-gray85: #d9d9d9;
-@color-gray98: #fafafa;
-@color-very-light-gray: #fcfcfc;
-@color-white-fog: #f8f8f8;
-@color-lazy-sun: #fff8d6;
-@color-lazy-sunny: #fff1ad;
-@color-pure-blue: #007bdb;
-@color-dodger-blue: #008bdb;
-@color-green-apple: #79a22e;
-@color-brownie: #514943;
-@color-dark-brown: #4a3f39;
-@color-dark-brownie: #41362f;
-@color-very-dark-gray-black: #303030;
-@color-very-dark-gray-black2: #35302c;
-@color-very-dark-grayish-orange: #373330;
-@color-phoenix: #eb5202;
-@color-phoenix-brown: #b84002;
-@color-phoenix-brownie: #ae3d01;
-@color-tomato-brick: #e22626;
-
-@color__base: @color-dark-brownie;
-@color-link: @color-pure-blue;
-@color-link-hover: @color-pure-blue;
-
-//  Disabled
-@opacity-disabled: .7;
-
-//
-//  Forms
-//  ---------------------------------------------
-
-//  Validation
-@validation-color: @color-tomato-brick;
+@import 'variables/_colors.less';
+@import 'variables/_typography.less';
+@import 'variables/_icons.less';
+@import 'variables/_forms.less';
+@import 'variables/_structure.less';
+@import 'variables/_animations.less';
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less
new file mode 100644
index 0000000000000000000000000000000000000000..34c59e186a530f2a3388529244bb9effcab61dae
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-split.less
@@ -0,0 +1,111 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Actions -> Actions split
+//  _____________________________________________
+
+.actions-split {
+    @_action-split__min-width: @_action-toggle__width + @_action-default__min-width;
+    @_action-split-dropdown__hover__background-color: @color-gray89;
+    @_action-default__min-width: 9.3rem;
+    @_action-toggle__width: 4rem;
+
+    .extend__clearfix();
+    position: relative;
+    z-index: @split-button__z-index;
+    &.active,
+    &._active,
+    &:hover {
+        box-shadow: @button__hover__box-shadow;
+    }
+    &.active,
+    &._active {
+        .action-toggle {
+            &.action-primary,
+            &.primary {
+                background-color: @button-primary__hover__background-color;
+                border-color: @button-primary__hover__background-color;
+            }
+        }
+        .dropdown-menu {
+            opacity: 1;
+            visibility: visible;
+        }
+    }
+    .action-toggle,
+    .action-default {
+        float: left;
+        margin: 0;
+        &.active,
+        &._active,
+        &:hover {
+            box-shadow: none;
+        }
+    }
+    .action-default {
+        margin-right: @_action-toggle__width;
+        min-width: @_action-default__min-width;
+    }
+    .action-toggle {
+        .dropdown-triangle(
+            @_dropdown__padding-right: @_action-toggle__width;
+            @_triangle__height: .9rem;
+            @_triangle__width: 1.2rem;
+        );
+        border-left-color: rgba(0, 0, 0, .2);
+        bottom: 0;
+        padding-left: 0;
+        position: absolute;
+        right: 0;
+        top: 0;
+        //  Disable triangle rotation
+        &._active,
+        &.active {
+            &:after {
+                transform: none;
+            }
+        }
+        &.action-secondary,
+        &.secondary,
+        &.action-primary,
+        &.primary {
+            &:after {
+                border-color: @color-white transparent transparent transparent;
+            }
+        }
+        > span {
+            .visually-hidden();
+        }
+    }
+    .dropdown-menu {
+        background-color: @page-wrapper__background-color;
+        border: 1px solid @button__hover__border-color;
+        border-radius: 1px;
+        box-shadow: @component__box-shadow__base;
+        display: block; // ToDo UI: Should be deleted with old styles
+        left: 0;
+        list-style: none;
+        margin: 2px 0 0; // Action box-shadow + 1px indent
+        min-width: 0; // ToDo UI: Should be deleted with old styles
+        opacity: 0;
+        padding: 0;
+        position: absolute;
+        right: 0;
+        top: 100%;
+        transition: opacity @appering__transition-duration @apperaing__transition-timing-function;
+        visibility: hidden;
+        > li {
+            border: none; // ToDo UI: Should be deleted with old styles
+            padding: .6875em;
+            &:hover {
+                background-color: @_action-split-dropdown__hover__background-color;
+            }
+            &:active {
+                background-color: darken(@_action-split-dropdown__hover__background-color, 10%);
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less
new file mode 100644
index 0000000000000000000000000000000000000000..987d5f6f39f406ed9f1b5aa1c89be49566bf78b8
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less
@@ -0,0 +1,346 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+@import (reference) '_extends.less';
+
+//
+//  Variables
+//  _____________________________________________
+
+@field-control__background-color: @color-white;
+@field-control__border-color: @color-gray68;
+@field-control__color: @color-very-dark-gray-black;
+@field-control__font-size: 1.4rem;
+@field-control__height: 3.3rem;
+@field-control-addon__color: @color-gray52;
+
+//  States
+@field-control__disabled__background-color: @color-lighter-gray;
+@field-control__focus__border-color: @color-blue-pure;
+@field-label__disabled__color: @color-gray60;
+@field-label__required__color: @color-phoenix;
+
+//
+//  Basic controls
+//  _____________________________________________
+
+//
+//  Common
+//  ---------------------------------------------
+
+.__form-control-styles() {
+    background-color: @field-control__background-color;
+    border-radius: .1rem;
+    border: 1px solid @field-control__border-color;
+    color: @field-control__color;
+    font-size: @field-control__font-size;
+    font-weight: @font-weight__regular;
+    height: @field-control__height;
+    max-width: 100%;
+    min-width: 10rem;
+    padding: 0 1rem;
+    transition: border-color .1s ease-in;
+}
+
+.__form-control-styles__focus() {
+    border-color: @field-control__focus__border-color;
+    box-shadow: none;
+    outline: 0;
+}
+
+.__form-control-styles__disabled() {
+    background-color: @field-control__disabled__background-color;
+    border-color: @field-control__border-color;
+    color: @field-control__color;
+    opacity: .5;
+    cursor: not-allowed;
+}
+
+// Input text styles
+.admin__control-text {
+    .extend__form-control-styles();
+    line-height: @field-control__height;
+    width: 100%;
+}
+
+// Select styles
+.admin__control-select {
+    .extend__form-control-styles();
+    .css(appearance, none, 1);
+
+    background-repeat: no-repeat;
+    background-image+: url('../images/arrows-bg.svg');
+    background-position+: ~'calc(100% - 12px)' -34px;
+    background-size+: auto;
+
+    background-image+: linear-gradient(@color-gray89, @color-gray89);
+    background-position+: 100%;
+    background-size+: @field-control__height 100%;
+
+    background-image+: linear-gradient(@field-control__border-color,@field-control__border-color);
+    background-position+: ~'calc(100% - 33px)' 0;
+    background-size+: 1px 100%;
+
+    padding-right: 4.4rem; // Distance between select switch and inner text
+
+    &:focus {
+        background-image+: url('../images/arrows-bg.svg');
+        background-position+: ~'calc(100% - 12px)' 13px;
+
+        background-image+: linear-gradient(@color-gray89, @color-gray89);
+        background-position+: 100%;
+
+        background-image+: linear-gradient(@field-control__focus__border-color, @field-control__focus__border-color);
+        background-position+: ~'calc(100% - 33px)' 0;
+    }
+    &::-ms-expand {
+        display: none;
+    }
+    .ie9 & {
+        padding-right: 0;
+    }
+}
+
+option:empty {
+    display: none;
+}
+
+// Multiple select
+.admin__control-multiselect {
+    .extend__form-control-styles();
+    height: auto;
+    padding: .6rem 1rem;
+}
+
+// File uploader
+.admin__control-file-wrapper {
+    display: inline-block;
+    padding: .5rem 1rem;
+    position: relative;
+    z-index: 1;
+}
+
+.admin__control-file-label:before {
+    &:extend(.__form-control-styles);
+    content:'';
+    left: 0;
+    position: absolute;
+    top: 0;
+    width: 100%;
+    z-index: 0;
+    .admin__control-file:active + &,
+    .admin__control-file:focus + & {
+        &:extend(.__form-control-styles:focus);
+    }
+    .admin__control-file[disabled] + & {
+        &:extend(.__form-control-styles[disabled]);
+    }
+}
+
+.admin__control-file {
+    position: relative;
+    z-index: 1;
+    background: transparent;
+    border: 0;
+    width: auto;
+}
+
+// Textarea
+.admin__control-textarea {
+    .extend__form-control-styles();
+    height: 8.48rem;
+    line-height: 1.18;
+    padding-top: .8rem;
+    width: 100%;
+}
+
+// Checkboxes and radios
+.admin__control-radio,
+.admin__control-checkbox {
+    margin: .3rem 0 0;
+    opacity: 0.01; // hack for successful selenium tests
+    overflow: hidden;
+    position: absolute;
+    vertical-align: top;
+    + label {
+        cursor: pointer;
+        display: inline-block;
+        padding-left: 26px;
+
+        &:before {
+            background: none;
+            border-radius: .2rem;
+            border: 1px solid @field-control__border-color;
+            color: transparent;
+            content: @icon-check-mage__content;
+            float: left;
+            font:  0/14px @icons-admin__font-name;
+            height: 1.6rem;
+            margin: 1px 10px 0 -26px;
+            text-align: center;
+            transition: border-color .1s ease-in, color .1s ease-in, font-size .1s ease-in;
+            vertical-align: top;
+            width: 1.6rem;
+        }
+    }
+    &:focus {
+         + label {
+            .keyfocus & {
+                &:extend(.keyfocus *:focus);
+            }
+            &:before {
+                border-color: @field-control__focus__border-color;
+            }
+        }
+    }
+    &[disabled] {
+        + label {
+            &:before {
+                background-color: @field-control__disabled__background-color;
+                border-color: @field-control__border-color;
+            }
+            color: @field-control__color;
+            opacity: .5;
+        }
+    }
+}
+
+.admin__control-radio {
+    + label {
+        &:before {
+            border-radius: .8rem;
+            content: @icon-enable__content;
+        }
+    }
+    &:checked {
+        + label {
+            &:before {
+                color: @color-brownie;
+                font-size: 1rem;
+            }
+        }
+    }
+}
+
+.admin__control-checkbox {
+    &:checked {
+        + label {
+            &:before {
+                color: @color-brownie;
+                font-size: 1.1rem;
+            }
+        }
+    }
+}
+
+// Control with additional prefix or suffix label
+.admin__control-addon {
+    .vendor-prefix-display(inline-flex);
+    .vendor-prefix-flex-direction(row);
+    display: inline-flex;
+    flex-flow: row nowrap;
+    position: relative;
+    width: 100%;
+    z-index: 1;
+    > [class*='admin__addon-'],
+    > [class*='admin__control-'] {
+        .vendor-prefix-flex-basis(auto);
+        .vendor-prefix-flex-grow(0);
+        .vendor-prefix-flex-shrink(0);
+        position: relative;
+        z-index: 1;
+    }
+    [class*='admin__control-'] {
+        .css(appearence,none);
+        .vendor-prefix-flex-grow(1);
+        box-shadow: none;
+        background-color: transparent;
+        border-color: transparent;
+        order: 1;
+        vertical-align: top;
+        width: auto;
+        :focus {
+            box-shadow: 0;
+        }
+        & + [class*='admin__addon-'] {
+            padding-left: 1rem;
+            position: static !important;
+            z-index: 0;
+            > * {
+                position: relative;
+                vertical-align: top;
+                z-index: 2;
+            }
+        }
+        & + [class*='admin__addon-']:before {
+            &:extend(.__form-control-styles);
+            bottom: 0;
+            box-sizing: border-box;
+            content: '';
+            left: 0;
+            position: absolute;
+            top: 0;
+            width: 100%;
+            z-index: 0;
+        }
+        &[disabled] + [class*='admin__addon-']:before {
+            &:extend(.__form-control-styles[disabled]);
+        }
+        &:focus + label:before {
+            &:extend(.__form-control-styles:focus);
+        }
+    }
+}
+
+.admin__addon {
+    &-suffix,
+    &-prefix {
+        border: 0;
+        box-sizing: border-box;
+        color: @field-control-addon__color;
+        display: inline-block;
+        font-size: @field-control__font-size;
+        font-weight: @font-weight__regular;
+        height: @field-control__height;
+        line-height: @field-control__height;
+        padding: 0;
+    }
+    &-suffix {
+        order: 3;
+        &:last-child {
+            padding-right: 1rem;
+        }
+    }
+    &-prefix {
+        order: 0;
+    }
+}
+.ie9 {
+    .admin__control-addon {
+        &:after {
+            clear: both;
+            content: '';
+            display: block;
+            height: 0;
+            overflow: hidden;
+        }
+    }
+    .admin__addon {
+        min-width: auto;
+        overflow: hidden;
+        text-align: right;
+        white-space: nowrap;
+        width: auto;
+        [class*='admin__control-'] {
+            display: inline;
+        }
+        &-prefix {
+            float: left;
+        }
+        &-suffix {
+            float: right;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_dropdown.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_dropdown.less
new file mode 100644
index 0000000000000000000000000000000000000000..b6c69194f1af4ec3d3f064df24286644af1866c2
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_dropdown.less
@@ -0,0 +1,68 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Forms -> Dropdown element
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@dropdown__color: @text__color;
+
+@dropdown-menu__hover__background-color: @color-blue-clear-sky;
+@dropdown-menu__active__background-color: darken(@color-blue-clear-sky, 5%);
+
+//
+//  Mixins
+//  ---------------------------------------------
+
+.dropdown-triangle (
+    @_dropdown__padding-right: 3rem;
+    @_triangle__width: .8rem;
+    @_triangle__height: .5rem;
+    @_triangle__color: @color-black;
+    @_triangle__hover__color: darken(@_triangle__color, 10%);
+    @_triangle__right: (@_dropdown__padding-right / 2) - (@_triangle__width / 2);
+) {
+    padding-right: @_dropdown__padding-right;
+    &._active,
+    &.active {
+        &:after {
+            transform: rotate(180deg);
+        }
+    }
+    &:after {
+        border-color: @_triangle__color transparent transparent transparent;
+        border-style: solid;
+        border-width: @_triangle__height @_triangle__width / 2 0 @_triangle__width / 2;
+        content: '';
+        height: 0;
+        margin-top: -((@_triangle__width / 2) / 2);
+        position: absolute;
+        right: @_triangle__right;
+        top: 50%;
+        transition: all .2s linear;
+        width: 0;
+        ._active &,
+        .active & {
+            transform: rotate(180deg);
+        }
+    }
+    &:hover {
+        &:after {
+            border-color: @_triangle__color transparent transparent transparent;
+        }
+    }
+}
+
+//
+
+.admin__action-dropdown {
+    .action-reset();
+    .dropdown-triangle();
+    color: @dropdown__color;
+}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_extends.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_extends.less
new file mode 100644
index 0000000000000000000000000000000000000000..4fd15fee76d467a11194eb68424b6ae63d5c5271
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_extends.less
@@ -0,0 +1,68 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Extend common form control styles
+//  ---------------------------------------------
+
+.extend__form-control-styles() {
+    &:extend(.__form-control-styles);
+    &:focus {
+        &:extend(.__form-control-styles:focus);
+    }
+    &[disabled] {
+        &:extend(.__form-control-styles[disabled]);
+    }
+}
+
+.__form-control-styles {
+    .__form-control-styles();
+    &:focus {
+        .__form-control-styles__focus();
+    }
+    &[disabled] {
+        .__form-control-styles__disabled();
+    }
+}
+
+//
+//  Transformation to rows form layout
+//  ---------------------------------------------
+
+.extend__field-rows() {
+    &:extend(.abs-field-rows all);
+}
+.abs-field-rows[class] {
+    > .admin__field-control {
+        float: none;
+        clear: left;
+        text-align: left;
+        width: auto;
+    }
+    &:not(.admin__field-option) {
+        > .admin__field-label {
+            text-align: left;
+            width: auto;
+            display: block;
+            line-height: @field-label__font-size;
+            margin-bottom: 1rem - round(( @field-label__line-height - 1 ) * @field-label__font-size / 2 , 2); // Try to Calculate margin offset considering line-height;
+            margin-top: 0rem - round(( @field-label__line-height - 1 ) * @field-label__font-size / 2, 2);
+            &:before {
+                display: none;
+            }
+        }
+        &._required {
+            > .admin__field-label {
+                span {
+                    padding-left: 1.5rem;
+                    &:after {
+                        left: 0;
+                        margin-left: @temp_gutter; // @todo ui: update after finalizing Form Grid mixing css/source/forms/_temp.less:10
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less
new file mode 100644
index 0000000000000000000000000000000000000000..eb56907e16032ab28755ddd9a2759351a0ce5d55
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_fields.less
@@ -0,0 +1,266 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@field-divider__background-color: @color-lighter-grayish;
+@field-label__color: @color-very-dark-gray-black;
+@field-label__disabled__color: @color-gray65-almost;
+@field-label__font-size: @font-size__base;
+@field-label__line-height: @line-height__s;
+@field-label__required__color: @color-phoenix;
+@field-note__color: @color-very-dark-gray-black;
+@field-note__font-size: @font-size__s;
+@field-scope__color: @color-dark-gray;
+
+@field-error-control__border-color: @color-tomato-brick;
+@field-error-message__background-color: @color-lazy-sun;
+@field-error-message__border-color: @color-apricot;
+@field-error-message__color: @color-very-dark-gray2;
+
+//
+//  Form Fields
+//  _____________________________________________
+
+// Fieldset
+.admin__fieldset {
+    border: 0;
+    margin: 0;
+    min-width: 0;
+    padding: 0;
+
+    > .admin__field {
+        border: 0;
+        margin: 0;
+        padding: 0;
+        #mix-grid .row();
+
+        > .admin__field-control {
+            #mix-grid .column(4,9);
+        }
+
+        > .admin__field-label {
+            #mix-grid .column(3,9);
+        }
+    }
+}
+
+// Label
+.admin__field-label {
+    color: @field-label__color;
+    margin: 0;
+    text-align: right;
+
+    + br {
+        display: none;
+    }
+
+    [class]:not(.admin__field-option) > & {
+        font-family: @font-family__base;
+        font-size: @field-label__font-size;
+        font-weight: @font-weight__semibold;
+        line-height: 3.2rem;
+        padding: 0;
+        white-space: nowrap;
+
+        &:before {
+            content: '.';
+            margin-left: -7px;
+            overflow: hidden;
+            visibility: hidden;
+            width: 0;
+        }
+
+        span {
+            display: inline-block;
+            line-height: @field-label__line-height;
+            vertical-align: middle;
+            white-space: normal;
+        }
+    }
+
+    ._required > & {
+        span:after {
+            color: @field-label__required__color;
+            content: '*';
+            display: inline;
+            font-size: @font-size__l;
+            font-weight: @font-weight__heavier;
+            margin-left: 10px;
+            margin-top: 2px;
+            position: absolute;
+            z-index: 1;
+        }
+    }
+
+    ._disabled > & {
+        color: @field-label__disabled__color;
+    }
+}
+
+// Field
+.admin__field {
+    margin-bottom: 0;
+
+    & + & {
+        margin-top: 1.5rem;
+    }
+
+    &:not(.admin__field-option) ~ .admin__field-option {
+        margin-top: .5rem;
+    }
+
+    &.admin__field-option ~ .admin__field-option {
+        margin-top: .9rem;
+    }
+
+    & ~ .admin__field-option:last-child {
+        margin-bottom: .8rem;
+    }
+
+    .admin__fieldset > & {
+        margin-bottom: 3rem;
+        position: relative;
+        z-index: 1;
+        &:hover {
+            z-index: 2;
+        }
+    }
+
+    &[data-config-scope] {
+        &:before {
+            #mix-grid .return_length(7,9);
+            color: @field-scope__color;
+            content: attr(data-config-scope);
+            display: inline-block;
+            position: absolute;
+            left: @_length;
+            margin-left: 2 * @temp_gutter;
+
+            & {
+                #mix-grid .return_length(2,9);
+                width: @_length;
+            }
+        }
+        .admin__field-control &:nth-child(n+2):before {
+            content: '';
+        }
+    }
+
+    &._error {
+        .admin__field-control [class*='admin__addon-']:before,
+        .admin__field-control > [class*='admin__control-'] {
+            border-color: @field-error-control__border-color;
+        }
+    }
+}
+
+// Field error message
+.admin__field-error {
+    background: @field-error-message__background-color;
+    border: 1px solid @field-error-message__border-color;
+    box-sizing: border-box;
+    color: @field-error-message__color;
+    display: block;
+    font-size: @font-size__s;
+    font-weight: @font-weight__regular;
+    line-height: @line-height__s;
+    margin: .2rem 0 0;
+    padding: .8rem 1rem .9rem;
+}
+
+// Field notice message
+.admin__field-note {
+    color: @field-note__color;
+    font-size: @field-note__font-size;
+    margin: 10px 0 0;
+    padding: 0;
+}
+
+// Field containing checkbox or radio
+.admin__field-option {
+    padding-top: 8px;
+
+    .admin__field-label {
+        text-align: left;
+    }
+
+    .admin__field-control > & {
+        &:nth-child(1):nth-last-child(2),
+        &:nth-child(2):nth-last-child(1) {
+            display: inline-block;
+            + .admin__field-option {
+                display: inline-block;
+                margin-left: 41px;
+                margin-top: 0;
+            }
+            + .admin__field-option:before {
+                background: @field-divider__background-color;
+                content: '';
+                display: inline-block;
+                height: 20px;
+                margin-left: -20px;
+                position: absolute;
+                width: 1px;
+            }
+        }
+    }
+}
+
+//
+//  Field containing multiple fields
+//  _____________________________________________
+
+[class*='admin__control-grouped'],
+.admin__control-fields {
+    & > .admin__field:first-child {
+        position: static;
+        & > .admin__field-label {
+            #mix-grid .column(3, 9);
+            cursor: pointer;
+            left: 0;
+            opacity: 0;
+            position: absolute;
+            top: 0;
+        }
+    }
+}
+
+// In rows
+.admin__control-fields {
+    .admin__field-label ~ .admin__field-control {
+        width: 100%;
+    }
+    .admin__field:nth-child(n+2):not(.admin__field-option) {
+        > .admin__field-label {
+            .extend__visually-hidden();
+        }
+    }
+}
+
+// In line
+[class*='admin__control-grouped'] {
+    box-sizing: border-box;
+    display: table;
+    table-layout: fixed;
+    width: 100%;
+    & > .admin__field {
+        display: table-cell;
+        vertical-align: top;
+        width: 50%;
+        > .admin__field-control {
+            float: none;
+            width: 100%;
+        }
+        &:nth-child(n+2) {
+            padding-left: 20px;
+            &:not(.admin__field-option) .admin__field-label {
+                .visually-hidden();
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_forms.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_forms.less
deleted file mode 100644
index c09bed7dedef52a37835b35cce8505702335bfb9..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_forms.less
+++ /dev/null
@@ -1,720 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Main Forms File
-//  _____________________________________________
-
-//
-//  Variables
-//  ---------------------------------------------
-
-//  Form element
-
-@form-el__color: @color-very-dark-gray-black;
-@form-el__border-radius: 0;
-@form-el__indent-top: .6rem;
-@form-el__padding-bottom: .35em;
-@form-el__padding-side: .55em;
-@form-el__padding-top: .35em;
-
-@form-el__border-color: @color-gray68;
-@form-el__color: @color-very-dark-gray-black;
-@form-el__hover__border-color: darken(@form-el__border-color, 10%);
-@form-el__focus__border-color: @color-pure-blue;
-
-//  Form field
-
-@field-control__border-color: @color-gray68;
-@field-control__color: @color-very-dark-gray-black;
-@field-control__background-color: @color-white;
-@field-control-addon__color: @color-gray52;
-
-@field-scope__color: @color-dark-gray;
-@field-divider__color: @color-gray80;
-@field-label__color: @color-very-dark-gray-black;
-@field-date-icon__color: @color-brownie;
-@field-note__color: @color-very-dark-gray-black;
-
-@field-tooltip-icon__background-color: @color-brownie;
-@field-tooltip-content__background-color: @color-lazy-sun;
-@field-tooltip-content__border-color: @color-gray68;
-
-@field-error__color: @color-very-dark-gray2;
-@field-error__background-color: @color-lazy-sun;
-@field-error__border-color: @color-tomato-brick;
-
-//  States
-@field-control__focus__border-color: @color-pure-blue;
-@field-control__disabled__background-color: @color-lighter-gray;
-@field-label__required__color: @color-phoenix;
-@field-label__disabled__color: @color-gray60;
-
-//
-//  Fieldset
-//  ---------------------------------------------
-
-.fieldset {
-    .form-fieldset();
-}
-fieldset.field [class^='fields-group-'] .field .control {
-    margin: 0 0 0 20px;
-    width: auto;
-}
-.fieldset-wrapper > .fieldset-wrapper-title,
-.fieldset > .legend {
-    border-bottom: 1px solid #cac3b4;
-    box-sizing: border-box;
-    float: left;
-    margin: 0 0 18px;
-    padding: 0;
-    position: static;
-    width: 100%;
-}
-.fieldset-wrapper > .fieldset-wrapper-title {
-    float: none;
-}
-
-//
-//  Form inline
-//  ---------------------------------------------
-
-.form-inline {
-    .label,
-    .control {
-        -webkit-box-sizing: border-box;
-           -moz-box-sizing: border-box;
-                box-sizing: border-box;
-        float: left;
-        margin: 0;
-        width: 55%;
-    }
-    .label {
-        padding: 5px 15px 0 0;
-        text-align: right;
-        width: 45%;
-    }
-    .no-label {
-        .control {
-            margin-left: 20%;
-            width: 60%;
-        }
-    }
-    .field-service {
-        box-sizing: border-box;
-        color: #999;
-        float: left;
-        font-size: 12px;
-        letter-spacing: .05em;
-        padding: 7px 0 0 15px;
-        width: 20%;
-        .checkbox {
-            margin: 0;
-            vertical-align: middle;
-        }
-    }
-    .field-service[value-scope]:before {
-        content: attr(value-scope) !important;
-        display: block;
-        margin-bottom: 5px;
-        white-space: nowrap;
-    }
-    .choice {
-        position: relative;
-        z-index: 1;
-        .control {
-            left: 45%;
-            margin-top: 4px;
-            position: absolute;
-            width: auto;
-        }
-        .tooltip {
-            margin-left: 20px;
-            margin-top: 7px;
-            position: relative;
-            z-index: 1;
-        }
-    }
-    .with-tooltip:not(.choice) {
-        padding-top: 20px;
-    }
-}
-
-//
-//  Controls
-//  ---------------------------------------------
-
-.control {
-    *:first-child {
-        margin-bottom: 0;
-    }
-    > input {
-        width: 100%;
-    }
-    > input[type='button'],
-    > input[type='radio'],
-    > input[type='checkbox'],
-    > input[type='file'] {
-        width: auto;
-    }
-    > input.hasDatepicker {
-        width: 160px;
-    }
-    > table {
-        width: 100%;
-    }
-    .input-file {
-        margin-top: 4px;
-    }
-    .hasDatepicker + img {
-        margin: -3px 0 0 5px;
-        vertical-align: middle;
-    }
-    .control-value {
-        display: inline-block;
-        padding: 6px 0 0;
-        vertical-align: top;
-    }
-    .control-value.special {
-        font-weight: bold;
-    }
-    .nested {
-        padding: 0;
-    }
-}
-
-//  Field Tooltip
-.field-tooltip {
-    display: inline-block;
-    margin-top: 5px;
-    overflow: visible;
-    position: relative;
-    vertical-align: top;
-    width: 0;
-    z-index: 1;
-    .field-choice & {
-        margin-top: 10px;
-    }
-    &:hover {
-        z-index: 99;
-    }
-    &-action {
-        color: @field-tooltip-icon__background-color;
-        cursor: pointer;
-        display: inline-block;
-        font-family: @icon-font__admin-name;
-        margin-left: 18px;
-        margin-top: -6px;
-        position: relative;
-        z-index: 2;
-        &:hover {
-            color: @field-tooltip-icon__background-color;
-            text-decoration: none;
-        }
-        &:before {
-            content: '\e633';
-            font-size: 22px;
-        }
-        span {
-            .visually-hidden();
-        }
-    }
-    .control-text:focus + &-content,
-    &:hover &-content {
-        display: block;
-    }
-    &-content {
-        @_shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
-
-        background: @field-tooltip-content__background-color;
-        border: 1px solid @field-tooltip-content__border-color;
-        border-radius: 1px;
-        bottom: 42px;
-        .css(box-shadow, @_shadow);
-        display: none;
-        padding: 15px 25px;
-        position: absolute;
-        right: -66px;
-        width: 320px;
-        z-index: 1;
-        &:after,
-        &:before {
-            .arrow(down,16px,@field-tooltip-content__border-color);
-            content: '';
-            display: block;
-            position: absolute;
-            right: 20px;
-            top: 100%;
-            z-index: 3;
-        }
-        &:after {
-            border-top-color: @field-tooltip-content__background-color;
-            margin-top: -1px;
-            z-index: 4;
-        }
-    }
-}
-
-//  Form Field
-.form__field {
-    .clearfix();
-    position: relative;
-    z-index: 1;
-    &:hover {
-        z-index: 2;
-    }
-    .control & {
-        position: static;
-    }
-    &.field-error {
-        .control [class*='control-'] {
-            border-color: @field-error__border-color;
-            &:before {
-                border-color: @field-error__border-color;
-            }
-        }
-    }
-    .mage-error {
-        background: @field-error__background-color;
-        border: 1px solid @field-error__border-color;
-        box-sizing: border-box;
-        color: @field-error__color;
-        display: block;
-        font-size: 12px;
-        font-weight: 500;
-        margin: 2px 0 0;
-        max-width: 380px;
-        padding: 6px 10px 10px;
-    }
-    .control-addon {
-        + .mage-error {
-            .no-flexbox.no-flexboxlegacy & {
-                display: inline-block;
-                width: 100%;
-            }
-        }
-    }
-}
-
-.form__field[data-config-scope]:before {
-    color: @field-scope__color;
-    content: attr(data-config-scope);
-    display: inline-block;
-    position: absolute;
-    right: 0;
-    top: 6px;
-}
-.control .form__field[data-config-scope]:nth-child(n+2):before {
-    content: '';
-}
-
-.form__field.field-disabled {
-    > .label {
-        color: @field-label__disabled__color;
-    }
-    &.field .control [class*='control-'][disabled] {
-        background-color: @field-control__disabled__background-color;
-        border-color: @field-control__border-color;
-        color: @field-control__color;
-        opacity: .5;
-    }
-}
-
-.control-fields {
-    .label ~ .control {
-        width: 100%;
-    }
-}
-
-.form__field {
-    border: 0;
-    padding: 0;
-    .note {
-        color: @field-note__color;
-        margin: 10px 0 0;
-        max-width: 380px;
-        padding: 0;
-        &:before {
-            display: none;
-        }
-    }
-    &.form__field {
-        margin-bottom: 0;
-        & + & {
-            margin-top: 15px;
-        }
-        &:not(.choice) ~ .choice {
-            margin-left: 20px;
-            margin-top: 5px;
-        }
-        &.choice ~ .choice {
-            margin-top: 9px;
-        }
-        & ~ .choice:last-child {
-            margin-bottom: 8px;
-        }
-    }
-    .fieldset > & {
-        margin-bottom: 30px;
-    }
-
-    .label {
-        color: @field-label__color;
-    }
-    &:not(.choice) > .label {
-        font-size: 14px;
-        font-weight: 600;
-        line-height: 33px;
-        padding-right: 30px;
-        padding-top: 0;
-        white-space: nowrap;
-        width: 30%;
-        &:before {
-            content: '.';
-            margin-left: -7px;
-            overflow: hidden;
-            visibility: hidden;
-            width: 0;
-        }
-        span {
-            display: inline-block;
-            line-height: 1.2;
-            vertical-align: middle;
-            white-space: normal;
-        }
-    }
-    &.required > .label {
-        span:after {
-            color: @field-label__required__color;
-            content: '*';
-            display: inline;
-            font-size: 16px;
-            font-weight: 500;
-            margin-left: 10px;
-            margin-top: 2px;
-            position: absolute;
-            z-index: 1;
-        }
-        &:after {
-            content: '';
-            margin-left: 0;
-        }
-    }
-    .control {
-        &-file {
-            margin-top: 6px;
-        }
-        &-select {
-            line-height: 33px;
-        }
-        &-select:not([multiple]),
-        &-text {
-            height: 33px;
-            max-width: 380px;
-        }
-        &-addon {
-            max-width: 380px;
-        }
-        &-textarea,
-        &-select,
-        &-text {
-            background-color: @field-control__background-color;
-            border: 1px solid @field-control__border-color;
-            border-radius: 1px;
-            color: @field-control__color;
-            font-size: 15px;
-            font-weight: 500;
-            min-width: 11em;
-            padding: 0 10px;
-            &:focus {
-                border-color: @field-control__focus__border-color;
-                box-shadow: none;
-                outline: 0;
-            }
-        }
-        &-text {
-            line-height: auto;
-        }
-        &-textarea {
-            line-height: 1.18em;
-            padding-bottom: 6px;
-            padding-top: 6px;
-        }
-        &-select[multiple],
-        &-textarea {
-            height: ~"calc(6 * 1.2em + 14px)";
-            width: 100%;
-        }
-        &-value {
-            display: inline-block;
-            padding: 6px 10px;
-        }
-        &-fields {
-            .form__field:nth-child(n+2):not(.choice) {
-                > .label {
-                    .visually-hidden;
-                }
-            }
-        }
-        &-select {
-            padding: 0;
-            option {
-                box-sizing: border-box;
-                display: block;
-                padding: 4px 10px;
-            }
-            optgroup {
-                display: block;
-                font-style: normal;
-                font-weight: 600;
-                line-height: 33px;
-                list-style: inside;
-                padding: 4px 10px;
-            }
-        }
-    }
-    .control-range {
-        & > .form__field:nth-child(2) {
-            &:before {
-                content: '\2014';
-                display: inline-block;
-                float: left;
-                line-height: 33px;
-                margin-left: -25px;
-                text-align: center;
-                width: 20px;
-            }
-        }
-    }
-    &.choice {
-        padding-left: 26px;
-        padding-right: 0;
-        padding-top: 8px;
-        position: relative;
-        z-index: 1;
-        .label {
-            display: inline;
-            float: none;
-            font-weight: 500;
-            line-height: 18px;
-            padding: 0;
-        }
-        input {
-            margin-top: 3px !important;
-            position: absolute;
-            top: 8px;
-            &[disabled] + .label {
-                cursor: not-allowed;
-                opacity: .5;
-            }
-        }
-        .control > & {
-            max-width: 380px;
-            &:nth-child(1):nth-last-child(2),
-            &:nth-child(2):nth-last-child(1) {
-                display: inline-block;
-                & + .choice {
-                    margin-left: 41px;
-                    margin-top: 0;
-                }
-                & + .choice:before {
-                    background: @field-divider__color;
-                    content: '';
-                    display: inline-block;
-                    height: 20px;
-                    left: -20px;
-                    position: absolute;
-                    top: 8px;
-                    width: 1px;
-                }
-            }
-        }
-        .label {
-            cursor: pointer;
-        }
-        .label:before {
-            background: url('@{url}') no-repeat -100% -100%;
-            border: 1px solid @field-control__border-color;
-            border-radius: 2px;
-            content: '';
-            height: 14px;
-            left: 0;
-            position: absolute;
-            top: 10px;
-            .url('images/choice_bkg.png', 'Magento_Ui');
-            width: 14px;
-            z-index: 1;
-        }
-        input:focus + .label:before {
-            border-color: @field-control__focus__border-color;
-            outline: 0;
-        }
-        .control {
-            &-radio + .label:before {
-                border-radius: 8px;
-            }
-            &-radio:checked + .label:before {
-                background-position: -26px -1px;
-            }
-            &-checkbox:checked + .label:before {
-                background-position: -1px -1px;
-            }
-        }
-        input {
-            opacity: 0;
-        }
-        .fieldset > & {
-            margin-left: 30%;
-        }
-    }
-    .control {
-        &-after,
-        &-before {
-            border: 0;
-            box-sizing: border-box;
-            color: @field-control-addon__color;
-            display: inline-block;
-            font-size: 15px;
-            font-weight: 300;
-            height: 33px;
-            line-height: 33px;
-            padding: 0 3px;
-        }
-        .no-flexbox.no-flexboxlegacy &-before,
-        .no-flexbox.no-flexboxlegacy &-addon {
-            float: left;
-            white-space: nowrap;
-        }
-        &-addon {
-            display: inline-flex;
-            flex-flow: row nowrap;
-            max-width: 380px;
-            position: relative;
-            width: 100%;
-            z-index: 1;
-            > * {
-                position: relative;
-                z-index: 1;
-            }
-            .control-text[disabled][type],
-            .control-select[disabled][type],
-            .control-select,
-            .control-text {
-                background: transparent!important;
-                border: 0;
-                flex: 1;
-                order: 1;
-                vertical-align: top;
-                width: auto;
-                &:focus {
-                    box-shadow: none;
-                    & + label:before {
-                        border-color: @field-control__focus__border-color;
-                        outline: 0;
-                    }
-                }
-                & + label {
-                    padding-left: 10px;
-                    position: static!important;
-                    z-index: 0;
-                    > * {
-                        position: relative;
-                        vertical-align: top;
-                        z-index: 2;
-                    }
-                }
-                & + label:before {
-                    background: @color-white;
-                    border: 1px solid @field-control__border-color;
-                    border-radius: 1px;
-                    box-sizing: border-box;
-                    content: '';
-                    display: block;
-                    height: 100%;
-                    left: 0;
-                    position: absolute;
-                    top: 0;
-                    width: 100%;
-                    z-index: 0;
-                }
-                &[disabled] + label:before {
-                    background: @field-control__disabled__background-color;
-                    opacity: .5;
-                }
-            }
-        }
-        &-after {
-            order: 3;
-            &:last-child {
-                padding-right: 10px;
-            }
-        }
-        &-before {
-            order: 0;
-        }
-
-        &-some {
-            display: flex;
-        }
-    }
-    [class*='control-grouped'] {
-        box-sizing: border-box;
-        display: table;
-        table-layout: fixed;
-        width: 100%;
-        & > .form__field {
-            display: table-cell;
-            vertical-align: top;
-            width: 50%;
-            > .control {
-                float: none;
-                width: 100%;
-            }
-            &:nth-child(n+2) {
-                padding-left: 20px;
-                &:not(.choice) .label {
-                    .visually-hidden();
-                }
-            }
-        }
-    }
-    [required] {
-        box-shadow: none;
-    }
-}
-
-fieldset.form__field {
-    position: relative;
-    [class*='control-grouped'],
-    .control-fields {
-        & > .form__field:first-child {
-            & > .label {
-                cursor: pointer;
-                left: 0;
-                opacity: 0;
-                position: absolute;
-                top: 0;
-                width: 30%;
-            }
-        }
-    }
-}
-
-.control-text + .ui-datepicker-trigger {
-    .button-reset();
-    display: inline-block;
-    .icon-font(
-    @icon-calendar,
-    @_icon-font-size: 38px,
-    @_icon-font-line-height: 33px,
-    @_icon-font-text-hide: true,
-    @_icon-font-position: after,
-    @_icon-font-color: @field-date-icon__color
-    );
-    margin-left: -40px;
-    img {
-        display: none;
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_selects.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_selects.less
deleted file mode 100644
index 0ab41b9e54321a240b09ea2a50dedfdf0efd09ca..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_selects.less
+++ /dev/null
@@ -1,98 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  _____________________________________________
-
-@select-check__background-color: @color-gray89;
-@select-check__arrow__color: @color-brownie;
-@select-check__height: 5px;
-@select-check__size: 2.36em;
-@select-check__width: 8px;
-
-//
-//  Customized select with label wrap
-//  ---------------------------------------------
-
-.form-select-label {
-    border: 1px solid @form-el__border-color;
-    border-radius: @form-el__border-radius;
-    color: @form-el__color;
-    cursor: pointer;
-    display: inline-block;
-    overflow: hidden;
-    position: relative;
-    &:hover,
-    &:hover:after {
-        border-color: @form-el__hover__border-color;
-    }
-    &:focus,
-    &:focus:after,
-    &:active,
-    &:active:after {
-        border-color: @form-el__focus__border-color;
-    }
-    &:after {
-        background: @select-check__background-color;
-        border-left: 1px solid @form-el__border-color;
-        bottom: 0;
-        content: '';
-        position: absolute;
-        right: 0;
-        top: 0;
-        width: @select-check__size;
-        z-index: -2;
-        .ie9 & {
-            display: none;
-        }
-    }
-    &:before {
-        border-color: @select-check__arrow__color transparent transparent transparent;
-        border-style: solid;
-        border-width: @select-check__height @select-check__width / 2 0 @select-check__width / 2;
-        content: '';
-        height: 0;
-        margin-right: -(@select-check__width / 2);
-        margin-top: -(@select-check__height / 2);
-        position: absolute;
-        right: @select-check__size / 2;
-        top: 50%;
-        width: 0;
-        z-index: -1;
-        .ie9 & {
-            display: none;
-        }
-    }
-    .form-el-select {
-        background: transparent;
-        border: none;
-        border-radius: 0;
-        content: '';
-        display: block;
-        margin: 0;
-        padding: @form-el__padding-top ~'calc(@{select-check__size} + 10%)' @form-el__padding-bottom @form-el__padding-side;
-        width: 110%;
-        .ie9 & {
-            padding-right: @form-el__padding-side;
-            width: 100%;
-        }
-    }
-
-    // ToDo UI: use .form-select-label { display block; } for grid tables. Consider, that [class*="col-"] includes grids, so use other specific selector
-}
-
-//
-//  Light customized select
-//  ---------------------------------------------
-
-.form-el-select {
-    background: @color-white;
-    border: 1px solid @form-el__border-color;
-    border-radius: @form-el__border-radius;
-    color: @form-el__color;
-    display: block;
-    padding: @form-el__padding-top @form-el__padding-side;
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less
new file mode 100644
index 0000000000000000000000000000000000000000..a94060d0e7684662eed362292d0cdd339653420d
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_temp.less
@@ -0,0 +1,188 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@temp_gutter: 30px;
+@temp_columns: 12;
+
+//
+//  Form Fields Grid Sketch @todo ui - find the right place
+//  _____________________________________________
+
+#mix-grid() {
+    .row() {
+        .extend__clearer();
+        margin-left: ~'-@{temp_gutter}';
+    }
+    .return_length(@_columns-min, @_total: @temp_columns) {
+        @_part: @_columns-min/@_total;
+        @_length: ~'calc( (100%) * @{_part} - @{temp_gutter} )';
+    }
+    .width(@_columns-min, @_total: @temp_columns) {
+        #mix-grid .return_length(@_columns-min, @_total);
+        width: @_length;
+    }
+    .column(@_columns-min, @_total: @temp_columns) {
+        #mix-grid .width(@_columns-min, @_total);
+        float: left;
+        margin-left: @temp_gutter;
+    }
+}
+
+.col-2-left-layout {
+    #mix-grid .row();
+    margin-top: 50px;
+    width: auto;
+
+    .main-col {
+        #mix-grid .width(9);
+        float: right;
+    }
+
+    .side-col {
+        #mix-grid .column(9);
+    }
+}
+
+//
+//  Admin section wrapper title @todo ui - find the right place
+//  _____________________________________________
+
+.admin__fieldset-wrapper-title {
+    margin-bottom: 30px;
+    padding: 14px 0 16px;
+    strong {
+        &:extend(h2);
+    }
+}
+
+// @todo ui Move to other place:
+.address-item-edit-content {
+    padding: 15px 30px;
+    .admin__field {
+        .extend__field-rows();
+    }
+}
+
+
+.address-list {
+    float: left;
+    list-style-type: none;
+    margin:0;
+    padding: 0;
+    width: 360px;
+    .address-list-item {
+        margin-bottom: 30px;
+    }
+    .action-delete {
+        .button-reset();
+        .icon-font(
+            @icon-remove-small__content,
+            @icons-admin__font-name,
+            @_icon-font-size: 1.6rem,
+            @_icon-font-line-height: 16px,
+            @_icon-font-text-hide: true,
+            @_icon-font-position: after,
+            @_icon-font-color: @color-brown-darkie
+        );
+        span {
+            max-height: 1px;
+            max-width: 1px;
+        }
+        &:hover {
+            &:after {
+                color: darken(@color-brown-darkie, 20%);
+            }
+            position: relative;
+            z-index: 2;
+
+            // @todo ui - testing solution to show action hint without title attribute
+            span {
+                background-color: @color-very-light-gray;
+                border: 1px solid @color-heathered-grey;
+                border-radius: .4rem;
+                bottom: 100%;
+                clip: auto;
+                font-size: @font-size__s;
+                height: auto;
+                left: auto;
+                margin: 0 auto .1rem;
+                padding: .5rem;
+                right: auto;
+                top: auto;
+                max-height: 50px;
+                max-width: 200px;
+                white-space: nowrap;
+                width: auto;
+                transition: all .01s linear .7s;
+            }
+        }
+    }
+}
+
+.address-item-edit {
+    margin-left: 359px;
+    .admin__legend {
+        display: none;
+    }
+    max-width: 500px;
+}
+
+//
+//  Login page form errors @todo ui - remove after validation consistency
+//  _____________________________________________
+
+[class*='admin__control-'].mage-error ~ [class*='admin__addon-']:before,
+.admin__field-control > [class*='admin__control-'].mage-error {
+    border-color: @field-error-control__border-color;
+}
+.admin__field-control label.mage-error {
+    &:extend(.admin__field-error);
+}
+
+
+//
+//  Login page captcha reload @todo ui - remove after loader consistency
+//  _____________________________________________
+
+.page-layout-admin-login {
+    .loading-mask {
+        background: rgba(255,255,255,0.2);
+        height: 100%;
+        left: 0;
+        position: absolute;
+        top: 0;
+        width: 100%;
+        z-index: @z-index-10;
+    }
+    .popup-loading {
+        height: 149px;
+        left: 50%;
+        margin-left: -218px/2;
+        margin-top: -149px/2;
+        position: absolute;
+        top: 50%;
+        overflow: hidden;
+        width: 218px;
+    }
+}
+
+//
+//  Login page captcha field @todo ui - Create new captcha markup - Change reload button
+//  _____________________________________________
+.page-layout-admin-login {
+    .field-captcha {
+        padding-left: 30px;
+        vertical-align: middle;
+        .captcha-reload {
+            float: right;
+            vertical-align: middle;
+        }
+    }
+}
+
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less
new file mode 100644
index 0000000000000000000000000000000000000000..dbb52ffa5d3b74aec7574b566ef5ff1e3858536d
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less
@@ -0,0 +1,79 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@field-tooltip-icon__color: @color-brownie;
+@field-tooltip-content__background-color: @color-lazy-sun;
+@field-tooltip-content__border-color: @color-dark-grayish-orange;
+
+//
+//  Form Fields
+//  _____________________________________________
+
+.admin__field-tooltip {
+    display: inline-block;
+    margin-top: 5px;
+    overflow: visible;
+    vertical-align: top;
+    width:0;
+    &:hover {
+        position: relative;
+        z-index: @field-tooltip__z-index;
+    }
+    .admin__field-option & {
+        margin-top: 10px
+    }
+    .admin__field-tooltip-action {
+        margin-left: 20px;
+        display: inline-block;
+        .icon-font(
+            @icon-help__content,
+            @icons-admin__font-name,
+            @_icon-font-size: 2.2rem,
+            @_icon-font-line-height: 1,
+            @_icon-font-color: @field-tooltip-icon__color
+        );
+    }
+    .admin__control-text:focus + .admin__field-tooltip-content,
+    &:hover .admin__field-tooltip-content {
+        display: block;
+    }
+    .admin__field-tooltip-content {
+        @_shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
+        .css(box-shadow, @_shadow);
+        background: @field-tooltip-content__background-color;
+        border-radius: 1px;
+        border: 1px solid @field-tooltip-content__border-color;
+        bottom: 42px;
+        display: none;
+        padding: 15px 25px;
+        position: absolute;
+        right: -70px;
+        width: 320px;
+        z-index: 1;
+        &:after,
+        &:before {
+            .arrow(
+                @_position: down,
+                @_size: 16px,
+                @_color: @field-tooltip-content__border-color
+            );
+            content: "";
+            display: block;
+            position: absolute;
+            right: 20px;
+            top: 100%;
+            z-index: 3;
+        }
+        &:after {
+            border-top-color: @field-tooltip-content__background-color;
+            margin-top: -1px;
+            z-index: 4;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/icons.less b/app/design/adminhtml/Magento/backend/web/css/source/icons.less
deleted file mode 100644
index 912612b3d654e704f9a5cb1d5bdcf62ab198599b..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/icons.less
+++ /dev/null
@@ -1,11 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-.font-face(
-    @family-name: @icons__font-name,
-    @font-path: @icons__font-path,
-    @font-weight: normal,
-    @font-style: normal
-);
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/navigation.less b/app/design/adminhtml/Magento/backend/web/css/source/navigation.less
deleted file mode 100644
index e5b82d4805a8f22f56fbbb24532e843385fa13bb..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/navigation.less
+++ /dev/null
@@ -1,191 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//    Global Navigation
-// --------------------------------------
-
-.navigation {
-    background-color: @color-middle;
-    position: relative;
-    z-index: 5;
-}
-
-.navigation .level-0.reverse > .submenu {
-    right: 1px;
-}
-
-.navigation > ul {
-    &:extend(._layout-width all);
-    &:extend(.add-clearer all);
-    position: relative;
-    text-align: right;
-}
-
-.navigation .level-0 > .submenu {
-    display: none;
-    position: absolute;
-    top: 100%;
-    padding: 19px 13px;
-}
-
-.navigation  .level-0 > .submenu a {
-    display: block;
-    .style6();
-    line-height: 1.385;
-    padding: 3px 12px 3px;
-    text-decoration: none;
-    &:hover {
-        color: @primary4;
-        background: @defaultButton5;
-        text-decoration: none;
-    }
-}
-
-.navigation .level-0 > .submenu li {
-    margin-bottom: 1px;
-}
-
-.navigation .level-0 > .submenu a[href="#"] {
-    cursor: default;
-    display: block;
-    .style30();
-    line-height: 1;
-    margin: 7px 0 6px;
-    padding: 0 12px;
-
-    &:focus,
-    &:hover {
-        .style30();
-        background: none;
-        text-decoration: none;
-    }
-}
-
-.navigation .level-0 {
-    display: inline-block;
-    float: left;
-    text-align: left;
-    transition: display .15s ease-out;
-}
-
-.navigation .level-0 > a {
-    background: none;
-    display: block;
-    padding: 12px 13px 0;
-    .style15();
-    text-transform: uppercase;
-    text-decoration: none;
-    transition: background .15s ease-out;
-    &:after {
-        content: "";
-        display: block;
-        margin-top: 10px;
-        height: 3px;
-        font-size: 0;
-    }
-}
-
-.navigation .level-0.active > a {
-    font-weight: @baseFontWeightBold;
-    &:after {
-        background: #ef672f;
-    }
-}
-
-.navigation .level-0.hover.recent > a {
-    background: #fff;
-    .style15I();
-    &:after {
-        background: none;
-    }
-}
-.navigation .level-0.hover.recent.active > a {
-    font-weight: @baseFontWeightBold;
-}
-
-.navigation .level-0 > .submenu {
-    opacity: 0;
-    visibility: hidden;
-}
-
-.navigation .level-0.recent.hover > .submenu {
-    opacity: 1;
-    visibility: visible;
-}
-
-.no-js .navigation .level-0:hover > .submenu,
-.no-js .navigation .level-0.hover > .submenu,
-.no-js .navigation .level-0 > a:focus + .submenu {
-    display: block;
-}
-
-.navigation .level-0 > .submenu {
-    background: #fff;
-    box-shadow: 0 3px 3px rgba(50, 50, 50, .15);
-}
-
-.navigation .level-0 > .submenu li {
-    max-width: 200px;
-}
-
-.navigation .level-0 > .submenu > ul {
-    white-space: nowrap;
-}
-
-.navigation .level-0 > .submenu .column {
-    display: inline-block;
-    margin-left: 40px;
-    vertical-align: top;
-    &:first-child {
-        margin-left: 0;
-    }
-}
-
-.navigation .level-0 .submenu .level-1 {
-    white-space: normal;
-}
-
-.navigation .level-0.parent .submenu .level-1.parent {
-    margin: 17px 0 25px;
-}
-
-.navigation .level-0.parent .level-1.parent:first-child {
-    margin-top: 0;
-}
-
-.navigation .level-2 .submenu {
-    margin-left: 7px;
-}
-
-.navigation .level-0 > .submenu .level-2 > a[href="#"] {
-    font-size: 13px;
-    margin-top: 10px;
-    margin-left: 7px;
-}
-
-.navigation .level-2 > .submenu a {
-    font-size: 12px;
-    line-height: 1.231;
-}
-
-.navigation .level-0 > .submenu .level-3 > a[href="#"],
-.navigation .level-3 .submenu {
-    margin-left: 15px;
-}
-
-//
-//    Admin and Store Settings
-// --------------------------------------
-.navigation .level-0.item-system,
-.navigation .level-0.item-stores {
-    float: none;
-}
-
-.navigation .level-0.item-system > .submenu,
-.navigation .level-0.item-stores > .submenu {
-    left: auto;
-    right: 1px;
-}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/theme.less b/app/design/adminhtml/Magento/backend/web/css/source/theme.less
deleted file mode 100644
index 6bbf0c4799b1245ef5a06fe0fffda64905b5d4f2..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/theme.less
+++ /dev/null
@@ -1,69 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Blank theme overrides
-//  _____________________________________________
-
-//  Theme file should contain declarations (overrides) ONLY OF EXISTING variables
-//  Otherwise this theme won't be available for parent nesting
-//  All new variables should be placed in local theme lib or local theme files
-
-//
-//  Typography
-//  ---------------------------------------------
-
-//  Fonts
-@color-dark: #31302b;
-
-//
-//  Layout
-//  ---------------------------------------------
-
-@responsive: false;
-
-@layout__max-width: 1300px;
-@layout-indent__width: 15px;
-
-//
-//  Dropdowns
-//  ---------------------------------------------
-
-@dropdown-split-actions__padding: '';
-@dropdown-split-toggle__actions__padding: 6px 5px;
-@dropdown-split-toggle-icon__font-line-height: 14px;
-
-//
-//  Buttons
-//  ---------------------------------------------
-
-//  Default = secondary button
-@button__padding: 6px 13px;
-@button__font-weight: 500;
-@button__font-size: 13px;
-@button__line-height: @button__font-size + 1;
-@button__color: #645d53;
-@button__background: #f2ebde;
-@button__border: 1px solid #ada89e;
-
-@button__hover__background: #cac3b4;
-@button__hover__color: '';
-@button__hover__border: '';
-
-@button__active__background: @button__hover__background;
-@button__active__color: '';
-@button__active__border: 1px solid #989287;
-
-//  Primary button
-@button-primary__background: #007dbd;
-@button-primary__border: 1px solid #0a6c9f;
-@button-primary__color: @color-white;
-
-@button-primary__hover__background: #026294;
-@button-primary__hover__border: 1px solid #026294;
-@button-primary__hover__color: '';
-
-@button-primary__active__background: @button-primary__hover__background;
-@button-primary__active__border: 1px solid #004c74;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/utilities/_animations.less b/app/design/adminhtml/Magento/backend/web/css/source/utilities/_animations.less
index 22c4c156857514d65406ebf43c222cf1e8cd49a5..6819bf8dac3fdb5a0ea8226582f55d8a071e46da 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/utilities/_animations.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/utilities/_animations.less
@@ -3,7 +3,9 @@
 //  * See COPYING.txt for license details.
 //  */
 
+//
 //  Animations
+//  _____________________________________________
 
 .animation(@animation) {
     -webkit-animation: @animation;
@@ -54,3 +56,21 @@
        -moz-backface-visibility: @visibility;
             backface-visibility: @visibility;
 }
+
+//
+//  Effects
+//  _____________________________________________
+
+.transition (
+    @_property: all,
+    @_duration: .1s,
+    @_timing-function: linear
+) {
+    transition: @_property @_duration @_timing-function;
+}
+
+.scale (
+    @_size: .9
+) {
+    transform: scale(@_size);
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables.less b/app/design/adminhtml/Magento/backend/web/css/source/variables.less
deleted file mode 100644
index cde6b27a6f88f8dafc2f2bb587777533e7c6767b..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/css/source/variables.less
+++ /dev/null
@@ -1,101 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Admin theme variables
-//  _____________________________________________
-
-//
-//  Typography
-//  ---------------------------------------------
-
-//  Fonts
-@font-family-name__base: 'Open Sans';
-@font-family__base: @font-family-name__base, @font-family__sans-serif;
-
-//  Colors
-@col-layout-background-color: #f6f3eb;
-@color-middle: #676056;
-@color-light: #e0dacf;
-@color-general: #f3ebde;
-@color-link: #026294;
-@page-main-action-color: #645d53;
-
-//
-//  Layout
-//  ---------------------------------------------
-
-@layout__min-width: 960px;
-
-//
-//  Forms
-//  ---------------------------------------------
-
-@form-element-background-color: @color-white;
-
-//  Validation
-@validation-color: #e22626;
-@validation-color-rgba: rgba(226, 38, 38, .6);
-@validation-background-color: #f9d4d4;
-@validation-border: 1px dashed @validation-color;
-@validation-color-light: #f9d4d4; //  For asterisk on <th> elements of grid tables
-
-//
-//  Tables
-//  ---------------------------------------------
-
-//  Data-table
-@data-table-th-border-color: #c9c2b8;
-@data-table-td-border-color: #eae8e4;
-@data-table-td-background-color: @grid-td-light;
-@data-table-td-background-color-odd: #fbfaf6;
-@data-table-td-background-color-hover: #f7f3eb;
-
-//
-//  Grid
-//  ---------------------------------------------
-
-@grid-frame-background-color: @color-white;
-@grid-controls-border: #989287;
-
-@grid-headings-color: #f7f3eb;
-@grid-headings-color-darker: darken(@grid-headings-color, 20%);
-@grid-headings-background-color: #807a6e;
-@grid-headings-border: #cac3b4;
-
-@grid-filters-color: #f7f3eb;
-@grid-filters-background-color: @color-middle;
-@grid-filters-border: @grid-filters-background-color;
-@grid-filters-placeholder-color: #989287;
-
-@grid-massaction-border: 1px solid #f2ebde;
-
-@grid-td-color: @color-middle;
-@grid-td-light: @color-white;
-@grid-td-dark: #f7f3eb;
-@grid-td-border: @grid-headings-border;
-@grid-td-background-color-hover: #f2ebde;
-
-@grid-tfoot-color: @grid-td-color;
-@grid-tfoot-background-color: #f2ebde;
-
-@grid-severity-critical-color: #e22626;
-@grid-severity-critical-background-color: #f9d4d4;
-@grid-severity-critical-border: @grid-severity-critical-color;
-
-@grid-severity-notice-color: #185b00;
-@grid-severity-notice-background-color: #d0e5a9;
-@grid-severity-notice-border: #5b8116;
-
-@grid-severity-minor-color: #ed4f2e;
-@grid-severity-minor-background-color: #feeee1;
-@grid-severity-minor-border: @grid-severity-minor-color;
-
-//
-//  Pager
-//  ---------------------------------------------
-
-@pager-actions__color: @primary3;
-@pager-actions__color-hover: @primary5;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_animations.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_animations.less
new file mode 100644
index 0000000000000000000000000000000000000000..1284a440a9e5229d53ec39b228c23ea3d3f15d64
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_animations.less
@@ -0,0 +1,11 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Transitions
+//  _____________________________________________
+
+@appering__transition-duration: .15s;
+@apperaing__transition-timing-function: ease;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less
new file mode 100644
index 0000000000000000000000000000000000000000..59d0db38fd547342d35fa909f35e0e69432c4093
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_colors.less
@@ -0,0 +1,65 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Colors
+//  _____________________________________________
+
+@color-brown-dark: #4a3f39;
+@color-brown-darkie: #41362f;
+@color-very-dark-gray-black: #303030;
+@color-very-dark-gray-black2: #35302c;
+@color-very-dark-grayish-orange: #373330;
+@color-black4-almost: #403934;
+@color-very-dark-gray2: #555;
+@color-brownie: #514943;
+@color-brownie-almost: #524d49;
+@color-very-dark-gray: #666;
+@color-brownie-light: #676056;
+@color-very-dark-gray1: #777;
+@color-brownie-vanilla: #736963;
+@color-dark-gray: #808080;
+@color-gray65: #a6a6a6;
+@color-gray65-almost: #a79d95;
+@color-gray65-lighten: #aaa6a0;
+@color-heathered-grey: #989287;
+@color-dark-grayish: #aeaeae;
+@color-dark-grayish-orange: #afadac;
+@color-gray75: #bfbfbf;
+@color-lighter-grayish: #cacaca;
+@color-light-gray: #ddd;
+@color-gray83: #d4d4d4;
+@color-gray84: #d6d6d6;
+@color-gray85: #d9d9d9;
+@color-lighter-gray: #e9e9e9;
+@color-gray98: #fafafa;
+@color-very-light-gray: #fcfcfc;
+@color-ivory: #f7f3eb;
+@color-white-fog2: #f1f1f1;
+@color-lazy-sun: #fffbbb;
+@color-lazy-sunny: #fff1ad;
+
+@color-blue-pure: #007bdb;
+@color-blue-dodger: #008bdb;
+@color-blue-clear-sky: #e0f6fe;
+
+@color-green-apple: #79a22e;
+@color-apricot: #ee7d7d;
+
+@color-pink: #fcc;
+@color-phoenix: #eb5202;
+@color-light-phoenix: #ef672f;
+@color-phoenix-brown: #b84002;
+@color-phoenix-brown-almost: #ba4000;
+@color-phoenix-brownie: #ae3d01;
+@color-phoenix-dark: #c34706;
+@color-tomato-brick: #e22626;
+
+//
+//  Nesting
+//  ---------------------------------------------
+
+@primary__color: @color-phoenix;
+@text__color: @color-brown-darkie;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_forms.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_forms.less
new file mode 100644
index 0000000000000000000000000000000000000000..d774bf3c774a1b5ecd10e002eeb9f617d17333ce
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_forms.less
@@ -0,0 +1,14 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Forms
+//  _____________________________________________
+
+//
+//  Validation
+//  ---------------------------------------------
+
+@validation__color: @color-tomato-brick;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_icons.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_icons.less
new file mode 100644
index 0000000000000000000000000000000000000000..f5c31dceaa5148f9dd7e4a8ed02fdebc544f091c
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_icons.less
@@ -0,0 +1,74 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Icons
+//  _____________________________________________
+
+@icons-admin__font-name: 'Admin Icons';
+@icons-admin__file-name: 'admin-icons';
+@icons-admin__font-name-path: '@{baseDir}fonts/@{icons-admin__file-name}/@{icons-admin__file-name}';
+
+@icon-cms__content: '\e602';
+@icon-customers__content: '\e603';
+@icon-dashboard__content: '\e604';
+@icon-logo__content: '\e606';
+@icon-product__content: '\e608';
+@icon-promotions__content: '\e609';
+@icon-reports__content: '\e60a';
+@icon-sales__content: '\e60b';
+@icon-stores__content: '\e60d';
+@icon-systems__content: '\e610';
+@icon-close-mage__content: '\e62f';
+@icon-menu-item__content: '\e63a';
+@icon-info__content: '\e61a';
+@icon-lock__content: '\e61b';
+@icon-loop__content: '\e61c';
+@icon-plus__content: '\e61d';
+@icon-recover__content: '\e61e';
+
+@icon-refresh__content: '\e61f';
+@icon-remove-small__content: '\e620';
+@icon-retweet__content: '\e621';
+@icon-unlocked__content: '\e622';
+@icon-warning__content: '\e623';
+@icon-arrow-left__content: '\e624';
+@icon-arrow-right__content: '\e625';
+@icon-back-arrow__content: '\e626';
+@icon-calendar__content: '\e627';
+@icon-caret-down__content: '\e628';
+@icon-caret-left__content: '\e629';
+@icon-caret-right__content: '\e62a';
+@icon-caret-up__content: '\e62b';
+@icon-ccw__content: '\e62c';
+@icon-check-mage__content: '\e62d';
+
+@icon-clock__content: '\e62e';
+@icon-delete__content: '\e630';
+@icon-edit__content: '\e631';
+@icon-error__content: '\e632';
+@icon-help__content: '\e633';
+@icon-history__content: '\e634';
+@icon-not-installed__content: '\e638';
+@icon-disabled__content: '\e639';
+@icon-enable__content: '\e637';
+@icon-export__content: '\e635';
+@icon-import__content: '\e636';
+@icon-gripper__content: '\e617';
+@icon-forward__content: '\e618';
+
+@icon-backward__content: '\e619';
+@icon-expand-close__content: '\e615';
+@icon-expand-open__content: '\e616';
+@icon-home__content: '\e611';
+@icon-lego__content: '\e612';
+@icon-tool__content: '\e613';
+@icon-upgrade__content: '\e614';
+@icon-notification-02__content: '\e607';
+@icon-account__content: '\e600';
+@icon-arrowdown__content: '\e601';
+@icon-filter__content: '\e605';
+@icon-search__content: '\e60c';
+@icon-views__content: '\e60f';
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less
new file mode 100644
index 0000000000000000000000000000000000000000..714ae8aff69e1e261f982f7e051f1f33b94dd6c7
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_structure.less
@@ -0,0 +1,64 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Structure
+//  _____________________________________________
+
+//
+//  Indents
+//  ---------------------------------------------
+
+@indent__base: 2rem; // 20px
+@indent__xl: @indent__base * 2; // 40px
+@indent__l: @indent__base * 1.5; // 30px
+@indent__m: @indent__base * 1.25; // 25px
+@indent__s: @indent__base / 2; // 10px
+@indent__xs: @indent__base / 4; // 5px
+
+//
+//  Z axis
+//  ---------------------------------------------
+
+@z-index-1: 100;
+@z-index-2: 200;
+@z-index-3: 300;
+@z-index-4: 400;
+@z-index-5: 500;
+@z-index-6: 600;
+@z-index-7: 700;
+@z-index-8: 800;
+@z-index-9: 900;
+@z-index-10: 1000;
+
+// z-index 3
+@split-button__z-index: @z-index-3;
+
+// z-index 4
+@header__z-index: @z-index-4;
+@page-actions__fixed__z-index: @z-index-4;
+
+// z-index 5
+@field-tooltip__z-index: @z-index-5;
+
+// z-index 7
+@menu__z-index: @z-index-7;
+
+// z-index 8
+@overlay__z-index: @z-index-8;
+
+//  Base z-index for page wrapper to prevent inner page element overlap with pop-ups
+@page-wrapper__z-index__base: 1;
+
+//
+//  Components
+//  ---------------------------------------------
+
+@content__indent: @indent__l;
+
+@menu__width: 8.8rem;
+
+@component__shadow-size__base: 5px;
+@component__box-shadow__base: 1px 1px @component__shadow-size__base rgba(0, 0, 0, .5);
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less
new file mode 100644
index 0000000000000000000000000000000000000000..13f9dbc30e0d6e611ebef850adb2e89240804f0a
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less
@@ -0,0 +1,30 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Typography
+//  _____________________________________________
+
+//  Base Font
+@font-family-name__base: 'Open Sans';
+@font-family__base: @font-family-name__base, @font-family__sans-serif;
+@font-family__console: 'Courier New', Courier, monospace;
+
+//  Sizes
+@font-size__xl: 1.8rem;
+@font-size__l: 1.6rem;
+@font-size__base: 1.4rem;
+@font-size__s: 1.2rem;
+@font-size__xs: 1rem;
+
+@line-height__base: 1.4;
+@line-height__s: 1.2;
+
+//  Links
+@link__color: @color-blue-pure;
+@link__hover__color: @color-blue-pure;
+
+//  Disabled
+@disabled__opacity: .7;
diff --git a/app/design/adminhtml/Magento/backend/web/css/styles-migration.less b/app/design/adminhtml/Magento/backend/web/css/styles-migration.less
new file mode 100644
index 0000000000000000000000000000000000000000..a6a47d1c333e9e554eeb03986dda5ddeb64ce0d9
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/styles-migration.less
@@ -0,0 +1,54 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Temporary migration overrides
+//  _____________________________________________
+
+@import (reference) 'override.less';
+
+.ie9 #html-body[class][data-container="body"] .admin__scope:extend(.ie9 all) {}
+#html-body[class][data-container="body"].keyfocus:extend(.keyfocus all) {}
+
+//  Including popups styles
+#html-body[class][data-container="body"] {
+    .popup-window:extend(.popup-window all) {}
+
+    .overlay_magento:extend(.overlay_magento all) {}
+
+    .ui-dialog:extend(.ui-dialog all) {}
+
+    .ui-widget-overlay:extend(.ui-widget-overlay all) {}
+
+    .fade:extend(.fade all) {}
+
+    .insert-variable:extend(.insert-variable all) {}
+
+    .magento_message:extend(.magento_message all) {}
+
+    .ui-popup-message:extend(.ui-popup-message all) {}
+
+}
+
+#html-body[class][data-container="body"] .admin__scope {
+    box-sizing: border-box;
+    @import (multiple) 'override.less';
+}
+
+// ToDo UI: Hidding menu (should be fixed in layouts)
+.attribute-popup {
+    .page-wrapper {
+        margin-left: 0;
+    }
+    .menu-wrapper,
+    .page-header-hgroup,
+    .page-header-actions {
+        display: none;
+    }
+}
+
+// ToDo UI: Temporary. Should be changed
+@import 'source/_calendar-temp';
+@import 'source/_tooltip-temp';
diff --git a/app/design/adminhtml/Magento/backend/web/css/styles-old.less b/app/design/adminhtml/Magento/backend/web/css/styles-old.less
index b3d132ede55acd41ce14555cb58055bb3a68006c..b20aef28380b480430afbb4576cfa89b0f0b26c8 100644
--- a/app/design/adminhtml/Magento/backend/web/css/styles-old.less
+++ b/app/design/adminhtml/Magento/backend/web/css/styles-old.less
@@ -3,24 +3,5685 @@
  * See COPYING.txt for license details.
  */
 
-/* Magento/backend */
+@import 'source/lib/_lib'; // Global lib
+@import 'source/lib/_utilities';
+@baseDir: "../"; //default
 
-//.magento-reset();   // Reset default styles with magento_reset
+.normalize();
 
-// Import theme vars overrides and mixins
-@import 'source/lib/_lib'; // Import all lib files
-@import '../less/styles/vars.less';
-@import 'source/theme'; // import theme styles
-@import 'source/variables';
-@import 'source/table'; // import theme styles
-@import 'source/icons';
+/* Backend */
+@import "../mui/clearless/all";
+@import "../mui/styles/vars.less";
+@import "../mui/styles/base.less";
+@import "../mui/styles/table.less"; // import table styles
+@import "../mui/styles/dashboard.less"; // import dashboard
+@import (reference) "../mui/styles/abstract"; // import some abstract
 
-@baseDir: '../'; //default
 
-@import 'source/navigation'; // import theme navigation
-@import 'source/dashboard'; // import theme navigation
+/*
+    Reset 'button view' for actions
+-------------------------------------- */
+.customer-current-activity .action-refresh,
+.data-table .action-.delete,
+.data-table .action-.delete:hover,
+.data-table .action-.delete:active,
+.data-table .action-.delete.active,
+.data-table .action-delete,
+.data-table .action-delete:hover,
+.data-table .action-delete:active,
+.data-table .action-delete.active,
+.data-table .action-locked,
+.data-table .action-locked:hover,
+.data-table .action-locked:active,
+.data-table .action-locked.active,
+.data-table .action-locked[disabled],
+#product-variations-matrix .action-choose,
+#product-variations-matrix .action-choose:hover,
+#product-variations-matrix .action-choose:active,
+#product-variations-matrix .action-choose.active,
+#product-variations-matrix .action-choose[disabled],
+.action-manage-images,
+.action-manage-images:hover,
+.action-manage-images:active,
+.action-manage-images.active,
+.action-manage-images[disabled],
+.image-panel .action-close,
+.image-panel .action-close:hover,
+.image-panel .action-close:active,
+.image-panel .action-close.active,
+.image-panel .action-close[disabled],
+.image-panel-controls .action-remove,
+.image-panel-controls .action-remove:hover,
+.image-panel-controls .action-remove:active,
+.image-panel-controls .action-remove.active,
+.image-panel-controls .action-remove[disabled],
+.vde-image-sizing .action-connect,
+.vde-image-sizing .action-connect:hover,
+.vde-image-sizing .action-connect:active,
+.vde-image-sizing .action-connect.active,
+.vde-image-sizing .action-connect[disabled],
+.suggest-expandable .action-show-all,
+.suggest-expandable .action-show-all:hover,
+.suggest-expandable .action-show-all:active,
+.suggest-expandable .action-show-all.active,
+.suggest-expandable .action-show-all[disabled],
+.custom-file > .action-add,
+.custom-file > .action-add:hover,
+.custom-file > .action-add:active,
+.custom-file > .action-add.active,
+.custom-file > .action-add[disabled],
+.vde-tools-header .action-close,
+.vde-tools-header .action-close:hover,
+.vde-tools-header .action-close:active,
+.vde-tools-header .action-close.active,
+.image .action-delete,
+.image .action-delete:hover,
+.image .action-delete:active,
+.image .action-delete.active,
+.fieldset-wrapper-title .actions .action-delete,
+.fieldset-wrapper-title .actions .action-delete:hover,
+.fieldset-wrapper-title .actions .action-delete:active,
+.fieldset-wrapper-title .actions .action-delete.active,
+.notification .action-close,
+.notification .action-close:hover,
+.notification .action-close:active,
+.notification .action-close.active,
+.page-login .action-forgotpassword,
+.page-login .action-forgotpassword:hover,
+.page-login .action-forgotpassword:active,
+.page-login .action-forgotpassword.active,
+.page-login .action-back,
+.page-login .action-back:hover,
+.page-login .action-back:active,
+.page-login .action-back.active {
+    border: none;
+    border-radius: 0;
+    background: none;
+    margin: 0;
+    padding: 0;
+    box-shadow: none;
+    text-shadow: none;
+    filter: none;
+}
+
+.attribute-popup .messages {
+    margin: 0 15px;
+}
+
+.data-table .action-.delete[disabled],
+.data-table .action-delete[disabled],
+.data-table .action-locked[disabled],
+#product-variations-matrix .action-choose[disabled],
+.image-panel .action-close[disabled],
+.image-panel-controls .action-remove[disabled],
+.suggest-expandable .action-show-all[disabled],
+#store-view-window [class^='action-close'],
+#store-view-window [class^='action-close']:hover,
+#store-view-window [class^='action-close']:active,
+#store-view-window [class^='action-close'].active,
+#store-view-window [class^='action-close'][disabled],
+.custom-file > .action-add[disabled],
+.image .action-delete,
+.image .action-delete:hover,
+.image .action-delete:active,
+.image .action-delete.active,
+.fieldset-wrapper-title .actions .action-delete,
+.fieldset-wrapper-title .actions .action-delete:hover,
+.fieldset-wrapper-title .actions .action-delete:active,
+.fieldset-wrapper-title .actions .action-delete.active,
+.notification .action-close,
+.notification .action-close:hover,
+.notification .action-close:active,
+.notification .action-close.active {
+    border: none;
+    border-radius: 0;
+    background: none;
+    margin: 0;
+    padding: 0;
+    box-shadow: none;
+    text-shadow: none;
+    filter: none;
+}
+
+.fade.critical-notification {
+    display: block;
+}
+
+.fade.critical-notification .popup {
+    top: 200px;
+}
+
+.data-table .action-.delete[disabled],
+.data-table .action-delete[disabled],
+.data-table .action-locked[disabled],
+#product-variations-matrix .action-choose[disabled],
+.image-panel .action-close[disabled],
+.image-panel-controls .action-remove[disabled],
+.suggest-expandable .action-show-all[disabled],
+#store-view-window [class^='action-close'],
+#store-view-window [class^='action-close']:hover,
+#store-view-window [class^='action-close']:active,
+#store-view-window [class^='action-close'].active,
+#store-view-window [class^='action-close'][disabled],
+.custom-file > .action-add[disabled],
+.vde-tools-header .action-close[disabled],
+.vde-image-sizing .action-reset,
+.vde-image-sizing .action-reset:hover,
+.vde-image-sizing .action-reset:active,
+.vde-image-sizing .action-reset.active,
+.vde-image-sizing .action-reset[disabled],
+.image .action-delete[disabled],
+.fieldset-wrapper-title .actions .action-delete[disabled] {
+    border: 0;
+    border-radius: 0;
+    background: none;
+    margin: 0;
+    padding: 0;
+    box-shadow: none;
+    text-shadow: none;
+    filter: none;
+}
+
+.vde-image-sizing .action-connect,
+.vde-image-sizing .action-connect:hover,
+.vde-image-sizing .action-connect:active,
+.vde-image-sizing .action-connect.active,
+.vde-image-sizing .action-connect[disabled],
+.vde-tab-data .action-download,
+.vde-tab-data .action-download:hover,
+.vde-tab-data .action-download:active,
+.vde-tab-data .action-download.active,
+.vde-tab-data .action-download[disabled],
+.vde-tab-data .action-delete,
+.vde-tab-data .action-delete:hover,
+.vde-tab-data .action-delete:active,
+.vde-tab-data .action-delete.active,
+.vde-tab-data .action-delete[disabled],
+.vde-tab-data .action-edit,
+.vde-tab-data .action-edit:hover,
+.vde-tab-data .action-edit:active,
+.vde-tab-data .action-edit.active,
+.vde-tab-data .action-edit[disabled] {
+    border: none;
+    border-radius: 0;
+    background: none;
+    margin: 0;
+    padding: 0;
+    box-shadow: none;
+    text-shadow: none;
+}
+
+/*
+    Actions as links
+-------------------------------------- */
+.notification-entry-dialog .action-close {
+    background: none;
+    border: none;
+    color: #6d665e;
+    font-weight: normal;
+    font-size: 12px;
+    cursor: pointer;
+    text-decoration: underline;
+}
+
+.notification-entry-dialog .action-close:hover {
+    color: #000;
+    border-bottom-color: #000;
+    filter: none;
+}
+
+/*
+    Fileupload button
+-------------------------------------- */
+.action-upload {
+    position: relative;
+}
+
+.action-upload > span {
+}
+
+.action-upload > input[type="file"] {
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    opacity: 0;
+    font-size: 10em;
+}
+
+/*
+    Dropdown menu
+-------------------------------------- */
+.dropdown-menu,
+.ui-autocomplete {
+    position: absolute;
+    display: none;
+    list-style: none;
+    min-width: 100px;
+    margin: 1px 0 0;
+    padding: 0;
+    right: 0;
+    top: 100%;
+    border: 1px solid #cac2b5;
+    background: #fff;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
+    z-index: 990;
+}
+
+.dropdown-menu > li,
+.ui-autocomplete > li {
+    padding: 5px;
+    border-bottom: 1px solid #e5e5e5;
+}
+
+.dropdown-menu > li.selected,
+.ui-autocomplete > li.selected {
+    background: #eef8fc;
+}
+
+.dropdown-menu > li:hover,
+.ui-autocomplete > li:hover {
+    background: #eef8fc;
+}
+
+.dropdown-menu > li:last-child,
+.ui-autocomplete > li:last-child {
+    border-bottom: none;
+}
+
+.dropdown-menu > li > .item,
+.ui-autocomplete > li > .item {
+    cursor: pointer;
+}
+
+.dropdown-menu-top {
+    margin: 0 0 3px;
+    top: auto;
+    bottom: 100%;
+}
+
+.ui-autocomplete {
+    right: auto;
+}
+
+.ui-autocomplete > li {
+    padding: 0;
+}
+
+.ui-autocomplete > li > a {
+    display: block;
+    padding: 5px;
+}
+
+.ui-autocomplete > li > a.level-0 {
+    padding-left: 5px !important;
+}
+
+.ui-autocomplete .ui-state-focus {
+    background: #f5f5f5;
+}
+
+.active .dropdown-menu {
+    display: block;
+}
+
+/*
+    Actions Dropdown
+-------------------------------------- */
+.action-dropdown {
+    text-align: left;
+    position: relative;
+    display: inline-block;
+}
+
+.action-dropdown > [class^='action-'] {
+    float: left;
+    border-radius: 0;
+}
+
+.action-dropdown > .action-default {
+    border-radius: 5px 0 0 5px;
+}
+
+.action-dropdown > .action-toggle {
+    border-left: 1px solid #c5c0b9;
+    border-radius: 0 5px 5px 0;
+    margin-left: -1px;
+    padding: 4px 7px;
+}
+
+.action-dropdown > .action-toggle > span {
+    display: none;
+}
+
+.action-dropdown > .action-toggle:before {
+    display: block;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e02c'; /* arrow down */
+    font-size: 11px;
+}
+
+.action-dropdown > .action-toggle.active:before {
+    content: '\e029'; /* arrow up */
+}
+
+.action-dropdown > .action-toggle.primary {
+    border-left: 1px solid #e1721d;
+}
+
+.action-dropdown > .action-toggle.primary:hover {
+    background: #e2701a;
+    margin-left: -1px;
+}
+
+.action-dropdown.active .dropdown-menu {
+    display: block;
+    white-space: nowrap;
+}
+
+.action-dropdown.active .dropdown-menu > li {
+    padding: 0;
+}
+
+.action-dropdown .dropdown-menu > li > .item {
+    display: block;
+    padding: 6px 10px 5px;
+    color: #333;
+    text-decoration: none;
+}
+
+/*
+    Action delete icon
+-------------------------------------- */
+/* TODO: replase ".action-.delete" to ".action-delete" after buttons refactoring */
+.data-table .action-.delete span,
+.data-table .action-delete span,
+.data-table .action-locked span,
+.image .action-delete span,
+.fieldset-wrapper-title .actions .action-delete span {
+    display: none;
+}
+
+.data-table .action-.delete:before,
+.data-table .action-delete:before,
+.image .action-delete:before,
+.fieldset-wrapper-title .actions .action-delete:before {
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    font-size: 18px;
+    -webkit-font-smoothing: antialiased;
+    content: '\e07f'; /* delete icon */
+    color: #b7b3ad;
+}
+
+/*
+    Locked action icon
+-------------------------------------- */
+.data-table .action-locked:before {
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    font-size: 20px;
+    -webkit-font-smoothing: antialiased;
+    content: '\e03e'; /* lock icon */
+    color: #b7b3ad;
+}
+
+.data-table .action-.delete:hover:before,
+.data-table .action-delete:hover:before,
+.data-table .action-locked:hover:before,
+.image .action-delete:hover:before,
+.fieldset-wrapper-title .actions .action-delete:hover:before {
+    color: #7e7e7e;
+}
+
+.data-table input.action-.delete[type="button"],
+.data-table input.action-.delete[type="submit"],
+.data-table input.action-.delete[type="reset"],
+.data-table button.action-.delete,
+.data-table input.action-.delete[type="button"]:visited,
+.data-table input.action-.delete[type="submit"]:visited,
+.data-table input.action-.delete[type="reset"]:visited,
+.data-table button.action-.delete:visited,
+.data-table input.action-.delete[type="button"]:hover,
+.data-table input.action-.delete[type="submit"]:hover,
+.data-table input.action-.delete[type="reset"]:hover,
+.data-table button.action-.delete:hover,
+.data-table input.action-.delete[type="button"]:active,
+.data-table input.action-.delete[type="submit"]:active,
+.data-table input.action-.delete[type="reset"]:active,
+.data-table button.action-.delete:active {
+    background: transparent;
+    padding: 3px 7px 0;
+}
+
+.data-table input.action-.delete[type=button]:hover:before,
+.data-table input.action-.delete[type=submit]:hover:before,
+.data-table input.action-.delete[type=reset]:hover:before,
+.data-table button.action-.delete:hover:before,
+.data-table input.action-.delete[type=button]:focus:before,
+.data-table input.action-.delete[type=submit]:focus:before,
+.data-table input.action-.delete[type=reset]:focus:before,
+.data-table button.action-.delete:focus:before {
+    background: transparent;
+    color: #a5a29d;
+}
+
+/*
+    Forms
+-------------------------------------- */
+
+fieldset {
+    border: 1px solid #ccc;
+    padding: 20px;
+}
+
+legend {
+    padding: 0 10px;
+    margin: 0 -10px;
+}
+
+fieldset legend + br {
+    display: none;
+}
+
+label {
+    display: inline-block;
+}
+
+label > input[type="radio"],
+label > input[type="checkbox"] {
+    margin: -3px 3px 0 0;
+    vertical-align: middle;
+}
+
+input[type=text],
+input[type=password],
+input[type=datetime],
+input[type=datetime-local],
+input[type=date],
+input[type=month],
+input[type=time],
+input[type=week],
+input[type=number],
+input[type=range],
+input[type=email],
+input[type=url],
+input[type=search],
+input.search,
+input[type=tel],
+input[type=color],
+textarea,
+select {
+    box-sizing: border-box;
+    border: 1px solid #adadad;
+    border-radius: 1px;
+    padding: 4px;
+    color: #303030;
+    background-color: #fff;
+    font-weight: 500;
+    font-size: 14px;
+    height: 33px;
+    &:focus {
+        border-color: #007bdb;
+        outline: 0;
+    }
+}
+
+select {
+    &:not([multiple]) {
+        .css(appearance, none, 1);
+
+        display: inline-block;
+        line-height: normal;
+        min-width: 80px;
+
+        background-repeat: no-repeat;
+        background-image+: url('../images/arrows-bg.svg');
+        background-position+: ~'calc(100% - 12px)' -34px;
+        background-size+: auto;
+
+        background-image+: linear-gradient(#e3e3e3, #e3e3e3);
+        background-position+: 100%;
+        background-size+: 33px 100%;
+
+        background-image+: linear-gradient(#adadad, #adadad);
+        background-position+: ~'calc(100% - 33px)' 0;
+        background-size+: 1px 100%;
+
+        padding-right: 44px;
+        &:focus {
+            background-image+: url('../images/arrows-bg.svg');
+            background-position+: ~'calc(100% - 12px)' 13px;
+
+            background-image+: linear-gradient(#e3e3e3, #e3e3e3);
+            background-position+: 100%;
+
+            background-image+: linear-gradient(#007bdb, #007bdb);
+            background-position+: ~'calc(100% - 33px)' 0;
+        }
+        &::-ms-expand {
+            display: none;
+        }
+        .ie9 & {
+            padding-right: 4px;
+            min-width: 0;
+        }
+    }
+}
+
+select[multiple],
+select[size] {
+    height: auto;
+}
+
+textarea {
+    resize: vertical;
+    padding-top: 6px;
+    padding-bottom: 6px;
+    line-height: 1.18em;
+    max-width: none;
+    min-height: 100px;
+}
+
+textarea,
+.input-text {
+    height: auto;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+    background: #fff;
+    border: 1px solid #adadad;
+    border-radius: 2px;
+    cursor: pointer;
+    display: inline-block;
+    vertical-align: middle;
+    margin: 0 5px 0 0;
+    height: 16px;
+    width: 16px;
+    position: relative;
+    appearance: none;
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    transition: all 0.1s ease-in;
+    &:focus {
+        border-color: #007bdb;
+        outline: 0;
+    }
+    &[disabled] {
+        background-color: #e9e9e9;
+        border-color: #adadad;
+        opacity: .5;
+    }
+    &:checked {
+        &:after {
+            font-family: 'Admin Icons';
+            content: "\e62d";
+            display: inline-block;
+            position: absolute;
+            top: 0;
+            left: 0;
+            width: 14px;
+            color: #514943;
+            font-size: 11px;
+            line-height: 13px;
+            text-align: center;
+            font-weight: 400
+        }
+    }
+}
+
+input[type="radio"]  {
+    border-radius: 8px;
+    &:checked {
+        &:after {
+            content: '';
+            display: block;
+            width: 10px;
+            height: 10px;
+            border-radius: 10px;
+            background: #514943;
+            top: 50%;
+            left: 50%;
+            position: absolute;
+            margin-top: -5px;
+            margin-left: -5px;
+        }
+    }
+}
+
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+    cursor: not-allowed;
+    background-color: #fff;
+    border-color: #eee;
+    box-shadow: none;
+    color: #999;
+}
+
+select[disabled] option[selected] {
+    color: #fff;
+    background: #aaa;
+}
+
+textarea:-moz-placeholder,
+input:-moz-placeholder {
+    color: #999 !important;
+    font-style: italic;
+}
+
+option.placeholder {
+    color: #999 !important;
+    font-style: italic !important;
+}
+
+:-ms-input-placeholder {
+    color: #999 !important;
+    font-style: italic;
+}
+
+::-webkit-input-placeholder {
+    color: #999 !important;
+}
+
+:-moz-placeholder {
+    color: #999 !important;
+}
+
+.form-inline .control {
+    width: 100%;
+    .control-inner-wrap {
+        padding-top: 7px;
+    }
+}
+
+.form-inline .label {
+    width: 20%;
+    padding-top: 8px;
+    padding-right: 30px;
+}
+
+.form-inline .label ~ .control {
+    width: 60%;
+}
+
+.form-inline .no-label .control {
+    margin-left: 20%;
+    width: 60%;
+}
+
+fieldset.field [class^='fields-group-'] .field .control {
+    width: auto;
+    margin: 0 0 0 20px;
+}
+
+.form-inline .field-service {
+    box-sizing: border-box;
+    float: left;
+    width: 20%;
+    padding: 7px 0 0 15px;
+    color: #999;
+    font-size: 12px;
+    letter-spacing: .05em;
+}
+
+.form-inline .field-service[value-scope]:before {
+    content: attr(value-scope) !important;
+    white-space: nowrap;
+    display: block;
+    margin-bottom: 5px;
+}
+
+.form-inline .field-service .checkbox {
+    margin: 0;
+    vertical-align: middle;
+}
+
+.form-inline > form > div > .message {
+    margin-left: 18px;
+    margin-right: 18px;
+}
+
+.control > input {
+    width: 100%;
+    padding: 4px 10px;
+}
+
+.control > input[type="button"] {
+    width: auto;
+}
+
+.control > input.hasDatepicker {
+    width: 160px;
+}
+
+.control {
+    > input[type="file"] {
+        width: auto;
+    }
+    > input[type="checkbox"],
+    > input[type="radio"] {
+        width: 16px;
+        padding: 0;
+    }
+}
+
+.control > table {
+    width: 100%;
+}
+
+.multi-input {
+    margin: 0 0 20px;
+}
+
+.multi-input > input {
+    width: 100%;
+}
+
+.control .input-file {
+    margin-top: 4px;
+}
+
+/* TODO: remove styles for images when images will be replaced by font icons */
+.control .hasDatepicker + img {
+    margin: -3px 0 0 5px;
+    vertical-align: middle;
+}
+
+.nobr {
+    white-space: nowrap;
+}
+
+/*
+    Form Validation
+-------------------------------------- */
+label.mage-error {
+    border: 1px solid #e22626;
+    display: block;
+    margin: 2px 0 0;
+    padding: 6px 10px 10px;
+    background: #fff8d6;
+    color: #555;
+    font-size: 12px;
+    font-weight: 500;
+    box-sizing: border-box;
+}
+
+textarea.mage-error,
+select.mage-error,
+input.mage-error {
+    border-color: #e22626 !important;
+}
+
+input.mage-error ~ .addafter {
+    border-color: #e22626 !important;
+}
+
+/*
+    Forms for Store Scope
+-------------------------------------- */
+.form-inline .field-store_id .label + .control,
+.form-inline .field-store_ids .label + .control,
+.form-inline .field-website_ids .label + .control,
+.form-inline .field-website_id .label + .control,
+.form-inline .field-select_stores .label + .control,
+.form-inline .field-stores .label + .control {
+    width: auto;
+}
+
+/*
+    Forms styles
+-------------------------------------- */
+.page-content-inner {
+    position: relative;
+    background: #f5f2ed;
+    border: 1px solid #b7b2a6;
+    border-radius: 5px;
+    padding: 20px;
+}
+
+.fieldset-wrapper,
+.fieldset {
+    background: #fff;
+    border: 0;
+    margin: 0;
+    padding: 5px 18px 38px;
+    position: relative;
+}
+
+.fieldset-wrapper > .fieldset-wrapper-title,
+.fieldset > .legend {
+    position: static;
+    float: left;
+    width: 100%;
+    box-sizing: border-box;
+    padding: 0;
+    border-bottom: 1px solid #cac3b4;
+    margin: 0 0 18px;
+}
+
+.fieldset-wrapper > .fieldset-wrapper-title {
+    float: none;
+}
+
+.fieldset-wrapper > .fieldset-wrapper-title .title,
+.fieldset > .legend span {
+    .style10();
+    padding: 7px 0 10px;
+    display: inline-block;
+}
+
+//
+//    Collapsable fieldset-wrapper
+//--------------------------------------
+.collapsable-wrapper {
+    padding-bottom: 2px;
+    > .fieldset-wrapper-title {
+        border-bottom: 1px solid #cac3b4;
+        margin-bottom: 0;
+        > .title {
+            position: relative;
+            padding-left: 22px;
+            cursor: pointer;
+            float: left;
+            &:before {
+                position: absolute;
+                left: 0;
+                top: 11px;
+                font-family: 'MUI-Icons';
+                font-size: 16px;
+                font-style: normal;
+                speak: none;
+                font-weight: normal;
+                -webkit-font-smoothing: antialiased;
+                content: '\e02a'; // arrow right icon
+                color: #b2b0ad;
+            }
+            &:hover:before {
+                color: #7e7e7e;
+            }
+        }
+    }
+    &.opened {
+        padding-bottom: 18px;
+        > .fieldset-wrapper-title {
+            //border-bottom: 1px solid #ededed;
+            margin-bottom: 18px;
+            > .title:before {
+                content: '\e02c'; // arrow down icon
+            }
+        }
+    }
+}
+
+/* Fieldset styles in another fieldset */
+.fieldset .fieldset-wrapper,
+.fieldset-wrapper .fieldset-wrapper {
+    border: 1px solid #cac3b4;
+    border-radius: 2px;
+    padding: 0;
+}
+
+.fieldset .fieldset-wrapper .fieldset-wrapper-title,
+.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title {
+    background:#f7f3eb;
+    padding: 0 18px;
+    border: 0;
+}
+
+.fieldset .fieldset-wrapper.opened .fieldset-wrapper-title,
+.fieldset-wrapper .fieldset-wrapper.opened .fieldset-wrapper-title {
+    border-bottom: 1px solid #cccbca;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none; // use in 41 Chrome
+    -moz-user-select: none; // use in 36 Firefox
+    -ms-user-select: none; // use in 11 IE
+    min-height: 39px;
+}
+
+.fieldset .fieldset-wrapper .fieldset-wrapper-title .actions,
+.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .actions {
+    padding: 6px 0 0;
+}
+
+.fieldset .fieldset-wrapper .fieldset-wrapper-title .title,
+.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title {
+    padding-top: 9px;
+    padding-bottom: 8px;
+    color: #555;
+    font: normal 16px/1.333 Arial, Verdana, sans-serif;
+}
+
+.fieldset .fieldset-wrapper .fieldset-wrapper-title .title:before,
+.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-title .title:before {
+    top: 9px;
+}
+
+.fieldset-wrapper-content .fieldset > .title {
+    margin-top: 0;
+    padding-left: 22px;
+}
+
+.fieldset-wrapper .draggable-handle,
+.fieldset .draggable-handle {
+    width: 8px;
+    height: 14px;
+    line-height: 14px;
+    background: url(Magento_Backend::images/draggable-handle-vertical.png) no-repeat 0 0;
+    cursor: ns-resize;
+    color: #b2b0ad;
+}
+
+.fieldset-wrapper-title > .draggable-handle {
+    position: absolute;
+    left: 10px;
+    top: 12px;
+}
+
+.fieldset .fieldset-wrapper .fieldset-wrapper-content,
+.fieldset-wrapper .fieldset-wrapper .fieldset-wrapper-content {
+    padding: 0 10px;
+}
+
+/* Sortable fieldsets */
+.ui-sortable .entry-edit .fieldset-wrapper-title,
+#product_options_container_top .fieldset-wrapper-title {
+    padding-left: 30px;
+}
+
+.ui-sortable .entry-edit .fieldset-wrapper-title > .title {
+}
+
+.fieldset-wrapper-title > .actions,
+.fieldset .legend > .actions {
+    float: right;
+    padding-top: 8px;
+}
+
+.fieldset > .legend + br {
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: left;
+}
+
+.fieldset-wrapper .fieldset,
+.fieldset .fieldset {
+    background: transparent;
+    padding: 9px 0;
+    border: none;
+    border-radius: 0;
+    margin: 0 0 29px;
+}
+
+.fieldset .comment {
+    margin: 0 0 29px 10px;
+}
+
+.fieldset {
+    .field {
+        margin: 0 0 29px;
+    }
+}
+
+.with-note .note,
+.field .note,
+.data-table .note {
+    color: #303030;
+    font-size: 12px;
+    font-weight: 400;
+    margin: 5px 0;
+}
+
+.fieldset .field .options-list {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.fieldset .field .options-list input[type="checkbox"],
+.fieldset .field .options-list input[type="radio"] {
+    margin-right: 5px;
+}
+
+[class^="fields-group-"] .field {
+    margin-bottom: 0;
+}
+
+.fieldset-wrapper .fieldset:last-child,
+.fieldset .fieldset:last-child,
+.fieldset .field:last-child {
+    margin-bottom: 0;
+}
+
+.fieldset .label {
+    color: #303030;
+    font-size: 14px;
+    font-weight: 600;
+}
+
+.fieldset .control .label {
+    .style9();
+    padding-top: 0;
+}
+
+.field.required > .label:after {
+    color: #e22626;
+    font-size: 16px;
+    font-weight: 500;
+    position: absolute;
+    margin-left: 10px;
+}
+
+.with-addon .textarea {
+    margin: 0 0 6px;
+}
+
+.fieldset .control .textarea,
+.fieldset .control .addon .textarea {
+    width: 100%;
+}
+
+.fieldset > .field > input[type="checkbox"] {
+    margin-top: 9px;
+}
+
+.fieldset-alt {
+    position: relative;
+    display: table-row;
+    border: 0;
+    padding: 0;
+    margin-bottom: 20px;
+    width: 100%;
+}
+
+.fieldset-alt > .field {
+    display: table-cell;
+    vertical-align: top;
+    padding-right: 4%;
+}
+
+.fieldset-alt > .field.no-display {
+    display: none;
+}
+
+.fieldset-alt .field > .label {
+    display: block;
+    width: 100%;
+    clear: both;
+    text-align: left;
+    margin: 0 0 10px;
+}
+
+.fieldset-alt .label + .control {
+    width: 100%;
+}
+
+.fieldset-alt .field-option-title {
+    width: 50%;
+}
+
+.fieldset .tooltip .help {
+    margin: 5px 0 0 15px;
+    display: inline-block;
+}
+
+.fieldset-alt .field-option-store-view {
+    width: 20%;
+}
+
+.fieldset-alt .field-option-input-type {
+    width: 20%;
+}
+
+.fieldset-alt .field-option-input-type select {
+    width: 100%;
+}
+
+.fieldset-alt .field-option-req {
+    width: 105px;
+    white-space: nowrap;
+}
+
+.fieldset-alt .field-option-req .control {
+    position: relative;
+    top: 32px;
+}
+
+.fieldset-alt .field-option-position,
+.fieldset-alt .field-option-position .control {
+    width: 60px;
+}
+
+/* "Use default" checkbox */
+.use-default {
+
+}
+
+.use-default-control {
+    display: none;
+}
+
+.use-default-label {
+    cursor: pointer;
+    text-decoration: underline;
+    font-size: 11px;
+    color: #a29c94;
+}
+
+.use-default-label:hover {
+    color: #7e7e7e;
+}
+
+/*
+    Custom Multiselect
+-------------------------------------- */
+.multiselect-alt {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+    color: #333;
+}
+
+.multiselect-alt .item {
+    position: relative;
+    border-top: 1px solid #fff;
+    cursor: pointer;
+}
+
+.multiselect-alt .item:first-child {
+    border-top: 0;
+}
+
+.multiselect-alt .item.selected {
+    background: #d7ebf5;
+}
+
+.multiselect-alt .item.selected:hover {
+    background: #afdef2;
+}
+
+.multiselect-alt label {
+    display: block;
+    cursor: pointer;
+    padding: 6px 25px 5px;
+}
+
+.multiselect-alt .item.selected label:before {
+    position: absolute;
+    left: 8px;
+    top: 1px;
+    bottom: 0;
+    width: 10px;
+    line-height: 28px;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e01e'; /* checked icon */
+    text-align: center;
+    color: #7ba4b1;
+    font-size: 9px;
+    text-shadow: 0 -1px 1px #60727b;
+}
+
+.multiselect-alt input[type="checkbox"] {
+    width: 0;
+    height: 0;
+    opacity: 0;
+    margin: 0;
+    padding: 0;
+}
+
+//
+//    Form item with table
+// --------------------------------------
+
+.with-table {
+    .label {
+        float: none;
+        text-align: left;
+        width: 100%;
+    }
+    .control {
+        clear: left;
+        float: none;
+        width: 100%;
+    }
+}
+
+//
+//    Form currency label
+// --------------------------------------
+
+.addon {
+    input {
+        border-width: 1px 0 1px 1px;
+        ~ .addafter strong {
+            .field-price & {
+                font-size: 18px;
+            }
+            display: inline-block;
+            background: #fff;
+            line-height: 24px;
+            margin: 0 3px 0 -2px;
+            padding-left: 4px;
+            padding-right: 4px;
+            position: relative;
+            font-size: 14px;
+            font-weight: 400;
+            color: #858585;
+            top: 0;
+        }
+        &:focus ~ .addafter {
+            border-color: #007bdb;
+            strong {
+                margin-top: 0;
+            }
+        }
+    }
+    .addafter {
+        background: none;
+        color: #a6a6a6;
+        border-width: 1px 1px 1px 0;
+        border-radius: 2px 2px 0 0;
+        padding: 0;
+        border-color: #ada89e;
+    }
+    input,
+    select {
+        &[disabled],
+        &[readonly] {
+            ~ .addafter {
+                border-color: #eee;
+                color: #999;
+            }
+        }
+    }
+    .pager input {
+        border-width: 1px;
+    }
+}
+
+.field.type-price .addon,
+.field-price .addon,
+.field-special_price .addon,
+.field-msrp .addon {
+    direction: rtl;
+}
+
+.field.type-price .addon > *,
+.field-price .addon > *,
+.field-special_price .addon > *,
+.field-msrp .addon > * {
+    direction: ltr;
+}
+
+.field.type-price .addon .addafter,
+.field-price .addon .addafter,
+.field-special_price .addon .addafter,
+.field-msrp .addon .addafter {
+    border-width: 1px 0 1px 1px;
+    border-radius: 2px 0 0 2px;
+}
+
+.field.type-price .addon input:first-child,
+.field-price .addon input:first-child,
+.field-special_price .addon input:first-child,
+.field-msrp .addon input:first-child {
+    border-radius: 0 2px 2px 0;
+}
+
+.field.type-price input,
+.field-price input,
+.field-special_price input,
+.field-msrp input {
+    border-width: 1px 1px 1px 0;
+}
+
+.field.type-price input:focus,
+.field-price input:focus,
+.field-special_price input:focus,
+.field-msrp input:focus {
+    border-color: #007bdb;
+}
+
+.field.type-price input:focus ~ label.addafter,
+.field-price input:focus ~ label.addafter,
+.field-special_price input:focus ~ label.addafter,
+.field-msrp input:focus ~ label.addafter {
+    border-color: #007bdb;
+}
+
+.field.type-price input ~ label.addafter strong,
+.field-price input ~ label.addafter strong,
+.field-special_price input ~ label.addafter strong,
+.field-msrp input ~ label.addafter strong,
+.field-gift_wrapping_price input ~ label.addafter strong {
+    margin-left: 2px;
+    margin-right: -2px;
+}
+
+/*
+    Details element
+-------------------------------------- */
+summary {
+    cursor: pointer;
+    display: inline-block;
+}
+
+.no-details details > * {
+    display: none;
+}
+
+.no-details details > summary:before {
+    float: left;
+    width: 20px;
+    content: 'â–º ';
+}
+
+.no-details details.open > summary:before {
+    content: 'â–¼ ';
+}
+
+.no-details details summary {
+    display: block;
+}
+
+/*
+    Blockquotes
+-------------------------------------- */
+blockquote {
+    border-left: 2px solid #ccc;
+    padding-left: 5px;
+}
+
+blockquote small:before {
+    content: '\2014 \00A0';
+}
+
+/*
+    Addresses
+-------------------------------------- */
+address {
+    font-style: normal;
+}
+
+/*
+    X-tree styles
+-------------------------------------- */
+.x-tree-node .leaf .x-tree-node-icon {
+    background-image: url(../images/fam_leaf.png);
+}
+
+.x-tree-node .system-leaf .x-tree-node-icon {
+    background-image: url(../images/fam_application_form_delete.png);
+}
+
+/*
+    Styles for "js" tooltip with positionings
+-------------------------------------- */
+.tipsy {
+    padding: 11px;
+}
+
+.tipsy-inner {
+    padding: 12px 15px;
+    max-width: 185px;
+    background: #faf8f6;
+    border: 1px solid #dcd8ce;
+    box-shadow: 0 2px 5px rgba(49, 48, 43, .4);
+}
+
+.tipsy-inner .error {
+    width: 158px;
+}
+
+.tipsy-inner .error h5 {
+    color: #be0a0a;
+    font-size: 16px;
+    font-weight: 500;
+    margin: 0 0 6px;
+}
+
+.tipsy-inner .error p {
+    color: #676056;
+    line-height: 1.5;
+    margin: 0;
+}
+
+.tipsy-e .tipsy-arrow {
+    top: 50%;
+    left: 1px;
+    margin-top: -10px;
+    border-top: 10px solid transparent;
+    border-right: 10px solid #dcd8ce;
+    border-bottom: 10px solid transparent;
+    border-left: none;
+}
+
+.tipsy-w .tipsy-arrow {
+    top: 50%;
+    right: 0;
+    margin-top: -10px;
+    border-top: 10px solid transparent;
+    border-right: none;
+    border-bottom: 10px solid transparent;
+    border-left: 10px solid #dcd8ce;
+}
+
+.tipsy-n .tipsy-arrow,
+.tipsy-ne .tipsy-arrow,
+.tipsy-nw .tipsy-arrow {
+    bottom: 1px;
+    border-top: 10px solid #dcd8ce;
+    border-right: 10px solid transparent;
+    border-bottom: none;
+    border-left: 10px solid transparent;
+}
+
+.tipsy-ne .tipsy-arrow {
+    left: 16px;
+}
+
+.tipsy-nw .tipsy-arrow {
+    right: 16px;
+}
+
+.tipsy-s .tipsy-arrow,
+.tipsy-se .tipsy-arrow,
+.tipsy-sw .tipsy-arrow {
+    top: 1px;
+    border-left: 10px solid transparent;
+    border-right: 10px solid transparent;
+    border-bottom: 10px solid #dcd8ce;
+    border-top: none;
+}
+
+.tipsy-se .tipsy-arrow {
+    left: 16px;
+}
+
+.tipsy-sw .tipsy-arrow {
+    right: 16px;
+}
+
+.tipsy-arrow:after,
+.tipsy-arrow:before {
+    position: absolute;
+    width: 0;
+    height: 0;
+    content: '';
+}
+
+.tipsy-e .tipsy-arrow:after {
+    top: -5px;
+    left: 2px;
+    margin-top: -4px;
+    border-top: 9px solid transparent;
+    border-right: 9px solid #faf8f6;
+    border-bottom: 9px solid transparent;
+}
+
+.tipsy-e .tipsy-arrow:before {
+    top: -8px;
+    margin-top: 0;
+    border-top: 10px solid transparent;
+    border-right: 10px solid rgba(49, 48, 43, .1);
+    border-bottom: 10px solid transparent;
+}
+
+.tipsy-w .tipsy-arrow:after {
+    top: -5px;
+    left: -12px;
+    margin-top: -4px;
+    border-top: 9px solid transparent;
+    border-right: none;
+    border-bottom: 9px solid transparent;
+    border-left: 9px solid #faf8f6;
+}
+
+.tipsy-w .tipsy-arrow:before {
+    top: -8px;
+    left: -10px;
+    margin-top: 0;
+    border-top: 10px solid transparent;
+    border-right: none;
+    border-bottom: 10px solid transparent;
+    border-left: 10px solid rgba(49, 48, 43, .1);
+}
+
+.tipsy-n .tipsy-arrow:after,
+.tipsy-ne .tipsy-arrow:after,
+.tipsy-nw .tipsy-arrow:after {
+    margin-top: -4px;
+    left: -9px;
+    top: -7px;
+    border-top: 9px solid #faf8f6;
+    border-right: 9px solid transparent;
+    border-left: 9px solid transparent;
+}
+
+.tipsy-n .tipsy-arrow:before,
+.tipsy-ne .tipsy-arrow:before,
+.tipsy-nw .tipsy-arrow:before {
+    left: -10px;
+    top: -8px;
+    margin-top: 0;
+    border-top: 10px solid rgba(49, 48, 43, .1);
+    border-right: 10px solid transparent;
+    border-left: 10px solid transparent;
+}
+
+.tipsy-s .tipsy-arrow:after,
+.tipsy-sw .tipsy-arrow:after,
+.tipsy-se .tipsy-arrow:after {
+    left: -9px;
+    top: 6px;
+    margin-top: -4px;
+    border-top: none;
+    border-right: 9px solid transparent;
+    border-bottom: 9px solid #faf8f6;
+    border-left: 9px solid transparent;
+}
+
+.tipsy-inner dl {
+    margin: 0;
+}
+
+.tipsy-inner dt {
+    margin: 0 0 4px;
+    font-size: 16px;
+    font-weight: 400;
+    color: #f47b20;
+}
+
+.tipsy-inner dd {
+    margin: 0;
+    color: #676056;
+    font-size: 12px;
+    line-height: 18px;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+/*
+    Popups
+-------------------------------------- */
+.fade .popup {
+    padding: 0;
+    border: 5px solid #969288;
+    border-radius: 8px;
+}
+
+.wrapper-popup {
+    padding: 0 10px;
+}
+
+.fade .popup .popup-inner {
+    padding: 20px;
+    border-radius: 3px;
+}
+
+.fade .popup .popup-title {
+    margin: 0 0 10px;
+}
+
+.popup-loading {
+    position: fixed;
+    z-index: 1003;
+    width: 200px;
+    background: rgba(255, 255, 255, .8);
+    left: 50%;
+    top: 40%;
+    margin-left: -100px;
+    color: #d85909;
+    border-color: #d85909;
+    font-size: 14px;
+    font-weight: bold;
+    text-align: center;
+    padding: 100px 0 10px;
+}
+
+.popup-loading:after {
+    position: absolute;
+    left: 50%;
+    top: 40%;
+    background-image: url(../mui/images/ajax-loader-big.gif);
+    width: 64px;
+    height: 64px;
+    margin: -32px 0 0 -32px;
+    content: '';
+    z-index: 2;
+}
+
+/* Loading mask */
+.loading-old,
+.loading-mask {
+    background: rgba(255, 255, 255, .4);
+    z-index: 999;
+}
+
+.loading-old,
+.loading-mask {
+    position: fixed;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+}
+
+.loading-old .loader,
+.loading-mask .loader {
+    position: absolute;
+    margin: auto;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    width: 160px;
+    height: 160px;
+    color: #5e5b56;
+    font-size: 14px;
+    font-weight: bold;
+    text-align: center;
+    background: #e5e2dd url(../mui/images/ajax-loader-big.gif) no-repeat 50% 30%;
+    border-radius: 5px;
+    opacity: .95;
+}
+
+.loading-mask img {
+    display: none;
+}
+
+.loading-old p,
+.loading-mask p {
+    margin-top: 118px;
+}
+
+/* Backup popup */
+/* TODO: remove after backups page js refactoring */
+.backup-dialog {
+    margin-top: inherit !important;
+}
+
+/*
+    Login page
+-------------------------------------- */
+.page-login {
+    height: 100%;
+}
+
+.page-login .wrapper {
+    min-height: 100%;
+    padding: 0;
+}
+
+.page-login .wrapper-inner {
+    overflow: auto;
+    padding-bottom: 140px;
+}
+
+.adminhtml-auth-login,
+.page-login {
+    background: #f2ebde;
+}
+
+.page-login .footer {
+    clear: both;
+    height: 100px;
+    margin-top: -100px;
+    position: relative;
+    box-sizing: border-box;
+}
+
+.page-login .footer-content {
+    max-width: none;
+    min-width: 0;
+}
+
+.page-login .footer-copyright {
+    text-align: left;
+}
+
+.page-login .form-login {
+    width: 280px;
+    margin: 160px auto 60px;
+    padding: 30px 25px;
+    border: 1px solid #e3ded5;
+    border-radius: 5px;
+    background: #f7f2ec;
+}
+
+.page-login .fieldset {
+    background: transparent;
+    border: 0;
+    border-radius: 0;
+    margin: 0;
+    padding: 0;
+}
+
+.page-login .fieldset > .legend {
+    border-bottom: 0;
+    margin-bottom: 15px;
+}
+
+.page-login .fieldset > .legend span {
+    font-size: 32px;
+    line-height: 32px;
+    padding: 0;
+    color: #8a847c;
+    display: inline;
+}
+
+.page-login .fieldset .field {
+    margin: 0 0 13px;
+}
+
+.page-login .form-inline .label {
+    width: auto;
+    padding: 0;
+    margin-bottom: 13px;
+}
+
+.page-login .field-username label,
+.page-login .field-password label,
+.page-login .field-confirmation label {
+    display: none;
+}
+
+.page-login .form-inline .label + .control {
+    width: auto;
+    float: none;
+}
+
+.page-login .header {
+    margin-bottom: 30px;
+    background: transparent;
+    padding: 0;
+    z-index: auto;
+    position: static;
+}
+
+.page-login .header .logo {
+    display: block;
+    width: 262px;
+    height: 64px;
+    text-indent: -999em;
+    .url('images/logo-magento.png', 'Magento_Backend');
+    background: url("@{url}") no-repeat;
+}
+
+.page-login {
+    button {
+        border-radius: 2px;
+    }
+    button:not(.primary) {
+        background-image: none;
+        background-color: #f7f3eb;
+        padding: 0 13px;
+        color: #676056;
+        border: 1px solid #ada89e;
+        cursor: pointer;
+        display: inline-block;
+        font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+        font-size: 13px;
+        font-weight: 500;
+        line-height: 26px;
+        box-sizing: border-box;
+        margin: 0;
+        vertical-align: middle;
+    }
+    button:not(.primary):focus,
+    button:not(.primary):active {
+        background-color: #cac3b4;
+        border: 1px solid #989287;
+    }
+    button:not(.primary):hover {
+        background-color: #cac3b4;
+    }
+    button:not(.primary).disabled,
+    button:not(.primary)[disabled] {
+        cursor: default;
+        pointer-events: none;
+        opacity: .5;
+    }
+    button.primary {
+        background-image: none;
+        background-color: #007dbd;
+        padding: 0 13px;
+        color: #fff;
+        border: 1px solid #0a6c9f;
+        cursor: pointer;
+        display: inline-block;
+        font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+        font-size: 13px;
+        font-weight: 500;
+        line-height: 26px;
+        box-sizing: border-box;
+        vertical-align: middle;
+    }
+    button.primary:focus,
+    button.primary:active {
+        background-color: #026294;
+        border: 1px solid #004c74;
+        color: #fff;
+    }
+    button.primary:hover {
+        background-color: #026294;
+        border: 1px solid #026294;
+    }
+    button.primary.disabled,
+    button.primary[disabled] {
+        cursor: default;
+        pointer-events: none;
+        opacity: .5;
+    }
+}
+
+.page-login .form-actions {
+    padding: 0;
+    margin: 0;
+    box-sizing: border-box;
+}
+
+.page-login .actions,
+.page-login .links {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.page-login input[type=text],
+.page-login input[type=password] {
+    border-color: #cac3b4;
+    font-size: 18px;
+    padding: 12px 12px 14px;
+    height: auto;
+    &:focus {
+        border-color: #007bdb;
+    }
+}
+
+.page-login :-ms-input-placeholder {
+    color: #bebab1 !important;
+}
+
+.page-login ::-webkit-input-placeholder {
+    color: #bebab1 !important;
+}
+
+.page-login :-moz-placeholder {
+    color: #bebab1 !important;
+}
+
+.page-login button.action-login,
+.page-login button.action-retrieve {
+    font-size: 22px;
+    padding: 14px 22px 16px;
+}
+
+.page-login button.action-retrieve,
+.page-login button.action-reset {
+    font-size: 18px;
+    padding: 10px 17px 10px;
+}
+
+.page-login .action-forgotpassword,
+.page-login .action-back {
+    font-size: 12px;
+    color: #1c8bb8;
+    text-decoration: underline;
+    position: absolute;
+    left: 0;
+    bottom: -70px;
+}
+
+.page-login .action-forgotpassword:hover,
+.page-login .action-back:hover {
+    text-decoration: none;
+}
+
+
+/*
+    Page Structure
+-------------------------------------- */
+
+//.page-title-wrapper-wrapper.complex .title {
+//    float: left;
+//    width: 70%;
+//    overflow: hidden;
+//    text-overflow: ellipsis;
+//    white-space: nowrap;
+//}
+
+//.page-title-wrapper.complex .store-switcher-alt {
+//    float: right;
+//    margin: 12px 0 0;
+//}
+
+.side-col {
+    padding-bottom: 20px;
+    position: relative;
+    width: 20%;
+}
+
+.main-col {
+    position: relative;
+    width: 80%;
+    padding: 0 20px 20px;
+    box-sizing: border-box;
+}
+
+.col-left {
+    float: left;
+}
+
+.col-right {
+    float: right;
+}
+
+.col-1-layout {
+    .main-col {
+        width: auto;
+    }
+}
+
+.col-2-left-layout,
+.col-1-layout {
+    background: #f7f3eb;
+    margin: 0 auto;
+    position: relative;
+}
+
+.col-2-left-layout {
+    padding-top: 20px;
+    &:before {
+        position: absolute;
+        content: "";
+        background-color: #fff;
+        right:0;
+        top: 0;
+        bottom: 0;
+        min-width: 730px;
+        width: 80%;
+    }
+    .main-col {
+        padding-right: 0;
+        padding-left: 0;
+        float: right;
+    }
+    .side-col {
+        float: left;
+    }
+}
+
+.col-2-right-layout {
+    .side-col {
+        float: right;
+    }
+    .main-col {
+        float: left;
+    }
+}
+
+.col-2-left-layout .main-col,
+.col-2-right-layout .main-col {
+    min-width: 730px;
+}
+
+/* Sidebar title */
+/* TODO: temporary styles */
+.side-col h3 {
+    padding: 0 17px;
+    margin-top: 16px;
+}
+
+.side-col .ui-tabs h3 {
+    margin-bottom: 5px;
+    color: #524c44;
+    text-shadow: 0 1px 0 #fff;
+}
+
+//
+//    Universal Sidebar Tabs
+// --------------------------------------
+// TODO: for "Product" page only while refactoring */
+.side-col .ui-tabs .ui-accordion-header {
+    margin: 10px 0 0;
+    padding: 0;
+    &:focus {
+        outline: none;
+    }
+    span {
+        color: #524c44;
+        cursor: pointer;
+        display: block;
+        position: relative;
+        padding: 5px 20px;
+        text-shadow: 0 1px 0 #fff;
+        &:before {
+            position: absolute;
+            left: 4px;
+            top: 7px;
+            font-family: 'MUI-Icons';
+            font-style: normal;
+            speak: none;
+            font-weight: normal;
+            -webkit-font-smoothing: antialiased;
+            content: '\e02a'; // arrow right icon
+            font-size: 14px;
+            color: #ada79e;
+        }
+    }
+    &:hover {
+        span:before {
+            color: #777;
+        }
+    }
+    &-active span:before {
+        content: '\e02c'; // arrow down icon
+    }
+}
+
+.side-col .tabs {
+    margin: 0 0 30px;
+    padding: 0;
+    list-style: none;
+    font-weight: 500;
+}
+
+.side-col > .ui-tabs > .tabs:first-child > li:first-child > a {
+    border-top-left-radius: 5px;
+}
+
+.side-col .tabs > li {
+    border-bottom: 1px solid #e5e1db;
+}
+
+.side-col .tabs > li:first-child {
+    border-top: 1px solid #e5e1db;
+}
+
+.side-col .tabs > li a {
+    position: relative;
+    display: block;
+    padding: 8px 18px;
+    text-decoration: none;
+    color: #676056;
+    transition: background .3s ease-in-out;
+}
+
+.side-col .tabs > li a:hover {
+    background: #fff;
+}
+
+.side-col .tabs > .ui-state-active a {
+    border-left: 3px solid #d87e34;
+    padding-left: 15px;
+    background: #dedcd8;
+    box-shadow: 0 1px 2px #ccc inset;
+}
+
+.side-col .tabs > .ui-state-active a:after,
+.side-col .tabs > .ui-state-active a:before {
+    position: absolute;
+    top: 50%;
+    right: 0;
+    width: 14px;
+    margin-top: -14px;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e02b'; /* left turned triangle icon */
+    font-size: 22px;
+    color: #fff;
+    overflow: hidden;
+    z-index: 4;
+}
+
+.side-col .tabs > .ui-state-active a:before {
+    color: #bdbbb7;
+    margin-top: -13px;
+    z-index: 3;
+}
+
+.side-col .tabs span.error,
+.side-col .tabs span.loader {
+    display: none;
+    position: absolute;
+    right: 12px;
+    top: 7px;
+    width: 16px;
+    height: 16px;
+    font-size: 16px;
+}
+
+.side-col .tab-item-link.changed {
+    font-style: italic;
+}
+
+.side-col .tab-item-link.error span.error,
+.side-col .ui-tabs-loading span.loader {
+    display: block;
+}
+
+.side-col .tab-item-link.error span.error:after {
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e006'; /* warning icon */
+    color: #d87e34;
+}
+
+.side-col .ui-tabs-loading span.loader:after {
+    background: url(../mui/images/ajax-loader-small.gif) no-repeat 50% 50%;
+    display: block;
+    content: '';
+    width: 16px;
+    height: 16px;
+}
+
+/* TODO: styles for navigation on System > Configuration page */
+
+/*
+    Horizontal Tabs
+-------------------------------------- */
+.ui-tabs {
+    clear: both;
+}
+.tabs-horiz {
+    list-style: none;
+    margin: 0;
+    padding: 3px 0 0;
+}
+
+.tabs-horiz > li {
+    float: left;
+    margin: 0 5px 0 0;
+}
+
+.tabs-horiz .ui-tabs-anchor {
+    position: relative;
+    display: block;
+    text-decoration: none;
+    .style7();
+    background: #e0dacf;
+    padding: 11px 15px 13px;
+    border-radius: 2px 2px 0 0;
+}
+
+.tabs-horiz > .ui-state-active .ui-tabs-anchor {
+    background: #fff;
+}
+
+/*
+    System -> Configuration page navigation in sidebar
+-------------------------------------- */
+.config-nav,
+.config-nav .items {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+
+.config-nav-block {
+
+}
+
+.config-nav-block:last-child {
+    margin-bottom: 30px;
+}
+
+.config-nav .item {
+    border-top: 1px solid #E5E1DB;
+}
+
+.config-nav .item:first-child {
+    border-top: 0;
+}
+
+.config-nav .title {
+    margin-bottom: 0;
+    text-transform: uppercase;
+    color: #444;
+    border: solid #CCC;
+    border-width: 1px 0;
+    opacity: .8;
+    padding: 7px 17px;
+    background: #E6E3DE;
+}
+
+.config-nav .item-nav {
+    display: block;
+    padding: 8px 18px;
+    text-decoration: none;
+    color: #676056;
+    transition: background .3s ease-in-out;
+}
+
+.config-nav .item-nav:hover {
+    background: #fff;
+}
+
+.config-nav .item-nav.active {
+    position: relative;
+    border-left: 3px solid #d87e34;
+    padding-left: 15px;
+    background: #dedcd8;
+    box-shadow: 0 1px 2px #ccc inset;
+}
+
+.config-nav .item-nav.active:after {
+    position: absolute;
+    top: 50%;
+    right: 0;
+    width: 14px;
+    margin-top: -14px;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e02b'; /* left turned triangle icon */
+    font-size: 22px;
+    text-shadow: -1px 1px 0 #bdbbb7;
+    color: #fff;
+    overflow: hidden;
+    z-index: 3;
+}
+
+
+/*
+    Switcher
+-------------------------------------- */
+.switcher {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none; // use in 41 Chrome
+    -moz-user-select: none; // use in 36 Firefox
+    -ms-user-select: none; // use in 11 IE
+    user-select: none;
+    cursor: pointer;
+    display: inline-block;
+    overflow: hidden;
+}
+
+.switcher input[type="checkbox"] {
+    position: absolute;
+    left: -999em;
+}
+
+.switcher-label {
+    .style2();
+    text-transform: uppercase;
+}
+
+.switcher-label:after {
+    display: inline-block;
+    margin-left: 10px;
+    vertical-align: bottom;
+    width: 34px;
+    height: 17px;
+    background: url(../images/switcher.png) no-repeat;
+    content: '';
+}
+
+.switcher input[type="checkbox"] + .switcher-label:before {
+    content: attr(data-text-off);
+    background: none;
+    border-radius: 0;
+    border: none;
+    float: none;
+    font-size: 14px;
+    height: auto;
+    line-height: normal;
+    margin: 0;
+    text-align: left;
+    width: auto;
+}
+
+.switcher input[type="checkbox"]:focus + .switcher-label:after {
+    border-color: #007bdb;
+}
+
+.switcher input[type="checkbox"]:checked + .switcher-label:after {
+    background-position: -34px 0;
+}
+
+.switcher input[type="checkbox"]:checked + .switcher-label:before {
+    content: attr(data-text-on);
+}
+
+/*
+    Content actions panel (with buttons, switchers...)
+-------------------------------------- */
+// .page-actions {
+//     padding: 0 0 20px;
+//     text-align: right;
+// }
+
+.page-actions .buttons-group {
+    vertical-align: top;
+    text-align: left;
+}
+
+.page-actions > .switcher {
+    display: inline-block;
+    vertical-align: top;
+    margin: 6px 10px 0 0;
+}
+
+// .main-col .page-actions {
+//     padding: 20px 0;
+// }
+
+.catalog-product-index .page-actions {
+    padding-top: 0;
+}
+
+[class^=" catalog-product-"] .store-scope .store-tree {
+    float: left;
+}
+
+// TODO: refactor trees
+.x-tree ul {
+    margin: 0;
+    padding: 0;
+}
+
+.tree-wrapper {
+    width: 100%;
+    overflow: auto;
+    float: left; // Fixed Chrome scroll issue
+}
+
+.page-actions.fixed .page-actions-inner:before {
+    content: attr(data-title);
+    float: left;
+    font-size: 20px;
+    max-width: 50%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+/* Dynamic Grid */
+/* Used in pages like Catalog -> Attributes */
+.dynamic-grid th {
+    padding: 2px;
+    width: 100px;
+}
+
+.dynamic-grid td {
+    padding: 2px;
+}
+
+.dynamic-grid td input {
+    width: 94px;
+}
+
+tr.dynamic-grid td,
+tr.dynamic-grid th {
+    padding: 2px 10px 2px 0;
+    width: auto;
+}
+
+tr.dynamic-grid input.input-text {
+    width: 154px;
+}
+
+.available {
+    color: #080;
+    font-weight: bold;
+}
+
+.not-available {
+    color: #800;
+}
+
+.categories-side-col {
+    padding: 0 3%;
+}
+
+//
+//    Website store views tree
+// --------------------------------------
+.store-tree {
+    .website-name {
+        font-size: 14px;
+        font-weight: bold;
+    }
+    .webiste-groups {
+        margin: 5px 0 20px 18px;
+        dt {
+            font-weight: bold;
+        }
+        dd {
+            margin: 5px 0 15px 15px;
+            > ul {
+                list-style: none;
+                margin: 0;
+                padding: 0;
+                > li {
+                    margin: 0 0 5px;
+                }
+            }
+        }
+    }
+}
+
+//
+//    Customer Reviews
+// --------------------------------------
+.field-detailed_rating {
+    .control-value {
+        padding: 0;
+    }
+    .nested {
+        padding: 0;
+    }
+    .field-rating {
+        margin: 15px 0 0;
+        &:first-child {
+            margin-top: 0;
+        }
+        .label {
+            width: 75px;
+        }
+        .control {
+            unicode-bidi: bidi-override;
+            direction: rtl;
+            width: 125px;
+            label {
+                color: #ccc;
+                cursor: pointer;
+                font-size: 18px;
+                float: right;
+                overflow: hidden;
+                white-space: nowrap;
+                width: 18px;
+                transition: color 150ms linear;
+                &:before {
+                    display: none;
+                }
+            }
+        }
+    }
+    input[type="radio"] {
+        display: none;
+    }
+}
+
+//
+//    Tree Store Scope
+// --------------------------------------
+.tree-store-scope {
+    .buttons-set {
+        margin-bottom: 9px;
+        button {
+            margin-right: 4px;
+        }
+    }
+    .field {
+        margin: 0 0 5px;
+        input[type="checkbox"] {
+            margin-right: 8px;
+            position: relative;
+            top: 2px;
+        }
+        .addafter {
+            display: inline-block;
+            padding-top: 6px;
+        }
+    }
+    [class^="field field-website_"] .label,
+    [class^="field field-group_"] .label,
+    [class^="field field-w_"] .label,
+    [class^="field field-sg_"] .label {
+        text-align: left;
+        font-size: 18px;
+        padding-right: 0;
+        width: auto;
+    }
+    [class^="field field-group_"] .label,
+    [class^="field field-sg_"] .label {
+        padding-left: 20px;
+    }
+    .tooltip .help {
+        margin-top: 11px;
+    }
+}
+
+//
+//    Widgets
+//--------------------------------------
+.widget-layout-updates .fieldset-wrapper,
+.widget-layout-updates .data-table {
+    margin: 0 0 18px;
+}
+
+.widget-layout-updates .fieldset-wrapper-title label {
+    &:not(.mage-error) {
+        padding: 10px 0 0;
+    }
+}
+
+.widget-layout-updates .fieldset-wrapper-title select {
+    margin: 3px 10px 5px;
+}
+
+.widget-layout-updates .fieldset-wrapper-title span,
+.widget-layout-updates .fieldset-wrapper-title select {
+    vertical-align: middle;
+}
+
+.widget-layout-updates .data-table {
+    table-layout: fixed;
+}
+
+.widget-layout-updates .data-table,
+.widget-layout-updates .data-table tr:nth-child(odd) td,
+.widget-layout-updates .data-table tr:nth-child(odd):hover td {
+    background: none;
+    border: none;
+}
+
+.widget-layout-updates .data-table th,
+.widget-layout-updates .data-table tbody td {
+    border: none;
+    padding: 5px 10px;
+}
+
+.widget-layout-updates .data-table select {
+    margin: 0;
+    max-width: 99%;
+    overflow: hidden;
+}
+
+.widget-layout-updates .chooser_container {
+    padding: 0 10px;
+    margin-bottom: 18px;
+}
+
+.widget-layout-updates .chooser_container p {
+    margin: 0 0 18px;
+}
+
+.widget-layout-updates .chooser_container p img,
+.widget-layout-updates .chooser_container p input {
+    vertical-align: middle;
+}
+
+/*
+    Preview window
+-------------------------------------- */
+.preview-window {
+    background: #fff;
+}
+
+.preview-window .toolbar {
+    background: #f5f2ed;
+    padding: 20px;
+}
+
+.preview-window .toolbar .switcher {
+    margin: 0;
+}
+
+.preview-window .toolbar .switcher span {
+    background: none;
+    width: auto;
+}
+
+/*
+    Global 'No Products found' block
+-------------------------------------- */
+.no-products-message {
+    background: #fbfaf6;
+    padding: 12px;
+    text-align: center;
+    font-size: 12px;
+    color: #666;
+    margin-bottom: 13px;
+}
+
+/*
+    WYSIWYG
+-------------------------------------- */
+.action-wysiwyg {
+    margin: 10px 0;
+}
+
+#catalog-wysiwyg-editor .buttons-set {
+    margin-bottom: 9px;
+}
+
+#catalog-wysiwyg-editor .buttons-set button {
+    margin-right: 4px;
+}
+
+/*
+    Add Attribute Popup
+-------------------------------------- */
+#create_new_attribute {
+    overflow: hidden;
+}
+
+#create_new_attribute > .loading-mask {
+    left: -25px;
+    top: -50px;
+}
+
+.attribute-popup {
+    background: none;
+}
+
+.attribute-popup #edit_form {
+    padding-bottom: 80px;
+}
+
+.attribute-popup #edit_form > .fieldset > .legend {
+    display: none;
+}
+
+.attribute-popup .wrapper-popup {
+    padding: 0;
+    height: 511px;
+    overflow-x: hidden;
+    overflow-y: auto;
+}
+
+.attribute-popup .fieldset,
+.attribute-popup .fieldset-wrapper {
+    border: none;
+    border-radius: 0;
+    padding: 4px 0 20px;
+    margin: 0 23px 20px;
+}
+
+.attribute-popup .fieldset-wrapper {
+    border-top: none;
+}
+
+.attribute-popup .fieldset-wrapper:not(.collapsable-wrapper) .fieldset-wrapper-title {
+    border-bottom: none;
+}
+
+.attribute-popup .fieldset-wrapper .fieldset-wrapper-content > .fieldset {
+    margin-left: 0;
+    margin-right: 0;
+}
+
+.attribute-popup .fieldset > .field > input[type="checkbox"] {
+    margin-top: 7px;
+}
+
+.attribute-popup .fieldset .label {
+    width: 35%;
+}
+
+.attribute-popup .collapsable-wrapper,
+#manage-titles-wrapper .fieldset-wrapper-title {
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.attribute-popup .collapsable-wrapper .fieldset-wrapper-title > .title:before {
+    color: #797269;
+    font-size: 14px;
+    top: 9px;
+}
+
+.attribute-popup form .entry-edit:first-child .fieldset {
+    border-bottom: 1px solid #dfdcd7;
+}
+
+.attribute-popup .fieldset .legend {
+    border: none;
+}
+
+.attribute-popup .page-actions [class^='action-'] {
+    margin-left: 18px;
+}
+
+.attribute-popup #base_fieldset {
+    padding-top: 20px;
+}
+
+.attribute-popup #base_fieldset > .legend {
+    display: none;
+}
+
+.attribute-popup .page-actions-placeholder {
+    display: none;
+}
+
+.attribute-popup .page-actions.fixed .page-actions-inner {
+    background: #fff;
+    padding: 0;
+    min-width: 100%;
+    max-width: 100%;
+    min-height: 100%;
+    margin: 0;
+}
+
+.attribute-popup .footer {
+    display: none;
+}
+
+#manage-options-panel > .data-table {
+    clear: both;
+}
+
+// Custom grids view
+.CustomGridView {
+    .col-1-layout {
+        background: transparent;
+    }
+}
+
+// Custom grid action view for Primary Add Button at grid tables
+.CustomGridAction {
+    .grid-actions {
+        border-radius: 5px 5px 0 0;
+        margin-top: 20px;
+        padding: 9px 15px;
+    }
+    .page-actions.fixed {
+        left: 0;
+        margin: 0;
+        padding: 0 21px;
+        position: fixed;
+    }
+    .page-actions {
+        position: absolute;
+        z-index: 2;
+        margin-top: 10px;
+        margin-left: 15px;
+        padding: 0;
+    }
+}
+
+// Custom page-actions view
+.adminhtml-googleshopping-items-index .grid-title {
+    padding: 15px;
+}
+
+.adminhtml-googleshopping-items-index .grid {
+    padding-bottom: 25px;
+}
+
+.adminhtml-googleshopping-items-index .grid-title .title {
+    font-size: 18px;
+}
+
+.adminhtml-googleshopping-items-index .page-actions {
+    float: right;
+}
+
+.adminhtml-system-backup-index .page-actions.fixed,
+.adminhtml-scheduled-operation-index .page-actions.fixed,
+.adminhtml-system-currency-index .page-actions.fixed,
+.adminhtml-system-currencysymbol-index .page-actions.fixed,
+.adminhtml-cache-index .page-actions.fixed,
+.adminhtml-system-store-index .page-actions.fixed,
+.sales-order-status-index .page-actions.fixed {
+    background-image: none;
+    padding: 0 21px;
+    position: fixed;
+}
+
+.adminhtml-cache-index .additional-cache-management {
+    margin-bottom: 0;
+}
+
+.sidebar-actions {
+    padding: 14px 0;
+}
+
+.sidebar-actions button {
+    margin: 0 0 5px;
+}
+
+.adminhtml-system-currency-index .page-actions.fixed .import-service {
+    display: inline-block;
+    float: none;
+}
+
+.data-table .fpt-item-container {
+    td {
+        vertical-align: top;
+    }
+    select:first-child {
+        margin-bottom: 8px;
+    }
+}
+
+.eq-ie9 {
+    .col-1-layout,
+    .catalog-product-edit,
+    .catalog-product-new,
+    .sales-order-view,
+    .catalog-category-edit {
+        table.data {
+            table-layout: fixed;
+            word-wrap: break-word;
+            th {
+                word-wrap: normal;
+                overflow: hidden;
+                vertical-align: top;
+                > span {
+                    white-space: normal;
+                }
+            }
+            th:not(.col-select):not(.col-id):not(.col-severity),
+            td:not(.col-select):not(.col-id):not(.col-severity) {
+                width: auto;
+            }
+        }
+    }
+
+    #setGrid_table,
+    #attributeGrid_table,
+    .custom-options .data-table,
+    .ui-dialog .data,
+    .col-1-layout .data,
+    .sales-order-view .data,
+    .catalog-category-edit .data {
+        word-wrap: break-word;
+        table-layout: fixed;
+    }
+    .fieldset-wrapper {
+        table.data {
+            table-layout: inherit;
+            word-wrap: normal;
+        }
+    }
+    .sales-order-create-index table.data,
+    .sales-order-create-index .fieldset-wrapper table.data {
+        table-layout: fixed;
+        word-wrap: break-word;
+        th {
+            word-wrap: normal;
+            overflow: hidden;
+            vertical-align: top;
+            > span {
+                white-space: normal;
+            }
+        }
+    }
+
+    .entry-edit .product-options .grouped-items-table {
+        table-layout: fixed;
+        word-wrap: break-word;
+        th {
+            word-wrap: normal;
+            overflow: hidden;
+            vertical-align: top;
+            > span {
+                white-space: normal;
+            }
+        }
+    }
+
+    .catalog-category-edit,
+    .adminhtml-cache-index,
+    .adminhtml-process-list,
+    .indexer-indexer-list,
+    .adminhtml-notification-index {
+        table.data {
+            table-layout: inherit;
+            word-wrap: normal;
+        }
+    }
+}
+
+// Clearfix
+.clearfix:before,
+.clearfix:after,
+[class$="-layout"]:after,
+.tabs-horiz:before,
+.tabs-horiz:after,
+.page-create-order:before,
+.page-create-order:after,
+.order-addresses:before,
+.order-addresses:after,
+.order-methods:before,
+.order-methods:after,
+.order-summary:before,
+.order-summary:after,
+.order-methods:before,
+.order-methods:after,
+.grid-actions:before,
+.grid-actions:after,
+.fieldset-wrapper-title:before,
+.fieldset-wrapper-title:after {
+    content: "";
+    display: table;
+}
+
+.clearfix:after,
+[class$="-layout"]:after,
+.tabs-horiz:after,
+.page-create-order:after,
+.order-addresses:after,
+.order-methods:after,
+.order-summary:after,
+.order-methods:after,
+.grid-actions:after,
+.fieldset-wrapper-title:after {
+    clear: both;
+}
+
+/* ==========================================================================
+   pages.less (begin)
+   ========================================================================== */
+[class^=" catalog-product-"] .page-actions .action-back.mage-error,
+[class^=" newsletter-"] .page-actions .action-back.mage-error {
+    color: #b57c72;
+}
+
+.field-weight .control .field:first-child {
+    width: 36%;
+    margin-right: 15px;
+}
+
+#allow_open_amount {
+    margin-top: 8px;
+}
+
+.catalog-product-new .user-defined.type-select select,
+.catalog-product-edit .user-defined.type-select select {
+    width: 100%;
+}
+
+#tab_content_downloadableInfo .data-table td {
+    vertical-align: top;
+    .row {
+        margin-bottom: 10px;
+    }
+}
+
+/*
+    Customer
+---------------------------------------*/
+.customer-index-edit .grid tr.headings th > span {
+    white-space: normal;
+}
+
+#customer_info_tabs_account_content #_accountsendemail {
+    margin-top: 8px;
+}
+
+.customer-information:before,
+.customer-information:after {
+    content: "";
+    display: table;
+}
+
+.customer-information:after {
+    clear: both;
+}
+
+.customer-information .data-table,
+.customer-information address {
+    width: 48.5%;
+}
+
+.customer-information .data-table {
+    float: left;
+    width: 48.5%;
+}
+
+.customer-information address {
+    padding-top: 4px;
+    line-height: 2.2;
+    float: right;
+}
+
+.address-list {
+    list-style: none;
+    width: 278px;
+    margin: 0 0 10px;
+    padding: 0;
+    float: left;
+}
+
+.address-list li {
+    border: 1px solid #d9d2ca;
+    background: #f7f2ec;
+    padding: 10px 10px 15px;
+    cursor: pointer;
+    margin-bottom: -1px;
+}
+
+.address-list li.ui-state-active {
+    background: #fff;
+    position: relative;
+    box-shadow: 0 1px 1px 0 rgba(217, 210, 202, 1);
+    margin-left: -2px;
+    padding-left: 12px;
+}
+
+.address-list li.ui-state-active:before,
+.address-list li.ui-state-active:after {
+    position: absolute;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    font-weight: normal;
+    font-size: 18px;
+    color: #fff;
+    content: "\e02a";
+    speak: none;
+    line-height: 11px;
+    width: 10px;
+    right: -9px;
+    text-indent: -6px;
+    top: 50%;
+    margin-top: -5px;
+    z-index: 2;
+}
+
+.address-list li.ui-state-active:before {
+    color: #d9d2ca;
+    right: -11px;
+    z-index: 1;
+}
+
+.address-list li.address-list-actions:before,
+.address-list li.address-list-actions:after {
+    display: none;
+}
+
+.address-list li.address-list-actions {
+    padding: 20px 0 0;
+    border: 0;
+    background: none;
+    box-shadow: none;
+    cursor: default;
+}
+
+.address-list li.address-list-actions:first-child {
+    padding: 0;
+}
+
+.address-list .label {
+    float: none;
+    width: auto;
+    padding: 0 0 0 10px;
+}
+
+.address-list input[type="checkbox"] {
+    float: left;
+}
+
+.address-list address:first-line {
+    /*  its not work  if First Name and Last Name in two lines */
+    font-weight: bold;
+}
+
+.address-list address {
+    margin: 0 20px 15px 0;
+    line-height: 1.5;
+}
+
+.address-list-item-actions {
+    float: right;
+}
+
+.address-list .action-edit {
+    display: none;
+}
+
+.address-list .field {
+    margin-bottom: 15px;
+}
+
+.ui-tabs-nav .address-list-item a {
+    text-decoration: none;
+    color: #676056;
+}
+
+.address-item-edit {
+    margin-left: 277px;
+}
+
+.address-item-edit-content {
+    border: 1px solid #dad1c8;
+    background: #fff;
+    box-shadow: 0 2px 1px 0 rgba(217, 210, 202, .5);
+    padding-left: 10px;
+}
+
+.address-item-edit-content .fieldset:last-child {
+    margin-bottom: 29px;
+}
+
+.address-item-edit .legend {
+    border-bottom: 0;
+    margin: 0 0 18px;
+    padding-left: 20%;
+}
+
+.address-item-edit .legend span {
+    padding-left: 0;
+}
+
+.address-item-edit-actions {
+    padding: 0 0 18px 20%;
+}
+
+/*
+    Configuration -> Design
+-------------------------------------- */
+#row_design_theme_ua_regexp .design_theme_ua_regexp {
+    float: left;
+    width: 100%;
+}
+#row_design_theme_ua_regexp .tooltip {
+    margin-top: 8px;
+}
+#row_design_theme_ua_regexp .note {
+    clear: both;
+}
+
+/*
+    Configuration -> Payment Methods
+-------------------------------------- */
+.adminhtml-system-config-edit .payflow-settings-notice .important-label {
+    .style32();
+}
+
+.adminhtml-system-config-edit .payflow-settings-notice ul.options-list strong {
+    .style28();
+}
+
+/*
+    CMS -> Banners
+-------------------------------------- */
+
+/* Banner Properties */
+#banner_properties_customer_segment_ids {
+    min-width: 20%;
+}
+
+/* Content */
+
+.field-store_default_content .buttons-set {
+    margin-bottom: 9px;
+}
+
+.field-store_default_content .buttons-set button {
+    margin-right: 4px;
+}
+
+.field-store_0_content_use input[type="checkbox"] {
+    margin-right: 8px;
+    position: relative;
+    top: 2px;
+}
+
+/*
+    CMS -> Manage Hierarchy
+-------------------------------------- */
+
+.cms-hierarchy .cms-scope {
+    float: right;
+    margin-right: 25px;
+    position: relative;
+    top: 2px;
+    z-index: 1;
+}
+
+.cms-hierarchy #tree-container {
+    margin-top: 25px;
+    overflow: auto;
+    padding-bottom: 10px;
+}
+
+.cms-hierarchy .buttons-set {
+    margin-bottom: 10px;
+}
+
+.cms-hierarchy .cms-hierarchy-tree {
+    width: 48.93617020799999%;
+    float: left;
+    margin: 10px 0 8px 0;
+}
+
+.cms-hierarchy .cms-hierarchy-node {
+    width: 48.93617020799999%;
+    float: left;
+    margin: 10px 0 8px 2.127659574%;
+}
+
+.cms-hierarchy #cms_page_grid_container {
+    clear: both;
+}
+
+.cms-hierarchy .store-switcher {
+    position: relative;
+    top: 10px;
+}
+
+.cms-hierarchy .store-switcher label {
+    margin-right: 8px;
+}
+
+.cms-hierarchy-node #node_properties_fieldset #node_preview {
+    position: relative;
+    top: 6px;
+}
+
+.cms-hierarchy-node .form-inline .label {
+    width: 30%;
+}
+
+/*
+    CMS -> Widgets
+-------------------------------------- */
+
+#widget_instace_tabs_properties_section_content .widget-option-label {
+    margin-top: 6px;
+}
+
+/*
+    CMS -> Static Blocks
+-------------------------------------- */
+
+#buttonsblock_content.buttons-set {
+    margin-bottom: 9px;
+}
+
+#buttonsblock_content.buttons-set button {
+    margin-right: 4px;
+}
+
+/*
+    CMS -> Manage Content
+-------------------------------------- */
+
+/* Content */
+
+.cms-manage-content-actions .buttons-set {
+    margin-bottom: 9px;
+}
+
+.cms-manage-content-actions .buttons-set button {
+    margin-right: 4px;
+}
+
+.cms-manage-content-actions textarea {
+    width: 100%;
+}
+
+/*
+    System -> Action Log -> Report
+-------------------------------------- */
+.adminhtml-logging-details .log-details-grid table {
+    th {
+        border: 1px solid #c9c2b8;
+        border-width: 0 0 1px;
+        padding: 6px 10px 7px;
+        background: #fff;
+        .style2();
+
+        span {
+            border: 0;
+            padding: 0;
+        }
+    }
+
+    td {
+        border: none;
+        padding: 6px 10px 7px;
+        background: #fff;
+    }
+
+    tr:last-child td {
+        border: 1px solid #eae8e4;
+        border-width: 0 0 1px;
+    }
+
+    tr.on-mouse {
+        cursor: inherit;
+    }
+
+    tr:nth-child(odd) td,
+    tr.on-mouse:nth-child(odd):hover td {
+        background: #fbfaf6;
+    }
+}
+
+//
+//    System -> Roles
+// --------------------------------------
+
+#gws_container ul {
+    padding: 0;
+    margin: 0;
+    list-style: none;
+}
+
+#gws_container ul ul {
+    margin: .8em 0 .8em 1.4em;
+}
+
+#gws_container input[type="checkbox"] {
+    margin-right: 3px;
+    position: relative;
+    top: -1px;
+}
+
+//
+//    Reports
+// -------------------------------------- */
+.reports-title .page-actions {
+    float: right;
+}
+
+.reports-title .store-switcher {
+    padding: 14px 0 18px;
+}
+
+.reports-content select {
+    width: 160px;
+}
+
+.reports-content input.hasDatepicker {
+    width: 133px;
+}
+
+.reports-content .required .control {
+    position: relative;
+}
+
+.reports-content input.hasDatepicker + label.mage-error {
+    left: 0;
+    position: absolute;
+    top: 30px;
+}
+
+.reports-title:before,
+.reports-title:after {
+    content: "";
+    display: table;
+}
+
+.reports-title:after {
+    clear: both;
+}
+
+//
+//    Reports - PayPal Settlement Reports
+//--------------------------------------
+
+.adminhtml-paypal-reports-index .grid tr.headings th > span {
+    white-space: normal;
+}
+
+.adminhtml-paypal-reports-index .col-transaction_event_code {
+    max-width: 150px;
+}
+
+.adminhtml-paypal-reports-index .col-amount,
+.adminhtml-paypal-reports-index .col-fee-amount {
+    text-align: right;
+}
+
+/*
+    Newsletter Templates
+-------------------------------------- */
+.newsletter-template-index .col-id {
+    width: 35px;
+}
+
+.newsletter-template-index .col-actions {
+    width: 80px;
+}
+
+.newsletter-template-index .col-type {
+    width: 100px;
+}
+
+.newsletter-template-index .col-added,
+.newsletter-template-index .col-updated {
+    width: 140px;
+}
+
+[class^=' newsletter-'] .buttons-set {
+    margin: 0 0 15px;
+}
+
+[class^=" newsletter-"] .buttons-set button {
+    margin-right: 4px;
+}
+
+/*
+    Newsletter - Queue
+-------------------------------------- */
+.newsletter-queue-index .col-id {
+    width: 35px;
+}
+
+.newsletter-queue-index .col-finish,
+.newsletter-queue-index .col-start {
+    width: 130px;
+}
+
+.newsletter-queue-index .col-status,
+.newsletter-queue-index .col-processed,
+.newsletter-queue-index .col-recipients {
+    white-space: nowrap;
+    width: 85px;
+}
+
+.newsletter-queue-index td.col-processed,
+.newsletter-queue-index td.col-recipients {
+    text-align: right;
+}
+
+.newsletter-queue-index .col-actions {
+    width: 80px;
+}
+
+/*
+    Newsletter - Subscribers
+-------------------------------------- */
+.newsletter-subscriber-index .col-id {
+    width: 35px;
+}
+
+.newsletter-subscriber-index .col-type {
+    width: 75px;
+}
+
+.newsletter-subscriber-index .col-status {
+    white-space: nowrap;
+    width: 85px;
+}
+
+/*
+    Newsletter - Problems
+-------------------------------------- */
+.newsletter-problem-index .col-select {
+    width: 25px;
+}
+
+.newsletter-problem-index .col-id {
+    width: 35px;
+}
+
+.newsletter-problem-index .col-start {
+    width: 130px;
+}
+
+.newsletter-problem-index .col-error-code {
+    width: 150px;
+}
+
+
+.table-fieldset-alt,
+.type-options {
+    margin-bottom: 20px;
+}
+
+.table-fieldset-alt thead th,
+.table-fieldset-alt tbody tr td {
+    border-width: 0;
+}
+
+.table-fieldset-alt tbody tr:nth-child(odd) td,
+.table-fieldset-alt tbody tr:nth-child(odd):hover td {
+    background: #fff;
+}
+
+/*
+    System - Tax
+--------------------------------------*/
+.tax-rate-popup .ui-dialog-content.ui-widget-content {
+    padding: 10px 10px 0;
+}
+
+.tax-rate-popup .fieldset {
+    margin: 0;
+}
+
+.tax-rate-popup .field {
+    margin-bottom: 20px;
+}
+
+.tax-rate-popup .field .label {
+    margin: 8px 0 0;
+    width: 30%;
+    padding: 0 30px 0 0;
+    float: left;
+    text-align: right;
+    box-sizing: content-box;
+}
+
+.tax-rate-popup .field .control {
+    width: 58%;
+    margin: 0;
+    float: left;
+}
+
+.tax-rate-popup .field .control select,
+.tax-rate-popup .field .control .input-text {
+    width: 100%;
+}
+
+.tax-rate-popup .field-rate .control .input-text {
+    width: 50%;
+}
+
+.tax-rate-popup .field-rate label.mage-error {
+    display: block;
+}
+
+.tax-rate-popup .tax-rate-titles-note-td {
+    margin-left: 26%;
+    padding-left: 20px;
+}
+
+.field-tax_rate,
+.field-tax_customer_class,
+.field-tax_product_class {
+    position: relative;
+}
+
+.mselect-hidden + .mage-error {
+    position: absolute;
+    top: 100%;
+}
+
+/*
+    Tags
+-------------------------------------- */
+.tag-title {
+    overflow: hidden;
+}
+
+.tag-title .page-actions {
+    float: right;
+}
+
+/*
+    Attribute Mapping
+-------------------------------------- */
+.field-attributes_box .control-value {
+    width: 100%;
+}
+
+.adminhtml-googleshopping-types-new #attribute_set {
+    padding: 0;
+}
+
+.adminhtml-googleshopping-types-new #gcontent_attributes_container {
+    margin-top: -6px;
+}
+
+
+/*
+    Sales
+-------------------------------------- */
+
+#order-totals strong {
+    .style28();
+}
+
+#order-shipping-method-summary a {
+    .style3();
+}
+
+.order-sidebar {
+    float: left;
+    width: 22%;
+}
+
+.customer-current-activity-inner {
+    padding: 18px;
+}
+
+.customer-current-activity .action-refresh {
+    float: right;
+    &:hover {
+        text-decoration: none;
+    }
+}
+
+.order-currency {
+    padding: 18px;
+}
+.order-detail {
+}
+.order-details-existing-customer {
+    background: #fff;
+    padding-left: 0;
+    position: relative;
+    width: 77.9%;
+    float: right;
+}
+
+.order-billing-address,
+.order-billing-method,
+[class*="-order-"] .order-history,
+[class*="-order-"] .order-comments-history,
+[class*="-order-"] .order-information,
+[class*="-order-"] .order-billing-address,
+[class*="-order-"] .order-payment-method,
+[class^=" adminhtml-rma-"] .order-comments-history,
+[class^=" adminhtml-rma-"] .order-shipping-address,
+[class^=" adminhtml-rma-"] .rma-request-details {
+    float: left;
+    width: 49.5%;
+}
+
+.order-shipping-address,
+.order-shipping-method,
+[class*="-order-"] .order-totals,
+[class*="-order-"] .order-account-information,
+[class*="-order-"] .order-shipping-address,
+[class*="-order-"] .order-payment-method-virtual,
+[class*="-order-"] .order-shipping-method,
+[class^=" adminhtml-rma-"] .rma-confirmation,
+[class^=" adminhtml-rma-"] .order-shipping-method,
+[class^=" adminhtml-rma-"] .order-return-address {
+    float: right;
+    width: 49%;
+}
+
+[class*="-order-"] {
+    .order-card-validation {
+        width: 49.5%;
+        box-sizing: border-box;
+
+        .actions {
+            margin-top: 17px;
+        }
+    }
+    .order-totals {
+        .field.choice {
+            margin: 20px 0;
+        }
+    }
+}
+
+#order-data .order-account-information {
+    float: none;
+    width: auto;
+}
+
+[class^=" sales-"] .order-information .fieldset-wrapper > .fieldset-wrapper-title .title {
+    width: 100%;
+}
+
+#order-data .actions .action-add,
+#order-data .actions .action-delete,
+#order-customer-selector .actions .action-add {
+    margin: 0 0 0 20px;
+}
+
+#order-data .order-methods ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+#order-data .order-methods dl,
+#order-data .order-methods dt,
+#order-data .order-methods dd,
+#order-data .payment-methods dl,
+#order-data .payment-methods dt,
+#order-data .payment-methods dd {
+    margin: 0;
+    padding: 0;
+}
+
+#order-data .order-methods dd + dt,
+#order-data .payment-methods dd + dt {
+    margin-top: 17px;
+}
+
+#order-data .order-methods dt,
+#order-data .payment-methods dt {
+    margin: 0 0 8px;
+}
+
+.order-coupons .box-left,
+.order-gift-options .box-left {
+    float: left;
+    width: 49%;
+}
+
+.order-coupons .box-right,
+.order-gift-options .box-right {
+    float: right;
+    width: 49%;
+}
+
+.order-gift-options .box-left:last-child,
+.order-gift-options .fieldset-wrapper-title + .box-right {
+    float: none;
+    width: auto;
+}
+
+.order-coupons .content {
+    .action- {
+        vertical-align: top;
+    }
+    input[type="text"] {
+        height: 28px;
+    }
+}
+
+.order-gift-options {
+    fieldset {
+        border-radius: 5px;
+    }
+
+    .gift-wrapping-form select {
+        margin-left: 10px;
+    }
+
+    .giftmessage-entire-order textarea {
+        height: 6em;
+        width: 100%;
+    }
+
+    .giftmessage-whole-order-container {
+        textarea {
+            height: 6em;
+            width: 100%;
+        }
+        .actions {
+            margin-left: 20%;
+        }
+    }
+}
+
+.ui-dialog.gift-options-popup .ui-dialog-content {
+    padding: 25px;
+}
+
+.ui-dialog.gift-options-popup .ui-dialog-content h4 {
+    margin: 0 0 17px;
+}
+
+.gift-options-tooltip {
+    background: #fff;
+    border-radius: 5px;
+    padding: 10px;
+    box-shadow: 0 0 3px rgba(0, 0, 0, .3);
+}
+
+#order-data .box-left fieldset,
+#order-data .box-right fieldset {
+    border-radius: 5px;
+}
+
+.adminhtml-rma-new .order-totals,
+.order-comments-history .order-comments-history,
+[class^=" adminhtml-rma-"] .rma-comments-history {
+    float: none;
+    width: 100%;
+}
+
+[class*="-order-"] .order-billing-address .actions,
+[class*="-order-"] .order-shipping-address .actions {
+    margin: 17px 0;
+}
+
+[class*="-order-"] .order-billing-address .control + label,
+[class*="-order-"] .order-shipping-address .control + label {
+    margin: 17px 0 0;
+}
+
+.sales-order-create-index #order-message .messages .message,
+.sales-order-edit-index #order-message  .messages .message {
+    margin: 0 0 60px;
+}
+
+//
+//    Sales -> Create Order
+// --------------------------------------
+.sales-order-create-index {
+
+}
+
+.sales-order-create-index .order-items.fieldset-wrapper,
+.sales-order-create-index .order-search-items.fieldset-wrapper,
+.sales-order-create-index .order-additional-area.fieldset-wrapper,
+.sales-order-create-index .order-errors,
+.checkout-index-index .checkout-errors {
+    .fieldset-wrapper-title {
+        border-bottom: 0;
+        margin: 0;
+    }
+    .title {
+        border-bottom: 1px solid #cac3b4;
+        margin: 0 0 18px;
+        width: 100%;
+    }
+}
+
+[class*="-order-"] {
+    .fieldset-wrapper-title {
+        .actions {
+            float: right;
+            padding: 0;
+            a:link,
+            a:visited,
+            a:hover,
+            a:active {
+                color: #a29c94;
+            }
+        }
+    }
+    .order-customer-selector .fieldset-wrapper-title .actions {
+        padding-top: 8px;
+    }
+    .order-details .fieldset-wrapper-title .actions {
+        padding-bottom: 15px;
+    }
+}
+
+.sales-order-create-index {
+    // Configure product popup
+    .ui-dialog {
+        // Virtual and downloadable product
+        .downloadable.information .link {
+            .label {
+                margin-left: 0;
+            }
+            .nested {
+                margin-left: 8px;
+            }
+        }
+        // Bundle product
+        .fieldset.bundle {
+            .nested {
+                padding-left: 6px;
+                .field {
+                    margin: 0 0 5px;
+                }
+                .label {
+                    font-size: 13px;
+                    margin: 0;
+                }
+                .qty .control {
+                    display: inline-block;
+                    margin: 0 0 0 10px;
+                    width: 60px;
+                }
+            }
+        }
+    }
+    .order-billing-method {
+        .payment-methods {
+            .fieldset {
+                padding: 0;
+                margin: 0;
+                .field {
+                    margin: 0 0 12px 0;
+                }
+            }
+        }
+    }
+    .grid .action-configure {
+        float: right;
+        &.disabled {
+            cursor: default;
+            opacity: .5;
+            &:hover {
+                text-decoration: none;
+            }
+        }
+    }
+    .order-items.fieldset-wrapper {
+        .clearfix();
+    }
+}
+
+.summary-total {
+    .summary-collapse {
+        cursor: pointer;
+        display: inline-block;
+        &:before {
+            @iconsize: 16px;
+            content: "\e02d";
+            color: #816063;
+            background: #f2ebde;
+            display: inline-block;
+            text-indent: 0;
+            font-size: @iconsize;
+            width:@iconsize;
+            height:@iconsize;
+            line-height: @iconsize;
+            overflow: hidden;
+            font-family: 'MUI-Icons';
+            border:1px solid #ada89e;
+            font-style: normal;
+            vertical-align: top;
+            margin-right:7px;
+            font-weight: normal;
+            speak: none;
+            -webkit-font-smoothing: antialiased;
+            border-radius: 2px;
+        }
+        &:hover:before {
+            background: #cac3b4;
+        }
+    }
+    &.show-details .summary-collapse:before {
+        content: "\e03a";
+    }
+}
+
+tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) td,
+tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(even) td,
+tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(even) td {
+    background:  #fbfaf6;
+}
+
+tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(odd) td,
+tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(odd) td,
+tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) td {
+    background: #fff;
+}
+
+/* ----------------------------------- */
+
+#order-data .page-actions {
+    padding-top: 0;
+}
+
+// #order-data .store-switcher {
+//     margin: -46px 0 0;
+//     position: relative;
+//     width: 50%;
+// }
+
+.create-order-sidebar-container > div + div {
+    border-top: 1px solid #cac3b4;
+    margin-top: 35px;
+}
+
+.create-order-sidebar-container > div .head h5 {
+    .style9();
+    margin: 17px 0 17px;
+}
+
+.customer-current-activity-inner > h4 {
+    .style10();
+    border-bottom: 1px solid #cac3b4;
+    margin-top: 0;
+    padding: 0 0 16px;
+}
+
+.customer-current-activity-inner .auto-scroll {
+    margin-right: -18px;
+    margin-left: -18px;
+    .no-items {
+        padding: 5px 18px;
+        display: block;
+    }
+}
+.customer-current-activity-inner .data-table {
+    thead {
+        background-color: transparent;
+    }
+    thead th {
+        background-color: transparent;
+        .style18();
+        border: 0;
+        &:first-child {
+            padding-left: 18px;
+        }
+        &:last-child {
+            padding-right: 18px;
+        }
+    }
+    tbody tr {
+        td {
+            background-color: transparent;
+            border: 0;
+            &:first-child {
+                padding-left: 18px;
+            }
+            &:first-child {
+                padding-right: 18px;
+            }
+        }
+        &:nth-child(2n + 1) td {
+            background: #e0dace;
+        }
+    }
+}
+.customer-current-activity .action-refresh {
+    float: right;
+}
+
+.customer-current-activity .action-refresh,
+.customer-current-activity .data-table .icon {
+    display: inline-block;
+    text-indent: 100%;
+    overflow: hidden;
+    height: 16px;
+    width: 16px;
+    line-height: 16px;
+    white-space: nowrap;
+}
+
+.customer-current-activity .action-refresh:before,
+.customer-current-activity .data-table .icon:before {
+    content: "\e010";
+    color: #c3c2be;
+    display: block;
+    text-indent: 0;
+    font-size: 16px;
+    line-height: 16px;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    font-weight: normal;
+    speak: none;
+    -webkit-font-smoothing: antialiased;
+}
+
+.customer-current-activity .data-table .icon-remove:before {
+    content: "\e07f";
+}
+
+.customer-current-activity .data-table .icon-add:before {
+    content: "\e071";
+}
+
+.customer-current-activity .auto-scroll {
+    .style18();
+    overflow: auto;
+    max-height: 150px;
+}
+
+.customer-current-activity .auto-scroll + button {
+    margin: 22px 0 0;
+}
+
+.customer-current-activity .actions {
+    border-top: none;
+    margin: 20px 0 0;
+    padding: 0;
+}
+
+.overlay {
+    background: rgba(255, 255, 255, .5);
+    border-radius: 5px;
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+
+    span {
+        color: #111;
+        font-weight: bold;
+        position: absolute;
+        top: 56px;
+        left: 0;
+        margin: 0 8px;
+        padding: 10px;
+        background: #fff;
+    }
+}
+
+//
+//    Order view
+// --------------------------------------
+
+.order-comments-history fieldset {
+    border: 0;
+    margin: 0;
+    padding: 0;
+}
+
+.order-comments-history textarea,
+.rma-history-form textarea {
+    height: 6em;
+    margin: 5px 0 10px;
+    resize: vertical;
+    width: 100%;
+}
+
+.order-comments-history input[type="checkbox"] {
+    margin-right: 5px;
+}
+
+.order-history-comments-options {
+    float: left;
+}
+
+.order-comments-history .actions {
+    float: right;
+}
+
+[class*="-order-"] .fieldset-wrapper address {
+    overflow: auto;
+}
+
+//
+//    Orders comments
+//--------------------------------------
+.note-list {
+    list-style: none;
+    padding: 0;
+    li {
+        border-top: 1px solid #ededed;
+        padding: 9px 0;
+        &:first-child {
+            border: 0;
+            padding-top: 13px;
+        }
+    }
+    div {
+        font-size: 12px;
+    }
+    .note-list-date,
+    .note-list-status,
+    .note-list-customer span {
+        font-weight: bold;
+    }
+    .note-list-time,
+    .note-list-status {
+        border-right: 1px solid #676056;
+        padding: 0 5px 0 0;
+        margin: 0 5px 0 0;
+    }
+    .note-list-customer {
+        white-space: nowrap;
+    }
+    .note-list-comment {
+        margin: 5px 0 0;
+    }
+    .note-list-customer-notapplicable {
+        color: #d87e34;
+    }
+    .note-list-customer-notified {
+        color: #185b00;
+    }
+    .note-list-customer-not-notified {
+        color: #963535;
+    }
+}
+
+[class^=" sales-"] tr.headings .col-parent-transaction-id > span,
+[class^=" sales-"] tr.headings .col-method > span,
+[class^=" sales-"] tr.headings .col-transaction-id > span,
+[class^=" sales-"] tr.headings .col-transaction-type > span,
+[class^=" sales-"] tr.headings .col-gtbase > span,
+[class^=" sales-"] tr.headings .col-gtpurchased > span,
+[class*="-order-"] tr.headings .col-discont > span {
+    white-space: normal;
+}
+
+[class^=" sales-"] .col-2-left-layout .hor-scroll {
+    margin-bottom: -4px;
+    overflow: auto;
+    padding-bottom: 4px;
+    width: 100%;
+}
+
+[class*="-order-"] .col-price .label,
+[class*="-order-"] .col-subtotal .label {
+    display: inline-block;
+    min-width: 60px;
+    white-space: nowrap;
+}
+
+[class*="-order-"] .item-options {
+    margin: 5px 0 5px 10px;
+    dt {
+        font-weight: bold;
+    }
+    dd {
+        margin: 0 0 0 10px;
+    }
+}
+
+.adminhtml-rma-item-attribute-edit .col-position input {
+    text-align: center;
+}
+
+.order-subtotal .label {
+    text-align: right;
+}
+
+.items-to-invoice {
+    border: 1px solid #c0bbaf;
+    margin-top: 13px;
+    width: 100%;
+}
+
+.items-to-invoice td,
+table.items-to-invoice tbody tr:hover td {
+    background-color: #e6e3de;
+    border: 0;
+    text-align: center;
+}
+
+[class~=" -order-creditmemo-"] .no-items {
+    padding-top: 13px;
+    text-align: center;
+}
+
+.items-to-invoice .grand-total {
+    color: #19a3d1;
+    font-weight: bold;
+}
+
+.adminhtml-order-shipment-new .order-totals .fieldset-wrapper {
+    padding-top: 18px;
+}
+
+.creditmemo-totals .data-table input[type="text"] {
+    text-align: right;
+    width: 60px;
+}
+
+[class*="-order-"] .order-subtotal .label {
+    width: 80%;
+}
+
+[class^=" adminhtml-rma-"] .rma-items th.col-qty span,
+.adminhtml-rma-edit .rma-items th.col-qty span {
+    text-align: left;
+    white-space: normal;
+}
+
+.adminhtml-rma-edit .data-table .col-carrier,
+[class^=" sales-billing-agreement-"] .log-details .data-table th {
+    width: 20%;
+}
+
+.adminhtml-rma-edit .data-table .col-title {
+    width: 35%;
+}
+
+.adminhtml-rma-edit .data-table .col-number {
+    width: 25%;
+}
+
+[class*="-order-"] .order-shipping-address .price,
+.order-shipping-address .shipping-description-title {
+    font-weight: bold;
+}
+
+[class^=" adminhtml-rma-"] .col-actions a {
+    cursor: pointer;
+    white-space: nowrap;
+}
+
+[class^=" adminhtml-rma-"] .col-reason input[type="text"] {
+    margin: 5px 0 0;
+    width: 100%;
+}
+
+[class^=" adminhtml-rma-"] .col-actions .separator {
+    margin: 0 3px;
+}
+
+[class^=" sales-"] .order-payment-method .data-table {
+    margin-top: 15px;
+}
+
+[class^=" sales-"] .order-payment-currency {
+    margin-top: 15px;
+}
+
+[class^=" sales-"] .grid .data {
+    border-bottom: 1px solid #c0bbaf;
+}
+
+[class^=" sales-"] .grid td .option-label {
+    font-weight: bold;
+}
+
+[class^=" sales-"] .grid td .option-value {
+    margin: 0 0 0 10px;
+}
+
+.col-product .product_to_add {
+    float: right;
+}
+
+[class^=" adminhtml-extension-custom-"] {
+    #authors_fieldset .data-table td {
+        vertical-align: top;
+    }
+}
+
+//
+//    Orders refund
+//--------------------------------------
+.field-refund-store-credit {
+    .input-text {
+        text-align: right;
+        width: 60px;
+    }
+}
+
+//
+//    Packaging for Shipping Popup
+// --------------------------------------
+#popup-window-mask,
+.popup-window-mask {
+    background: rgba(0, 0, 0, .5);
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 999;
+}
+
+.packaging-window,
+.packed-window {
+    background: #fff;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
+    left: 50%;
+    margin: -200px 0 0 -471px;
+    position: fixed;
+    top: 50%;
+    width: 1000px;
+    z-index: 1000;
+}
+
+.packaging-window .entry-edit-head {
+    padding: 3px 5px;
+}
+
+.packaging-window .messages {
+    padding: 10px 26px 10px 32px;
+    border-radius: 0;
+    color: #963535;
+    text-shadow: none;
+    position: relative;
+    background: #f3dcd8;
+    border: 1px solid #963535;
+    margin-top: -1px;
+}
+
+.packaging-window .messages:before {
+    position: absolute;
+    left: 8px;
+    top: 50%;
+    margin-top: -11px;
+    background: none;
+    text-shadow: none;
+    width: auto;
+    height: auto;
+    border: 0;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    font-size: 16px;
+    content: '\e069';
+    color: #963535;
+}
+
+.packaging-window .validation-failed {
+    background: #fef0ed;
+    border: 1px dashed #d6340e;
+}
+
+.packaging-window {
+    .packaging-content {
+        overflow: auto;
+        overflow-x: hidden;
+        height: auto !important;
+        max-height: 400px;
+        .measures {
+            width: 50px;
+        }
+        .options-weight {
+            vertical-align: top;
+        }
+    }
+}
+
+.packaging-window .package-options {
+    width: 100%;
+    border-top: 1px solid #ccc;
+    padding: 10px 0 0;
+    margin: 3px 0 0;
+}
+
+.packaging-window .package-options td {
+    vertical-align: middle;
+}
+
+.packaging-window .package-options .input-text {
+    width: 50px;
+}
+
+.packaging-window .package_prapare {
+    margin-bottom: 15px;
+}
+
+.packaging-window .package-options .customs-value {
+    width: 80px;
+}
+
+.packaging-window .package-options .options-weight {
+    width: 75px;
+}
+
+.packaging-window .package-options .options-units-weight {
+    width: 45px;
+}
+
+.packaging-window .package-options .options-units-dimensions {
+    width: 45px;
+}
+
+.packaging-window .package-options .options-content-type {
+    width: 120px;
+}
+
+.packaging-window .package-options input[type=text].disabled,
+.packaging-window .package-options select.disabled {
+    background: #eee;
+}
+
+.packaging-window .package-options-contents {
+    border-top: 0;
+}
+
+.packaging-window .package-add-products {
+    margin: 20px 0 0;
+}
+
+.packaging-window .package-add-products .grid {
+    padding: 0;
+}
+
+.packaging-window .package-add-products .grid button {
+    vertical-align: middle;
+}
+
+.packaging-window .package-number {
+    font-weight: bold;
+}
+
+.packaging-window .package-number span {
+    margin-left: 5px;
+}
+
+.packed-window .entry-edit-head {
+    padding: 3px 5px;
+}
+
+.packed-window .packed-content {
+    padding: 10px 10px 0;
+    overflow: auto;
+    max-height: 400px;
+}
+
+.packed-window .package {
+    border-top: 1px solid #ededed;
+    margin-bottom: 30px;
+    padding: 10px;
+}
+
+.packed-window .package:first-child {
+    border-top: 0;
+}
+
+.package-info {
+    background: #e6e3de;
+    border: 1px solid #c0bbaf;
+}
+
+.package-info th {
+    font-weight: bold;
+}
+
+.packed-window .package-info table tbody tr td,
+.packed-window .package-info table tbody tr th,
+.package-info table tbody tr:nth-child(2n+1) td,
+.package-info table tbody tr:nth-child(2n+1) th {
+    background: none;
+    border: 0;
+    padding: 5px 5px 2px;
+}
+
+.packed-window .package .grid {
+    padding: 0;
+}
+
+.packed-window .package-options {
+    width: 60%;
+}
+
+.packed-window .package-options td,
+.packed-window .package-options th {
+    padding: 1px 0;
+}
+
+.grid .popup-window {
+    text-align: left;
+}
+
+.grid tr.on-mouse td .popup-window .data-table tbody tr:nth-child(2n+1) td,
+.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
+.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
+.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
+.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
+.grid table tbody tr.on-mouse:hover td .popup-window .data-table tbody tr:nth-child(2n+1),
+.grid table tbody tr.on-mouse:hover th .popup-window .data-table tbody tr:nth-child(2n+1) {
+    background-color: #fbfaf6;
+}
+
+.grid .popup-window {
+    text-align: left;
+}
+
+.popup-window-buttons-set {
+    text-align: right;
+    padding: 25px;
+}
+
+.popup-window-title {
+    background: #f3efea;
+    padding: 19px 20px;
+}
+
+.popup-window-title .title {
+    color: #676056;
+    display: block;
+    font-size: 20px;
+    line-height: 1;
+}
+
+.popup-window-title .actions {
+    float: right;
+}
+
+.popup-window-content {
+    padding: 25px 25px 0;
+}
+
+.popup-window-content > ul {
+    list-style: none;
+    padding: 0;
+}
+
+.packaging-window .col-weight {
+    text-align: left;
+    width: 60px;
+}
+
+.packaging-window .col-qty {
+    text-align: left;
+    width: 80px;
+}
+
+.packed-window .col-qty,
+.packed-window .col-weight,
+.packed-window .col-qty_ordered {
+    text-align: right;
+    width: 70px;
+}
+
+.packaging-window .col-select,
+.packaging-window .col-measure {
+    text-align: center;
+    width: 35px;
+}
+
+.popup-fieldset-title .title {
+    color: #666;
+    display: inline-block;
+    font-size: 18px;
+    font-weight: normal;
+    padding: 7px 0 10px;
+}
+
+.popup-fieldset-title .actions {
+    float: right;
+}
+
+.packaging-window select {
+    margin-bottom: 0;
+}
+
+.packaging-window .col-width,
+.packaging-window .col-height,
+.packaging-window .col-length,
+.packaging-window .data-table .col-total-weight input[type="text"],
+.packaging-window .data-table .col-custom input[type="text"] {
+    width: 60px;
+}
+
+.packaging-window .col-total-weight {
+    white-space: nowrap;
+    width: 100px;
+}
+
+.packaging-window .col-signature {
+    width: 160px;
+}
+
+.packaging-window .data-table .col-actions,
+.packaging-window .col-total-weight,
+.packaging-window .data-table .col-custom {
+    white-space: nowrap;
+}
+
+.packaging-window .data-table .action-delete {
+    margin: 5px 0 0 5px;
+}
+
+.packaging-window .grid tr th {
+    border-bottom: 1px solid #c9c2b8;
+}
+
+.packaging-window .grid tr th:first-child,
+.packaging-window .grid td:first-child,
+.packaging-window .grid td:last-child {
+    border-left: 0;
+    border-right: 0;
+}
+
+.packaging-window .data-table .col-qty-edit {
+    white-space: nowrap;
+    width: 50px;
+}
+
+.packaging-window .data-table .col-qty-edit input[type="text"] {
+    width: 50px;
+}
+
+.sp-methods > dt {
+    font-weight: bold;
+}
+
+.sp-methods > dd {
+    margin: 5px 0 5px 15px;
+}
+
+.sp-methods > dd > ul {
+    list-style: none;
+    padding: 0;
+}
+
+[class*="-order-"] .order-billing-address .packaging-window .actions,
+[class*="-order-"] .order-shipping-address .packaging-window .actions {
+    margin: 0;
+}
+
+/*
+    Popup Configuration Popup
+-------------------------------------- */
+#product_composite_configure_messages {
+    margin-left: 0 !important;
+    padding: 10px 15px;
+}
+
+.rma-popup, .cms-popup {
+    background: #fff;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
+    cursor: default;
+    position: fixed;
+    left: 50%;
+    top: 50%;
+    z-index: 1000;
+}
+
+.rma-popup {
+    width: 540px;
+    margin: 0 0 0 -271px;
+}
+
+.rma-popup .entry-edit .fieldset {
+    border: none;
+}
+
+.rma-popup .validation-advice,
+.rma-popup label.mage-error {
+    margin-left: 0;
+}
+
+.rma-popup .content {
+    background: #fff;
+    border-bottom: 1px solid #ccc;
+    max-height: 400px;
+    overflow: auto;
+}
+
+.rma-popup .content .grid {
+    padding: 0;
+}
+
+.rma-popup .content .grid table {
+    border-bottom: 1px solid #cbd3d4;
+}
+
+.rma-popup .product-options {
+    border-bottom: 1px solid #e7e7e7;
+    margin: 0 0 15px;
+    padding: 0 0 12px;
+}
+
+.rma-popup .product-options .required {
+    color: #333 !important;
+    font-weight: normal !important;
+}
+
+.rma-popup .product-options .required em {
+    color: #d40707;
+}
+
+.rma-popup .last-fieldset .product-options {
+    border: 0 none;
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.rma-popup .buttons-set {
+    text-align: right;
+    margin: 0;
+    overflow: hidden;
+    padding: 7px 10px 8px;
+}
+
+.rma-popup .buttons-set {
+    width: 518px;
+}
+
+.cms-popup .buttons-set {
+    width: 289px;
+}
+
+.rma-popup .buttons-set button {
+    margin: 0 0 0 5px;
+}
+
+.grid .rma-popup .form-list tr,
+.grid tr.even .rma-popup .form-list tr,
+.grid tr.on-mouse .rma-popup .form-list tr {
+    background: #fff !important;
+}
+
+/*
+    URL rewrite
+-------------------------------------- */
+.adminhtml-urlrewrite-edit .field-entity-type-selector .label {
+    width: auto;
+}
+
+/*
+    Shopping Cart Price Rule
+-------------------------------------- */
+.fieldset .field-coupon_code,
+.fieldset .field-rule_use_auto_generation {
+    margin-bottom: 0;
+}
+
+.field-rule_use_auto_generation .label {
+    margin-left: 5px;
+}
+
+.field-rule_use_auto_generation .nested {
+    margin-bottom: 29px;
+}
+
+/*
+    Product Image Placeholders
+-------------------------------------- */
+#catalog_placeholder .input-file,
+#catalog_placeholder .delete-image > input {
+    margin-right: 5px;
+}
+
+/* Permanent Redirect for old URL */
+.control > [name="product[url_key_create_redirect]"],
+.control > [name="general[url_key_create_redirect]"] {
+    float: left;
+    margin: 8px 5px 0 0;
+}
+
+.control > [name="product[url_key_create_redirect]"] + .label,
+.control > [name="general[url_key_create_redirect]"] + .label {
+    width: auto;
+    padding-top: 8px;
+}
+
+/*
+    New Product Attribute Set
+-------------------------------------- */
+.field-skeleton_set .select {
+    width: 100%;
+}
+
+#affected-attribute-set-form .fieldset .field {
+    margin-bottom: 12px;
+
+    &:last-child {
+        margin-bottom: 0;
+    }
+}
+
+/*
+    Cache Management
+-------------------------------------- */
+.additional-cache-management .label {
+    margin-top: 5px;
+}
+
+/*
+    Categories
+-------------------------------------- */
+.category-content .form-inline.permissions-custom-options {
+    .messages {
+        li {
+            margin-top: 0;
+        }
+    }
+    .data-table {
+        margin-bottom: 25px;
+    }
+}
+
+/*
+    Marketing - Email Reminders
+-------------------------------------- */
+.lt-1280 .adminhtml-reminder-edit #customerGrid .grid .filter .range div.date {
+    min-width: 0;
+}
+
+/*
+    Customers - Manage Shopping Cart
+-------------------------------------- */
+.checkout-index-index {
+    .products-search {
+        margin-top: 35px;
+        > .actions {
+            text-align: right;
+            margin: 10px 0;
+        }
+    }
+    .shopping-cart-items {
+        > .actions {
+            margin-bottom: 15px;
+        }
+        .box-left,
+        .box.right {
+            width: 49%;
+            fieldset {
+                border-radius: 5px;
+            }
+        }
+        .box-left {
+            float: left;
+        }
+        .box.right {
+            float: right;
+        }
+    }
+    .grid table .action-configure {
+        float: right;
+    }
+}
+
+/*
+    Clearfix
+-------------------------------------- */
+.shopping-cart-items:before,
+.shopping-cart-items:after,
+.image-panel:before,
+.image-panel:after,
+.images:before,
+.images:after,
+.tax-rate-popup .field:before,
+.tax-rate-popup .field:after,
+.clearfix:before,
+.clearfix:after,
+#tab_content_downloadableInfo .data-table td .row:before,
+#tab_content_downloadableInfo .data-table td .row:after {
+    content: "";
+    display: table;
+}
+
+.shopping-cart-items:after,
+.image-panel:after,
+.images:after,
+.tax-rate-popup .field:after,
+.clearfix:after,
+#tab_content_downloadableInfo .data-table td .row:after {
+    clear: both;
+}
+/* ==========================================================================
+   pages.less (end)
+   ========================================================================== */
+
+
+/* ==========================================================================
+   debug.less (begin)
+   ========================================================================== */
+///*
+//    This file was created to debug old classes in order to indicate where we must replase it with new ones
+
+.debug {
+    border: 1px solid red !important;
+}
+
+/*
+    Accordion
+------------------------*/
+.accordion {
+    margin: 0 0 8px;
+    padding: 0;
+}
+
+.accordion > dt,
+.accordion > dd.open,
+.accordion .collapseable,
+.section-config.active > .collapseable + input + fieldset,
+.accordion .collapseable.open + input + fieldset {
+    background: #fff;
+    padding: 5px 18px 2px;
+    position: relative;
+}
+
+.accordion > dt + dd {
+    display: none;
+}
+
+.accordion > dt.open,
+.section-config.active > .collapseable,
+.accordion .collapseable.open {
+    margin: 0;
+    border-bottom: 0;
+    border-radius: 5px 5px 0 0;
+}
+.section-config.active > .collapseable + input + fieldset,
+.accordion > dt + dd.open,
+.accordion .collapseable.open + input + fieldset {
+    padding: 25px 18px 18px;
+    display: block;
+    margin-left: 0;
+    border-top: 0;
+    border-radius: 0 0 5px 5px;
+}
+
+.section-config > .collapseable > a,
+.accordion > dt a,
+.accordion .collapseable > a {
+    .style10();
+    display: block;
+    padding: 7px 0 10px 22px;
+    text-decoration: none;
+    position: relative;
+    cursor: pointer;
+    border-bottom: 1px solid #cac3b4;
+}
+
+.section-config > .collapseable > a i,
+.accordion > dt a i,
+.accordion .collapseable > a i {
+    .style31();
+}
+
+.section-config.active > .collapseable > a,
+.accordion .collapseable.open a,
+.accordion dt.open a {
+    /*border-bottom: 1px solid #ededed;*/
+}
+.section-config > .collapseable > a:before,
+.accordion > dt a:before,
+.accordion .collapseable > a:before {
+    position: absolute;
+    left: 0;
+    top: 11px;
+    font-family: 'MUI-Icons';
+    font-style: normal;
+    speak: none;
+    font-size: 16px;
+    font-weight: normal;
+    -webkit-font-smoothing: antialiased;
+    content: '\e02a'; /* arrow right icon */
+    color: #b2b0ad;
+}
+
+
+.section-config.active > .collapseable > a:before,
+.accordion > dt.open a:before,
+.accordion .collapseable.open a:before {
+    content: '\e02c'; /* arrow down icon */
+}
+.section-config > .collapseable > a:hover:before,
+.accordion > dt a:hover:before,
+.accordion .collapseable > a:hover:before {
+    color: #7e7e7e;
+}
+
+/* PayPal connected */
+
+.section-config.complex .section-config.with-button {
+    padding:20px 15px;
+    margin:0 -30px 0 -15px;
+    border-bottom:1px solid #eae6e0;
+}
+
+.section-config.complex tr:last-child .section-config.with-button {
+    border-bottom:0;
+}
+
+.section-config.complex .section-config.with-button > .entry-edit-head {
+    padding: 0 0 0 25px;
+    border:0;
+}
+
+.section-config.complex .section-config.with-button.enabled > .entry-edit-head:before {
+    content: "\e01e";
+    color:#fff;
+    background: #65940a;
+    font-family: "MUI-Icons";
+    font-weight: normal;
+    padding:3px;
+    font-size: 10px;
+    width:10px;
+    height:10px;
+    line-height: 10px;
+    overflow: hidden;
+    border-radius: 8px;
+    display: block;
+    float:left;
+    margin-left:-25px;
+    margin-top:0;
+}
+
+.section-config.complex .section-config.with-button > .config {
+    margin:10px -10px;
+    border:1px solid #d1d0ce;
+    border-radius: 0;
+    padding:5px 0;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td {
+    padding:0;
+}
+
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head {
+    border:0;
+    border-radius: 0;
+    margin-bottom:0;
+    padding:5px 10px 2px;
+    border-bottom:1px solid #d1d0ce;
+    background: transparent;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a {
+    padding-left: 22px;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a:before {
+    left: 0;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .entry-edit-head {
+    border:0;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head a {
+    border-bottom:0;
+}
+
+.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .config {
+    border:0;
+    border-bottom:1px solid #d1d0ce;
+    border-radius: 0;
+    margin:0;
+    padding-bottom:50px;
+}
+.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .config {
+    border-bottom:0;
+}
+
+.section-config .config h4 {
+    padding-left:25%;
+    font-size: 18px;
+}
+
+.section-config .config td.label label.enabled:before {
+}
+.section-config .config td.label label.enabled:before {
+    content: "\e01e";
+    color:#fff;
+    background: #65940a;
+    font-family: "MUI-Icons";
+    font-weight: normal;
+    padding:3px;
+    font-size: 10px;
+    width:10px;
+    height:10px;
+    line-height: 10px;
+    overflow: hidden;
+    border-radius: 8px;
+    display: block;
+    float:left;
+    margin-right:5px;
+}
+
+.section-config.complex .section-config.with-button > .config:before {
+    content:'';
+    height: 9px;
+    width: 20px;
+    overflow: hidden;
+    display: block;
+    position: absolute;
+    bottom: 100%;
+    left: 50%;
+    z-index: 2;
+    margin-left: -10px;
+    background: url(../images/subconfig-bg.png) no-repeat 0 0;
+}
+
+.section-config.config-advanced {
+    padding:30px 0 0;
+}
+.section-config.config-advanced > .entry-edit-head {
+    border:0;
+    padding: 0 0 0 25%;
+}
+.section-config.config-advanced > .entry-edit-head a {
+    border:0 !important;
+}
+.section-config.config-advanced > .config {
+    padding-left:0!important;
+    padding-right:0!important;
+    border:0!important;
+    border-radius: 0!important;
+}
+
+.section-config.config-advanced > .entry-edit-head a {
+    margin-left:-22px;
+}
+
+
+.section-config.with-button .config-heading strong {
+    display: block;
+    .style28();
+    margin-bottom:5px;
+}
+
+.section-config.with-button .config-heading .button-container {
+    margin:15px 0 0;
+}
+.section-config.with-button .button-container {
+    line-height: 28px;
+}
+.section-config.with-button .button-container a {
+    margin-left:20px;
+}
+
+.section-config.with-button .action-configure span {
+    display: block;
+    position: relative;
+    text-align: center;
+}
+.section-config.with-button .action-configure .state-opened {
+    visibility: hidden;
+    height:0;
+    overflow: hidden;
+}
+.section-config.with-button .action-configure.open .state-opened {
+    visibility: visible;
+    height:auto;
+    overflow: auto;
+}
+.section-config.with-button .action-configure.open .state-closed {
+    visibility: hidden;
+    height:0;
+    overflow: hidden;
+}
+
+.accordion > dt + dd {
+    display: none;
+}
+
+.accordion > dt + .open:empty {
+    background: #fff url(../mui/images/ajax-loader-big.gif) no-repeat center;
+    height: 100px;
+}
+
+/* TODO: arrange configuration tables */
+.accordion .collapseable.disabled {
+    background: #f1f1f1;
+}
+
+.accordion .collapseable.disabled > a {
+    cursor: not-allowed;
+}
+
+.accordion .collapseable.disabled > a:before {
+    content: '';
+}
+
+.accordion .config {
+    border: 0;
+}
+
+.accordion .config {
+    .comment a,
+    .link-more {
+        .style3();
+    }
+}
+
+.accordion .config legend {
+    display: none;
+}
+
+.accordion .config table {
+    width: 100%;
+}
+
+.accordion .config .label {
+    float: none;
+    width: 33%;
+    padding-right: 30px;
+    text-align: right;
+    font-size: 14px;
+    font-weight: 600;
+    color: #303030;
+}
+
+.accordion .config .value .label {
+    padding: 6px 5px 0 15px;
+    vertical-align: top;
+    width: auto;
+}
+
+.accordion .config .value .label:first-child {
+    padding-left: 0;
+}
+
+.accordion .config .label label {
+    padding-top: 7px;
+}
+
+.accordion .config td {
+    background: none;
+    border: 0;
+    padding: 22px 15px 0 0;
+    vertical-align: top;
+}
+
+.accordion .paypal-selection-simplified {
+    padding-left: 30px;
+}
+
+.accordion .paypal-selection input[type="checkbox"] {
+    margin: -4px 7px 0 0;
+}
+
+.accordion .config input[type="text"],
+.accordion .config input[type="password"],
+.accordion .config select,
+.accordion .config textarea {
+    width: 100%;
+}
+
+.accordion .config input.input-file {
+    margin-top: 4px;
+}
+
+.accordion .config select.select-date {
+    width: 27%;
+}
+
+.accordion .config .value {
+    width: 44%;
+    padding-right: 40px;
+    .checkboxes {
+        list-style: none;
+        padding: 0;
+        margin: -3px 0 0;
+
+        li {
+            margin: 7px 0;
+        }
+
+        input,
+        label {
+            vertical-align: middle;
+        }
+
+        label {
+            margin-left: 5px;
+        }
+    }
+}
+
+.accordion .config .value.with-tooltip {
+    padding-top:5px;
+}
+.accordion .config .value.with-tooltip .tooltip {
+    position: relative;
+    top:0;
+    left:0;
+    right:0;
+    bottom:0;
+    float:right;
+    margin: 6px -28px 0 0;
+}
+.accordion .config .value.with-tooltip .tooltip-content {
+    padding: 18px;
+    margin: 0 -17px 10px 0;
+    right: 0;
+    bottom: 100%;
+    width: 239px;
+    max-width: 239px;
+    font-size: 13px;
+    line-height: 1.4;
+    background: #31302b;
+    background: rgba(49, 48, 43, .8);
+    border-radius: 5px;
+}
+.accordion .config .value.with-tooltip .tooltip-content:before {
+    content: '';
+    position: absolute;
+    width: 0;
+    height: 0;
+    top: auto;
+    bottom:-5px;
+    left:auto;
+    right: 20px;
+    border-left: 5px solid transparent;
+    border-right: 5px solid transparent;
+    border-top: 5px solid #31302b;
+    border-bottom:0;
+    opacity: .8;
+}
+
+.accordion .config .value.with-tooltip .help {
+    position: relative;
+    width:auto;
+    margin:0;
+}
+
+.accordion .config .scope-label {
+    color: #999;
+    font-size: 12px;
+    letter-spacing: .05em;
+    padding: 31px 15px 0 0;
+}
+
+.accordion .config .note {
+    color: #303030;
+    font-size: 12px;
+    margin: 5px 0;
+}
+
+.accordion .config .note a {
+    .style22();
+}
+
+.accordion .config .system-tooltip-box {
+    position: absolute;
+}
+
+.accordion .paypal-selection {
+    margin: 10px;
+    width: 98%;
+}
+
+.accordion .paypal-selection th {
+    padding: 6px 10px 7px;
+}
+
+.accordion .paypal-selection {
+    border-bottom: 2px solid #c0bbaf;
+}
+
+.accordion .paypal-payment-notice {
+    margin: 10px;
+}
+
+.accordion .custom-options {
+    border: 1px solid #999;
+    padding: 0 10px;
+    margin: 0 0 20px;
+}
+
+/*
+    Sales
+-------------------------------------- */
+
+.order-items .entry-edit-head .form-buttons {
+    float: right;
+}
+
+.order-items .entry-edit-head .icon-head {
+    display: inline;
+}
+
+.order-items .entry-edit-head {
+    margin-bottom: 20px;
+}
+
+.order-items .entry-edit-head:before,
+.order-items .entry-edit-head:after {
+    content: "";
+    display: table;
+}
+
+.order-items .entry-edit-head:after {
+    clear: both;
+}
+
+/*
+    Import-export tax rates
+-------------------------------------- */
+.import-export-tax-rates input[type=file] {
+    margin-right: 10px;
+}
+
+.import-tax-rates,
+.export-tax-rates {
+    float: left;
+    width: 48.9362%;
+}
+
+.export-tax-rates {
+    margin-left: 2.12766%;
+}
+
+.import-export-tax-rates:before,
+.import-export-tax-rates:after {
+    content: "";
+    display: table;
+}
+
+.import-export-tax-rates:after {
+    clear: both;
+}
+
+/*
+    Product
+-------------------------------------- */
+.tier {
+    margin: 20px 0 0;
+}
+
+/*
+    Edit attribute set
+-------------------------------------- */
+.attribute-set-col {
+    display: block;
+    float: left;
+    margin-left: 2.127659574%;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    width: 31.9149%;
+}
+
+.attribute-set-col:first-child {
+    margin-left: 0;
+}
+
+.attribute-set-tree {
+    margin-top: 5px;
+    overflow: auto;
+    height: 400px;
+    width: 100%;
+}
+
+.attribute-set:before,
+.attribute-set:after {
+    content: "";
+    display: table;
+}
+.attribute-set:after {
+    clear: both;
+}
+
+/*
+    Manage Categories
+-------------------------------------- */
+.catalog-category-edit .category-edit-title {
+    float: left;
+}
+
+/*
+    Catalog Price Rule
+-------------------------------------- */
+.rule-tree-wrapper {
+    line-height: 28px;
+}
+
+.rule-tree .fieldset {
+    min-width: 0; // Fixed Chrome fieldset issue
+}
+
+@-moz-document url-prefix() { // Fixed Firefox fieldset issue
+    .rule-tree .fieldset {
+        display: table-cell;
+    }
+}
+
+.rule-tree ul {
+    list-style: none;
+    padding-left: 16px;
+    border-left: dotted 1px #888;
+}
+
+.rule-tree li {
+    margin: 0 0 10px;
+}
+
+.rule-tree .x-tree ul {
+    padding-left: 0 !important;
+    border-left: none !important;
+}
+
+.rule-param .label {
+    color: #000;
+    float: none;
+    text-align: left;
+    padding: 0;
+    vertical-align: baseline;
+    width: auto;
+}
+
+.rule-param .label-disabled {
+    color: #eee;
+    cursor: default;
+    text-decoration: none;
+}
+
+.rule-chooser,
+.rule-param .element,
+.rule-param-edit .label {
+    display: none;
+}
+
+.rule-chooser .field-row {
+    .clearfix();
+    display: block;
+    margin-bottom: 17px;
+    .input-text {
+        margin-top: 5px;
+    }
+    .ui-datepicker-trigger {
+        margin-left: 5px;
+        margin-top:-2px;
+    }
+}
+
+.rule-param input,
+.rule-param select {
+    width: auto !important;
+    margin: 0;
+    min-width: 170px;
+}
+
+.rule-param-edit .element {
+    display: inline;
+}
+
+.rule-param-edit .element .addafter {
+    padding-left: 5px;
+}
+
+[class^="rule-param-"] img,
+.rule-chooser-trigger img {
+    vertical-align: middle;
+}
+
+.rule-chooser {
+    border: solid 1px #CCC;
+    margin: 20px;
+    padding: 15px 10px 5px;
+    overflow: auto;
+}
+
+.rule-param-wait {
+    background: url(../mui/images/ajax-loader-small.gif) no-repeat left center;
+    padding-left: 20px;
+}
+
+/*
+    URL Rewrite
+-------------------------------------- */
+.field-entity-type-selector {
+    padding-top: 13px;
+}
+
+/* jstree */
+.jstree-default .disabled > a {
+    color: #a29c94;
+}
+/* ==========================================================================
+   debug.less (end)
+   ========================================================================== */
 
 // Magento Import instructions
 //@magento_import "source/module.less"; // import theme styles
-
-@import (reference) 'source/abstract'; // import theme styles
diff --git a/app/design/adminhtml/Magento/backend/web/css/styles.less b/app/design/adminhtml/Magento/backend/web/css/styles.less
index 7aa753ae550ba2ecd362d246abd3248523f519a6..92ef5d85d64a71e7fe72fae90a56eca8d0b4f654 100644
--- a/app/design/adminhtml/Magento/backend/web/css/styles.less
+++ b/app/design/adminhtml/Magento/backend/web/css/styles.less
@@ -3,9 +3,26 @@
  * See COPYING.txt for license details.
  */
 
+//
+//  Admin  styles
+//  _____________________________________________
+
+//
+//  Global lib + theme styles
+//  ---------------------------------------------
+
 @import 'source/lib/_lib'; // Global lib
 @import 'source/_theme'; // Theme variables overrides
 @import 'source/_sources'; // Theme
 
-// Magento Import instructions
+//
+//  Magento Import instructions
+//  ---------------------------------------------
+
 //@magento_import "source/_module.less"; // import theme styles
+
+//
+//  Media queries collector
+//  ---------------------------------------------
+
+@import 'source/_responsive';
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.eot b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.eot
new file mode 100644
index 0000000000000000000000000000000000000000..2d86a348708b938367f3c669db253a9d5f0e81de
Binary files /dev/null and b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.eot differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.svg b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.svg
new file mode 100644
index 0000000000000000000000000000000000000000..36cb74df60777f6890e8ecf1fc464a02394a77a7
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="UX-Icons" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
+<glyph unicode="&#xe600;" d="M709.921 789.454c8.139-32.295 8.927-34.974 8.192-68.162-0.263-12.813-7.772-71.943-5.724-90.112 1.628-14.966 5.461-16.174 11.448-28.514 10.398-21.425 6.984-51.095 2.941-72.678-2.206-11.868-6.827-28.725-13.916-38.387-7.667-10.66-23.211-10.713-30.142-23.158-9.872-17.854-4.306-43.008-10.503-62.385-7.142-21.898-25.101-23.421-26.466-52.145 8.822-1.155 17.592-2.468 26.466-3.623 8.822-18.59 25.049-55.874 41.59-67.059 13.863-3.728 27.727-7.457 41.59-11.185 48.627-19.64 102.558-43.061 151.237-63.33 44.373-18.432 97.411-24.996 113.48-70.84 0-31.035 2.941-104.501 2.153-145.25h-965.553c-0.893 40.697 2.153 114.215 2.153 145.25 15.964 45.844 69.002 52.408 113.375 70.84 48.679 20.27 102.61 43.691 151.237 63.33 13.811 3.728 27.674 7.457 41.59 11.185 16.489 11.185 32.715 48.522 41.538 67.059l19.692 4.621c-4.464 24.576-19.85 26.466-26.256 43.743-2.521 26.099-5.041 52.145-7.509 78.192 0.053-1.155-18.117 3.361-20.48 4.779-25.731 15.806-26.204 80.24-28.725 107.021-1.103 12.183 16.174 22.265 11.343 44.636-28.094 131.44 12.183 192.88 75.881 213.307 44.216 17.749 126.871 50.465 203.855 3.728l19.167-17.487 30.93-5.251c15.491-8.77 25.416-38.124 25.416-38.124z" horiz-adv-x="1090" />
+<glyph unicode="&#xe601;" d="M529.203 62.008l-468.465 628.209h936.931l-468.465-628.209z" horiz-adv-x="1085" />
+<glyph unicode="&#xe602;" d="M976.793-33.858h-910.388v910.388h910.388v-910.388zM912.622 812.359h-782.046v-782.088h782.046v782.088zM221.432 125.348h152.876v372.033h-152.876v-372.033zM466.323 127.914h350.932v366.53h-350.932v-366.53zM221.432 587.659h595.865v147.125h-595.865v-147.125z" horiz-adv-x="1034" />
+<glyph unicode="&#xe603;" d="M264.319 639.317c75.685 0 136.98 61.259 136.98 136.944 0 75.649-61.295 136.98-136.98 136.98s-137.017-61.331-137.017-136.98c0-75.649 61.331-136.944 137.017-136.944zM448.929 577.297c-28.962 28.926-63.325 46.252-187.655 46.252s-157.859-18.776-185.335-46.252c-27.44-27.44-18.196-320.43-18.196-320.43l60.824 144.411 38.241-430.334 110.23 220.278 102.907-220.278 36.393 430.334 60.824-144.411c-0.036 0 10.693 291.468-18.233 320.43z" horiz-adv-x="489" />
+<glyph unicode="&#xe604;" d="M680.975 874.42c-337.523 0-610.976-273.515-611.038-610.976 0.122-37.72 1.039-251.812 1.039-251.812h1219.997c0 0 0.978 239.219 1.039 251.812-0.183 337.523-273.637 610.976-611.038 610.976zM737.708 750.317c31.117-3.607 61.379-10.271 90.418-19.624l-19.93-61.685c-25.004 8.070-51.169 13.939-78.191 16.995l7.703 64.313zM270.091 274.998h-64.864c0 31.423 3.118 62.235 8.803 92.007l63.702-12.349c-5.135-25.799-7.642-52.392-7.642-79.658zM305.855 443.729l-59.178 26.288c12.655 28.489 28 55.449 45.79 80.636l52.942-37.475c-15.284-21.825-28.611-45.056-39.554-69.449zM407.46 582.993l-43.405 48.113c22.925 20.541 47.807 39.187 74.462 54.96l33.318-55.571c-22.987-13.755-44.567-29.65-64.374-47.501zM536.943 730.693c29.039 9.292 59.178 16.017 90.418 19.624l7.581-64.313c-26.838-3.057-53.003-8.926-78.13-16.995l-19.869 61.685zM761.673 146.616l-152.897-27.205-38.881 150.452 395.172 404.22-203.394-527.467zM1019.476 513.177l52.942 37.414c17.79-25.187 33.257-52.148 45.851-80.636l-59.178-26.288c-10.943 24.454-24.209 47.685-39.615 69.51zM1094.916 274.998c0 27.266-2.69 53.859-7.703 79.658l63.702 12.349c5.808-29.834 8.803-60.645 8.803-92.007h-64.802zM646.006 177.489c26.777-17.056 62.174-9.415 79.291 17.24 17.118 26.593 9.292 62.051-17.301 79.108-26.655 17.24-62.051 9.354-79.23-17.362-17.118-26.349-9.476-61.99 17.24-78.986z" horiz-adv-x="1376" />
+<glyph unicode="&#xe605;" d="M24.097 834.683h972.827v-111.922l-410.504-412.792v-238.366l-171.447-87.505v325.871l-390.875 415.877v108.837z" />
+<glyph unicode="&#xe606;" d="M454.495 899.249l-402.697-240.513v-457.026l104.632-60.727v457.049l298.157 178.728 299.698-179.142-0.138-455.922 103.528 60.013v457.026l-403.18 240.513zM507.766 617.868v-534.344l-53.271-32.124-53.34 32.262v533.792l-138.090-83.853v-456.934l191.453-115.516 193.087 116.322v456.451l-139.839 83.945z" horiz-adv-x="903" />
+<glyph unicode="&#xe607;" d="M870.821 216.311c-64.195 65.89-78.231 188.772-91.738 283.159-20.074 139.937-24.259 297.089-226.008 317.693v25.318c0 25.424-39.195 46.028-64.937 46.028s-62.024-20.551-62.024-46.028v-25.371c-200.054-20.816-206.993-177.914-226.855-317.693-13.453-94.439-27.331-217.268-91.049-283.264-12.818-13.348-16.473-32.998-9.11-49.947 7.362-16.843 24.153-27.913 42.797-27.913h695.343c18.75 0 35.593 11.070 42.903 28.019s3.655 36.653-9.322 50zM489.569-15.735c51.060 0 92.373 40.837 92.373 91.367h-184.694c-0.053-50.53 41.314-91.367 92.32-91.367z" horiz-adv-x="989" />
+<glyph unicode="&#xe608;" d="M252.137 794.92l-160.070-92.393 378.042-218.205 160.023 92.393-377.996 218.205zM845.638 701.085l-377.996 218.252-145.222-83.828 377.996-218.205 145.222 83.782zM502.784 421.998v-433.664l376.832 217.507v433.711l-376.832-217.553zM55.668 205.888l376.785-217.507v436.503l-376.785 217.46v-436.457z" horiz-adv-x="954" />
+<glyph unicode="&#xe609;" d="M59.153 413.966l164.053-38.141v303.902l-164.053-38.141v-227.621zM1122.198 888.995l-837.712-194.959v-335.978l140.328-376.832 151.712 57.45-104.049 279.113 649.668-151.18v722.385z" horiz-adv-x="1170" />
+<glyph unicode="&#xe60a;" d="M736.707-33.086h207.134v322.703h-207.134v-322.703zM399.646-33.086h207.134v946.793h-207.134v-946.793zM62.673-33.042h207.134v634.704h-207.134v-634.704z" horiz-adv-x="991" />
+<glyph unicode="&#xe60b;" d="M426.502 335.631c-15.866 13.512-42.796 25.753-80.79 36.723v-198.774c11.535 1.459 23.729 4.331 36.299 8.851 12.618 4.426 23.87 10.829 33.804 19.068 9.981 8.427 18.173 18.55 24.529 30.649 6.638 12.006 9.651 26.365 9.651 42.89 0.047 26.836-7.721 47.222-23.493 60.593zM576.736 211.292c-7.109-23.117-19.774-45.762-38.135-67.749-18.503-22.175-43.079-41.855-74.010-58.992-30.885-17.373-70.432-27.683-118.878-31.12v-88.088h-57.014v88.088c-72.080 5.603-128.483 29.237-169.113 71.374-40.536 42.090-63.935 104.095-70.432 185.544h136.251c-0.753-39.359 8.992-70.479 28.86-93.266 20.15-22.74 44.774-37.335 74.434-43.455v216.523c-3.060 1.318-7.486 2.919-12.994 4.567-5.508 1.789-11.393 3.343-17.938 4.708-23.776 6.827-47.175 15.019-70.291 24.294-23.493 9.369-44.114 21.704-62.523 37.335-18.456 15.584-33.098 34.84-43.879 57.956-11.111 23.211-16.478 51.977-16.478 86.487 0 35.31 6.168 66.336 18.785 93.313 12.665 26.836 29.143 49.529 49.858 67.702 20.621 18.314 44.303 32.58 71.468 42.419 27.071 10.122 55.037 16.149 83.992 18.314v79.66h57.014v-79.66c29.143-3.531 56.308-10.169 81.638-20.292 25.423-10.028 47.787-23.729 67.137-41.478 19.585-17.514 35.357-39.453 47.457-65.771 12.288-26.13 19.35-57.109 21.28-93.172h-137.287c-0.518 27.636-8.616 51.082-23.917 70.432-15.725 19.303-34.275 29.002-56.308 29.002v-183.331c7.862-2.072 15.631-4.143 23.729-6.12 8.098-2.072 16.525-4.567 25.565-7.297 47.645-13.983 84.415-31.12 110.168-51.318 25.8-20.292 44.726-41.666 56.92-63.653 12.335-22.175 19.633-44.256 21.704-66.336 2.448-22.081 3.531-41.713 3.531-59.039 0.047-15.207-3.531-34.416-10.593-57.579zM228.905 684.733c-8.38-7.156-15.113-16.196-19.962-26.883-4.802-10.781-7.062-23.352-7.062-37.759 0-22.834 6.733-40.536 20.103-52.824 13.653-12.618 35.734-22.552 66.713-30.131v168.831c-10.829 0-21.516-1.695-31.826-5.226-10.216-3.437-19.633-8.851-27.966-16.007z" horiz-adv-x="659" />
+<glyph unicode="&#xe60c;" d="M555.139 926.506c-218.775 71.601-457.062-40.29-532.231-250.028-75.227-209.681 41.211-437.665 259.928-509.208 218.717-71.601 457.004 40.348 532.231 250.028s-41.211 437.665-259.928 509.208zM320.076 271.103c-158.915 52.089-243.467 217.681-188.903 369.978 54.679 152.296 227.754 233.625 386.669 181.593s243.409-217.624 188.788-369.92c-54.622-152.296-227.696-233.567-386.554-181.65zM638.482 262.354l358.927-349.602 24.807 69.241 24.865 69.241-310.348 302.29z" horiz-adv-x="1109" />
+<glyph unicode="&#xe60d;" d="M1098.281 862.698c19.777 3.723 34.901 21.232 34.901 42.347-0.058 23.791-19.196 43.103-42.812 43.103h-900.508c-23.675 0-42.754-19.312-42.754-43.103 0-21.057 15.007-38.566 34.843-42.347l-181.951-354.421v-68.988c0-30.946 32.516-56.016 72.594-56.016 13.437 0 26.001 2.908 36.821 7.795v-466.919h1061.286v466.919c10.878-4.944 23.326-7.795 36.879-7.795 40.078 0 72.594 25.071 72.594 56.016v68.988l-181.893 354.421zM214.758 383.273c-38.217 0-69.221 25.071-69.221 56.016v6.457h-0.349v62.531l137.162 353.665h109.648l-107.961-353.665v-68.988c0 0 0 0 0 0 0-30.946-31.004-56.016-69.279-56.016zM498.447 383.273c-38.217 0-69.221 25.071-69.221 56.016v68.988l57.354 353.665h109.241l-28.095-353.665v-68.93c-0.058-31.004-31.004-56.075-69.279-56.075zM782.077 383.273c-38.217 0-69.162 25.071-69.162 56.016v68.988l-28.154 353.665h108.892l57.296-353.665v-68.988c0-0.931 0.175-1.92 0.233-2.792-1.803-29.666-32.051-53.224-69.104-53.224zM1134.637 439.289c0-30.946-31.004-56.016-69.221-56.016s-69.162 25.071-69.162 56.016v68.988l-108.019 353.665h109.59l137.22-353.665v-62.473h-0.349v-6.515h-0.058z" horiz-adv-x="1280" />
+<glyph unicode="&#xe60e;" d="M1024 380.306v116.547l-141.218 46.117-33.219 80.36 63.981 135.383-82.407 82.407-15.458-7.831-117.008-59.477-80.309 33.321-50.57 141.014h-116.496l-5.374-16.533-40.743-124.686-80.258-33.321-135.537 63.981-82.356-82.407 7.882-15.407 59.323-117.059-33.219-80.258-141.014-50.519v-116.547l141.218-46.066 33.219-80.36-63.878-135.383 82.254-82.407 15.458 7.831 117.008 59.425 80.36-33.27 50.468-140.963h116.496l5.426 16.43 40.692 124.737 80.309 33.27 135.383-63.981 82.458 82.407-7.882 15.458-59.374 116.957 33.27 80.36 141.116 50.468zM512 272.92c-90.136 0-163.177 73.040-163.177 163.177s73.040 163.177 163.177 163.177c90.187 0 163.177-73.040 163.177-163.177s-72.989-163.177-163.177-163.177z" />
+<glyph unicode="&#xe60f;" d="M944.97 619.106c-97.861 0-177.522-79.581-177.522-177.443 0-97.94 79.66-177.679 177.522-177.679 98.019 0 177.679 79.739 177.679 177.679 0 97.861-79.66 177.443-177.679 177.443zM944.97 948.148c-470.712 0-944.97-512-944.97-512s474.258-512 944.97-512c470.949 0 945.128 512 945.128 512s-474.179 512-945.128 512zM944.97 79.292c-200.057 0-362.292 162.078-362.292 362.45 0 200.057 162.236 362.292 362.292 362.292 200.214 0 362.45-162.236 362.45-362.292 0-200.451-162.236-362.45-362.45-362.45z" horiz-adv-x="1890" />
+<glyph unicode="&#xe610;" d="M1020.032 382.593v116.045l-16.41 5.376-124.237 40.525-33.152 80.102 63.718 134.784-82.048 82.125-15.411-7.808-116.531-59.213-80.077 33.178-50.278 140.442h-116.096l-45.875-140.698-80-33.126-134.963 63.744-82.022-82.074 7.834-15.334 59.162-116.608-33.126-80.026-140.518-50.253v-116.147l16.435-5.325 124.288-40.576 33.075-80-63.693-134.886 82.048-82.099 131.942 66.97 80.026-33.152 50.304-140.39h116.096l5.35 16.41 40.55 124.237 80.077 33.178 134.886-63.718 82.074 82.074-7.834 15.386-59.213 116.582 33.203 80.026 140.416 50.253zM510.003 275.559c-89.754 0-162.509 72.832-162.509 162.611 0 89.754 72.755 162.483 162.509 162.483 89.83 0 162.509-72.73 162.509-162.483 0.026-89.805-72.653-162.611-162.509-162.611z" />
+<glyph unicode="&#xe611;" d="M509.978 893.722l-509.978-509.926 95.949-95.949 414.106 413.978 413.875-413.978 95.949 95.898-509.901 509.978zM146.253 259.585v-335.437h259.917v304.819h207.514v-304.819h259.917v335.488l-363.622 363.597-363.725-363.648z" />
+<glyph unicode="&#xe612;" d="M0 211.738l498.278-287.59v421.402l-498.278 287.667v-421.478zM894.464 723.662v-44.262c0-32.819-62.797-59.418-140.365-59.418-77.466 0-140.262 26.598-140.262 59.418v73.216h0.435c4.71-30.925 65.408-55.475 139.853-55.475 77.568 0 140.365 26.624 140.365 59.29 0 32.845-62.797 59.366-140.365 59.366-6.195 0-12.262-0.205-18.202-0.563l-90.317 52.147v-55.706c0-32.819-62.72-59.392-140.262-59.392-48.691 0-91.597 10.496-116.813 26.47-3.584 3.712-7.987 7.245-13.312 10.598-6.579 6.861-10.24 14.387-10.24 22.323v53.939l-87.322-50.381c-6.272 0.307-12.646 0.614-19.123 0.614-77.491 0-140.314-26.522-140.314-59.366 0-32.691 62.822-59.29 140.314-59.29 74.445 0 135.219 24.525 139.93 55.475h0.384v-73.216c0-32.819-62.746-59.418-140.314-59.418-77.491 0-140.314 26.598-140.314 59.418v43.622l-108.083-62.31 499.994-288.563 496.691 286.694-112.358 64.768zM646.784 540.135c0-32.794-62.874-59.315-140.365-59.315s-140.339 26.522-140.339 59.315v73.267h0.41c4.762-30.95 65.459-55.475 139.93-55.475s135.142 24.525 139.904 55.475h0.486v-73.267zM525.645 341.914v-417.766l498.355 287.718v417.766l-498.355-287.718zM505.318 829.492c77.542 0 140.262 26.547 140.262 59.315s-62.72 59.315-140.262 59.315c-77.491 0-140.339-26.573-140.339-59.315-0.026-32.768 62.822-59.315 140.339-59.315z" />
+<glyph unicode="&#xe613;" d="M287.002 466.484c0.205-0.23 0.461-0.486 0.691-0.717l103.347-103.373 36.045 36.045-56.55 56.499 90.266 90.189 11.904-1.28c3.046-0.307 6.093-0.538 9.19-0.538 6.246 0 12.314 0.768 18.253 2.125l-66.381 66.381c-1.357 1.382-2.765 2.611-4.173 3.814 20.454 73.6 1.766 155.725-56.038 213.555-57.421 57.421-138.803 76.237-211.968 56.525l123.955-123.981-32.563-121.446-121.395-32.589-124.032 124.006c-19.712-73.19-0.896-154.573 56.525-212.019 60.262-60.288 147.021-77.952 222.925-53.197zM653.235 392.346c-1.997-8.909-2.509-18.202-1.459-27.546l1.306-11.93-90.189-90.189-56.55 56.55-36.070-36.122 327.219-327.194c20.198-20.173 46.618-30.259 73.062-30.259s52.915 10.086 73.037 30.259c40.346 40.32 40.346 105.728 0 146.074l-290.355 290.355zM905.907-10.214l-51.866-13.875-42.112 42.112 13.901 51.891 51.866 13.926 42.112-42.138-13.901-51.917zM506.701 354.049l56.576-56.576 64.128 64.154c-3.482 31.334 6.707 63.821 30.669 87.808 24.013 23.962 56.474 34.176 87.808 30.72l280.397 280.346-157.056 157.056-280.448-280.397c3.482-31.258-6.682-63.821-30.669-87.782-24.013-23.987-56.525-34.176-87.808-30.643l-64.102-64.205 56.499-56.422-277.043-277.12-10.138 10.138-53.248-42.829-89.421-141.312 22.835-22.835 141.312 89.421 42.803 53.222-10.138 10.138 277.043 277.12z" />
+<glyph unicode="&#xe614;" d="M517.99 948.148c-279.398 0-505.882-226.534-505.882-505.958s226.483-505.958 505.882-505.958c279.501 0 506.010 226.534 506.010 505.958s-226.509 505.958-506.010 505.958zM614.835 136.295v274.56h181.53l-278.272 337.203-278.349-337.203h181.555v-274.56z" />
+<glyph unicode="&#xe615;" d="M512.794 948.148c-283.187 0-512.794-229.581-512.794-512.794 0-283.187 229.606-512.794 512.794-512.794s512.794 229.632 512.794 512.794c0 283.213-229.581 512.794-512.794 512.794zM512.794-23.065c-253.158 0-458.394 205.261-458.394 458.368 0 253.158 205.261 458.394 458.394 458.394 253.184 0 458.394-205.235 458.394-458.394 0.026-253.107-205.21-458.368-458.394-458.368zM760.013 322.535l30.387 38.4-265.6 206.413-20.787 1.613-259.226-208.026 28.826-39.987 236.8 177.613z" />
+<glyph unicode="&#xe616;" d="M512.794 948.148c-283.187 0-512.794-229.581-512.794-512.794 0-283.187 229.606-512.794 512.794-512.794s512.794 229.606 512.794 512.794c0 283.213-229.581 512.794-512.794 512.794zM512.794-23.065c-253.158 0-458.394 205.261-458.394 458.394 0 253.158 205.261 458.394 458.394 458.394 253.184 0 458.394-205.235 458.394-458.394 0.026-253.133-205.21-458.394-458.394-458.394zM265.6 493.748l-30.387-38.4 265.574-206.387 20.813-1.613 259.2 208-28.8 39.987-236.8-177.587z" />
+<glyph unicode="&#xe617;" d="M259.2 948.148h214.323v-214.323h-214.323v214.323zM259.2 678.273h214.323v-214.349h-214.323v214.349zM259.2 408.372h214.323v-214.349h-214.323v214.349zM259.2 138.497h214.323v-214.349h-214.323v214.349zM549.325 948.148h214.323v-214.323h-214.323v214.323zM549.325 678.273h214.323v-214.349h-214.323v214.349zM549.325 408.372h214.323v-214.349h-214.323v214.349zM549.325 138.497h214.323v-214.349h-214.323v214.349z" />
+<glyph unicode="&#xe618;" d="M860.058 763.086v-272l-430.029 269.158-1.894-253.491-424.371 249.754-3.763-647.834 426.24 241.28-5.606-239.437 439.424 252.16v-259.635h163.942v660.045z" />
+<glyph unicode="&#xe619;" d="M163.942 103.041v271.974l430.029-269.133 1.894 253.491 424.397-249.754 3.738 647.834-426.24-241.28 5.606 239.437-439.424-252.16v259.635h-163.942v-660.045z" />
+<glyph unicode="&#xe61a;" d="M505.704 907.15c-260.096-3.489-468.158-217.202-464.706-477.336 3.489-259.982 217.202-468.12 477.298-464.631s468.158 217.202 464.706 477.336c-3.413 260.058-217.202 468.12-477.298 464.631zM557.928 750.175c47.863 0 62.009-27.762 62.009-59.544 0-39.671-31.782-76.383-86.016-76.383-45.359 0-66.901 22.831-65.65 60.53 0 31.782 26.624 75.435 89.657 75.435zM435.162 141.767c-32.73 0-56.661 19.873-33.792 107.217l37.547 154.814c6.485 24.841 7.585 34.778 0 34.778-9.785 0-52.262-17.143-77.407-34.057l-16.346 26.776c79.607 66.446 171.16 105.472 210.375 105.472 32.73 0 38.153-38.722 21.807-98.266l-43.008-162.816c-7.585-28.786-4.286-38.722 3.262-38.722 9.785 0 41.984 11.871 73.614 36.75l18.47-24.841c-77.369-77.369-161.792-107.179-194.56-107.179z" />
+<glyph unicode="&#xe61b;" d="M591.986 500.129h-16.005v192.019c0 105.851-86.13 192.019-192.019 192.019h-128c-105.851 0-192.019-86.13-192.019-192.019v-192.019h-16.005c-26.396 0-48.014-21.618-48.014-48.014v-479.991c0-26.396 21.618-48.014 48.014-48.014h544.009c26.396 0 48.014 21.618 48.014 48.014v479.991c0 26.396-21.618 48.014-48.014 48.014zM384 52.148h-128l27.838 139.188c-16.801 11.529-27.838 30.872-27.838 52.793 0 35.347 28.672 64.019 64.019 64.019s64.019-28.672 64.019-64.019c0-21.921-11.036-41.263-27.838-52.793l27.838-139.188zM448.019 500.129h-256v192.019c0 35.271 28.71 64.019 64.019 64.019h128c35.271 0 64.019-28.71 64.019-64.019v-192.019z" />
+<glyph unicode="&#xe61c;" d="M870.4 630.708h-194.56v-143.36h153.6v-215.040h-634.88v215.040h215.040v-112.64l204.8 184.32-204.8 184.32v-112.64h-256c-56.51 0-102.4-45.815-102.4-102.4v-296.96c0-56.51 45.89-102.4 102.4-102.4h716.8c56.585 0 102.4 45.89 102.4 102.4v296.96c0 56.585-45.815 102.4-102.4 102.4z" />
+<glyph unicode="&#xe61d;" d="M991.991 564.148h-351.991v351.991c0 17.673-14.336 32.009-32.009 32.009h-192.019c-17.673 0-32.009-14.336-32.009-32.009v-351.991h-351.991c-17.673 0-32.009-14.336-32.009-32.009v-192.019c0-17.673 14.336-32.009 32.009-32.009h351.991v-351.991c0-17.673 14.336-32.009 32.009-32.009h192.019c17.673 0 32.009 14.336 32.009 32.009v351.991h351.991c17.673 0 32.009 14.336 32.009 32.009v192.019c0 17.673-14.336 32.009-32.009 32.009z" />
+<glyph unicode="&#xe61e;" d="M505.704 907.15c-260.096-3.489-468.158-217.126-464.706-477.298 3.489-260.21 217.202-468.158 477.298-464.744 260.134 3.489 468.233 217.202 464.706 477.298-3.489 260.21-217.202 468.233-477.298 464.744zM506.577 845.748c70.163 0.986 136.382-15.853 194.56-46.118l-63.374-105.662c-38.002 18.47-80.631 28.937-125.762 28.937-45.056 0-87.723-10.43-125.687-28.975l-63.336 105.624c54.993 28.672 117.343 45.321 183.599 46.232zM254.255 310.461l-105.586-63.298c-28.672 54.955-45.321 117.305-46.194 183.486-0.986 70.201 15.853 136.457 46.118 194.56l105.624-63.45c-18.546-37.926-28.975-80.555-28.975-125.649 0-45.056 10.43-87.723 28.975-125.687zM517.461 26.586c-70.163-0.986-136.457 15.853-194.56 46.118l63.374 105.662c38.002-18.546 80.631-28.975 125.687-28.975 45.094 0 87.761 10.392 125.687 28.937l63.336-105.586c-54.993-28.634-117.305-45.246-183.561-46.194zM512 210.906c-124.397 0-225.242 100.883-225.242 225.242 0 124.397 100.883 225.28 225.242 225.28 124.473 0 225.28-100.883 225.28-225.28s-100.807-225.242-225.28-225.242zM769.745 310.461c18.546 38.002 28.975 80.631 28.975 125.687 0 45.094-10.43 87.723-28.975 125.687l105.586 63.374c28.672-54.993 45.359-117.305 46.232-183.561 0.91-70.201-15.929-136.457-46.194-194.56l-105.624 63.336z" />
+<glyph unicode="&#xe61f;" d="M906.126 812.335v0c-91.174 75.89-202.487 113.171-312.548 113.057-127.014 0.038-253.611-49.683-348.16-145.636l-95.004 79.265-1.593-305.342 300.184 56.282-99.442 82.944c67.546 64.247 155.269 97.204 244.015 97.28 79.948-0.038 159.782-26.7 226.114-81.806 84.347-70.125 127.659-170.629 127.772-272.46-0.038-14.715-0.948-29.431-2.769-44.070l137.519 26.283c0.19 5.954 0.303 11.871 0.303 17.787 0.152 140.098-60.151 279.78-176.431 376.415zM839.035 181.172c-67.736-65.498-156.255-99.025-245.912-99.1-79.986 0.038-159.82 26.738-226.114 81.806-84.347 70.125-127.697 170.629-127.772 272.498 0 16.839 1.252 33.716 3.679 50.366l-138.164-25.941c-0.379-8.116-0.683-16.346-0.683-24.462-0.114-140.174 60.226-279.817 176.545-376.491 91.136-75.852 202.411-113.057 312.51-112.981h0.341c127.924 0 255.241 50.441 349.943 147.759l90.795-75.207 0.569 305.38-299.956-57.344 104.183-86.281z" horiz-adv-x="1176" />
+<glyph unicode="&#xe620;" d="M593.351 926.416c-270.753 0-490.268-219.477-490.268-490.231s219.515-490.268 490.268-490.268 490.231 219.515 490.231 490.268c0 270.753-219.477 490.231-490.231 490.231zM828.947 264.495l-72.363-72.363-162.095 162.133-164.902-164.902-73.121 73.121 164.902 164.902-161.678 161.678 72.363 72.325 161.602-161.678 165.774 165.736 73.121-73.083-165.774-165.736 162.171-162.133z" horiz-adv-x="1176" />
+<glyph unicode="&#xe621;" d="M254.976 272.308v267.264h103.424l-179.2 203.776-179.2-203.776h103.424v-308.224c0-56.51 45.815-102.4 102.4-102.4h459.776l-131.186 143.36h-279.438zM920.538 332.724v308.224c0 56.51-45.89 102.4-102.4 102.4h-459.738l131.11-143.36h279.514v-267.264h-103.424l179.2-203.776 179.2 203.776h-103.462z" />
+<glyph unicode="&#xe622;" d="M768 884.129h-128c-105.851 0-192.019-86.13-192.019-192.019v-192.019h-400.005c-26.396 0-48.014-21.618-48.014-48.014v-479.991c0-26.396 21.618-48.014 48.014-48.014h544.009c26.396 0 48.014 21.618 48.014 48.014v479.991c0 26.396-21.618 48.014-48.014 48.014h-16.005v192.019c0 35.271 28.71 64.019 64.019 64.019h128c35.271 0 64.019-28.71 64.019-64.019v-192.019h128v192.019c0 105.851-86.13 192.019-192.019 192.019zM384 52.148h-128l27.838 139.188c-16.801 11.529-27.838 30.872-27.838 52.793 0 35.347 28.672 64.019 64.019 64.019s64.019-28.672 64.019-64.019c0-21.921-11.036-41.263-27.838-52.793l27.838-139.188z" />
+<glyph unicode="&#xe623;" d="M593.351 948.148l-593.351-1023.962h1186.74l-593.351 1023.962zM653.236 48.697h-125.421v121.211h125.421v-121.211zM622.175 219.819h-62.502l-34.816 288.313v156.748h131.3v-156.748l-33.982-288.313z" horiz-adv-x="1176" />
+<glyph unicode="&#xe624;" d="M0 436.148l512-512v320.019h512v384h-512v320.019z" />
+<glyph unicode="&#xe625;" d="M1024 436.148l-512 512v-320.019h-512v-384h512v-320.019z" />
+<glyph unicode="&#xe626;" d="M402.735 801.413l-320.019-320.019c-24.993-24.993-24.993-65.498 0-90.491l320.019-320.019c24.993-24.993 65.498-24.993 90.491 0s24.993 65.498 0 90.491l-210.754 210.754h613.49c35.347 0 64.019 28.634 64.019 64.019s-28.672 64.019-64.019 64.019h-613.49l210.754 210.754c12.478 12.478 18.735 28.862 18.735 45.246s-6.258 32.768-18.735 45.246c-24.993 24.993-65.498 24.993-90.491 0z" />
+<glyph unicode="&#xe627;" d="M507.259 369.626h-102.059v-101.717h102.059v101.717zM650.885 233.434h-101.945v-101.717h101.945v101.717zM507.259 233.434h-102.059v-101.717h102.059v101.717zM507.259 505.818h-102.059v-101.679h102.059v101.679zM843.131 704.057c23.4 0 42.287 18.887 42.287 42.174v145.408c0 23.324-18.887 42.174-42.287 42.174s-42.325-18.849-42.325-42.174v-145.408c0.038-23.324 18.925-42.174 42.325-42.174zM343.419 704.057c23.362 0 42.249 18.887 42.249 42.174v145.408c0 23.324-18.887 42.174-42.249 42.174-23.4 0-42.325-18.849-42.325-42.174v-145.408c0-23.324 18.925-42.174 42.325-42.174zM363.444 369.626h-102.059v-101.717h102.059v101.717zM363.444 233.434h-102.059v-101.717h102.059v101.717zM650.885 369.626h-101.945v-101.717h101.945v101.717zM938.325 369.626h-102.059v-101.717h102.059v101.717zM938.325 505.818h-102.059v-101.679h102.059v101.679zM899.337 863.763v-46.914c17.598-15.474 28.71-38.153 28.71-63.412 0-46.801-37.964-84.764-84.916-84.764s-84.954 37.964-84.954 84.764c0 25.259 11.15 47.938 28.71 63.412v46.914h-387.262v-46.914c17.56-15.474 28.71-38.153 28.71-63.412 0-46.801-38.002-84.764-84.916-84.764s-84.954 37.964-84.954 84.764c0 25.259 11.15 47.938 28.71 63.412v46.914h-192.322v-925.279h997.035v925.279h-192.512zM999.234 32.844h-809.832v589.938h809.832v-589.938zM650.885 505.818h-101.945v-101.679h101.945v101.679zM794.624 505.818h-101.983v-101.679h101.983v101.679zM794.624 233.434h-101.983v-101.717h101.983v101.717zM794.624 369.626h-101.983v-101.717h101.983v101.717z" horiz-adv-x="1176" />
+<glyph unicode="&#xe628;" d="M132.21 661.39c-13.881 13.729-36.295 13.729-50.138 0-13.805-13.653-13.805-35.878 0-49.607l404.897-400.877c13.881-13.729 36.257-13.729 50.138 0l404.897 400.877c13.805 13.729 13.881 35.878 0 49.607s-36.371 13.729-50.138 0.038l-379.866-365.606-379.79 365.568z" />
+<glyph unicode="&#xe629;" d="M737.242 56.358c13.729-13.881 13.729-36.257 0-50.138s-35.878-13.881-49.607 0l-400.877 404.821c-13.729 13.881-13.729 36.295 0 50.138l400.877 404.897c13.729 13.881 35.878 13.881 49.607 0s13.729-36.257 0-50.138l-365.568-379.79 365.568-379.79z" />
+<glyph unicode="&#xe62a;" d="M286.72 56.358c-13.729-13.881-13.729-36.257 0-50.138s35.878-13.881 49.607 0l400.877 404.821c13.729 13.881 13.729 36.295 0 50.138l-400.915 404.897c-13.729 13.881-35.878 13.881-49.607 0s-13.729-36.257 0-50.138l365.568-379.79-365.568-379.79z" />
+<glyph unicode="&#xe62b;" d="M891.79 210.906c13.881-13.729 36.295-13.729 50.138 0 13.881 13.729 13.881 35.878 0 49.607l-404.897 400.877c-13.805 13.729-36.257 13.729-50.062 0l-404.897-400.877c-13.805-13.729-13.881-35.878 0-49.607s36.257-13.729 50.138 0l379.79 365.606 379.79-365.606z" />
+<glyph unicode="&#xe62c;" d="M574.767 855.988c-227.593 0-412.672-182.386-418.247-409.335h-125.8l188.378-209.92 188.302 209.92h-146.242c5.537 168.998 143.777 304.393 313.609 304.393 173.397 0 313.913-140.971 313.913-314.899s-140.478-314.861-313.913-314.861c-69.48 0-133.689 22.718-185.685 61.099l-71.983-76.99c70.997-55.751 160.465-89.050 257.707-89.050 231.159 0 418.551 187.961 418.551 419.84-0.038 231.879-187.43 419.84-418.551 419.84z" />
+<glyph unicode="&#xe62d;" d="M996.617 821.362l-513.555-513.555-256.796 256.834-128.379-128.417 385.214-385.252 641.896 642.010z" horiz-adv-x="1176" />
+<glyph unicode="&#xe62e;" d="M512 907.188c-260.134 0-471.040-210.944-471.040-471.040 0-260.134 210.906-471.040 471.040-471.040s471.040 210.906 471.040 471.040c0 260.134-210.906 471.040-471.040 471.040zM512 67.508c-203.624 0-368.64 165.054-368.64 368.64s165.016 368.64 368.64 368.64 368.64-165.054 368.64-368.64-165.016-368.64-368.64-368.64zM547.84 702.388h-71.68v-281.069l174.345-174.345 50.669 50.707-153.335 153.335z" />
+<glyph unicode="&#xe62f;" d="M1094.391 870.438l-77.71 77.71-423.329-423.347-423.33 423.347-77.71-77.672 423.35-423.368-423.312-423.329 77.672-77.71 423.338 423.338 423.283-423.3 77.671 77.71-423.263 423.281z" horiz-adv-x="1176" />
+<glyph unicode="&#xe630;" d="M337.541-72.856h513.024l64.512 645.916h-639.128l61.592-645.916zM737.394 793.979v116.508c0 19.191-15.398 34.702-34.361 34.702h-217.847c-19.001 0-34.361-15.55-34.361-34.702v-114.574c-73.576-8.382-150.149-24.614-226.494-52.338v-106.989h738.001v109.833c0 0-90.074 31.403-224.977 47.559zM668.937 800.389c-47.749 3.224-99.252 4.096-153.297 0.986v61.44c0 9.519 7.623 17.332 17.143 17.332h118.936c9.519 0 17.218-7.813 17.218-17.332v-62.426z" horiz-adv-x="1176" />
+<glyph unicode="&#xe631;" d="M928.503 921.259l-111.502-112.109 156.065-156.9 111.502 112.071-156.065 156.937zM215.002 203.738l156.065-156.9 535.211 538.093-156.065 156.9-535.211-538.093zM103.917-59.013l188.985 49.873-139.302 140.098-49.683-190.009z" horiz-adv-x="1176" />
+<glyph unicode="&#xe632;" d="M1014.67 125.497c0 0 0 0 0 0l-310.651 310.651 310.651 310.651c0 0 0 0 0 0 3.337 3.337 5.765 7.244 7.32 11.416 4.248 11.378 1.82 24.69-7.32 33.83l-146.735 146.735c-9.14 9.14-22.452 11.567-33.83 7.32-4.172-1.555-8.078-3.982-11.416-7.32 0 0 0 0 0 0l-310.651-310.651-310.651 310.651c0 0 0 0 0 0-3.337 3.337-7.244 5.765-11.416 7.32-11.378 4.248-24.69 1.82-33.83-7.32l-146.735-146.735c-9.14-9.14-11.567-22.452-7.32-33.83 1.555-4.172 3.982-8.078 7.32-11.416 0 0 0 0 0 0l310.651-310.651-310.651-310.651c0 0 0 0 0 0-3.337-3.337-5.765-7.244-7.32-11.416-4.248-11.378-1.82-24.69 7.32-33.83l146.735-146.735c9.14-9.14 22.452-11.567 33.83-7.32 4.172 1.555 8.078 3.982 11.416 7.32 0 0 0 0 0 0l310.651 310.651 310.651-310.651c0 0 0 0 0 0 3.337-3.337 7.244-5.765 11.416-7.32 11.378-4.248 24.69-1.82 33.83 7.32l146.735 146.735c9.14 9.14 11.567 22.452 7.32 33.83-1.555 4.172-3.982 8.078-7.32 11.416z" />
+<glyph unicode="&#xe633;" d="M593.351 925.582c-270.336 0-489.434-219.098-489.434-489.358s219.098-489.434 489.434-489.434 489.434 219.136 489.434 489.434-219.136 489.358-489.434 489.358zM635.752 121.552c-11.985-11.719-26.396-17.636-43.16-17.636-8.154 0-15.967 1.517-23.4 4.589-7.358 3.034-13.843 7.168-19.456 12.174-5.613 5.158-10.126 11.226-13.388 18.356-3.337 7.13-4.968 14.753-4.968 22.945 0 16.308 5.992 30.303 17.977 42.060 11.947 11.681 26.396 17.598 43.198 17.598 16.308 0 30.606-5.689 42.78-16.801 12.25-11.188 18.318-24.993 18.318-41.339-0.038-16.384-5.992-30.303-17.939-41.984zM778.923 565.475c-3.982-13.767-9.747-26.396-17.18-37.774-7.471-11.454-16.498-22.49-27.079-33.071s-22.49-21.618-35.65-33.033c-11.454-9.785-20.783-18.318-27.913-25.79-7.168-7.396-12.895-14.867-17.218-22.338-4.286-7.433-7.282-15.398-9.026-24.007-1.707-8.609-2.617-49.721-2.617-62.35v-22.338h-101.376v32.616c0 13.729 0.986 56.661 3.034 67.584s5.158 21.125 9.481 30.872 10.012 19.228 17.18 28.369c7.168 9.14 16.232 18.887 27.079 29.203l38.647 36.902c10.847 9.747 20.177 20.632 27.951 32.616 7.737 12.060 11.529 26.7 11.529 43.88 0 22.3-6.978 41.036-21.011 56.206-14.071 15.17-33.944 22.793-59.695 22.793-13.16 0-25.069-2.389-35.65-7.282-10.619-4.817-19.797-11.454-27.496-19.759-7.737-8.344-13.577-17.901-17.598-28.786-3.982-10.847-6.334-21.997-6.865-33.527l-105.624 9.444c3.413 27.496 10.733 51.959 21.921 73.463 11.112 21.466 25.562 39.595 43.311 54.575 17.711 14.829 38.078 26.169 61.023 33.944 22.869 7.699 47.521 11.605 73.842 11.605 24.614 0 47.976-3.603 70.049-10.771 21.959-7.168 41.491-17.711 58.406-31.782 16.839-14.033 30.227-31.365 39.936-51.959 9.709-20.632 14.564-44.411 14.564-71.263 0-18.356-2.010-34.475-5.992-48.166z" horiz-adv-x="1176" />
+<glyph unicode="&#xe634;" d="M574.805 855.988c-227.631 0-412.71-182.386-418.247-409.335h-125.838l188.378-209.958 188.302 209.958h-146.242c5.537 168.998 143.777 304.393 313.647 304.393 173.359 0 313.875-140.971 313.875-314.899s-140.478-314.861-313.875-314.861c-69.518 0-133.727 22.718-185.761 61.099l-71.983-76.99c71.073-55.751 160.503-89.050 257.745-89.050 231.121 0 418.513 187.961 418.513 419.84-0.038 231.879-187.43 419.84-418.513 419.84zM537.6 661.428v-240.109l153.865-153.865 50.669 50.669-132.855 132.855v210.413h-71.68z" />
+<glyph unicode="&#xe635;" d="M383.462 370.638h255.693v213.043h127.795l-255.642 255.667-255.642-255.667h127.795zM852.173 370.638v-170.394h-681.754v170.394h-170.419v-340.89h1022.618v340.89z" />
+<glyph unicode="&#xe636;" d="M639.155 839.348h-255.693v-213.043h-127.795l255.667-255.667 255.616 255.667h-127.795zM852.173 370.638v-170.394h-681.754v170.394h-170.419v-340.89h1022.618v340.89z" />
+<glyph unicode="&#xe637;" d="M1021.85 437.223c0-282.176-228.749-510.925-510.925-510.925s-510.925 228.749-510.925 510.925c0 282.176 228.749 510.925 510.925 510.925s510.925-228.749 510.925-510.925z" />
+<glyph unicode="&#xe638;" d="M510.413 948.148c-281.907 0-510.413-228.582-510.413-510.413 0-281.933 228.506-510.464 510.413-510.464s510.387 228.557 510.387 510.464c0 281.83-228.48 510.413-510.387 510.413zM865.843 437.735c0-69.99-20.506-135.27-55.578-190.285l-490.163 490.163c55.091 35.021 120.32 55.475 190.31 55.475 195.942 0 355.43-159.411 355.43-355.354zM154.957 437.735c0 69.939 20.506 135.245 55.578 190.31l490.189-490.189c-55.066-35.072-120.371-55.501-190.31-55.501-195.942-0.026-355.456 159.437-355.456 355.379z" />
+<glyph unicode="&#xe639;" d="M511.77 948.148c-282.778 0-512.102-229.222-512.102-512.179 0-282.829 229.325-512.102 512.102-512.102 282.931-0.026 512.23 229.248 512.23 512.102 0 282.957-229.299 512.179-512.23 512.179zM143.718 528.18h736.205v-184.269h-736.205v184.269z" />
+<glyph unicode="&#xe63a;" d="M857.675 658.735l-403.18 240.514-402.726-240.514v-457.026l403.18-240.515 402.726 240.514v457.027zM454.857 83.683l-298.427 178.383v335.966l298.157 178.729 298.428-178.383v-335.966l-298.158-178.729z" horiz-adv-x="903" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.ttf b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..a9f17efeb28fb2d138ec7c287e36eeb7832452bb
Binary files /dev/null and b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.ttf differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff
new file mode 100644
index 0000000000000000000000000000000000000000..bd9dc606e7d4d93a6fe91fd61fc8006f83a21150
Binary files /dev/null and b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff2 b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..3a67473d79b4dc39b1acb222d4f2abaded28c948
Binary files /dev/null and b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/admin-icons.woff2 differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/selection.json b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/selection.json
new file mode 100644
index 0000000000000000000000000000000000000000..bf54bc64846bbd2a737f522de0baa973484c690e
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/fonts/admin-icons/selection.json
@@ -0,0 +1,1916 @@
+{
+	"IcoMoonType": "selection",
+	"icons": [
+		{
+			"icon": {
+				"paths": [
+					"M1094.391 77.71l-77.71-77.71-423.329 423.347-423.33-423.347-77.71 77.672 423.35 423.368-423.312 423.329 77.672 77.71 423.338-423.338 423.283 423.3 77.671-77.71-423.263-423.281z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"width": 1176,
+				"grid": 0,
+				"tags": [
+					"close-mage"
+				],
+				"colorPermutations": {
+					"6868681": [
+						0
+					]
+				}
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 22,
+				"id": 1,
+				"prevSize": 27,
+				"code": 58927,
+				"name": "close-mage"
+			},
+			"setIdx": 0,
+			"iconIdx": 0
+		},
+		{
+			"icon": {
+				"paths": [
+					"M857.675 289.413l-403.18-240.514-402.726 240.514v457.026l403.18 240.515 402.726-240.514v-457.027zM454.857 864.465l-298.427-178.383v-335.966l298.157-178.729 298.428 178.383v335.966l-298.158 178.729z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"width": 903,
+				"grid": 0,
+				"tags": [
+					"menu-item"
+				],
+				"colorPermutations": {
+					"6868681": [
+						0
+					]
+				}
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 20,
+				"id": 0,
+				"prevSize": 27,
+				"code": 58938,
+				"name": "menu-item"
+			},
+			"setIdx": 0,
+			"iconIdx": 1
+		},
+		{
+			"icon": {
+				"paths": [
+					"M505.704 40.998c-260.096 3.489-468.158 217.202-464.706 477.336 3.489 259.982 217.202 468.12 477.298 464.631s468.158-217.202 464.706-477.336c-3.413-260.058-217.202-468.12-477.298-464.631zM557.928 197.973c47.863 0 62.009 27.762 62.009 59.544 0 39.671-31.782 76.383-86.016 76.383-45.359 0-66.901-22.831-65.65-60.53 0-31.782 26.624-75.435 89.657-75.435zM435.162 806.381c-32.73 0-56.661-19.873-33.792-107.217l37.547-154.814c6.485-24.841 7.585-34.778 0-34.778-9.785 0-52.262 17.143-77.407 34.057l-16.346-26.776c79.607-66.446 171.16-105.472 210.375-105.472 32.73 0 38.153 38.722 21.807 98.266l-43.008 162.816c-7.585 28.786-4.286 38.722 3.262 38.722 9.785 0 41.984-11.871 73.614-36.75l18.47 24.841c-77.369 77.369-161.792 107.179-194.56 107.179z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"info"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 27,
+				"id": 28,
+				"prevSize": 27,
+				"code": 58906,
+				"name": "info"
+			},
+			"setIdx": 1,
+			"iconIdx": 0
+		},
+		{
+			"icon": {
+				"paths": [
+					"M591.986 448.019h-16.005v-192.019c0-105.851-86.13-192.019-192.019-192.019h-128c-105.851 0-192.019 86.13-192.019 192.019v192.019h-16.005c-26.396 0-48.014 21.618-48.014 48.014v479.991c0 26.396 21.618 48.014 48.014 48.014h544.009c26.396 0 48.014-21.618 48.014-48.014v-479.991c0-26.396-21.618-48.014-48.014-48.014zM384 896h-128l27.838-139.188c-16.801-11.529-27.838-30.872-27.838-52.793 0-35.347 28.672-64.019 64.019-64.019s64.019 28.672 64.019 64.019c0 21.921-11.036 41.263-27.838 52.793l27.838 139.188zM448.019 448.019h-256v-192.019c0-35.271 28.71-64.019 64.019-64.019h128c35.271 0 64.019 28.71 64.019 64.019v192.019z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"lock"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 28,
+				"id": 27,
+				"prevSize": 27,
+				"code": 58907,
+				"name": "lock"
+			},
+			"setIdx": 1,
+			"iconIdx": 1
+		},
+		{
+			"icon": {
+				"paths": [
+					"M870.4 317.44h-194.56v143.36h153.6v215.040h-634.88v-215.040h215.040v112.64l204.8-184.32-204.8-184.32v112.64h-256c-56.51 0-102.4 45.815-102.4 102.4v296.96c0 56.51 45.89 102.4 102.4 102.4h716.8c56.585 0 102.4-45.89 102.4-102.4v-296.96c0-56.585-45.815-102.4-102.4-102.4z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"loop"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 29,
+				"id": 26,
+				"prevSize": 27,
+				"code": 58908,
+				"name": "loop"
+			},
+			"setIdx": 1,
+			"iconIdx": 2
+		},
+		{
+			"icon": {
+				"paths": [
+					"M991.991 384h-351.991v-351.991c0-17.673-14.336-32.009-32.009-32.009h-192.019c-17.673 0-32.009 14.336-32.009 32.009v351.991h-351.991c-17.673 0-32.009 14.336-32.009 32.009v192.019c0 17.673 14.336 32.009 32.009 32.009h351.991v351.991c0 17.673 14.336 32.009 32.009 32.009h192.019c17.673 0 32.009-14.336 32.009-32.009v-351.991h351.991c17.673 0 32.009-14.336 32.009-32.009v-192.019c0-17.673-14.336-32.009-32.009-32.009z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"plus"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 32,
+				"id": 25,
+				"prevSize": 27,
+				"code": 58909,
+				"name": "plus"
+			},
+			"setIdx": 1,
+			"iconIdx": 3
+		},
+		{
+			"icon": {
+				"paths": [
+					"M505.704 40.998c-260.096 3.489-468.158 217.126-464.706 477.298 3.489 260.21 217.202 468.158 477.298 464.744 260.134-3.489 468.233-217.202 464.706-477.298-3.489-260.21-217.202-468.233-477.298-464.744zM506.577 102.4c70.163-0.986 136.382 15.853 194.56 46.118l-63.374 105.662c-38.002-18.47-80.631-28.937-125.762-28.937-45.056 0-87.723 10.43-125.687 28.975l-63.336-105.624c54.993-28.672 117.343-45.321 183.599-46.232zM254.255 637.687l-105.586 63.298c-28.672-54.955-45.321-117.305-46.194-183.486-0.986-70.201 15.853-136.457 46.118-194.56l105.624 63.45c-18.546 37.926-28.975 80.555-28.975 125.649 0 45.056 10.43 87.723 28.975 125.687zM517.461 921.562c-70.163 0.986-136.457-15.853-194.56-46.118l63.374-105.662c38.002 18.546 80.631 28.975 125.687 28.975 45.094 0 87.761-10.392 125.687-28.937l63.336 105.586c-54.993 28.634-117.305 45.246-183.561 46.194zM512 737.242c-124.397 0-225.242-100.883-225.242-225.242 0-124.397 100.883-225.28 225.242-225.28 124.473 0 225.28 100.883 225.28 225.28s-100.807 225.242-225.28 225.242zM769.745 637.687c18.546-38.002 28.975-80.631 28.975-125.687 0-45.094-10.43-87.723-28.975-125.687l105.586-63.374c28.672 54.993 45.359 117.305 46.232 183.561 0.91 70.201-15.929 136.457-46.194 194.56l-105.624-63.336z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"recover"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 30,
+				"id": 24,
+				"prevSize": 27,
+				"code": 58910,
+				"name": "recover"
+			},
+			"setIdx": 1,
+			"iconIdx": 4
+		},
+		{
+			"icon": {
+				"paths": [
+					"M906.126 135.813v0c-91.174-75.89-202.487-113.171-312.548-113.057-127.014-0.038-253.611 49.683-348.16 145.636l-95.004-79.265-1.593 305.342 300.184-56.282-99.442-82.944c67.546-64.247 155.269-97.204 244.015-97.28 79.948 0.038 159.782 26.7 226.114 81.806 84.347 70.125 127.659 170.629 127.772 272.46-0.038 14.715-0.948 29.431-2.769 44.070l137.519-26.283c0.19-5.954 0.303-11.871 0.303-17.787 0.152-140.098-60.151-279.78-176.431-376.415zM839.035 766.976c-67.736 65.498-156.255 99.025-245.912 99.1-79.986-0.038-159.82-26.738-226.114-81.806-84.347-70.125-127.697-170.629-127.772-272.498 0-16.839 1.252-33.716 3.679-50.366l-138.164 25.941c-0.379 8.116-0.683 16.346-0.683 24.462-0.114 140.174 60.226 279.817 176.545 376.491 91.136 75.852 202.411 113.057 312.51 112.981h0.341c127.924 0 255.241-50.441 349.943-147.759l90.795 75.207 0.569-305.38-299.956 57.344 104.183 86.281z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"refresh"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 33,
+				"id": 23,
+				"prevSize": 27,
+				"code": 58911,
+				"name": "refresh"
+			},
+			"setIdx": 1,
+			"iconIdx": 5
+		},
+		{
+			"icon": {
+				"paths": [
+					"M593.351 21.732c-270.753 0-490.268 219.477-490.268 490.231s219.515 490.268 490.268 490.268 490.231-219.515 490.231-490.268c0-270.753-219.477-490.231-490.231-490.231zM828.947 683.653l-72.363 72.363-162.095-162.133-164.902 164.902-73.121-73.121 164.902-164.902-161.678-161.678 72.363-72.325 161.602 161.678 165.774-165.736 73.121 73.083-165.774 165.736 162.171 162.133z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"remove-small"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 34,
+				"id": 22,
+				"prevSize": 27,
+				"code": 58912,
+				"name": "remove-small"
+			},
+			"setIdx": 1,
+			"iconIdx": 6
+		},
+		{
+			"icon": {
+				"paths": [
+					"M254.976 675.84v-267.264h103.424l-179.2-203.776-179.2 203.776h103.424v308.224c0 56.51 45.815 102.4 102.4 102.4h459.776l-131.186-143.36h-279.438zM920.538 615.424v-308.224c0-56.51-45.89-102.4-102.4-102.4h-459.738l131.11 143.36h279.514v267.264h-103.424l179.2 203.776 179.2-203.776h-103.462z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"retweet"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 35,
+				"id": 21,
+				"prevSize": 27,
+				"code": 58913,
+				"name": "retweet"
+			},
+			"setIdx": 1,
+			"iconIdx": 7
+		},
+		{
+			"icon": {
+				"paths": [
+					"M768 64.019h-128c-105.851 0-192.019 86.13-192.019 192.019v192.019h-400.005c-26.396 0-48.014 21.618-48.014 48.014v479.991c0 26.396 21.618 48.014 48.014 48.014h544.009c26.396 0 48.014-21.618 48.014-48.014v-479.991c0-26.396-21.618-48.014-48.014-48.014h-16.005v-192.019c0-35.271 28.71-64.019 64.019-64.019h128c35.271 0 64.019 28.71 64.019 64.019v192.019h128v-192.019c0-105.851-86.13-192.019-192.019-192.019zM384 896h-128l27.838-139.188c-16.801-11.529-27.838-30.872-27.838-52.793 0-35.347 28.672-64.019 64.019-64.019s64.019 28.672 64.019 64.019c0 21.921-11.036 41.263-27.838 52.793l27.838 139.188z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"unlocked"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 36,
+				"id": 20,
+				"prevSize": 27,
+				"code": 58914,
+				"name": "unlocked"
+			},
+			"setIdx": 1,
+			"iconIdx": 8
+		},
+		{
+			"icon": {
+				"paths": [
+					"M593.351 0l-593.351 1023.962h1186.74l-593.351-1023.962zM653.236 899.451h-125.421v-121.211h125.421v121.211zM622.175 728.329h-62.502l-34.816-288.313v-156.748h131.3v156.748l-33.982 288.313z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"warning"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 37,
+				"id": 19,
+				"prevSize": 27,
+				"code": 58915,
+				"name": "warning"
+			},
+			"setIdx": 1,
+			"iconIdx": 9
+		},
+		{
+			"icon": {
+				"paths": [
+					"M0 512l512 512v-320.019h512v-384h-512v-320.019z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"arrow-left"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 38,
+				"id": 18,
+				"prevSize": 27,
+				"code": 58916,
+				"name": "arrow-left"
+			},
+			"setIdx": 1,
+			"iconIdx": 10
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1024 512l-512-512v320.019h-512v384h512v320.019z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"arrow-right"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 39,
+				"id": 17,
+				"prevSize": 27,
+				"code": 58917,
+				"name": "arrow-right"
+			},
+			"setIdx": 1,
+			"iconIdx": 11
+		},
+		{
+			"icon": {
+				"paths": [
+					"M402.735 146.735l-320.019 320.019c-24.993 24.993-24.993 65.498 0 90.491l320.019 320.019c24.993 24.993 65.498 24.993 90.491 0s24.993-65.498 0-90.491l-210.754-210.754h613.49c35.347 0 64.019-28.634 64.019-64.019s-28.672-64.019-64.019-64.019h-613.49l210.754-210.754c12.478-12.478 18.735-28.862 18.735-45.246s-6.258-32.768-18.735-45.246c-24.993-24.993-65.498-24.993-90.491 0z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"back-arrow"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 40,
+				"id": 16,
+				"prevSize": 27,
+				"code": 58918,
+				"name": "back-arrow"
+			},
+			"setIdx": 1,
+			"iconIdx": 12
+		},
+		{
+			"icon": {
+				"paths": [
+					"M507.259 578.522h-102.059v101.717h102.059v-101.717zM650.885 714.714h-101.945v101.717h101.945v-101.717zM507.259 714.714h-102.059v101.717h102.059v-101.717zM507.259 442.33h-102.059v101.679h102.059v-101.679zM843.131 244.091c23.4 0 42.287-18.887 42.287-42.174v-145.408c0-23.324-18.887-42.174-42.287-42.174s-42.325 18.849-42.325 42.174v145.408c0.038 23.324 18.925 42.174 42.325 42.174zM343.419 244.091c23.362 0 42.249-18.887 42.249-42.174v-145.408c0-23.324-18.887-42.174-42.249-42.174-23.4 0-42.325 18.849-42.325 42.174v145.408c0 23.324 18.925 42.174 42.325 42.174zM363.444 578.522h-102.059v101.717h102.059v-101.717zM363.444 714.714h-102.059v101.717h102.059v-101.717zM650.885 578.522h-101.945v101.717h101.945v-101.717zM938.325 578.522h-102.059v101.717h102.059v-101.717zM938.325 442.33h-102.059v101.679h102.059v-101.679zM899.337 84.385v46.914c17.598 15.474 28.71 38.153 28.71 63.412 0 46.801-37.964 84.764-84.916 84.764s-84.954-37.964-84.954-84.764c0-25.259 11.15-47.938 28.71-63.412v-46.914h-387.262v46.914c17.56 15.474 28.71 38.153 28.71 63.412 0 46.801-38.002 84.764-84.916 84.764s-84.954-37.964-84.954-84.764c0-25.259 11.15-47.938 28.71-63.412v-46.914h-192.322v925.279h997.035v-925.279h-192.512zM999.234 915.304h-809.832v-589.938h809.832v589.938zM650.885 442.33h-101.945v101.679h101.945v-101.679zM794.624 442.33h-101.983v101.679h101.983v-101.679zM794.624 714.714h-101.983v101.717h101.983v-101.717zM794.624 578.522h-101.983v101.717h101.983v-101.717z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"calendar"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 41,
+				"id": 15,
+				"prevSize": 27,
+				"code": 58919,
+				"name": "calendar"
+			},
+			"setIdx": 1,
+			"iconIdx": 13
+		},
+		{
+			"icon": {
+				"paths": [
+					"M132.21 286.758c-13.881-13.729-36.295-13.729-50.138 0-13.805 13.653-13.805 35.878 0 49.607l404.897 400.877c13.881 13.729 36.257 13.729 50.138 0l404.897-400.877c13.805-13.729 13.881-35.878 0-49.607s-36.371-13.729-50.138-0.038l-379.866 365.606-379.79-365.568z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"caret-down"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 42,
+				"id": 14,
+				"prevSize": 27,
+				"code": 58920,
+				"name": "caret-down"
+			},
+			"setIdx": 1,
+			"iconIdx": 14
+		},
+		{
+			"icon": {
+				"paths": [
+					"M737.242 891.79c13.729 13.881 13.729 36.257 0 50.138s-35.878 13.881-49.607 0l-400.877-404.821c-13.729-13.881-13.729-36.295 0-50.138l400.877-404.897c13.729-13.881 35.878-13.881 49.607 0s13.729 36.257 0 50.138l-365.568 379.79 365.568 379.79z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"caret-left"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 43,
+				"id": 13,
+				"prevSize": 27,
+				"code": 58921,
+				"name": "caret-left"
+			},
+			"setIdx": 1,
+			"iconIdx": 15
+		},
+		{
+			"icon": {
+				"paths": [
+					"M286.72 891.79c-13.729 13.881-13.729 36.257 0 50.138s35.878 13.881 49.607 0l400.877-404.821c13.729-13.881 13.729-36.295 0-50.138l-400.915-404.897c-13.729-13.881-35.878-13.881-49.607 0s-13.729 36.257 0 50.138l365.568 379.79-365.568 379.79z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"caret-right"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 44,
+				"id": 12,
+				"prevSize": 27,
+				"code": 58922,
+				"name": "caret-right"
+			},
+			"setIdx": 1,
+			"iconIdx": 16
+		},
+		{
+			"icon": {
+				"paths": [
+					"M891.79 737.242c13.881 13.729 36.295 13.729 50.138 0 13.881-13.729 13.881-35.878 0-49.607l-404.897-400.877c-13.805-13.729-36.257-13.729-50.062 0l-404.897 400.877c-13.805 13.729-13.881 35.878 0 49.607s36.257 13.729 50.138 0l379.79-365.606 379.79 365.606z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"caret-up"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 53,
+				"id": 11,
+				"prevSize": 27,
+				"code": 58923,
+				"name": "caret-up"
+			},
+			"setIdx": 1,
+			"iconIdx": 17
+		},
+		{
+			"icon": {
+				"paths": [
+					"M574.767 92.16c-227.593 0-412.672 182.386-418.247 409.335h-125.8l188.378 209.92 188.302-209.92h-146.242c5.537-168.998 143.777-304.393 313.609-304.393 173.397 0 313.913 140.971 313.913 314.899s-140.478 314.861-313.913 314.861c-69.48 0-133.689-22.718-185.685-61.099l-71.983 76.99c70.997 55.751 160.465 89.050 257.707 89.050 231.159 0 418.551-187.961 418.551-419.84-0.038-231.879-187.43-419.84-418.551-419.84z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"ccw"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 52,
+				"id": 10,
+				"prevSize": 27,
+				"code": 58924,
+				"name": "ccw"
+			},
+			"setIdx": 1,
+			"iconIdx": 18
+		},
+		{
+			"icon": {
+				"paths": [
+					"M996.617 126.786l-513.555 513.555-256.796-256.834-128.379 128.417 385.214 385.252 641.896-642.010z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"check-mage"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 51,
+				"id": 9,
+				"prevSize": 27,
+				"code": 58925,
+				"name": "check-mage"
+			},
+			"setIdx": 1,
+			"iconIdx": 19
+		},
+		{
+			"icon": {
+				"paths": [
+					"M512 40.96c-260.134 0-471.040 210.944-471.040 471.040 0 260.134 210.906 471.040 471.040 471.040s471.040-210.906 471.040-471.040c0-260.134-210.906-471.040-471.040-471.040zM512 880.64c-203.624 0-368.64-165.054-368.64-368.64s165.016-368.64 368.64-368.64 368.64 165.054 368.64 368.64-165.016 368.64-368.64 368.64zM547.84 245.76h-71.68v281.069l174.345 174.345 50.669-50.707-153.335-153.335z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"clock"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 31,
+				"id": 8,
+				"prevSize": 27,
+				"code": 58926,
+				"name": "clock"
+			},
+			"setIdx": 1,
+			"iconIdx": 20
+		},
+		{
+			"icon": {
+				"paths": [
+					"M337.541 1021.004h513.024l64.512-645.916h-639.128l61.592 645.916zM737.394 154.169v-116.508c0-19.191-15.398-34.702-34.361-34.702h-217.847c-19.001 0-34.361 15.55-34.361 34.702v114.574c-73.576 8.382-150.149 24.614-226.494 52.338v106.989h738.001v-109.833c0 0-90.074-31.403-224.977-47.559zM668.937 147.759c-47.749-3.224-99.252-4.096-153.297-0.986v-61.44c0-9.519 7.623-17.332 17.143-17.332h118.936c9.519 0 17.218 7.813 17.218 17.332v62.426z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"delete"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 49,
+				"id": 5,
+				"prevSize": 27,
+				"code": 58928,
+				"name": "delete"
+			},
+			"setIdx": 1,
+			"iconIdx": 21
+		},
+		{
+			"icon": {
+				"paths": [
+					"M928.503 26.889l-111.502 112.109 156.065 156.9 111.502-112.071-156.065-156.937zM215.002 744.41l156.065 156.9 535.211-538.093-156.065-156.9-535.211 538.093zM103.917 1007.161l188.985-49.873-139.302-140.098-49.683 190.009z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"edit"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 48,
+				"id": 4,
+				"prevSize": 27,
+				"code": 58929,
+				"name": "edit"
+			},
+			"setIdx": 1,
+			"iconIdx": 22
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1014.67 822.651c0 0 0 0 0 0l-310.651-310.651 310.651-310.651c0 0 0 0 0 0 3.337-3.337 5.765-7.244 7.32-11.416 4.248-11.378 1.82-24.69-7.32-33.83l-146.735-146.735c-9.14-9.14-22.452-11.567-33.83-7.32-4.172 1.555-8.078 3.982-11.416 7.32 0 0 0 0 0 0l-310.651 310.651-310.651-310.651c0 0 0 0 0 0-3.337-3.337-7.244-5.765-11.416-7.32-11.378-4.248-24.69-1.82-33.83 7.32l-146.735 146.735c-9.14 9.14-11.567 22.452-7.32 33.83 1.555 4.172 3.982 8.078 7.32 11.416 0 0 0 0 0 0l310.651 310.651-310.651 310.651c0 0 0 0 0 0-3.337 3.337-5.765 7.244-7.32 11.416-4.248 11.378-1.82 24.69 7.32 33.83l146.735 146.735c9.14 9.14 22.452 11.567 33.83 7.32 4.172-1.555 8.078-3.982 11.416-7.32 0 0 0 0 0 0l310.651-310.651 310.651 310.651c0 0 0 0 0 0 3.337 3.337 7.244 5.765 11.416 7.32 11.378 4.248 24.69 1.82 33.83-7.32l146.735-146.735c9.14-9.14 11.567-22.452 7.32-33.83-1.555-4.172-3.982-8.078-7.32-11.416z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"error"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 47,
+				"id": 3,
+				"prevSize": 27,
+				"code": 58930,
+				"name": "error"
+			},
+			"setIdx": 1,
+			"iconIdx": 23
+		},
+		{
+			"icon": {
+				"paths": [
+					"M593.351 22.566c-270.336 0-489.434 219.098-489.434 489.358s219.098 489.434 489.434 489.434 489.434-219.136 489.434-489.434-219.136-489.358-489.434-489.358zM635.752 826.596c-11.985 11.719-26.396 17.636-43.16 17.636-8.154 0-15.967-1.517-23.4-4.589-7.358-3.034-13.843-7.168-19.456-12.174-5.613-5.158-10.126-11.226-13.388-18.356-3.337-7.13-4.968-14.753-4.968-22.945 0-16.308 5.992-30.303 17.977-42.060 11.947-11.681 26.396-17.598 43.198-17.598 16.308 0 30.606 5.689 42.78 16.801 12.25 11.188 18.318 24.993 18.318 41.339-0.038 16.384-5.992 30.303-17.939 41.984zM778.923 382.673c-3.982 13.767-9.747 26.396-17.18 37.774-7.471 11.454-16.498 22.49-27.079 33.071s-22.49 21.618-35.65 33.033c-11.454 9.785-20.783 18.318-27.913 25.79-7.168 7.396-12.895 14.867-17.218 22.338-4.286 7.433-7.282 15.398-9.026 24.007-1.707 8.609-2.617 49.721-2.617 62.35v22.338h-101.376v-32.616c0-13.729 0.986-56.661 3.034-67.584s5.158-21.125 9.481-30.872 10.012-19.228 17.18-28.369c7.168-9.14 16.232-18.887 27.079-29.203l38.647-36.902c10.847-9.747 20.177-20.632 27.951-32.616 7.737-12.060 11.529-26.7 11.529-43.88 0-22.3-6.978-41.036-21.011-56.206-14.071-15.17-33.944-22.793-59.695-22.793-13.16 0-25.069 2.389-35.65 7.282-10.619 4.817-19.797 11.454-27.496 19.759-7.737 8.344-13.577 17.901-17.598 28.786-3.982 10.847-6.334 21.997-6.865 33.527l-105.624-9.444c3.413-27.496 10.733-51.959 21.921-73.463 11.112-21.466 25.562-39.595 43.311-54.575 17.711-14.829 38.078-26.169 61.023-33.944 22.869-7.699 47.521-11.605 73.842-11.605 24.614 0 47.976 3.603 70.049 10.771 21.959 7.168 41.491 17.711 58.406 31.782 16.839 14.033 30.227 31.365 39.936 51.959 9.709 20.632 14.564 44.411 14.564 71.263 0 18.356-2.010 34.475-5.992 48.166z"
+				],
+				"width": 1176,
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"help"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 46,
+				"id": 1,
+				"prevSize": 27,
+				"code": 58931,
+				"name": "help"
+			},
+			"setIdx": 1,
+			"iconIdx": 24
+		},
+		{
+			"icon": {
+				"paths": [
+					"M574.805 92.16c-227.631 0-412.71 182.386-418.247 409.335h-125.838l188.378 209.958 188.302-209.958h-146.242c5.537-168.998 143.777-304.393 313.647-304.393 173.359 0 313.875 140.971 313.875 314.899s-140.478 314.861-313.875 314.861c-69.518 0-133.727-22.718-185.761-61.099l-71.983 76.99c71.073 55.751 160.503 89.050 257.745 89.050 231.121 0 418.513-187.961 418.513-419.84-0.038-231.879-187.43-419.84-418.513-419.84zM537.6 286.72v240.109l153.865 153.865 50.669-50.669-132.855-132.855v-210.413h-71.68z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"history"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 45,
+				"id": 0,
+				"prevSize": 27,
+				"code": 58932,
+				"name": "history"
+			},
+			"setIdx": 1,
+			"iconIdx": 25
+		},
+		{
+			"icon": {
+				"paths": [
+					"M510.413 0c-281.907 0-510.413 228.582-510.413 510.413 0 281.933 228.506 510.464 510.413 510.464s510.387-228.557 510.387-510.464c0-281.83-228.48-510.413-510.387-510.413zM865.843 510.413c0 69.99-20.506 135.27-55.578 190.285l-490.163-490.163c55.091-35.021 120.32-55.475 190.31-55.475 195.942 0 355.43 159.411 355.43 355.354zM154.957 510.413c0-69.939 20.506-135.245 55.578-190.31l490.189 490.189c-55.066 35.072-120.371 55.501-190.31 55.501-195.942 0.026-355.456-159.437-355.456-355.379z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-not-installed"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 58,
+				"id": 16,
+				"prevSize": 27,
+				"code": 58936,
+				"name": "icon-not-installed"
+			},
+			"setIdx": 1,
+			"iconIdx": 26
+		},
+		{
+			"icon": {
+				"paths": [
+					"M511.77 0c-282.778 0-512.102 229.222-512.102 512.179 0 282.829 229.325 512.102 512.102 512.102 282.931 0.026 512.23-229.248 512.23-512.102 0-282.957-229.299-512.179-512.23-512.179zM143.718 419.968h736.205v184.269h-736.205v-184.269z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-disabled"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 57,
+				"id": 15,
+				"prevSize": 27,
+				"code": 58937,
+				"name": "icon-disabled"
+			},
+			"setIdx": 1,
+			"iconIdx": 27
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1021.85 510.925c0 282.176-228.749 510.925-510.925 510.925s-510.925-228.749-510.925-510.925c0-282.176 228.749-510.925 510.925-510.925s510.925 228.749 510.925 510.925z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-enable"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 56,
+				"id": 14,
+				"prevSize": 27,
+				"code": 58935,
+				"name": "icon-enable"
+			},
+			"setIdx": 1,
+			"iconIdx": 28
+		},
+		{
+			"icon": {
+				"paths": [
+					"M383.462 577.51h255.693v-213.043h127.795l-255.642-255.667-255.642 255.667h127.795z",
+					"M852.173 577.51v170.394h-681.754v-170.394h-170.419v340.89h1022.618v-340.89z"
+				],
+				"attrs": [
+					{},
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-export"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{},
+				{}
+			],
+			"properties": {
+				"order": 55,
+				"id": 13,
+				"prevSize": 27,
+				"code": 58933,
+				"name": "icon-export"
+			},
+			"setIdx": 1,
+			"iconIdx": 29
+		},
+		{
+			"icon": {
+				"paths": [
+					"M639.155 108.8h-255.693v213.043h-127.795l255.667 255.667 255.616-255.667h-127.795z",
+					"M852.173 577.51v170.394h-681.754v-170.394h-170.419v340.89h1022.618v-340.89z"
+				],
+				"attrs": [
+					{},
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-import"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{},
+				{}
+			],
+			"properties": {
+				"order": 54,
+				"id": 12,
+				"prevSize": 27,
+				"code": 58934,
+				"name": "icon-import"
+			},
+			"setIdx": 1,
+			"iconIdx": 30
+		},
+		{
+			"icon": {
+				"paths": [
+					"M259.2 0h214.323v214.323h-214.323v-214.323z",
+					"M259.2 269.875h214.323v214.349h-214.323v-214.349z",
+					"M259.2 539.776h214.323v214.349h-214.323v-214.349z",
+					"M259.2 809.651h214.323v214.349h-214.323v-214.349z",
+					"M549.325 0h214.323v214.323h-214.323v-214.323z",
+					"M549.325 269.875h214.323v214.349h-214.323v-214.349z",
+					"M549.325 539.776h214.323v214.349h-214.323v-214.349z",
+					"M549.325 809.651h214.323v214.349h-214.323v-214.349z"
+				],
+				"attrs": [
+					{},
+					{},
+					{},
+					{},
+					{},
+					{},
+					{},
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-gripper"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{},
+				{},
+				{},
+				{},
+				{},
+				{},
+				{},
+				{}
+			],
+			"properties": {
+				"order": 26,
+				"id": 11,
+				"prevSize": 27,
+				"code": 58903,
+				"name": "icon-gripper"
+			},
+			"setIdx": 1,
+			"iconIdx": 31
+		},
+		{
+			"icon": {
+				"paths": [
+					"M860.058 185.062v272l-430.029-269.158-1.894 253.491-424.371-249.754-3.763 647.834 426.24-241.28-5.606 239.437 439.424-252.16v259.635h163.942v-660.045z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-forward"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 25,
+				"id": 10,
+				"prevSize": 27,
+				"code": 58904,
+				"name": "icon-forward"
+			},
+			"setIdx": 1,
+			"iconIdx": 32
+		},
+		{
+			"icon": {
+				"paths": [
+					"M163.942 845.107v-271.974l430.029 269.133 1.894-253.491 424.397 249.754 3.738-647.834-426.24 241.28 5.606-239.437-439.424 252.16v-259.635h-163.942v660.045z"
+				],
+				"attrs": [
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-backward"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{}
+			],
+			"properties": {
+				"order": 24,
+				"id": 9,
+				"prevSize": 27,
+				"code": 58905,
+				"name": "icon-backward"
+			},
+			"setIdx": 1,
+			"iconIdx": 33
+		},
+		{
+			"icon": {
+				"paths": [
+					"M512.794 0c-283.187 0-512.794 229.581-512.794 512.794 0 283.187 229.606 512.794 512.794 512.794s512.794-229.632 512.794-512.794c0-283.213-229.581-512.794-512.794-512.794zM512.794 971.213c-253.158 0-458.394-205.261-458.394-458.368 0-253.158 205.261-458.394 458.394-458.394 253.184 0 458.394 205.235 458.394 458.394 0.026 253.107-205.21 458.368-458.394 458.368z",
+					"M760.013 625.613l30.387-38.4-265.6-206.413-20.787-1.613-259.226 208.026 28.826 39.987 236.8-177.613z"
+				],
+				"attrs": [
+					{},
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-expand-close"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{},
+				{}
+			],
+			"properties": {
+				"order": 23,
+				"id": 8,
+				"prevSize": 27,
+				"code": 58901,
+				"name": "icon-expand-close"
+			},
+			"setIdx": 1,
+			"iconIdx": 34
+		},
+		{
+			"icon": {
+				"paths": [
+					"M512.794 0c-283.187 0-512.794 229.581-512.794 512.794 0 283.187 229.606 512.794 512.794 512.794s512.794-229.606 512.794-512.794c0-283.213-229.581-512.794-512.794-512.794zM512.794 971.213c-253.158 0-458.394-205.261-458.394-458.394 0-253.158 205.261-458.394 458.394-458.394 253.184 0 458.394 205.235 458.394 458.394 0.026 253.133-205.21 458.394-458.394 458.394z",
+					"M265.6 454.4l-30.387 38.4 265.574 206.387 20.813 1.613 259.2-208-28.8-39.987-236.8 177.587z"
+				],
+				"attrs": [
+					{},
+					{}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-expand-open"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{},
+				{}
+			],
+			"properties": {
+				"order": 21,
+				"id": 7,
+				"prevSize": 27,
+				"code": 58902,
+				"name": "icon-expand-open"
+			},
+			"setIdx": 1,
+			"iconIdx": 35
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1020.032 565.555v-116.045l-16.41-5.376-124.237-40.525-33.152-80.102 63.718-134.784-82.048-82.125-15.411 7.808-116.531 59.213-80.077-33.178-50.278-140.442h-116.096l-45.875 140.698-80 33.126-134.963-63.744-82.022 82.074 7.834 15.334 59.162 116.608-33.126 80.026-140.518 50.253v116.147l16.435 5.325 124.288 40.576 33.075 80-63.693 134.886 82.048 82.099 131.942-66.97 80.026 33.152 50.304 140.39h116.096l5.35-16.41 40.55-124.237 80.077-33.178 134.886 63.718 82.074-82.074-7.834-15.386-59.213-116.582 33.203-80.026 140.416-50.253zM510.003 672.589c-89.754 0-162.509-72.832-162.509-162.611 0-89.754 72.755-162.483 162.509-162.483 89.83 0 162.509 72.73 162.509 162.483 0.026 89.805-72.653 162.611-162.509 162.611z"
+				],
+				"attrs": [
+					{
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-system-config"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 22,
+				"id": 5,
+				"prevSize": 27,
+				"code": 58896,
+				"name": "icon-system-config"
+			},
+			"setIdx": 1,
+			"iconIdx": 36
+		},
+		{
+			"icon": {
+				"paths": [
+					"M509.978 54.426l-509.978 509.926 95.949 95.949 414.106-413.978 413.875 413.978 95.949-95.898-509.901-509.978zM146.253 688.563v335.437h259.917v-304.819h207.514v304.819h259.917v-335.488l-363.622-363.597-363.725 363.648z"
+				],
+				"attrs": [
+					{
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-home"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 20,
+				"id": 3,
+				"prevSize": 27,
+				"code": 58897,
+				"name": "icon-home"
+			},
+			"setIdx": 1,
+			"iconIdx": 37
+		},
+		{
+			"icon": {
+				"paths": [
+					"M0 736.41l498.278 287.59v-421.402l-498.278-287.667v421.478zM894.464 224.486v44.262c0 32.819-62.797 59.418-140.365 59.418-77.466 0-140.262-26.598-140.262-59.418v-73.216h0.435c4.71 30.925 65.408 55.475 139.853 55.475 77.568 0 140.365-26.624 140.365-59.29 0-32.845-62.797-59.366-140.365-59.366-6.195 0-12.262 0.205-18.202 0.563l-90.317-52.147v55.706c0 32.819-62.72 59.392-140.262 59.392-48.691 0-91.597-10.496-116.813-26.47-3.584-3.712-7.987-7.245-13.312-10.598-6.579-6.861-10.24-14.387-10.24-22.323v-53.939l-87.322 50.381c-6.272-0.307-12.646-0.614-19.123-0.614-77.491 0-140.314 26.522-140.314 59.366 0 32.691 62.822 59.29 140.314 59.29 74.445 0 135.219-24.525 139.93-55.475h0.384v73.216c0 32.819-62.746 59.418-140.314 59.418-77.491 0-140.314-26.598-140.314-59.418v-43.622l-108.083 62.31 499.994 288.563 496.691-286.694-112.358-64.768zM646.784 408.013c0 32.794-62.874 59.315-140.365 59.315s-140.339-26.522-140.339-59.315v-73.267h0.41c4.762 30.95 65.459 55.475 139.93 55.475s135.142-24.525 139.904-55.475h0.486v73.267zM525.645 606.234v417.766l498.355-287.718v-417.766l-498.355 287.718zM505.318 118.656c77.542 0 140.262-26.547 140.262-59.315s-62.72-59.315-140.262-59.315c-77.491 0-140.339 26.573-140.339 59.315-0.026 32.768 62.822 59.315 140.339 59.315z"
+				],
+				"attrs": [
+					{
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-lego"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 19,
+				"id": 2,
+				"prevSize": 27,
+				"code": 58898,
+				"name": "icon-lego"
+			},
+			"setIdx": 1,
+			"iconIdx": 38
+		},
+		{
+			"icon": {
+				"paths": [
+					"M287.002 481.664c0.205 0.23 0.461 0.486 0.691 0.717l103.347 103.373 36.045-36.045-56.55-56.499 90.266-90.189 11.904 1.28c3.046 0.307 6.093 0.538 9.19 0.538 6.246 0 12.314-0.768 18.253-2.125l-66.381-66.381c-1.357-1.382-2.765-2.611-4.173-3.814 20.454-73.6 1.766-155.725-56.038-213.555-57.421-57.421-138.803-76.237-211.968-56.525l123.955 123.981-32.563 121.446-121.395 32.589-124.032-124.006c-19.712 73.19-0.896 154.573 56.525 212.019 60.262 60.288 147.021 77.952 222.925 53.197zM653.235 555.802c-1.997 8.909-2.509 18.202-1.459 27.546l1.306 11.93-90.189 90.189-56.55-56.55-36.070 36.122 327.219 327.194c20.198 20.173 46.618 30.259 73.062 30.259s52.915-10.086 73.037-30.259c40.346-40.32 40.346-105.728 0-146.074l-290.355-290.355zM905.907 958.362l-51.866 13.875-42.112-42.112 13.901-51.891 51.866-13.926 42.112 42.138-13.901 51.917zM506.701 594.099l56.576 56.576 64.128-64.154c-3.482-31.334 6.707-63.821 30.669-87.808 24.013-23.962 56.474-34.176 87.808-30.72l280.397-280.346-157.056-157.056-280.448 280.397c3.482 31.258-6.682 63.821-30.669 87.782-24.013 23.987-56.525 34.176-87.808 30.643l-64.102 64.205 56.499 56.422-277.043 277.12-10.138-10.138-53.248 42.829-89.421 141.312 22.835 22.835 141.312-89.421 42.803-53.222-10.138-10.138 277.043-277.12z"
+				],
+				"attrs": [
+					{
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-tool"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 18,
+				"id": 1,
+				"prevSize": 27,
+				"code": 58899,
+				"name": "icon-tool"
+			},
+			"setIdx": 1,
+			"iconIdx": 39
+		},
+		{
+			"icon": {
+				"paths": [
+					"M517.99 0c-279.398 0-505.882 226.534-505.882 505.958s226.483 505.958 505.882 505.958c279.501 0 506.010-226.534 506.010-505.958s-226.509-505.958-506.010-505.958z",
+					"M614.835 811.853v-274.56h181.53l-278.272-337.203-278.349 337.203h181.555v274.56z"
+				],
+				"attrs": [
+					{
+						"fill": "rgb(68, 68, 68)",
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"fill": "rgb(255, 255, 255)",
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"icon-upgrade"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"fill": "rgb(68, 68, 68)",
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"fill": "rgb(255, 255, 255)",
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 17,
+				"id": 0,
+				"prevSize": 27,
+				"code": 58900,
+				"name": "icon-upgrade"
+			},
+			"setIdx": 1,
+			"iconIdx": 40
+		},
+		{
+			"icon": {
+				"paths": [
+					"M870.821 731.837c-64.195-65.89-78.231-188.772-91.738-283.159-20.074-139.937-24.259-297.089-226.008-317.693v-25.318c0-25.424-39.195-46.028-64.937-46.028s-62.024 20.551-62.024 46.028v25.371c-200.054 20.816-206.993 177.914-226.855 317.693-13.453 94.439-27.331 217.268-91.049 283.264-12.818 13.348-16.473 32.998-9.11 49.947 7.362 16.843 24.153 27.913 42.797 27.913h695.343c18.75 0 35.593-11.070 42.903-28.019s3.655-36.653-9.322-50z",
+					"M489.569 963.883c51.060 0 92.373-40.837 92.373-91.367h-184.694c-0.053 50.53 41.314 91.367 92.32 91.367z"
+				],
+				"width": 989,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"notification-02"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 6,
+				"id": 18,
+				"prevSize": 27,
+				"code": 58887,
+				"name": "notification-02"
+			},
+			"setIdx": 1,
+			"iconIdx": 41
+		},
+		{
+			"icon": {
+				"paths": [
+					"M252.137 153.228l-160.070 92.393 378.042 218.205 160.023-92.393-377.996-218.205zM845.638 247.063l-377.996-218.252-145.222 83.828 377.996 218.205 145.222-83.782zM502.784 526.15v433.664l376.832-217.507v-433.711l-376.832 217.553zM55.668 742.26l376.785 217.507v-436.503l-376.785-217.46v436.457z"
+				],
+				"width": 954,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"product"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 7,
+				"id": 17,
+				"prevSize": 27,
+				"code": 58888,
+				"name": "product",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 42
+		},
+		{
+			"icon": {
+				"paths": [
+					"M454.495 48.899l-402.697 240.513v457.026l104.632 60.727v-457.049l298.157-178.728 299.698 179.142-0.138 455.922 103.528-60.013v-457.026l-403.18-240.513zM507.766 330.28v534.344l-53.271 32.124-53.34-32.262v-533.792l-138.090 83.853v456.934l191.453 115.516 193.087-116.322v-456.451l-139.839-83.945z"
+				],
+				"width": 903,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"logo"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 17,
+				"id": 16,
+				"prevSize": 27,
+				"code": 58886,
+				"name": "logo",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 43
+		},
+		{
+			"icon": {
+				"paths": [
+					"M709.921 158.694c8.139 32.295 8.927 34.974 8.192 68.162-0.263 12.813-7.772 71.943-5.724 90.112 1.628 14.966 5.461 16.174 11.448 28.514 10.398 21.425 6.984 51.095 2.941 72.678-2.206 11.868-6.827 28.725-13.916 38.387-7.667 10.66-23.211 10.713-30.142 23.158-9.872 17.854-4.306 43.008-10.503 62.385-7.142 21.898-25.101 23.421-26.466 52.145 8.822 1.155 17.592 2.468 26.466 3.623 8.822 18.59 25.049 55.874 41.59 67.059 13.863 3.728 27.727 7.457 41.59 11.185 48.627 19.64 102.558 43.061 151.237 63.33 44.373 18.432 97.411 24.996 113.48 70.84 0 31.035 2.941 104.501 2.153 145.25h-965.553c-0.893-40.697 2.153-114.215 2.153-145.25 15.964-45.844 69.002-52.408 113.375-70.84 48.679-20.27 102.61-43.691 151.237-63.33 13.811-3.728 27.674-7.457 41.59-11.185 16.489-11.185 32.715-48.522 41.538-67.059l19.692-4.621c-4.464-24.576-19.85-26.466-26.256-43.743-2.521-26.099-5.041-52.145-7.509-78.192 0.053 1.155-18.117-3.361-20.48-4.779-25.731-15.806-26.204-80.24-28.725-107.021-1.103-12.183 16.174-22.265 11.343-44.636-28.094-131.44 12.183-192.88 75.881-213.307 44.216-17.749 126.871-50.465 203.855-3.728l19.167 17.487 30.93 5.251c15.491 8.77 25.416 38.124 25.416 38.124z"
+				],
+				"width": 1090,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"account"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 9,
+				"id": 15,
+				"prevSize": 27,
+				"code": 58880,
+				"name": "account",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 44
+		},
+		{
+			"icon": {
+				"paths": [
+					"M529.203 886.14l-468.465-628.209h936.931l-468.465 628.209z"
+				],
+				"width": 1085,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"arrowdown"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 10,
+				"id": 14,
+				"prevSize": 27,
+				"code": 58881,
+				"name": "arrowdown",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 45
+		},
+		{
+			"icon": {
+				"paths": [
+					"M976.793 982.006h-910.388v-910.388h910.388v910.388zM912.622 135.789h-782.046v782.088h782.046v-782.088z",
+					"M221.432 822.8h152.876v-372.033h-152.876v372.033z",
+					"M466.323 820.234h350.932v-366.53h-350.932v366.53z",
+					"M221.432 360.489h595.865v-147.125h-595.865v147.125z"
+				],
+				"width": 1034,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"cms"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 11,
+				"id": 13,
+				"prevSize": 27,
+				"code": 58882,
+				"name": "cms",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 46
+		},
+		{
+			"icon": {
+				"paths": [
+					"M264.319 308.831c75.685 0 136.98-61.259 136.98-136.944 0-75.649-61.295-136.98-136.98-136.98s-137.017 61.331-137.017 136.98c0 75.649 61.331 136.944 137.017 136.944zM448.929 370.851c-28.962-28.926-63.325-46.252-187.655-46.252s-157.859 18.776-185.335 46.252c-27.44 27.44-18.196 320.43-18.196 320.43l60.824-144.411 38.241 430.334 110.23-220.278 102.907 220.278 36.393-430.334 60.824 144.411c-0.036 0 10.693-291.468-18.233-320.43z"
+				],
+				"width": 489,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"customers"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 12,
+				"id": 12,
+				"prevSize": 27,
+				"code": 58883,
+				"name": "customers",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 47
+		},
+		{
+			"icon": {
+				"paths": [
+					"M680.975 73.728c-337.523 0-610.976 273.515-611.038 610.976 0.122 37.72 1.039 251.812 1.039 251.812h1219.997c0 0 0.978-239.219 1.039-251.812-0.183-337.523-273.637-610.976-611.038-610.976zM737.708 197.831c31.117 3.607 61.379 10.271 90.418 19.624l-19.93 61.685c-25.004-8.070-51.169-13.939-78.191-16.995l7.703-64.313zM270.091 673.15h-64.864c0-31.423 3.118-62.235 8.803-92.007l63.702 12.349c-5.135 25.799-7.642 52.392-7.642 79.658zM305.855 504.419l-59.178-26.288c12.655-28.489 28-55.449 45.79-80.636l52.942 37.475c-15.284 21.825-28.611 45.056-39.554 69.449zM407.46 365.155l-43.405-48.113c22.925-20.541 47.807-39.187 74.462-54.96l33.318 55.571c-22.987 13.755-44.567 29.65-64.374 47.501zM536.943 217.455c29.039-9.292 59.178-16.017 90.418-19.624l7.581 64.313c-26.838 3.057-53.003 8.926-78.13 16.995l-19.869-61.685zM761.673 801.532l-152.897 27.205-38.881-150.452 395.172-404.22-203.394 527.467zM1019.476 434.971l52.942-37.414c17.79 25.187 33.257 52.148 45.851 80.636l-59.178 26.288c-10.943-24.454-24.209-47.685-39.615-69.51zM1094.916 673.15c0-27.266-2.69-53.859-7.703-79.658l63.702-12.349c5.808 29.834 8.803 60.645 8.803 92.007h-64.802zM646.006 770.659c26.777 17.056 62.174 9.415 79.291-17.24 17.118-26.593 9.292-62.051-17.301-79.108-26.655-17.24-62.051-9.354-79.23 17.362-17.118 26.349-9.476 61.99 17.24 78.986z"
+				],
+				"width": 1376,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"dashboard"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 13,
+				"id": 11,
+				"prevSize": 27,
+				"code": 58884,
+				"name": "dashboard",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 48
+		},
+		{
+			"icon": {
+				"paths": [
+					"M24.097 113.465h972.827v111.922l-410.504 412.792v238.366l-171.447 87.505v-325.871l-390.875-415.877v-108.837z"
+				],
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"filter"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 14,
+				"id": 10,
+				"prevSize": 27,
+				"code": 58885,
+				"name": "filter",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 49
+		},
+		{
+			"icon": {
+				"paths": [
+					"M59.153 534.182l164.053 38.141v-303.902l-164.053 38.141v227.621zM1122.198 59.153l-837.712 194.959v335.978l140.328 376.832 151.712-57.45-104.049-279.113 649.668 151.18v-722.385z"
+				],
+				"width": 1170,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"promotions"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 15,
+				"id": 6,
+				"prevSize": 27,
+				"code": 58889,
+				"name": "promotions",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 50
+		},
+		{
+			"icon": {
+				"paths": [
+					"M736.707 981.234h207.134v-322.703h-207.134v322.703zM399.646 981.234h207.134v-946.793h-207.134v946.793zM62.673 981.19h207.134v-634.704h-207.134v634.704z"
+				],
+				"width": 991,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"reports"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 16,
+				"id": 5,
+				"prevSize": 27,
+				"code": 58890,
+				"name": "reports",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 51
+		},
+		{
+			"icon": {
+				"paths": [
+					"M426.502 612.517c-15.866-13.512-42.796-25.753-80.79-36.723v198.774c11.535-1.459 23.729-4.331 36.299-8.851 12.618-4.426 23.87-10.829 33.804-19.068 9.981-8.427 18.173-18.55 24.529-30.649 6.638-12.006 9.651-26.365 9.651-42.89 0.047-26.836-7.721-47.222-23.493-60.593zM576.736 736.856c-7.109 23.117-19.774 45.762-38.135 67.749-18.503 22.175-43.079 41.855-74.010 58.992-30.885 17.373-70.432 27.683-118.878 31.12v88.088h-57.014v-88.088c-72.080-5.603-128.483-29.237-169.113-71.374-40.536-42.090-63.935-104.095-70.432-185.544h136.251c-0.753 39.359 8.992 70.479 28.86 93.266 20.15 22.74 44.774 37.335 74.434 43.455v-216.523c-3.060-1.318-7.486-2.919-12.994-4.567-5.508-1.789-11.393-3.343-17.938-4.708-23.776-6.827-47.175-15.019-70.291-24.294-23.493-9.369-44.114-21.704-62.523-37.335-18.456-15.584-33.098-34.84-43.879-57.956-11.111-23.211-16.478-51.977-16.478-86.487 0-35.31 6.168-66.336 18.785-93.313 12.665-26.836 29.143-49.529 49.858-67.702 20.621-18.314 44.303-32.58 71.468-42.419 27.071-10.122 55.037-16.149 83.992-18.314v-79.66h57.014v79.66c29.143 3.531 56.308 10.169 81.638 20.292 25.423 10.028 47.787 23.729 67.137 41.478 19.585 17.514 35.357 39.453 47.457 65.771 12.288 26.13 19.35 57.109 21.28 93.172h-137.287c-0.518-27.636-8.616-51.082-23.917-70.432-15.725-19.303-34.275-29.002-56.308-29.002v183.331c7.862 2.072 15.631 4.143 23.729 6.12 8.098 2.072 16.525 4.567 25.565 7.297 47.645 13.983 84.415 31.12 110.168 51.318 25.8 20.292 44.726 41.666 56.92 63.653 12.335 22.175 19.633 44.256 21.704 66.336 2.448 22.081 3.531 41.713 3.531 59.039 0.047 15.207-3.531 34.416-10.593 57.579zM228.905 263.415c-8.38 7.156-15.113 16.196-19.962 26.883-4.802 10.781-7.062 23.352-7.062 37.759 0 22.834 6.733 40.536 20.103 52.824 13.653 12.618 35.734 22.552 66.713 30.131v-168.831c-10.829 0-21.516 1.695-31.826 5.226-10.216 3.437-19.633 8.851-27.966 16.007z"
+				],
+				"width": 659,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"sales"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 5,
+				"id": 4,
+				"prevSize": 27,
+				"code": 58891,
+				"name": "sales",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 52
+		},
+		{
+			"icon": {
+				"paths": [
+					"M555.139 21.642c-218.775-71.601-457.062 40.29-532.231 250.028-75.227 209.681 41.211 437.665 259.928 509.208 218.717 71.601 457.004-40.348 532.231-250.028s-41.211-437.665-259.928-509.208zM320.076 677.045c-158.915-52.089-243.467-217.681-188.903-369.978 54.679-152.296 227.754-233.625 386.669-181.593s243.409 217.624 188.788 369.92c-54.622 152.296-227.696 233.567-386.554 181.65z",
+					"M638.482 685.794l358.927 349.602 24.807-69.241 24.865-69.241-310.348-302.29z"
+				],
+				"width": 1109,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					},
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"search"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				},
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 4,
+				"id": 3,
+				"prevSize": 27,
+				"code": 58892,
+				"name": "search",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 53
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1098.281 85.45c19.777-3.723 34.901-21.232 34.901-42.347-0.058-23.791-19.196-43.103-42.812-43.103h-900.508c-23.675 0-42.754 19.312-42.754 43.103 0 21.057 15.007 38.566 34.843 42.347l-181.951 354.421v68.988c0 30.946 32.516 56.016 72.594 56.016 13.437 0 26.001-2.908 36.821-7.795v466.919h1061.286v-466.919c10.878 4.944 23.326 7.795 36.879 7.795 40.078 0 72.594-25.071 72.594-56.016v-68.988l-181.893-354.421zM214.758 564.875c-38.217 0-69.221-25.071-69.221-56.016v-6.457h-0.349v-62.531l137.162-353.665h109.648l-107.961 353.665v68.988c0 0 0 0 0 0 0 30.946-31.004 56.016-69.279 56.016zM498.447 564.875c-38.217 0-69.221-25.071-69.221-56.016v-68.988l57.354-353.665h109.241l-28.095 353.665v68.93c-0.058 31.004-31.004 56.075-69.279 56.075zM782.077 564.875c-38.217 0-69.162-25.071-69.162-56.016v-68.988l-28.154-353.665h108.892l57.296 353.665v68.988c0 0.931 0.175 1.92 0.233 2.792-1.803 29.666-32.051 53.224-69.104 53.224zM1134.637 508.859c0 30.946-31.004 56.016-69.221 56.016s-69.162-25.071-69.162-56.016v-68.988l-108.019-353.665h109.59l137.22 353.665v62.473h-0.349v6.515h-0.058z"
+				],
+				"width": 1280,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"stores"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 3,
+				"id": 2,
+				"prevSize": 27,
+				"code": 58893,
+				"name": "stores",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 54
+		},
+		{
+			"icon": {
+				"paths": [
+					"M1024 567.842v-116.547l-141.218-46.117-33.219-80.36 63.981-135.383-82.407-82.407-15.458 7.831-117.008 59.477-80.309-33.321-50.57-141.014h-116.496l-5.374 16.533-40.743 124.686-80.258 33.321-135.537-63.981-82.356 82.407 7.882 15.407 59.323 117.059-33.219 80.258-141.014 50.519v116.547l141.218 46.066 33.219 80.36-63.878 135.383 82.254 82.407 15.458-7.831 117.008-59.425 80.36 33.27 50.468 140.963h116.496l5.426-16.43 40.692-124.737 80.309-33.27 135.383 63.981 82.458-82.407-7.882-15.458-59.374-116.957 33.27-80.36 141.116-50.468zM512 675.228c-90.136 0-163.177-73.040-163.177-163.177s73.040-163.177 163.177-163.177c90.187 0 163.177 73.040 163.177 163.177s-72.989 163.177-163.177 163.177z"
+				],
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"systems"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 2,
+				"id": 1,
+				"prevSize": 27,
+				"code": 58894,
+				"name": "systems",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 55
+		},
+		{
+			"icon": {
+				"paths": [
+					"M944.97 329.042c-97.861 0-177.522 79.581-177.522 177.443 0 97.94 79.66 177.679 177.522 177.679 98.019 0 177.679-79.739 177.679-177.679 0-97.861-79.66-177.443-177.679-177.443zM944.97-0c-470.712 0-944.97 512-944.97 512s474.258 512 944.97 512c470.949 0 945.128-512 945.128-512s-474.179-512-945.128-512zM944.97 868.856c-200.057 0-362.292-162.078-362.292-362.45 0-200.057 162.236-362.292 362.292-362.292 200.214 0 362.45 162.236 362.45 362.292 0 200.451-162.236 362.45-362.45 362.45z"
+				],
+				"width": 1890,
+				"attrs": [
+					{
+						"opacity": 1,
+						"visibility": false
+					}
+				],
+				"isMulticolor": false,
+				"tags": [
+					"views"
+				],
+				"grid": 0
+			},
+			"attrs": [
+				{
+					"opacity": 1,
+					"visibility": false
+				}
+			],
+			"properties": {
+				"order": 1,
+				"id": 0,
+				"prevSize": 27,
+				"code": 58895,
+				"name": "views",
+				"ligatures": ""
+			},
+			"setIdx": 1,
+			"iconIdx": 56
+		}
+	],
+	"height": 1024,
+	"metadata": {
+		"name": "UX-Icons"
+	},
+	"preferences": {
+		"fontPref": {
+			"prefix": "icon-",
+			"metadata": {
+				"fontFamily": "UX-Icons",
+				"majorVersion": 1,
+				"minorVersion": 0
+			},
+			"showGlyphs": true,
+			"metrics": {
+				"emSize": 1024,
+				"baseline": 6.25,
+				"whitespace": 50
+			},
+			"resetPoint": 58880,
+			"showQuickUse": true,
+			"quickUsageToken": false,
+			"showMetrics": true,
+			"showMetadata": false,
+			"showSelector": true
+		},
+		"imagePref": {
+			"color": 0,
+			"height": 32,
+			"columns": 16,
+			"margin": 16,
+			"png": false,
+			"sprites": true
+		},
+		"historySize": 100,
+		"showCodes": true,
+		"gridSize": 16,
+		"showLiga": false,
+		"showGrid": true,
+		"showGlyphs": true,
+		"showQuickUse": true,
+		"showQuickUse2": true,
+		"showSVGs": true,
+		"search": ""
+	}
+}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.eot b/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.eot
deleted file mode 100644
index d6211f438c18f823f468026f13495ac70bfee627..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.eot and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.svg b/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.svg
deleted file mode 100644
index 8483be975550a34d4b41cfc9cd160ae42f74ee03..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg"><defs><font horiz-adv-x="512"><font-face units-per-em="512" ascent="480" descent="-32"/><glyph unicode="" d="M253.21 59.768l157.987 87.767 81.388-45.217L253.21-30.666 13.833 102.318l81.388 45.217zm239.375 164.9l-81.388-45.213-157.988-87.77-157.99 87.77-81.39 45.212 81.39 45.213 81.39-45.213 76.6-42.558 76.6 42.552 81.384 45.213zm0 122.342l-81.388-45.207-81.387-45.22-76.6-42.558-76.6 42.558-81.388 45.22-81.388 45.207L253.21 480z"/><glyph unicode="" d="M394.648 479.998h-291.64c-39.625 0-71.728-32.09-71.728-71.73V39.88c0-39.614 32.103-71.73 71.73-71.73h291.638c39.663 0 71.754 32.116 71.754 71.73v368.39c0 39.636-32.09 71.728-71.754 71.728zM167.1 42.328c0-9.823-7.972-17.797-17.804-17.797H98.823c-9.834 0-17.808 7.98-17.808 17.8v17.84c0 9.8 7.973 17.775 17.808 17.775h50.474c9.832 0 17.805-7.974 17.805-17.77v-17.85zm0 93.17c0-9.82-7.972-17.818-17.804-17.818H98.823c-9.834 0-17.808 7.998-17.808 17.82v17.818c0 9.823 7.973 17.82 17.808 17.82h50.474c9.832 0 17.805-7.997 17.805-17.82v-17.82zm0 93.198c0-9.82-7.972-17.845-17.804-17.845H98.823c-9.834 0-17.808 8-17.808 17.85v17.77c0 9.85 7.973 17.82 17.808 17.82h50.474c9.832 0 17.805-7.972 17.805-17.82V228.7zm123.603-186.37c0-9.82-7.997-17.795-17.818-17.795h-50.45c-9.86 0-17.832 7.98-17.832 17.8v17.84c0 9.8 7.973 17.775 17.832 17.775h50.45c9.82 0 17.818-7.974 17.818-17.77v-17.85zm0 93.173c0-9.827-7.997-17.82-17.818-17.82h-50.45c-9.86 0-17.832 7.993-17.832 17.82v17.813c0 9.823 7.973 17.82 17.832 17.82h50.45c9.82 0 17.818-7.997 17.818-17.82v-17.82zm0 93.19c0-9.82-7.997-17.844-17.818-17.844h-50.45c-9.86 0-17.832 8-17.832 17.845v17.77c0 9.85 7.973 17.82 17.832 17.82h50.45c9.82 0 17.818-7.972 17.818-17.82v-17.77zm123.59-186.37c0-9.82-7.975-17.794-17.82-17.794h-50.436c-9.848 0-17.82 7.974-17.82 17.796V60.17c0 9.798 7.973 17.772 17.82 17.772h50.436c9.846 0 17.82-7.974 17.82-17.77V42.326zm0 93.174c0-9.822-7.975-17.82-17.82-17.82h-50.436c-9.848 0-17.82 7.998-17.82 17.82v17.818c0 9.823 7.973 17.82 17.82 17.82h50.436c9.846 0 17.82-7.997 17.82-17.82v-17.82zm0 93.196c0-9.82-7.975-17.844-17.82-17.844h-50.436c-9.848 0-17.82 8-17.82 17.845v17.77c0 9.85 7.973 17.82 17.82 17.82h50.436c9.846 0 17.82-7.97 17.82-17.82v-17.77zm.65 96.448c0-9.847-7.974-17.794-17.82-17.794h-298.3c-9.834 0-17.808 7.947-17.808 17.793v78.65c0 9.847 7.973 17.82 17.808 17.82h298.3c9.847 0 17.82-7.973 17.82-17.82v-78.65z"/><glyph unicode="" d="M392.71 220.055l-5.32 79.017c-.956 11.45-10.554 20.31-22.28 20.31H147.767c-11.723 0-21.327-8.855-22.342-20.31l-5.17-79.017H392.71zm45.77-81.07c0 20.405-16.464 37.024-36.864 37.024-20.396 0-37.037-16.62-37.037-37.03 0-20.397 16.623-36.856 37.03-36.856 20.405 0 36.866 16.458 36.866 36.856m-98.59-38.135v64.135c0 6.38-5.19 11.564-11.568 11.564H184.036c-6.19 0-11.387-5.186-11.387-11.563v-64.13h167.24zm-228.568 1.238c20.343 0 36.912 16.475 36.912 36.898 0 20.428-16.574 37.066-36.913 37.066-20.423 0-36.99-16.64-36.99-37.064s16.57-36.897 36.99-36.897m253.79 238.07c22.48 0 41.014-17.445 42.844-39.52l5.454-81.398 54.15-32.75-.14-137.53H443.23L443.374 4c0-19.47-15.738-35.002-35.148-35.002-19.275 0-34.945 15.52-34.945 35.002v44.96H139.53L139.665 4c0-19.47-15.734-35.002-35.158-35.002-19.265 0-34.94 15.52-34.94 35.002v44.96H45.454l-.133 137.53 54.15 32.75 5.45 81.398c1.71 22.074 20.237 39.52 42.85 39.52h217.35zM407.17 477.49c18.72 0 33.845-15.146 33.845-33.734v-248.5l-43.39 21.996-3.52 80.063c-2.79 27.476-27.23 26.352-42.607 38.43H161.33c-28.522-5.882-33.24-8.258-41.716-31.394l-11.804-84.38-36.097-24.714.114 248.5c0 18.588 15.13 33.733 33.73 33.733h301.62z"/><glyph unicode="" d="M193.573-17.444c9.323-9.33 24.442-9.323 33.764.016l268.75 268.752c9.34 9.322 9.34 24.45.017 33.78L388.166 393.048 85.62 90.5 193.573-17.444zM344.42 268.623l52.247 52.238 52.215-52.22-52.23-52.24-52.23 52.228zm-58.17 192.54L17.497 192.41c-9.322-9.338-9.322-24.464 0-33.787l25.246-25.245 302.547 302.54-25.245 25.253c-9.322 9.328-24.458 9.32-33.796-.002z"/><glyph unicode="" d="M431.972 63.183c-.86 20.36-31.466 80.906-30.743 104.396.82 26.64 16.93 59.45 50.48-4.697 20.1-38.434 50.952-14.517 54.7 4.184 11.31 56.575-5.48 124.432-58.97 190.924-92.517 114.983-255.12 146.56-363.107 70.524C-23.64 352.47-25.817 181.22 72.723 81.974c89.31-89.928 212.48-129.46 315.46-86.11 10.657 4.5 45.89 18.29 43.79 67.32zM142.7 396.593c19.486 13.722 46.404 9.056 60.133-10.437 13.73-19.49 9.05-46.41-10.435-60.132-19.5-13.732-46.41-9.055-60.142 10.433-13.732 19.49-9.06 46.4 10.444 60.137zM58.567 221.21c-13.724 19.49-9.043 46.41 10.443 60.128 19.476 13.723 46.405 9.067 60.126-10.424 13.733-19.495 9.042-46.418-10.432-60.14C99.218 197.05 72.29 201.7 58.567 221.21zM268.04 333.54c-13.735 19.49-9.056 46.418 10.44 60.138 19.49 13.723 46.4 9.052 60.143-10.444 13.723-19.486 9.043-46.4-10.444-60.13-19.5-13.726-46.41-9.06-60.14 10.435zM122.058 111.06c-13.718 19.505-9.058 46.434 10.428 60.156 19.49 13.722 46.42 9.05 60.142-10.435 13.716-19.49 9.057-46.42-10.438-60.14-19.482-13.732-46.406-9.052-60.133 10.424z"/><glyph unicode="" d="M470.02 422.67H40.603l-40.91-66.455h.022c.044-22.55 18.303-40.8 40.887-40.8 12.232 0 23.175 5.394 30.667 13.902 7.49-8.508 18.43-13.903 30.66-13.903s23.198 5.395 30.668 13.903c7.514-8.508 18.457-13.903 30.69-13.903 12.23 0 23.173 5.395 30.69 13.903 7.47-8.508 18.432-13.903 30.664-13.903 12.23 0 23.174 5.395 30.666 13.903 7.494-8.508 18.437-13.903 30.668-13.903 12.255 0 23.196 5.395 30.688 13.903 7.49-8.508 18.436-13.903 30.666-13.903s23.177 5.395 30.666 13.903c7.493-8.508 18.435-13.903 30.688-13.903 12.232 0 23.176 5.395 30.666 13.903 7.494-8.508 18.437-13.903 30.67-13.903 22.562 0 40.844 18.25 40.91 40.8l-40.91 66.456zm-30.67-119.454c-9.238-6.15-19.788-9.5-30.666-9.5s-21.447 3.352-30.688 9.5c-9.216-6.15-19.788-9.5-30.665-9.5-10.873 0-21.422 3.352-30.66 9.5-9.24-6.15-19.81-9.5-30.69-9.5-10.856 0-21.43 3.352-30.667 9.5-9.24-6.15-19.79-9.5-30.665-9.5-10.878 0-21.45 3.352-30.667 9.5-9.26-6.15-19.81-9.5-30.687-9.5s-21.43 3.352-30.69 9.5c-9.216-6.15-19.79-9.5-30.666-9.5-10.877 0-21.426 3.352-30.666 9.5-9.236-6.15-19.787-9.5-30.665-9.5V64.81h46v184.04h92.02V64.81H470.02v228.904c-10.857 0-21.426 3.353-30.667 9.502zm-15.332-171.94H224.646V248.85H424.02V131.276z"/><glyph unicode="" d="M319.65 479H65.004V-30.998h414v382.52L319.65 479zm.352 1l160-128V-31.997H64V480h256zm0-128v128h-256V-31.998h416v384H320zm-192-160h224v-46.108h-224v46.11zm288-143.998H128v48h288V48zm0 192H128v48h288v-48zM320 480l160-128h-16.835L319.833 465.5z"/><glyph unicode="" d="M255.925 426.668l255.7-227.29c.207-.183.15-.332-.125-.332h-84.48c-.276 0-.5-.225-.5-.5V.086c0-.275-.226-.5-.5-.5H313.04c-.274 0-.5.225-.5.5V170.05c0 .276-.224.5-.5.5H199.064c-.275 0-.5-.224-.5-.5V.087c0-.275-.225-.5-.5-.5H85.084c-.274 0-.5.225-.5.5v198.46c0 .275-.224.5-.5.5H-.396c-.275 0-.333.15-.127.332L255.18 426.67c.204.18.54.18.746 0z"/><glyph unicode="" d="M408.504 448h-305.1L0 180.31V-.47h511.996v183.73L408.504 448zm-57.646-274.412v-48.98c0-16.045-13.014-29.037-29.03-29.037H190.183c-16.046 0-29.046 12.998-29.046 29.04v48.98H56.547l84.683 219.23h229.59l85.694-219.226h-105.66zM290.03 353.062h-67.076v-80.52h-62.958l96.51-123.99 96.483 123.99h-62.96v80.52z"/><glyph unicode="" d="M168.14 298.82c-.588 6.333 2.042 11.146 3.622 14.038.298.55.7 1.266.894 1.713-1.333 6.4-2.28 12.51-2.913 18.36l-8.136 1.39-5.164 4.785c-20.848 12.86-43.215 3.86-55.18-.997-17.258-5.604-28.167-30.012-20.544-66.09 1.283-6.17-3.397-8.94-3.08-12.294.67-7.362.8-25.05 7.76-29.4.65-.42 5.574-1.64 5.536-1.297.686-7.183 1.37-14.32 2.042-21.503 1.742-4.755 5.91-5.276 7.115-11.98l-5.323-1.327c-2.407-5.098-6.78-15.32-11.265-18.404-3.756-1.03-7.51-2.06-11.252-3.07-13.15-5.41-27.762-11.85-40.942-17.406-11.996-5.064-26.36-6.868-30.696-19.46 0-8.523-.804-28.7-.58-39.878h59.37c.066 3.635.162 7.302.244 10.833.187 7.75.367 15.064.367 19.61v2.443l.79 2.31c7.065 20.444 25.654 26.898 40.586 32.055 3.78 1.31 7.348 2.533 10.65 3.935 7.243 3.054 14.814 6.303 22.43 9.596 11.236 4.8 22.8 9.776 33.67 14.277-.536 1.162-1.035 2.25-1.467 3.16-2.392.342-4.776.686-7.16 1.012.358 7.897 5.245 8.33 7.16 14.35 1.69 5.307.178 12.22 2.862 17.107 1.854 3.428 6.04 3.458 8.15 6.364 1.9 2.683 3.152 7.287 3.748 10.55.328 1.76.61 3.68.82 5.694-11.4 10.536-12.823 30.92-13.77 44.856-.12 1.77-.223 3.334-.342 4.675M511.37 135.87c-4.322 12.59-18.703 14.394-30.7 19.46-13.17 5.56-27.792 11.997-40.95 17.405-3.725 1.014-7.48 2.042-11.232 3.07-4.503 3.085-8.87 13.307-11.27 18.405-2.384.343-4.77.687-7.17 1.013.375 7.9 5.264 8.33 7.168 14.353 1.688 5.306.18 12.22 2.863 17.106 1.85 3.43 6.05 3.46 8.15 6.364 1.892 2.682 3.173 7.286 3.755 10.55 1.088 5.96 2.014 14.098-.807 19.984-1.624 3.382-2.636 3.71-3.1 7.823-.55 4.978 1.476 21.25 1.567 24.753.19 9.15-.03 17.375-2.236 26.257 0 0-2.68 8.046-6.883 10.49l-8.377 1.416-5.17 4.78c-20.85 12.86-43.2 3.86-55.18-.997-6.664-2.16-12.357-7.168-16.422-14.5-.137-2.43-.182-4.44-.063-5.47.03-.536.105-.85.135-.998.133-.283.3-.522.46-.804.63-1.06 1.448-2.474 2.386-4.44 5.875-12.264 4.145-26.972 2.326-36.987-.894-4.917-3.1-14.186-7.763-20.684-1.21-1.714-2.58-3.07-3.92-4.2.745-7.796 2.323-16.78 7.005-19.7.64-.42 5.57-1.64 5.54-1.3.687-7.184 1.372-14.32 2.058-21.504 1.73-4.754 5.9-5.275 7.095-11.98l-5.32-1.326c-.418-.88-.895-1.924-1.434-3.07 10.924-4.5 22.578-9.494 33.873-14.352 7.63-3.277 15.2-6.54 22.47-9.61 3.307-1.4 6.854-2.624 10.625-3.935 14.945-5.155 33.543-11.61 40.58-32.054l.803-2.31v-2.445c0-4.546.192-11.862.36-19.61.082-3.532.174-7.2.25-10.835h59.113c.21 11.176-.593 31.354-.593 39.876M321.92 381.29c3.098-12.442 3.396-24.02 3.13-36.807-.12-4.947-2.952-27.763-2.177-34.75.625-5.74 2.057-6.216 4.338-10.97 3.968-8.285 2.64-19.685 1.12-28.045-.834-4.53-2.592-11.043-5.26-14.768-2.95-4.113-8.836-4.143-11.46-8.94-3.74-6.886-1.61-16.558-3.993-24.008-2.684-8.465-9.537-9.06-10.043-20.117 3.353-.477 6.706-.954 10.044-1.416 3.367-7.17 9.506-21.52 15.797-25.84 5.276-1.45 10.538-2.898 15.796-4.327 18.447-7.557 38.953-16.614 57.43-24.41 16.825-7.092 36.99-9.626 43.07-27.284 0-11.98 1.132-40.296.83-56H73.833c-.305 15.705.82 44.02.82 56 6.087 17.66 26.235 20.193 43.074 27.285 18.485 7.796 38.983 16.854 57.425 24.41 5.28 1.43 10.53 2.876 15.8 4.32 6.29 4.32 12.436 18.674 15.81 25.84l7.458 1.804c-1.7 9.436-7.533 10.164-9.962 16.84-.962 10.044-1.923 20.134-2.875 30.18.035-.48-6.88 1.233-7.78 1.8-9.753 6.125-9.96 30.92-10.885 41.25-.434 4.71 6.13 8.596 4.306 17.224-10.7 50.652 4.614 84.897 28.82 92.75 16.798 6.796 48.16 19.433 77.41 1.432l7.274-6.736 11.742-2.023c5.898-3.37 9.656-14.695 9.656-14.695"/><glyph unicode="" d="M32.003 323.36v-87.34c-18.358.436-33.14 19.802-33.14 43.656 0 23.912 14.782 43.28 33.14 43.684zm415.993 21.676c35.994-6.89 63.143-37.17 63.143-73.502 0-36.3-27.15-66.582-63.15-73.414v146.916zM300.85 147.463c32.045 4.342 64.99 7.816 89.146 10.132l-.044-.463V136.52s-8.162 4.98-12.968-11.406c-4.762-16.327-30.05-133.02-30.05-133.02l-7.512-7.092H294.35l-8.888 4.95 11.622 94.633-12.303 2.81-.68 18.555 18.43 3.53-1.68 37.983zM415.996 349.64V192.166s-108.548-7.43-164.652-26.492c-56.146-19.03-186.9-101.605-186.9-101.605l-.61 415.323s127.067-91.845 191.82-108.45c64.756-16.547 160.34-21.305 160.34-21.305z"/><glyph unicode="" d="M51.5 245.21V65.493h280.38v-53.28H.003v232.995H51.5zm91.87 90.053v-179.67h276.686v-53.317H331.88v-.01H88.223V245.21h.03v90.053h55.118zm36.78 90.067H512V192.344H180.15V425.33z"/><glyph unicode="" d="M0 480h512V320H0zm0-192h192V128H0zm224 0h128V128H224zm160 0h128V128H384zM0 96h192V-32H0zm224 0h128V-32H224zm160 0h128V-32H384z"/><glyph unicode="" d="M255.857 477.695l215.123-130.16V100.172l-56.24-32.48.064 246.755-158.898 96.962-159.098-96.73V67.32l-55.795 32.853v247.36l214.844 130.162zm28.435-152.273l74.59-45.442V32.947L255.856-30l-102.15 62.51v247.3l73.685 45.382V36.295l28.47-17.46 28.437 17.395v289.192z"/><glyph unicode="" d="M153.705 279.81l73.686 45.383V234.82l-73.68 44.99zm130.587 45.612l74.59-45.442-74.59-45.735v91.177zm186.688 22.112l-55.185-33.086-159.89 96.962L96.81 314.682l-55.795 32.852 214.844 130.16 215.12-130.16z"/><glyph unicode="" d="M500.13 243.808c-5.1 0-8.637 3.54-8.637 8.83 0 5.25 3.614 8.866 8.637 8.866 5.1 0 8.64-3.577 8.64-8.867 0-5.25-3.617-8.83-8.64-8.83zm0 16.668c-4.11 0-7.383-2.815-7.383-7.84 0-4.984 3.273-7.8 7.383-7.8 4.148 0 7.422 2.815 7.422 7.8 0 5.025-3.31 7.84-7.422 7.84zm2.55-12.558l-2.93 4.186h-.95v-4.035h-1.677v9.78h2.97c2.054 0 3.426-1.03 3.426-2.86 0-1.407-.768-2.32-1.98-2.7l2.81-3.998-1.674-.38zm-2.586 8.41H498.8v-2.89h1.218c1.103 0 1.788.455 1.788 1.444 0 .95-.61 1.446-1.712 1.446zm-396.645-70.31h12.82l-7.7 98.316H92.19L61.558 203.69 30.92 284.333H14.392L6.556 186.02h12.54l5.984 78.226 31.063-78.652H66.26l31.06 78.652 6.13-78.227zm66.96 0l-1.424 9.114c-5.414-5.55-12.824-10.535-23.938-10.535-12.253 0-19.947 7.408-19.947 18.95 0 16.956 14.53 23.647 42.89 26.645v2.85c0 8.546-5.13 11.54-12.97 11.54-8.26 0-16.1-2.563-23.506-5.842l-1.714 10.968c8.125 3.283 15.82 5.7 26.36 5.7 16.528 0 24.51-6.693 24.51-21.797v-47.59h-10.26zm-2.42 34.485c-25.083-2.424-30.35-9.265-30.35-16.25 0-5.557 3.703-9.12 10.117-9.12 7.41 0 14.534 3.71 20.233 9.553v15.817zm85.487 34.477l1.854-11.395-12.963-1.28c1.85-3.137 2.71-6.702 2.71-10.546 0-14.54-12.26-23.37-26.08-23.37-1.706 0-3.42.14-5.13.423-1.992-1.285-3.415-2.855-3.415-4.132 0-2.422 2.417-2.992 14.39-5.134l4.847-.854c14.392-2.563 23.365-7.118 23.365-17.664 0-14.25-15.53-20.944-33.2-20.944-17.668 0-31.773 5.552-31.773 17.52 0 6.987 4.846 12.4 14.392 17.522-2.992 2.14-4.272 4.563-4.272 7.13 0 3.28 2.563 6.555 7.122 9.26-7.55 3.713-12.68 10.97-12.68 20.236 0 14.673 12.254 23.65 26.072 23.65 6.835 0 12.822-1.99 17.526-5.7l17.236 5.27zm-53.287-76.37c0-5.416 6.98-9.404 20.23-9.404s20.66 4.56 20.66 10.256c0 4.138-3.13 6.98-12.82 8.69l-8.123 1.43c-3.7.708-5.698 1.136-8.406 1.707-7.98-3.99-11.54-7.98-11.54-12.68zm18.52 67.54c-8.547 0-13.816-6.56-13.816-14.822 0-7.835 5.414-13.96 13.818-13.96 8.695 0 14.106 6.41 14.106 14.534 0 8.12-5.696 14.247-14.104 14.247zm95.187-27.504H267.73c.426-15.812 7.973-23.224 19.802-23.224 9.834 0 16.958 3.843 24.368 9.69l1.85-11.4c-7.267-5.697-15.954-9.116-27.207-9.116-17.673 0-31.498 10.687-31.498 35.62 0 21.803 12.824 35.19 29.923 35.19 19.8 0 28.928-15.243 28.928-34.05v-2.71zm-29.07 26.787c-7.837 0-14.537-5.558-16.53-17.24h32.77c-1.562 10.975-6.407 17.24-16.24 17.24zm82.502-59.414v46.303c0 6.98-2.997 11.685-10.408 11.685-6.694 0-13.535-4.42-19.664-10.97v-47.02h-12.68v67.963h10.12l1.566-9.832c6.412 5.844 14.393 11.26 24.08 11.26 12.82 0 19.667-7.69 19.667-19.946V186.02h-12.68zm50.146-1.15c-11.965 0-19.8 4.276-19.8 17.96v40.46h-10.26v10.69h10.262v22.656l12.394 1.85V253.98h14.674l1.714-10.687h-16.388V205.11c0-5.56 2.282-8.98 9.407-8.98 2.276 0 4.27.14 5.837.434l1.712-10.826c-2.14-.433-5.13-.864-9.55-.864zm42.04-.28c-18.1 0-31.21 12.96-31.21 35.338 0 22.372 13.11 35.476 31.21 35.476 18.236 0 31.63-13.105 31.63-35.477 0-22.376-13.395-35.336-31.632-35.336zm0 60.13c-12.254 0-18.38-10.545-18.38-24.792 0-13.97 6.41-24.8 18.38-24.8 12.54 0 18.807 10.55 18.807 24.8 0 13.963-6.556 24.792-18.808 24.792z"/><glyph class="hidden" unicode="" d="M0 480L512-32H0z" horiz-adv-x="0"/></font></defs></svg>
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.ttf b/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.ttf
deleted file mode 100644
index 3a4c691aae958d35e27322e4a4c5f4965681a0cc..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.ttf and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff b/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff
deleted file mode 100644
index 67c2fcdb7bf9747d1a884c2e2e94df6e5a91212e..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff2 b/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff2
deleted file mode 100644
index a828934ddeec2ebf948c599cc8528a8910882946..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/fonts/icons/admin-icons.woff2 and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/images/arrows-bg.svg b/app/design/adminhtml/Magento/backend/web/images/arrows-bg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..322a96ecdab5898e79e1e0af6c02f8229a9d90ea
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/images/arrows-bg.svg
@@ -0,0 +1,5 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="8px" height="53px" viewBox="0 0 8 53" style="enable-background:new 0 0 8 53;" xml:space="preserve">
+<path style="fill:#524A43;" d="M4.028,52.994l-4.003-5.368h8.006L4.028,52.994z"/>
+<path style="fill:#524A43;" d="M4.028,0l4.003,5.368H0.025L4.028,0z"/>
+</svg>
diff --git a/app/design/adminhtml/Magento/backend/web/images/body-bg.jpg b/app/design/adminhtml/Magento/backend/web/images/body-bg.jpg
deleted file mode 100644
index 57e936249cadfbca7572b715bf95338ca51fe3d4..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/images/body-bg.jpg and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/images/magento-icon.svg b/app/design/adminhtml/Magento/backend/web/images/magento-icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2ade240eac735cedb61693fbb4b5a274244387e0
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/images/magento-icon.svg
@@ -0,0 +1 @@
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" width="35" height="41" viewBox="-0.154 0 54 62"><g fill="#E85D22"><path d="M26.845 8.857"/><path d="M53.692 15.5v31l-7.67 4.43v-31L26.844 8.856 7.67 19.926V50.93L0 46.5v-31L26.845 0zM26.847 62L15.34 55.355V24.357l7.67-4.43V50.93l3.835 2.327 3.837-2.327v-31l7.67 4.427v30.998z"/></g></svg>
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/js/theme.js b/app/design/adminhtml/Magento/backend/web/js/theme.js
index 0a5b8f4ab0dfd4a6c1ff96314f346a147985397b..dbd4fca3ebee2f7414a0631b185e0305be92d7c3 100644
--- a/app/design/adminhtml/Magento/backend/web/js/theme.js
+++ b/app/design/adminhtml/Magento/backend/web/js/theme.js
@@ -78,12 +78,16 @@ define('globalNavigation', [
         },
 
         _hoverEffects: function (e) {
+
+            // Disable current active class while hover is on level 0
+            $(this).siblings('._active').addClass('_current').removeClass('_active');
+
             $(this)
-                .addClass('hover recent')
+                .addClass('_hover _recent')
                 .siblings('.level-0').each(function () {
                     clearTimeout($(this).prop('hoverIntent_t'));
                     $(this).prop('hoverIntent_s', 0);
-                    $(this).removeClass('recent hover');
+                    $(this).removeClass('_recent _hover');
                 });
 
             var targetSubmenu = $(e.target).closest('.submenu');
@@ -94,7 +98,7 @@ define('globalNavigation', [
                 submenu = $('> .submenu', this),
                 colsWidth = 0;
 
-            submenu.show();
+            submenu.addClass('_show');
 
             $.each($('> .submenu > ul li.column', this), function () {
                 colsWidth = colsWidth + parseInt($(this).css('width'));
@@ -104,12 +108,14 @@ define('globalNavigation', [
 
             $(this).toggleClass('reverse', (containerPaddings + colsWidth) > availableWidth);
 
-            submenu
-                .hide()
-                .slideDown('fast');
+            submenu.removeClass('_show');
         },
 
         _leaveEffects: function (e) {
+
+            // Disable current active class while hover is on level 0
+            $(this).siblings('._current').addClass('_active').removeClass('_current');
+
             var targetSubmenu = $(e.target).closest('.submenu'),
                 self = $(this),
                 submenu = $('> .submenu', this);
@@ -119,11 +125,11 @@ define('globalNavigation', [
             }
 
             if (submenu.length) {
-                submenu.slideUp('fast', function () {
-                    self.removeClass('hover');
+                submenu.removeClass('_show', function () {
+                    self.removeClass('_hover');
                 });
             } else {
-                self.removeClass('hover');
+                self.removeClass('_hover');
             }
 
         }
@@ -141,7 +147,7 @@ define('globalSearch', [
     $.widget('mage.globalSearch', {
         options: {
             field: '.search-global-field',
-            fieldActiveClass: 'active',
+            fieldActiveClass: '_active',
             input: '#search-global'
         },
 
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/grids.less b/app/design/adminhtml/Magento/backend/web/less/clearless/grids.less
deleted file mode 100644
index 3ad07a4ce44200c28c7686b1ddcc5b468b8bdce3..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/clearless/grids.less
+++ /dev/null
@@ -1,164 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-// ==============================================
-// Grid mixins
-// ==============================================
-
-// You shouldn't need to touch this! Internal use only.
-@column-width: 1;
-@total-columns: 1;
-@gutter-width: 1;
-@grid-width: (@column-width*@total-columns) + (@gutter-width*(@total-columns - 1));
-
-.column-wrapper() {
-    width: 100%;
-}
-
-.inline-column-wrapper() when not (@using-ieclasses) {
-    letter-spacing: -.31em;
-    *letter-spacing: normal;
-    word-spacing: -.43em;
-}
-
-.inline-column-wrapper() when (@using-ieclasses) {
-    letter-spacing: -.31em;
-    word-spacing: -.43em;
-}
-
-.column() {
-    float: left;
-    .column-gutter();
-}
-
-.column( @span ) when (@span = false) {
-    float: left;
-}
-
-.column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) and not (isnumber(@end-column)) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span, @total-columns );
-}
-
-.column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) and (@end-column = true) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span, @total-columns );
-    .end-column();
-}
-
-.column( @span, @end-column ) when (isnumber(@span)) and not (isnumber(@end-column)) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span );
-}
-
-.column( @span, @end-column ) when (isnumber(@span)) and ( @end-column = true ) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span );
-    .end-column();
-}
-
-.inline-column() {
-    .inline-block();
-    vertical-align: top;
-    letter-spacing: normal;
-    word-spacing: normal;
-    .column-gutter();
-}
-
-.inline-column( @span ) when (@span = false) {
-    .inline-block();
-    vertical-align: top;
-    letter-spacing: normal;
-    word-spacing: normal;
-}
-
-.inline-column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span, @total-columns );
-}
-
-.inline-column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (@end-column = true) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span, @total-columns );
-    .inline-end-column();
-}
-
-.inline-column( @span, @end-column ) when not (isnumber(@end-column)) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span );
-}
-
-.inline-column( @span, @end-column ) when (@end-column = true) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span );
-    .inline-end-column();
-}
-
-.end-column() {
-    margin-right: 0;
-    float: right;
-}
-
-.inline-end-column() {
-    margin-right: 0;
-}
-
-.span( @span ) {
-    .column-width(@span, @total-columns);
-}
-
-.span( @span, @total-columns ) when (isnumber(@total-columns)) {
-    .column-width(@span, @total-columns);
-    .column-gutter(@total-columns);
-}
-
-.pre-pad( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    padding-left: @calc-column-width;
-}
-
-.post-pad( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    padding-right: @calc-column-width;
-}
-
-.pre-push( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    margin-left: @calc-column-width;
-}
-
-.post-push( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)+@gutter-width) / @grid-width);
-    margin-right: @calc-column-width;
-}
-
-.post-push-end( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    margin-right: @calc-column-width;
-}
-
-.column-width(@span, @total-columns:@total-columns) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)-@gutter-width) / @grid-width);
-    width: @calc-column-width;
-}
-
-.column-gutter(@total-columns:@total-columns, @end-column:false) when (@end-column) {
-    margin-right: 0;
-}
-
-.column-gutter(@total-columns:@total-columns, @end-column:false) when not (@end-column) {
-    @calc-gutter-width: 100%*(@gutter-width/@grid-width);
-    margin-right: @calc-gutter-width;
-}
-
-
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/resets.less b/app/design/adminhtml/Magento/backend/web/less/clearless/resets.less
deleted file mode 100644
index 556511fec500a69e47c3dfaf12d7e9b96dc007cc..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/clearless/resets.less
+++ /dev/null
@@ -1,283 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-.normalize() {
-
-    /* normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
-
-    article,
-    aside,
-    details,
-    figcaption,
-    figure,
-    main,
-    footer,
-    header,
-    nav,
-    section,
-    summary {
-        display: block;
-    }
-    audio,
-    canvas,
-    video {
-        display: inline-block;
-    }
-    audio:not([controls]) {
-        display: none;
-        height: 0;
-    }
-    [hidden] {
-        display: none;
-    }
-    html {
-        font-size: 100%;
-        -webkit-text-size-adjust: 100%;
-        -ms-text-size-adjust: 100%;
-        font-size-adjust: 100%;
-    }
-    html,
-    button,
-    input,
-    select,
-    textarea {
-        font-family: sans-serif;
-    }
-    body {
-        margin: 0;
-    }
-    a:focus {
-        outline: thin dotted;
-    }
-    a:hover,
-    a:active {
-        outline: 0;
-    }
-    h1 {
-        font-size: 2em;
-        margin: .67em 0;
-    }
-    h2 {
-        font-size: 1.5em;
-        margin: .83em 0;
-    }
-    h3 {
-        font-size: 1.17em;
-        margin: 1em 0;
-    }
-    h4 {
-        font-size: 1em;
-        margin: 1.33em 0;
-    }
-    h5 {
-        font-size: .83em;
-        margin: 1.67em 0;
-    }
-    h6 {
-        font-size: .75em;
-        margin: 2.33em 0;
-    }
-    abbr[title] {
-        border-bottom: 1px dotted;
-    }
-    b,
-    strong {
-        font-weight: bold;
-    }
-    blockquote {
-        margin: 1em 40px;
-    }
-    dfn {
-        font-style: italic;
-    }
-    mark {
-        background: #ff0;
-        color: #000;
-    }
-    p,
-    pre {
-        margin: 1em 0;
-    }
-    pre,
-    code,
-    kbd,
-    samp {
-        font-family: monospace, serif;
-        _font-family: 'courier new', monospace;
-        font-size: 1em;
-    }
-    pre {
-        white-space: pre;
-        white-space: pre-wrap;
-        word-wrap: break-word;
-    }
-    q {
-        quotes: none;
-    }
-    q:before,
-    q:after {
-        content: '';
-        content: none;
-    }
-    small {
-        font-size: 75%;
-    }
-    sub,
-    sup {
-        font-size: 75%;
-        line-height: 0;
-        position: relative;
-        vertical-align: baseline;
-    }
-    sup {
-        top: -.5em;
-    }
-    sub {
-        bottom: -.25em;
-    }
-    dl,
-    menu,
-    ol,
-    ul {
-        margin: 1em 0;
-    }
-    dd {
-        margin: 0 0 0 40px;
-    }
-    menu,
-    ol,
-    ul {
-        padding: 0 0 0 40px;
-    }
-    nav ul,
-    nav ol {
-        list-style: none none;
-    }
-    img {
-        border: 0;
-    }
-    svg:not(:root) {
-        overflow: hidden;
-    }
-    figure {
-        margin: 0;
-    }
-    form {
-        margin: 0;
-    }
-    fieldset {
-        border: 1px solid #c0c0c0;
-        margin: 0 2px;
-        padding: .35em .625em .75em;
-    }
-    legend {
-        border: 0;
-        padding: 0;
-        white-space: normal;
-        *margin-left: -7px;
-    }
-    button,
-    input,
-    select,
-    textarea {
-        font-size: 100%;
-        margin: 0;
-        vertical-align: baseline;
-        *vertical-align: middle;
-    }
-    button,
-    input {
-        line-height: normal;
-    }
-    button,
-    input[type="button"],
-    input[type="reset"],
-    input[type="submit"] {
-        cursor: pointer;
-        -webkit-appearance: button;
-        *overflow: visible;
-    }
-    button[disabled],
-    input[disabled] {
-        cursor: default;
-    }
-    input[type="checkbox"],
-    input[type="radio"] {
-        box-sizing: border-box;
-        padding: 0;
-        *height: 13px;
-        *width: 13px;
-    }
-    input[type="search"] {
-        -webkit-appearance: textfield;
-        box-sizing: content-box;
-    }
-    input[type="search"]::-webkit-search-decoration,
-    input[type="search"]::-webkit-search-cancel-button {
-        -webkit-appearance: none;
-    }
-    button::-moz-focus-inner,
-    input::-moz-focus-inner {
-        border: 0;
-        padding: 0;
-    }
-    textarea {
-        overflow: auto;
-        vertical-align: top;
-    }
-    table {
-        border-collapse: collapse;
-        border-spacing: 0;
-    }
-}
-
-.reset() {
-
-    /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
-
-    html, body, div, span, applet, object, iframe,
-    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-    a, abbr, acronym, address, big, cite, code,
-    del, dfn, em, img, ins, kbd, q, s, samp,
-    small, strike, strong, sub, sup, tt, var,
-    b, u, i, center,
-    dl, dt, dd, ol, ul, li,
-    fieldset, form, label, legend,
-    table, caption, tbody, tfoot, thead, tr, th, td,
-    article, aside, canvas, details, embed,
-    figure, figcaption, main, footer, header,
-    menu, nav, output, ruby, section, summary,
-    time, mark, audio, video {
-        margin: 0;
-        padding: 0;
-        border: 0;
-        font-size: 100%;
-        font: inherit;
-        vertical-align: baseline;
-    }
-    article, aside, details, figcaption, figure, main,
-    footer, header, menu, nav, section {
-        display: block;
-    }
-    body {
-        line-height: 1;
-    }
-    ol, ul {
-        list-style: none;
-    }
-    blockquote, q {
-        quotes: none;
-    }
-    blockquote:before, blockquote:after,
-    q:before, q:after {
-        content: '';
-        content: none;
-    }
-    table {
-        border-collapse: collapse;
-        border-spacing: 0;
-    }
-
-}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/typography.less b/app/design/adminhtml/Magento/backend/web/less/clearless/typography.less
deleted file mode 100644
index e75404f5fea567be598e741b7fe5c8acaa8f8eb7..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/clearless/typography.less
+++ /dev/null
@@ -1,52 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-// ==============================================
-// Typography related mixins
-// ==============================================
-
-.font-size-rems(@px-size) {
-    @rem-size: @px-size / @base-font-size;
-    font-size: ~"@{rem-size}rem";
-}
-
-.font-size-ems(@target-px-size, @context-px-size:@base-font-size) {
-    font-size: (@target-px-size / @context-px-size) * 1em;
-}
-
-.font-face( @family-name, @font-path, @font-weight:normal, @font-style:normal, @include-svg:false ) when not (@include-svg) {
-    @font-face {
-        font-family: @family-name;
-        src: url('@{font-path}.eot');
-        src: url('@{font-path}.eot?#iefix') format('embedded-opentype'),
-        url('@{font-path}.woff2') format('woff2'),
-        url('@{font-path}.woff') format('woff'),
-        url('@{font-path}.ttf') format('truetype');
-        font-weight: @font-weight;
-        font-style: @font-style;
-    }
-}
-
-.font-face( @family-name, @font-path, @font-weight:normal, @font-style:normal, @include-svg:false ) when (@include-svg) {
-    @font-face {
-        font-family: @family-name;
-        src: url('@{font-path}.eot');
-        src: url('@{font-path}.eot?#iefix') format('embedded-opentype'),
-        url('@{font-path}.woff2') format('woff2'),
-        url('@{font-path}.woff') format('woff'),
-        url('@{font-path}.ttf') format('truetype'),
-        url('@{font-path}.svg#@{family-name}') format('svg');
-        font-weight: @font-weight;
-        font-style: @font-style;
-    }
-}
-
-.wrap-words() {
-    word-break: break-all;
-    word-break: break-word;
-    -webkit-hyphens: auto;
-    -moz-hyphens: auto;
-    hyphens: auto;
-}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/less/lib/buttons.less b/app/design/adminhtml/Magento/backend/web/less/lib/buttons.less
deleted file mode 100644
index 4178beae7633de81cd8c74aa7ddc1bd8679166c3..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/lib/buttons.less
+++ /dev/null
@@ -1,163 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-// Default Button
-.DefaultButton {
-    font: 14px/19px @baseFont;
-    font-weight: 500;
-    background: @defaultButton1;
-    border: 1px solid @defaultButton2;
-    color: @defaultButton3;
-    display: inline-block;
-    padding: 5px 14px;
-    text-align: center;
-    text-decoration: none;
-    vertical-align: top;
-    cursor: pointer;
-    border-radius: 2px;
-    -webkit-touch-callout: none;
-    -webkit-user-select: none; // use in 41 Chrome
-    -moz-user-select: none; // use in 36 Firefox
-    -ms-user-select: none; // use in 11 IE
-    user-select: none;
-    &:hover,
-    &:focus,
-    &:active {
-        text-decoration: none;
-        background: @defaultButton4;
-        color: @defaultButton3;
-    }
-    &:active {
-        border: 1px solid @defaultButton5;
-    }
-    &:visited {
-        color: @defaultButton3;
-    }
-    &[disabled],
-    &.disabled {
-        &:hover,
-        &:active {
-            color: @defaultButton3;
-            background: @defaultButton1;
-            border: 1px solid @defaultButton2;
-        }
-        cursor: not-allowed;
-        opacity: .5;
-        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
-    }
-}
-
-// Primary Button
-.PrimaryButton {
-    &:extend(.DefaultButton all);
-    color: #fff;
-    background: @primaryButton1;
-    border: 1px solid @primaryButton2;
-    &:focus,
-    &:hover {
-        color: #fff;
-        background: @primaryButton3;
-        border: 1px solid @primaryButton3;
-    }
-    &:active {
-        color: #fff;
-        background: @primaryButton3;
-        border: 1px solid @primaryButton4;
-    }
-    &:visited {
-        color: #fff;
-    }
-    &[disabled],
-    &.disabled {
-        &:hover,
-        &:active {
-            color: #fff;
-            background: @primaryButton1;
-            border: 1px solid @primaryButton2;
-        }
-    }
-}
-
-// Primary Add Button
-// .PrimaryAddButton {
-//     &:extend(.PrimaryButton all);
-//     width: 36px;
-//     height: 31px;
-//     overflow: hidden;
-//     position: relative;
-//     z-index: 1;
-//     padding: 0;
-//     > span {
-//         text-indent: -999em;
-//         display: block;
-//         width: 34px;
-//         height: 29px;
-//         &:before {
-//             text-indent: 0;
-//             font-family: 'MUI-Icons';
-//             font-weight: normal;
-//             font-size: 22px;
-//             content: '\e02d';
-//             color: #fff;
-//             position: absolute;
-//             width: 34px;
-//             height: 29px;
-//             line-height: 29px;
-//             text-align: center;
-//             vertical-align: middle;
-//             top: 0;
-//             left: 0;
-//             overflow: hidden;
-//             .eq-ie9 & {
-//                 line-height: 31px;
-//             }
-//         }
-//     }
-// }
-
-// Primary Split and Primary Add Split Button
-.PrimarySplitButton {
-    &.btn-round {
-        .action-default.primary {
-            //&:extend(.PrimaryAddButton all);
-            border-radius: 2px 0 0 2px;
-        }
-    }
-    > .action-default.primary {
-       border-radius: 2px 0 0 2px;
-    }
-    > .action-toggle.primary {
-        &:extend(.PrimaryButton all);
-        overflow: hidden;
-        padding: 0;
-        border-radius: 0 2px 2px 0;
-        font-size: 15px;
-        width: 30px;
-        height: 31px;
-        line-height: 30px;
-        margin-left: -1px;
-        position: relative;
-        z-index: 2;
-        filter: none;
-        &:before {
-            text-align: center;
-        }
-    }
-    .dropdown-menu {
-        left: 0;
-        right: auto;
-        z-index: 1;
-        > li > .item {
-            padding: 9px 10px 10px;
-        }
-    }
-    &.active {
-        > .action-toggle.primary,
-        > .action-toggle.primary:hover {
-            background: @primaryButton3;
-            border: 1px solid @primaryButton4;
-        }
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/less/styles/base.less b/app/design/adminhtml/Magento/backend/web/less/styles/base.less
deleted file mode 100644
index 52c811e6b2f929d2aeef1f483c5b54632a520c02..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/styles/base.less
+++ /dev/null
@@ -1,98 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-// Fonts
-
-@font-face {
-    font-family: 'admin-icons';
-    src: url('../fonts/icons/admin-icons.eot');
-    src: url('../fonts/icons/admin-icons.eot?#iefix') format('embedded-opentype'), url('../fonts/icons/admin-icons.svg#admin-icons') format('svg'), url('../fonts/icons/admin-icons.woff') format('woff'), url('../fonts/icons/admin-icons.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-@font-face {
-    font-family: 'MUI-Icons';
-    src: url('../mui/fonts/MUI-Icons.eot');
-    src: url('../mui/fonts/MUI-Icons.eot?#iefix') format('embedded-opentype'), url('../mui/fonts/MUI-Icons.svg#MUI-Icons') format('svg'), url('../mui/fonts/MUI-Icons.woff') format('woff'), url('../mui/fonts/MUI-Icons.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-/* @import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,600,700 <http://fonts.googleapis.com/css?family=Open+Sans:400italic%2c400%2c600%2c700>); */
-
-@font-face {
-    font-family: 'Open Sans';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Open Sans'), local('OpenSans'), url(//themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
-}
-@font-face {
-    font-family: 'Open Sans';
-    font-style: normal;
-    font-weight: 600;
-    src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(//themes.googleusercontent.com/static/fonts/opensans/v6/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff) format('woff');
-}
-@font-face {
-    font-family: 'Open Sans';
-    font-style: normal;
-    font-weight: 700;
-    src: local('Open Sans Bold'), local('OpenSans-Bold'), url(//themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
-}
-@font-face {
-    font-family: 'Open Sans';
-    font-style: italic;
-    font-weight: 400;
-    src: local('Open Sans Italic'), local('OpenSans-Italic'), url(//themes.googleusercontent.com/static/fonts/opensans/v6/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff) format('woff');
-}
-
-// Headings
-
-h1 {
-    color: @h1color;
-    font: @h1font;
-}
-
-h2 {
-    color: @h2color;
-    font: @h2font;
-}
-
-h3 {
-    color: @h3color;
-    font: @h3font;
-}
-
-h4 {
-    color: @h4color;
-    font: @h4font;
-}
-
-h5 {
-    color: @h5color;
-    font: @h5font;
-}
-
-h6 {
-    color: @h6color;
-    font: @h6font;
-}
-
-// Links
-
-a {
-    .actionLink();
-}
-
-
-body,
-html {
-    height: 100%;
-    min-height: 100%;
-}
-body {
-    background: @primary7;
-}
-
diff --git a/app/design/adminhtml/Magento/backend/web/less/styles/debug.less b/app/design/adminhtml/Magento/backend/web/less/styles/debug.less
deleted file mode 100644
index 097b5e7de50915fb41c0698871f683ead257fbd7..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/styles/debug.less
+++ /dev/null
@@ -1,710 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-///*
-//    This file was created to debug old classes in order to indicate where we must replase it with new ones
-
-.debug {
-    border: 1px solid red !important;
-}
-
-/*
-    Accordion
-------------------------*/
-.accordion {
-    margin: 0 0 8px;
-    padding: 0;
-}
-
-.accordion > dt,
-.accordion > dd.open,
-.accordion .collapseable,
-.section-config.active > .collapseable + input + fieldset,
-.accordion .collapseable.open + input + fieldset {
-    background: #fff;
-    padding: 5px 18px 2px;
-    position: relative;
-}
-
-.accordion > dt + dd {
-    display: none;
-}
-
-.accordion > dt.open,
-.section-config.active > .collapseable,
-.accordion .collapseable.open {
-    margin: 0;
-    border-bottom: 0;
-    border-radius: 5px 5px 0 0;
-}
-.section-config.active > .collapseable + input + fieldset,
-.accordion > dt + dd.open,
-.accordion .collapseable.open + input + fieldset {
-    padding: 25px 18px 18px;
-    display: block;
-    margin-left: 0;
-    border-top: 0;
-    border-radius: 0 0 5px 5px;
-}
-
-.section-config > .collapseable > a,
-.accordion > dt a,
-.accordion .collapseable > a {
-    .style10();
-    display: block;
-    padding: 7px 0 10px 22px;
-    text-decoration: none;
-    position: relative;
-    cursor: pointer;
-    border-bottom: 1px solid #cac3b4;
-}
-
-.section-config > .collapseable > a i,
-.accordion > dt a i,
-.accordion .collapseable > a i {
-    .style31();
-}
-
-.section-config.active > .collapseable > a,
-.accordion .collapseable.open a,
-.accordion dt.open a {
-    /*border-bottom: 1px solid #ededed;*/
-}
-.section-config > .collapseable > a:before,
-.accordion > dt a:before,
-.accordion .collapseable > a:before {
-    position: absolute;
-    left: 0;
-    top: 11px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-size: 16px;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02a'; /* arrow right icon */
-    color: #b2b0ad;
-}
-
-
-.section-config.active > .collapseable > a:before,
-.accordion > dt.open a:before,
-.accordion .collapseable.open a:before {
-    content: '\e02c'; /* arrow down icon */
-}
-.section-config > .collapseable > a:hover:before,
-.accordion > dt a:hover:before,
-.accordion .collapseable > a:hover:before {
-    color: #7e7e7e;
-}
-
-/* PayPal connected */
-
-.section-config.complex .section-config.with-button {
-    padding:20px 15px;
-    margin:0 -30px 0 -15px;
-    border-bottom:1px solid #eae6e0;
-}
-
-.section-config.complex tr:last-child .section-config.with-button {
-    border-bottom:0;
-}
-
-.section-config.complex .section-config.with-button > .entry-edit-head {
-    padding: 0 0 0 25px;
-    border:0;
-}
-
-.section-config.complex .section-config.with-button.enabled > .entry-edit-head:before {
-    content: "\e01e";
-    color:#fff;
-    background: #65940a;
-    font-family: "MUI-Icons";
-    font-weight: normal;
-    padding:3px;
-    font-size: 10px;
-    width:10px;
-    height:10px;
-    line-height: 10px;
-    overflow: hidden;
-    border-radius: 8px;
-    display: block;
-    float:left;
-    margin-left:-25px;
-    margin-top:0;
-}
-
-.section-config.complex .section-config.with-button > .config {
-    margin:10px -10px;
-    border:1px solid #d1d0ce;
-    border-radius: 0;
-    padding:5px 0;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td {
-    padding:0;
-}
-
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head {
-    border:0;
-    border-radius: 0;
-    margin-bottom:0;
-    padding:5px 10px 2px;
-    border-bottom:1px solid #d1d0ce;
-    background: transparent;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a {
-  padding-left: 22px;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head > a:before {
-  left: 0;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .entry-edit-head {
-    border:0;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .entry-edit-head a {
-    border-bottom:0;
-}
-
-.section-config.complex .section-config.with-button > .config > table > tbody > tr > td > .section-config > .config {
-    border:0;
-    border-bottom:1px solid #d1d0ce;
-    border-radius: 0;
-    margin:0;
-    padding-bottom:50px;
-}
-.section-config.complex .section-config.with-button > .config > table > tbody > tr:last-child > td > .section-config > .config {
-    border-bottom:0;
-}
-
-.section-config .config h4 {
-    padding-left:25%;
-    font-size: 18px;
-}
-
-.section-config .config td.label label.enabled:before {
-}
-.section-config .config td.label label.enabled:before {
-    content: "\e01e";
-    color:#fff;
-    background: #65940a;
-    font-family: "MUI-Icons";
-    font-weight: normal;
-    padding:3px;
-    font-size: 10px;
-    width:10px;
-    height:10px;
-    line-height: 10px;
-    overflow: hidden;
-    border-radius: 8px;
-    display: block;
-    float:left;
-    margin-right:5px;
-}
-
-.section-config.complex .section-config.with-button > .config:before {
-    content:'';
-    height: 9px;
-    width: 20px;
-    overflow: hidden;
-    display: block;
-    position: absolute;
-    bottom: 100%;
-    left: 50%;
-    z-index: 2;
-    margin-left: -10px;
-    background: url(../images/subconfig-bg.png) no-repeat 0 0;
-}
-
-.section-config.config-advanced {
-    padding:30px 0 0;
-}
-.section-config.config-advanced > .entry-edit-head {
-    border:0;
-    padding: 0 0 0 25%;
-}
-.section-config.config-advanced > .entry-edit-head a {
-    border:0 !important;
-}
-.section-config.config-advanced > .config {
-    padding-left:0!important;
-    padding-right:0!important;
-    border:0!important;
-    border-radius: 0!important;
-}
-
-.section-config.config-advanced > .entry-edit-head a {
-    margin-left:-22px;
-}
-
-
-.section-config.with-button .config-heading strong {
-    display: block;
-    .style28();
-    margin-bottom:5px;
-}
-
-.section-config.with-button .config-heading .button-container {
-    margin:15px 0 0;
-}
-.section-config.with-button .button-container {
-    line-height: 28px;
-}
-.section-config.with-button .button-container a {
-    margin-left:20px;
-}
-
-.section-config.with-button .action-configure span {
-    display: block;
-    position: relative;
-    text-align: center;
-}
-.section-config.with-button .action-configure .state-opened {
-    visibility: hidden;
-    height:0;
-    overflow: hidden;
-}
-.section-config.with-button .action-configure.open .state-opened {
-    visibility: visible;
-    height:auto;
-    overflow: auto;
-}
-.section-config.with-button .action-configure.open .state-closed {
-    visibility: hidden;
-    height:0;
-    overflow: hidden;
-}
-
-.accordion > dt + dd {
-    display: none;
-}
-
-.accordion > dt + .open:empty {
-    background: #fff url(../mui/images/ajax-loader-big.gif) no-repeat center;
-    height: 100px;
-}
-
-/* TODO: arrange configuration tables */
-.accordion .collapseable.disabled {
-    background: #f1f1f1;
-}
-
-.accordion .collapseable.disabled > a {
-    cursor: not-allowed;
-}
-
-.accordion .collapseable.disabled > a:before {
-    content: '';
-}
-
-.accordion .config {
-    border: 0;
-}
-
-.accordion .config {
-    .comment a,
-    .link-more {
-        .style3();
-    }
-}
-
-.accordion .config legend {
-    display: none;
-}
-
-.accordion .config table {
-    width: 100%;
-}
-
-.accordion .config .label {
-    float: none;
-    width: 25%;
-    text-align: right;
-    .style2();
-}
-
-.accordion .config .value .label {
-    padding: 6px 5px 0 15px;
-    vertical-align: top;
-    width: auto;
-}
-
-.accordion .config .value .label:first-child {
-    padding-left: 0;
-}
-
-.accordion .config .label label {
-    padding-top: 6px;
-}
-
-.accordion .config td {
-    background: none;
-    border: 0;
-    padding: 8px 15px 0 0;
-    vertical-align: top;
-}
-
-.accordion .paypal-selection-simplified {
-    padding-left: 30px;
-}
-
-.accordion .paypal-selection input[type="checkbox"] {
-    margin: -4px 7px 0 0;
-}
-
-.accordion .config input[type="text"],
-.accordion .config input[type="password"],
-.accordion .config select,
-.accordion .config textarea {
-    width: 100%;
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-
-.accordion .config input.input-file {
-    margin-top: 4px;
-}
-
-.accordion .config select.select-date {
-    width: 20%;
-}
-
-.accordion .config .value {
-    width: 50%;
-    padding-right: 40px;
-    .checkboxes {
-        list-style: none;
-        padding: 0;
-        margin: -3px 0 0;
-
-        li {
-            margin: 7px 0;
-        }
-
-        input,
-        label {
-            vertical-align: middle;
-        }
-
-        label {
-            margin-left: 5px;
-        }
-    }
-}
-
-.accordion .config .value.with-tooltip {
-    padding-top:5px;
-}
-.accordion .config .value.with-tooltip .tooltip {
-    position: relative;
-    top:0;
-    left:0;
-    right:0;
-    bottom:0;
-    float:right;
-    margin: 6px -20px 0 0;
-}
-.accordion .config .value.with-tooltip .tooltip-content {
-    padding: 18px;
-    margin: 0 -17px 10px 0;
-    right: 0;
-    bottom: 100%;
-    width: 239px;
-    max-width: 239px;
-    font-size: 13px;
-    line-height: 1.4;
-    background: #31302b;
-    background: rgba(49, 48, 43, .8);
-    border-radius: 5px;
-}
-.accordion .config .value.with-tooltip .tooltip-content:before {
-    content: '';
-    position: absolute;
-    width: 0;
-    height: 0;
-    top: auto;
-    bottom:-5px;
-    left:auto;
-    right: 20px;
-    border-left: 5px solid transparent;
-    border-right: 5px solid transparent;
-    border-top: 5px solid #31302b;
-    border-bottom:0;
-    opacity: .8;
-}
-
-.accordion .config .value.with-tooltip .help {
-    position: relative;
-    width:auto;
-    margin:0;
-}
-
-.accordion .config .scope-label {
-    color: #999;
-    font-size: 12px;
-    letter-spacing: .05em;
-    padding: 15px 15px 0 0;
-}
-
-.accordion .config .note {
-    .style19();
-    padding-left: 15px;
-    margin: 5px 0;
-}
-
-.accordion .config .note a {
-    .style22();
-}
-
-.accordion .config .note:before {
-    position: absolute;
-    margin: 4px 0 0 -14px;
-    content: '';
-    display: inline-block;
-    vertical-align: top;
-    font-size: 0;
-    line-height: 0;
-    width: 0;
-    border-bottom: 5px solid #666;
-    border-left: 5px solid transparent;
-    border-right: 5px solid transparent;
-}
-
-.accordion .config .system-tooltip-box {
-    position: absolute;
-}
-
-.accordion .paypal-selection {
-    margin: 10px;
-    width: 98%;
-}
-
-.accordion .paypal-selection th {
-    padding: 6px 10px 7px;
-}
-
-.accordion .paypal-selection {
-    border-bottom: 2px solid #c0bbaf;
-}
-
-.accordion .paypal-payment-notice {
-    margin: 10px;
-}
-
-.accordion .custom-options {
-    border: 1px solid #999;
-    padding: 0 10px;
-    margin: 0 0 20px;
-}
-
-/*
-    Sales
--------------------------------------- */
-
-.order-items .entry-edit-head .form-buttons {
-    float: right;
-}
-
-.order-items .entry-edit-head .icon-head {
-    display: inline;
-}
-
-.order-items .entry-edit-head {
-    margin-bottom: 20px;
-}
-
-.order-items .entry-edit-head:before,
-.order-items .entry-edit-head:after {
-    content: "";
-    display: table;
-}
-
-.order-items .entry-edit-head:after {
-    clear: both;
-}
-
-/*
-    Import-export tax rates
--------------------------------------- */
-.import-export-tax-rates input[type=file] {
-    margin-right: 10px;
-}
-
-.import-tax-rates,
-.export-tax-rates {
-    float: left;
-    width: 48.9362%;
-}
-
-.export-tax-rates {
-    margin-left: 2.12766%;
-}
-
-.import-export-tax-rates:before,
-.import-export-tax-rates:after {
-    content: "";
-    display: table;
-}
-
-.import-export-tax-rates:after {
-    clear: both;
-}
-
-/*
-    Product
--------------------------------------- */
-.tier {
-    margin: 20px 0 0;
-}
-
-/*
-    Edit attribute set
--------------------------------------- */
-.attribute-set-col {
-    display: block;
-    float: left;
-    margin-left: 2.127659574%;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-    width: 31.9149%;
-}
-
-.attribute-set-col:first-child {
-    margin-left: 0;
-}
-
-.attribute-set-tree {
-    margin-top: 5px;
-    overflow: auto;
-    height: 400px;
-    width: 100%;
-}
-
-.attribute-set:before,
-.attribute-set:after {
-    content: "";
-    display: table;
-}
-.attribute-set:after {
-    clear: both;
-}
-
-/*
-    Manage Categories
--------------------------------------- */
-.catalog-category-edit .category-edit-title {
-    float: left;
-}
-
-/*
-    Catalog Price Rule
--------------------------------------- */
-.rule-tree-wrapper {
-    line-height: 28px;
-}
-
-.rule-tree .fieldset {
-    min-width: 0; // Fixed Chrome fieldset issue
-}
-
-@-moz-document url-prefix() { // Fixed Firefox fieldset issue
-    .rule-tree .fieldset {
-        display: table-cell;
-    }
-}
-
-.rule-tree ul {
-    list-style: none;
-    padding-left: 16px;
-    border-left: dotted 1px #888;
-}
-
-.rule-tree li {
-    margin: 0 0 10px;
-}
-
-.rule-tree .x-tree ul {
-    padding-left: 0 !important;
-    border-left: none !important;
-}
-
-.rule-param .label {
-    color: #000;
-    float: none;
-    text-align: left;
-    padding: 0;
-    vertical-align: baseline;
-    width: auto;
-}
-
-.rule-param .label-disabled {
-    color: #eee;
-    cursor: default;
-    text-decoration: none;
-}
-
-.rule-chooser,
-.rule-param .element,
-.rule-param-edit .label {
-    display: none;
-}
-
-.rule-chooser .field-row {
-    .clearfix();
-    display: block;
-    margin-bottom: 17px;
-    .input-text {
-        margin-top: 5px;
-    }
-    .ui-datepicker-trigger {
-        margin-left: 5px;
-        margin-top:-2px;
-    }
-}
-
-.rule-param input,
-.rule-param select {
-    width: auto !important;
-    margin: 0;
-    min-width: 170px;
-}
-
-.rule-param-edit .element {
-    display: inline;
-}
-
-.rule-param-edit .element .addafter {
-    padding-left: 5px;
-}
-
-[class^="rule-param-"] img,
-.rule-chooser-trigger img {
-    vertical-align: middle;
-}
-
-.rule-chooser {
-    border: solid 1px #CCC;
-    margin: 20px;
-    padding: 15px 10px 5px;
-    overflow: auto;
-}
-
-.rule-param-wait {
-    background: url(../mui/images/ajax-loader-small.gif) no-repeat left center;
-    padding-left: 20px;
-}
-
-/*
-
-    URL Rewrite
--------------------------------------- */
-.field-entity-type-selector {
-    padding-top: 13px;
-}
-
-
-/* jstree */
-.jstree-default .disabled > a {
-    color: #a29c94;
-}
-/*  File brouser */
diff --git a/app/design/adminhtml/Magento/backend/web/less/styles/header.less b/app/design/adminhtml/Magento/backend/web/less/styles/header.less
deleted file mode 100644
index 0a665ea9240774c30f17bf6e2322660888fb066a..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/styles/header.less
+++ /dev/null
@@ -1,796 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-@import "vars";
-/*
-    Header
--------------------------------------- */
-.header {
-    position: relative;
-    background: #f5f2ea;
-    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y1ZjJlYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmMWVkZTMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-    background: -webkit-linear-gradient(top, #f5f2ea 0%, #f1ede3 100%); // Use in 4.3 Android
-    background: -ms-linear-gradient(top, #f5f2ea 0%, #f1ede3 100%); // Use in 10 IE
-    background: linear-gradient(to bottom, #f5f2ea 0%, #f1ede3 100%);
-    z-index: 992;
-    padding: 0 20px;
-}
-
-.header-inner {
-    min-width: 960px;
-    max-width: 1300px;
-    margin: 0 auto;
-    padding: 7px 0;
-}
-
-.header .logo {
-    display: block;
-    width: 109px;
-    height: 27px;
-    text-indent: -999em;
-    background: url(Magento_Backend::images/logo-magento-small.png) no-repeat;
-    margin: 0;
-}
-// /*
-//.header .logo {
-//    display: inline-block;
-//    width: 100px;
-//    height: 27px;
-//    margin: 0;
-//    text-indent: -999em;
-//    position: relative;
-//    z-index: 1;
-//}
-//
-//.header .logo:before,
-//.header .logo:after {
-//    font-family: 'admin-icons';
-//    font-size: 26px;
-//    content: '\e00d';
-//    position: absolute;
-//    bottom: 0;
-//    left: 0;
-//    text-indent: 0;
-//    line-height: 1;
-//    font-weight: normal;
-//}
-//
-//.header .logo:before {
-//    content: '\e00d';
-//    color: #f37b20;
-//}
-//
-//.header .logo:after {
-//    content: '\e00e';
-//    color: #fab57f;
-//}
-//
-//.header .logo span:before {
-//    font-family: 'admin-icons';
-//    content: '\e00f';
-//    display: block;
-//    position: absolute;
-//    top: 0;
-//    bottom: 0;
-//    left: 28px;
-//    font-size: 65px;
-//    margin-top: -17px;
-//    text-indent: 0;
-//    line-height: 1;
-//    font-weight: normal;
-//    color: #000;
-//}
-// */
-
-.header-panel {
-    float: right;
-    font-size: 12px;
-}
-
-/*
-    Header Dropdown
--------------------------------------- */
-.header-panel .dropdown-menu {
-    display: none;
-    width: 195px;
-    margin: 8px -87px 0 0;
-    border: 0;
-    border-radius: 5px;
-    box-shadow: 0 2px 7px 2px rgba(0, 0, 0, .2);
-}
-
-.header-panel .dropdown-menu > li {
-    position: relative;
-    padding: 20px 30px 13px 18px;
-    background: #f7f3eb;
-    border-bottom: 1px solid #f7e4d0;
-    white-space: normal;
-}
-
-.header-panel .dropdown-menu > li:hover {
-    background: #fff;
-}
-
-.header-panel .dropdown-menu > li:first-child:hover:before,
-.header-panel .dropdown-menu > li.first:hover:before {
-    color: #fff;
-}
-
-.header-panel .dropdown-menu > li a {
-    display: block;
-    text-decoration: none;
-    color: #8c867e;
-    margin: 0 0 10px;
-}
-
-.header-panel .dropdown-menu > li a:hover {
-    text-decoration: underline;
-}
-
-.header-panel .dropdown-menu > li:first-child,
-.header-panel .dropdown-menu > li.first {
-    border-radius: 5px 5px 0 0;
-}
-
-.header-panel .dropdown-menu > li:last-child,
-.header-panel .dropdown-menu > li.last {
-    border-bottom: 0;
-    border-radius: 0 0 5px 5px;
-}
-
-/*
-    Account
--------------------------------------- */
-.header-panel .account {
-    position: relative;
-    float: left;
-    margin: 0 0 0 30px;
-    padding: 6px 0 0;
-}
-
-.header-panel .account > a {
-    color: #656057;
-    position: relative;
-    display: inline-block;
-    min-width: 20px;
-    text-decoration: none;
-    padding: 0 10px 0 0;
-}
-
-.header-panel .account > a:before {
-    position: absolute;
-    top: 2px;
-    right: 0;
-    bottom: 0;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    font-size: 9px;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02c'; /*  icon point down */
-}
-
-.header-panel .account img {
-    position: relative;
-    border-radius: 3px;
-    z-index: 1;
-}
-
-.no-js .header-panel .account:hover > a {
-    padding-bottom: 5px;
-    margin-bottom: -5px;
-}
-
-.header-panel .account.active .dropdown-menu,
-.no-js .header-panel .account:hover .dropdown-menu,
-.no-js .header-panel .account > a:focus + .dropdown-menu {
-    display: block;
-}
-
-/*
-    Link to store front
--------------------------------------- */
-.header-panel .store-front {
-    color: #676056;
-    text-decoration: none;
-    position: relative;
-    padding: 6px 0 0 20px;
-    float: left;
-    margin: 0 0 0 30px;
-}
-
-.header-panel .store-front:before {
-    font-family: 'admin-icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e005'; /* icon store info */
-    font-size: 17px;
-    position: absolute;
-    left: 0;
-    top: 4px;
-}
-
-/*
-    Messages
--------------------------------------- */
-.header-panel .notifications {
-    position: relative;
-    float: left;
-    margin: 0 6px 0 21px;
-    padding: 9px 0 0;
-}
-
-.header-panel .notifications-icon {
-    position: relative;
-    display: inline-block;
-    height: 12px;
-    width: 17px;
-    text-decoration: none;
-    text-align: center;
-    background: #cac2b5;
-    box-shadow: 0 1px 0 #fff;
-    border-radius: 2px;
-}
-
-.header-panel .notifications-icon:hover,
-.header-panel .notifications-icon:active {
-    background: #b0a798;
-}
-
-.header-panel .notifications-icon:before {
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: -7px;
-    margin-top: -5px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e02c'; /* user icon */
-    font-size: 8px;
-    color: #cac2b5;
-    text-shadow: 0 1px 0 #fff;
-}
-
-.header-panel .notifications-icon:hover:before,
-.header-panel .notifications-icon:active:before {
-    color: #b0a798;
-}
-
-.header-panel .notifications .value {
-    .style16();
-    line-height: 11px;
-    padding: 1px 3px;
-    min-width: 10px;
-    background: #f58220;
-    border: 1px solid #bd5100;
-    border-radius: 4px;
-    box-shadow: 0 1px 0 #31302b;
-    left: 6px;
-    top: -5px;
-    position: absolute;
-}
-
-.header-panel .notifications.active .dropdown-menu {
-    display: block;
-    border: 2px solid #676056;
-    width: 288px;
-    margin: 8px -52px 0 0;
-}
-
-.header-panel .dropdown-menu > li {
-    background: #fff;
-    border-bottom: 0;
-    position: relative;
-    padding: 13px 26px 14px 16px;
-    white-space: normal;
-}
-
-.header-panel .dropdown-menu > li:after {
-    border-bottom: 1px solid #f7e4d0;
-    display: block;
-    position: absolute;
-    bottom: 0;
-    left: 2px;
-    content: '';
-    width: 284px;
-}
-
-.header-panel .dropdown-menu > li:last-child:after,
-.header-panel .dropdown-menu > li.last:after {
-    display: none;
-}
-
-.header-panel .notifications > .dropdown-menu .notification-description {
-    max-height: 43px;
-    overflow: hidden;
-    display: block;
-    .style14();
-}
-
-.header-panel .notifications > .dropdown-menu .notification-entry {
-    display: none;
-}
-
-.header-panel .notifications .dropdown-menu:before,
-.header-panel .notifications .dropdown-menu:after {
-    position: absolute;
-    width: 10px;
-    height: 10px;
-    right: 55px;
-    top: -10px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    font-size: 13px;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-    content: '\e029'; /* user icon */
-    color: #fff;
-    z-index: 2;
-}
-
-.header-panel .notifications .dropdown-menu:after {
-    color: #676056;
-    font-size: 17px;
-    height: 12px;
-    right: 57px;
-    top: -14px;
-    z-index: 1;
-}
-
-.header-panel .notifications > .dropdown-menu .notification-entry:first-child {display: block;}
-.header-panel .notifications > .dropdown-menu .notification-entry:first-child + .notification-entry {display: block;}
-.header-panel .notifications > .dropdown-menu .notification-entry:first-child + .notification-entry + .notification-entry {display: block;}
-.header-panel .notifications > .dropdown-menu .notification-entry:first-child + .notification-entry + .notification-entry + .notification-entry {display: block;}
-.header-panel .notifications > .dropdown-menu .notification-entry:first-child + .notification-entry + .notification-entry + .notification-entry + .notification-entry {display: block;}
-
-.header-panel .notifications > .dropdown-menu .notification-entry:nth-child(-n+5) {
-    display: block;
-}
-
-.header-panel .notifications > .dropdown-menu .notification-entry .notification-dialog-content {
-    display: none;
-}
-
-/*
-    Notification entry dialog
--------------------------------------- */
-
-.notification-entry-dialog .notification-dialog-content,
-.notification-entry-dialog .ui-dialog-buttonpane {
-    background: #fefaf6;
-}
-
-.notification-entry-dialog .ui-dialog-titlebar {
-    background: #f9f1e8;
-}
-
-.notification-entry-dialog .ui-dialog-title {
-    font-size: 22px;
-    padding-left: 24px;
-}
-
-.notification-entry-dialog-critical .ui-dialog-titlebar {
-    background: #fee4d0;
-}
-
-.notification-entry-dialog-critical .ui-dialog-title {
-    padding-left: 54px;
-}
-
-.notification-entry-dialog-critical .ui-dialog-title:before {
-    content: "\e086";
-    font-family: 'MUI-Icons';
-    color: #c00815;
-    font-style: normal;
-    font-weight: normal;
-    font-size: 26px;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-    left: 21px;
-    position: absolute;
-    top: 16px;
-}
-
-.notification-entry-dialog  .ui-dialog-titlebar-close:before {
-    font-size: 15px;
-}
-
-.notification-entry-dialog .notification-dialog-content {
-    padding-top: 19px;
-    padding-bottom: 16px;
-}
-
-.notification-entry-dialog .notification-dialog-content strong {
-    display: block;
-    color: #f58220;
-    font-size: 18px;
-    font-weight: 500;
-}
-
-.notification-entry-dialog .notification-dialog-content .notification-description {
-    display: block;
-    font-family: Helvetica, Arial, sans-serif;
-    font-size: 14px;
-    line-height: 1.42;
-    padding: 3px 0 7px;
-}
-
-.notification-entry-dialog .notification-dialog-content time {
-    color: #8c867e;
-    font-size: 13px;
-    font-family: Helvetica, Arial, sans-serif;
-    position: absolute;
-    right: 17px;
-    bottom: 27px;
-    text-align: right;
-}
-
-.notification-entry-dialog .notification-dialog-content .actions {
-    margin-bottom: 22px;
-}
-
-.notification-entry-dialog .notification-dialog-content .actions a {
-    color: #676056;
-    position: relative;
-    margin-right: 20px;
-}
-
-.notification-entry-dialog .notification-dialog-content .actions a:after {
-    content: "\e084";
-    font-family: 'MUI-Icons';
-    color: #6a5f54;
-    font-size: 12px;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-    position: absolute;
-    right: -17px;
-    top: -2px;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset {
-    text-align: left;
-}
-
-.notification-entry-dialog .ui-dialog-buttonpane {
-    margin: 0;
-    padding: 0 24px 22px;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset button[class^="action-"] {
-    background-image: none;
-    margin: 0 16px 0 0;
-    vertical-align: middle;
-    text-shadow: none;
-    box-shadow: none;
-    border: 0;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset .action-acknowledge {
-    background-color: #f47b20;
-    border: 0;
-    padding: 5px 15px;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset .action-acknowledge:hover {
-    background-color: #e47821;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset .action-cancel {
-    background-color: #dbd6ce;
-    border: 0;
-    padding: 5px 15px;
-}
-
-.notification-entry-dialog .ui-dialog-buttonset .action-cancel:hover {
-    background-color: #d3cdc4;
-}
-
-.header-panel .account > .dropdown-menu a,
-.header-panel .search .autocomplete-results .title {
-    display: block;
-    color: #f58220;
-    font-size: 14px;
-    font-weight: 500;
-    margin-bottom: 5px;
-}
-
-.header-panel .notifications > .dropdown-menu li > strong {
-    display: block;
-    .style33();
-    max-height: 32px;
-    overflow: hidden;
-    line-height: 1.4;
-    margin-bottom: 4px;
-}
-
-.header-panel .notifications > .dropdown-menu li.notification-critical strong {
-    padding-left: 30px;
-    position: relative;
-}
-
-.header-panel .notifications > .dropdown-menu li.notification-critical > strong:before {
-    display: block;
-    content: "\e086";
-    font-family: 'MUI-Icons';
-    color: #c00815;
-    font-size: 19px;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-    position: absolute;
-    left: 0;
-    top: 5px;
-}
-
-.header-panel .notifications > .dropdown-menu > li:hover {
-    background: #f7f3eb;
-    cursor: pointer;
-    margin-top: -1px;
-    padding-top: 14px;
-    z-index: 2;
-}
-
-.header-panel .notifications > .dropdown-menu > li:first-child:hover,
-.header-panel .notifications > .dropdown-menu > li.first:hover,
-.header-panel .notifications > .dropdown-menu > li:last-child:hover,
-.header-panel .notifications > .dropdown-menu > li.last:hover {
-    margin-top: 0;
-    padding-top: 13px;
-}
-
-.header-panel .dropdown-menu > li:hover:after {
-    display: none;
-}
-
-.header-panel .notifications > .dropdown-menu > li:hover .action-close {
-    display: block;
-}
-
-.header-panel .notifications > .dropdown-menu > .new,
-.header-panel .notifications > .dropdown-menu > .new:hover {
-    background: #f47b20;
-    color: #fff;
-}
-
-.header-panel .notifications > .dropdown-menu > li.new:first-child:before,
-.header-panel .notifications > .dropdown-menu > li.new.first:before,
-.header-panel .notifications > .dropdown-menu > li.new:first-child:hover:before,
-.header-panel .notifications > .dropdown-menu > li.new.first:hover:before {
-    color: #f47b20;
-}
-
-.header-panel .notifications > .dropdown-menu > .new strong,
-.header-panel .notifications > .dropdown-menu > .new div,
-.header-panel .notifications > .dropdown-menu > .new a,
-.header-panel .notifications > .dropdown-menu > .new time,
-.header-panel .notifications > .dropdown-menu .new .action-close:hover,
-.header-panel .notifications > .dropdown-menu .new .action-close:focus {
-    color: #fff;
-}
-
-.header-panel .notifications > .dropdown-menu time {
-    .style14();
-    display: block;
-    margin-top: 7px;
-}
-
-.header-panel .notifications > .dropdown-menu a:focus ~ .action-close,
-.header-panel .notifications > .dropdown-menu .action-close:focus {
-    display: block;
-}
-
-.header-panel .notifications > .dropdown-menu .action-close {
-    position: absolute;
-    display: none;
-    top: 8px;
-    right: 4px;
-    width: 20px;
-    height: 20px;
-    text-indent: -999em;
-    overflow: hidden;
-    color: #cac2b5;
-}
-
-.header-panel .notifications > .dropdown-menu .action-close:hover {
-    color: #b0a789;
-}
-
-.header-panel .notifications > .dropdown-menu .action-close:before {
-    display: block;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    font-size: 19px;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-    content: '\e07f'; /* trashbin icon */
-    text-indent: 0;
-}
-
-
-.header .header-panel .notifications .dropdown-menu > li.last {
-    padding: 0;
-}
-
-.header .header-panel .notifications .action-more {
-    display: block;
-    background: #676056;
-    border: 0;
-    color: #f7f3eb;
-    font-size: 13px;
-    font-weight: bold;
-    height: 23px;
-    width: 100%;
-    line-height: 23px;
-    text-shadow: none;
-    text-align: center;
-    margin: 0;
-}
-
-.header .header-panel .notifications .action-more:hover {
-    text-decoration: none;
-}
-
-/*
-    Help
--------------------------------------- */
-.header-panel .help {
-    float: left;
-    margin: 0 0 0 30px;
-    padding: 6px 0 0;
-}
-
-/*
-    Search
--------------------------------------- */
-.search {
-    position: relative;
-    float: left;
-    margin: -4px 0 -5px 50px;
-}
-
-.search form {
-    position: relative;
-}
-
-.search input {
-    position: relative;
-    display: none;
-    width: 50px;
-    height: 36px;
-    line-height: 2;
-    margin: 0;
-    padding: 4px 25px 4px 4px;
-    background: #fff;
-}
-
-.header .search .ajax-loading:before {
-    display: block;
-    content: '';
-    position: absolute;
-    top: 10px;
-    left: -20px;
-    margin: 0;
-    width: 16px;
-    height: 16px;
-    line-height: 16px;
-    background-image: url(../mui/images/ajax-loader-small.gif);
-}
-
-.header .search .mage-suggest {
-    border: none;
-}
-
-.header .search .mage-suggest::after {
-    content: '';
-}
-
-.search .dropdown-menu {
-    display: block;
-    right: auto;
-    margin-right: 0;
-    width: 100%;
-}
-
-.autocomplete-results {
-    left: 0 !important; // TODO: Because of script bug in IE9
-    right: 0;
-}
-
-.autocomplete-results .title {
-    display: block;
-}
-
-.autocomplete-results .type {
-    margin: 0 0 10px;
-}
-
-.header.active .search {
-    margin-left: 30px;
-}
-
-.header.active .search input {
-    display: inline-block;
-}
-
-.no-js .search input {
-    display: inline-block;
-    width: 350px;
-}
-
-.search button[type="submit"],
-.search button[type="submit"]:hover,
-.search button[type="submit"]:active,
-.search button[type="submit"]:focus {
-    position: absolute;
-    top: 2px;
-    right: 0;
-    width: 32px;
-    height: 32px;
-    background: none;
-    border: none;
-    overflow: hidden;
-    text-indent: -999em;
-    color: #676056;
-    text-shadow: 0 1px 0 #fff;
-    box-shadow: none;
-    filter: none;
-}
-
-.search button[type="submit"]:hover,
-.header.active .search button[type="submit"],
-.header.active .search button[type="submit"]:hover,
-.header.active .search button[type="submit"]:active,
-.header.active .search button[type="submit"]:focus {
-    color: #201f1c;
-}
-
-.eq-ie9 .search button[type="submit"] {
-    top: 4px;
-}
-
-.search button[type="submit"]:before {
-    position: absolute;
-    display: block;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e01f'; /* user icon */
-    text-indent: 0;
-    font-size: 18px;
-    line-height: 1.7;
-    text-align: center;
-}
-
-/*
-    Clearfix
--------------------------------------- */
-.header-panel:before,
-.header-panel:after,
-.header-inner:before,
-.header-inner:after,
-.clearfix:before,
-.clearfix:after {
-    content: "";
-    display: table;
-}
-
-.header-panel:after,
-.header-inner:after,
-.clearfix:after {
-    clear: both;
-}
diff --git a/app/design/adminhtml/Magento/backend/web/less/styles/pages.less b/app/design/adminhtml/Magento/backend/web/less/styles/pages.less
deleted file mode 100644
index c878077eea018ccee478b488ae2cfeb2be7e220a..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/less/styles/pages.less
+++ /dev/null
@@ -1,2009 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-@import "vars";
-
-/*
-    Product Creation
--------------------------------------- */
-
-// /* Action "Back" as cross  */
-// [class^=" catalog-product-"] .page-actions .action-back,
-// [class^=" catalog-product-"] .page-actions .action-back:hover,
-// [class^=" catalog-product-"] .page-actions .action-back:active,
-// [class^=" newsletter-"] .page-actions .action-back,
-// [class^=" newsletter-"] .page-actions .action-back:hover,
-// [class^=" newsletter-"] .page-actions .action-back:active {
-//     overflow: hidden;
-//     padding: 5px 6px 3px;
-//     margin-left: 12px;
-//     color: #7a7976;
-// }
-
-// .sales-order-create-index .page-actions-inner .cancel,
-// .sales-order-create-index .page-actions-inner .cancel:hover,
-// .sales-order-create-index .page-actions-inner .cancel:active {
-//     filter: none;
-//     border: 0;
-// }
-
-// [class^=" catalog-product-"] .page-actions .action-back:hover,
-// [class^=" newsletter-"] .page-actions .action-back:hover,
-// .sales-order-create-index .page-actions-inner .cancel:hover {
-//     color: #000;
-// }
-
-[class^=" catalog-product-"] .page-actions .action-back.mage-error,
-[class^=" newsletter-"] .page-actions .action-back.mage-error {
-    color: #b57c72;
-}
-
-// [class^=" catalog-product-"] .page-actions .action-back:before,
-// [class^=" newsletter-"] .page-actions .action-back:before,
-// .sales-order-create-index .page-actions-inner .cancel:before {
-//     display: inline-block;
-//     font-family: 'MUI-Icons';
-//     font-style: normal;
-//     speak: none;
-//     font-weight: normal;
-//     -webkit-font-smoothing: antialiased;
-//     content: '\e07d'; /* close icon */
-//     font-size: 16px;
-// }
-
-// [class^=" catalog-product-"] .page-actions .action-back span,
-// [class^=" newsletter-"] .page-actions .action-back span,
-// .sales-order-create-index .page-actions-inner .cancel span {
-//     display: inline-block;
-//     overflow: hidden;
-//     text-indent: -999em;
-// }
-
-// .page-actions .switcher {
-//     display: inline-block;
-//     vertical-align: top;
-//     margin: 6px 17px 6px 6px;
-// }
-
-.field-weight .control .field:first-child {
-    width: 36%;
-    margin-right: 15px;
-}
-
-#allow_open_amount {
-    margin-top: 8px;
-}
-
-.catalog-product-new .user-defined.type-select select,
-.catalog-product-edit .user-defined.type-select select {
-    width: 100%;
-}
-
-#tab_content_downloadableInfo .data-table td {
-    vertical-align: top;
-    .row {
-        margin-bottom: 10px;
-    }
-}
-
-/*
-    Customer
----------------------------------------*/
-.customer-index-edit .grid tr.headings th > span {
-    white-space: normal;
-}
-
-#customer_info_tabs_account_content #_accountsendemail {
-    margin-top: 8px;
-}
-
-.customer-information:before,
-.customer-information:after {
-    content: "";
-    display: table;
-}
-
-.customer-information:after {
-    clear: both;
-}
-
-.customer-information .data-table,
-.customer-information address {
-    width: 48.5%;
-}
-
-.customer-information .data-table {
-    float: left;
-    width: 48.5%;
-}
-
-.customer-information address {
-    padding-top: 4px;
-    line-height: 2.2;
-    float: right;
-}
-
-.address-list {
-    list-style: none;
-    width: 278px;
-    margin: 0 0 10px;
-    padding: 0;
-    float: left;
-}
-
-.address-list li {
-    border: 1px solid #d9d2ca;
-    background: #f7f2ec;
-    padding: 10px 10px 15px;
-    cursor: pointer;
-    margin-bottom: -1px;
-}
-
-.address-list li.ui-state-active {
-    background: #fff;
-    position: relative;
-    box-shadow: 0 1px 1px 0 rgba(217, 210, 202, 1);
-    margin-left: -2px;
-    padding-left: 12px;
-}
-
-.address-list li.ui-state-active:before,
-.address-list li.ui-state-active:after {
-    position: absolute;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    font-size: 18px;
-    color: #fff;
-    content: "\e02a";
-    speak: none;
-    line-height: 11px;
-    width: 10px;
-    right: -9px;
-    text-indent: -6px;
-    top: 50%;
-    margin-top: -5px;
-    z-index: 2;
-}
-
-.address-list li.ui-state-active:before {
-    color: #d9d2ca;
-    right: -11px;
-    z-index: 1;
-}
-
-.address-list li.address-list-actions:before,
-.address-list li.address-list-actions:after {
-    display: none;
-}
-
-.address-list li.address-list-actions {
-    padding: 20px 0 0;
-    border: 0;
-    background: none;
-    box-shadow: none;
-    cursor: default;
-}
-
-.address-list li.address-list-actions:first-child {
-    padding: 0;
-}
-
-.address-list .label {
-    float: none;
-    width: auto;
-    padding: 0 0 0 10px;
-}
-
-.address-list input[type="checkbox"] {
-    float: left;
-}
-
-.address-list address:first-line {
-    /*  its not work  if First Name and Last Name in two lines */
-    font-weight: bold;
-}
-
-.address-list address {
-    margin: 0 20px 15px 0;
-    line-height: 1.5;
-}
-
-.address-list-item-actions {
-    float: right;
-}
-
-.address-list .action-edit {
-    display: none;
-}
-
-.address-list .field {
-    margin-bottom: 15px;
-}
-
-.ui-tabs-nav .address-list-item a {
-    text-decoration: none;
-    color: #676056;
-}
-
-.address-item-edit {
-    margin-left: 277px;
-}
-
-.address-item-edit-content {
-    border: 1px solid #dad1c8;
-    background: #fff;
-    box-shadow: 0 2px 1px 0 rgba(217, 210, 202, .5);
-    padding-left: 10px;
-}
-
-.address-item-edit-content .fieldset:last-child {
-    margin-bottom: 29px;
-}
-
-.address-item-edit .legend {
-    border-bottom: 0;
-    margin: 0 0 18px;
-    padding-left: 20%;
-}
-
-.address-item-edit .legend span {
-    padding-left: 0;
-}
-
-.address-item-edit-actions {
-    padding: 0 0 18px 20%;
-}
-
-/*
-    Configuration -> Design
--------------------------------------- */
-#row_design_theme_ua_regexp .design_theme_ua_regexp {
-    float: left;
-    width: 100%;
-}
-#row_design_theme_ua_regexp .tooltip {
-    margin-top: 8px;
-}
-#row_design_theme_ua_regexp .note {
-    clear: both;
-}
-
-/*
-    Configuration -> Payment Methods
--------------------------------------- */
-.adminhtml-system-config-edit .payflow-settings-notice .important-label {
-    .style32();
-}
-
-.adminhtml-system-config-edit .payflow-settings-notice ul.options-list strong {
-    .style28();
-}
-
-/*
-    CMS -> Banners
--------------------------------------- */
-
-/* Banner Properties */
-#banner_properties_customer_segment_ids {
-    min-width: 20%;
-}
-
-/* Content */
-
-.field-store_default_content .buttons-set {
-    margin-bottom: 9px;
-}
-
-.field-store_default_content .buttons-set button {
-    margin-right: 4px;
-}
-
-.field-store_0_content_use input[type="checkbox"] {
-    margin-right: 3px;
-    position: relative;
-    top: 2px;
-}
-
-/*
-    CMS -> Manage Hierarchy
--------------------------------------- */
-
-.cms-hierarchy .cms-scope {
-    float: right;
-    margin-right: 25px;
-    position: relative;
-    top: 2px;
-}
-
-.cms-hierarchy #tree-container {
-    margin-top: 25px;
-    overflow: auto;
-    padding-bottom: 10px;
-}
-
-.cms-hierarchy .buttons-set {
-    margin-bottom: 10px;
-}
-
-.cms-hierarchy .cms-hierarchy-tree {
-    width: 48.93617020799999%;
-    float: left;
-    margin: 10px 0 8px 0;
-}
-
-.cms-hierarchy .cms-hierarchy-node {
-    width: 48.93617020799999%;
-    float: left;
-    margin: 10px 0 8px 2.127659574%;
-}
-
-.cms-hierarchy #cms_page_grid_container {
-    clear: both;
-}
-
-.cms-hierarchy .store-switcher {
-    position: relative;
-    top: 10px;
-}
-
-.cms-hierarchy .store-switcher label {
-    margin-right: 8px;
-}
-
-.cms-hierarchy-node #node_properties_fieldset #node_preview {
-    position: relative;
-    top: 6px;
-}
-
-.cms-hierarchy-node .form-inline .label {
-    width: 30%;
-}
-
-/*
-    CMS -> Widgets
--------------------------------------- */
-
-#widget_instace_tabs_properties_section_content .widget-option-label {
-    margin-top: 6px;
-}
-
-/*
-    CMS -> Static Blocks
--------------------------------------- */
-
-#buttonsblock_content.buttons-set {
-    margin-bottom: 9px;
-}
-
-#buttonsblock_content.buttons-set button {
-    margin-right: 4px;
-}
-
-/*
-    CMS -> Manage Content
--------------------------------------- */
-
-/* Content */
-
-.cms-manage-content-actions .buttons-set {
-    margin-bottom: 9px;
-}
-
-.cms-manage-content-actions .buttons-set button {
-    margin-right: 4px;
-}
-
-.cms-manage-content-actions textarea {
-    width: 100%;
-}
-
-/*
-    System -> Action Log -> Report
--------------------------------------- */
-.adminhtml-logging-details .log-details-grid table {
-    th {
-        border: 1px solid #c9c2b8;
-        border-width: 0 0 1px;
-        padding: 6px 10px 7px;
-        background: #fff;
-        .style2();
-
-        span {
-            border: 0;
-            padding: 0;
-        }
-    }
-
-    td {
-        border: none;
-        padding: 6px 10px 7px;
-        background: #fff;
-    }
-
-    tr:last-child td {
-        border: 1px solid #eae8e4;
-        border-width: 0 0 1px;
-    }
-
-    tr.on-mouse {
-        cursor: inherit;
-    }
-
-    tr:nth-child(odd) td,
-    tr.on-mouse:nth-child(odd):hover td {
-        background: #fbfaf6;
-    }
-}
-
-//
-//    System -> Roles
-// --------------------------------------
-
-#gws_container ul {
-    padding: 0;
-    margin: 0;
-    list-style: none;
-}
-
-#gws_container ul ul {
-    margin: .8em 0 .8em 1.4em;
-}
-
-#gws_container input[type="checkbox"] {
-    margin-right: 3px;
-    position: relative;
-    top: -1px;
-}
-
-//
-//    Reports
-// -------------------------------------- */
-.reports-title .page-actions {
-    float: right;
-}
-
-.reports-title .store-switcher {
-    padding: 14px 0 18px;
-}
-
-.reports-content select {
-    width: 160px;
-}
-
-.reports-content input.hasDatepicker {
-    width: 133px;
-}
-
-.reports-content .required .control {
-    position: relative;
-}
-
-.reports-content input.hasDatepicker + label.mage-error {
-    left: 0;
-    position: absolute;
-    top: 30px;
-}
-
-.reports-title:before,
-.reports-title:after {
-    content: "";
-    display: table;
-}
-
-.reports-title:after {
-    clear: both;
-}
-
-//
-//    Reports - PayPal Settlement Reports
-//--------------------------------------
-
-.adminhtml-paypal-reports-index .grid tr.headings th > span {
-    white-space: normal;
-}
-
-.adminhtml-paypal-reports-index .col-transaction_event_code {
-    max-width: 150px;
-}
-
-.adminhtml-paypal-reports-index .col-amount,
-.adminhtml-paypal-reports-index .col-fee-amount {
-    text-align: right;
-}
-
-/*
-    Newsletter Templates
--------------------------------------- */
-.newsletter-template-index .col-id {
-    width: 35px;
-}
-
-.newsletter-template-index .col-actions {
-    width: 80px;
-}
-
-.newsletter-template-index .col-type {
-    width: 100px;
-}
-
-.newsletter-template-index .col-added,
-.newsletter-template-index .col-updated {
-    width: 140px;
-}
-
-[class^=' newsletter-'] .buttons-set {
-    margin: 0 0 15px;
-}
-
-[class^=" newsletter-"] .buttons-set button {
-    margin-right: 4px;
-}
-
-/*
-    Newsletter - Queue
--------------------------------------- */
-.newsletter-queue-index .col-id {
-    width: 35px;
-}
-
-.newsletter-queue-index .col-finish,
-.newsletter-queue-index .col-start {
-    width: 130px;
-}
-
-.newsletter-queue-index .col-status,
-.newsletter-queue-index .col-processed,
-.newsletter-queue-index .col-recipients {
-    white-space: nowrap;
-    width: 85px;
-}
-
-.newsletter-queue-index td.col-processed,
-.newsletter-queue-index td.col-recipients {
-    text-align: right;
-}
-
-.newsletter-queue-index .col-actions {
-    width: 80px;
-}
-
-/*
-    Newsletter - Subscribers
--------------------------------------- */
-.newsletter-subscriber-index .col-id {
-    width: 35px;
-}
-
-.newsletter-subscriber-index .col-type {
-    width: 75px;
-}
-
-.newsletter-subscriber-index .col-status {
-    white-space: nowrap;
-    width: 85px;
-}
-
-/*
-    Newsletter - Problems
--------------------------------------- */
-.newsletter-problem-index .col-select {
-    width: 25px;
-}
-
-.newsletter-problem-index .col-id {
-    width: 35px;
-}
-
-.newsletter-problem-index .col-start {
-    width: 130px;
-}
-
-.newsletter-problem-index .col-error-code {
-    width: 150px;
-}
-
-
-.table-fieldset-alt,
-.type-options {
-    margin-bottom: 20px;
-}
-
-.table-fieldset-alt thead th,
-.table-fieldset-alt tbody tr td {
-    border-width: 0;
-}
-
-.table-fieldset-alt tbody tr:nth-child(odd) td,
-.table-fieldset-alt tbody tr:nth-child(odd):hover td {
-    background: #fff;
-}
-
-/*
-    System - Tax
---------------------------------------*/
-.tax-rate-popup .ui-dialog-content.ui-widget-content {
-    padding: 10px 10px 0;
-}
-
-.tax-rate-popup .fieldset {
-    margin: 0;
-}
-
-.tax-rate-popup .field {
-    margin-bottom: 20px;
-}
-
-.tax-rate-popup .field .label {
-    margin: 5px 0 0;
-    width: 26%;
-    padding: 0 20px 0 0;
-    float: left;
-    text-align: right;
-    box-sizing: content-box;
-}
-
-.tax-rate-popup .field .control {
-    width: 58%;
-    margin: 0;
-    float: left;
-}
-
-.tax-rate-popup .field .control select,
-.tax-rate-popup .field .control .input-text {
-    width: 100%;
-}
-
-.tax-rate-popup .field-rate .control .input-text {
-    width: 50%;
-}
-
-.tax-rate-popup .field-rate label.mage-error {
-    display: block;
-}
-
-.tax-rate-popup .tax-rate-titles-note-td {
-    margin-left: 26%;
-    padding-left: 20px;
-}
-
-.field-tax_rate,
-.field-tax_customer_class,
-.field-tax_product_class {
-    position: relative;
-}
-
-.mselect-hidden + .mage-error {
-    position: absolute;
-    top: 100%;
-}
-
-/*
-    Tags
--------------------------------------- */
-.tag-title {
-    overflow: hidden;
-}
-
-.tag-title .page-actions {
-    float: right;
-}
-
-/*
-    Attribute Mapping
--------------------------------------- */
-.field-attributes_box .control-value {
-    width: 100%;
-}
-
-.adminhtml-googleshopping-types-new #attribute_set {
-    padding: 0;
-}
-
-.adminhtml-googleshopping-types-new #gcontent_attributes_container {
-    margin-top: -6px;
-}
-
-
-/*
-    Sales
--------------------------------------- */
-
-#order-totals strong {
-    .style28();
-}
-
-#order-shipping-method-summary a {
-    .style3();
-}
-
-.order-sidebar {
-    float: left;
-    width: 22%;
-}
-
-.customer-current-activity-inner {
-    padding: 18px;
-}
-
-.order-currency {
-    padding: 18px;
-}
-.order-detail {
-}
-.order-details-existing-customer {
-    background: #fff;
-    padding-left: 0;
-    position: relative;
-    width: 77.9%;
-    float: right;
-}
-
-.order-billing-address,
-.order-billing-method,
-[class*="-order-"] .order-history,
-[class*="-order-"] .order-comments-history,
-[class*="-order-"] .order-information,
-[class*="-order-"] .order-billing-address,
-[class*="-order-"] .order-payment-method,
-[class^=" adminhtml-rma-"] .order-comments-history,
-[class^=" adminhtml-rma-"] .order-shipping-address,
-[class^=" adminhtml-rma-"] .rma-request-details {
-    float: left;
-    width: 49.5%;
-}
-
-.order-shipping-address,
-.order-shipping-method,
-[class*="-order-"] .order-totals,
-[class*="-order-"] .order-account-information,
-[class*="-order-"] .order-shipping-address,
-[class*="-order-"] .order-payment-method-virtual,
-[class*="-order-"] .order-shipping-method,
-[class^=" adminhtml-rma-"] .rma-confirmation,
-[class^=" adminhtml-rma-"] .order-shipping-method,
-[class^=" adminhtml-rma-"] .order-return-address {
-    float: right;
-    width: 49%;
-}
-
-[class*="-order-"] .order-card-validation {
-    width: 49.5%;
-    box-sizing: border-box;
-
-    .actions {
-        margin-top: 17px;
-    }
-}
-
-#order-data .order-account-information {
-    float: none;
-    width: auto;
-}
-
-[class^=" sales-"] .order-information .fieldset-wrapper > .fieldset-wrapper-title .title {
-    width: 100%;
-}
-
-#order-data .actions .action-add,
-#order-data .actions .action-delete,
-#order-customer-selector .actions .action-add {
-    margin: 0 0 0 20px;
-}
-
-#order-data .order-methods ul {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-#order-data .order-methods dl,
-#order-data .order-methods dt,
-#order-data .order-methods dd,
-#order-data .payment-methods dl,
-#order-data .payment-methods dt,
-#order-data .payment-methods dd {
-    margin: 0;
-    padding: 0;
-}
-
-#order-data .order-methods dd + dt,
-#order-data .payment-methods dd + dt {
-    margin-top: 17px;
-}
-
-#order-data .order-methods dt,
-#order-data .payment-methods dt {
-    margin: 0 0 8px;
-}
-
-.order-coupons .box-left,
-.order-gift-options .box-left {
-    float: left;
-    width: 49%;
-}
-
-.order-coupons .box-right,
-.order-gift-options .box-right {
-    float: right;
-    width: 49%;
-}
-
-.order-gift-options .box-left:last-child,
-.order-gift-options .fieldset-wrapper-title + .box-right {
-    float: none;
-    width: auto;
-}
-
-.order-gift-options {
-    fieldset {
-        border-radius: 5px;
-    }
-
-    .gift-wrapping-form select {
-        margin-left: 10px;
-    }
-
-    .giftmessage-entire-order textarea {
-        height: 6em;
-        width: 100%;
-    }
-
-    .giftmessage-whole-order-container {
-        textarea {
-            height: 6em;
-            width: 100%;
-        }
-        .actions {
-            margin-left: 20%;
-        }
-    }
-}
-
-.ui-dialog.gift-options-popup .ui-dialog-content {
-    padding: 25px;
-}
-
-.ui-dialog.gift-options-popup .ui-dialog-content h4 {
-    margin: 0 0 17px;
-}
-
-.gift-options-tooltip {
-    background: #fff;
-    border-radius: 5px;
-    padding: 10px;
-    box-shadow: 0 0 3px rgba(0, 0, 0, .3);
-}
-
-#order-data .box-left fieldset,
-#order-data .box-right fieldset {
-    border-radius: 5px;
-}
-
-.adminhtml-rma-new .order-totals,
-.order-comments-history .order-comments-history,
-[class^=" adminhtml-rma-"] .rma-comments-history {
-    float: none;
-    width: 100%;
-}
-
-[class*="-order-"] .order-billing-address .actions,
-[class*="-order-"] .order-shipping-address .actions {
-    margin: 17px 0;
-}
-
-[class*="-order-"] .order-billing-address .control + label,
-[class*="-order-"] .order-shipping-address .control + label {
-    margin: 17px 0 0;
-}
-
-.sales-order-create-index #order-message .messages .message,
-.sales-order-edit-index #order-message  .messages .message {
-    margin: 0 0 60px;
-}
-
-//
-//    Sales -> Create Order
-// --------------------------------------
-.sales-order-create-index {
-
-}
-
-.sales-order-create-index .order-items.fieldset-wrapper,
-.sales-order-create-index .order-search-items.fieldset-wrapper,
-.sales-order-create-index .order-additional-area.fieldset-wrapper,
-.sales-order-create-index .order-errors,
-.checkout-index-index .checkout-errors {
-    .fieldset-wrapper-title {
-        border-bottom: 0;
-        margin: 0;
-    }
-    .title {
-        border-bottom: 1px solid #cac3b4;
-        margin: 0 0 18px;
-        width: 100%;
-    }
-}
-
-[class*="-order-"] {
-    .fieldset-wrapper-title {
-        .actions {
-            float: right;
-            padding: 0;
-            a:link,
-            a:visited,
-            a:hover,
-            a:active {
-                color: #a29c94;
-            }
-        }
-    }
-    .order-details .fieldset-wrapper-title .actions {
-        padding-bottom: 15px;
-    }
-}
-
-.sales-order-create-index {
-    // Configure product popup
-    .ui-dialog {
-        // Virtual and downloadable product
-        .downloadable.information .link {
-            .label {
-                margin-left: 0;
-            }
-            .nested {
-                margin-left: 8px;
-            }
-        }
-        // Bundle product
-        .fieldset.bundle {
-            .nested {
-                padding-left: 6px;
-                .field {
-                    margin: 0 0 5px;
-                }
-                .label {
-                    font-size: 13px;
-                    margin: 0;
-                }
-                .qty .control {
-                    display: inline-block;
-                    margin: 0 0 0 10px;
-                    width: 60px;
-                }
-            }
-        }
-    }
-    .order-billing-method {
-        .payment-methods {
-            .fieldset {
-                padding: 0;
-                margin: 0;
-                .field {
-                    margin: 0 0 12px;
-                }
-            }
-        }
-    }
-    .grid .action-configure {
-        float: right;
-        &.disabled {
-            cursor: default;
-            opacity: .5;
-            &:hover {
-                text-decoration: none;
-            }
-        }
-    }
-    .order-items.fieldset-wrapper {
-        .clearfix();
-    }
-}
-
-.tax.summary-total .summary-collapse {
-    cursor: pointer;
-    display: inline-block;
-    &:before {
-        @iconsize: 16px;
-        content: "\e02d";
-        color: #816063;
-        background: #f2ebde;
-        display: inline-block;
-        text-indent: 0;
-        font-size: @iconsize;
-        width:@iconsize;
-        height:@iconsize;
-        line-height: @iconsize;
-        overflow: hidden;
-        font-family: 'MUI-Icons';
-        border:1px solid #ada89e;
-        font-style: normal;
-        vertical-align: top;
-        margin-right:7px;
-        font-weight: normal;
-        speak: none;
-        -webkit-font-smoothing: antialiased;
-        border-radius: 2px;
-    }
-    &:hover:before {
-        background: #cac3b4;
-    }
-}
-.tax.summary-total.show-details .summary-collapse:before {
-    content: "\e03a";
-}
-
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) td,
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(even) td,
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(even) td {
-    background:  #fbfaf6;
-}
-
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) ~ tr.row-totals:nth-child(odd) td,
-tr.row-totals:nth-child(even) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(even) ~ tr.row-totals:nth-child(odd) td,
-tr.row-totals:nth-child(odd) + tr.summary-details ~ tr.summary-total:not(.show-details):nth-child(odd) td {
-    background: #fff;
-}
-
-/* ----------------------------------- */
-
-#order-data .page-actions {
-    padding-top: 0;
-}
-
-// #order-data .store-switcher {
-//     margin: -46px 0 0;
-//     position: relative;
-//     width: 50%;
-// }
-
-.create-order-sidebar-container > div + div {
-    border-top: 1px solid #cac3b4;
-    margin-top: 35px;
-}
-
-.create-order-sidebar-container > div .head h5 {
-    .style9();
-    margin: 17px 0 17px;
-}
-
-.customer-current-activity-inner > h4 {
-    .style10();
-    border-bottom: 1px solid #cac3b4;
-    margin-top: 0;
-    padding: 0 0 16px;
-}
-
-.customer-current-activity-inner .auto-scroll {
-    margin-right: -18px;
-    margin-left: -18px;
-    .no-items {
-        padding: 5px 18px;
-        display: block;
-    }
-}
-.customer-current-activity-inner .data-table {
-    thead {
-        background-color: transparent;
-    }
-    thead th {
-        background-color: transparent;
-        .style18();
-        border: 0;
-        &:first-child {
-            padding-left: 18px;
-        }
-        &:last-child {
-            padding-right: 18px;
-        }
-    }
-    tbody tr {
-        td {
-            background-color: transparent;
-            border: 0;
-            &:first-child {
-                padding-left: 18px;
-            }
-            &:first-child {
-                padding-right: 18px;
-            }
-        }
-        &:nth-child(2n + 1) td {
-            background: #e0dace;
-        }
-    }
-}
-
-.customer-current-activity .action-refresh,
-.customer-current-activity .data-table .icon {
-    display: inline-block;
-    text-indent: 100%;
-    overflow: hidden;
-    height: 16px;
-    width: 16px;
-    line-height: 16px;
-    white-space: nowrap;
-}
-
-.customer-current-activity .action-refresh:before,
-.customer-current-activity .data-table .icon:before {
-    content: "\e010";
-    color: #c3c2be;
-    display: block;
-    text-indent: 0;
-    font-size: 16px;
-    line-height: 16px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-weight: normal;
-    speak: none;
-    -webkit-font-smoothing: antialiased;
-}
-
-.customer-current-activity .data-table .icon-remove:before {
-    content: "\e07f";
-}
-
-.customer-current-activity .data-table .icon-add:before {
-    content: "\e071";
-}
-
-.customer-current-activity .auto-scroll {
-    .style18();
-    overflow: auto;
-    max-height: 150px;
-}
-
-.customer-current-activity .auto-scroll + button {
-    margin: 22px 0 0;
-}
-
-.customer-current-activity .actions {
-    border-top: none;
-    margin: 20px 0 0;
-    padding: 0;
-}
-
-.overlay {
-    background: rgba(255, 255, 255, .5);
-    border-radius: 5px;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-
-    span {
-        color: #111;
-        font-weight: bold;
-        position: absolute;
-        top: 56px;
-        left: 0;
-        margin: 0 8px;
-        padding: 10px;
-        background: #fff;
-    }
-}
-
-//
-//    Order view
-// --------------------------------------
-
-.order-comments-history fieldset {
-    border: 0;
-    margin: 0;
-    padding: 0;
-}
-
-.order-comments-history textarea,
-.rma-history-form textarea {
-    height: 6em;
-    margin: 5px 0 10px;
-    resize: vertical;
-    width: 100%;
-}
-
-.order-comments-history input[type="checkbox"] {
-    margin-right: 5px;
-}
-
-.order-history-comments-options {
-    float: left;
-}
-
-.order-comments-history .actions {
-    float: right;
-}
-
-[class*="-order-"] .fieldset-wrapper address {
-    overflow: auto;
-}
-
-//
-//    Orders comments
-//--------------------------------------
-.note-list {
-    list-style: none;
-    padding: 0;
-    li {
-        border-top: 1px solid #ededed;
-        padding: 9px 0;
-        &:first-child {
-            border: 0;
-            padding-top: 13px;
-        }
-    }
-    div {
-        font-size: 12px;
-    }
-    .note-list-date,
-    .note-list-status,
-    .note-list-customer span {
-        font-weight: bold;
-    }
-    .note-list-time,
-    .note-list-status {
-        border-right: 1px solid #676056;
-        padding: 0 5px 0 0;
-        margin: 0 5px 0 0;
-    }
-    .note-list-customer {
-        white-space: nowrap;
-    }
-    .note-list-comment {
-        margin: 5px 0 0;
-    }
-    .note-list-customer-notapplicable {
-        color: #d87e34;
-    }
-    .note-list-customer-notified {
-        color: #185b00;
-    }
-    .note-list-customer-not-notified {
-        color: #963535;
-    }
-}
-
-[class^=" sales-"] tr.headings .col-parent-transaction-id > span,
-[class^=" sales-"] tr.headings .col-method > span,
-[class^=" sales-"] tr.headings .col-transaction-id > span,
-[class^=" sales-"] tr.headings .col-transaction-type > span,
-[class^=" sales-"] tr.headings .col-gtbase > span,
-[class^=" sales-"] tr.headings .col-gtpurchased > span,
-[class*="-order-"] tr.headings .col-discont > span {
-    white-space: normal;
-}
-
-[class^=" sales-"] .col-2-left-layout .hor-scroll {
-    margin-bottom: -4px;
-    overflow: auto;
-    padding-bottom: 4px;
-    width: 100%;
-}
-
-[class*="-order-"] .col-price .label,
-[class*="-order-"] .col-subtotal .label {
-    display: inline-block;
-    min-width: 60px;
-    white-space: nowrap;
-}
-
-[class*="-order-"] .item-options {
-    margin: 5px 0 5px 10px;
-    dt {
-        font-weight: bold;
-    }
-    dd {
-        margin: 0 0 0 10px;
-    }
-}
-
-.adminhtml-rma-item-attribute-edit .col-position input {
-    text-align: center;
-}
-
-.order-subtotal .label {
-    text-align: right;
-}
-
-.items-to-invoice {
-    border: 1px solid #c0bbaf;
-    margin-top: 13px;
-    width: 100%;
-}
-
-.items-to-invoice td,
-table.items-to-invoice tbody tr:hover td {
-    background-color: #e6e3de;
-    border: 0;
-    text-align: center;
-}
-
-[class~=" -order-creditmemo-"] .no-items {
-    padding-top: 13px;
-    text-align: center;
-}
-
-.items-to-invoice .grand-total {
-    color: #19a3d1;
-    font-weight: bold;
-}
-
-.adminhtml-order-shipment-new .order-totals .fieldset-wrapper {
-    padding-top: 18px;
-}
-
-.adminhtml-order-shipment-new .actions {
-    float: right;
-}
-
-.creditmemo-totals .data-table input[type="text"] {
-    text-align: right;
-    width: 60px;
-}
-
-[class*="-order-"] .order-subtotal .label {
-    width: 80%;
-}
-
-.adminhtml-rma-new .rma-confirmation .actions {
-    margin-top: 10px;
-    text-align: right;
-}
-
-[class^=" adminhtml-rma-"] .rma-items th.col-qty span,
-.adminhtml-rma-edit .rma-items th.col-qty span {
-    text-align: left;
-    white-space: normal;
-}
-
-.adminhtml-rma-edit .data-table .col-carrier,
-[class^=" sales-billing-agreement-"] .log-details .data-table th {
-    width: 20%;
-}
-
-.adminhtml-rma-edit .data-table .col-title {
-    width: 35%;
-}
-
-.adminhtml-rma-edit .data-table .col-number {
-    width: 25%;
-}
-
-[class*="-order-"] .order-shipping-address .price,
-.order-shipping-address .shipping-description-title {
-    font-weight: bold;
-}
-
-[class^=" adminhtml-rma-"] .col-actions a {
-    cursor: pointer;
-    white-space: nowrap;
-}
-
-[class^=" adminhtml-rma-"] .col-reason input[type="text"] {
-    margin: 5px 0 0;
-    width: 100%;
-}
-
-[class^=" adminhtml-rma-"] .col-actions .separator {
-    margin: 0 3px;
-}
-
-[class^=" sales-"] .order-payment-method .data-table {
-    margin-top: 15px;
-}
-
-[class^=" sales-"] .order-payment-currency {
-    margin-top: 15px;
-}
-
-[class^=" sales-"] .grid .data {
-    border-bottom: 1px solid #c0bbaf;
-}
-
-[class^=" sales-"] .grid td .option-label {
-    font-weight: bold;
-}
-
-[class^=" sales-"] .grid td .option-value {
-    margin: 0 0 0 10px;
-}
-
-.col-product .product_to_add {
-    float: right;
-}
-
-[class^=" adminhtml-extension-custom-"] {
-    #authors_fieldset .data-table td {
-        vertical-align: top;
-    }
-}
-
-/*
-    Packaging for Shipping Popup
--------------------------------------- */
-#popup-window-mask,
-.popup-window-mask {
-    background: rgba(0, 0, 0, .5);
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    z-index: 999;
-}
-
-.packaging-window,
-.packed-window {
-    background: #fff;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
-    left: 50%;
-    margin: -200px 0 0 -471px;
-    position: fixed;
-    top: 50%;
-    width: 1000px;
-    z-index: 1000;
-}
-
-.packaging-window .entry-edit-head {
-    padding: 3px 5px;
-}
-
-.packaging-window .messages {
-    padding: 10px 26px 10px 32px;
-    border-radius: 0;
-    color: #963535;
-    text-shadow: none;
-    position: relative;
-    background: #f3dcd8;
-    border: 1px solid #963535;
-    margin-top: -1px;
-}
-
-.packaging-window .messages:before {
-    position: absolute;
-    left: 8px;
-    top: 50%;
-    margin-top: -11px;
-    background: none;
-    text-shadow: none;
-    width: auto;
-    height: auto;
-    border: 0;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    font-size: 16px;
-    content: '\e069';
-    color: #963535;
-}
-
-.packaging-window .validation-failed {
-    background: #fef0ed;
-    border: 1px dashed #d6340e;
-}
-
-.packaging-window .packaging-content {
-    overflow: auto;
-    overflow-x: hidden;
-    height: auto !important;
-    max-height: 400px;
-}
-
-.packaging-window .package-options {
-    width: 100%;
-    border-top: 1px solid #ccc;
-    padding: 10px 0 0;
-    margin: 3px 0 0;
-}
-
-.packaging-window .package-options td {
-    vertical-align: middle;
-}
-
-.packaging-window .package-options .input-text {
-    width: 50px;
-}
-
-.packaging-window .package_prapare {
-    margin-bottom: 15px;
-}
-
-.packaging-window .package-options .customs-value {
-    width: 80px;
-}
-
-.packaging-window .package-options .options-weight {
-    width: 75px;
-}
-
-.packaging-window .package-options .options-units-weight {
-    width: 45px;
-}
-
-.packaging-window .package-options .options-units-dimensions {
-    width: 45px;
-}
-
-.packaging-window .package-options .options-content-type {
-    width: 120px;
-}
-
-.packaging-window .package-options input[type=text].disabled,
-.packaging-window .package-options select.disabled {
-    background: #eee;
-}
-
-.packaging-window .package-options-contents {
-    border-top: 0;
-}
-
-.packaging-window .package-add-products {
-    margin: 20px 0 0;
-}
-
-.packaging-window .package-add-products .grid {
-    padding: 0;
-}
-
-.packaging-window .package-add-products .grid button {
-    vertical-align: middle;
-}
-
-.packaging-window .package-number {
-    font-weight: bold;
-}
-
-.packaging-window .package-number span {
-    margin-left: 5px;
-}
-
-.packed-window .entry-edit-head {
-    padding: 3px 5px;
-}
-
-.packed-window .packed-content {
-    padding: 10px 10px 0;
-    overflow: auto;
-    max-height: 400px;
-}
-
-.packed-window .package {
-    border-top: 1px solid #ededed;
-    margin-bottom: 30px;
-    padding: 10px;
-}
-
-.packed-window .package:first-child {
-    border-top: 0;
-}
-
-.package-info {
-    background: #e6e3de;
-    border: 1px solid #c0bbaf;
-}
-
-.package-info th {
-    font-weight: bold;
-}
-
-.packed-window .package-info table tbody tr td,
-.packed-window .package-info table tbody tr th,
-.package-info table tbody tr:nth-child(2n+1) td,
-.package-info table tbody tr:nth-child(2n+1) th {
-    background: none;
-    border: 0;
-    padding: 5px 5px 2px;
-}
-
-.packed-window .package .grid {
-    padding: 0;
-}
-
-.packed-window .package-options {
-    width: 60%;
-}
-
-.packed-window .package-options td,
-.packed-window .package-options th {
-    padding: 1px 0;
-}
-
-.grid .popup-window {
-    text-align: left;
-}
-
-.grid tr.on-mouse td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(odd):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
-.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1) td,
-.grid table tbody tr.on-mouse:nth-child(2n+1):hover td .popup-window .data-table tbody tr:nth-child(2n+1):hover td,
-.grid table tbody tr.on-mouse:hover td .popup-window .data-table tbody tr:nth-child(2n+1),
-.grid table tbody tr.on-mouse:hover th .popup-window .data-table tbody tr:nth-child(2n+1) {
-    background-color: #fbfaf6;
-}
-
-.grid .popup-window {
-    text-align: left;
-}
-
-.popup-window-buttons-set {
-    text-align: right;
-    padding: 25px;
-}
-
-.popup-window-title {
-    background: #f3efea;
-    padding: 19px 20px;
-}
-
-.popup-window-title .title {
-    color: #676056;
-    display: block;
-    font-size: 20px;
-    line-height: 1;
-}
-
-.popup-window-title .actions {
-    float: right;
-}
-
-.popup-window-content {
-    padding: 25px 25px 0;
-}
-
-.popup-window-content > ul {
-    list-style: none;
-    padding: 0;
-}
-
-.packaging-window .col-weight {
-    text-align: left;
-    width: 60px;
-}
-
-.packaging-window .col-qty {
-    text-align: left;
-    width: 80px;
-}
-
-.packed-window .col-qty,
-.packed-window .col-weight,
-.packed-window .col-qty_ordered {
-    text-align: right;
-    width: 70px;
-}
-
-.packaging-window .col-select,
-.packaging-window .col-measure {
-    text-align: center;
-    width: 35px;
-}
-
-.popup-fieldset-title .title {
-    color: #666;
-    display: inline-block;
-    font-size: 18px;
-    font-weight: normal;
-    padding: 7px 0 10px;
-}
-
-.popup-fieldset-title .actions {
-    float: right;
-}
-
-.packaging-window select {
-    margin-bottom: 0;
-}
-
-.packaging-window .col-width,
-.packaging-window .col-height,
-.packaging-window .col-length,
-.packaging-window .data-table .col-total-weight input[type="text"] {
-    width: 60px;
-}
-
-.packaging-window .col-total-weight {
-    white-space: nowrap;
-    width: 100px;
-}
-
-.packaging-window .col-signature {
-    width: 160px;
-}
-
-.packaging-window .data-table .col-actions,
-.packaging-window .col-total-weight {
-    white-space: nowrap;
-}
-
-.packaging-window .data-table .action-delete {
-    margin: 5px 0 0 5px;
-}
-
-.packaging-window .grid tr th {
-    border-bottom: 1px solid #c9c2b8;
-}
-
-.packaging-window .grid tr th:first-child,
-.packaging-window .grid td:first-child,
-.packaging-window .grid td:last-child {
-    border-left: 0;
-    border-right: 0;
-}
-
-.packaging-window .data-table .col-qty-edit {
-    white-space: nowrap;
-    width: 50px;
-}
-
-.packaging-window .data-table .col-qty-edit input[type="text"] {
-    width: 50px;
-}
-
-.sp-methods > dt {
-    font-weight: bold;
-}
-
-.sp-methods > dd {
-    margin: 5px 0 5px 15px;
-}
-
-.sp-methods > dd > ul {
-    list-style: none;
-    padding: 0;
-}
-
-[class*="-order-"] .order-billing-address .packaging-window .actions,
-[class*="-order-"] .order-shipping-address .packaging-window .actions {
-    margin: 0;
-}
-
-/*
-    Popup Configuration Popup
--------------------------------------- */
-#product_composite_configure_messages {
-    margin-left: 0 !important;
-    padding: 10px 15px;
-}
-
-.rma-popup, .cms-popup {
-    background: #fff;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
-    cursor: default;
-    position: fixed;
-    left: 50%;
-    top: 50%;
-    z-index: 1000;
-}
-
-.rma-popup {
-    width: 540px;
-    margin: 0 0 0 -271px;
-}
-
-.rma-popup .entry-edit .fieldset {
-    border: none;
-}
-
-.rma-popup .validation-advice,
-.rma-popup label.mage-error {
-    margin-left: 0;
-}
-
-.rma-popup .content {
-    background: #fff;
-    border-bottom: 1px solid #ccc;
-    max-height: 400px;
-    overflow: auto;
-}
-
-.rma-popup .content .grid {
-    padding: 0;
-}
-
-.rma-popup .content .grid table {
-    border-bottom: 1px solid #cbd3d4;
-}
-
-.rma-popup .product-options {
-    border-bottom: 1px solid #e7e7e7;
-    margin: 0 0 15px;
-    padding: 0 0 12px;
-}
-
-.rma-popup .product-options .required {
-    color: #333 !important;
-    font-weight: normal !important;
-}
-
-.rma-popup .product-options .required em {
-    color: #d40707;
-}
-
-.rma-popup .last-fieldset .product-options {
-    border: 0 none;
-    margin-bottom: 0;
-    padding-bottom: 0;
-}
-
-.rma-popup .buttons-set {
-    text-align: right;
-    margin: 0;
-    overflow: hidden;
-    padding: 7px 10px 8px;
-}
-
-.rma-popup .buttons-set {
-    width: 518px;
-}
-
-.cms-popup .buttons-set {
-    width: 289px;
-}
-
-.rma-popup .buttons-set button {
-    margin: 0 0 0 5px;
-}
-
-.grid .rma-popup .form-list tr,
-.grid tr.even .rma-popup .form-list tr,
-.grid tr.on-mouse .rma-popup .form-list tr {
-    background: #fff !important;
-}
-
-/*
-    URL rewrite
--------------------------------------- */
-.adminhtml-urlrewrite-edit .field-entity-type-selector .label {
-    width: auto;
-}
-
-/*
-    Shopping Cart Price Rule
--------------------------------------- */
-.fieldset .field-coupon_code,
-.fieldset .field-rule_use_auto_generation {
-    margin-bottom: 0;
-}
-
-.field-rule_use_auto_generation .label {
-    margin-left: 5px;
-}
-
-.field-rule_use_auto_generation .nested {
-    margin-bottom: 29px;
-}
-
-/*
-    Product Image Placeholders
--------------------------------------- */
-#catalog_placeholder .input-file,
-#catalog_placeholder .delete-image > input {
-    margin-right: 5px;
-}
-
-/* Permanent Redirect for old URL */
-.control > [name="product[url_key_create_redirect]"],
-.control > [name="general[url_key_create_redirect]"] {
-    float: left;
-    margin: 8px 5px 0 0;
-}
-
-.control > [name="product[url_key_create_redirect]"] + .label,
-.control > [name="general[url_key_create_redirect]"] + .label {
-    width: auto;
-}
-
-/*
-    New Product Attribute Set
--------------------------------------- */
-.field-skeleton_set .select {
-    width: 100%;
-}
-
-#affected-attribute-set-form .fieldset .field {
-    margin-bottom: 12px;
-
-    &:last-child {
-        margin-bottom: 0;
-    }
-}
-
-/*
-    Cache Management
--------------------------------------- */
-.additional-cache-management .label {
-    margin-top: 5px;
-}
-
-/*
-    Categories
--------------------------------------- */
-.category-content .form-inline.permissions-custom-options {
-    .messages {
-        li {
-            margin-top: 0;
-        }
-    }
-    .data-table {
-        margin-bottom: 25px;
-    }
-}
-
-/*
-    Marketing - Email Reminders
--------------------------------------- */
-.lt-1280 .adminhtml-reminder-edit #customerGrid .grid .filter .range div.date {
-    min-width: 0;
-}
-
-/*
-    Customers - Manage Shopping Cart
--------------------------------------- */
-.checkout-index-index {
-    .products-search {
-        margin-top: 35px;
-        > .actions {
-            text-align: right;
-            margin: 10px 0;
-        }
-    }
-    .shopping-cart-items {
-        > .actions {
-            margin-bottom: 15px;
-        }
-        .box-left,
-        .box.right {
-            width: 49%;
-            fieldset {
-                border-radius: 5px;
-            }
-        }
-        .box-left {
-            float: left;
-        }
-        .box.right {
-            float: right;
-        }
-    }
-    .grid table .action-configure {
-        float: right;
-    }
-}
-
-/*
-    Clearfix
--------------------------------------- */
-.shopping-cart-items:before,
-.shopping-cart-items:after,
-.image-panel:before,
-.image-panel:after,
-.images:before,
-.images:after,
-.tax-rate-popup .field:before,
-.tax-rate-popup .field:after,
-.clearfix:before,
-.clearfix:after,
-#tab_content_downloadableInfo .data-table td .row:before,
-#tab_content_downloadableInfo .data-table td .row:after {
-    content: "";
-    display: table;
-}
-
-.shopping-cart-items:after,
-.image-panel:after,
-.images:after,
-.tax-rate-popup .field:after,
-.clearfix:after,
-#tab_content_downloadableInfo .data-table td .row:after {
-    clear: both;
-}
-
-@import "debug";
diff --git a/app/design/adminhtml/Magento/backend/web/mui/base.css b/app/design/adminhtml/Magento/backend/web/mui/base.css
deleted file mode 100644
index 9b3afa3baf4557b4430d68e1c66d3fdcd753de8d..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/base.css
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-@font-face {
-    font-family: 'MUI-Icons';
-    src: url('fonts/MUI-Icons.eot');
-    src: url('fonts/MUI-Icons.eot?#iefix') format('embedded-opentype'), url('fonts/MUI-Icons.svg#MUI-Icons') format('svg'), url('fonts/MUI-Icons.woff') format('woff'), url('fonts/MUI-Icons.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-/*
-    Buttons group
--------------------------------------- */
-
-.buttons-group {
-    position: relative;
-    display: inline-block;
-}
-
-.buttons-group:before,
-.buttons-group:after {
-    display: table;
-    content: "";
-}
-
-.buttons-group:after {
-    clear: both;
-}
-
-.buttons-group > button,
-.buttons-group > .button {
-    position: relative;
-    float: left;
-    margin-left: -1px;
-    border-radius: 0;
-}
-
-.buttons-group > button:first-child,
-.buttons-group > .button:first-child {
-    margin-left: 0;
-    border-bottom-left-radius: 4px;
-    border-top-left-radius: 4px;
-}
-
-.buttons-group > button:last-child,
-.buttons-group > .button:last-child,
-.buttons-group > [data-toggle="dropdown"] {
-    border-top-right-radius: 4px;
-    border-bottom-right-radius: 4px;
-}
-
-.buttons-group-vertical > .button {
-    float: none;
-    display: block;
-    margin-left: 0;
-    margin-top: -1px;
-}
-
-.buttons-group-vertical > input[type=button],
-.buttons-group-vertical > input[type=submit],
-.buttons-group-vertical > input[type=reset],
-.buttons-group-vertical > button {
-    width: 100%;
-}
-
-.buttons-group-vertical > .button:first-child {
-    margin-top: 0;
-    border-radius: 4px 4px 0 0;
-}
-
-.buttons-group-vertical > .button:last-child {
-    border-radius: 0 0 4px 4px;
-}
-
-/*
-    Forms
--------------------------------------- */
-
-fieldset {
-    border: 1px solid #ccc;
-    padding: 20px;
-}
-
-legend {
-    padding: 0 10px;
-    margin: 0 -10px;
-}
-
-fieldset legend + br {
-    display: none;
-}
-
-label {
-    display: inline-block;
-}
-
-label > input[type="radio"],
-label > input[type="checkbox"] {
-    margin: -3px 3px 0 0;
-    vertical-align: middle;
-}
-
-input[type=text],
-input[type=password],
-input[type=datetime],
-input[type=datetime-local],
-input[type=date],
-input[type=month],
-input[type=time],
-input[type=week],
-input[type=number],
-input[type=range],
-input[type=email],
-input[type=url],
-input[type=search],
-input.search,
-input[type=tel],
-input[type=color],
-textarea,
-.input-text {
-    display: inline-block;
-    padding: 4px;
-    margin: 0 0 8px;
-    background-color: #fff;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-}
-
-textarea,
-.input-text {
-    height: auto;
-}
-
-select {
-    padding: 4px;
-    margin: 0 0 8px;
-}
-
-select[multiple],
-select[size] {
-    height: auto;
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-    margin: 3px 0;
-    line-height: normal;
-}
-
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-    cursor: not-allowed;
-}
-
-/*
-    Blockquotes
--------------------------------------- */
-blockquote {
-    border-left: 2px solid #ccc;
-    padding-left: 5px;
-}
-
-blockquote small:before {
-    content: '\2014 \00A0';
-}
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/all.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/all.less
similarity index 86%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/all.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/all.less
index 9d68e9f4dd01bb219542dc11350e356def4b24d7..e2cdae6f1cdcff65fb5133948dda25e49cbb7873 100644
--- a/app/design/adminhtml/Magento/backend/web/less/clearless/all.less
+++ b/app/design/adminhtml/Magento/backend/web/mui/clearless/all.less
@@ -8,10 +8,7 @@
 // ==============================================
 
 @import "settings";
-@import "typography";
-@import "resets";
 @import "helpers";
 @import "sprites";
 @import "icons";
 @import "arrows";
-@import "grids";
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/arrows.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/arrows.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/arrows.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/arrows.less
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/helpers.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/helpers.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/helpers.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/helpers.less
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/icons.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/icons.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/icons.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/icons.less
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/settings.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/settings.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/settings.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/settings.less
diff --git a/app/design/adminhtml/Magento/backend/web/less/clearless/sprites.less b/app/design/adminhtml/Magento/backend/web/mui/clearless/sprites.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/less/clearless/sprites.less
rename to app/design/adminhtml/Magento/backend/web/mui/clearless/sprites.less
diff --git a/app/design/adminhtml/Magento/backend/web/mui/components.css b/app/design/adminhtml/Magento/backend/web/mui/components.css
deleted file mode 100644
index d65615b3f2b33ab73095427c969cce0eee78e168..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/components.css
+++ /dev/null
@@ -1,261 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/* =============================================================================
-   Sorter
-   ========================================================================== */
-.sorter {
-    line-height: 25px;
-    padding: 5px 0;
-    border:solid #999;
-    border-width: 1px 0;
-}
-.view-mode {
-    margin: 0;
-    float: left;
-    white-space: nowrap;
-}
-.sort-by {
-    float: right;
-    white-space: nowrap;
-    line-height: normal;
-}
-.sort-by select {
-    width: auto;
-    margin: 0;
-}
-.sort-by a {
-    display: inline-block;
-    width: 8px;
-    height: 11px;
-    margin: 0 0 0 3px;
-    text-decoration: none;
-    color: #000;
-    text-indent: -9999px;
-    background: url(images/sorter-bg.png) no-repeat 0 0;
-}
-.sort-by a:hover {
-    background-position: 0 -12px;
-}
-.sort-asc a {
-    background-position: -9px 0;
-}
-.sort-asc a:hover {
-    background-position: -9px -12px;
-}
-.view-icons strong,
-.view-icons a {
-    width: 15px;
-    height: 15px;
-    display: inline-block;
-    text-indent: -9999px;
-    line-height: normal;
-    background: url(images/view-mode-bg.png) no-repeat 0 0;
-}
-.view-icons strong.view-list {
-    background-position: -16px 0;
-}
-.view-icons a.view-grid {
-    background-position: 0 -16px;
-}
-.view-icons a.view-grid:hover {
-    background-position: 0 -32px;
-}
-.view-icons a.view-list {
-    background-position: -16px -16px;
-}
-
-.view-icons a.view-list:hover {
-    background-position: -16px -32px;
-}
-.sorter:after {
-    content:"";
-    display:table;
-    clear: both;
-}
-
-
-
-
-/* =============================================================================
-   Footer Blocks
-   ========================================================================== */
-.footer-links {
-    margin-bottom: 12px;
-}
-.switcher {}
-.switcher ul {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-}
-.switcher .current {
-    display: none;
-}
-.copyrights {
-    display: block;
-    margin: 12px 0;
-}
-.bug-report {
-    margin: 12px 0;
-}
-
-
-
-
-/* =============================================================================
-   Simple Block
-   ========================================================================== */
-.block {}
-.block-title,
-.block-list > li,
-.block-footer {
-    padding:5px 0;
-}
-.block-subtitle {
-    margin:5px 0;
-    font-weight:bold;
-}
-.block-list {
-    list-style:none;
-    padding:0;
-}
-.block-footer:after {
-    content:'';
-    width:100%;
-    display:table;
-    clear:both;
-}
-
-/* =============================================================================
-   Auth, User Block (Login, Register Pages)
-   ========================================================================== */
-.block-user {
-    margin:0 0 15px 0;
-}
-.block-user .block-title {
-    text-transform:uppercase;
-}
-.block-user .forgot-link {
-    display:inline-block;
-    margin:7px 0 5px;
-}
-.block-user .block-footer .button {
-    float:right;
-}
-.block-user .block-content {
-    padding-top:12px;
-}
-.block-user .block-content p {
-    margin-top:0;
-}
-.block-login .block-content {
-    min-height:150px;
-}
-
-/* =============================================================================
-   Logo
-   ========================================================================== */
-/* @MOVED to theme module styles
-
-.logo {
-    float:left;
-    margin:0 0 10px 0;
-    text-decoration:none;
-}
-a.logo {
-    color:#000;
-    font-size:34px;
-    font-weight:bold;
-}
-.logo strong {
-    display:none;
-}*/
-
-/* =============================================================================
-   Search Form
-   ========================================================================== */
-.form-search {
-    margin:0 0 10px 0;
-}
-.form-search label {
-    vertical-align:top;
-}
-.form-search input[type=search],
-.form-search input.search {
-    margin-bottom:0;
-    min-width:160px;
-}
-.form-search strong {
-    display:none;
-}
-.search-form-submit {
-
-}
-
-/* =============================================================================
-   Quick access links
-   ========================================================================== */
-.quick-access {
-    float:right;
-    margin:12px 0 0 0;
-}
-.quick-access .nav > ul > li {
-    margin:0 22px 0 0;
-}
-.quick-access .nav > ul > li:after {
-    content:'';
-}
-.quick-access .items-qty {
-    font-size:11px;
-}
-.quick-access .nav > .button {
-    margin:-3px 0 0 0;
-}
-.welcome-msg {}
-.quick-access-links {}
-.quick-access-links ul {}
-.quick-access-links li {}
-.quick-access-links a {}
-
-/* =============================================================================
-   Header
-   ========================================================================== */
-.page-header {}
-.page-header .arrow {
-    margin:0 0 0 3px;
-    cursor:pointer;
-    color:#919191;
-    font-size:9px;
-    vertical-align:middle;
-}
-.page-header-inner {}
-.page-header-inner:after {
-    content:'';
-    display:table;
-    width:100%;
-}
-.menu-top {
-    list-style:none;
-    margin:0 0 10px 0;
-}
-.menu-top li {
-    display:inline-block;
-    margin:0 25px 0 0;
-}
-.menu-top li a {
-    text-decoration:underline;
-}
-.menu-top li a span {
-    text-transform:none;
-}
-.menu-top dl {}
-.menu-top dt {
-    display:inline;
-}
-.menu-top dd {
-    display:inline;
-    margin:0 25px 0 0;
-}
diff --git a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.eot b/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.eot
deleted file mode 100644
index 47cc307843c7f9a821ccb35579a0d17babe3662e..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.eot and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.svg b/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.svg
deleted file mode 100644
index dddb55583c5504630c601f7616c8bec3fdf7514f..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.svg
+++ /dev/null
@@ -1,706 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="MUI-Icons" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph unicode="&#xe001;" d="M 470.70,72.193l-2.688,2.688l 0.006,0.002L 360.505,182.408c 14.938,25.732, 23.612,55.564, 23.816,87.451
-						c 0.626,97.615-77.986,177.243-175.599,177.857c-0.394,0.001-0.771,0.002-1.168,0.002
-						c-97.06-0.006-176.063-78.391-176.688-175.598c-0.618-97.609, 77.999-177.236, 175.597-177.859
-						c 0.389-0.002, 0.766-0.004, 1.155-0.004c 32.438,0.00, 62.846,8.79, 88.998,24.075l 107.415-107.433l 0.014,0.01l 2.688-2.688
-						c 8.125-8.123, 21.293-8.114, 29.41,0.00l 34.562,34.557C 478.819,50.895, 478.822,64.07, 470.70,72.193z M 300.39,177.58
-						c-24.834-24.67-57.78-38.252-92.768-38.252l-0.874,0.00 c-72.589,0.467-131.271,59.908-130.813,132.503
-						c 0.465,72.128, 59.516,130.811, 131.626,130.815l 0.879-0.002c 35.168-0.22, 68.146-14.123, 92.852-39.148
-						c 24.706-25.025, 38.188-58.178, 37.966-93.352C 339.031,235.128, 325.229,202.25, 300.39,177.58zM 223.902,351.597L 192.104,351.597L 192.104,287.997L 128.503,287.997L 128.503,256.203L 192.104,256.203L 192.104,192.604L 223.902,192.604L 223.902,256.203L 287.501,256.203L 287.501,287.997L 223.902,287.997 					z"  />
-<glyph unicode="&#xe002;" d="M 466.996,351.685c-3.893,12.271-9.538,21.313-21.31,21.313c0.00,0.00-80.181,11.00-189.351,11.00c-109.169,0.00-188.677-11.00-188.677-11.00
-					c-11.77,0.00-16.889-8.316-21.313-21.313c0.00,0.00-13.67-31.687-13.67-127.685s 13.67-131.685, 13.67-131.685
-					c 5.282-11.107, 9.543-21.313, 21.313-21.313c0.00,0.00, 92.343-7.00, 188.34-7.00s 189.688,9.00, 189.688,9.00c 11.771,0.00, 18.218,10.248, 21.31,21.313
-					c0.00,0.00, 13.00,49.185, 13.00,129.185S 466.996,351.685, 466.996,351.685z M 192.002,134.882L 192.002,313.118 L 346.358,224.00L 192.002,134.882z" />
-<glyph unicode="&#xe003;" d="M 259.559,206.271L 198.73,29.528c 18.165-5.344, 37.372-8.263, 57.27-8.263c 23.607,0.00, 46.25,4.077, 67.32,11.492
-					c-0.539,0.868-1.039,1.793-1.451,2.795L 259.559,206.271z M 392.855,234.231c0.00,25.062-9.006,42.404-16.719,55.904
-					c-10.273,16.708-19.912,30.844-19.912,47.551c0.00,18.63, 14.131,35.979, 34.045,35.979c 0.896,0.00, 1.754-0.108, 2.625-0.165
-					c-36.064,33.048-84.119,53.225-136.896,53.225c-70.82,0.00-133.128-36.34-169.375-91.37c 4.757-0.153, 9.241-0.244, 13.044-0.244
-					c 21.196,0.00, 54.027,2.576, 54.027,2.576c 10.929,0.639, 12.213-15.416, 1.30-16.707c0.00,0.00-10.985-1.282-23.198-1.929l 73.815-219.589
-					l 44.372,133.051l-31.584,86.541c-10.92,0.645-21.262,1.926-21.262,1.926c-10.927,0.646-9.646,17.347, 1.288,16.707
-					c0.00,0.00, 33.47-2.576, 53.39-2.576c 21.199,0.00, 54.031,2.576, 54.031,2.576c 10.93,0.64, 12.217-15.414, 1.297-16.707
-					c0.00,0.00-11.00-1.281-23.203-1.926l 73.262-217.916l 20.23,67.559C 386.182,196.747, 392.855,216.881, 392.855,234.231z M 357.918,48.78
-					c 60.27,35.14, 100.803,100.438, 100.803,175.227c0.00,35.246-9.004,68.381-24.83,97.254c 0.871-6.455, 1.365-13.382, 1.365-20.847
-					c0.00-20.563-3.854-43.688-15.416-72.608L 357.918,48.78z M 53.28,224.007c0.00-80.24, 46.624-149.592, 114.259-182.448l-96.705,264.95
-					C 59.581,281.298, 53.28,253.397, 53.28,224.007z M 255.996-19.985c-134.53,0.00-243.98,109.457-243.98,243.993
-					c0.00,134.527, 109.448,243.978, 243.98,243.978c 134.528,0.00, 243.988-109.449, 243.988-243.978
-					C 499.986,89.472, 390.526-19.985, 255.996-19.985z" />
-<glyph unicode="&#xe004;" d="M 511.998,192.10L 224.002,192.10L 224.002,7.489L 511.998-32.01 
-											zM 192.002,192.10L-0.012,192.10L-0.012,39.671L 192.002,10.416 
-											zM 192.002,406.668L-0.012,377.284L-0.012,223.598L 192.002,223.598 
-											zM 511.998,223.598L 511.998,447.50L 224.002,409.463L 224.002,223.598 
-											z" />
-<glyph unicode="&#xe005;" d="M 206.569,224.042c-23.637,12.147-46.615,18.31-68.313,18.31c-2.951,0.00-5.921-0.088-8.892-0.35
-					c-27.686-2.292-52.974-9.595-69.239-15.273c-4.314-1.584-8.736-3.258-13.292-5.106L 2.331,67.344
-					c 30.569,11.313, 57.616,16.814, 82.378,16.814c 40.054,0.00, 69.128-14.966, 93.14-30.373c 11.376,38.604, 38.667,131.833, 46.812,159.694
-					C 218.738,217.089, 212.731,220.697, 206.569,224.042z M 264.10,184.824l-44.812-155.644c 13.294-7.615, 58.017-31.732, 92.259-31.732
-					c 27.641,0.00, 58.588,7.082, 94.547,21.695l 42.786,149.614c-29.05-9.375-56.915-14.131-82.97-14.131
-					C 318.371,154.627, 285.096,170.035, 264.10,184.824z M 147.409,294.954c 38.208-0.396, 66.464-14.967, 89.882-29.976l 45.954,157.227
-					c-9.685,5.547-35.081,19.369-53.438,24.079c-12.082,2.816-24.782,4.269-38.251,4.269c-25.663-0.483-53.701-6.909-85.657-19.719
-					L 62.082,276.949c 32.109,12.107, 59.773,18.005, 85.259,18.005C 147.364,294.954, 147.409,294.954, 147.409,294.954z M 509.669,379.509
-					c-29.14-11.313-57.575-17.076-84.735-17.076c-45.426,0.00-78.922,15.756-100.623,30.899l-45.556-157.67
-					c 30.592-19.672, 63.561-29.666, 98.158-29.666c 28.215,0.00, 57.442,6.776, 86.933,20.158l-0.091,1.102l 1.851,0.438L 509.669,379.509z" />
-<glyph unicode="&#xe006;" d="M 497.573,54.108L 268.433,440.634c-2.945,5.237-8.634,8.138-14.595,7.183c-4.403-0.699-8.153-3.409-10.269-7.183
-							L 14.429,54.108c-2.514-4.467-2.518-10.199,0.00-14.646c 2.553-4.506, 7.277-7.46, 12.423-7.46l 458.294,0.00 
-							c 5.135,0.00, 9.876,2.954, 12.428,7.46C 500.087,43.909, 500.087,49.642, 497.573,54.108z M 61.171,64.149L 256.00,395.105
-							l 194.557-330.956L 61.171,64.149 zM 257.251,138.854c-13.655,0.00-24.724-11.319-24.724-25.289c0.00-13.971, 11.068-25.29, 24.724-25.29
-							s 24.724,11.319, 24.724,25.29C 281.975,127.535, 270.906,138.854, 257.251,138.854zM 239.835,160.002L 272.693,160.002L 279.811,319.998L 232.729,319.998 						z" />
-<glyph unicode="&#xe007;" d="M 428.26,271.336c-17.425,0.00-164.791,0.00-164.791,0.00s 12.625,48.421, 17.183,81.404
-											c 4.653,33.547-5.064,60.663-5.064,60.663s-16.546,42.303-21.052,44.116c-27.224,10.979-41.333-4.307-41.333-4.307
-											s0.00-62.789,0.00-71.317c0.00-7.919-1.445-13.601-1.445-13.601s-68.23-106.349-76.179-114.113
-											c-7.955-7.778-39.428-22.117-39.428-22.117s0.00-175.948,0.00-192.961c 1.949-3.057, 33.037,1.104, 33.831-5.85
-											c 0.788-6.943, 35.429-33.252, 35.429-33.252s 163.579,0.00, 181.953,0.00s 49.90,8.939, 54.987,20.781
-											c 8.712,20.289-2.082,33.68-1.728,39.291c 0.357,5.609, 27.639,9.498, 27.639,33.52c 3.612,29.285-14.391,27.271-13.421,34.07
-											c 0.98,6.801, 22.257,9.203, 26.379,24.717c 3.155,11.947, 5.866,34.635-12.967,44.708
-											C 490.329,218.555, 458.143,271.336, 428.26,271.336z" />
-<glyph unicode="&#xe008;" d="M 428.26,250.91c 18.83,10.072, 16.122,32.761, 12.968,44.708c-4.123,15.515-25.402,17.917-26.38,24.717
-											c-0.973,6.799, 17.033,4.783, 13.421,34.069c0.00,24.023-27.281,27.912-27.636,33.521c-0.354,5.609, 10.437,19.003, 1.725,39.29
-											c-5.087,11.844-36.612,20.782-54.987,20.782c-18.374,0.00-181.953,0.00-181.953,0.00s-34.638-26.308-35.429-33.25
-											c-0.794-6.955-31.882-2.792-33.831-5.85c0.00-17.015,0.00-192.964,0.00-192.964s 31.474-14.338, 39.428-22.117
-											c 7.948-7.764, 76.183-114.111, 76.183-114.111s 1.441-5.684, 1.441-13.60c0.00-8.529,0.00-71.318,0.00-71.318
-											s 14.109-15.285, 41.333-4.309c 4.508,1.814, 21.053,44.117, 21.053,44.117s 9.718,27.115, 5.067,60.66
-											c-4.559,32.984-17.187,81.404-17.187,81.404s 147.366,0.00, 164.792,0.00C 458.143,176.662, 490.329,229.444, 428.26,250.91z" />
-<glyph unicode="&#xe009;" d="M 479.194,328.27c-25.192-141.915-165.958-262.095-208.297-289.552c-42.348-27.455-80.973,10.994-94.983,40.054
-					c-16.035,33.166-64.104,212.868-76.683,227.765c-12.585,14.866-50.354-14.896-50.354-14.896L 30.56,315.658
-					c0.00,0.00, 76.695,91.58, 135.047,103.026c 61.872,12.141, 61.781-95.006, 76.663-154.485c 14.389-57.542, 24.063-90.471, 36.626-90.471
-					c 12.591,0.00, 36.636,32.096, 62.947,81.286c 26.363,49.242-1.139,92.74-52.649,61.791C 309.804,440.436, 504.375,470.161, 479.194,328.27z" />
-<glyph unicode="&#xe00a;" d="M 352.264,277.059l0.00-106.112 L 480.00,95.498L 480.00,351.497 L 352.264,277.059z M 299.569,351.497L 53.988,351.497 
-										c-11.77,0.00-21.313-9.542-21.313-21.313l0.00-212.869 c0.00-11.771, 9.543-21.313, 21.313-21.313l 245.581,0.00 
-										c 11.771,0.00, 21.31,9.537, 21.31,21.313L 320.879,330.184 C 320.876,341.955, 311.341,351.497, 299.569,351.497" />
-<glyph unicode="&#xe00b;" d="M 412.316,125.949c-20.918,8.813-76.904,30.871-82.859,32.495c-7.107,4.888-14.07,21.151-17.877,29.236
-				c-3.789,0.544-7.574,1.087-11.377,1.624c 0.586,12.514, 8.334,13.182, 11.377,22.742c 2.676,8.432, 0.279,19.387, 4.527,27.197
-				c 2.945,5.422, 9.617,5.457, 12.949,10.104c 3.02,4.216, 5.016,11.567, 5.955,16.732c 1.715,9.441, 3.217,22.354-1.268,31.716
-				c-2.57,5.38-4.199,5.897-4.918,12.426c-0.867,7.914, 2.332,33.72, 2.467,39.30c 0.326,14.477-0.025,15.654-3.527,29.754
-				c0.00,0.00-4.254,12.773-10.924,16.631L 303.547,398.20l-8.217,7.615c-33.106,20.365-68.602,6.081-87.613-1.623
-				c-27.389-8.893-44.709-35.711-32.618-93.018c 2.063-9.789-5.361-14.164-4.877-19.502c 1.062-11.678, 1.287-39.758, 12.322-46.672
-				c 1.024-0.642, 8.854-2.605, 8.803-2.068c 1.085-11.375, 2.167-22.754, 3.247-34.125c 2.756-7.553, 9.366-8.383, 11.288-19.063
-				l-8.459-2.063c-3.802-8.085-10.771-24.341-17.876-29.236c-5.955-1.624-61.941-23.683-82.861-32.495
-				c-19.05-8.036-34.543-21.347-34.543-47.359c0.00-26.015-0.388-29.216-0.058-45.959l 384.914-0.918
-				c0.00,17.815, 0.059,33.315, 0.059,46.877C 447.057,102.137, 431.367,117.913, 412.316,125.949zM 493.723,177.562c-11.002,4.635-40.446,16.237-43.581,17.091c-3.737,2.57-7.399,11.124-9.401,15.376
-				c-1.993,0.286-3.983,0.572-5.983,0.854c 0.307,6.581, 4.383,6.934, 5.983,11.961c 1.407,4.434, 0.147,10.197, 2.382,14.305
-				c 1.55,2.852, 5.058,2.87, 6.812,5.314c 1.587,2.218, 2.638,6.084, 3.131,8.80c 0.901,4.966, 1.691,11.758-0.667,16.682
-				c-1.353,2.829-2.208,3.101-2.585,6.535c-0.459,4.163, 1.225,17.735, 1.297,20.67c 0.171,7.615-0.013,8.233-1.856,15.649
-				c0.00,0.00-2.236,6.718-5.746,8.748l-6.99,1.206l-4.322,4.005c-17.412,10.711-36.081,3.198-46.081-0.854
-				c-14.404-4.677-23.515-18.782-17.154-48.923c 1.085-5.148-2.82-7.45-2.566-10.257c 0.559-6.143, 0.676-20.912, 6.481-24.548
-				c 0.538-0.337, 4.655-1.37, 4.629-1.087c 0.571-5.983, 1.14-11.967, 1.708-17.947c 1.449-3.973, 4.927-4.409, 5.938-10.027l-4.448-1.085
-				c-2.00-4.252-5.665-12.802-9.402-15.376c-1.837-0.501-12.729-4.70-23.643-9.022c-2.173-0.861, 2.669-8.846, 14.237-12.501
-				c 40.043-12.647, 94.992-44.956, 94.992-44.956l 55.079-0.176c0.00,9.37, 0.032,17.522, 0.032,24.655
-				C 511.996,165.037, 503.744,173.335, 493.723,177.562zM 18.275,177.562c 11.002,4.635, 40.447,16.237, 43.581,17.091c 3.738,2.57, 7.40,11.124, 9.402,15.376
-				c 1.993,0.286, 3.983,0.572, 5.983,0.854c-0.307,6.581-4.383,6.934-5.983,11.961c-1.407,4.434-0.147,10.197-2.382,14.305
-				c-1.549,2.852-5.058,2.87-6.811,5.314c-1.588,2.218-2.639,6.084-3.132,8.80c-0.902,4.966-1.691,11.758, 0.667,16.682
-				c 1.353,2.829, 2.209,3.101, 2.586,6.535c 0.458,4.163-1.227,17.735-1.297,20.67c-0.171,7.615, 0.013,8.233, 1.856,15.649
-				c0.00,0.00, 2.237,6.718, 5.746,8.748l 6.992,1.206l 4.321,4.005c 17.413,10.711, 36.082,3.198, 46.081-0.854
-				c 14.405-4.677, 23.515-18.782, 17.155-48.923c-1.085-5.148, 2.82-7.45, 2.565-10.257c-0.559-6.143-0.676-20.912-6.48-24.548
-				c-0.539-0.337-4.657-1.37-4.63-1.087c-0.571-5.983-1.141-11.967-1.708-17.947c-1.449-3.973-4.926-4.409-5.937-10.027l 4.449-1.085
-				c 2.00-4.252, 5.665-12.802, 9.402-15.376c 1.837-0.501, 12.729-4.70, 23.642-9.022c 2.174-0.861-2.667-8.846-14.237-12.501
-				c-40.042-12.647-94.991-44.956-94.991-44.956l-55.081-0.176c0.00,9.37-0.031,17.522-0.031,24.655
-				C 0.002,165.037, 8.254,173.335, 18.275,177.562z" />
-<glyph unicode="&#xe00c;" d="M 461.996,351.998L 273.498,351.998 L 238.50,351.998 L 50.002,351.998 c-9.941,0.00-18.00-8.059-18.00-18.00l0.00-251.996 c0.00-9.941, 8.059-18.00, 18.00-18.00c0.00,0.00, 60.537,0.00, 67.082,0.00
-					s 10.918,4.455, 10.918,10.824c0.00,4.139,0.00,8.244,0.00,10.467c0.00,5.588-4.325,10.721-9.813,10.721c-3.684,0.00-7.893,0.00-11.67,0.00
-					c-6.102,0.00-10.514,4.307-10.514,10.203c0.00,4.529,0.00,5.345,0.00,11.125s 3.349,10.66, 10.514,10.66c 3.366,0.00, 17.463,0.00, 33.267,0.00
-					c 2.776,0.00, 5.604,0.00, 8.437,0.00c 15.804,0.00, 29.90,0.00, 33.267,0.00c 7.165,0.00, 10.514-4.88, 10.514-10.66s0.00-6.596,0.00-11.125
-					c0.00-5.896-4.412-10.203-10.514-10.203c-3.777,0.00-7.986,0.00-11.67,0.00c-5.488,0.00-9.813-5.133-9.813-10.721c0.00-2.119,0.00-5.949,0.00-9.889
-					c0.00-4.417, 3.161-11.402, 9.888-11.402c 2.066,0.00, 30.587,0.00, 69.107,0.00c 11.868,0.00, 23.317,0.00, 33.999,0.00c 38.52,0.00, 67.04,0.00, 69.106,0.00
-					c 6.727,0.00, 9.888,6.985, 9.888,11.402c0.00,3.939,0.00,7.77,0.00,9.889c0.00,5.588-4.325,10.721-9.813,10.721c-3.684,0.00-7.893,0.00-11.67,0.00
-					c-6.102,0.00-10.514,4.307-10.514,10.203c0.00,4.529,0.00,5.345,0.00,11.125s 3.349,10.66, 10.514,10.66c 3.366,0.00, 17.463,0.00, 33.267,0.00
-					c 2.833,0.00, 5.66,0.00, 8.437,0.00c 15.804,0.00, 29.90,0.00, 33.267,0.00c 7.165,0.00, 10.514-4.88, 10.514-10.66s0.00-6.596,0.00-11.125
-					c0.00-5.896-4.412-10.203-10.514-10.203c-3.777,0.00-7.986,0.00-11.67,0.00c-5.488,0.00-9.813-5.133-9.813-10.721c0.00-2.223,0.00-6.328,0.00-10.467
-					c0.00-6.369, 4.373-10.824, 10.918-10.824s 67.082,0.00, 67.082,0.00c 9.941,0.00, 18.00,8.059, 18.00,18.00L 480.00,333.998 
-					C 479.996,343.938, 471.938,351.998, 461.996,351.998z M 222.797,160.861l-7.598,0.00 c 0.001,6.537, 0.022,12.242, 0.022,17.241
-					c0.00,8.832-5.885,14.749-13.03,17.763c-7.848,3.307-28.846,11.579-31.08,12.188c-2.667,1.834-5.28,7.935-6.706,10.968
-					c-1.421,0.203-2.84,0.407-4.267,0.607c 0.219,4.693, 3.126,4.947, 4.267,8.532c 1.003,3.162, 0.104,7.271, 1.698,10.20
-					c 1.105,2.035, 3.607,2.048, 4.858,3.791c 1.131,1.582, 1.881,4.339, 2.232,6.277c 0.645,3.541, 1.208,8.384-0.474,11.896
-					c-0.965,2.017-1.576,2.211-1.846,4.66c-0.325,2.97, 0.875,12.648, 0.926,14.742c 0.122,5.431-0.01,5.872-1.323,11.16
-					c0.00,0.00-1.596,4.792-4.098,6.238l-4.986,0.86l-3.082,2.856c-12.417,7.638-25.731,2.281-32.863-0.608
-					c-10.272-3.336-16.77-13.396-12.234-34.89c 0.774-3.672-2.011-5.313-1.829-7.315c 0.397-4.38, 0.482-14.913, 4.622-17.506
-					c 0.383-0.24, 3.32-0.977, 3.301-0.776c 0.407-4.266, 0.813-8.535, 1.219-12.799c 1.033-2.833, 3.513-3.144, 4.233-7.149l-3.172-0.774
-					c-1.427-3.033-4.041-9.13-6.706-10.968c-2.233-0.608-23.233-8.881-31.08-12.188c-7.145-3.014-12.956-8.007-12.956-17.763
-					c0.00-9.759-0.145-10.958-0.022-17.239l 0.818-0.002l-7.482,0.00 L 64.159,319.50 l 158.638,0.00 L 222.797,160.861 z M 447.996,192.002L 256.002,192.002 l0.00,20.896 l 191.994,0.00 
-					L 447.996,192.002 z M 447.996,234.831L 256.002,234.831 l0.00,20.896 l 191.994,0.00 L 447.996,234.831 z M 447.996,288.409L 256.002,288.409 L 256.002,319.50 l 191.994,0.00 L 447.996,288.409 z" />
-<glyph unicode="&#xe00d;" d="M 341.438,405.093c 4.086-16.444, 4.494-17.816, 4.115-34.70c-0.157-6.507-3.89-36.603-2.878-45.832
-										c 0.838-7.614, 2.737-8.217, 5.736-14.491c 5.229-10.918, 3.478-25.977, 1.478-36.987c-1.095-6.023-3.424-14.597-6.944-19.514
-										c-3.886-5.418-11.666-5.459-15.102-11.782c-4.955-9.108-2.16-21.884-5.28-31.717
-										c-3.549-11.149-12.585-11.928-13.267-26.521c 4.435-0.626, 8.848-1.26, 13.267-1.895c 4.439-9.428, 12.56-28.395, 20.848-34.095
-										c 6.946-1.894, 72.235-27.618, 96.632-37.896c 22.216-9.371, 40.514-27.77, 40.514-55.229c0.00-15.816-0.068-33.892-0.068-54.668
-										l-448.883,1.07c-0.385,19.526, 0.067,23.259, 0.067,53.598c0.00,30.335, 18.068,45.858, 40.284,55.229
-										c 24.396,10.277, 89.688,36.002, 96.632,37.896c 8.287,5.709, 16.414,24.667, 20.848,34.095l 9.865,2.406
-										c-2.241,12.455-9.95,13.424-13.164,22.231c-1.259,13.261-2.521,26.53-3.787,39.795c 0.059-0.626-9.072,1.665-10.267,2.413
-										c-12.869,8.063-13.131,40.81-14.369,54.429c-0.565,6.225, 8.094,11.327, 5.688,22.743
-										C 149.30,392.502, 169.50,423.777, 201.44,434.148c 22.171,8.984, 63.565,25.642, 102.174,1.893l 9.581-8.88l 15.504-2.673
-										C 336.478,419.988, 341.438,405.093, 341.438,405.093" />
-<glyph unicode="&#xe00e;" d="M 388.92,302.163c-7.027,0.00-13.911-0.609-20.617-1.732c-16.737,54.689-68.557,94.554-129.936,94.554
-									c-74.919,0.00-135.636-59.366-135.636-132.605c0.00-6.534, 0.51-12.956, 1.446-19.247c-3.597,0.413-7.228,0.692-10.935,0.692
-									c-50.938,0.00-92.237-40.385-92.237-90.168c0.00-49.81, 41.299-90.174, 92.237-90.174l 130.76,0.00 l0.00,64.52 l-56.678,0.00 l 89.248,117.308
-									l 89.245-117.308L 288.00,128.003 l0.00-64.519 l 100.921,0.00 c 67.425,0.00, 122.069,53.43, 122.069,119.339
-									C 510.992,248.735, 456.348,302.163, 388.92,302.163z" />
-<glyph unicode="&#xe00f;" d="M 384.00,256.00L 256.00,384.00L 128.00,256.00L 384.00,256.00 z M 128.00,160.00l 128.00-128.00l 128.00,128.00L 128.00,160.00 z" />
-<glyph unicode="&#xe010;" d="M 202.56,278.828l-55.689,55.691c 28.066,27.734, 66.521,44.819, 109.13,44.819
-										c 42.994-0.015, 81.616-17.334, 109.84-45.497c 28.158-28.218, 45.479-66.842, 45.492-109.847l 67.541,0.00 
-										C 478.85,347.104, 379.10,446.855, 255.998,446.88c-61.131,0.00-116.631-24.702-156.896-64.598L 47.707,433.679l 0.003-154.851L 202.56,278.828 z
-										M 366.408,114.775c-28.175-28.492-67.166-46.114-110.409-46.105c-43.007,0.008-81.625,17.331-109.841,45.492
-										c-28.173,28.214-45.483,66.832-45.50,109.832L 33.126,223.994 c 0.018-123.10, 99.767-222.846, 222.873-222.874
-										c 61.783,0.008, 117.812,25.24, 158.173,65.894l 50.007-50.011L 464.179,168.10 L 313.086,168.10 L 366.408,114.775z" />
-<glyph unicode="&#xe011;" d="M 402.127,223.999l-38.709,0.00 L 199.585,223.999 l-0.003,72.491c0.00,28.30-10.741,54.276-28.521,73.284
-									c-17.706,19.012-43.014,31.258-70.917,31.235c-27.905,0.022-53.211-12.224-70.917-31.235
-									c-17.785-19.008-28.521-44.985-28.522-73.285l0.00-73.395 l 51.881,0.00 l0.00,11.458 L 22.26,264.875l 30.322,0.00 l0.00,31.613 
-									c0.00,15.106, 5.712,28.409, 14.524,37.845c 8.897,9.432, 20.351,14.772, 33.035,14.793c 12.688-0.021, 24.13-5.361, 33.027-14.793
-									c 8.823-9.436, 15.436-22.738, 15.432-37.845l0.00-72.49 l-0.021,0.00 l-38.708,0.00 c-7.66,0.00-13.869-6.206-13.869-13.865l0.00-164.199 
-									c0.00-7.66, 6.209-13.869, 13.869-13.869l 292.255,0.00 c 7.665,0.00, 13.869,6.209, 13.869,13.869L 415.995,210.132 
-									C 415.996,217.793, 409.792,223.999, 402.127,223.999z" />
-<glyph unicode="&#xe012;" d="M 224.00,92.186L 224.00-32.00 L 32.00,160.00l 192.00,192.00l0.00-126.912 C 447.375,219.848, 437.794,376.984, 380.931,480.00
-					C 521.285,328.293, 491.48,85.215, 224.00,92.186z" />
-<glyph unicode="&#xe013;" d="M 79.536,313.536c 26.688,0.00, 48.317,21.619, 48.317,48.307c0.00,26.688-21.633,48.308-48.317,48.308
-											c-26.688,0.00-48.321-21.621-48.321-48.308C 31.215,335.156, 52.849,313.536, 79.536,313.536z M 80.632,273.397
-											c-26.688,0.00-48.321-21.633-48.321-48.307c0.00-26.688, 21.634-48.32, 48.321-48.32c 26.661,0.00, 48.294,21.633, 48.294,48.32
-											C 128.927,251.764, 107.293,273.397, 80.632,273.397z M 79.536,134.49c-26.688,0.00-48.321-21.633-48.321-48.32
-											s 21.634-48.321, 48.321-48.321c 26.687,0.00, 48.317,21.636, 48.317,48.321C 127.856,112.857, 106.224,134.49, 79.536,134.49z
-											 M 479.93,401.18L 179.733,401.18 l0.00-82.189 L 479.93,318.991 L 479.93,401.18 z M 179.733,44.587l 301.051,0.00 l0.00,83.06 L 179.733,127.647 L 179.733,44.587 z M 179.733,264.546l0.00-83.045 
-											l 301.051,0.00 l0.00,83.045 L 179.733,264.546 z" />
-<glyph unicode="&#xe014;" d="M 512.00,382.791c-18.839-8.354-39.082-14.001-60.33-16.54c 21.686,13.00, 38.343,33.585, 46.186,58.115
-					c-20.298-12.039-42.778-20.78-66.705-25.49c-19.16,20.415-46.461,33.17-76.673,33.17c-58.011,0.00-105.044-47.029-105.044-105.039
-					c0.00-8.233, 0.929-16.25, 2.72-23.939c-87.30,4.382-164.70,46.20-216.509,109.753c-9.042-15.514-14.223-33.558-14.223-52.809
-					c0.00-36.444, 18.544-68.596, 46.729-87.433c-17.219,0.546-33.416,5.271-47.576,13.139c-0.011-0.438-0.011-0.878-0.011-1.321
-					c0.00-50.894, 36.209-93.348, 84.262-103.00c-8.813-2.399-18.095-3.686-27.675-3.686c-6.769,0.00-13.349,0.66-19.764,1.886
-					c 13.368-41.729, 52.16-72.103, 98.126-72.948c-35.95-28.174-81.243-44.967-130.458-44.967c-8.479,0.00-16.84,0.497-25.058,1.471
-					c 46.485-29.806, 101.701-47.197, 161.021-47.197c 193.211,0.00, 298.868,160.063, 298.868,298.872c0.00,4.554-0.104,9.084-0.305,13.59
-					C 480.109,343.227, 497.918,361.727, 512.00,382.791z" />
-<glyph unicode="&#xe016;" d="M 442.164,448.415l-141.789-0.003L 34.382,183.809l 183.987-183.992l 261.465,261.466L 479.834,410.746 L 442.164,448.415z
-										 M 431.832,346.733c-14.828-14.833-38.88-14.833-53.709,0.00c-14.834,14.827-14.834,38.876,0.00,53.707
-										c 14.826,14.839, 38.881,14.839, 53.709,0.004C 446.664,385.61, 446.665,361.559, 431.832,346.733" />
-<glyph unicode="&#xe017;" d="M 63.50,416.50l 385.00,0.00 l0.00-385.00 l-385.00,0.00 L 63.50,416.50 z" />
-<glyph unicode="&#xe018;" d="M 256.004,377.987l 47.684-99.429c 4.326-9.021, 12.865-15.292, 22.768-16.721l 91.258-13.162l-64.933-67.069
-						c-6.173-6.376-9.206-15.158-8.284-23.984l 10.294-98.526l-82.57,52.256c-4.80,3.038-10.363,4.65-16.044,4.65l-0.304,0.00 
-						L 256.004,377.987 M 256.006,447.361L 181.263,291.53L 31.897,271.076l 105.769-110.336l-16.769-159.911l 134.975,85.174
-						c 0.11,0.00, 0.177,0.00, 0.304,0.00l 134.885-85.363l-16.727,160.101l 105.769,109.248L 330.737,291.53L 256.006,447.361L 256.006,447.361z" />
-<glyph unicode="&#xe019;" d="M 256.004,377.987l 47.684-99.429c 4.326-9.021, 12.865-15.292, 22.768-16.721l 91.258-13.162l-64.933-67.069
-						c-6.173-6.376-9.206-15.158-8.284-23.984l 10.294-98.526l-82.57,52.256c-4.80,3.038-10.363,4.65-16.044,4.65l-0.304,0.00 
-						c-5.667,0.00-11.218-1.605-16.01-4.629l-82.68-52.174l 10.32,98.411c 0.92,8.778-2.072,17.518-8.18,23.889L 94.29,249.34
-						l 91.043,12.468c 9.987,1.368, 18.62,7.66, 22.979,16.749L 256.004,377.987 M 256.006,447.361L 181.263,291.53L 31.897,271.076
-						l 105.769-110.336l-16.769-159.911l 134.975,85.174c 0.11,0.00, 0.177,0.00, 0.304,0.00l 134.885-85.363l-16.727,160.101l 105.769,109.248
-						L 330.737,291.53L 256.006,447.361L 256.006,447.361z" />
-<glyph unicode="&#xe01a;" d="M 391.061,0.639l-16.727,160.101l 105.769,109.248L 330.737,291.53L 256.006,447.361L 181.263,291.53L 31.897,271.076
-						l 105.769-110.336l-16.769-159.911l 134.975,85.174c 0.11,0.00, 0.177,0.00, 0.304,0.00L 391.061,0.639z" />
-<glyph unicode="&#xe01b;" d="M 32.005,64.994L 96.50,64.994L 96.50,0.496L 32.005,0.496zM 32.005,160.745L 192.024,160.745L 192.024,96.248L 32.005,96.248zM 32.005,256.496L 288.00,256.496L 288.00,191.998L 32.005,191.998zM 32.005,352.247L 383.996,352.247L 383.996,287.75L 32.005,287.75zM 32.005,447.998L 479.996,447.998L 479.996,383.501L 32.005,383.501z" />
-<glyph unicode="&#xe01c;" d="M 32.005,447.998L 96.50,447.998L 96.50,383.50L 32.005,383.50zM 32.005,352.247L 192.024,352.247L 192.024,287.749L 32.005,287.749zM 32.005,256.496L 288.00,256.496L 288.00,191.998L 32.005,191.998zM 32.005,160.744L 383.996,160.744L 383.996,96.247L 32.005,96.247zM 32.005,64.993L 479.996,64.993L 479.996,0.496L 32.005,0.496z" />
-<glyph unicode="&#xe01d;" d="M 160.187,61.865c-16.125,0.00-29.188-13.065-29.188-29.19c0.00-16.127, 13.063-29.188, 29.188-29.188
-											c 16.113,0.00, 29.188,13.062, 29.188,29.188C 189.372,48.80, 176.30,61.865, 160.187,61.865z M 255.917,61.865
-											c-16.126,0.00-29.19-13.065-29.19-29.19c0.00-16.127, 13.064-29.188, 29.19-29.188c 16.108,0.00, 29.179,13.062, 29.179,29.188
-											C 285.096,48.80, 272.028,61.865, 255.917,61.865z M 255.909,13.776c-10.436,0.00-18.894,8.459-18.894,18.891
-											c0.00,10.447, 8.458,18.905, 18.894,18.905c 10.435,0.00, 18.892-8.458, 18.892-18.905
-											C 274.801,22.235, 266.344,13.776, 255.909,13.776z M 32.479,416.00l0.00-320.00 l 449.247,0.00 L 481.726,416.00 L 32.479,416.00 z M 441.835,136.352L 73.713,136.352 
-											l-0.021,238.021l 366.813,0.00 l0.00-0.012 l 1.329,0.00 L 441.835,136.352L 441.835,136.352z M 351.763,61.865
-											c-16.126,0.00-29.188-13.065-29.188-29.19c0.00-16.127, 13.063-29.188, 29.188-29.188c 16.112,0.00, 29.183,13.062, 29.183,29.188
-											C 380.94,48.80, 367.875,61.865, 351.763,61.865z M 351.755,13.776c-10.436,0.00-18.894,8.459-18.894,18.891
-											c0.00,10.447, 8.458,18.905, 18.894,18.905c 10.438,0.00, 18.896-8.458, 18.896-18.905
-											C 370.646,22.235, 362.188,13.776, 351.755,13.776z" />
-<glyph unicode="&#xe01f;" d="M 470.70,72.193l-2.688,2.688l 0.006,0.002L 360.505,182.408c 14.938,25.732, 23.612,55.564, 23.816,87.451
-									c 0.626,97.615-77.986,177.243-175.599,177.857c-0.394,0.001-0.771,0.002-1.168,0.002
-									c-97.06-0.006-176.063-78.391-176.688-175.598c-0.618-97.609, 77.999-177.236, 175.597-177.859
-									c 0.389-0.002, 0.766-0.004, 1.155-0.004c 32.438,0.00, 62.846,8.79, 88.998,24.075l 107.415-107.433l 0.014,0.01l 2.688-2.688
-									c 8.125-8.123, 21.293-8.114, 29.41,0.00l 34.562,34.557C 478.819,50.895, 478.822,64.07, 470.70,72.193z M 300.39,177.58
-									c-24.834-24.67-57.78-38.252-92.768-38.252l-0.874,0.00 c-72.589,0.467-131.271,59.908-130.813,132.503
-									c 0.465,72.128, 59.516,130.811, 131.626,130.815l 0.879-0.002c 35.168-0.22, 68.146-14.123, 92.852-39.148
-									c 24.706-25.025, 38.188-58.178, 37.966-93.352C 339.031,235.128, 325.229,202.25, 300.39,177.58z" />
-<glyph unicode="&#xe020;" d="M 33.736,60.543A60.868,61.532 540.00 1 0 155.472,60.543000000000006A60.868,61.532 540.00 1 0 33.736,60.543000000000006zM 327.928-0.988l-86.229,0.00 c0.00,116.114-93.109,210.243-207.963,210.243l0.00,0.00l0.00,87.168 
-						C 196.222,296.423, 327.928,163.273, 327.928-0.988zM 388.798-0.988c0.00,198.244-158.96,358.949-355.062,358.949L 33.736,447.697 c 245.118,0.00, 443.826-200.885, 443.826-448.686L 388.798-0.989 
-						z" />
-<glyph unicode="&#xe021;" d="M 32.005,447.998L 479.996,447.998L 479.996,383.50L 32.005,383.50zM 32.005,352.247L 479.996,352.247L 479.996,287.749L 32.005,287.749zM 32.005,256.496L 479.996,256.496L 479.996,191.998L 32.005,191.998zM 32.005,160.744L 479.996,160.744L 479.996,96.247L 32.005,96.247zM 32.005,64.993L 479.996,64.993L 479.996,0.496L 32.005,0.496z" />
-<glyph unicode="&#xe022;" d="M 224.01,351.904l-67.942,0.00 L 256.012,472.979L 355.937,351.90l-67.932,0.00 l-0.001-255.803l 67.932,0.00 L 255.99-24.979
-										l-99.927,121.076l 67.943,0.00 L 224.01,351.904z" />
-<glyph unicode="&#xe023;" d="M 383.904,255.996l0.00,67.942 l 121.074-99.944L 383.90,124.069l0.00,67.932 l-255.803,0.001l0.00-67.932 L 7.022,224.016
-										l 121.076,99.926l0.00-67.943 L 383.904,255.996z" />
-<glyph unicode="&#xe024;" d="M 288.00,355.814L 288.00,480.00 l 192.00-192.00L 288.00,96.00L 288.00,222.912 C 64.625,228.153, 74.206,71.016, 131.069-32.00
-					C-9.286,119.707, 20.52,362.785, 288.00,355.814z" />
-<glyph unicode="&#xe025;" d="M 346.842,54.611c 21.076,11.557, 39.271,26.125, 54.399,43.698c 15.199,17.575, 26.912,37.946, 35.285,61.009
-									c 7.671,21.094, 11.471,40.729, 11.471,64.424c0.00,2.285-0.105,192.828-0.105,192.828L 256.00,416.57 l0.00-192.018 l 93.728,0.00 
-									c-0.599-26.107-5.876-45.195-15.728-63.121c-10.163-18.525-29.167-32.827-58.054-42.75l-3.201-1.092l0.00-85.777 l 5.313,0.703
-									C 302.758,35.683, 325.696,43.07, 346.842,54.611M 51.917,118.301l-3.171-1.092l0.00-85.779 l 5.316,0.704c 24.666,3.168, 47.64,10.556, 68.791,22.097
-									c 21.074,11.557, 39.229,26.125, 54.392,43.698c 15.206,17.575, 26.949,37.947, 35.288,61.01
-									c 7.67,21.093, 11.469,40.728, 11.469,64.424c0.00,2.284-0.076,192.825-0.076,192.825L 32.005,416.188 l0.00-192.017 l 93.729,0.00 
-									c-0.563-26.107-5.872-45.194-15.724-63.122C 99.839,142.525, 80.804,128.223, 51.917,118.301" />
-<glyph unicode="&#xe026;" d="M 133.16,393.389c-21.076-11.557-39.271-26.125-54.399-43.698c-15.199-17.575-26.912-37.947-35.285-61.009
-									c-7.671-21.094-11.471-40.728-11.471-64.423c0.00-2.285, 0.105-192.828, 0.105-192.828l 191.892,0.00 L 224.002,223.447 l-93.728,0.00 
-									c 0.599,26.107, 5.876,45.195, 15.728,63.122c 10.163,18.524, 29.167,32.827, 58.054,42.75l 3.201,1.091L 207.257,416.188 l-5.313-0.704
-									C 177.244,412.317, 154.306,404.929, 133.16,393.389M 428.085,329.699l 3.171,1.091L 431.256,416.57 l-5.316-0.704c-24.666-3.168-47.64-10.555-68.791-22.097
-									c-21.074-11.557-39.229-26.125-54.392-43.698c-15.206-17.576-26.949-37.947-35.288-61.01
-									C 259.799,267.968, 256.00,248.334, 256.00,224.638c0.00-2.284, 0.076-192.825, 0.076-192.825l 191.921,0.00 L 447.997,223.829 l-93.729,0.00 
-									c 0.563,26.107, 5.872,45.195, 15.724,63.122C 380.163,305.475, 399.198,319.777, 428.085,329.699" />
-<glyph unicode="&#xe027;" d="M 461.998,287.998l-44.865,0.00 l0.00,74.991 l-85.277,85.21L 96.004,448.199 l0.00-160.201 l-46.00,0.00 c-9.941,0.00-18.00-8.059-18.00-18.00l0.00-187.996 
-						c0.00-9.941, 8.059-18.00, 18.00-18.00l 46.00,0.00 l0.00-64.50 l 321.128,0.00 l0.00,64.50 l 44.865,0.00 c 9.941,0.00, 18.00,8.059, 18.00,18.00L 479.997,269.998 
-						C 479.998,279.938, 471.939,287.998, 461.998,287.998z M 96.004,97.50L 64.255,97.50 l0.00,93.654 l0.00,0.848 l 31.749,0.00 L 96.004,97.50 z M 319.37,415.375
-						l 64.453-63.377L 319.37,351.998 L 319.37,415.375 z M 383.998,32.002L 128.004,32.002 l0.00,160.00 l 255.994,0.00 L 383.998,32.002 z M 383.998,287.998L 128.004,287.998 l0.00,128.00 l 159.998,0.00 l0.00-96.00 
-						l 95.996,0.00 L 383.998,287.998 z M 448.298,97.50l-31.165,0.00 l0.00,94.502 l 30.118,0.00 l 1.047,0.00 L 448.298,97.50 zM 160.127,96.002L 351.50,96.002L 351.50,62.629L 160.127,62.629zM 160.127,161.437L 351.50,161.437L 351.50,128.064L 160.127,128.064z" />
-<glyph unicode="&#xe028;" d="M 427.182,320.352L 325.629,320.352 c 6.396,3.992, 12.695,8.69, 18.575,14.393c 30.401,29.163, 39.269,69.303, 19.804,89.555
-				c-7.468,7.76-17.991,11.484-29.858,11.484c-19.118,0.00-41.686-9.681-60.437-27.676c-7.679-7.383-13.959-15.469-18.775-23.762
-				c-4.834,8.293-11.11,16.378-18.793,23.762c-18.751,18.001-41.301,27.676-60.419,27.676c-11.881,0.00-22.435-3.724-29.903-11.484
-				c-19.458-20.252-10.587-60.392, 19.814-89.555c 5.896-5.703, 12.166-10.401, 18.606-14.393L 84.818,320.352 L 64.002,320.352 l0.00-98.164 l 32.00,0.00 l0.00-222.048 l 319.994,0.00 
-				L 415.996,222.188 l 32.00,0.00 l0.00,98.164 L 427.182,320.352 z M 272.212,353.958c 2.513,11.443, 10.075,23.888, 20.734,34.136
-				c 15.289,14.705, 31.298,19.919, 41.21,19.919c 2.606,0.00, 7.359-0.37, 9.83-2.943c 2.662-2.773, 3.327-8.961, 1.711-16.206
-				c-2.525-11.47-10.088-23.908-20.733-34.146c-15.303-14.691-31.298-19.905-41.196-19.905c-2.607,0.00-7.359,0.383-9.845,2.943
-				C 271.248,340.529, 270.61,346.714, 272.212,353.958z M 275.77,316.343l0.00-92.344 l-41.668,0.00 l0.00,92.344 L 275.77,316.343 z M 164.137,388.864
-				c-1.599,7.244-0.954,13.432, 1.71,16.206c 2.481,2.573, 7.22,2.943, 9.872,2.943c 9.885,0.00, 25.894-5.214, 41.183-19.933
-				c 10.659-10.241, 18.208-22.686, 20.73-34.122c 1.599-7.244, 0.954-13.429-1.724-16.202c-2.469-2.56-7.238-2.943-9.845-2.943
-				c-9.892,0.00-25.867,5.214-41.183,19.905C 174.235,364.957, 166.672,377.394, 164.137,388.864z M 411.896,128.002L 275.77,128.002 l0.00-124.127 l-41.668,0.00 
-				L 234.102,128.002 L 100.935,128.002 l0.00,32.165 l 133.167,0.00 l0.00,46.00 l 41.668,0.00 l0.00-46.00 l 136.126,0.00 L 411.896,128.002 z" />
-<glyph unicode="&#xe029;" d="M 255.982,360.004L 418.982,128.01L 93.018,128.002 					z" />
-<glyph unicode="&#xe02a;" d="M 392.004,223.983L 160.01,386.982L 160.002,61.018 					z" />
-<glyph unicode="&#xe02b;" d="M 119.995,223.983L 351.988,386.982L 351.996,61.018 					z" />
-<glyph unicode="&#xe02c;" d="M 255.982,87.996L 418.982,319.99L 93.018,319.998 					z" />
-<glyph unicode="&#xe02d;" d="M 415.996,255.998L 287.998,255.998L 287.998,383.998L 224.002,383.998L 224.002,255.998L 96.002,255.998L 96.002,192.002L 224.002,192.002L 224.002,64.002L 287.998,64.002L 287.998,192.002L 415.996,192.002 							z" />
-<glyph unicode="&#xe02e;" d="M 96.002,451.331L 436.998,224.00L 96.002-3.331L 96.002,451.331 z" />
-<glyph unicode="&#xe02f;" d="M 461.173,351.998L 351.786,351.998 l-25.911,53.007c0.00,0.00-5.165,10.993-18.42,10.993c-10.21,0.00-74.079,0.00-102.888,0.00
-						c-14.414,0.00-19.231-10.909-19.231-10.909l-25.131-53.091L 49.372,351.998 c-9.941,0.00-18.00-8.06-18.00-18.00l0.00-251.736 c0.00-9.941, 8.059-18.00, 18.00-18.00l 411.801,0.00 
-						c 9.941,0.00, 18.00,8.059, 18.00,18.00L 479.173,333.998 C 479.173,343.938, 471.114,351.998, 461.173,351.998z M 255.271,105.43
-						c-60.684,0.00-110.007,49.37-110.007,110.016c0.00,60.665, 49.339,110.012, 110.007,110.012c 60.656,0.00, 110.022-49.347, 110.022-110.012
-						C 365.294,154.791, 315.928,105.43, 255.271,105.43zM 255.271,281.456c-36.397,0.00-66.007-29.597-66.007-66.01c0.00-36.39, 29.609-66.001, 66.007-66.001
-						c 36.404,0.00, 66.008,29.611, 66.008,66.001C 321.279,251.859, 291.676,281.456, 255.271,281.456z" />
-<glyph unicode="&#xe030;" d="M 351.528,188.046c-6.412,3.971-16.018,2.871-21.464-2.468l-42.484-42.472
-					c-5.434-5.339-14.086-5.339-19.425,0.00l-95.473,95.506c-5.345,5.346-5.345,14.079,0.00,19.424l 40.016,40.003
-					c 5.353,5.346, 6.131,14.763, 1.798,20.933L 141.695,422.18c-4.299,6.164-12.724,7.372-18.626,2.676c0.00,0.00-56.792-45.067-56.792-86.471
-					c0.00-169.442, 137.367-306.795, 306.795-306.795c 41.425,0.00, 81.708,76.009, 81.708,76.009c 3.542,6.666, 1.194,15.413-5.217,19.383
-					L 351.528,188.046z" />
-<glyph unicode="&#xe031;" d="M 440.316,414.613c 12.849-6.288, 24.047-15.243, 32.251-26.241c 17.269-23.15, 22.118-54.686, 14.418-93.733
-					c-7.78-39.513-25.208-72.868-50.583-97.022c-4.641-4.852-9.611-9.373-14.902-13.54c-27.178-21.401-61.498-32.714-99.254-32.714
-					l-6.056,0.00 L 202.217,151.363 L 169.935,0.00l-66.212,0.00 l 5.043,23.15l 23.064,0.00 l 32.281,151.363l 94.136,0.00 c 90.124,0.00, 165.469,55.538, 185.629,149.967
-					C 466.736,431.398, 390.076,480.00, 324.171,480.00L 99.532,480.00 L0.00,23.15l 76.016,0.00 L 64.00-32.00l 131.83,0.00 l 32.281,151.363l 94.135,0.00 
-					c 90.125,0.00, 165.47,55.539, 185.63,149.968C 524.733,348.171, 487.474,395.297, 440.316,414.613z M 211.172,386.959l 64.565,0.00 
-					c 32.296,0.00, 53.801-27.769, 44.394-62.478c-8.068-34.72-41.693-62.488-75.32-62.488l-61.879,0.00 L 211.172,386.959z" />
-<glyph unicode="&#xe032;" d="M 96.002,415.333l 96.00,0.00 l0.00-382.667 l-96.00,0.00 L 96.002,415.333 z M 321.413,415.333l 94.583,0.00 l0.00-382.667 l-94.583,0.00 L 321.413,415.333 z" />
-<glyph unicode="&#xe033;" d="M 68.436,311.144l 22.881,0.00 L 91.317,424.772 L 72.669,424.772 c0.00-0.991-0.271-2.505-0.857-4.541c-0.991-3.39-2.465-6.122-4.367-8.158
-											c-2.813-2.975-6.479-4.957-10.958-5.948c-2.813-0.63-7.739-1.099-14.763-1.42l0.00-15.192 l 26.712,0.00 L 68.436,311.144 z M 64.685,219.003
-											c-11.843-8.466-19.345-16.45-22.532-24.032c-3.296-6.726-5.033-14.174-5.252-22.318l 77.729,0.00 l0.00,19.666 L 65.09,192.319 
-											c 1.393,2.357, 3.135,4.396, 5.197,6.162c 2.063,1.795, 5.895,4.662, 11.49,8.627l 8.926,6.324
-											c 7.525,5.33, 12.938,10.153, 16.233,14.494c 5.01,6.523, 7.528,13.985, 7.528,22.385c0.00,10.959-3.563,19.76-10.663,26.404
-											c-7.101,6.658-16.666,9.98-28.669,9.98c-15.191,0.00-25.774-5.653-31.723-16.986c-3.139-5.948-4.876-13.745-5.251-23.391
-											l 21.675,0.00 c 0.269,6.363, 1.099,10.999, 2.492,13.933c 2.465,5.051, 7.069,7.582, 13.879,7.582c 4.956,0.00, 8.761-1.594, 11.413-4.769
-											c 2.648-3.188, 3.988-7.167, 3.988-11.977c0.00-5.895-2.331-11.32-6.966-16.276C 81.618,231.623, 74.974,226.358, 64.685,219.003z
-											 M 110.151,86.539c-4.18,3.832-7.364,5.732-9.592,5.732c 2.947,1.146, 5.813,3.297, 8.547,6.432
-											c 4.341,5.037, 6.515,11.199, 6.515,18.514c0.00,10.344-3.617,18.567-10.905,24.73c-7.261,6.135-16.825,9.217-28.722,9.217
-											c-6.381,0.00-11.789-0.777-16.156-2.331c-4.396-1.526-8.198-3.778-11.391-6.672c-4.283-4.126-7.422-8.601-9.431-13.45
-											c-1.876-5.546-2.947-11.413-3.162-17.576l 22.801,0.00 c-0.104,6.109, 1.183,10.985, 3.889,14.656s 6.938,5.492, 12.70,5.492
-											c 5.01,0.00, 8.896-1.50, 11.651-4.447c 2.759-3.001, 4.152-6.859, 4.152-11.574c0.00-7.342-2.706-12.164-8.118-14.576
-											c-3.135-1.439-8.654-2.189-16.558-2.304l0.00-17.495 c 8.063,0.00, 13.981-0.771, 17.764-2.305c 6.591-2.76, 9.913-8.199, 9.913-16.371
-											c0.00-6.162-1.795-10.904-5.358-14.20c-3.563-3.269-7.717-4.896-12.513-4.896c-7.823,0.00-13.209,2.974-16.156,8.976
-											c-1.604,3.271-2.411,7.396-2.411,12.354L 33.632,64.445 c 0.402-9.893, 2.385-17.87, 6.002-23.979
-											c 6.832-11.494, 19.05-17.228, 36.625-17.228c 14.254,0.00, 25.025,3.985, 32.312,11.943c 7.288,7.957, 10.936,17.20, 10.936,27.73
-											C 119.503,72.90, 116.368,80.777, 110.151,86.539z M 480.145,401.296L 179.949,401.296 l0.00-82.189 l 300.188,0.00 L 480.145,401.296L 480.145,401.296z
-											 M 179.949,44.703L 481.00,44.703 l0.00,83.059 L 179.949,127.762 L 179.949,44.703 z M 179.949,264.663l0.00-83.045 L 481.00,181.618 l0.00,83.045 L 179.949,264.663 z" />
-<glyph unicode="&#xe034;" d="M 409.947,370.39c-12.927,12.917-33.873,12.917-46.794,0.00c-12.92-12.922-12.92-33.87,0.00-46.794l0.00,0.006 
-										c 29.647-29.682, 44.347-68.266, 44.382-107.154c-0.035-38.892-14.729-77.478-44.382-107.157
-										c-29.673-29.648-68.26-44.339-107.149-44.376c-38.896,0.037-77.481,14.731-107.146,44.376
-										c-29.653,29.68-44.353,68.266-44.389,107.157c 0.036,38.894, 14.731,77.472, 44.384,107.148
-										c 12.919,12.919, 12.926,33.869, 0.005,46.789c-12.92,12.923-33.869,12.923-46.79,0.006
-										c-42.455-42.423-63.812-98.336-63.771-153.942c-0.037-55.606, 21.315-111.52, 63.771-153.944
-										c 42.419-42.446, 98.332-63.802, 153.938-63.766l 0.142,0.00 c 55.563-0.002, 111.409,21.35, 153.80,63.766
-										c 42.444,42.425, 63.813,98.338, 63.767,153.944C 473.751,272.053, 452.394,327.963, 409.947,370.39zM 256.704,191.357c 18.271,0.00, 33.085,14.812, 33.085,33.083L 289.789,413.278 c0.00,18.271-14.813,33.085-33.085,33.085
-										c-18.274,0.00-33.086-14.816-33.086-33.085l0.00-188.836 C 223.618,206.173, 238.429,191.357, 256.704,191.357z" />
-<glyph unicode="&#xe035;" d="M 90.68,160.51L 126.742,124.447L 253.718,251.426L 380.691,124.448L 416.754,160.51L 253.718,323.551 		z" />
-<glyph unicode="&#xe036;" d="M 196.729,60.963L 160.666,97.025L 287.643,224.001L 160.667,350.975L 196.729,387.037L 359.768,224.001 		z" />
-<glyph unicode="&#xe037;" d="M 317.207,60.963L 353.27,97.025L 226.291,224.001L 353.269,350.975L 317.207,387.037L 154.166,224.001 		z" />
-<glyph unicode="&#xe038;" d="M 416.754,287.49L 380.691,323.553L 253.716,196.574L 126.742,323.552L 90.68,287.49L 253.716,124.449 		z" />
-<glyph unicode="&#xe039;" d="M 504.979,223.994L 383.904,323.938L 383.904,255.996L 288.005,255.997L 288.005,351.90L 355.937,351.90L 256.012,472.979L 156.067,351.904L 224.01,351.904L 224.009,255.998L 128.098,255.999L 128.098,323.942L 7.021,224.016L 128.098,124.07L 128.098,192.002L 224.008,192.002L 224.007,96.098L 156.063,96.098L 255.99-24.979L 355.936,96.098L 288.004,96.098L 288.004,192.001L 383.90,192.001L 383.90,124.069 			z" />
-<glyph unicode="&#xe03a;" d="M 96.002,255.998L 415.996,255.998L 415.996,192.002L 96.002,192.002z" />
-<glyph unicode="&#xe03b;" d="M 256.00,447.998c-83.058,0.00-150.374-67.286-150.374-150.374c0.00-73.704, 64.874-169.622, 116.446-249.789
-								c 39.066-60.729, 29.329-61.07, 67.853-0.004c 50.575,80.171, 116.449,176.088, 116.449,249.773
-								C 406.374,380.652, 339.058,447.998, 256.00,447.998z M 256.00,225.785c-39.67,0.00-71.858,32.16-71.858,71.858
-								c0.00,39.699, 32.188,71.839, 71.858,71.839c 39.669,0.00, 71.857-32.16, 71.857-71.858C 327.857,257.925, 295.669,225.785, 256.00,225.785z" />
-<glyph unicode="&#xe03c;" d="M 256.398,162.378c-4.897,0.00-9.814,1.545-13.934,4.642L 32.156,324.88l0.00-234.203 c0.00-16.487, 13.413-27.675, 29.90-27.675
-						l 388.676,0.00 c 16.492,0.00, 29.263,11.188, 29.263,27.675L 479.995,324.88 L 269.999,167.02C 265.882,163.923, 261.288,162.378, 256.398,162.378zM 451.282,352.018L 256.398,205.719L 61.513,352.018 					z" />
-<glyph unicode="&#xe03d;" d="M 255.875,451.175L 63.605,334.688l0.00-221.367 l 49.933-29.402L 113.538,305.29 l 142.381,86.565l 142.49-86.43
-					l 0.599-0.343l-0.059-220.832l 49.445,29.07L 448.394,334.688 L 255.875,451.175z M 281.322,314.901l0.00-258.805 l-25.447-15.566l-25.477,15.624
-					L 230.398,314.697 l-65.943-40.617l0.00-221.313 l 91.42-55.942l 92.20,56.333L 348.075,274.234 L 281.322,314.901z" />
-<glyph unicode="&#xe03e;" d="M 402.127,223.937l-38.709,0.00 l-0.006,64.061c0.00,30.667-11.64,58.792-30.863,79.345
-									c-19.156,20.557-46.447,33.753-76.542,33.729c-30.104,0.024-57.396-13.172-76.551-33.729
-									c-19.233-20.553-30.871-48.679-30.876-79.345l0.00-64.061 l-38.708,0.00 c-7.66,0.00-13.869-6.205-13.869-13.864l0.00-164.201 
-									c0.00-7.659, 6.209-13.869, 13.869-13.869l 292.255,0.00 c 7.665,0.00, 13.869,6.21, 13.869,13.869L 415.996,210.07 
-									C 415.996,217.731, 409.792,223.937, 402.127,223.937z M 312.404,223.937L 199.588,223.937 l0.00,64.061 c0.00,17.699, 6.701,33.356, 17.115,44.50
-									c 10.497,11.135, 24.163,17.544, 39.304,17.566c 15.13-0.022, 28.798-6.427, 39.287-17.566c 10.416-11.143, 17.11-26.801, 17.11-44.50
-									L 312.404,223.937 z" />
-<glyph unicode="&#xe03f;" d="M 221.533,116.203l-37.033-34.33c-8.995-8.319-20.297-12.079-31.93-11.681c-11.109,0.454-21.96,5.06-30.329,14.057
-					l-3.382,3.668c-8.303,8.996-12.084,20.234-11.68,31.698c 0.463,11.303, 5.053,22.158, 14.054,30.524l 85.934,79.645
-					c 5.046,4.659, 10.772,7.889, 16.835,9.763c0.00,8.613, 0.088,61.287, 0.088,72.72c-23.642-2.68-46.787-12.709-65.50-30.063
-					l-85.936-79.642c-23.266-21.53-35.834-50.785-36.921-80.225c-1.155-29.401, 9.047-59.642, 30.701-83.012l 3.384-3.651
-					c 21.434-23.149, 50.545-35.81, 80.027-36.919l 0.164-0.006c 29.321-1.117, 59.624,8.968, 83.062,30.703l 37.031,34.311
-					c 14.476,13.415, 15.337,36.023, 1.922,50.495C 258.617,128.737, 236.008,129.60, 221.533,116.203zM 476.256,325.848c 1.204,29.423-9.102,59.554-30.659,82.823l-3.384,3.669c-21.592,23.319-50.937,35.824-80.354,36.912
-					c-29.42,1.152-59.596-9.082-82.895-30.69l-35.342-32.747c-14.475-13.428-15.338-36.038-1.926-50.513s 36.02-15.337, 50.497-1.925
-					l 35.336,32.748c 9.029,8.334, 20.232,12.101, 31.604,11.716c 11.40-0.484, 22.282-5.09, 30.62-14.086l 3.416-3.654
-					c 8.303-9.013, 12.081-20.216, 11.683-31.538c-0.469-11.435-5.095-22.336-14.095-30.703l-85.932-79.628
-					c-5.012-4.634-10.729-7.859-16.826-9.736c0.00-14.327,0.00-56.327,0.00-72.708c 23.514,2.70, 46.64,12.627, 65.392,30.027l 85.967,79.63
-					C 462.698,267.083, 475.199,296.426, 476.256,325.848zM 119.299,339.487c 2.929-2.929, 6.768-4.394, 10.606-4.394s 7.678,1.464, 10.606,4.394c 5.858,5.858, 5.858,15.355,0.00,21.213
-					L 44.314,456.897c-5.857,5.858-15.355,5.858-21.213,0.00c-5.858-5.858-5.858-15.355,0.00-21.213L 119.299,339.487zM 192.002,352.095c 8.284,0.00, 15.00,6.716, 15.00,15.00L 207.002,446.436 c0.00,8.284-6.716,15.00-15.00,15.00s-15.00-6.716-15.00-15.00l0.00-79.341 
-					C 177.002,358.811, 183.718,352.095, 192.002,352.095zM 126.343,287.913c0.00,8.284-6.716,15.00-15.00,15.00L 32.002,302.913 c-8.284,0.00-15.00-6.716-15.00-15.00s 6.716-15.00, 15.00-15.00l 79.341,0.00 
-					C 119.627,272.913, 126.343,279.629, 126.343,287.913zM 392.621,108.95c-5.857,5.857-15.355,5.857-21.213,0.00c-5.858-5.857-5.858-15.355,0.00-21.213l 96.198-96.198
-					c 2.929-2.929, 6.768-4.394, 10.606-4.394s 7.678,1.465, 10.606,4.394c 5.858,5.857, 5.858,15.355,0.00,21.213L 392.621,108.95zM 319.919,96.342c-8.284,0.00-15.00-6.716-15.00-15.00l0.00-79.341 c0.00-8.284, 6.716-15.00, 15.00-15.00s 15.00,6.716, 15.00,15.00l0.00,79.341 
-					C 334.919,89.626, 328.203,96.342, 319.919,96.342zM 385.577,160.523c0.00-8.284, 6.716-15.00, 15.00-15.00l 79.342,0.00 c 8.284,0.00, 15.00,6.716, 15.00,15.00s-6.716,15.00-15.00,15.00l-79.342,0.00 
-					C 392.293,175.523, 385.577,168.808, 385.577,160.523z" />
-<glyph unicode="&#xe040;" d="M 221.533,116.203l-37.033-34.33c-8.995-8.319-20.297-12.079-31.93-11.681c-11.109,0.454-21.96,5.06-30.329,14.057
-										l-3.382,3.668c-8.303,8.996-12.084,20.234-11.68,31.698c 0.463,11.303, 5.053,22.158, 14.054,30.524l 85.934,79.645
-										c 9.028,8.335, 20.233,12.099, 31.639,11.698c 11.368-0.465, 22.252-5.074, 30.62-14.072l 3.381-3.669l 52.421,48.589l-3.386,3.652
-										l-6.175,6.648c-2.637,2.84-5.609,5.156-8.84,6.959c-19.25,14.601-42.242,22.475-65.31,23.321
-										c-29.449,1.155-59.625-9.097-82.928-30.707l-85.936-79.642c-23.266-21.53-35.834-50.785-36.921-80.225
-										c-1.155-29.401, 9.047-59.642, 30.701-83.012l 3.384-3.651c 21.434-23.149, 50.545-35.81, 80.027-36.919l 0.164-0.006
-										c 29.321-1.117, 59.624,8.968, 83.062,30.703l 37.031,34.311c 14.476,13.415, 15.337,36.023, 1.922,50.495
-										C 258.617,128.737, 236.008,129.60, 221.533,116.203zM 445.597,408.67l-3.384,3.669c-21.592,23.319-50.937,35.824-80.354,36.912c-29.42,1.152-59.596-9.082-82.895-30.69
-										l-35.342-32.747c-14.475-13.428-15.338-36.038-1.926-50.513s 36.02-15.337, 50.497-1.925l 35.336,32.748
-										c 9.029,8.334, 20.232,12.101, 31.604,11.716c 11.40-0.484, 22.282-5.09, 30.62-14.086l 3.416-3.654
-										c 8.303-9.013, 12.081-20.216, 11.683-31.538c-0.469-11.435-5.095-22.336-14.095-30.703l-85.932-79.628
-										c-8.996-8.318-20.266-12.10-31.931-11.687c-11.108,0.447-21.927,5.045-30.295,14.061l-3.386,3.652l-52.42-48.587l 3.38-3.654
-										c 21.403-23.132, 50.511-35.808, 79.998-36.896l 0.194-0.008c 29.318-1.118, 59.588,8.954, 83.024,30.702l 85.967,79.63
-										c 23.34,21.639, 35.841,50.982, 36.897,80.404C 477.46,355.271, 467.154,385.401, 445.597,408.67z" />
-<glyph unicode="&#xe041;" d="M 351.996,415.998L 351.996,237.18L 96.002,448.00L 96.002,0.00L 351.996,210.82L 351.996,32.002L 447.996,32.002L 447.996,415.998 				z" />
-<glyph unicode="&#xe042;" d="M 482.178,233.834L 342.742,379.832c-2.575,2.665-6.122,4.166-9.828,4.166L 45.484,383.998 c-7.561,0.00-13.687-6.126-13.687-13.688
-						l0.00-291.995 c0.00-7.562, 6.126-13.688, 13.687-13.688l 287.43,0.00 c 3.706,0.00, 7.253,1.502, 9.828,4.166l 139.436,145.998
-						C 487.324,220.098, 487.324,228.527, 482.178,233.834z M 327.112,95.931L 64.002,95.931 L 64.002,352.124 l 263.11,0.00 l 126.18-127.811L 327.112,95.931zM 267.427,325.312L 193.763,250.351L 120.094,325.312L 94.06,299.724L 168.178,224.312L 94.06,148.894L 120.094,123.306L 193.763,198.27L 267.427,123.306L 293.464,148.894L 219.349,224.312L 293.464,299.724 					z" />
-<glyph unicode="&#xe043;" d="M 29.815,214.791l 139.436-145.998c 2.575-2.664, 6.122-4.166, 9.828-4.166l 287.429,0.00 c 7.562,0.00, 13.688,6.127, 13.688,13.688
-						L 480.196,370.31 c0.00,7.561-6.126,13.688-13.688,13.688L 179.079,383.998 c-3.706,0.00-7.253-1.501-9.828-4.166L 29.815,233.834
-						C 24.669,228.527, 24.669,220.098, 29.815,214.791z M 58.701,224.312l 126.18,127.811l 263.108,0.00 l0.00-256.193 L 184.881,95.93 L 58.701,224.312zM 218.529,299.724L 292.644,224.312L 218.529,148.894L 244.566,123.306L 318.229,198.27L 391.898,123.306L 417.932,148.894L 343.814,224.312L 417.932,299.724L 391.898,325.312L 318.229,250.351L 244.566,325.312 					z" />
-<glyph unicode="&#xe044;" d="M 48.073,0.002l 79.011,0.017l 0.01,45.529l 49.23,0.013l 0.007,50.45l 47.674-0.009L 224.00,141.556
-					l 50.566,0.009l 37.571,32.034c 44.065-12.063, 92.902-1.09, 127.277,33.169c 51.184,51.347, 50.762,134.801-0.911,186.701
-					c-51.781,51.553-135.238,51.98-186.399,0.611c-34.485-34.339-45.464-83.306-33.298-127.414L 32.002,79.861l 0.291-64.071
-					C 32.355,4.206, 36.603,0.243, 48.073,0.002z M 361.38,316.957c-13.714,13.921-13.843,36.085-0.298,49.49
-					c 13.639,13.763, 35.798,13.644, 49.488-0.301c 13.755-13.50, 13.886-35.67, 0.313-49.499
-					C 397.273,303.30, 375.108,303.429, 361.38,316.957z" />
-<glyph unicode="&#xe045;" d="M 295.446,31.498L 108.404,31.498 l 3.648,21.205c 21.455,8.767, 42.379,14.598, 62.836,17.525l 91.339,305.806
-										c-9.792,1.964-45.405,14.313-54.792,18.273l 5.114,21.19l 187.044,0.00 l-4.396-21.19c-22.019-8.825-58.625-17.432-62.836-18.273
-										l-91.311-305.806c 10.509-2.121, 47.089-13.814, 54.069-17.525L 295.446,31.498z" />
-<glyph unicode="&#xe046;" d="M 335.49,115.189c-9.558,0.00-47.096-57.998-67.553-57.998c-5.459,0.00-8.17,4.787-8.17,9.558
-										c0.00,10.909, 7.506,27.979, 11.58,38.216l 49.13,133.011c 24.56,66.191-6.834,83.922-36.151,83.922
-										c-39.572,0.00-75.062-19.786-102.332-45.708c-5.076-5.068-16.971-16.651-26.377-27.822c-7.691-9.13-6.813-18.64-2.32-21.406
-										c 5.626-3.464, 14.265,3.051, 18.405,7.886c 14.991,17.518, 34.313,42.019, 50.521,42.019c 5.462,0.00, 11.605-6.136, 6.832-18.407
-										l-47.737-120.078c-4.796-11.606-27.983-67.556-27.983-100.294c0.00-25.929, 17.049-37.517, 41.61-37.517
-										c 68.91,0.00, 148.724,84.603, 148.724,104.389C 343.668,111.104, 338.891,115.189, 335.49,115.189zM 321.828,447.423c-30.018,0.00-55.938-24.553-55.938-54.568c0.00-27.979, 18.435-46.41, 46.398-46.41
-										c 30.703,0.00, 56.615,23.196, 56.615,54.591C 368.904,429.016, 349.137,447.423, 321.828,447.423z" />
-<glyph unicode="&#xe047;" d="M 352.381,251.944c 19.508,0.00, 35.292,16.00, 35.292,35.758c0.00,19.743-15.784,35.765-35.292,35.765
-										c-19.45,0.00-35.277-16.022-35.277-35.765C 317.104,267.944, 332.931,251.944, 352.381,251.944zM 244.799,175.919l-88.125,94.968L 96.748,158.586l0.00-30.938 l 297.645,0.00 C 356.489,160.775, 276.541,231.63, 276.541,231.63
-										L 244.799,175.919zM 32.00,384.00l0.00-319.782 l 447.50,0.00 L 479.50,384.00 L 32.00,384.00 z M 73.072,104.542l-0.019,237.854l 365.385,0.00 l0.00-0.012 l 1.32,0.00 l 0.005-237.842L 73.072,104.542 z" />
-<glyph unicode="&#xe048;" d="M 395.841,276.128L 395.841,360.032L 339.902,360.032L 339.902,332.064L 256.00,415.968L 32.255,191.932L 96.50,191.932L 96.50,31.598L 224.551,31.598L 224.551,159.598L 288.50,159.598L 288.50,31.598L 416.50,31.598L 416.50,191.932L 479.742,191.932 
-																	z" />
-<glyph unicode="&#xe049;" d="M 415.459,383.458C 372.866,426.051, 316.235,449.508, 256.00,449.508c-60.235,0.00-116.865-23.457-159.458-66.05
-									C 53.949,340.865, 30.492,284.235, 30.492,224.00s 23.457-116.866, 66.05-159.459c 42.593-42.593, 99.223-66.05, 159.458-66.05
-									c 60.235,0.00, 116.866,23.457, 159.459,66.05s 66.05,99.224, 66.05,159.459S 458.052,340.865, 415.459,383.458z M 256.00,31.092
-									C 149.631,31.092, 63.093,117.63, 63.093,224.00c0.00,106.369, 86.538,192.907, 192.907,192.907
-									c 106.37,0.00, 192.908-86.538, 192.908-192.907C 448.908,117.63, 362.37,31.092, 256.00,31.092zM 342.291,356.486c-21.754,19.24-51.033,28.861-87.842,28.861c-34.986,0.00-63.238-9.507-84.759-28.519
-									c-21.525-19.015-27.814-41.741-29.486-68.966l 55.262,0.271c 4.107,19.011, 9.93,25.194, 20.881,34.474
-									c 10.951,9.275, 24.563,13.917, 40.843,13.917c 16.882,0.00, 30.305-4.449, 40.269-13.346c 9.959-8.898, 14.943-19.586, 14.943-32.056
-									c0.00-8.976-2.816-17.19-8.441-24.641c-3.651-4.716-14.83-14.68-33.538-29.887c-18.711-15.212-31.186-28.917-37.421-41.083
-									c-6.238-12.17-9.277-27.145-9.125-35.508l 64.113,0.00 c-0.307,17.643, 10.188,26.305, 23.728,37.561
-									c 26.158,21.766, 43.235,38.952, 51.22,51.578c 7.986,12.624, 11.979,26.01, 11.979,40.155
-									C 374.916,314.849, 364.039,337.244, 342.291,356.486zM 223.877,128.011L 287.99,128.011L 287.99,63.903L 223.877,63.903z" />
-<glyph unicode="&#xe04a;" d="M 32.002,447.998L 160.002,447.998L 160.002,319.998L 32.002,319.998zM 192.00,447.998L 320.00,447.998L 320.00,319.998L 192.00,319.998zM 351.996,447.998L 479.996,447.998L 479.996,319.998L 351.996,319.998zM 32.002,288.00L 160.002,288.00L 160.002,160.00L 32.002,160.00zM 192.00,288.00L 320.00,288.00L 320.00,160.00L 192.00,160.00zM 351.996,288.00L 479.996,288.00L 479.996,160.00L 351.996,160.00zM 32.002,128.002L 160.002,128.002L 160.002,0.002L 32.002,0.002zM 192.00,128.002L 320.00,128.002L 320.00,0.002L 192.00,0.002zM 351.996,128.002L 479.996,128.002L 479.996,0.002L 351.996,0.002z" />
-<glyph unicode="&#xe04b;" d="M 279.533,448.00c0.00,0.00-100.479,0.00-133.971,0.00c-60.06,0.00-116.585-45.503-116.585-98.211c0.00-53.863, 40.941-97.333, 102.044-97.333
-					c 4.249,0.00, 8.378,0.085, 12.421,0.376c-3.965-7.593-6.801-16.144-6.801-25.021c0.00-14.969, 8.052-27.105, 18.234-37.012
-					c-7.693,0.00-15.121-0.224-23.227-0.224C 57.259,190.576,0.00,143.195,0.00,94.064c0.00-48.389, 62.771-78.656, 137.167-78.656
-					c 84.812,0.00, 131.652,48.122, 131.652,96.514c0.00,38.801-11.447,62.036-46.843,87.067c-12.107,8.571-35.265,29.418-35.265,41.672
-					c0.00,14.36, 4.098,21.434, 25.714,38.323c 22.156,17.312, 37.836,41.651, 37.836,69.958c0.00,33.703-15.01,66.549-43.186,77.386l 42.477,0.00 
-					L 279.533,448.00z M 232.74,120.271c 1.063-4.486, 1.642-9.104, 1.642-13.814c0.00-39.10-25.196-69.655-97.487-69.655
-					c-51.421,0.00-88.558,32.552-88.558,71.65c0.00,38.321, 46.063,70.222, 97.481,69.666c 12.00-0.127, 23.185-2.058, 33.335-5.345
-					C 207.066,153.359, 227.092,142.393, 232.74,120.271z M 150.409,266.112c-34.52,1.032-67.318,38.613-73.276,83.93
-					c-5.958,45.333, 17.185,80.021, 51.694,78.995c 34.505-1.037, 67.318-37.407, 73.278-82.729
-					C 208.059,300.978, 184.911,265.079, 150.409,266.112z M 416.00,352.00L 416.00,448.00 l-32.00,0.00 l0.00-96.00 l-96.00,0.00 l0.00-32.00 l 96.00,0.00 l0.00-96.00 l 32.00,0.00 l0.00,96.00 l 96.00,0.00 l0.00,32.00 L 416.00,352.00 z" />
-<glyph unicode="&#xe04c;" d="M 248.023,234.684L 247.35,235.809L 246.563,238.057L 247.124,238.73L 246.786,240.303L 244.764,238.73L 245.214,237.381L 245.775,235.248L 244.764,235.248L 244.764,234.237L 245.889,233.562 				zM 241.955,236.259L 242.293,234.684L 243.979,235.471L 244.426,236.82L 243.753,237.493 				zM 244.09,245.134L 244.426,246.033L 243.529,246.932L 241.73,247.043L 241.843,245.697 				zM 256.338,254.011L 256.898,253.788L 257.012,254.684L 256.338,255.022L 256.785,256.145L 254.764,255.022L 255.55,253.338 				zM 261.279,257.27L 260.158,257.831L 259.37,257.043L 260.831,256.82 				zM 256.00,449.078C 131.695,449.078, 30.922,348.308, 30.922,224.00S 131.695-1.078, 256.00-1.078
-					c 124.303,0.00, 225.078,100.771, 225.078,225.078S 380.303,449.078, 256.00,449.078z M 62.028,224.00c0.00,41.132, 12.838,79.241, 34.674,110.627
-					l 2.504-1.877l-1.513-6.073l 5.559-1.521l-1.013,8.093l 4.553,0.503l0.00,10.625 l 4.552,0.00 c0.00,0.00, 0.80-2.062, 1.642-4.224
-					c 0.923-2.376, 1.899-4.88, 1.899-4.88l 5.055-5.568c0.00,0.00-6.068-1.508-8.088-1.508c-2.022,0.00-1.013-8.093-1.013-8.093l 7.077-2.525
-					l 4.572,8.444l 10.601,11.782l 5.056,15.674l 9.612,9.111l-5.565,4.033l 6.073,4.047l 0.505,5.568l-17.701-5.056l-0.558,0.666
-					c 9.638,8.19, 20.077,15.455, 31.201,21.653l 8.299-3.614l-5.559-10.623l-11.133,0.00 l-2.024-9.604l 9.106,0.00 l 13.149,8.095l 9.106,9.096
-					l 1.513,8.599l-13.149,1.009l 9.103,6.073l 8.598-1.521l-1.514-9.099l 11.632,7.091l 2.027-5.568l 2.53-8.095l-6.577-8.093
-					l-7.082-6.572l-10.623,1.521l 5.06-10.619l-9.61,1.517l-16.184-16.692l 4.046-5.567l 13.149,1.018l 11.128,3.546l 14.167,1.508
-					l 6.572,1.519c0.00,0.00,0.00,4.046-0.507,6.572c-0.501,2.53, 5.06-0.50, 5.06-0.50l 6.071,3.532l 4.552,14.167l 16.688,7.595l-2.525,4.037
-					l 4.046,5.064l-13.148,2.026l 3.539,5.056l-16.692,5.568l-8.599,0.00 l 3.034,7.581l 3.539,3.547l-0.284,0.284
-					c 14.076,3.244, 28.72,5.018, 43.787,5.018c 23.479,0.00, 45.979-4.172, 66.808-11.817l-0.507-1.191l-8.423,0.563l0.00-5.064 l 3.376-2.246
-					l0.00-4.493 l 2.806-3.93l-10.111,6.176l-6.735-3.372l 3.368-7.873l 1.688-8.986l 4.492-5.064l 10.665-1.684l-2.242-4.493l-2.25-6.752
-					l 9.556-6.176l-0.563-2.81l-17.979,15.176l-1.116-5.627l 7.859-7.865l 4.493-1.684l-10.11-2.246l-1.126-5.064l-7.298,7.315
-					l-4.501,9.548l-1.688,9.557l-4.501-5.618l 3.376-13.487l 5.618-3.943l-2.242-12.914l-3.376,1.688l 0.563-6.752l-5.063,0.563
-					l-5.052,7.315l-6.176,0.00 l-8.995,1.125l-8.999-0.563l-8.423-6.752l-5.622-9.548l-11.804-8.994l-1.125-5.056l0.00-6.189 l 2.809-6.177
-					l 5.623,4.493l 1.683-3.367l 2.814-5.056l 0.563-1.134l 2.809-3.372l 5.061,3.368l-0.563,12.366l 6.176,7.873
-					c0.00,0.00, 0.313,1.332, 0.664,2.869c 0.479,2.046, 1.024,4.433, 1.024,4.433l 2.242,6.19l 3.943-0.563l-1.122-5.064l-2.259-11.232
-					l 10.691,1.125l 3.935-1.125l-8.436-2.255l 1.12-5.618l-9.557-6.176l 0.563-6.19l-8.423-2.25l-1.684-4.493l-6.748,2.247l-4.497,0.00 
-					l0.00,9.557 l-5.06-1.697l0.00-5.055 l-14.051-11.245l-7.869-2.809l-3.369-3.93l-11.245,2.809l-0.563-5.056l 7.306-2.817l-0.563-10.104
-					l-20.235,0.563l-2.81-4.493l-2.809-7.874l-3.376-6.752l 5.06-5.618l 5.623-6.739L 207.109,224.00l 1.125,6.739l 3.939,3.38l 6.743,2.247
-					l-0.563,4.493l 6.185,1.688l 8.988,1.684l 5.623-6.739l 10.115-7.315l 4.496-7.297l0.00-3.371 l 5.614,3.371l-2.805,5.051l 1.122,5.626
-					l-5.057,2.247l-4.496,6.176l 2.809,8.999l 5.051-7.311l 7.302-5.618l 2.805-10.12l 7.311-5.614l 1.696-6.189l 3.372,7.311l-1.125,3.372
-					l 1.685,2.809l 10.664,8.994l 2.251,11.246l 4.501,3.372l 5.618-0.563l 8.432,8.436l 0.563-6.752l 12.353-3.93l0.00-6.19 l-10.103,0.00 
-					l-15.175-7.86l-12.366-6.752l 3.371-7.302l 11.236-2.246l 6.19-2.81l 6.743,4.492l 0.554-19.113l-19.113-3.93l-20.209,5.627
-					l-7.873-6.189l 3.367-3.368l-6.189,1.121l-19.664,7.311l-5.618-0.571l-4.496,7.311l0.00,8.995 l-10.121,0.00 l-5.617,1.125l-17.987-3.943
-					l-14.05,1.134l-6.181-3.381l-3.934-0.563l-2.251-7.297l-12.924-8.999l-17.989-13.486l-1.125-17.413l-5.06-11.245l 0.563-6.735
-					l 4.497-7.878l 12.929-21.91l 13.487-6.185l 22.481-1.688l-1.125,9.562l-5.06,2.806l 2.247,5.055l 3.938-4.492l 3.93-11.805
-					l 16.861-1.125l 6.743-6.734l 9.553-3.943l 1.125-16.297l 10.121-12.928l 9.553-16.855l-8.428-10.119l 8.607-13.391
-					C 145.055,33.967, 62.028,119.269, 62.028,224.00z M 322.468,41.723l 23.449,17.047l-8.423,20.802l 26.975,35.397l 8.423,22.482
-					l 3.93,12.37l-14.032-6.753l-8.44-1.688l-20.784,12.933l-6.19,14.05l-7.868,7.869l-10.111,22.473l 8.423-6.739l 15.747-17.422
-					l 5.618-7.868l 11.228-5.619l 3.376-14.612l 13.495,8.986l 16.292,20.238l 7.869,20.79l-6.186,5.051l-3.372,6.189l-3.938-7.311
-					l-7.864-8.985l-11.24,12.366l-3.368,9.544l 7.869-1.685l 7.864-3.93l 11.241,3.93l 6.753-2.245l 17.967,12.365l 10.133-5.626
-					l 6.176,3.38l 13.438-21.158l 6.656,6.348l 0.132,8.063l 0.554,24.169l 4.132,11.452c 1.008-7.99, 1.583-16.116, 1.583-24.38
-					C 449.972,140.229, 396.859,68.854, 322.468,41.723z" />
-<glyph unicode="&#xe04d;" d="M 116.838,355.64c-25.396,0.00-47.242-8.403-65.542-25.208c-19.043-17.926-28.57-40.33-28.57-67.218
-					c0.00-17.926, 5.188-34.731, 15.647-50.416c 9.337-14.563, 19.09-23.903, 31.889-28.012l0.00-1.121 
-					c-12.799-5.224-18.482-18.295-18.482-39.209c0.00-16.062, 5.686-28.011, 18.482-35.854l0.00-1.121 
-					c-35.327-11.572-51.496-33.047-51.496-64.414c0.00-27.268, 11.874-47.244, 35.033-59.939C 72.094-26.959, 95.588-32.00, 123.972-32.00
-					c 69.085,0.00, 103.703,28.941, 103.703,86.832c0.00,36.223-26.661,58.441-80.063,66.658c-12.323,1.863-21.644,6.348-27.991,13.445
-					c-4.854,4.854-7.271,9.709-7.271,14.563c0.00,13.816, 7.479,21.848, 22.41,24.088c 22.779,3.357, 41.364,13.912, 55.743,31.648
-					c 14.375,17.74, 21.565,38.559, 21.565,62.458c0.00,7.469-2.26,15.498-5.244,24.086c 9.709,2.244, 16.524,4.297, 21.646,6.166L 228.47,355.64 
-					c-22.526-8.964-43.495-13.442-61.421-13.442C 151.361,351.159, 135.136,355.64, 116.838,355.64z M 123.00,76.115
-					c 31.372,0.00, 47.052-9.521, 47.052-28.57c0.00-20.168-14.377-30.246-43.132-30.246c-32.862,0.00-49.293,9.711-49.293,29.127
-					C 77.626,66.221, 92.749,76.115, 123.00,76.115z M 119.079,224.00c-23.527,0.00-35.293,12.882-35.293,38.654
-					c0.00,27.631, 11.766,41.453, 35.293,41.453c 11.201,0.00, 19.979-4.298, 26.326-12.884c 5.229-7.845, 7.845-17.18, 7.845-28.011
-					C 153.25,237.073, 141.857,224.00, 119.079,224.00z M 289.395,480.00c-10.828,0.00-20.069-4.107-27.727-12.324
-					c-7.661-8.218-11.489-18.108-11.489-29.688c0.00-11.205, 3.829-20.91, 11.489-29.129c 7.654-8.217, 16.896-12.32, 27.727-12.32
-					c 10.455,0.00, 19.514,4.104, 27.17,12.32c 7.656,8.219, 11.48,17.924, 11.48,29.129c0.00,11.58-3.824,21.472-11.48,29.688
-					C 308.905,475.893, 299.85,480.00, 289.395,480.00z M 320.768,352.001l-63.303,0.00 c 0.748-7.168-0.32-18.021-0.32-35.57l0.00-174.216 
-					c0.00-17.928, 1.068-32.387, 0.32-38.018l 63.303,0.00 c-0.75,8.188-2.697,22.334-2.697,41.379L 318.071,317.549 
-					C 318.067,333.981, 320.018,344.833, 320.768,352.001z M 460.371,157.90c-16.437,0.00-24.541,12.514-24.541,37.533L 435.83,298.753 l 24.932,0.00 
-					c 4.479,0.00, 8.516,0.246, 13.559-0.123c 5.043-0.374, 7.076-0.125, 9.64-0.125L 483.961,352.00 l-48.129,0.00 l0.00,23.808 c0.00,8.961, 1.407,17.151, 2.526,22.271
-					l-64.979,0.00 c 1.121-5.12, 1.014-12.938, 1.014-23.395L 374.393,352.00 l-28.16,0.00 l0.00-53.494 c 7.683,1.12, 14.545,1.678, 19.398,1.678l 8.762-0.559l0.00-0.292 l0.00,0.00
-					l0.00-101.101 c0.00-31.371, 3.979-54.336, 11.818-68.90c 10.461-19.42, 28.811-29.129, 56.067-29.129c 19.425,0.00, 36.56,3.732, 49.357,11.205
-					l0.00,56.016 C 481.398,161.074, 471.944,157.90, 460.371,157.90z" />
-<glyph unicode="&#xe04e;" d="M 444.797,255.998L 398.073,302.721L 479.835,384.482L 416.485,447.833L 334.724,366.071L 288.00,412.795L 288.00,255.998 				
-					zM 67.123,255.998L 113.847,302.721L 32.085,384.482L 95.435,447.833L 177.196,366.071L 223.92,412.795L 223.92,255.998 
-									zM 444.797,191.92L 398.073,145.196L 479.835,63.436L 416.485,0.085L 334.724,81.846L 288.00,35.123L 288.00,191.92 				
-					zM 67.123,191.92L 113.847,145.196L 32.085,63.436L 95.435,0.085L 177.196,81.846L 223.92,35.123L 223.92,191.92 
-									z" />
-<glyph unicode="&#xe04f;" d="M 177.285,208.636L 78.726,110.077L 32.004,156.801L 32.004,0.004L 188.801,0.004L 142.079,46.728L 240.636,145.286 						zM 188.801,447.996L 32.004,447.996L 32.004,291.199L 78.726,337.922L 177.285,239.364L 240.636,302.714L 142.079,401.272 						zM 334.714,208.636L 271.364,145.286L 369.923,46.728L 323.199,0.004L 479.996,0.004L 479.996,156.801L 433.272,110.077 						zM 323.199,447.996L 369.923,401.272L 271.364,302.714L 334.714,239.364L 433.272,337.922L 479.996,291.199L 479.996,447.996 						z" />
-<glyph unicode="&#xe050;" d="M 466.766,288.599c-68.667,0.00-338.019,0.00-356.766,0.00c-21.50,0.00-26.203-21.411-26.203-21.411L 55.08,82.854
-						c-1.239-7.888-14.837-6.083-13.466,2.646l 15.637,202.498c0.00,0.00, 4.249,32.602, 39.249,32.602c 28.227,0.00, 262.052,0.00, 351.496,0.00L 447.996,335.31 
-						c0.00,9.222-7.475,16.688-16.691,16.688L 216.757,351.998 l-43.624,58.994l-0.089-0.026c-3.031,3.094-7.244,5.032-11.916,5.032L 48.686,415.998 
-						c-9.211,0.00-16.683-7.475-16.683-22.561l 1.505-312.185c0.00-9.223, 7.472-16.688, 16.683-16.688l 381.114,0.00 
-						c 9.217,0.00, 16.688,7.465, 16.691,16.688l 35.601,185.334C 483.597,266.586, 489.336,288.285, 466.766,288.599z" />
-<glyph unicode="&#xe051;" d="M 431.305,351.998L 216.757,351.998 l-43.624,58.994l-0.089-0.026c-3.031,3.094-7.244,5.032-11.916,5.032L 48.686,415.998 
-						c-9.211,0.00-16.683-7.475-16.683-22.561l 1.505-312.185c0.00-9.223, 7.472-16.688, 16.683-16.688l 381.114,0.00 
-						c 9.217,0.00, 16.688,7.465, 16.691,16.688L 447.996,287.50 l0.00,47.81 C 447.996,344.532, 440.521,351.998, 431.305,351.998z M 240.00,95.205
-						c-62.186,0.00-112.596,50.41-112.596,112.596c0.00,62.181, 50.41,112.591, 112.596,112.591c 62.184,0.00, 112.596-50.41, 112.596-112.591
-						C 352.596,145.615, 302.184,95.205, 240.00,95.205zM 223.48,241.22L 161.002,241.223L 161.002,174.746L 223.478,174.745L 223.478,130.076L 317.874,207.981L 223.48,285.901 					z" />
-<glyph unicode="&#xe052;" d="M 160.50,223.696L 319.50,223.696L 319.50,191.902L 160.50,191.902zM 431.305,351.998L 216.757,351.998 l-43.624,58.994l-0.089-0.026c-3.031,3.094-7.244,5.032-11.916,5.032L 48.686,415.998 
-								c-9.211,0.00-16.683-7.475-16.683-22.561l 1.505-312.185c0.00-9.223, 7.472-16.688, 16.683-16.688l 381.114,0.00 
-								c 9.217,0.00, 16.688,7.465, 16.691,16.688L 447.996,287.50 l0.00,47.81 C 447.996,344.532, 440.521,351.998, 431.305,351.998z M 240.00,95.205
-								c-62.186,0.00-112.596,50.41-112.596,112.596c0.00,62.181, 50.41,112.591, 112.596,112.591c 62.184,0.00, 112.596-50.41, 112.596-112.591
-								C 352.596,145.615, 302.184,95.205, 240.00,95.205z" />
-<glyph unicode="&#xe053;" d="M 431.305,351.998L 216.757,351.998 l-43.624,58.994l-0.089-0.026c-3.031,3.094-7.244,5.032-11.916,5.032L 48.686,415.998 
-								c-9.211,0.00-16.683-7.475-16.683-22.561l 1.505-312.185c0.00-9.223, 7.472-16.688, 16.683-16.688l 381.114,0.00 
-								c 9.217,0.00, 16.688,7.465, 16.691,16.688L 447.996,287.50 l0.00,47.81 C 447.996,344.532, 440.521,351.998, 431.305,351.998z M 240.00,95.205
-								c-62.186,0.00-112.596,50.41-112.596,112.596c0.00,62.181, 50.41,112.591, 112.596,112.591c 62.184,0.00, 112.596-50.41, 112.596-112.591
-								C 352.596,145.615, 302.184,95.205, 240.00,95.205zM 255.898,287.297L 224.102,287.297L 224.102,223.696L 160.50,223.696L 160.50,191.902L 224.102,191.902L 224.102,128.301L 255.898,128.301L 255.898,191.902L 319.50,191.902L 319.50,223.696L 255.898,223.696 							z" />
-<glyph unicode="&#xe054;" d="M 431.305,351.998L 216.757,351.998 l-43.624,58.994l-0.089-0.026c-3.031,3.094-7.244,5.032-11.916,5.032L 48.686,415.998 
-						c-9.211,0.00-16.683-7.475-16.683-22.561l 1.505-312.185c0.00-9.223, 7.472-16.688, 16.683-16.688l 381.114,0.00 
-						c 9.217,0.00, 16.688,7.465, 16.691,16.688L 447.996,287.50 l0.00,47.81 C 447.996,344.532, 440.521,351.998, 431.305,351.998z" />
-<glyph unicode="&#xe055;" d="M 63.252,447.998L 95.65,447.998L 95.65,0.002L 63.252,0.002zM 401.471,415.998l-95.14-95.145l 96.834-96.851L 160.01,224.002 L 160.01,415.998 L 401.471,415.998  M 478.723,447.998L 128.01,447.998 l0.00-255.996 l 352.40,0.00 
-						L 351.583,320.851L 478.723,447.998L 478.723,447.998z" />
-<glyph unicode="&#xe056;" d="M 351.583,320.851L 478.723,447.998L 128.01,447.998L 128.01,192.002L 480.41,192.002 					zM 63.252,447.998L 95.65,447.998L 95.65,0.002L 63.252,0.002z" />
-<glyph unicode="&#xe057;" d="M 160.003,415.998L 160.003,237.18L 415.996,448.00L 415.996,0.00L 160.003,210.82L 160.003,32.002L 64.003,32.002L 64.003,415.998 				z" />
-<glyph unicode="&#xe058;" d="M 63.145,447.998L 63.145,383.998L 213.144,212.286L 213.144,40.859L 298.856-1.997L 298.856,212.286L 448.855,383.998L 448.855,447.998 					z" />
-<glyph unicode="&#xe059;" d="M 503.611,146.991l-45.414,44.548c 13.105,11.496, 24.191,22.291, 32.663,31.172
-									c-2.193,2.337-23.248,22.273-27.113,26.138c-2.402-2.128-104.908-114.769-207.756-114.769
-									c-86.444,0.00-181.754,86.349-207.225,115.06c-7.362-6.769-24.63-23.638-27.437-26.429
-									c 8.803-9.076, 19.852-19.751, 32.662-30.985L 8.387,146.991c-8.287-8.13-8.416-21.441-0.285-29.729
-									c 4.118-4.196, 9.559-6.301, 15.007-6.301c 5.313,0.00, 10.63,2.001, 14.723,6.017l 48.974,48.041
-									c 15.042-11.323, 31.434-22.418, 48.718-32.302l-29.787-62.356c-5.004-10.48-0.569-23.027, 9.908-28.036
-									c 2.051-0.979, 4.182-1.594, 6.316-1.876c 8.783-1.159, 17.691,3.36, 21.715,11.785l 29.501,61.759
-									c 20.12-8.455, 40.923-14.608, 61.80-17.17l0.00-64.193 c0.00-11.61, 9.412-21.022, 21.023-21.022s 21.023,9.412, 21.023,21.022l0.00,64.198 
-									c 20.775,2.549, 41.49,8.65, 61.519,17.008l 30.169-61.632c 4.108-8.391, 13.056-12.824, 21.826-11.583
-									c 2.136,0.304, 4.261,0.941, 6.299,1.943c 10.428,5.108, 14.742,17.697, 9.639,28.126l-30.236,61.768
-									c 17.484,9.933, 34.023,21.076, 49.119,32.401l 48.812-47.88c 4.092-4.018, 9.407-6.018, 14.72-6.018
-									c 5.447,0.00, 10.89,2.104, 15.009,6.301C 512.029,125.55, 511.90,138.861, 503.611,146.991z" />
-<glyph unicode="&#xe05a;" d="M 255.992,349.715c-116.967,0.00-234.758-127.177-234.758-127.177s 117.791-127.166, 234.758-127.166
-										c 116.984,0.00, 234.773,127.166, 234.773,127.166S 372.977,349.715, 255.992,349.715z M 255.992,133.905
-										c-49.705,0.00-90.00,40.261-90.00,90.011c0.00,49.703, 40.296,89.989, 90.00,89.989c 49.729,0.00, 90.023-40.286, 90.023-89.989
-										C 346.018,174.166, 305.721,133.905, 255.992,133.905zM 255.992,268.006c-24.32,0.00-44.104-19.78-44.104-44.09c0.00-24.313, 19.784-44.112, 44.104-44.112
-										c 24.332,0.00, 44.126,19.80, 44.126,44.112C 300.12,248.225, 280.326,268.006, 255.992,268.006z" />
-<glyph unicode="&#xe05b;" d="M 468.328,387.262l-47.784,48.149c-12.065,12.141-31.647,12.192-43.80,0.158l-30.197-29.965l 91.373-92.049
-							l 30.208,29.928C 480.271,355.555, 480.381,375.141, 468.328,387.262z M 85.751,146.693l 91.38-92.024l 238.881,237.066
-							l-91.432,92.096L 85.751,146.693z M 49.536,65.123L 32.512,2.57l 62.703,16.563l 58.26,15.346l-88.153,88.86L 49.536,65.123z" />
-<glyph unicode="&#xe05c;" d="M 322.097,448.198L 64.002,448.198 l0.00-448.696 l 352.527,0.00 L 416.529,354.50 L 322.097,448.198z M 319.368,415.375l 64.453-63.377l-64.453,0.00 L 319.368,415.375 z
-				 M 383.996,32.002L 96.002,32.002 L 96.002,415.998 L 288.00,415.998 l0.00-96.00 l 95.996,0.00 L 383.996,32.002 zM 127.404,207.801c0.00-62.186, 50.41-112.596, 112.596-112.596c 62.184,0.00, 112.596,50.41, 112.596,112.596
-				c0.00,62.181-50.412,112.591-112.596,112.591C 177.814,320.392, 127.404,269.982, 127.404,207.801z M 319.50,223.696l0.00-31.794 l-159.00,0.00 l0.00,31.794 
-				L 319.50,223.696 z" />
-<glyph unicode="&#xe05d;" d="M 322.097,448.198L 64.002,448.198 l0.00-448.696 l 352.527,0.00 L 416.529,354.50 L 322.097,448.198z M 319.368,415.375l 64.453-63.377l-64.453,0.00 L 319.368,415.375 z
-				 M 383.996,32.002L 96.002,32.002 L 96.002,415.998 L 288.00,415.998 l0.00-96.00 l 95.996,0.00 L 383.996,32.002 zM 127.404,207.801c0.00-62.186, 50.41-112.596, 112.596-112.596c 62.184,0.00, 112.596,50.41, 112.596,112.596
-				c0.00,62.181-50.412,112.591-112.596,112.591C 177.814,320.392, 127.404,269.982, 127.404,207.801z M 319.50,223.696l0.00-31.794 l-63.602,0.00 
-				l0.00-63.602 l-31.797,0.00 l0.00,63.602 L 160.50,191.902 l0.00,31.794 l 63.602,0.00 l0.00,63.601 l 31.797,0.00 l0.00-63.601 L 319.50,223.696 z" />
-<glyph unicode="&#xe05e;" d="M 322.097,448.198L 64.002,448.198 l0.00-448.696 l 352.527,0.00 L 416.529,354.50 L 322.097,448.198z M 319.368,415.375l 64.453-63.377l-64.453,0.00 L 319.368,415.375 z
-					 M 96.002,32.002L 96.002,415.998 L 288.00,415.998 l0.00-96.00 l 95.996,0.00 l0.00-287.996 L 96.002,32.002 z" />
-<glyph unicode="&#xe05f;" d="M 339.229,149.373c 0.009-0.672, 0.054-1.321, 0.054-1.988c0.00-68.036-55.351-123.383-123.39-123.383
-							c-68.031,0.00-123.383,55.347-123.383,123.383c0.00,41.116, 20.236,77.581, 51.258,100.014l-4.197,36.865
-							c-47.956-26.845-80.46-78.124-80.46-136.878c0.00-86.454, 70.329-156.783, 156.783-156.783c 73.287,0.00, 134.963,50.55, 152.064,118.604
-							L 339.229,149.373zM 155.871,409.356A39.893,39.893 540.00 1 0 235.657,409.356A39.893,39.893 540.00 1 0 155.871,409.356zM 452.941,100.229l-89.518,125.166c-4.685,6.555-12.505,9.654-20.441,8.976c-0.591,0.056-1.184,0.105-1.783,0.105
-						L 238.941,234.476 l-2.539,22.263l 76.006,0.00 c 8.842,0.00, 16.009,7.165, 16.009,16.004c0.00,8.837-7.167,16.001-16.009,16.001l-79.647,0.00 l-4.157,36.556
-						c-2.432,21.383-21.74,36.741-43.119,34.307c-21.383-2.437-36.741-21.741-34.305-43.117l 11.749-103.237
-						c 2.276-19.967, 19.247-34.658, 38.883-34.55c 0.067,0.00, 0.129-0.015, 0.201-0.015l 133.794,0.00 l 76.77-107.339
-						c 7.328-10.256, 22.315-12.11, 33.468-4.13C 457.188,75.191, 460.277,89.973, 452.941,100.229z" />
-<glyph unicode="&#xe060;" d="M 380.476,96.165A36.94,36.94 540.00 1 0 454.356,96.16500000000002A36.94,36.94 540.00 1 0 380.476,96.16500000000002zM 137.084,133.105c-20.396,0.00-36.936-16.539-36.936-36.939c0.00-20.402, 16.54-36.941, 36.936-36.941
-						c 20.406,0.00, 36.945,16.539, 36.945,36.941C 174.03,116.566, 157.491,133.105, 137.084,133.105zM 32.089,351.998L 319.996,351.998L 319.996,160.002L 32.089,160.002zM 447.996,287.998l-96.123,0.00 L 351.873,133.11 L 165.726,133.11 c 11.016-8.554, 18.113-21.914, 18.113-36.944l 186.825,0.00 
-						c0.00,25.823, 20.926,46.754, 46.752,46.754c 25.818,0.00, 46.752-20.931, 46.752-46.754l 6.414,0.00 c 5.15,0.00, 9.328,4.176, 9.328,9.332l0.00,18.005 
-						L 479.91,223.999 L 447.996,287.998z M 384.295,209.539l 0.115,46.223l 41.301,0.00 l 22.285-46.223L 384.295,209.539 zM 108.444,133.11L 32.196,133.11 L 32.10,119.348c0.00,0.00-1.209-23.182, 22.168-23.182s 25.151,0.00, 25.151,0.00L 90.33,96.166 
-						C 90.33,111.196, 97.428,124.557, 108.444,133.11z" />
-<glyph unicode="&#xe061;" d="M 462.879,367.121L 399.121,430.885L 256.00,287.769L 111.883,431.883L 48.119,368.119L 192.234,224.002L 47.115,78.885L 110.879,15.114L 256.00,160.239L 400.125,16.112L 463.883,79.883L 319.762,224.002 								z" />
-<glyph unicode="&#xe062;" d="M 256.50,450.167c-123.433,0.00-223.495-30.976-223.495-58.084c0.00-7.91,0.00-78.09,0.00-86.00c0.00-27.108, 100.063-58.084, 223.495-58.084
-						c 123.434,0.00, 223.496,30.976, 223.496,58.084c0.00,7.91,0.00,78.09,0.00,86.00C 479.996,419.19, 379.934,450.167, 256.50,450.167z M 256.50,352.218
-						c-92.096,0.00-166.755,16.965-166.755,34.191c0.00,17.226, 74.659,37.191, 166.755,37.191c 92.097,0.00, 166.757-19.965, 166.757-37.191
-						C 423.257,369.183, 348.597,352.218, 256.50,352.218zM 256.50,74.967c-121.174,0.00-219.815,27.18-223.385,53.602c-0.066-0.492-0.11-0.986-0.11-1.482c0.00-7.91,0.00-70.09,0.00-78.00
-						c0.00-27.108, 100.063-58.084, 223.495-58.084c 123.434,0.00, 223.496,30.976, 223.496,58.084c0.00,7.91,0.00,70.09,0.00,78.00
-						c0.00,0.496-0.044,0.99-0.11,1.482C 476.315,102.146, 377.675,74.967, 256.50,74.967zM 256.50,199.684c-121.174,0.00-219.815,30.18-223.385,56.602c-0.066-0.492-0.11-0.986-0.11-1.482c0.00-7.91,0.00-70.09,0.00-78.00
-						c0.00-27.108, 100.063-58.084, 223.495-58.084c 123.434,0.00, 223.496,30.976, 223.496,58.084c0.00,7.91,0.00,70.09,0.00,78.00
-						c0.00,0.496-0.044,0.99-0.11,1.482C 476.315,229.863, 377.675,199.684, 256.50,199.684z" />
-<glyph unicode="&#xe063;" d="M 32.003,384.085l0.00-256.083 l 447.994,0.00 L 479.997,384.085 L 32.003,384.085 z M 447.997,192.002
-				c-16.979,0.00-31.844-16.662-31.844-32.00c-85.539,0.00-312.823,0.00-319.494,0.00c0.00,15.988-12.478,33.004-32.656,33.004
-				c0.00,34.088,0.00,115.911,0.00,126.904c 23.808,0.00, 30.772,17.437, 30.772,32.176c 13.851,0.00, 306.301,0.00, 321.537,0.00
-				c0.00-15.313, 14.154-31.521, 31.685-31.521C 447.997,310.141, 447.997,199.875, 447.997,192.002zM 195.765,256.043A60.235,76.165 540.00 1 0 316.235,256.043A60.235,76.165 540.00 1 0 195.765,256.043zM 32.003,96.002L 479.997,96.002L 479.997,64.002L 32.003,64.002z" />
-<glyph unicode="&#xe064;" d="M 479.748,355.514c0.00,15.757-12.77,28.528-28.528,28.528L 60.78,384.042 c-15.756,0.00-28.528-12.771-28.528-28.528l0.00-263.027 
-					c0.00-15.759, 12.772-28.528, 28.528-28.528l 390.44,0.00 c 15.759,0.00, 28.528,12.77, 28.528,28.528L 479.748,355.514 z M 75.163,352.042l 362.455,0.00 
-					c 5.122,0.00, 10.629-5.509, 10.629-10.628l0.00-53.173 L 64.252,288.241 l0.00,53.173 C 64.252,346.533, 70.047,352.042, 75.163,352.042z M 437.617,96.046
-					L 75.163,96.046 c-5.116,0.00-10.91,3.203-10.91,8.32L 64.253,223.217 l 383.994,0.00 l0.00-118.851 C 448.246,99.249, 442.739,96.046, 437.617,96.046z" />
-<glyph unicode="&#xe065;" d="M 259.116,414.717C 136.071,417.138, 34.79,341.32, 32.90,245.367c-0.652-33.359, 10.793-64.75, 31.171-91.627l-0.004,0.00 
-									c 35.045-45.026-32.065-135.984-32.065-135.984l 141.793,62.193c 24.33-7.688, 50.769-12.167, 78.473-12.713
-									c 123.042-2.428, 224.325,73.396, 226.217,169.349C 480.369,332.54, 382.155,412.291, 259.116,414.717z" />
-<glyph unicode="&#xe066;" d="M 256.00-0.496C 132.211-0.496, 31.504,100.216, 31.504,224.00C 31.504,347.789, 132.211,448.496, 256.00,448.496
-							c 123.789,0.00, 224.496-100.708, 224.496-224.496C 480.496,100.216, 379.789-0.496, 256.00-0.496z M 256.00,394.617
-							c-94.078,0.00-170.617-76.539-170.617-170.617c0.00-94.082, 76.54-170.617, 170.617-170.617c 94.087,0.00, 170.617,76.535, 170.617,170.617
-							C 426.617,318.078, 350.087,394.617, 256.00,394.617zM 357.43,238.941l-83.642,0.00 l0.00,102.79 c0.00,12.339-9.996,22.339-22.345,22.339c-12.339,0.00-22.344-10.00-22.344-22.339l0.00-125.454 
-						c0.00-12.165, 9.87-22.025, 22.029-22.025L 357.43,194.252 c 12.339,0.00, 22.345,10.005, 22.345,22.344
-						C 379.774,228.936, 369.769,238.941, 357.43,238.941z" />
-<glyph unicode="&#xe067;" d="M 182.964,32.002c-25.798,69.719-85.798,136.165-148.651,176.979l 29.583,48.595
-								c 36.183-14.439, 115.92-60.484, 144.845-103.773c 47.26,107.101, 130.196,204.28, 238.443,265.649l 30.501-48.477
-								c-106.48-79.458-184.927-215.304-222.155-338.973L 182.964,32.002 z" />
-<glyph unicode="&#xe068;" d="M 463.271,351.953L 127.855,351.953 L 53.729,425.512C 43.326,435.835, 26.523,435.77, 16.20,425.367
-									C 5.877,414.964, 5.942,398.162, 16.345,387.839l 86.328-85.666l 34.09-156.646c0.00-9.678, 7.846-17.525, 17.525-17.525l 268.546,0.00 
-									c 9.686,0.00, 17.525,7.848, 17.525,17.525l 40.437,188.903C 480.797,344.112, 472.957,351.953, 463.271,351.953zM 334.075,48.083A47.978,47.978 540.00 1 0 430.031,48.08300000000003A47.978,47.978 540.00 1 0 334.075,48.08300000000003zM 144.259,48.083A47.978,47.978 540.00 1 0 240.215,48.08300000000003A47.978,47.978 540.00 1 0 144.259,48.08300000000003z" />
-<glyph unicode="&#xe069;" d="M 256.00,447.998C 132.289,447.998, 32.001,347.711, 32.001,224.00S 132.289,0.002, 256.00,0.002S 479.999,100.289, 479.999,224.00
-							S 379.711,447.998, 256.00,447.998z M 145.692,334.307c 29.464,29.464, 68.639,45.691, 110.308,45.691
-							c 28.047,0.00, 54.958-7.361, 78.544-21.152L 121.152,145.459c-13.79,23.585-21.151,50.495-21.151,78.541
-							C 100.001,265.668, 116.228,304.843, 145.692,334.307z M 366.308,113.693c-29.464-29.465-68.639-45.691-110.308-45.691
-							c-28.047,0.00-54.958,7.361-78.544,21.153l 213.387,213.394c 13.794-23.587, 21.156-50.50, 21.156-78.549
-							C 411.999,182.331, 395.772,143.157, 366.308,113.693z" />
-<glyph unicode="&#xe06a;" d="M 172.063,193.823L 217.844,193.823L 217.844,148.066L 172.063,148.066zM 236.52,132.598L 282.242,132.598L 282.242,86.848L 236.52,86.848zM 172.063,132.598L 217.844,132.598L 217.844,86.848L 172.063,86.848zM 172.063,255.05L 217.844,255.05L 217.844,209.319L 172.063,209.319zM 368.475,344.174c 10.469,0.00, 18.949,8.495, 18.949,18.977L 387.424,428.535 c-0.001,10.481-8.481,18.964-18.949,18.964
-										c-10.494,0.00-18.979-8.483-18.979-18.964l0.00-65.385 C 349.50,352.669, 357.981,344.174, 368.475,344.174zM 144.372,344.174c 10.467,0.00, 18.946,8.495, 18.946,18.977L 163.318,428.535 c0.00,10.481-8.479,18.964-18.946,18.964
-										c-10.495,0.00-18.979-8.483-18.979-18.964l0.00-65.385 C 125.395,352.669, 133.877,344.174, 144.372,344.174zM 107.603,193.823L 153.36,193.823L 153.36,148.066L 107.603,148.066zM 107.603,132.598L 153.36,132.598L 153.36,86.848L 107.603,86.848zM 236.52,193.823L 282.242,193.823L 282.242,148.066L 236.52,148.066zM 365.40,193.823L 411.155,193.823L 411.155,148.066L 365.40,148.066zM 365.40,255.05L 411.155,255.05L 411.155,209.319L 365.40,209.319zM 393.676,414.993l0.00-20.091 c 7.886-6.972, 12.886-17.154, 12.886-28.519c0.00-21.04-17.044-38.116-38.088-38.116
-										c-21.069,0.00-38.114,17.076-38.114,38.116c0.00,11.365, 5.001,21.547, 12.885,28.519L 343.245,414.993 L 169.575,414.993 l0.00-20.091 
-										c 7.885-6.972, 12.885-17.154, 12.885-28.519c0.00-21.04-17.044-38.116-38.087-38.116c-21.07,0.00-38.114,17.076-38.114,38.116
-										c0.00,11.365, 5.00,21.547, 12.884,28.519L 119.143,414.993 L 32.91,414.993 l0.00-415.021 l 447.103,0.00 L 480.013,414.993 L 393.676,414.993 z M 75.331,42.393L 75.331,307.647 l 363.134,0.00 
-										l 0.001-265.254L 75.331,42.393 zM 236.52,255.05L 282.242,255.05L 282.242,209.319L 236.52,209.319zM 300.972,255.05L 346.727,255.05L 346.727,209.319L 300.972,209.319zM 300.972,132.598L 346.727,132.598L 346.727,86.848L 300.972,86.848zM 300.972,193.823L 346.727,193.823L 346.727,148.066L 300.972,148.066z" />
-<glyph unicode="&#xe06b;" d="M 317.874,207.586L 223.48,285.505L 223.48,240.826L 161.002,240.828L 161.002,174.352L 223.478,174.35L 223.478,129.682 					zM 127.404,207.801c0.00,33.476, 14.616,63.534, 37.808,84.158L 32.002,336.244l0.00-260.247 L 224.50,12.002l0.00,84.27 
-						C 169.65,103.824, 127.404,150.875, 127.404,207.801zM 240.00,320.392c 15.104,0.00, 29.512-2.982, 42.674-8.377l 166.323,55.294L 240.50,436.634L 32.002,367.309l 165.772-55.11
-						C 210.815,317.478, 225.066,320.392, 240.00,320.392zM 352.596,207.801c0.00-56.84-42.12-103.833-96.848-111.494l0.00-84.305 l 192.497,63.995L 448.245,336.244 l-133.391-44.345
-						C 338.008,271.276, 352.596,241.244, 352.596,207.801z" />
-<glyph unicode="&#xe06c;" d="M 32.002,75.997L 224.50,12.002L 224.50,272.249L 32.002,336.244 					zM 240.50,436.634L 32.002,367.309L 240.50,297.995L 448.997,367.309 					zM 255.748,12.002L 448.245,75.997L 448.245,336.244L 255.748,272.249 					z" />
-<glyph unicode="&#xe06d;" d="M 381.254,375.126c 11.729-16.323, 17.626-35.857, 17.626-58.604c0.00-23.444-5.932-42.296-17.78-56.524
-										c-6.646-7.991-16.385-15.30-29.295-21.893c 19.581-7.107, 34.383-18.403, 44.349-33.856
-										c 9.959-15.455, 14.956-34.229, 14.956-56.263c0.00-22.745-5.709-43.133-17.101-61.193
-										c-7.229-11.979-16.293-22.063-27.188-30.225c-12.258-9.372-26.718-15.826-43.383-19.271
-										c-16.664-3.508-34.728-5.213-54.244-5.213l-173.00,0.00 L 96.194,416.011 l 185.54,0.00 C 328.561,415.327, 361.734,401.689, 381.254,375.126z
-										 M 172.782,349.338l0.00-84.655 l 93.312,0.00 c 16.665,0.00, 30.194,3.166, 40.59,9.496c 10.396,6.346, 15.609,17.581, 15.609,33.748
-										c0.00,17.875-6.893,29.682-20.639,35.423c-11.854,3.987-26.969,5.988-45.366,5.988L 172.782,349.338 z M 172.782,201.115l0.00-102.344 l 93.22,0.00 
-										c 16.632,0.00, 29.604,2.229, 38.885,6.765c 16.813,8.317, 25.229,24.298, 25.229,47.914c0.00,19.983-8.161,33.698-24.479,41.147
-										c-9.093,4.188-21.879,6.324-38.354,6.518L 172.782,201.115 z" />
-<glyph unicode="&#xe06e;" d="M 448.146,103.733c-32.37,33.626-39.422,96.247-46.244,144.357C 391.786,319.403, 389.655,399.545, 288.00,410.034L 288.00,422.951 
-					c0.00,12.958-19.774,23.464-32.732,23.464c-12.957,0.00-31.266-10.506-31.266-23.464l0.00-12.935 
-					c-100.815-10.558-104.324-90.674-114.348-161.949c-6.768-48.132-13.766-110.76-45.87-144.402
-					c-6.481-6.794-8.294-16.796-4.60-25.428c 3.698-8.639, 12.184-14.235, 21.576-14.235l 350.482,0.00 c 9.406,0.00, 17.907,5.619, 21.597,14.286
-					C 456.516,86.938, 454.672,96.957, 448.146,103.733zM 256.00-14.555c 25.712,0.00, 46.557,20.845, 46.557,46.557l-93.113,0.00 C 209.443,6.29, 230.287-14.555, 256.00-14.555z" />
-<glyph unicode="&#xe06f;" d="M 460.282,399.933c-29.559,29.429-80.832,26.523-110.294-3.051L 141.657,187.507
-					c-21.036-21.129-23.084-57.451-1.914-78.236c 21.114-21.168, 57.359-19.016, 78.394,2.113l 129.454,130.282
-					c 5.135,4.709, 5.525,12.354, 0.21,18.147c-4.96,5.409-15.472,5.629-19.813,1.268L 199.015,131.397l0.00,0.00
-					c-12.636-12.629-25.909-14.955-38.576-2.518c-12.674,12.531-12.258,27.254, 0.345,39.916l0.00,0.00l 206.882,207.896l0.00,0.00l-0.04,0.037
-					c 21.007,21.043, 50.964,23.467, 72.00,2.515c 20.731-20.977, 21.542-54.067, 0.265-75.111l 0.007,0.045L 186.923,49.795l 0.01-0.031
-					c-28.166-26.053-75.066-31.572-106.799-0.541c-29.505,29.422-26.095,77.855, 0.506,107.701l 175.476,176.465
-					c 2.717,2.805, 5.619,13.408-0.289,18.62c-5.189,4.579-15.311,5.955-18.934,2.314L 61.859,177.889
-					c-43.236-45.451-41.512-112.49-3.464-150.205c 38.01-37.904, 106.534-40.826, 149.494,2.51L 461.10,284.58
-					C 490.632,314.03, 489.853,370.50, 460.282,399.933z" />
-<glyph unicode="&#xe070;" d="M 256.023,463.354L 32.188,192.187L 160.536,192.187L 160.531-1.098L 351.492-1.098L 351.498,192.18L 479.813,192.18 					z" />
-<glyph unicode="&#xe071;" d="M 496.124,223.978L 224.957,447.812L 224.957,319.464L 31.672,319.469L 31.672,128.508L 224.949,128.502L 224.949,0.188 					z" />
-<glyph unicode="&#xe072;" d="M 15.544,223.978L 286.711,447.812L 286.711,319.464L 479.996,319.469L 479.996,128.508L 286.719,128.502L 286.719,0.188 					z" />
-<glyph unicode="&#xe073;" d="M 255.977-15.256L 479.813,255.912L 351.463,255.912L 351.469,449.198L 160.507,449.198L 160.501,255.92L 32.188,255.92 					z" />
-<glyph unicode="&#xe074;" d="M 395.786,207.949c-0.646,64.859, 52.894,95.965, 55.287,97.51c-30.085,44.022-76.946,50.053-93.647,50.749
-					c-39.881,4.039-77.818-23.48-98.059-23.48c-20.189,0.00-51.423,22.884-84.50,22.281c-43.47-0.646-83.552-25.275-105.935-64.207
-					c-45.164-78.371-11.565-194.472, 32.454-258.033c 21.51-31.111, 47.159-66.057, 80.835-64.808
-					c 32.43,1.295, 44.693,20.983, 83.90,20.983c 39.208,0.00, 50.229-20.983, 84.549-20.339c 34.896,0.648, 57.006,31.707, 78.366,62.914
-					c 24.702,36.094, 34.872,71.038, 35.472,72.832C 463.735,104.708, 396.461,130.479, 395.786,207.949z M 331.301,398.287
-					c 17.874,21.685, 29.938,51.77, 26.647,81.783c-25.746-1.048-56.954-17.149-75.426-38.785
-					c-16.575-19.194-31.083-49.826-27.194-79.24C 284.069,359.802, 313.408,376.65, 331.301,398.287z" />
-<glyph unicode="&#xe075;" d="M 432.00,320.00c-17.601,0.00-32.00-14.40-32.00-32.00l0.00-128.00 c0.00-17.60, 14.399-32.00, 32.00-32.00c 17.60,0.00, 32.00,14.40, 32.00,32.00L 464.00,288.00 C 464.00,305.60, 449.60,320.00, 432.00,320.00z
-					 M 48.00,320.00c-17.601,0.00-32.00-14.40-32.00-32.00l0.00-128.00 c0.00-17.60, 14.399-32.00, 32.00-32.00c 17.60,0.00, 32.00,14.40, 32.00,32.00L 80.00,288.00 C 80.00,305.60, 65.599,320.00, 48.00,320.00z M 96.00,112.00
-					c0.00-26.51, 21.49-48.00, 48.00-48.00l 16.00,0.00 l0.00-64.00 c0.00-17.60, 14.399-32.00, 32.00-32.00c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,64.00 l 32.00,0.00 l0.00-64.00 c0.00-17.60, 14.40-32.00, 32.00-32.00
-					c 17.599,0.00, 32.00,14.40, 32.00,32.00l0.00,64.00 l 16.00,0.00 c 26.51,0.00, 48.00,21.49, 48.00,48.00L 384.00,288.00 L 96.00,288.00 L 96.00,112.00 z M 299.299,435.253l 20.252,38.903
-					c 1.016,1.951, 0.25,4.379-1.701,5.395c-1.951,1.016-4.379,0.25-5.396-1.701l-20.559-39.493C 275.797,444.581, 258.299,448.00, 240.00,448.00
-					c-18.298,0.00-35.796-3.419-51.898-9.643L 167.544,477.849c-1.017,1.951-3.443,2.717-5.396,1.701
-					c-1.952-1.016-2.717-3.443-1.701-5.395l 20.25-38.904c-45.314-20.509-78.119-63.792-83.81-115.252l 286.22,0.00 
-					C 377.42,371.461, 344.614,414.743, 299.299,435.253z M 176.00,344.80c-12.813,0.00-23.20,10.387-23.20,23.20s 10.387,23.20, 23.20,23.20
-					c 12.813,0.00, 23.20-10.387, 23.20-23.20C 199.199,355.187, 188.813,344.80, 176.00,344.80z M 304.00,344.80c-12.813,0.00-23.201,10.387-23.201,23.20
-					S 291.188,391.20, 304.00,391.20c 12.812,0.00, 23.198-10.387, 23.198-23.20S 316.813,344.80, 304.00,344.80z" />
-<glyph unicode="&#xe076;" d="M 32.74,415.823l0.00-64.651 L 480.00,351.172 L 480.00,415.823 L 32.74,415.823 z M 480.00,320.151L 32.74,320.151 l0.00-64.652 L 480.00,255.499 L 480.00,320.151 z M 480.00,223.831L 32.74,223.831 l0.00-64.667 L 480.00,159.164 
-											L 480.00,223.831 z M 479.854,127.831L 241.426,127.831 l0.00-64.667 l 238.428,0.00 L 479.854,127.831 z" />
-<glyph unicode="&#xe077;" d="M 32.741,415.823l0.00-64.651 L 480.00,351.172 L 480.00,415.823 L 32.741,415.823 z M 32.741,255.861L 480.00,255.861 l0.00,64.652 L 32.741,320.513 L 32.741,255.861 z M 32.741,159.164L 480.00,159.164 
-											l0.00,64.667 L 32.741,223.831 L 32.741,159.164 z M 32.887,63.164l 238.427,0.00 l0.00,64.668 L 32.887,127.832 L 32.887,63.164 z" />
-<glyph unicode="&#xe078;" d="M 32.37,415.823l0.00-64.651 l 447.26,0.00 L 479.63,415.823 L 32.37,415.823 z M 32.37,255.861l 447.26,0.00 l0.00,64.652 L 32.37,320.513 L 32.37,255.861 z M 32.37,158.99l 447.26,0.00 
-											l0.00,64.666 L 32.37,223.656 L 32.37,158.99 z M 136.786,63.164l 238.428,0.00 l0.00,64.668 L 136.786,127.832 L 136.786,63.164 z" />
-<glyph unicode="&#xe079;" d="M 55.773,415.998L 89.242,65.979L 179.998,156.734L 316.659,20.057L 451.689,155.088L 315.025,291.759L 405.758,382.491 						z" />
-<glyph unicode="&#xe07a;" d="M 451.689,415.998L 418.221,65.979L 327.465,156.734L 190.804,20.057L 55.773,155.088L 192.438,291.759L 101.705,382.491 						z" />
-<glyph unicode="&#xe07b;" d="M 55.773,28.153L 89.242,378.178L 179.998,287.422L 316.659,424.10L 451.689,289.069L 315.025,152.393L 405.758,61.661 						z" />
-<glyph unicode="&#xe07c;" d="M 451.689,28.153L 418.221,378.178L 327.465,287.422L 190.804,424.10L 55.773,289.069L 192.438,152.393L 101.705,61.661 						z" />
-<glyph unicode="&#xe015;" d="M 255.50,479.00L 31.938,255.437L 159.688,255.437L 159.688-32.00L 351.313-32.00L 351.313,255.437L 479.063,255.437 	z" />
-<glyph unicode="&#xe01e;" d="M 142.056-32.649L-0.909,156.133L 88.021,223.45L 182.043,99.299L 418.531,479.002L 513.212,420.044L 233.86-32.649 			
-				z" />
-<glyph unicode="&#xe07d;" d="M 511.352,435.355L 467.354,479.351L 256.00,267.998L 44.646,479.351L 0.649,435.355L 212.003,224.00L 0.649,12.647L 44.646-31.351L 256.00,180.004L 467.354-31.351L 511.352,12.647L 299.997,224.00 	
-		z" />
-<glyph unicode="&#xe07e;" d="M 432.324,224.013c0.00,27.226, 16.741,48.712, 41.994,63.479c-4.563,15.178-10.563,29.739-17.998,43.431
-			c-28.278-7.384-51.198,3.691-70.452,22.971c-19.254,19.228-25.15,42.149-17.741,70.453c-13.69,7.409-28.253,13.434-43.456,17.972
-			c-14.767-25.254-41.456-41.996-68.685-41.996c-27.226,0.00-53.889,16.741-68.682,41.996c-15.204-4.539-29.74-10.563-43.456-17.972
-			c 7.409-28.304, 1.512-51.225-17.742-70.453c-19.254-19.279-42.149-30.354-70.453-22.971c-7.409-13.692-13.434-28.253-17.972-43.431
-			c 25.228-14.767, 41.996-36.252, 41.996-63.479c0.00-27.228-16.768-53.942-41.996-68.71c 4.539-15.177, 10.563-29.74, 17.972-43.43
-			c 28.304,7.383, 51.199,1.488, 70.453-17.74c 19.254-19.28, 25.151-42.175, 17.742-70.454c 13.715-7.436, 28.251-13.459, 43.456-17.997
-			c 14.793,25.228, 41.457,41.994, 68.682,41.994c 27.229,0.00, 53.918-16.767, 68.685-41.994c 15.203,4.538, 29.766,10.562, 43.456,17.997
-			c-7.383,28.279-1.513,51.174, 17.741,70.454c 19.254,19.229, 42.174,30.327, 70.452,22.918c 7.436,13.692, 13.436,28.253, 17.998,43.482
-			C 449.065,175.301, 432.324,196.785, 432.324,224.013z M 255.986,129.051c-52.428,0.00-94.936,42.508-94.936,94.962
-			c0.00,52.43, 42.508,94.911, 94.936,94.911c 52.456,0.00, 94.938-42.481, 94.938-94.911C 350.924,171.559, 308.442,129.051, 255.986,129.051z" />
-<glyph unicode="&#xe07f;" d="M 427.555,397.486L 84.457,397.486 l-28.806-54.838L 456.35,342.648 L 427.555,397.486zM 321.42,449.405L 189.754,449.405 l0.00-26.547 L 321.42,422.858 L 321.42,449.405 zM 114.156-1.405l 283.702,0.00 l 28.795,317.869L 85.348,316.464 L 114.156-1.405z M 322.633,288.831l 25.488,0.00 l0.00-261.495 l-25.488,0.00 L 322.633,288.831 z
-			 M 242.424,288.831l 26.314,0.00 l0.00-261.495 l-26.314,0.00 L 242.424,288.831 z M 163.04,288.831l 26.328,0.00 l0.00-261.495 L 163.04,27.336 L 163.04,288.831 z" />
-<glyph unicode="&#xe080;" d="M 256.00,479.511C 114.885,479.511, 0.489,365.115, 0.489,224.00c0.00-141.114, 114.396-255.512, 255.511-255.512
-					c 141.114,0.00, 255.512,114.397, 255.512,255.512C 511.512,365.115, 397.114,479.511, 256.00,479.511z M 256.00,127.719
-					c-53.174,0.00-96.281,43.107-96.281,96.281c0.00,53.174, 43.106,96.281, 96.281,96.281c 53.173,0.00, 96.281-43.106, 96.281-96.281
-					C 352.281,170.826, 309.173,127.719, 256.00,127.719z M 48.198,136.23C 36.447,164.014, 30.489,193.543, 30.489,224.00
-					s 5.958,59.987, 17.709,87.77c 11.357,26.85, 27.621,50.97, 48.341,71.69c 0.377,0.377, 0.765,0.743, 1.145,1.118l 70.208-70.208
-					c-23.534-22.95-38.173-54.98-38.173-90.37s 14.64-67.42, 38.173-90.37l-70.208-70.209c-0.38,0.375-0.767,0.74-1.145,1.118
-					C 75.819,85.26, 59.555,109.38, 48.198,136.23z M 415.461,64.539c-0.446-0.446-0.902-0.878-1.352-1.32L 343.90,133.427
-					c 23.655,22.964, 38.381,55.079, 38.381,90.573c0.00,35.494-14.726,67.608-38.38,90.572l 70.208,70.208
-					c 0.449-0.441, 0.905-0.874, 1.352-1.32c 20.72-20.72, 36.984-44.84, 48.341-71.691c 11.751-27.783, 17.71-57.313, 17.71-87.77
-					s-5.959-59.986-17.71-87.77C 452.445,109.38, 436.181,85.26, 415.461,64.539z"  />
-<glyph unicode="&#xe081;" d="M 388.625,403.627l-13.938-81.237c-23.799,14.508-50.48,25.514-77.758,30.756l-9.889-66.753
-				c 76.615-22.632, 114.924-50.506, 114.924-123.62c0.00-88.813-63.846-124.785-147.418-125.357l-9.291-67.92l-44.681,9.861l 8.708,60.941
-				c-34.83,5.217-67.325,16.844-99.248,33.662l 12.77,80.094c 40.047-21.465, 71.386-31.924, 103.297-36.545l 11.613,80.666
-				c-71.97,21.465-116.65,47.003-116.65,119.544c0.00,72.566, 49.326,117.831, 142.189,117.831c 1.738,0.00, 2.906,0.00, 4.646,0.00l 6.385,42.954
-				l 44.107-9.863l-5.217-37.736C 340.453,425.688, 365.992,416.397, 388.625,403.627z M 255.131,357.792
-				c-30.185,0.00-42.37-10.459-42.37-27.874c0.00-14.509, 8.708-23.204, 39.463-33.091l 8.708,60.965
-				C 259.191,357.792, 256.869,357.792, 255.131,357.792z M 310.27,149.408c0.00,18.012-8.721,28.445-37.725,38.309l-11.029-71.945
-				C 292.258,116.342, 310.27,127.945, 310.27,149.408z"  />
-<glyph unicode="&#xe082;" d="M 128.00,447.998L 192.00,447.998L 192.00,383.998L 128.00,383.998zM 128.00,351.998L 192.00,351.998L 192.00,287.998L 128.00,287.998zM 128.00,255.998L 192.00,255.998L 192.00,191.998L 128.00,191.998zM 128.00,159.897L 192.00,159.897L 192.00,95.897L 128.00,95.897zM 128.00,64.002L 192.00,64.002L 192.00,0.002L 128.00,0.002zM 224.00,447.998L 288.00,447.998L 288.00,383.998L 224.00,383.998zM 224.00,351.998L 288.00,351.998L 288.00,287.998L 224.00,287.998zM 224.00,255.998L 288.00,255.998L 288.00,191.998L 224.00,191.998zM 224.00,159.897L 288.00,159.897L 288.00,95.897L 224.00,95.897zM 224.00,64.002L 288.00,64.002L 288.00,0.002L 224.00,0.002zM 320.00,447.998L 384.00,447.998L 384.00,383.998L 320.00,383.998zM 320.00,351.998L 384.00,351.998L 384.00,287.998L 320.00,287.998zM 320.00,255.998L 384.00,255.998L 384.00,191.998L 320.00,191.998zM 320.00,159.897L 384.00,159.897L 384.00,95.897L 320.00,95.897zM 320.00,64.002L 384.00,64.002L 384.00,0.002L 320.00,0.002z"  />
-<glyph unicode="&#xe083;" d="M 160.00,352.00L 224.00,352.00L 224.00,288.00L 160.00,288.00zM 160.00,256.00L 224.00,256.00L 224.00,192.00L 160.00,192.00zM 160.00,160.00L 224.00,160.00L 224.00,96.00L 160.00,96.00zM 256.00,352.00L 320.00,352.00L 320.00,288.00L 256.00,288.00zM 256.00,256.00L 320.00,256.00L 320.00,192.00L 256.00,192.00zM 256.00,160.00L 320.00,160.00L 320.00,96.00L 256.00,96.00z"  />
-<glyph unicode="&#xe084;" d="M 479.47,447.998L 128.002,447.998 l0.00-128.00 c-40.639,0.00-96.00,0.00-96.00,0.00L 32.002,0.53 l 351.994,0.00 L 383.996,128.002 l 95.474,0.00 L 479.47,447.998 z
-			 M 319.996,64.002L 96.002,64.002 L 96.002,224.264 l 32.00,0.00 l0.00-96.262 l 191.994,0.00 C 319.996,102.986, 319.996,64.002, 319.996,64.002z M 415.996,192.002L 192.002,192.002 
-			L 192.002,351.998 l 223.994,0.00 L 415.996,192.002 z"  />
-<glyph unicode="&#xe085;" d="M 509.249,56.123L 269.033,461.332c-3.088,5.49-9.051,8.531-15.301,7.53
-			c-4.615-0.733-8.547-3.573-10.765-7.53L 2.752,56.123c-2.635-4.683-2.639-10.691,0.00-15.354c 2.676-4.724, 7.629-7.82, 13.023-7.82
-			l 480.445,0.00 c 5.383,0.00, 10.354,3.097, 13.028,7.82C 511.885,45.432, 511.885,51.44, 509.249,56.123z M 255.969,57.917
-			c-21.576,0.00-39.07,17.883-39.07,39.942c0.00,22.09, 17.494,39.972, 39.07,39.972c 21.562,0.00, 39.07-17.882, 39.07-39.972
-			C 295.039,75.80, 277.53,57.917, 255.969,57.917z M 278.495,161.388l-45.381,0.00 c0.00,0.00-16.312,96.182-16.312,162.234
-			c0.00,40.005, 4.77,60.375, 39.414,60.375c 26.641,0.00, 37.574-17.129, 37.574-58.226C 293.791,259.751, 278.495,161.388, 278.495,161.388z"  />
-<glyph unicode="&#xe086;" d="M 256.00,478.473c-140.549,0.00-254.489-113.94-254.489-254.458c0.00-140.581, 113.94-254.488, 254.489-254.488
-				s 254.488,113.907, 254.488,254.488C 510.488,364.533, 396.549,478.473, 256.00,478.473z M 304.791,336.772
-				c0.00-66.021-26.296-174.384-26.296-174.384l-45.38,0.00 c0.00,0.00-26.312,106.182-26.312,172.234c0.00,40.005, 14.769,61.378, 49.413,61.378
-				C 282.857,396.00, 304.791,377.868, 304.791,336.772z M 255.969,58.917c-21.576,0.00-39.07,17.883-39.07,39.942
-				c0.00,22.09, 17.494,39.972, 39.07,39.972c 21.562,0.00, 39.07-17.882, 39.07-39.972C 295.039,76.80, 277.53,58.917, 255.969,58.917z"  />
-<glyph unicode="&#xe000;" d="M 470.70,72.193l-2.688,2.688l 0.006,0.002L 360.505,182.408c 14.938,25.732, 23.612,55.564, 23.816,87.451
-						c 0.626,97.615-77.986,177.243-175.599,177.857c-0.394,0.001-0.771,0.002-1.168,0.002
-						c-97.06-0.006-176.063-78.391-176.688-175.598c-0.618-97.609, 77.999-177.236, 175.597-177.859
-						c 0.389-0.002, 0.766-0.004, 1.155-0.004c 32.438,0.00, 62.846,8.79, 88.998,24.075l 107.415-107.433l 0.014,0.01l 2.688-2.688
-						c 8.125-8.123, 21.293-8.114, 29.41,0.00l 34.562,34.557C 478.819,50.895, 478.822,64.07, 470.70,72.193z M 300.39,177.58
-						c-24.834-24.67-57.78-38.252-92.768-38.252l-0.874,0.00 c-72.589,0.467-131.271,59.908-130.813,132.503
-						c 0.465,72.128, 59.516,130.811, 131.626,130.815l 0.879-0.002c 35.168-0.22, 68.146-14.123, 92.852-39.148
-						c 24.706-25.025, 38.188-58.178, 37.966-93.352C 339.031,235.128, 325.229,202.25, 300.39,177.58zM 128.503,287.997L 287.501,287.997L 287.501,256.203L 128.503,256.203z"  />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.ttf b/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.ttf
deleted file mode 100644
index 533d70c5251f80d65864360680e94bb765b9e8d7..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.ttf and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.woff b/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.woff
deleted file mode 100644
index ac34e46dfd2b34bfa71f09d2a75588cc01fd9133..0000000000000000000000000000000000000000
Binary files a/app/design/adminhtml/Magento/backend/web/mui/fonts/MUI-Icons.woff and /dev/null differ
diff --git a/app/design/adminhtml/Magento/backend/web/mui/form.css b/app/design/adminhtml/Magento/backend/web/mui/form.css
deleted file mode 100644
index e5589d94cc13969182039c405050a218efbd6c06..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/form.css
+++ /dev/null
@@ -1,508 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/*
-    Forms
--------------------------------------- */
-.form {
-}
-
-/*
-    Fieldset
--------------------------------------- */
-.fieldset {
-    margin: 20px 0;
-    letter-spacing: -0.31em; /* webkit */
-    word-spacing: -0.43em; /* IE < 8 && gecko */
-}
-
-.fieldset > * {
-    letter-spacing: normal;
-    word-spacing: normal;
-}
-
-/*
-    Legend
--------------------------------------- */
-.legend {
-}
-
-/*
-    Label
--------------------------------------- */
-.label {
-    margin: 0;
-    vertical-align: middle;
-}
-
-/*
-    Control
--------------------------------------- */
-.control input {
-    vertical-align: middle;
-    margin: 0;
-}
-
-.control select,
-.control textarea {
-    margin: 0;
-}
-
-/*
-    Field
--------------------------------------- */
-.field {
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-    margin: 0 0 12px 0;
-}
-
-.field > .label {
-    margin: 0 0 6px 6px;
-}
-
-.field > .control {
-}
-
-/* TODO: remove after all templates refactoring */
-span.required {
-    display: none;
-}
-
-.field.required > .label:after {
-    content: '*';
-    color: red;
-    margin-left: 3px;
-}
-
-.field.alternative {
-}
-
-/*
-    Radios and Checkboxes
--------------------------------------- */
-/* TODO: rename 'choice' class */
-.choice .control {
-    display: inline-block;
-    vertical-align: top;
-}
-
-.choice > .label span:after {
-    content: '';
-    margin: 0;
-}
-
-.choice > .control {
-    width: auto;
-}
-
-/* TODO: rename or remove 'extra' class */
-.extra {
-    margin: 5px 0 0;
-}
-
-/*
-    Control with added before and after content
--------------------------------------- */
-.with-addon {
-}
-
-.addon {
-    padding: 0;
-    display: table;
-    width: 100%;
-}
-
-.addon textarea,
-.addon select,
-.addon input {
-    width: 100%;
-    border-radius: 0;
-    box-shadow: none;
-    margin: 0;
-}
-
-.addon select {
-    width: auto;
-}
-
-.addon select + .addafter {
-    border: none;
-}
-
-.ie .addon textarea,
-.ie .addon select {
-    display:inline-block;
-}
-
-.addon textarea:first-child,
-.addon select:first-child,
-.addon input:first-child,
-.addon .addbefore:first-child {
-    border-radius: 2px 0 0 2px;
-}
-
-.addon textarea:last-child,
-.addon select:last-child,
-.addon input:last-child,
-.addon .addafter:last-child {
-    border-radius: 0 2px 2px 0;
-}
-
-.addon .addbefore,
-.addon .addafter {
-    background: #f5f5f5;
-    background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
-    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
-    background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
-    background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
-    background-image: linear-gradient(top, #ffffff, #e6e6e6);
-    background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
-    background-repeat: repeat-x;
-    vertical-align: middle;
-    width: 1px;
-    color: #666;
-    font-size: 11px;
-    font-weight: bold;
-    height: 0;
-    white-space: nowrap;
-    display: inline-block;
-    display: table-cell;
-    padding: 4px;
-    border: solid #ccc;
-    border-width: 1px 0 1px 1px;
-}
-
-/*.addon {direction: rtl; }
-.addon > * {direction: ltr; }*/
-
-.addon *:focus ~ .addafter {
-
-}
-
-.addon .addafter {
-    border-width: 1px 1px 1px 0;
-}
-
-.choice .addafter,
-.choice .addbefore {
-    display: inline;
-}
-
-/* Addon left aligned */
-.field-price .addon {
-    direction: rtl;
-}
-
-.field-price .addon > * {
-    direction: ltr;
-}
-
-.field-price .addon .addafter {
-    border-width: 1px 0 1px 1px;
-    border-radius: 4px 0 0 4px;
-}
-
-.field-price .addon textarea:first-child,
-.field-price .addon select:first-child,
-.field-price .addon input:first-child {
-    border-radius: 0 4px 4px 0;
-}
-
-/*
-    Field with note
--------------------------------------- */
-.with-note {
-}
-
-.with-note .note,
-.field .note,
-.data-table .note {
-    font-size: 11px;
-    padding-left: 15px;
-    margin: 5px 0;
-    color: #666;
-}
-
-.with-note .note:before,
-.field .note:before,
-.data-table .note:before {
-    position: absolute;
-    margin: 4px 0 0 -14px;
-    content: '';
-    display: inline-block;
-    vertical-align: top;
-    font-size: 0;
-    line-height: 0;
-    width: 0;
-    border-bottom: 5px solid #666;
-    border-left: 5px solid transparent;
-    border-right: 5px solid transparent;
-}
-
-/*
-    Form tooltip
--------------------------------------- */
-.with-tooltip.choice {
-    padding-right: 20px;
-}
-
-.with-tooltip.choice,
-.with-tooltip > .control {
-    position: relative;
-    z-index: 1;
-}
-
-.with-tooltip.choice:hover,
-.with-tooltip:hover > .control {
-    z-index: 998;
-}
-
-.with-tooltip:not(.choice) .tooltip {
-    position: absolute;
-    left: 100%;
-    top: 3px;
-    vertical-align: middle;
-    margin: 4px 0 0 3px;
-}
-
-.with-tooltip:not(.choice) .tooltip .help {
-    width: 12px;
-    overflow: hidden;
-}
-
-/*
-    Form actions
--------------------------------------- */
-.form-actions {
-    padding: 10px;
-    margin: 10px 0;
-}
-
-/*
-    Default view for fields: Labels are above the controls
--------------------------------------- */
-.form-inline .label,
-.form-inline .control {
-    margin: 0;
-    float: left;
-    width: 55%;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-}
-
-.form-inline .label {
-    width: 45%;
-    text-align: right;
-    padding: 5px 15px 0 0;
-}
-
-.form-inline .choice {
-    position: relative;
-    z-index: 1;
-}
-
-.form-inline .choice .control {
-    position: absolute;
-    margin-top: 4px;
-    width: auto;
-    left: 45%;
-}
-
-.form-inline .choice .tooltip {
-    margin-left: 20px;
-    position: relative;
-    z-index: 1;
-    margin-top: 7px;
-}
-
-.form-inline .with-tooltip:not(.choice) {
-    padding-top: 20px;
-}
-
-.control .control-value {
-    display: inline-block;
-    padding: 6px 0 0;
-    vertical-align: top;
-}
-
-.control .control-value.special {
-    font-weight: bold;
-}
-
-/*
-    Field with multiple fields
--------------------------------------- */
-/* TODO: rename 'fields-group' class. Propose - 'group' */
-
-[class^="fields-group-"] .field {
-    vertical-align: top;
-    margin: 0;
-    display: inline-block;
-}
-
-[class^="fields-group-"] .field .label {
-    width: auto;
-    float: none;
-    text-align: left;
-    padding-right: 0;
-}
-
-[class^="fields-group-"] .choice .label {
-    display: inline;
-}
-
-[class^="fields-group-"] .field .control {
-    float: none;
-    width: auto;
-    margin-left: 0;
-}
-
-/*.fields-group-2 .field {
-    width: 50% !important;
-    display: inline-block;
-}
-
-.fields-group-3 .field {
-    width: 33.3% !important;
-    display: inline-block;
-}
-
-.fields-group-4 .field {
-    width: 25% !important;
-    display: inline-block;
-}
-
-.fields-group-5 .field {
-    width: 20% !important;
-    display: inline-block;
-}*/
-
-@media screen and (max-width: 960px) {
-    [class^="fields-group-"] .field {
-        width: 100% !important;
-        margin-bottom: 20px !important;
-    }
-}
-
-[class^="fields-group-"] {
-    letter-spacing: -0.31em; /* webkit */
-    word-spacing: -0.43em; /* IE < 8 && gecko */
-}
-
-[class^="fields-group-"] > * {
-    letter-spacing: normal;
-    word-spacing: normal;
-}
-
-/*
-    Form field with nested controls inside
--------------------------------------- */
-.complex {
-}
-
-.nested {
-    padding: 6px 0 0;
-}
-
-.nested .choice .label,
-.nested .choice .control {
-    float: none;
-    width: auto;
-    position: static;
-    left: auto;
-    text-align: left;
-    display: inline;
-    padding: 0;
-}
-
-.control *:first-child {
-    /*margin-top: 0;*/
-}
-
-.nested .field {
-    width: auto;
-    padding: 0;
-    margin: 5px 0;
-    display: block;
-}
-
-.nested .field:first-child {
-    margin-top: 0;
-}
-
-.nested .field:last-child {
-    margin-bottom: 0;
-}
-
-/*
-    Cols
--------------------------------------- */
-.form-cols  .fieldset {
-    padding-right: 0;
-}
-
-.form-cols  .fieldset > .field {
-    width: 50%;
-    display: inline-block;
-    vertical-align: top;
-    padding-right: 20px;
-}
-
-.form-cols  .fieldset > .with-tooltip:not(.choice) .tooltip {
-    right: 20px;
-}
-
-@media screen and (max-width: 960px) {
-    .form-cols  .fieldset > .field {
-        width: 100% !important;
-        display: block;
-    }
-}
-
-.buttons[note]:after {
-    content: '* ' attr(note);
-    display: block;
-    clear: both;
-    font-size: 11px;
-    color: red;
-    margin-top: 10px;
-}
-
-.qty .control,
-.qty .label {
-    display: inline-block;
-    vertical-align: middle;
-    margin: 0;
-}
-
-.qty .input-text {
-    width: 3em;
-    margin: 0;
-}
-
-/*
-    Clearfix
--------------------------------------- */
-.buttons-set:before,
-.buttons-set:after,
-.form-inline .field:before,
-.form-inline .field:after,
-.form-actions:before,
-.form-actions:after,
-.clearfix:before,
-.clearfix:after {
-    content: "";
-    display: table;
-}
-
-.buttons-set:after,
-.form-inline .field:after,
-.form-actions:after,
-.clearfix:after {
-    clear: both;
-}
diff --git a/app/design/adminhtml/Magento/backend/web/mui/grid.css b/app/design/adminhtml/Magento/backend/web/mui/grid.css
deleted file mode 100644
index 2ea31c3de53135d146adb0efc495eed72345b599..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/grid.css
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-.grid-row {
-    width: 100%;
-}
-.grid-row > [class*="grid"] {
-    display: block;
-    float: left;
-    width: 100%;
-    margin-left: 2.127659574%;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
-}
-
-.grid-row > [class*="grid"]:first-child {
-    margin-left: 0;
-}
-
-.grid-row .grid-12 {
-    width: 99.99999998999999%;
-}
-
-.grid-row .grid-11 {
-    width: 91.489361693%;
-}
-
-.grid-row .grid-10 {
-    width: 82.97872339599999%;
-}
-
-.grid-row .grid-9 {
-    width: 74.468085099%;
-}
-
-.grid-row .grid-8 {
-    width: 65.95744680199999%;
-}
-
-.grid-row .grid-7 {
-    width: 57.446808505%;
-}
-
-.grid-row .grid-6 {
-    width: 48.93617020799999%;
-}
-
-.grid-row .grid-5 {
-    width: 40.425531911%;
-}
-
-.grid-row .grid-4 {
-    width: 31.914893614%;
-}
-
-.grid-row .grid-3 {
-    width: 23.404255317%;
-}
-
-.grid-row .grid-2_4 {
-    width: 18.29799%;
-}
-
-.grid-row .grid-9_6 {
-    width: 79.574938722%;
-}
-
-.grid-row .grid-7_2 {
-    width: 59.149289148%;
-}
-
-.grid-row .grid-4_8 {
-    width: 38.723639574%;
-}
-
-.grid-row .grid-2 {
-    width: 14.89361702%;
-}
-
-.grid-row .grid-1 {
-    width: 6.382978723%;
-}
-
-.grid-gap-1 {
-    margin-right: 8.510638297%;
-}
-
-.grid-gap-2 {
-    margin-right: 17.021276594%;
-}
-
-.grid-gap-3 {
-    margin-right: 25.531914891%;
-}
-
-.grid-gap-4 {
-    margin-right: 34.042553188%;
-}
-
-.grid-gap-5 {
-    margin-right: 42.553191485%;
-}
-
-.grid-gap-6 {
-    margin-right: 51.06382978199999%;
-}
-
-.grid-gap-7 {
-    margin-right: 59.574468079%;
-}
-
-.grid-gap-8 {
-    margin-right: 68.08510637599999%;
-}
-
-.grid-gap-9 {
-    margin-right: 76.595744673%;
-}
-
-.grid-gap-10 {
-    margin-right: 85.10638296999999%;
-}
-
-.grid-empty {
-    min-height: 1px;
-}
-
-.grid-collapsed > [class*="grid"] {
-    margin-left: 0;
-}
-
-.grid-collapsed  .grid-1 {
-    width: 8.333333333%;
-}
-
-.grid-collapsed  .grid-2 {
-    width: 16.666666666%;
-}
-
-.grid-collapsed  .grid-3 {
-    width: 24.999999999%;
-}
-.grid-collapsed  .grid-4 {
-    width: 33.333333332%;
-}
-
-.grid-collapsed  .grid-5 {
-    width: 41.666666665%;
-}
-
-.grid-collapsed  .grid-6 {
-    width: 49.999999998%;
-}
-
-.grid-collapsed  .grid-7 {
-    width: 58.333333331%;
-}
-
-.grid-collapsed  .grid-8 {
-    width: 66.666666644%;
-}
-
-.grid-collapsed  .grid-9 {
-    width: 74.999999997%;
-}
-
-.grid-collapsed  .grid-10 {
-    width: 83.333333333%;
-}
-
-.grid-collapsed  .grid-11 {
-    width: 91.666666663%;
-}
-
-.grid-row:before,
-.grid-row:after {
-    display: table;
-    content: "";
-}
-
-.grid-row:after {
-    clear: both;
-}
-
-@media screen and (max-width: 960px) {
-
-    .grid-row > [class*="grid"] {
-        width: 100%;
-        margin-left: 0;
-    }
-
-}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/mui/icons.css b/app/design/adminhtml/Magento/backend/web/mui/icons.css
deleted file mode 100644
index 83b19c9ef507ac3fe57f838c9e4b1c28d75c7f14..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/icons.css
+++ /dev/null
@@ -1,542 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-@font-face {
-    font-family: 'MUI-Icons';
-    src: url('fonts/MUI-Icons.eot');
-    src: url('fonts/MUI-Icons.eot?#iefix') format('embedded-opentype'), url('fonts/MUI-Icons.svg#MUI-Icons') format('svg'), url('fonts/MUI-Icons.woff') format('woff'), url('fonts/MUI-Icons.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-}
-
-/* Use the following CSS code if you want to use data attributes for inserting your icons */
-[data-icon]:before {
-    font-family: 'MUI-Icons';
-    content: attr(data-icon);
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-}
-
-/* Use the following CSS code if you want to have a class per icon */
-[class^="icon-"]:before, [class*=" icon-"]:before {
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-}
-
-.icon-zoom-out:before {
-    content: "\e000";
-}
-
-.icon-zoom-in:before {
-    content: "\e001";
-}
-
-.icon-youtube:before {
-    content: "\e002";
-}
-
-.icon-wordpress:before {
-    content: "\e003";
-}
-
-.icon-windows-new:before {
-    content: "\e004";
-}
-
-.icon-windows:before {
-    content: "\e005";
-}
-
-.icon-warning:before {
-    content: "\e006";
-}
-
-.icon-vote-up:before {
-    content: "\e007";
-}
-
-.icon-vote-down:before {
-    content: "\e008";
-}
-
-.icon-vimeo:before {
-    content: "\e009";
-}
-
-.icon-video:before {
-    content: "\e00a";
-}
-
-.icon-user-group:before {
-    content: "\e00b";
-}
-
-.icon-user-card:before {
-    content: "\e00c";
-}
-
-.icon-user:before {
-    content: "\e00d";
-}
-
-.icon-upload:before {
-    content: "\e00e";
-}
-
-.icon-up-down:before {
-    content: "\e00f";
-}
-
-.icon-update:before {
-    content: "\e010";
-}
-
-.icon-unlock:before {
-    content: "\e011";
-}
-
-.icon-undo:before {
-    content: "\e012";
-}
-
-.icon-ul:before {
-    content: "\e013";
-}
-
-.icon-twitter:before {
-    content: "\e014";
-}
-
-.icon-tag:before {
-    content: "\e016";
-}
-
-.icon-stop:before {
-    content: "\e017";
-}
-
-.icon-star-half:before {
-    content: "\e018";
-}
-
-.icon-star-empty:before {
-    content: "\e019";
-}
-
-.icon-star:before {
-    content: "\e01a";
-}
-
-.icon-sort-desc:before {
-    content: "\e01b";
-}
-
-.icon-sort-asc:before {
-    content: "\e01c";
-}
-
-.icon-slideshow:before {
-    content: "\e01d";
-}
-
-.icon-search:before {
-    content: "\e01f";
-}
-
-.icon-rss:before {
-    content: "\e020";
-}
-
-.icon-rows:before {
-    content: "\e021";
-}
-
-.icon-resize-y:before {
-    content: "\e022";
-}
-
-.icon-resize-x:before {
-    content: "\e023";
-}
-
-.icon-redo:before {
-    content: "\e024";
-}
-
-.icon-quote-right:before {
-    content: "\e025";
-}
-
-.icon-quote:before {
-    content: "\e026";
-}
-
-.icon-printer:before {
-    content: "\e027";
-}
-
-.icon-present:before {
-    content: "\e028";
-}
-
-.icon-point-up:before {
-    content: "\e029";
-}
-
-.icon-point-right:before {
-    content: "\e02a";
-}
-
-.icon-point-left:before {
-    content: "\e02b";
-}
-
-.icon-point-down:before {
-    content: "\e02c";
-}
-
-.icon-plus:before {
-    content: "\e02d";
-}
-
-.icon-play:before {
-    content: "\e02e";
-}
-
-.icon-photo:before {
-    content: "\e02f";
-}
-
-.icon-phone:before {
-    content: "\e030";
-}
-
-.icon-paypal:before {
-    content: "\e031";
-}
-
-.icon-pause:before {
-    content: "\e032";
-}
-
-.icon-ol:before {
-    content: "\e033";
-}
-
-.icon-off:before {
-    content: "\e034";
-}
-
-.icon-nav-top:before {
-    content: "\e035";
-}
-
-.icon-nav-right:before {
-    content: "\e036";
-}
-
-.icon-nav-left:before {
-    content: "\e037";
-}
-
-.icon-nav-bottom:before {
-    content: "\e038";
-}
-
-.icon-move:before {
-    content: "\e039";
-}
-
-.icon-minus:before {
-    content: "\e03a";
-}
-
-.icon-map-pin:before {
-    content: "\e03b";
-}
-
-.icon-mail:before {
-    content: "\e03c";
-}
-
-.icon-magento:before {
-    content: "\e03d";
-}
-
-.icon-lock:before {
-    content: "\e03e";
-}
-
-.icon-link-break:before {
-    content: "\e03f";
-}
-
-.icon-link:before {
-    content: "\e040";
-}
-
-.icon-last:before {
-    content: "\e041";
-}
-
-.icon-key-delete:before {
-    content: "\e042";
-}
-
-.icon-key-backspace:before {
-    content: "\e043";
-}
-
-.icon-key:before {
-    content: "\e044";
-}
-
-.icon-italic:before {
-    content: "\e045";
-}
-
-.icon-info:before {
-    content: "\e046";
-}
-
-.icon-image:before {
-    content: "\e047";
-}
-
-.icon-home:before {
-    content: "\e048";
-}
-
-.icon-help:before {
-    content: "\e049";
-}
-
-.icon-grid:before {
-    content: "\e04a";
-}
-
-.icon-google-plus:before {
-    content: "\e04b";
-}
-
-.icon-globe:before {
-    content: "\e04c";
-}
-
-.icon-git:before {
-    content: "\e04d";
-}
-
-.icon-fullscreen-off:before {
-    content: "\e04e";
-}
-
-.icon-fullscreen:before {
-    content: "\e04f";
-}
-
-.icon-folder-open:before {
-    content: "\e050";
-}
-
-.icon-folder-move:before {
-    content: "\e051";
-}
-
-.icon-folder-delete:before {
-    content: "\e052";
-}
-
-.icon-folder-add:before {
-    content: "\e053";
-}
-
-.icon-folder:before {
-    content: "\e054";
-}
-
-.icon-flag-off:before {
-    content: "\e055";
-}
-
-.icon-flag:before {
-    content: "\e056";
-}
-
-.icon-first:before {
-    content: "\e057";
-}
-
-.icon-filter:before {
-    content: "\e058";
-}
-
-.icon-eye-closed:before {
-    content: "\e059";
-}
-
-.icon-eye:before {
-    content: "\e05a";
-}
-
-.icon-edit:before {
-    content: "\e05b";
-}
-
-.icon-document-delete:before {
-    content: "\e05c";
-}
-
-.icon-document-add:before {
-    content: "\e05d";
-}
-
-.icon-document:before {
-    content: "\e05e";
-}
-
-.icon-disabled:before {
-    content: "\e05f";
-}
-
-.icon-delivery:before {
-    content: "\e060";
-}
-
-.icon-delete:before {
-    content: "\e061";
-}
-
-.icon-database:before {
-    content: "\e062";
-}
-
-.icon-currency:before {
-    content: "\e063";
-}
-
-.icon-credit-card:before {
-    content: "\e064";
-}
-
-.icon-comment:before {
-    content: "\e065";
-}
-
-.icon-clock:before {
-    content: "\e066";
-}
-
-.icon-check-mark:before {
-    content: "\e067";
-}
-
-.icon-cart:before {
-    content: "\e068";
-}
-
-.icon-cancel:before {
-    content: "\e069";
-}
-
-.icon-calendar:before {
-    content: "\e06a";
-}
-
-.icon-box-move:before {
-    content: "\e06b";
-}
-
-.icon-box:before {
-    content: "\e06c";
-}
-
-.icon-bold:before {
-    content: "\e06d";
-}
-
-.icon-bell:before {
-    content: "\e06e";
-}
-
-.icon-attachment:before {
-    content: "\e06f";
-}
-
-.icon-arrow-up:before {
-    content: "\e070";
-}
-
-.icon-arrow-right:before {
-    content: "\e071";
-}
-
-.icon-arrow-left:before {
-    content: "\e072";
-}
-
-.icon-arrow-down:before {
-    content: "\e073";
-}
-
-.icon-apple:before {
-    content: "\e074";
-}
-
-.icon-android:before {
-    content: "\e075";
-}
-
-.icon-align-right:before {
-    content: "\e076";
-}
-
-.icon-align-left:before {
-    content: "\e077";
-}
-
-.icon-align-center:before {
-    content: "\e078";
-}
-
-.icon-arrow-ne:before {
-    content: "\e079";
-}
-
-.icon-arrow-nw:before {
-    content: "\e07a";
-}
-
-.icon-arrow-se:before {
-    content: "\e07b";
-}
-
-.icon-arrow-sw:before {
-    content: "\e07c";
-}
-
-.icon-arrow-up-long:before {
-    content: "\e015";
-}
-
-.icon-check:before {
-    content: "\e01e";
-}
-
-.icon-close:before {
-    content: "\e07d";
-}
-
-.icon-settings:before {
-    content: "\e07e";
-}
-
-.icon-trash:before {
-    content: "\e07f";
-}
diff --git a/app/design/adminhtml/Magento/backend/web/mui/elements.css b/app/design/adminhtml/Magento/backend/web/mui/mui_legacy.css
similarity index 55%
rename from app/design/adminhtml/Magento/backend/web/mui/elements.css
rename to app/design/adminhtml/Magento/backend/web/mui/mui_legacy.css
index 8884b2fa97226015c96bbad1a5c531e04bc95027..d6c9010a8241528704e04c80cade0c83cd727725 100644
--- a/app/design/adminhtml/Magento/backend/web/mui/elements.css
+++ b/app/design/adminhtml/Magento/backend/web/mui/mui_legacy.css
@@ -3,113 +3,146 @@
  * See COPYING.txt for license details.
  */
 
-/*
-    Close btn
--------------------------------------- */
-/*.close:before {
-    content: '\00D7\00A0';
-}*/
+/* ==========================================================================
+   base.css (begin)
+   ========================================================================== */
 
 /*
-    Tooltips
+    Buttons group
 -------------------------------------- */
 
-/* Simple "css" tooltip */
-/*.tooltip {
+.buttons-group {
+    position: relative;
     display: inline-block;
-    vertical-align: middle;
-    line-height: 1.1;
 }
 
-.tooltip .help {
-    display: inline-block;
+.buttons-group:before,
+.buttons-group:after {
+    display: table;
+    content: "";
+}
+
+.buttons-group:after {
+    clear: both;
+}
+
+.buttons-group > button,
+.buttons-group > .button {
     position: relative;
-    margin-left: 8px;
+    float: left;
+    margin-left: -1px;
+    border-radius: 0;
 }
 
-.tooltip .help span,
-.tooltip .help a {
+.buttons-group > button:first-child,
+.buttons-group > .button:first-child {
+    margin-left: 0;
+    border-bottom-left-radius: 4px;
+    border-top-left-radius: 4px;
+}
+
+.buttons-group > button:last-child,
+.buttons-group > .button:last-child,
+.buttons-group > [data-toggle="dropdown"] {
+    border-top-right-radius: 4px;
+    border-bottom-right-radius: 4px;
+}
+
+.buttons-group-vertical > .button {
+    float: none;
     display: block;
-    width: 15px;
-    height: 15px;
-    text-decoration: none;
-    text-indent: -999em;
-    cursor: help;
+    margin-left: 0;
+    margin-top: -1px;
 }
 
-.tooltip .help span:before,
-.tooltip .help a:before {
-    position: absolute;
-    height: 15px;
-    width: 15px;
-    z-index: 1;
-    top: 0;
-    left: 0;
-    text-indent: 0;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-    content: '\e049';
-    font-size: 15px;
-    line-height: 15px;
-    color: #b6aea3;
-    color: rgba(103, 96, 86, .4);
-    overflow: hidden;
+.buttons-group-vertical > input[type=button],
+.buttons-group-vertical > input[type=submit],
+.buttons-group-vertical > input[type=reset],
+.buttons-group-vertical > button {
+    width: 100%;
+}
+
+.buttons-group-vertical > .button:first-child {
+    margin-top: 0;
+    border-radius: 4px 4px 0 0;
+}
+
+.buttons-group-vertical > .button:last-child {
+    border-radius: 0 0 4px 4px;
 }
 
-.tooltip .help span:hover:before,
-.tooltip .help a:hover:before {
-    color: #9c958a;
-    color: rgba(103, 96, 86, .6);
+/*
+    Forms
+-------------------------------------- */
+
+fieldset {
+    border: 1px solid #ccc;
+    padding: 20px;
+}
+
+legend {
+    padding: 0 10px;
+    margin: 0 -10px;
 }
 
-.tooltip-content {
+fieldset legend + br {
     display: none;
-    position: absolute;
-    max-width: 200px;
-    margin-top: 10px;
-    margin-left: -19px;
-    padding: 4px 8px;
-    border-radius: 3px;
-    background: #000;
-    background: rgba(49, 48, 43, .8);
-    color: #fff;
-    text-shadow: none;
-    z-index: 20;
 }
 
-.tooltip-content:before {
-    content: '';
-    position: absolute;
-    width: 0;
-    height: 0;
-    top: -5px;
-    left: 20px;
-    border-left: 5px solid transparent;
-    border-right: 5px solid transparent;
-    border-bottom: 5px solid #000;
-    opacity: .8;
+label {
+    display: inline-block;
 }
 
-.tooltip-content.loading {
-    position: absolute;
+label > input[type="radio"],
+label > input[type="checkbox"] {
+    margin: -3px 3px 0 0;
+    vertical-align: middle;
 }
 
-.tooltip-content.loading:before {
-    border-bottom-color: rgba(0, 0, 0, .3);
+select {
+    padding: 4px;
+    margin: 0 0 8px;
 }
 
-.tooltip:hover {
-    z-index: 20;
+select[multiple],
+select[size] {
+    height: auto;
 }
 
-.tooltip:hover > .tooltip-content {
-    display: block;
+input[type="radio"],
+input[type="checkbox"] {
+    margin: 3px 0;
+    line-height: normal;
+}
+
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+    cursor: not-allowed;
+}
+
+/*
+    Blockquotes
+-------------------------------------- */
+blockquote {
+    border-left: 2px solid #ccc;
+    padding-left: 5px;
+}
+
+blockquote small:before {
+    content: '\2014 \00A0';
 }
-*/
-/* "js" tooltip with positions */
+/* ==========================================================================
+   base.css (end)
+   ========================================================================== */
+
+
+/* ==========================================================================
+   elements.css (begin)
+   ========================================================================== */
 .tipsy {
     position: absolute;
     left: 0;
@@ -196,156 +229,6 @@
     border-left: none;
 }
 
-/*
-    Messages
--------------------------------------- */
-.message,
-.message-success,
-.message-error,
-.message-under-construction {
-    position: relative;
-    margin: 0 0 10px;
-    padding: 8px 35px;
-    border: 1px solid #dfc97a;
-    border-radius: 4px;
-    text-shadow: 0 1px 0 #fff;
-    color: #6f4400;
-    background: #E8E0C6;
-}
-
-.message-header {
-    font-weight: bold;
-}
-
-.message-header,
-.message-content,
-.message-footer {
-}
-
-.message-success {
-    color: #26431c;
-    background: #E7ECE1;
-    border-color: #A8B5A0;
-}
-
-.message-error {
-    color: #6f0300;
-    background: #E5CECD;
-    border-color: #CEB2B1;
-}
-
-.message:before,
-.message-success:before,
-.message-error:before {
-    position: absolute;
-    left: 8px;
-    top: 8px;
-    width: 14px;
-    height: 14px;
-    border-radius: 10px;
-    color: #fff;
-    line-height: 14px;
-    font-size: 13px;
-    text-align: center;
-    text-shadow: 0 1px 0 #000;
-    content: '!';
-    font-weight: bold;
-    border: 1px solid #C76F35;
-    background: #eecf4f;
-    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VlY2Y0ZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2U0YWIzNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjY3JSIgc3RvcC1jb2xvcj0iI2M0NjkzMyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNkODhjMzMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-    background: -moz-linear-gradient(top, #eecf4f 0%, #e4ab37 10%, #c46933 67%, #d88c33 100%);
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eecf4f), color-stop(10%, #e4ab37), color-stop(67%, #c46933), color-stop(100%, #d88c33));
-    background: -webkit-linear-gradient(top, #eecf4f 0%, #e4ab37 10%, #c46933 67%, #d88c33 100%);
-    background: -o-linear-gradient(top, #eecf4f 0%, #e4ab37 10%, #c46933 67%, #d88c33 100%);
-    background: -ms-linear-gradient(top, #eecf4f 0%, #e4ab37 10%, #c46933 67%, #d88c33 100%);
-    background: linear-gradient(to bottom, #eecf4f 0%, #e4ab37 10%, #c46933 67%, #d88c33 100%);
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eecf4f', endColorstr = '#d88c33', GradientType = 0);
-}
-
-.message-success:before {
-    content: '✔';
-    border: 1px solid #185B00;
-    background: #c1df53;
-    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2MxZGY1MyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iIzc1YTkzMyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjY3JSIgc3RvcC1jb2xvcj0iIzQ1NmUyOCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YjkzMmMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-    background: -moz-linear-gradient(top, #c1df53 0%, #75a933 10%, #456e28 67%, #5b932c 100%);
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #c1df53), color-stop(10%, #75a933), color-stop(67%, #456e28), color-stop(100%, #5b932c));
-    background: -webkit-linear-gradient(top, #c1df53 0%, #75a933 10%, #456e28 67%, #5b932c 100%);
-    background: -o-linear-gradient(top, #c1df53 0%, #75a933 10%, #456e28 67%, #5b932c 100%);
-    background: -ms-linear-gradient(top, #c1df53 0%, #75a933 10%, #456e28 67%, #5b932c 100%);
-    background: linear-gradient(to bottom, #c1df53 0%, #75a933 10%, #456e28 67%, #5b932c 100%);
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#c1df53', endColorstr = '#5b932c', GradientType = 0);
-}
-
-.message-error:before {
-    border: 1px solid #963535;
-    background: #ea8383;
-    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VhODM4MyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2M2NTA1MCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjY3JSIgc3RvcC1jb2xvcj0iIzk3MzgzOCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNiODQzNDMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-    background: -moz-linear-gradient(top, #ea8383 0%, #c65050 10%, #973838 67%, #b84343 100%);
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ea8383), color-stop(10%, #c65050), color-stop(67%, #973838), color-stop(100%, #b84343));
-    background: -webkit-linear-gradient(top, #ea8383 0%, #c65050 10%, #973838 67%, #b84343 100%);
-    background: -o-linear-gradient(top, #ea8383 0%, #c65050 10%, #973838 67%, #b84343 100%);
-    background: -ms-linear-gradient(top, #ea8383 0%, #c65050 10%, #973838 67%, #b84343 100%);
-    background: linear-gradient(to bottom, #ea8383 0%, #c65050 10%, #973838 67%, #b84343 100%);
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ea8383', endColorstr = '#b84343', GradientType = 0);
-}
-
-.message-under-construction {
-    padding: 10px 30px;
-    text-align: center;
-    background: #FFCC3B;
-    color: #000;
-    border: none;
-    border-radius: 0;
-}
-
-.message-under-construction strong {
-    position: relative;
-}
-
-.message-under-construction strong:before {
-    position: absolute;
-    top: -1px;
-    left: -25px;
-    content: '';
-    background: #EED61A;
-    border: 1px solid #000;
-    width: 14px;
-    height: 14px;
-    -webkit-transform: rotate(-45deg);
-    -moz-transform: rotate(-45deg);
-    transform: rotate(-45deg);
-    border-radius: 3px;
-}
-
-.message-under-construction strong:after {
-    position: absolute;
-    top: -1px;
-    left: -19px;
-    content: '!';
-    font-weight: bold;
-    color: #000;
-}
-
-.message .close {
-    position: absolute;
-    top: 0;
-    right: 0;
-    font: 20px/18px bold Arial, sans-serif;
-    text-shadow: 0 1px 0 #fff;
-    opacity: 0.2;
-    filter: alpha(opacity = 20);
-    cursor: pointer;
-}
-
-.message .close:hover {
-    opacity: 0.4;
-    filter: alpha(opacity = 40);
-}
-
-.message .buttons-set {
-    margin-top: 5px;
-}
-
 /*
     Pagination
 -------------------------------------- */
@@ -1013,143 +896,6 @@ table.loading:after {
     }
 }
 
-/*
-    Popups
--------------------------------------- */
-
-.fade {
-    position: fixed;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    padding: 15%;
-    background-color: rgba(0, 0, 0, .65);
-    text-align: center;
-    z-index: 999;
-}
-
-.eq-ie8 .fade {
-    background: transparent;
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #99000000, endColorstr = #99000000);
-}
-
-.fade .popup {
-    text-align: left;
-    background: #fff;
-    box-shadow: 0 0 10px 0 #333;
-}
-
-.popup {
-    position: relative;
-    display: inline-block;
-    background: #E6E6E6;
-    border-radius: 5px;
-    padding: 20px;
-    border: 1px solid #b8b8b8;
-}
-
-.popup-header {
-    font-weight: bold;
-}
-
-.popup .buttons-set {
-    margin: 15px 0 0;
-}
-
-.popup .close {
-    position: absolute;
-    right: 0;
-    top: 0;
-    cursor: pointer;
-    font: 20px/18px Arial, sans-serif;
-    text-shadow: 0 1px 0 #fff;
-    width: 17px;
-    height: 20px;
-    overflow: hidden;
-    padding-left: 5px;
-}
-
-.popup .close:before {
-    content: '\00D7\00A0';
-}
-
-.popup-system {
-    padding: 0;
-    background: #fff;
-}
-
-.popup-system .popup-header {
-    cursor: move;
-    padding: 10px 20px;
-    background: #efefef;
-    border-bottom: 1px solid #b8b8b8;
-    border-radius: 5px 5px 0 0;
-}
-
-.popup-system .popup-content {
-    padding: 20px;
-}
-
-.popup-system .popup-footer {
-    border-top: 1px solid #b8b8b8;
-    padding: 10px 20px;
-}
-
-.popup-system .close {
-    top: 8px;
-}
-
-.popup-system .buttons-set {
-    margin: 0;
-}
-
-/* popup types */
-.fade [class^='popup-'] .popup-title {
-    position: relative;
-    padding-left: 28px;
-}
-
-.fade [class^='popup-'] .popup-title:before {
-    position: absolute;
-    left: 0;
-    top: 2px;
-    font-family: 'MUI-Icons';
-    font-style: normal;
-    font-size: 20px;
-    speak: none;
-    font-weight: normal;
-    -webkit-font-smoothing: antialiased;
-}
-
-.popup-notice .popup-title:before {
-    content: '\e006'; /* notice icon */
-    color: #d98236;
-}
-
-.popup-error .popup-title:before {
-    content: '\e006'; /* notice icon */
-    color: #a32715;
-}
-
-.popup-info .popup-title:before,
-.popup-critical .popup-title:before {
-    top: 5px;
-    content: '\e046'; /* info icon */
-    font-size: 14px;
-    width: 20px;
-    height: 20px;
-    line-height: 20px;
-    text-align: center;
-    color: #fff;
-    background: #6191ad;
-    border-radius: 10px;
-}
-
-.popup-critical .popup-title:before {
-    background: #D98236;
-}
-
 /*
     Tabs
 -------------------------------------- */
@@ -1395,4 +1141,804 @@ table.loading:after {
 .tabs-nav:after,
 .tabs:after {
     clear: both;
-}
\ No newline at end of file
+}
+
+/* ==========================================================================
+   elements.css (end)
+   ========================================================================== */
+
+
+/* ==========================================================================
+   form.css (begin)
+   ========================================================================== */
+/*
+    Forms
+-------------------------------------- */
+.form {
+}
+
+/*
+    Fieldset
+-------------------------------------- */
+.fieldset {
+    margin: 20px 0;
+    letter-spacing: -0.31em; /* webkit */
+    word-spacing: -0.43em; /* IE < 8 && gecko */
+}
+
+.fieldset > * {
+    letter-spacing: normal;
+    word-spacing: normal;
+}
+
+/*
+    Legend
+-------------------------------------- */
+.legend {
+}
+
+/*
+    Label
+-------------------------------------- */
+.label {
+    margin: 0;
+    vertical-align: middle;
+}
+
+/*
+    Control
+-------------------------------------- */
+.control input {
+    vertical-align: middle;
+    margin: 0;
+}
+
+.control select,
+.control textarea {
+    margin: 0;
+}
+
+/*
+    Field
+-------------------------------------- */
+.field {
+    position: relative;
+    box-sizing: border-box;
+    margin: 0 0 12px 0;
+}
+
+.field > .label {
+    margin: 0 0 6px 6px;
+}
+
+.field > .control {
+}
+
+/* TODO: remove after all templates refactoring */
+span.required {
+    display: none;
+}
+
+.field.required > .label:after {
+    content: '*';
+    color: red;
+    margin-left: 3px;
+}
+
+.field.alternative {
+}
+
+/*
+    Radios and Checkboxes
+-------------------------------------- */
+/* TODO: rename 'choice' class */
+.choice .control {
+    display: inline-block;
+    vertical-align: top;
+}
+
+.choice > .label span:after {
+    content: '';
+    margin: 0;
+}
+
+.choice > .control {
+    width: auto;
+}
+
+/* TODO: rename or remove 'extra' class */
+.extra {
+    margin: 5px 0 0;
+}
+
+/*
+    Control with added before and after content
+-------------------------------------- */
+.with-addon {
+}
+
+.addon {
+    padding: 0;
+    display: table;
+    width: 100%;
+}
+
+.addon textarea,
+.addon select,
+.addon input {
+    width: 100%;
+    border-radius: 0;
+    box-shadow: none;
+    margin: 0;
+}
+
+.addon select {
+    width: auto;
+}
+
+.addon select + .addafter {
+    border: none;
+}
+
+.ie .addon textarea,
+.ie .addon select {
+    display:inline-block;
+}
+
+.addon textarea:first-child,
+.addon select:first-child,
+.addon input:first-child,
+.addon .addbefore:first-child {
+    border-radius: 0;
+}
+
+.addon textarea:last-child,
+.addon select:last-child,
+.addon input:last-child,
+.addon .addafter:last-child {
+    border-radius: 0;
+}
+
+.addon .addbefore,
+.addon .addafter {
+    background: #f5f5f5;
+    background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+    background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+    background-repeat: repeat-x;
+    vertical-align: middle;
+    width: 1px;
+    color: #666;
+    font-size: 11px;
+    font-weight: bold;
+    height: 0;
+    white-space: nowrap;
+    display: inline-block;
+    display: table-cell;
+    padding: 4px;
+    border: solid #ccc;
+    border-width: 1px 0 1px 1px;
+}
+
+/*.addon {direction: rtl; }
+.addon > * {direction: ltr; }*/
+
+.addon *:focus ~ .addafter {
+
+}
+
+.addon .addafter {
+    border-width: 1px 1px 1px 0;
+}
+
+.choice .addafter,
+.choice .addbefore {
+    display: inline;
+}
+
+/* Addon left aligned */
+.field-price .addon {
+    direction: rtl;
+}
+
+.field-price .addon > * {
+    direction: ltr;
+}
+
+.field-price .addon .addafter {
+    border-width: 1px 0 1px 1px;
+    border-radius: 4px 0 0 4px;
+}
+
+.field-price .addon textarea:first-child,
+.field-price .addon select:first-child,
+.field-price .addon input:first-child {
+    border-radius: 0 4px 4px 0;
+}
+
+/*
+    Form tooltip
+-------------------------------------- */
+.with-tooltip.choice {
+    padding-right: 20px;
+}
+
+.with-tooltip.choice,
+.with-tooltip > .control {
+    position: relative;
+    z-index: 1;
+}
+
+.with-tooltip.choice:hover,
+.with-tooltip:hover > .control {
+    z-index: 998;
+}
+
+.with-tooltip:not(.choice) .tooltip {
+    position: absolute;
+    left: 100%;
+    top: 3px;
+    vertical-align: middle;
+    margin: 4px 0 0 3px;
+}
+
+.with-tooltip:not(.choice) .tooltip .help {
+    width: 12px;
+    overflow: hidden;
+}
+
+/*
+    Form actions
+-------------------------------------- */
+.form-actions {
+    padding: 10px;
+    margin: 10px 0;
+}
+
+/*
+    Default view for fields: Labels are above the controls
+-------------------------------------- */
+.form-inline .label,
+.form-inline .control {
+    margin: 0;
+    float: left;
+    width: 55%;
+    -moz-box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+}
+
+.form-inline .label {
+    width: 45%;
+    text-align: right;
+    padding: 5px 15px 0 0;
+}
+
+.form-inline .choice {
+    position: relative;
+    z-index: 1;
+}
+
+.form-inline .choice .control {
+    position: absolute;
+    margin-top: 4px;
+    width: auto;
+    left: 45%;
+}
+
+.form-inline .choice .tooltip {
+    margin-left: 20px;
+    position: relative;
+    z-index: 1;
+    margin-top: 7px;
+}
+
+.form-inline .with-tooltip:not(.choice) {
+    padding-top: 20px;
+}
+
+.control .control-value {
+    display: inline-block;
+    padding: 6px 0 0;
+    vertical-align: top;
+}
+
+.control .control-value.special {
+    font-weight: bold;
+}
+
+/*
+    Field with multiple fields
+-------------------------------------- */
+/* TODO: rename 'fields-group' class. Propose - 'group' */
+
+[class^="fields-group-"] .field {
+    vertical-align: top;
+    margin: 0;
+    display: inline-block;
+}
+
+[class^="fields-group-"] .field .label {
+    width: auto;
+    float: none;
+    text-align: left;
+    padding-right: 0;
+}
+
+[class^="fields-group-"] .choice .label {
+    display: inline;
+}
+
+[class^="fields-group-"] .field .control {
+    float: none;
+    width: auto;
+    margin-left: 0;
+}
+
+@media screen and (max-width: 960px) {
+    [class^="fields-group-"] .field {
+        width: 100% !important;
+        margin-bottom: 20px !important;
+    }
+}
+
+[class^="fields-group-"] {
+    letter-spacing: -0.31em; /* webkit */
+    word-spacing: -0.43em; /* IE < 8 && gecko */
+}
+
+[class^="fields-group-"] > * {
+    letter-spacing: normal;
+    word-spacing: normal;
+}
+
+/*
+    Form field with nested controls inside
+-------------------------------------- */
+.nested {
+    padding: 6px 0 0;
+}
+
+.nested .choice .label,
+.nested .choice .control {
+    float: none;
+    width: auto;
+    position: static;
+    left: auto;
+    text-align: left;
+    display: inline;
+    padding: 0;
+}
+
+.control *:first-child {
+    /*margin-top: 0;*/
+}
+
+.nested .field {
+    width: auto;
+    padding: 0;
+    margin: 5px 0;
+    display: block;
+}
+
+.nested .field:first-child {
+    margin-top: 0;
+}
+
+.nested .field:last-child {
+    margin-bottom: 0;
+}
+
+/*
+    Cols
+-------------------------------------- */
+.form-cols  .fieldset {
+    padding-right: 0;
+}
+
+.form-cols  .fieldset > .field {
+    width: 50%;
+    display: inline-block;
+    vertical-align: top;
+    padding-right: 20px;
+}
+
+.form-cols  .fieldset > .with-tooltip:not(.choice) .tooltip {
+    right: 20px;
+}
+
+@media screen and (max-width: 960px) {
+    .form-cols  .fieldset > .field {
+        width: 100% !important;
+        display: block;
+    }
+}
+
+.buttons[note]:after {
+    content: '* ' attr(note);
+    display: block;
+    clear: both;
+    font-size: 11px;
+    color: red;
+    margin-top: 10px;
+}
+
+.qty .control,
+.qty .label {
+    display: inline-block;
+    vertical-align: middle;
+    margin: 0;
+}
+
+.qty .input-text {
+    width: 3em;
+    margin: 0;
+}
+
+/*
+    Clearfix
+-------------------------------------- */
+.buttons-set:before,
+.buttons-set:after,
+.form-inline .field:before,
+.form-inline .field:after,
+.form-actions:before,
+.form-actions:after,
+.clearfix:before,
+.clearfix:after {
+    content: "";
+    display: table;
+}
+
+.buttons-set:after,
+.form-inline .field:after,
+.form-actions:after,
+.clearfix:after {
+    clear: both;
+}
+/* ==========================================================================
+   form.css (end)
+   ========================================================================== */
+
+
+/* =============================================================================
+   components.css (begin)
+   ========================================================================== */
+.sorter {
+    line-height: 25px;
+    padding: 5px 0;
+    border:solid #999;
+    border-width: 1px 0;
+}
+.view-mode {
+    margin: 0;
+    float: left;
+    white-space: nowrap;
+}
+.sort-by {
+    float: right;
+    white-space: nowrap;
+    line-height: normal;
+}
+.sort-by select {
+    width: auto;
+    margin: 0;
+}
+.sort-by a {
+    display: inline-block;
+    width: 8px;
+    height: 11px;
+    margin: 0 0 0 3px;
+    text-decoration: none;
+    color: #000;
+    text-indent: -9999px;
+    background: url(images/sorter-bg.png) no-repeat 0 0;
+}
+.sort-by a:hover {
+    background-position: 0 -12px;
+}
+.sort-asc a {
+    background-position: -9px 0;
+}
+.sort-asc a:hover {
+    background-position: -9px -12px;
+}
+.view-icons strong,
+.view-icons a {
+    width: 15px;
+    height: 15px;
+    display: inline-block;
+    text-indent: -9999px;
+    line-height: normal;
+    background: url(images/view-mode-bg.png) no-repeat 0 0;
+}
+.view-icons strong.view-list {
+    background-position: -16px 0;
+}
+.view-icons a.view-grid {
+    background-position: 0 -16px;
+}
+.view-icons a.view-grid:hover {
+    background-position: 0 -32px;
+}
+.view-icons a.view-list {
+    background-position: -16px -16px;
+}
+
+.view-icons a.view-list:hover {
+    background-position: -16px -32px;
+}
+.sorter:after {
+    content:"";
+    display:table;
+    clear: both;
+}
+
+/* =============================================================================
+   Footer Blocks
+   ========================================================================== */
+.footer-links {
+    margin-bottom: 12px;
+}
+.switcher {}
+.switcher ul {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+.switcher .current {
+    display: none;
+}
+.copyrights {
+    display: block;
+    margin: 12px 0;
+}
+.bug-report {
+    margin: 12px 0;
+}
+
+/* =============================================================================
+   Simple Block
+   ========================================================================== */
+.block {}
+.block-title,
+.block-list > li,
+.block-footer {
+    padding:5px 0;
+}
+.block-subtitle {
+    margin:5px 0;
+    font-weight:bold;
+}
+.block-list {
+    list-style:none;
+    padding:0;
+}
+.block-footer:after {
+    content:'';
+    width:100%;
+    display:table;
+    clear:both;
+}
+
+/* =============================================================================
+   Auth, User Block (Login, Register Pages)
+   ========================================================================== */
+.block-user {
+    margin:0 0 15px 0;
+}
+.block-user .block-title {
+    text-transform:uppercase;
+}
+.block-user .forgot-link {
+    display:inline-block;
+    margin:7px 0 5px;
+}
+.block-user .block-footer .button {
+    float:right;
+}
+.block-user .block-content {
+    padding-top:12px;
+}
+.block-user .block-content p {
+    margin-top:0;
+}
+.block-login .block-content {
+    min-height:150px;
+}
+
+/* =============================================================================
+   Search Form
+   ========================================================================== */
+.form-search {
+    margin:0 0 10px 0;
+}
+.form-search label {
+    vertical-align:top;
+}
+.form-search input[type=search],
+.form-search input.search {
+    margin-bottom:0;
+    min-width:160px;
+}
+.form-search strong {
+    display:none;
+}
+.search-form-submit {
+
+}
+
+/* =============================================================================
+   Quick access links
+   ========================================================================== */
+.quick-access {
+    float:right;
+    margin:12px 0 0 0;
+}
+.quick-access .nav > ul > li {
+    margin:0 22px 0 0;
+}
+.quick-access .nav > ul > li:after {
+    content:'';
+}
+.quick-access .items-qty {
+    font-size:11px;
+}
+.quick-access .nav > .button {
+    margin:-3px 0 0 0;
+}
+
+/* =============================================================================
+   Header
+   ========================================================================== */
+.page-header .arrow {
+    margin:0 0 0 3px;
+    cursor:pointer;
+    color:#919191;
+    font-size:9px;
+    vertical-align:middle;
+}
+.page-header-inner:after {
+    content:'';
+    display:table;
+    width:100%;
+}
+.menu-top {
+    list-style:none;
+    margin:0 0 10px 0;
+}
+.menu-top li {
+    display:inline-block;
+    margin:0 25px 0 0;
+}
+.menu-top li a {
+    text-decoration:underline;
+}
+.menu-top li a span {
+    text-transform:none;
+}
+.menu-top dl {}
+.menu-top dt {
+    display:inline;
+}
+.menu-top dd {
+    display:inline;
+    margin:0 25px 0 0;
+}
+/* =============================================================================
+   components.css (end)
+   ========================================================================== */
+
+
+/* =============================================================================
+   print.css (begin)
+   ========================================================================== */
+
+/* ==|== print styles =======================================================
+   Print styles.
+   Inlined to avoid required HTTP connection: h5bp.com/r
+   ========================================================================== */
+
+@media print {
+    * {
+        background: transparent !important;
+        color: black !important;
+        box-shadow: none !important;
+        text-shadow: none !important;
+        filter: none !important;
+        -ms-filter: none !important;
+    }
+
+    /* Black prints faster: h5bp.com/s */
+    a, a:visited {
+        text-decoration: underline;
+    }
+
+    a[href]:after {
+        content: " (" attr(href) ")";
+    }
+
+    abbr[title]:after {
+        content: " (" attr(title) ")";
+    }
+
+    .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
+        content: "";
+    }
+
+    /* Don't show links for images, or javascript/internal links */
+    pre, blockquote {
+        border: 1px solid #999;
+        page-break-inside: avoid;
+    }
+
+    thead {
+        display: table-header-group;
+    }
+
+    /* h5bp.com/t */
+    tr, img {
+        page-break-inside: avoid;
+    }
+
+    img {
+        max-width: 100% !important;
+    }
+
+    @page {
+        margin: 0.5cm;
+    }
+
+    p, h2, h3 {
+        orphans: 3;
+        widows: 3;
+    }
+
+    h2, h3 {
+        page-break-after: avoid;
+    }
+}
+/* =============================================================================
+   print.css (end)
+   ========================================================================== */
+
+
+/* =============================================================================
+   utils.css (begin)
+   ========================================================================== */
+/*
+    Helpers and Utils
+-------------------------------------- */
+
+/* Hide from both screenreaders and browsers: h5bp.com/u */
+.hidden {
+    display: none;
+    visibility: hidden;
+}
+
+input.no-display,
+.no-display {
+    display: none;
+}
+
+/* Hide visually and from screenreaders, but maintain layout */
+.invisible {
+    visibility: hidden;
+}
+
+/* Contain floats: h5bp.com/q */
+.clearfix:before,
+.clearfix:after {
+    content: "";
+    display: table;
+}
+
+.clearfix:after {
+    clear: both;
+}
+/* =============================================================================
+   utils.css (end)
+   ========================================================================== */
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/mui/print.css b/app/design/adminhtml/Magento/backend/web/mui/print.css
deleted file mode 100644
index 2824321d10b396a8329f742647d3ea69ef9dec43..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/print.css
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/* ==|== print styles =======================================================
-   Print styles.
-   Inlined to avoid required HTTP connection: h5bp.com/r
-   ========================================================================== */
-
-@media print {
-    * {
-        background: transparent !important;
-        color: black !important;
-        box-shadow: none !important;
-        text-shadow: none !important;
-        filter: none !important;
-        -ms-filter: none !important;
-    }
-
-    /* Black prints faster: h5bp.com/s */
-    a, a:visited {
-        text-decoration: underline;
-    }
-
-    a[href]:after {
-        content: " (" attr(href) ")";
-    }
-
-    abbr[title]:after {
-        content: " (" attr(title) ")";
-    }
-
-    .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
-        content: "";
-    }
-
-    /* Don't show links for images, or javascript/internal links */
-    pre, blockquote {
-        border: 1px solid #999;
-        page-break-inside: avoid;
-    }
-
-    thead {
-        display: table-header-group;
-    }
-
-    /* h5bp.com/t */
-    tr, img {
-        page-break-inside: avoid;
-    }
-
-    img {
-        max-width: 100% !important;
-    }
-
-    @page {
-        margin: 0.5cm;
-    }
-
-    p, h2, h3 {
-        orphans: 3;
-        widows: 3;
-    }
-
-    h2, h3 {
-        page-break-after: avoid;
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/web/mui/reset.css b/app/design/adminhtml/Magento/backend/web/mui/reset.css
deleted file mode 100644
index 8971e6a3a4d7e538fe19db5007347ac3348ac5be..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/reset.css
+++ /dev/null
@@ -1,429 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
-
-/* ==========================================================================
-   HTML5 display definitions
-   ========================================================================== */
-
-/**
- * Correct `block` display not defined in IE 8/9.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
-    display: block;
-}
-
-/**
- * Correct `inline-block` display not defined in IE 8/9.
- */
-
-audio,
-canvas,
-video {
-    display: inline-block;
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
-    display: none;
-    height: 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-[hidden] {
-    display: none;
-}
-
-/* ==========================================================================
-   Base
-   ========================================================================== */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-    font-family: sans-serif; /* 1 */
-    -webkit-text-size-adjust: 100%; /* 2 */
-    -ms-text-size-adjust: 100%; /* 2 */
-}
-
-html, body, button, input, select, textarea {
-    color: #676056;
-    font: 13px/1.333 Arial, Helvetica, sans-serif;
-}
-
-/**
- * Remove default margin.
- */
-
-body {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Links
-   ========================================================================== */
-
-/**
- * Address `outline` inconsistency between Chrome and other browsers.
- */
-
-a {
-    color: #19A3D1;
-}
-
-a:visited {
-    color: #551a8b;
-}
-
-a:hover {
-    color: #06e;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-/* ==========================================================================
-   Typography
-   ========================================================================== */
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari 5, and Chrome.
- */
-
-h1 {
-    font-size: 2em;
-    margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9, Safari 5, and Chrome.
- */
-
-abbr[title] {
-    border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
- */
-
-b,
-strong {
-    font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari 5 and Chrome.
- */
-
-dfn {
-    font-style: italic;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
-    -moz-box-sizing: content-box;
-    box-sizing: content-box;
-    height: 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
-    background: #ff0;
-    color: #000;
-}
-
-/**
- * Correct font family set oddly in Safari 5 and Chrome.
- */
-
-code,
-kbd,
-pre,
-samp {
-    font-family: monospace, serif;
-    font-size: 1em;
-}
-
-/**
- * Improve readability of pre-formatted text in all browsers.
- */
-
-pre {
-    white-space: pre-wrap;
-}
-
-/**
- * Set consistent quote types.
- */
-
-q {
-    quotes: "\201C" "\201D" "\2018" "\2019";
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
-    font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline;
-}
-
-sup {
-    top: -0.5em;
-}
-
-sub {
-    bottom: -0.25em;
-}
-
-/* =============================================================================
-   Lists
-   ========================================================================== */
-
-ul, ol {
-    margin: 1em 0;
-    padding: 0 0 0 40px;
-}
-
-dd {
-    margin: 0 0 0 40px;
-}
-
-nav ul, nav ol {
-    list-style: none;
-    list-style-image: none;
-    margin: 0;
-    padding: 0;
-}
-
-
-/* ==========================================================================
-   Embedded content
-   ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9.
- */
-
-img {
-    border: 0;
-}
-
-/**
- * Correct overflow displayed oddly in IE 9.
- */
-
-svg:not(:root) {
-    overflow: hidden;
-}
-
-/* ==========================================================================
-   Figures
-   ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari 5.
- */
-
-figure {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Forms
-   ========================================================================== */
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
-    border: 1px solid #c0c0c0;
-    margin: 0 2px;
-    padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
-    border: 0; /* 1 */
-    padding: 0; /* 2 */
-}
-
-/**
- * 1. Correct font family not being inherited in all browsers.
- * 2. Correct font size not being inherited in all browsers.
- * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
- */
-
-button,
-input,
-select,
-textarea {
-    font-family: inherit; /* 1 */
-    font-size: 100%; /* 2 */
-    margin: 0; /* 3 */
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-button,
-input {
-    line-height: normal;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
- * Correct `select` style inheritance in Firefox 4+ and Opera.
- */
-
-button,
-select {
-    text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- *    `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-    -webkit-appearance: button; /* 2 */
-    cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled] {
-    cursor: default;
-}
-
-/**
- * 1. Address box sizing set to `content-box` in IE 8/9.
- * 2. Remove excess padding in IE 8/9.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
-    box-sizing: border-box; /* 1 */
-    padding: 0; /* 2 */
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
- *    (include `-moz` to future-proof).
- */
-
-input[type="search"] {
-    -webkit-appearance: textfield; /* 1 */
-    -moz-box-sizing: content-box;
-    -webkit-box-sizing: content-box; /* 2 */
-    box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari 5 and Chrome
- * on OS X.
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-    -webkit-appearance: none;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-
-/**
- * 1. Remove default vertical scrollbar in IE 8/9.
- * 2. Improve readability and alignment in all browsers.
- */
-
-textarea {
-    overflow: auto; /* 1 */
-    vertical-align: top; /* 2 */
-}
-
-/* ==========================================================================
-   Tables
-   ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
\ No newline at end of file
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/abstract.less b/app/design/adminhtml/Magento/backend/web/mui/styles/abstract.less
similarity index 92%
rename from app/design/adminhtml/Magento/backend/web/css/source/abstract.less
rename to app/design/adminhtml/Magento/backend/web/mui/styles/abstract.less
index bd10565ed84694bea8d50c2e6bff07fdc99b7415..5a4e98bf6afb26fa62051547d2777f71b1244c80 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/abstract.less
+++ b/app/design/adminhtml/Magento/backend/web/mui/styles/abstract.less
@@ -5,9 +5,8 @@
 
 //&:extend(._layout-width all);
 ._layout-width {
-    .layout-width();
-    box-sizing: border-box;
-    width: 100%;
+    padding-left: 30px;
+    padding-right: 30px;
 }
 
 .visually-hidden {
@@ -17,7 +16,7 @@
 .validation-symbol {
     &:after {
         content: '*';
-        color: @validation-color;
+        color: @validation__color;
         font-weight: normal;
         margin-left: 3px;
     }
@@ -26,7 +25,7 @@
 .validation-symbol-light {
     &:after {
         content: '*';
-        color: @validation-color-light;
+        color: @validation__color-light;
         font-weight: normal;
         margin-left: 3px;
     }
diff --git a/app/design/adminhtml/Magento/backend/web/mui/styles/base.less b/app/design/adminhtml/Magento/backend/web/mui/styles/base.less
new file mode 100644
index 0000000000000000000000000000000000000000..9701eb6e2374366ce0a7e4b9d2bd800ad657989a
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/mui/styles/base.less
@@ -0,0 +1,83 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+// Fonts
+.font-face(
+    @family-name: @icons__font-name,
+    @font-path: @icons__font-path,
+    @font-weight: normal,
+    @font-style: normal
+);
+
+.font-face(
+    @family-name: 'MUI-Icons',
+    @font-path: '@{baseDir}fonts/MUI-Icons/MUI-Icons',
+    @font-weight: 300,
+    @font-style: normal
+);
+
+.font-face(
+    @family-name: @font-family-name__base,
+    @font-path: '@{baseDir}fonts/opensans/light/opensans-300',
+    @font-weight: 300,
+    @font-style: normal
+);
+
+.font-face(
+    @family-name: @font-family-name__base,
+    @font-path: '@{baseDir}fonts/opensans/regular/opensans-400',
+    @font-weight: 400,
+    @font-style: normal
+);
+
+.font-face(
+    @family-name: @font-family-name__base,
+    @font-path: '@{baseDir}fonts/opensans/semibold/opensans-600',
+    @font-weight: 600,
+    @font-style: normal
+);
+
+.font-face(
+    @family-name: @font-family-name__base,
+    @font-path: '@{baseDir}fonts/opensans/bold/opensans-700',
+    @font-weight: 700,
+    @font-style: normal
+);
+
+// Headings
+h1 {
+    color: @h1color;
+    font: @h1font;
+}
+
+h2 {
+    color: @h2color;
+    font: @h2font;
+}
+
+h3 {
+    color: @h3color;
+    font: @h3font;
+}
+
+h4 {
+    color: @h4color;
+    font: @h4font;
+}
+
+h5 {
+    color: @h5color;
+    font: @h5font;
+}
+
+h6 {
+    color: @h6color;
+    font: @h6font;
+}
+
+// Links
+a {
+    .actionLink();
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/dashboard.less b/app/design/adminhtml/Magento/backend/web/mui/styles/dashboard.less
similarity index 100%
rename from app/design/adminhtml/Magento/backend/web/css/source/dashboard.less
rename to app/design/adminhtml/Magento/backend/web/mui/styles/dashboard.less
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/table.less b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less
similarity index 97%
rename from app/design/adminhtml/Magento/backend/web/css/source/table.less
rename to app/design/adminhtml/Magento/backend/web/mui/styles/table.less
index b2c117491ad6f5f76e4ada921630cf9de4fee0bc..c7b2e60187cdab7df778030f1db4042446dbd3e5 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/table.less
+++ b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less
@@ -164,10 +164,6 @@ table {
     .input-text,
     select,
     .select {
-        border-color: @grid-controls-border;
-        box-shadow: none;
-        border-radius: 1px;
-        height: 28px;
         margin: 0 10px 0 0;
     }
 }
@@ -230,6 +226,11 @@ table {
         margin: 0;
         padding: 0;
         width: 99%;
+        &:not([multiple]) {
+            .ie9 & {
+                padding-right: 0;
+            }
+        }
     }
 
     input.input-text {
@@ -710,7 +711,7 @@ td.col-type {
         .show-by {
             .select {
                 margin-left: 5px;
-                padding: 4px 4px 5px;
+                padding: 4px 44px 5px 4px;
                 vertical-align: top;
                 width: auto;
             }
@@ -734,16 +735,16 @@ td.col-type {
     }
     .validation-advice {
         background: @validation-background-color;
-        border: 1px solid @validation-color;
+        border: 1px solid @validation__color;
         border-radius: 3px;
-        color: @validation-color;
+        color: @validation__color;
         margin: 5px 0 0;
         padding: 3px 7px;
         position: absolute;
         white-space: nowrap;
         z-index: 5;
         &:before {
-            .arrow(up, 5px, @validation-color);
+            .arrow(up, 5px, @validation__color);
             content: '';
             left: 50%;
             margin-left: -5px;
@@ -752,8 +753,8 @@ td.col-type {
         }
     }
     input[type="text"].validation-failed {
-        border-color: @validation-color;
-        box-shadow: 0 0 8px @validation-color-rgba;
+        border-color: @validation__color;
+        box-shadow: 0 0 8px @validation__color-rgba;
     }
     .link-feed {
         white-space: nowrap;
@@ -774,7 +775,7 @@ td.col-type {
         margin-right: 25px;
     }
     .view-pages .select {
-        margin: 0 5px;
+        margin: 0 7px;
     }
     .link-feed {
         font-size: 12px;
@@ -1016,13 +1017,21 @@ td.col-type {
 //    Sales -> Create Order
 //--------------------------------------
 
-.sales-order-create-index {
+.sales-order-create-index,
+.sales-order-edit-index {
     .grid,
     .grid-actions {
         &:extend(.side-paddings-0);
-    }
-    .sales-order-create-index .grid table .action-configure {
-        float: right;
+        table .action-configure {
+            float: right;
+            &.disabled {
+                cursor: default;
+                opacity: .5;
+                &:hover {
+                    text-decoration: none;
+                }
+            }
+        }
     }
     .data-table {
         .border td {
diff --git a/app/design/adminhtml/Magento/backend/web/less/styles/vars.less b/app/design/adminhtml/Magento/backend/web/mui/styles/vars.less
similarity index 50%
rename from app/design/adminhtml/Magento/backend/web/less/styles/vars.less
rename to app/design/adminhtml/Magento/backend/web/mui/styles/vars.less
index 250aa6565971be88721c801504ae97acb155a1a4..cd39cc32c3f4f97c27d0a986582c2159ee0133c9 100644
--- a/app/design/adminhtml/Magento/backend/web/less/styles/vars.less
+++ b/app/design/adminhtml/Magento/backend/web/mui/styles/vars.less
@@ -3,10 +3,6 @@
 //  * See COPYING.txt for license details.
 //  */
 
-@import "../clearless/all";
-
-@baseDir: ~"..";
-
 // Primary colors
 @primary1: #676056;
 @primary2: #ed4f2e;
@@ -37,6 +33,7 @@
 @linkColor2: @primary4;
 
 // Base font
+@font-family-name__base: 'Open Sans';
 @baseFont: 'Open Sans', sans-serif;
 @baseFontSize: 14px;
 @baseFontWeight: 400;
@@ -312,3 +309,181 @@
         text-decoration: underline;
     }
 }
+
+/* ==========================================================================
+   theme.less (begin)
+   ========================================================================== */
+
+//
+//  Blank theme overrides
+//  _____________________________________________
+
+//  Theme file should contain declarations (overrides) ONLY OF EXISTING variables
+//  Otherwise this theme won't be available for parent nesting
+//  All new variables should be placed in local theme lib or local theme files
+
+//
+//  Typography
+//  ---------------------------------------------
+
+//  Fonts
+@color-dark: #31302b;
+
+//
+//  Layout
+//  ---------------------------------------------
+
+@responsive: false;
+
+@layout__max-width: 1300px;
+@layout-indent__width: 15px;
+
+//
+//  Dropdowns
+//  ---------------------------------------------
+
+@dropdown-split-actions__padding: '';
+@dropdown-split-toggle__actions__padding: 6px 5px;
+@dropdown-split-toggle-icon__font-line-height: 14px;
+
+//
+//  Buttons
+//  ---------------------------------------------
+
+//  Default = secondary button
+@button__padding: 6px 13px;
+@button__font-weight: 500;
+@button__font-size: 13px;
+@button__line-height: @button__font-size + 1;
+@button__color: #645d53;
+@button__background: #f2ebde;
+@button__border: 1px solid #ada89e;
+
+@button__hover__background: #cac3b4;
+@button__hover__color: '';
+@button__hover__border: '';
+
+@button__active__background: @button__hover__background;
+@button__active__color: '';
+@button__active__border: 1px solid #989287;
+
+//  Primary button
+@button-primary__background: #007dbd;
+@button-primary__border: 1px solid #0a6c9f;
+@button-primary__color: @color-white;
+
+@button-primary__hover__background: #026294;
+@button-primary__hover__border: 1px solid #026294;
+@button-primary__hover__color: '';
+
+@button-primary__active__background: @button-primary__hover__background;
+@button-primary__active__border: 1px solid #004c74;
+
+/* ==========================================================================
+   theme.less (end)
+   ========================================================================== */
+
+/* ==========================================================================
+   variables.less (begin)
+   ========================================================================== */
+
+//
+//  Admin theme variables
+//  _____________________________________________
+
+//
+//  Typography
+//  ---------------------------------------------
+
+//  Fonts
+@font-family-name__base: 'Open Sans';
+@font-family__base: @font-family-name__base, @font-family__sans-serif;
+
+//  Colors
+@col-layout-background-color: #f6f3eb;
+@color-middle: #676056;
+@color-light: #e0dacf;
+@color-general: #f3ebde;
+@link__color: #026294;
+@page-main-action-color: #645d53;
+
+//
+//  Layout
+//  ---------------------------------------------
+
+@layout__min-width: 960px;
+
+//
+//  Forms
+//  ---------------------------------------------
+
+@form-element-background-color: @color-white;
+
+//  Validation
+@validation__color: #e22626;
+@validation__color-rgba: rgba(226, 38, 38, .6);
+@validation-background-color: #f9d4d4;
+@validation-border: 1px dashed @validation__color;
+@validation__color-light: #f9d4d4; //  For asterisk on <th> elements of grid tables
+
+//
+//  Tables
+//  ---------------------------------------------
+
+//  Data-table
+@data-table-th-border-color: #c9c2b8;
+@data-table-td-border-color: #eae8e4;
+@data-table-td-background-color: @grid-td-light;
+@data-table-td-background-color-odd: #fbfaf6;
+@data-table-td-background-color-hover: #f7f3eb;
+
+//
+//  Grid
+//  ---------------------------------------------
+
+@grid-frame-background-color: @color-white;
+@grid-controls-border: #989287;
+
+@grid-headings-color: #f7f3eb;
+@grid-headings-color-darker: darken(@grid-headings-color, 20%);
+@grid-headings-background-color: #807a6e;
+@grid-headings-border: #cac3b4;
+
+@grid-filters-color: #f7f3eb;
+@grid-filters-background-color: @color-middle;
+@grid-filters-border: @grid-filters-background-color;
+@grid-filters-placeholder-color: #989287;
+
+@grid-massaction-border: 1px solid #f2ebde;
+
+@grid-td-color: @color-middle;
+@grid-td-light: @color-white;
+@grid-td-dark: #f7f3eb;
+@grid-td-border: @grid-headings-border;
+@grid-td-background-color-hover: #f2ebde;
+
+@grid-tfoot-color: @grid-td-color;
+@grid-tfoot-background-color: #f2ebde;
+
+@grid-severity-critical-color: #e22626;
+@grid-severity-critical-background-color: #f9d4d4;
+@grid-severity-critical-border: @grid-severity-critical-color;
+
+@grid-severity-notice-color: #185b00;
+@grid-severity-notice-background-color: #d0e5a9;
+@grid-severity-notice-border: #5b8116;
+
+@grid-severity-minor-color: #ed4f2e;
+@grid-severity-minor-background-color: #feeee1;
+@grid-severity-minor-border: @grid-severity-minor-color;
+
+//
+//  Pager
+//  ---------------------------------------------
+
+@pager-actions__color: @primary3;
+@pager-actions__color-hover: @primary5;
+
+/* ==========================================================================
+   variables.less (end)
+   ========================================================================== */
diff --git a/app/design/adminhtml/Magento/backend/web/mui/utils.css b/app/design/adminhtml/Magento/backend/web/mui/utils.css
deleted file mode 100644
index 3be32f6aa3e87c257ced90f017df4cd0a68774bd..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/web/mui/utils.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/*
-    Helpers and Utils
--------------------------------------- */
-
-/* Hide from both screenreaders and browsers: h5bp.com/u */
-.hidden {
-    display: none;
-    visibility: hidden;
-}
-
-input.no-display,
-.no-display {
-    display: none;
-}
-
-/* Hide visually and from screenreaders, but maintain layout */
-.invisible {
-    visibility: hidden;
-}
-
-/* Contain floats: h5bp.com/q */
-.clearfix:before,
-.clearfix:after {
-    content: "";
-    display: table;
-}
-
-.clearfix:after {
-    clear: both;
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less
index c7b73ff86b351c89ff2e2ad8094eaeb23e7215ea..e96d4b1f33cecb1eb25ddb04e38e4a78934f2bae 100644
--- a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_module.less
@@ -46,6 +46,12 @@
 .old.price {
     text-decoration: line-through;
 }
+.msrp-price-wrapper {
+    text-decoration: none;
+    .price-wrapper {
+        text-decoration: line-through;
+    }
+}
 
 .price-tier_price {
     .price-including-tax + .price-excluding-tax {
@@ -160,8 +166,8 @@
 }
 
 .product-info-main {
-    .page-title {
-        .title {
+    .page-title-wrapper {
+        .page-title {
             margin-bottom: @indent__s;
             line-height: @line-height__base;
         }
@@ -329,7 +335,6 @@
         }
         .price-box {
             display: block;
-            font-weight: @font-weight__semibold;
             margin: 7px 0;
         }
         .text {
@@ -439,8 +444,8 @@
     }
 
     .product-info-main {
-        .page-title {
-            .title {
+        .page-title-wrapper {
+            .page-title {
                 margin-top: -13px;
             }
         }
@@ -535,38 +540,6 @@
 
 & when (@media-common = true) {
 
-//
-//    Minimum Advertising Price
-//--------------------------------------
-.map.popup {
-    .popup(
-        @_popup-margin-top: @indent__s,
-        @_popup-margin-left: false,
-        @_popup-content-margin: 10px 0 0,
-        @_popup-position-top: false,
-        @_popup-position-left: false,
-        @_popup-position: absolute
-    );
-    .ui-dialog & {
-        padding: 22px;
-    }
-    .map.add.form {
-        &:extend(.abs-add-clearfix all);
-        margin-bottom: 15px;
-        .price-box {
-            float: left;
-            .label {
-                &:after {
-                    content: ": ";
-                }
-            }
-        }
-    }
-    .form.map.checkout {
-        float: right;
-    }
-}
-
 //
 //    Compare Products Page
 //--------------------------------------
diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module/_toolbar.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module/_toolbar.less
index cfe89a57bc0c57dfd77670dd41a25a89e248c347..283442c2d282c2279e582158450780eb64349ced 100644
--- a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module/_toolbar.less
+++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module/_toolbar.less
@@ -118,7 +118,6 @@
         float: left;
         display: inline-block;
         margin-right: @indent__base;
-        overflow: hidden;
         .products.wrapper ~ .toolbar & {
             display: none;
         }
@@ -134,7 +133,6 @@
             padding: 7px 10px;
             line-height: 1;
             border-right: 0;
-            .icon-text-hide();
             &:not(.active):hover {
                 background: darken(@toolbar-element-background, 7%);
                 .css(color, @text__color__muted);
@@ -147,7 +145,8 @@
             }
             .icon-font(
                 @icon-grid,
-                @_icon-font-size: @toolbar-mode-icon-font-size
+                @_icon-font-size: @toolbar-mode-icon-font-size,
+                @_icon-font-text-hide: true
             );
         }
     }
diff --git a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/_module.less
index ff64e3c87a51285aca83e3ee708e9e20197c3768..22cfd9a56a439469de48339536e5bbf3a2424266 100644
--- a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/_module.less
@@ -336,7 +336,7 @@
     //  ---------------------------------------------
 
     .checkout-onepage-success {
-        .page-title {
+        .page-title-wrapper {
             .print:extend(.abs-no-display all) {
             }
         }
@@ -431,7 +431,7 @@
     //  ---------------------------------------------
 
     .checkout-onepage-success {
-        .page-title {
+        .page-title-wrapper {
             .print {
                 display: inline-block;
                 .font-size(14);
diff --git a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
index d842d71965e5e6336a99c6bcdf3339793e43cb50..0758cf95b23585ce288471dc71f6ad27a3ba9bb7 100644
--- a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
@@ -160,10 +160,6 @@
             float: left;
         }
         &-item-name {
-            display: block;
-            max-width: 100%;
-            overflow: hidden;
-            text-overflow: ellipsis;
             font-weight: @font-weight__regular;
             margin-top: 0;
             a {
diff --git a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less
index 000b92f148e5d27a49c22c60313da3039c99578b..a00cd3009d12b48d4d54e5bf0515b5a059586ae7 100644
--- a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less
@@ -66,8 +66,8 @@
 
 // My account
 .account {
-    .page-title {
-        .title {
+    .page-title-wrapper {
+        .page-title {
             display: inline-block;
         }
     }
@@ -201,7 +201,7 @@
         }
     }
     .customer-account-index {
-        .page-title {
+        .page-title-wrapper {
             position: relative;
         }
     }
diff --git a/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less
new file mode 100644
index 0000000000000000000000000000000000000000..0588feef2464df93a56d54de0c0a50f1f844cd18
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less
@@ -0,0 +1,68 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.map-popup-wrapper {
+    &.popup {
+        .action {
+            &.close {
+                .css(top, @popup-button-close__position-top);
+            }
+        }
+    }
+}
+
+.map-popup {
+    .popup(
+        @_popup-margin-top: @indent__s,
+        @_popup-margin-left: false,
+        @_popup-content-margin: @indent__s 0 0,
+        @_popup-position-bottom: false,
+        @_popup-position-right: false,
+        @_popup-position: absolute
+    );
+    .map-info-price {
+        &:extend(.abs-add-clearfix all);
+        margin-bottom: 15px;
+        .price-box {
+            margin: 0 0 @indent__base;
+            .label {
+                &:after {
+                    content: ": ";
+                }
+            }
+        }
+    }
+}
+
+.map-old-price,
+.product-info-price .map-show-info {
+    &:not(:last-child) {
+        margin-right: @indent__s;
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .map-popup {
+        max-width: 100%; 
+    }
+    .map-old-price,
+    .map-show-info {
+        display: inline-block;
+        &:not(:last-child) {
+            margin-bottom: @indent__s;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Sales/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Sales/web/css/source/_module.less
index 51ee93b1a7546657b44fce11f6cfa3ef4d6d3fd4..d6dd6315b31c51f33ca02547e80b87f793ce49d7 100644
--- a/app/design/frontend/Magento/blank/Magento_Sales/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_Sales/web/css/source/_module.less
@@ -88,7 +88,7 @@
     &:extend(.abs-status all);
 }
 
-.page-title {
+.page-title-wrapper {
     .order-date {
         margin: 0 0 @indent__base;
     }
@@ -96,8 +96,8 @@
 
 .account,
 .sales-guest-view {
-    .page-title {
-        .title {
+    .page-title-wrapper {
+        .page-title {
             margin-right: @indent__m;
         }
     }
@@ -261,7 +261,7 @@
         }
     }
 
-    .page-title {
+    .page-title-wrapper {
         .order-date {
             @order-status-indent: ceil(@h1__margin-bottom__desktop/2);
             .css(margin-top, -@order-status-indent);
diff --git a/app/design/frontend/Magento/blank/Magento_Theme/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Theme/web/css/source/_module.less
index 5bac59d9b407b75063a83dde5b2e5aa951a9a2a6..647bf06f5c93c95320bd40ea2256f496a60537bd 100644
--- a/app/design/frontend/Magento/blank/Magento_Theme/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_Theme/web/css/source/_module.less
@@ -3,7 +3,7 @@
 //  * See COPYING.txt for license details.
 //  */
 
-@import 'module/_collapsible_navigation';
+@import 'module/_collapsible_navigation.less';
 
 @message-global-note__color: @text__color;
 @message-global-note__background: @color-yellow-light2;
@@ -78,8 +78,8 @@ body {
 }
 
 .page-main {
-    > .page-title {
-        .title + .action {
+    > .page-title-wrapper {
+        .page-title + .action {
             margin-top: @indent__l;
         }
     }
@@ -300,11 +300,11 @@ body {
     }
 
     .page-main {
-        > .page-title {
-            .title {
+        > .page-title-wrapper {
+            .page-title {
                 display: inline-block;
             }
-            .title + .action {
+            .page-title + .action {
                 float: right;
                 margin-top: @indent__base;
             }
diff --git a/app/design/frontend/Magento/blank/web/css/source/_popups.less b/app/design/frontend/Magento/blank/web/css/source/_popups.less
index 0d74d6cdb657c1f51a2e58d103544408cbf09255..f0d6781ecb84de50a4e2e50b5526503ad3ac054d 100644
--- a/app/design/frontend/Magento/blank/web/css/source/_popups.less
+++ b/app/design/frontend/Magento/blank/web/css/source/_popups.less
@@ -3,6 +3,8 @@
 //  * See COPYING.txt for license details.
 //  */
 
+@popup-marker__size: 7px;
+
 //
 //    Common
 //--------------------------------------
@@ -10,33 +12,62 @@
 & when (@media-common = true) {
 
 // Popup working with dropdown dialog
-.ui-dialog.popup {
-  width: 420px;
-  .action.close {
-    position: @popup-button-close__position;
-    ._popup-button-close-icon(
-      @popup-button-close__icon,
-      @popup-icon-font__content,
-      @popup-icon-font,
-      @popup-icon-font__size,
-      @popup-icon-font__line-height,
-      @popup-icon-font__color,
-      @popup-icon-font__color-hover,
-      @popup-icon-font__color-active,
-      @popup-icon-font__margin,
-      @popup-icon-font__vertical-align,
-      @popup-icon-font__position,
-      @popup-icon-font__text-hide
-    );
-    ._popup-button-close-reset(
-      @popup-button-close__reset
+.ui-dialog {
+    &.popup {
+        .action {
+            &.close {
+                width: 40px;
+                height: 40px;
+                top: 0;
+                right: 0;
+                .css(position, @popup-button-close__position);
+                .css(bottom, @popup-button-close__position-bottom);
+                .css(left, @popup-button-close__position-left);
+                z-index: 1001;
+                ._popup-button-close-icon(
+                    @popup-button-close__icon,
+                    @popup-icon-font__content,
+                    @popup-icon-font,
+                    @popup-icon-font__size,
+                    @popup-icon-font__line-height,
+                    @popup-icon-font__color,
+                    @popup-icon-font__color-hover,
+                    @popup-icon-font__color-active,
+                    @popup-icon-font__margin,
+                    @popup-icon-font__vertical-align,
+                    @popup-icon-font__position,
+                    @popup-icon-font__text-hide
+                );
+                ._popup-button-close-reset(
+                    @popup-button-close__reset
+                );
+            }
+        }
+    }
+}
+
+.popup-pointer {
+    .pointer(
+        @_size: @popup-marker__size,
+        @_background-color: @popup__background,
+        @_border-color: @popup__border-color,
+        @_position__vertical__value: 2px,
+        @_position__horizontal__value: 2px
     );
-    .css(top, @popup-button-close__position-top);
-    .css(right, @popup-button-close__position-right);
-    .css(bottom, @popup-button-close__position-bottom);
-    .css(left, @popup-button-close__position-left);
-    z-index: 1001;
-  }
+    position: absolute;
+    top: -@popup-marker__size * 2;
+    margin-left: -@popup-marker__size * 2;
 }
 
 }
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
+    .ui-dialog {
+        &.popup {
+            width: 420px;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
index 8a78ae3868c1b294e584041467803b31ab7bef58..95aded3d85ad63e0ec74da5035e4ca60e26c54e2 100644
--- a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
@@ -196,6 +196,7 @@
         }
     }
     .product-info-stock-sku {
+        min-width: 15rem;
         text-align: right;
         display: table-cell;
         vertical-align: top;
@@ -384,7 +385,6 @@
         }
         .price-box {
             display: block;
-            font-weight: @font-weight__semibold;
             margin: 7px 0;
         }
         .text {
@@ -503,7 +503,7 @@
 //--------------------------------------
 .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
     .product-info-main {
-        .page-title {
+        .page-title-wrapper {
             h1 {
                 .css(margin-bottom, @product-h1-margin-bottom-desktop);
             }
@@ -634,82 +634,6 @@
 
 & when (@media-common = true) {
 
-//
-//    Minimum Advertising Price
-//--------------------------------------
-.map.popup {
-    .popup(
-        @_popup-margin-top: 15px,
-        @_popup-margin-left: false,
-        @_popup-content-margin: false,
-        @_popup-position-top: false,
-        @_popup-position-left: false,
-        @_popup-position: absolute
-    );
-    .ui-dialog & {
-        padding: 22px;
-    }
-    &:before {
-        z-index: 99;
-        border: solid 6px;
-        border-color: transparent transparent @popup__background transparent;
-        margin-left: -4px;
-        top: -12px;
-    }
-    &:after {
-        z-index: 98;
-        border: solid 7px;
-        border-color: transparent transparent @popup__border-color transparent;
-        top: -14px;
-        margin-left: -5px;
-    }
-    &:before,
-    &:after {
-        content: "";
-        position: absolute;
-        display: block;
-        width: 0;
-        height: 0;
-        border-bottom-style: solid;
-        left: 50%;
-    }
-
-    .map.add.form {
-        &:extend(.abs-add-clearfix all);
-        margin: 0 0 20px;
-        .price-box {
-            float: left;
-            .label {
-                &:after {
-                    content: ": ";
-                }
-            }
-        }
-    }
-
-    .form.map.checkout {
-        float: right;
-    }
-
-    .additional-addtocart-box {
-        display: inline-block;
-    }
-    .action.primary {
-        float: left;
-        margin-right: 10px;
-    }
-    .map.msrp {
-        margin-bottom: 9px;
-    }
-    .actual-price {
-        font-size: @font-size__l;
-        margin: 3px 0 15px;
-    }
-    .popup-header {
-        display: none;
-    }
-}
-
 //
 //    Compare Products Page
 //--------------------------------------
diff --git a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_listings.less b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_listings.less
index 42833d6a522a0c130f369decd58f0d7538b5ad5a..09bfced8aa7eeee1cc46df9d298c8069edb94d6e 100644
--- a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_listings.less
+++ b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_listings.less
@@ -233,23 +233,25 @@
 
 .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
     .product-item-info {
-        .products-grid &:hover {
-            margin: -10px;
-            padding: 9px;
-            border: 1px solid @color-gray-light2;
-            @_shadow: 3px 3px 4px 0 rgba(0, 0, 0, .3);
-            .css(box-shadow, @_shadow);
-            position: relative;
-            z-index: 2;
-            .css(background, @color-white);
-            .product-item-inner {
-                display: block;
+        .products-grid & {
+            &:hover,
+            &.active {
+                margin: -10px;
+                padding: 9px;
+                border: 1px solid @color-gray-light2;
+                @_shadow: 3px 3px 4px 0 rgba(0, 0, 0, .3);
+                .css(box-shadow, @_shadow);
+                position: relative;
+                z-index: 2;
+                .css(background, @color-white);
+                .product-item-inner {
+                    display: block;
+                }
             }
         }
     }
     .product-item-inner {
         .products-grid & {
-            display: none;
             position: absolute;
             left: 0;
             right: -1px;
@@ -267,7 +269,6 @@
     .product-item-actions {
         display: block;
         .products-grid & {
-            visibility: hidden;
             margin: -@indent__s 0 @indent__s;
         }
         .actions-primary + .actions-secondary {
@@ -282,8 +283,17 @@
             }
         }
         .actions-primary { display: table-cell; }
-        .products-grid .product-item-info:hover & {
-            visibility: visible;
+    }
+
+    .products-grid {
+        .product-item-info {
+            &:not(:hover) {
+                &:not(.active) {
+                    .product-item-inner {
+                        &:extend(.abs-visually-hidden-desktop-s all);
+                    }
+                }
+            }
         }
     }
 
diff --git a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_toolbar.less b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_toolbar.less
index 94f306de93bc824e66cc4df47bfe15d592107afd..18b98115c2fdab35c909d7f56230aea884888ded 100644
--- a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_toolbar.less
+++ b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/module/_toolbar.less
@@ -147,7 +147,6 @@
         float: left;
         display: inline-block;
         margin-right: @indent__base;
-        overflow: hidden;
         .products.wrapper ~ .toolbar & {
             display: none;
         }
@@ -167,7 +166,6 @@
             border-right: 0;
             .css(background-color, @toolbar-element-background);
             .css(box-shadow, @button__shadow);
-            .icon-text-hide();
             .modes-label + & {
                 border-radius: 3px 0 0 3px;
             }
@@ -186,7 +184,8 @@
             }
             .icon-font(
                 @icon-grid,
-                @_icon-font-size: @toolbar-mode-icon-font-size
+                @_icon-font-size: @toolbar-mode-icon-font-size,
+                @_icon-font-text-hide: true
             );
         }
     }
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/_module.less
index 806ae15657ffbf7e3a13aee42d5d7b1c2211386a..c314e63584f044c0eeba4a4399ebc3370731dcd9 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/_module.less
@@ -433,7 +433,7 @@
     //  ---------------------------------------------
 
     .checkout-onepage-success {
-        .page-title {
+        .page-title-wrapper {
             .print:extend(.abs-no-display all) {
             }
         }
@@ -630,7 +630,7 @@
     //  ---------------------------------------------
 
     .checkout-onepage-success {
-        .page-title {
+        .page-title-wrapper {
             .print:extend(.abs-action-print-s all) {
                 display: inline-block;
                 .font-size(14);
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less
index ff18f2abc39225801414a04b5be5699252ded0cb..f60fdbe0aff42237b8522637fc0a32676f0d27ae 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less
@@ -21,7 +21,7 @@
         padding-left: 0;
         padding-right: 0;
     }
-    .page-title {
+    .page-title-wrapper {
         padding-left: @layout__width-xs-indent;
         padding-right: @layout__width-xs-indent;
     }
@@ -568,7 +568,7 @@
             padding-left: @layout__width-xs-indent;
             padding-right: @layout__width-xs-indent;
         }
-        .page-title {
+        .page-title-wrapper {
             &:extend(.abs-revert-side-paddings all);
         }
     }
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
index 89c63d4d35dd6776e515480ad51ed48e904f8a34..655c892d6dc9fff3b743a6ef799a617fd02c9a9d 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
@@ -158,10 +158,6 @@
             float: left;
         }
         &-item-name {
-            display: block;
-            max-width: 100%;
-            overflow: hidden;
-            text-overflow: ellipsis;
             font-weight: @font-weight__regular;
             margin-top: 0;
             a {
diff --git a/app/design/frontend/Magento/luma/Magento_Customer/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Customer/web/css/source/_module.less
index 5d01f70b1b04b7b491805720ed6fac6614c983ec..15f34bcbb6588e7be51ec879682f277f9045dee6 100644
--- a/app/design/frontend/Magento/luma/Magento_Customer/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Customer/web/css/source/_module.less
@@ -79,8 +79,8 @@
 
 // My account
 .account {
-    .page-title {
-        .title {
+    .page-title-wrapper {
+        .page-title {
             display: inline-block;
         }
     }
@@ -227,7 +227,7 @@
     }
 
     .account {
-        .page-title {
+        .page-title-wrapper {
             &:extend(.abs-add-clearfix-desktop all);
         }
         .column.main {
@@ -354,7 +354,7 @@
         }
     }
     .customer-account-index {
-        .page-title {
+        .page-title-wrapper {
             position: relative;
         }
     }
diff --git a/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less
new file mode 100644
index 0000000000000000000000000000000000000000..f64034240b33029c0876e6f5973f851861499688
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less
@@ -0,0 +1,96 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.map-popup-wrapper {
+    &.popup {
+        .action {
+            &.close {
+                .css(top, @popup-button-close__position-top);
+            }
+        }
+    }
+}
+
+.map-popup {
+    .popup(
+        @_popup-margin-top: @indent__s,
+        @_popup-margin-left: false,
+        @_popup-content-margin: false,
+        @_popup-position-bottom: false,
+        @_popup-position-right: false,
+        @_popup-position: absolute
+    );
+    .map-info-price {
+        &:extend(.abs-add-clearfix all);
+        margin: 0 0 @indent__base;
+        .price-box {
+            margin: 0 0 @indent__base;
+            .label {
+                &:after {
+                    content: ": ";
+                }
+            }
+        }
+    }
+    .action {
+        &.primary {
+            margin-right: @indent__s;
+        }
+    }
+    .map-msrp {
+        margin-bottom: @indent__s;
+    }
+    .actual-price {
+        margin: 3px 0 15px;
+    }
+    .popup-header {
+        display: none;
+    }
+}
+
+.map-old-price {
+    text-decoration: line-through;
+}
+
+.map-old-price,
+.product-item .map-old-price,
+.product-info-price .map-show-info {
+    &:not(:last-child) {
+        margin-right: @indent__s;
+    }
+}
+
+.product-options-bottom .price-box,
+.product-info-price .price-box {
+    .old-price {
+        .price-container > span {
+            display: inline;
+        }
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .map-popup {
+        max-width: 100%; 
+    }
+    .map-old-price,
+    .map-show-info {
+        display: inline-block;
+        &:not(:last-child) {
+            margin-bottom: @indent__s;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less
index 3221935ef2e9075beceadf7ff2714cbadcc28b44..38a264e7ee6afd514df2cff7eb03fd6c74cf8e9b 100644
--- a/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less
@@ -148,8 +148,8 @@
     }
 
     .page-main {
-        > .page-title {
-            .title + .action {
+        > .page-title-wrapper {
+            .page-title + .action {
                 margin-top: @indent__l;
             }
         }
@@ -424,11 +424,11 @@
     }
 
     .page-main {
-        > .page-title {
-            .title {
+        > .page-title-wrapper {
+            .page-title {
                 display: inline-block;
             }
-            .title + .action {
+            .page-title + .action {
                 float: right;
                 margin-top: @indent__base;
             }
diff --git a/app/design/frontend/Magento/luma/web/css/source/_extends.less b/app/design/frontend/Magento/luma/web/css/source/_extends.less
index 062389e30dcadd9b3a337aced6dae2857bb23693..8af8975b8ec451735021bc79a34c21f65dc2aa97 100644
--- a/app/design/frontend/Magento/luma/web/css/source/_extends.less
+++ b/app/design/frontend/Magento/luma/web/css/source/_extends.less
@@ -1159,8 +1159,8 @@
 //--------------------------------------
 .abs-title-orders {
     .page-main {
-        .page-title {
-            .title {
+        .page-title-wrapper {
+            .page-title {
                 margin-right: 25px;
             }
             .order-date {
@@ -1177,8 +1177,8 @@
 .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
     .abs-title-orders-mobile {
         .page-main {
-            .page-title {
-                .title {
+            .page-title-wrapper {
+                .page-title {
                     display: block;
                 }
                 .order-status {
@@ -1193,7 +1193,7 @@
 .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
     .abs-title-orders-desktop {
         .page-main {
-            .page-title {
+            .page-title-wrapper {
                 .order-date {
                     @order-date-indent: ceil(@h1__margin-bottom/1.5);
                     margin: -@order-date-indent 0 18px;
diff --git a/app/design/frontend/Magento/luma/web/css/source/_popups.less b/app/design/frontend/Magento/luma/web/css/source/_popups.less
index 2a74f07b4b914b33ca7e9879f44c0e3e989a12f9..7a410a6e953188c20cf9bc98b824cd5dab2269dc 100644
--- a/app/design/frontend/Magento/luma/web/css/source/_popups.less
+++ b/app/design/frontend/Magento/luma/web/css/source/_popups.less
@@ -3,6 +3,8 @@
 //  * See COPYING.txt for license details.
 //  */
 
+@popup-marker__size: 7px;
+
 //
 //    Common
 //--------------------------------------
@@ -10,44 +12,64 @@
 & when (@media-common = true) {
 
 // Popup working with dropdown dialog
-.ui-dialog.popup {
-  width: 420px;
-  .action.close {
-    position: @popup-button-close__position;
-    ._popup-button-close-icon(
-      @popup-button-close__icon,
-      @popup-icon-font__content,
-      @popup-icon-font,
-      @popup-icon-font__size,
-      @popup-icon-font__line-height,
-      @popup-icon-font__color,
-      @popup-icon-font__color-hover,
-      @popup-icon-font__color-active,
-      @popup-icon-font__margin,
-      @popup-icon-font__vertical-align,
-      @popup-icon-font__position,
-      @popup-icon-font__text-hide
-    );
-    ._popup-button-close-reset(
-      @popup-button-close__reset
-    );
-    .css(top, @popup-button-close__position-top + 15px);
-    .css(right, @popup-button-close__position-right);
-    .css(bottom, @popup-button-close__position-bottom);
-    .css(left, @popup-button-close__position-left);
-    z-index: 1001;
-  }
+.ui-dialog {
+    &.popup {
+        .action {
+            &.close {
+                width: 40px;
+                height: 40px;
+                top: 0;
+                right: 0;
+                .css(position, @popup-button-close__position);
+                .css(bottom, @popup-button-close__position-bottom);
+                .css(left, @popup-button-close__position-left);
+                z-index: 1001;
+                ._popup-button-close-icon(
+                    @popup-button-close__icon,
+                    @popup-icon-font__content,
+                    @popup-icon-font,
+                    @popup-icon-font__size,
+                    @popup-icon-font__line-height,
+                    @popup-icon-font__color,
+                    @popup-icon-font__color-hover,
+                    @popup-icon-font__color-active,
+                    @popup-icon-font__margin,
+                    @popup-icon-font__vertical-align,
+                    @popup-icon-font__position,
+                    @popup-icon-font__text-hide
+                );
+                ._popup-button-close-reset(
+                    @popup-button-close__reset
+                );
+            }
+        }
+    }
 }
 
 .popup {
     .actions-toolbar {
-        .action.cancel {
-            &:extend(.abs-action-button-as-link all);
-            font-weight: @font-weight__regular;
+        .action {
+            &.cancel {
+                &:extend(.abs-action-button-as-link all);
+                font-weight: @font-weight__regular;
+            }
         }
     }
 }
 
+.popup-pointer {
+    .pointer(
+        @_size: @popup-marker__size,
+        @_background-color: @popup__background,
+        @_border-color: @popup__border-color,
+        @_position__vertical__value: 2px,
+        @_position__horizontal__value: 2px
+    );
+    position: absolute;
+    top: -@popup-marker__size * 2;
+    margin-left: -@popup-marker__size * 2;
+}
+
 }
 
 //
@@ -55,15 +77,31 @@
 //--------------------------------------
 
 .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
-    .popup .popup-content {
-        .fieldset .actions-toolbar {
-            .secondary {
-                display: inline-block;
-                float: none;
-            }
-            .action.cancel {
-                margin-top: @actions-toolbar-actions-links-secondary__margin-top;
+    .popup-content {
+        .fieldset {
+            .actions-toolbar {
+                .secondary {
+                    display: inline-block;
+                    float: none;
+                }
+                .action {
+                    &.cancel {
+                        margin-top: @actions-toolbar-actions-links-secondary__margin-top;
+                    }
+                }
             }
         }
     }
 }
+
+//
+//    Desktop
+//--------------------------------------
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
+    .ui-dialog {
+        &.popup {
+            width: 420px;
+        }
+    }
+}
diff --git a/app/etc/di.xml b/app/etc/di.xml
index 6b6b81fa43b0a42a4e9942a99ee43f1581bb252f..6ae1eaa1529f5d0f392f41de92ef6248fa7d94f0 100755
--- a/app/etc/di.xml
+++ b/app/etc/di.xml
@@ -117,13 +117,11 @@
     <preference for="Magento\Framework\Url\ScopeResolverInterface" type="Magento\Framework\Url\ScopeResolver" />
     <preference for="Magento\Framework\Url\SecurityInfoInterface" type="Magento\Framework\Url\SecurityInfo\Proxy" />
     <preference for="Magento\Framework\Css\PreProcessor\AdapterInterface" type="Magento\Framework\Css\PreProcessor\Adapter\Oyejorge" />
-    <preference for="Magento\Framework\LocaleInterface" type="Magento\Framework\Locale" />
     <preference for="Magento\Framework\Locale\CurrencyInterface" type="Magento\Framework\Locale\Currency" />
     <preference for="Magento\Framework\CurrencyInterface" type="Magento\Framework\Currency" />
     <preference for="Magento\Framework\Locale\FormatInterface" type="Magento\Framework\Locale\Format" />
     <preference for="Magento\Framework\Locale\ResolverInterface" type="Magento\Framework\Locale\Resolver" />
     <preference for="Magento\Framework\Stdlib\DateTime\TimezoneInterface" type="Magento\Framework\Stdlib\DateTime\Timezone" />
-    <preference for="Magento\Framework\Stdlib\DateTime\DateInterface" type="Magento\Framework\Stdlib\DateTime\Date" />
     <preference for="Magento\Framework\Less\PreProcessor\ErrorHandlerInterface" type="Magento\Framework\Less\PreProcessor\ErrorHandler" />
     <preference for="Magento\Framework\Module\ResourceInterface" type="Magento\Framework\Module\Resource" />
     <preference for="Magento\Framework\Pricing\Amount\AmountInterface" type="Magento\Framework\Pricing\Amount\Base" />
diff --git a/app/etc/vendor_path.php b/app/etc/vendor_path.php
index bd9482bb36ae0879f2f38c9747b28b05f99413e0..b6af03ef32fa48938f0a80ce7194f177a56e1177 100755
--- a/app/etc/vendor_path.php
+++ b/app/etc/vendor_path.php
@@ -1,10 +1,5 @@
 <?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
 /**
  * Path to Composer vendor directory
  */
-return 'vendor';
+return './vendor';
diff --git a/composer.json b/composer.json
index 63dfea4e8a11e5131bea81fbaede3614dc76e5a3..e29f9de8be6ff85c6eeebf84e5da449dedeba559 100644
--- a/composer.json
+++ b/composer.json
@@ -32,7 +32,8 @@
         "magento/zendframework1": "1.12.10",
         "composer/composer": "1.0.0-alpha8",
         "monolog/monolog": "1.11.0",
-        "tubalmartin/cssmin": "2.4.8-p4"
+        "tubalmartin/cssmin": "2.4.8-p4",
+        "magento/magento-composer-installer": "*"
     },
     "require-dev": {
         "phpunit/phpunit": "4.1.0",
@@ -49,6 +50,7 @@
         "ext-hash": "*",
         "ext-curl": "*",
         "ext-iconv": "*",
+        "ext-intl": "*",
         "sjparkinson/static-review": "~4.1",
         "fabpot/php-cs-fixer": "~1.2",
         "lusitanian/oauth": "~0.3"
@@ -193,7 +195,8 @@
     },
     "autoload": {
         "psr-4": {
-            "Magento\\Framework\\": "lib/internal/Magento/Framework/"
+            "Magento\\Framework\\": "lib/internal/Magento/Framework/",
+            "Magento\\Setup\\": "setup/src/Magento/Setup/"
         }
     },
     "autoload-dev": {
@@ -203,8 +206,7 @@
             "Magento\\Tools\\Sanity\\": "dev/build/publication/sanity/Magento/Tools/Sanity/",
             "Magento\\TestFramework\\Inspection\\": "dev/tests/static/framework/Magento/TestFramework/Inspection/",
             "Magento\\TestFramework\\Utility\\": "dev/tests/static/framework/Magento/TestFramework/Utility/",
-            "Magento\\ToolkitFramework\\": "dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/",
-            "Magento\\Setup\\": "setup/src/Magento/Setup/"
+            "Magento\\ToolkitFramework\\": "dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/"
         }
     }
 }
diff --git a/composer.lock b/composer.lock
index 362b040032b7710e088c70c4a881a668f7442d21..5337e32b2c094312a9be6fb56bafbc7632a931d5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "07ed79cc8ac7d4c2c61e13cf87cbab40",
+    "hash": "933a1cf749db0c7e6d16e357c12cdaa8",
     "packages": [
         {
             "name": "composer/composer",
@@ -131,6 +131,82 @@
             ],
             "time": "2012-01-03 00:33:17"
         },
+        {
+            "name": "magento/magento-composer-installer",
+            "version": "0.1.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/magento/magento-composer-installer.git",
+                "reference": "7f03451f71e55d52c2bb07325d56a4e6df322f30"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/magento/magento-composer-installer/zipball/7f03451f71e55d52c2bb07325d56a4e6df322f30",
+                "reference": "7f03451f71e55d52c2bb07325d56a4e6df322f30",
+                "shasum": ""
+            },
+            "require": {
+                "composer-plugin-api": "1.0.0"
+            },
+            "require-dev": {
+                "composer/composer": "*@dev",
+                "firegento/phpcs": "dev-patch-1",
+                "mikey179/vfsstream": "*",
+                "phpunit/phpunit": "*",
+                "phpunit/phpunit-mock-objects": "dev-master",
+                "squizlabs/php_codesniffer": "1.4.7",
+                "symfony/process": "*"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "composer-command-registry": [
+                    "MagentoHackathon\\Composer\\Magento\\Command\\DeployCommand"
+                ],
+                "class": "MagentoHackathon\\Composer\\Magento\\Plugin"
+            },
+            "autoload": {
+                "psr-0": {
+                    "MagentoHackathon\\Composer\\Magento": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "OSL-3.0"
+            ],
+            "authors": [
+                {
+                    "name": "Vinai Kopp",
+                    "email": "vinai@netzarbeiter.com"
+                },
+                {
+                    "name": "Daniel Fahlke aka Flyingmana",
+                    "email": "flyingmana@googlemail.com"
+                },
+                {
+                    "name": "Jörg Weller",
+                    "email": "weller@flagbit.de"
+                },
+                {
+                    "name": "Karl Spies",
+                    "email": "karl.spies@gmx.net"
+                },
+                {
+                    "name": "Tobias Vogt",
+                    "email": "tobi@webguys.de"
+                },
+                {
+                    "name": "David Fuhr",
+                    "email": "fuhr@flagbit.de"
+                }
+            ],
+            "description": "Composer installer for Magento modules",
+            "homepage": "https://github.com/magento/magento-composer-installer",
+            "keywords": [
+                "composer-installer",
+                "magento"
+            ],
+            "time": "2015-03-05 21:40:30"
+        },
         {
             "name": "magento/zendframework1",
             "version": "1.12.10",
@@ -3264,6 +3340,7 @@
         "phpmd/phpmd": 0
     },
     "prefer-stable": false,
+    "prefer-lowest": false,
     "platform": {
         "php": "~5.5.0|~5.6.0"
     },
@@ -3277,6 +3354,7 @@
         "ext-mcrypt": "*",
         "ext-hash": "*",
         "ext-curl": "*",
-        "ext-iconv": "*"
+        "ext-iconv": "*",
+        "ext-intl": "*"
     }
 }
diff --git a/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/Webapi/Curl.php b/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/Webapi/Curl.php
index 388f1e37f0a7c874441aaebaf03fe78694734c26..bd1c8cce41667792e0296390e1a19aa96edb8534 100644
--- a/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/Webapi/Curl.php
+++ b/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/Webapi/Curl.php
@@ -22,7 +22,7 @@ class Curl extends Adapter\Rest\CurlClient
      */
     public function constructResourceUrl($resourcePath)
     {
-        return rtrim(TESTS_BASE_URL, '/') . ltrim($resourcePath, '/');
+        return rtrim(TESTS_BASE_URL, '/') . '/' . ltrim($resourcePath, '/');
     }
 
     /**
diff --git a/dev/tests/functional/credentials.xml.dist b/dev/tests/functional/credentials.xml.dist
index 1cf5152577e622b57382398145b6f0297474eccf..6c23762bae421481ed4608fd8381846539a82e8e 100644
--- a/dev/tests/functional/credentials.xml.dist
+++ b/dev/tests/functional/credentials.xml.dist
@@ -24,4 +24,18 @@
 
     <field path="section/carriers_usps_userid/value" value="" />
     <field path="section/carriers_usps_password/value" value="" />
+
+    <field path="section/payment_authorizenet_login/value" value="" />
+    <field path="section/payment_authorizenet_trans_key/value" value="" />
+
+    <field path="section/payment_paypal_group_all_in_one_wpp_usuk_wpp_required_settings_wpp_and_express_checkout_business_account/value" value="" />
+    <field path="section/payment_paypal_group_all_in_one_wpp_usuk_wpp_required_settings_wpp_and_express_checkout_api_username/value" value="" />
+    <field path="section/payment_paypal_group_all_in_one_wpp_usuk_wpp_required_settings_wpp_and_express_checkout_api_password/value" value="" />
+    <field path="section/payment_paypal_group_all_in_one_wpp_usuk_wpp_required_settings_wpp_and_express_checkout_api_signature/value" value="" />
+
+    <field path="section/payment_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_required_paypal_payflow_api_settings_business_account/value" value="" />
+    <field path="section/payment_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_required_paypal_payflow_api_settings_partner/value" value="" />
+    <field path="section/payment_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_required_paypal_payflow_api_settings_user/value" value="" />
+    <field path="section/payment_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_required_paypal_payflow_api_settings_pwd/value" value="" />
+    <field path="section/payment_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_required_paypal_payflow_api_settings_vendor/value" value="" />
 </replace>
diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php
index ee459e0ef5db890fa20c42666685e69d18a727ad..5d3f79b515b8d7c140a7221c49b7977cbafeef82 100644
--- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php
+++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php
@@ -54,7 +54,7 @@ class LiselectstoreElement extends SimpleElement
      *
      * @var string
      */
-    protected $toggleSelector = '.toggle';
+    protected $toggleSelector = '.admin__action-dropdown[data-toggle="dropdown"]';
 
     /**
      * Select value in liselect dropdown
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php
index 54f750ceeec48e8fd45c0ae8682793d0e9d8ad6e..735b24eed10dde13fb1f69e750751b562d87b1fe 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php
@@ -21,7 +21,7 @@ class Login extends Form
      *
      * @var string
      */
-    protected $submit = '[type=submit]';
+    protected $submit = '.action-login';
 
     /**
      * Submit login form
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php
index 94b36cc6a95ea6c8e46707c102c7fa3ac70aa0d5..6685ac3f6f7877ecd19204061077d4ce1e2ce2c3 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php
@@ -34,7 +34,7 @@ class Header extends Block
      *
      * @var string
      */
-    protected $searchSelector = '.search-global.miniform';
+    protected $searchSelector = '.search-global';
 
     /**
      * Log out Admin User.
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml
index 4060273331ae09c50326eeca40f198ffe682218f..77f4285338fc45ff1aebb9247c3156e9523b2688 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml
@@ -8,9 +8,9 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="Dashboard" area="Adminhtml" mca="admin/dashboard" module="Magento_Backend">
     <block name="adminPanelHeader" class="Magento\Backend\Test\Block\Page\Header" locator=".page-header" strategy="css selector"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="mainBlock" class="Magento\Backend\Test\Block\Page\Main" locator=".dashboard-main" strategy="css selector"/>
-    <block name="menuBlock" class="Magento\Backend\Test\Block\Menu" locator=".navigation" strategy="css selector"/>
+    <block name="menuBlock" class="Magento\Backend\Test\Block\Menu" locator=".admin__menu" strategy="css selector"/>
     <block name="storeStatsBlock" class="Magento\Backend\Test\Block\Dashboard\StoreStats" locator=".dashboard-store-stats" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search/Grid.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search/Grid.php
index bc331c5f2c4f5d83f361e62bbebac39ba33badc0..656b06c5868044578492bfb19b951ffe11c98c9a 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search/Grid.php
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option/Search/Grid.php
@@ -19,7 +19,7 @@ class Grid extends GridInterface
      *
      * @var string
      */
-    protected $addProducts = 'button.add';
+    protected $addProducts = 'button.action-add';
 
     /**
      * An element locator which allows to select entities in grid
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php
index b93210777488ca3e8c253f09b22ffe3f2e9d5059..2f83b7238583579ee767c4a4fb2f4ab0c1a93076 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php
@@ -38,7 +38,7 @@ class AttributeForm extends FormTabs
      *
      * @var string
      */
-    protected $pageTitle = '.page-title .title';
+    protected $pageTitle = '.page-title';
 
     /**
      * Get data of the tabs.
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php
index e10890ff2cb788ab00777fdd71c35932c6c7b792..d2eae40e95ed2c69abbb54c85e568df34fd682c3 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php
@@ -30,7 +30,7 @@ class Configure extends AbstractConfigureBlock
      *
      * @var string
      */
-    protected $okButton = '.ui-dialog-buttonset button:nth-of-type(2)';
+    protected $okButton = '.ui-button.action-primary';
 
     /**
      * Backend abstract block
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/ProductDetails/NewCategoryIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/ProductDetails/NewCategoryIds.php
index e922260c4c9b43664a3e745836d77b74d46be360..21ab6bf91c168c6470600e060b5e98108b5e2319 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/ProductDetails/NewCategoryIds.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/ProductDetails/NewCategoryIds.php
@@ -40,7 +40,7 @@ class NewCategoryIds extends Form
      *
      * @var string
      */
-    protected $createCategoryButton = '.action-create';
+    protected $createCategoryButton = '[data-action="save"]';
 
     /**
      * Add new category to product.
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
index 9cf82bb82d2ebf775103d175196463c814d59ddf..4a55128100962e9f84fab2be865d4439cf1678e5 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
@@ -22,7 +22,7 @@ class ListProduct extends Block
      *
      * @var string
      */
-    protected $productItem = './/*[contains(@class,"product-item-link") and @title="%s"]/ancestor::li';
+    protected $productItem = './/*[contains(@class,"product-item-link") and .//*[text()="%s"]]/ancestor::li';
 
     /**
      * This member holds the class name of the regular price block.
@@ -43,14 +43,14 @@ class ListProduct extends Block
      *
      * @var string
      */
-    protected $productDetailsSelector = '//*[contains(@class, "product details") and .//*[@title="%s"]]';
+    protected $productDetailsSelector = '//*[contains(@class, "product details") and .//*[text()="%s"]]';
 
     /**
      * Product name.
      *
      * @var string
      */
-    protected $productTitle = '.product.name [title="%s"]';
+    protected $productTitle = './/*[@class="product name product-item-name"]/a[text()="%s"]';
 
     /**
      * Click for Price link on category page.
@@ -173,7 +173,7 @@ class ListProduct extends Block
      */
     protected function getProductNameElement($productName)
     {
-        return $this->_rootElement->find(sprintf($this->productTitle, $productName));
+        return $this->_rootElement->find(sprintf($this->productTitle, $productName), Locator::SELECTOR_XPATH);
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
index 52d04a0e4e82a7417462061c32c4793d58e146d8..1457976a9fbdd76142de494fe6473dc0102cedec 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
@@ -66,7 +66,7 @@ class Price extends Block
      *
      * @var string
      */
-    protected $closeMap = '//main[@class="page-main"]//div[@class="ui-dialog-buttonset"]//button';
+    protected $closeMap = '..//div[@class="ui-dialog-buttonset"]//button';
 
     /**
      * This method returns the price represented by the block
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
index d57ddfb967f633761835e8e21efa23bec974787c..04486482d3b1262c46bc8172967f1b9c1f92a134 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
@@ -61,7 +61,7 @@ class View extends AbstractConfigureBlock
      *
      * @var string
      */
-    protected $productName = '.page-title.product h1.title .base';
+    protected $productName = '.page-title-wrapper.product h1.page-title .base';
 
     /**
      * Product sku element.
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
index 5acf5b0825f0295fc2b72f36b6de8092af0bc073..4639598b1adfe1f7c499195711f46f401a3dc43d 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
@@ -12,7 +12,7 @@
     <block name="layeredNavigationBlock" class="Magento\LayeredNavigation\Test\Block\Navigation" locator=".block.filter" strategy="css selector"/>
     <block name="topToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\TopToolbar" locator=".//*[contains(@class,'toolbar-products')][1]" strategy="xpath"/>
     <block name="bottomToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\BottomToolbar" locator=".//*[contains(@class,'toolbar-products')][2]" strategy="xpath"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title h1.title .base" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper h1.page-title .base" strategy="css selector"/>
     <block name="viewBlock" class="Magento\Catalog\Test\Block\Category\View" locator="#maincontent" strategy="css selector"/>
     <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".widget" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
index e0db400ce3ac9c4c644a0e43e8feb36635101674..502265c5c7a3798f260836965806331a6761c889 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
@@ -19,7 +19,7 @@
     <block name="reviewSummary" class="Magento\Review\Test\Block\Product\View\Summary" locator=".product-reviews-summary" strategy="css selector"/>
     <block name="customerReviewBlock" class="Magento\Review\Test\Block\Product\View" locator="#customer-reviews" strategy="css selector"/>
     <block name="reviewFormBlock" class="Magento\Review\Test\Block\Form" locator="#review-form" strategy="css selector"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title h1.title .base" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper h1.page-title .base" strategy="css selector"/>
     <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".column.main .widget" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Methods.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Methods.php
index 7ce79345368e4c9fe3bc1d868c039b438ffd989e..7cdc31001f7b279543e6cdcc6dc54a2acda20d37 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Methods.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Methods.php
@@ -7,6 +7,7 @@
 namespace Magento\Checkout\Test\Block\Onepage\Payment;
 
 use Magento\Mtf\Block\Form;
+use Magento\Payment\Test\Fixture\CreditCard;
 
 /**
  * Class Methods
@@ -61,10 +62,11 @@ class Methods extends Form
      * Select payment method
      *
      * @param array $payment
+     * @param CreditCard|null $creditCard
      * @throws \Exception
      * @return void
      */
-    public function selectPaymentMethod(array $payment)
+    public function selectPaymentMethod(array $payment, CreditCard $creditCard = null)
     {
         $paymentSelector = $this->_rootElement->find(sprintf($this->paymentMethodInput, $payment['method']));
         if ($paymentSelector->isVisible()) {
@@ -79,14 +81,13 @@ class Methods extends Form
         if ($payment['method'] == "purchaseorder") {
             $this->_rootElement->find($this->purchaseOrderNumber)->setValue($payment['po_number']);
         }
-        if (isset($payment['dataConfig']['payment_form_class'])) {
-            $paymentFormClass = $payment['dataConfig']['payment_form_class'];
+        if ($creditCard !== null) {
             /** @var \Magento\Payment\Test\Block\Form\Cc $formBlock */
             $formBlock = $this->blockFactory->create(
-                $paymentFormClass,
+                '\\Magento\\Payment\\Test\\Block\\Form\\Cc',
                 ['element' => $this->_rootElement->find('#payment_form_' . $payment['method'])]
             );
-            $formBlock->fill($payment['credit_card']);
+            $formBlock->fill($creditCard);
         }
     }
 
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php
index f5ed8edc86072e82fbb3f3cf68de64c894e959a4..9813b554032d126da7ec78f111d92c6c6fca7918 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php
@@ -75,27 +75,27 @@ class EstimateShippingAndTaxStep implements TestStepInterface
      * @param CheckoutCart $checkoutCart
      * @param Address $address
      * @param AssertEstimateShippingAndTax $assertEstimateShippingAndTax
-     * @param Cart $cart
      * @param FixtureFactory $fixtureFactory
-     * @param array $shipping
      * @param array $products
+     * @param array $shipping
+     * @param Cart|null $cart
      */
     public function __construct(
         CheckoutCart $checkoutCart,
         Address $address,
         AssertEstimateShippingAndTax $assertEstimateShippingAndTax,
-        Cart $cart,
         FixtureFactory $fixtureFactory,
-        array $shipping,
-        array $products
+        array $products,
+        array $shipping = [],
+        Cart $cart = null
     ) {
         $this->checkoutCart = $checkoutCart;
         $this->address = $address;
         $this->assertEstimateShippingAndTax = $assertEstimateShippingAndTax;
-        $this->cart = $cart;
         $this->fixtureFactory = $fixtureFactory;
-        $this->shipping = $shipping;
         $this->products = $products;
+        $this->shipping = $shipping;
+        $this->cart = $cart;
     }
 
     /**
@@ -106,16 +106,16 @@ class EstimateShippingAndTaxStep implements TestStepInterface
     public function run()
     {
         $this->checkoutCart->open();
-        $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($this->address);
-        if ($this->shipping['shipping_service'] !== '-') {
-            $this->checkoutCart->getShippingBlock()->selectShippingMethod($this->shipping);
-        }
         /** @var \Magento\Checkout\Test\Fixture\Cart $cart */
-        if (!empty($this->cart->hasData())) {
+        if ($this->cart !== null) {
             $cart = $this->fixtureFactory->createByCode(
                 'cart',
                 ['data' => array_merge($this->cart->getData(), ['items' => ['products' => $this->products]])]
             );
+            $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($this->address);
+            if (!empty($this->shipping)) {
+                $this->checkoutCart->getShippingBlock()->selectShippingMethod($this->shipping);
+            }
             $this->assertEstimateShippingAndTax->processAssert($this->checkoutCart, $cart);
         }
     }
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php
index df510f1e2e80cee8c1e4efd7f77f42089fc1486c..04580bf1037d0c8a7d8b9c8a1f50499aa494a819 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php
@@ -34,7 +34,7 @@ class FillShippingMethodStep implements TestStepInterface
      * @param CheckoutOnepage $checkoutOnepage
      * @param array $shipping
      */
-    public function __construct(CheckoutOnepage $checkoutOnepage, array $shipping)
+    public function __construct(CheckoutOnepage $checkoutOnepage, array $shipping = [])
     {
         $this->checkoutOnepage = $checkoutOnepage;
         $this->shipping = $shipping;
@@ -47,7 +47,7 @@ class FillShippingMethodStep implements TestStepInterface
      */
     public function run()
     {
-        if ($this->shipping['shipping_service'] !== '-') {
+        if (!empty($this->shipping)) {
             $this->checkoutOnepage->getShippingMethodBlock()->selectShippingMethod($this->shipping);
             $this->checkoutOnepage->getShippingMethodBlock()->clickContinue();
         }
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php
index f17bc063c16bf56c06b74c663f7620888b6720f1..3a65736abdbdc51de26c1aadd85576290397db52 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php
@@ -8,6 +8,7 @@ namespace Magento\Checkout\Test\TestStep;
 
 use Magento\Checkout\Test\Page\CheckoutOnepage;
 use Magento\Mtf\TestStep\TestStepInterface;
+use Magento\Payment\Test\Fixture\CreditCard;
 
 /**
  * Class SelectPaymentMethodStep
@@ -29,15 +30,27 @@ class SelectPaymentMethodStep implements TestStepInterface
      */
     protected $payment;
 
+    /**
+     * Credit card information
+     *
+     * @var string
+     */
+    protected $creditCard;
+
     /**
      * @constructor
      * @param CheckoutOnepage $checkoutOnepage
      * @param array $payment
+     * @param CreditCard|null $creditCard
      */
-    public function __construct(CheckoutOnepage $checkoutOnepage, array $payment)
-    {
+    public function __construct(
+        CheckoutOnepage $checkoutOnepage,
+        array $payment,
+        CreditCard $creditCard = null
+    ) {
         $this->checkoutOnepage = $checkoutOnepage;
         $this->payment = $payment;
+        $this->creditCard = $creditCard;
     }
 
     /**
@@ -48,7 +61,7 @@ class SelectPaymentMethodStep implements TestStepInterface
     public function run()
     {
         if ($this->payment['method'] !== 'free') {
-            $this->checkoutOnepage->getPaymentMethodsBlock()->selectPaymentMethod($this->payment);
+            $this->checkoutOnepage->getPaymentMethodsBlock()->selectPaymentMethod($this->payment, $this->creditCard);
         }
         $this->checkoutOnepage->getPaymentMethodsBlock()->clickContinue();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
index cd33ec8255c05903ea68fe2f1e96c75cac14442c..fb527bf92455a5161ab0cb66ec23c15271a140f2 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
@@ -6,18 +6,18 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd">
-  <scenario name="OnePageCheckoutTest" firstStep="setupConfiguration">
-    <step name="setupConfiguration" module="Magento_Core" next="createProducts"/>
-    <step name="createProducts" module="Magento_Catalog" next="createTaxRule"/>
-    <step name="createTaxRule" module="Magento_Tax" next="addProductsToTheCart"/>
-    <step name="addProductsToTheCart" module="Magento_Checkout" next="estimateShippingAndTax"/>
-    <step name="estimateShippingAndTax" module="Magento_Checkout" next="proceedToCheckout"/>
-    <step name="proceedToCheckout" module="Magento_Checkout" next="selectCheckoutMethod"/>
-    <step name="createCustomer" module="Magento_Customer" next="selectCheckoutMethod"/>
-    <step name="selectCheckoutMethod" module="Magento_Checkout" next="fillBillingInformation"/>
-    <step name="fillBillingInformation" module="Magento_Checkout" next="fillShippingMethod"/>
-    <step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod"/>
-    <step name="selectPaymentMethod" module="Magento_Checkout" next="placeOrder"/>
-    <step name="placeOrder" module="Magento_Checkout"/>
-  </scenario>
+    <scenario name="OnePageCheckoutTest" firstStep="setupConfiguration">
+        <step name="setupConfiguration" module="Magento_Core" next="createProducts"/>
+        <step name="createProducts" module="Magento_Catalog" next="createTaxRule"/>
+        <step name="createTaxRule" module="Magento_Tax" next="addProductsToTheCart"/>
+        <step name="addProductsToTheCart" module="Magento_Checkout" next="estimateShippingAndTax"/>
+        <step name="estimateShippingAndTax" module="Magento_Checkout" next="proceedToCheckout"/>
+        <step name="proceedToCheckout" module="Magento_Checkout" next="createCustomer"/>
+        <step name="createCustomer" module="Magento_Customer" next="selectCheckoutMethod"/>
+        <step name="selectCheckoutMethod" module="Magento_Checkout" next="fillBillingInformation"/>
+        <step name="fillBillingInformation" module="Magento_Checkout" next="fillShippingMethod"/>
+        <step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod"/>
+        <step name="selectPaymentMethod" module="Magento_Checkout" next="placeOrder"/>
+        <step name="placeOrder" module="Magento_Checkout"/>
+    </scenario>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
index 63cacfea8b6a536897eeec44022e5904c535efeb..7589ec398662e55982db8ce5be48bcccf0bf4d00 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
@@ -26,7 +26,7 @@ class Page extends Block
      *
      * @var string
      */
-    protected $cmsPageTitle = ".page-title";
+    protected $cmsPageTitle = ".page-title-wrapper";
 
     /**
      * Cms page text locator.
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml
index 08f8c4802f3d2384486b6db51a6cbe739a3a518e..661f784c0a33d2d427b3d1760a0752b9cc8be624 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml
@@ -9,7 +9,7 @@
   <page name="CmsIndex" mca="cms/index/index" module="Magento_Cms">
     <block name="searchBlock" class="Magento\Catalog\Test\Block\Search" locator="#search_mini_form" strategy="css selector"/>
     <block name="topmenu" class="Magento\Theme\Test\Block\Html\Topmenu" locator="[role='navigation']" strategy="css selector"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="footerBlock" class="Magento\Theme\Test\Block\Html\Footer" locator="footer.page-footer" strategy="css selector"/>
     <block name="linksBlock" class="Magento\Theme\Test\Block\Links" locator=".header .links" strategy="css selector"/>
     <block name="storeSwitcherBlock" class="Magento\Store\Test\Block\Switcher" locator="[data-ui-id='language-switcher']" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php b/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php
index 74ddaf0431e629551a7772de35b2127f741d1aed..25be5b6e1ff02b819dc98d9fa7cc7467ce135eae 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php
@@ -20,7 +20,7 @@ use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator;
 class Curl extends AbstractCurl implements ConfigDataInterface
 {
     /**
-     * Mapping values for data
+     * Mapping values for data.
      *
      * @var array
      */
@@ -33,7 +33,7 @@ class Curl extends AbstractCurl implements ConfigDataInterface
     ];
 
     /**
-     * Post request for setting configuration
+     * Post request for setting configuration.
      *
      * @param FixtureInterface|null $fixture [optional]
      * @return void
@@ -47,29 +47,60 @@ class Curl extends AbstractCurl implements ConfigDataInterface
     }
 
     /**
-     * Prepare POST data for setting configuration
+     * Prepare POST data for setting configuration.
      *
      * @param FixtureInterface $fixture
      * @return array
      */
     protected function prepareData(FixtureInterface $fixture)
     {
+        $configPath = [];
         $result = [];
         $fields = $fixture->getData();
         if (isset($fields['section'])) {
             foreach ($fields['section'] as $itemSection) {
-                list($scope, $group, $field) = explode('/', $itemSection['path']);
-                $value = isset($this->mappingData[$field])
-                    ? $this->mappingData[$field][$itemSection['value']]
-                    : $itemSection['value'];
-                $result[$scope]['groups'][$group]['fields'][$field]['value'] = $value;
+                parse_str($this->prepareConfigPath($itemSection), $configPath);
+                $result = array_merge_recursive($result, $configPath);
             }
         }
         return $result;
     }
 
     /**
-     * Apply config settings via curl
+     * Prepare config path.
+     *
+     * From payment/cashondelivery/active to ['payment']['groups']['cashondelivery']['fields']['active']
+     *
+     * @param array $input
+     * @return string
+     */
+    protected function prepareConfigPath(array $input)
+    {
+        $resultArray = '';
+        $path = explode('/', $input['path']);
+        foreach ($path as $position => $subPath) {
+            if ($position === 0) {
+                $resultArray.= $subPath;
+                continue;
+            } elseif ($position === (count($path) - 1)) {
+                $resultArray.= '[fields]';
+            } else {
+                $resultArray.= '[groups]';
+            }
+            $resultArray.= '[' . $subPath .']';
+        }
+        $resultArray.= '[value]';
+        if (is_array($input['value'])) {
+            $resultArray.= '[' . key($input['value']) . ']';
+            $resultArray.= '=' . current($input['value']);
+        } else {
+            $resultArray.= '=' . $input['value'];
+        }
+        return $resultArray;
+    }
+
+    /**
+     * Apply config settings via curl.
      *
      * @param array $data
      * @param string $section
@@ -90,7 +121,7 @@ class Curl extends AbstractCurl implements ConfigDataInterface
     }
 
     /**
-     * Retrieve URL for request
+     * Retrieve URL for request.
      *
      * @param string $section
      * @return string
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php
index 3a0406ba9344ecb1ce22293f092acdb7e00eb507..a0e2f3f5e30edd5f038e8be1580e4735e1601bc0 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php
@@ -28,37 +28,21 @@ class CustomerForm extends FormTabs
      *
      * @var string
      */
-    protected $activeFormTab = '.entry-edit.form-inline [data-bind="visible: active"]:not([style="display: none;"])';
+    protected $activeFormTab = '#container [data-bind="visible: active"]:not([style="display: none;"])';
 
     /**
      * Field wrapper with label on form.
      *
      * @var string
      */
-    protected $fieldLabel = './/*[contains(@class, "form__field")]/*[contains(@class,"label")]';
-
-    /**
-     * Field wrapper with absent label on form.
-     *
-     * @var string
-     */
-    protected $fieldLabelAbsent = './/*[contains(@class, "form__field") and not(./*[contains(@class,"label")]/*)]';
+    protected $fieldLabel = './/*[contains(@class, "admin__field")]/*[contains(@class,"label")]';
 
     /**
      * Field wrapper with control block on form.
      *
      * @var string
      */
-    protected $fieldWrapperControl = './/*[contains(@class, "form__field")]/*[contains(@class,"control")]';
-
-    // @codingStandardsIgnoreStart
-    /**
-     * Field wrapper with absent control block on form.
-     *
-     * @var string
-     */
-    protected $fieldWrapperControlAbsent = './/*[contains(@class, "form__field") and not(./input or ./*[contains(@class,"control")]/*)]';
-    // @codingStandardsIgnoreEnd
+    protected $fieldWrapperControl = './/*[contains(@class, "admin__field")]/*[contains(@class,"control")]';
 
     /**
      * Fill Customer forms on tabs by customer, addresses data.
@@ -150,11 +134,7 @@ class CustomerForm extends FormTabs
     {
         /* Wait for field label is visible in the form */
         $this->waitForElementVisible($this->fieldLabel, Locator::SELECTOR_XPATH);
-        /* Wait for render all field's labels(assert that absent field without label) in the form */
-        $this->waitForElementNotVisible($this->fieldLabelAbsent, Locator::SELECTOR_XPATH);
         /* Wait for field's control block is visible in the form */
         $this->waitForElementVisible($this->fieldWrapperControl, Locator::SELECTOR_XPATH);
-        /* Wait for render all field's control blocks(assert that absent field without control block) in the form */
-        $this->waitForElementNotVisible($this->fieldWrapperControlAbsent, Locator::SELECTOR_XPATH);
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
index fc3502719ced76f5aa91adf589cc5210574b4210..749128e6d16fbf3636a6acd25207f6d434bd1349 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit" module="Magento_Customer">
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title .title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper .page-title" strategy="css selector"/>
     <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Customer\Test\Block\Adminhtml\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
index 9033239bc232a8479e8aba33f78fbcba627104ed..9dc6c4dfd8882ecc94ca625f8d16f3a57eab5882 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
@@ -9,7 +9,7 @@
   <page name="CustomerAccountIndex" mca="customer/account/index" module="Magento_Customer">
     <block name="messages" class="Magento\Core\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
     <block name="dashboardAddress" class="Magento\Customer\Test\Block\Account\Dashboard\Address" locator=".block-dashboard-addresses" strategy="css selector"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="accountMenuBlock" class="Magento\Customer\Test\Block\Account\Links" locator=".nav.items" strategy="css selector"/>
     <block name="infoBlock" class="Magento\Customer\Test\Block\Account\Dashboard\Info" locator=".column.main" strategy="css selector"/>
     <block name="compareProductsBlock" class="Magento\Catalog\Test\Block\Product\Compare\Sidebar" locator=".block-compare" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php
index f40ea0ad580ae254ceebc9423bddbaefe1c593a9..55b341dc6d3b72224065b2c9b41e3bc05264834a 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php
@@ -19,7 +19,7 @@ class Grid extends GridInterface
      *
      * @var string
      */
-    protected $addProducts = 'button.add';
+    protected $addProducts = 'button.action-add';
 
     /**
      * Filters array mapping
diff --git a/dev/tests/functional/tests/app/Magento/Install/Test/Constraint/AssertSuccessfulReadinessCheck.php b/dev/tests/functional/tests/app/Magento/Install/Test/Constraint/AssertSuccessfulReadinessCheck.php
index a19b294970f38555a3c5d82bd6f4ba869b60ed1d..966ec84c1741151e082c5bf3bba260a13356c17d 100644
--- a/dev/tests/functional/tests/app/Magento/Install/Test/Constraint/AssertSuccessfulReadinessCheck.php
+++ b/dev/tests/functional/tests/app/Magento/Install/Test/Constraint/AssertSuccessfulReadinessCheck.php
@@ -22,12 +22,12 @@ class AssertSuccessfulReadinessCheck extends AbstractConstraint
     /**
      * PHP extensions message.
      */
-    const PHP_EXTENSIONS_MESSAGE = 'You meet 9 out of 9 PHP extensions requirements.';
+    const PHP_EXTENSIONS_REGEXP = '/You meet (\d+) out of \1 PHP extensions requirements\./';
 
     /**
      * File permission message.
      */
-    const FILE_PERMISSION_MESSAGE = 'You meet 4 out of 4 writable file permission requirements.';
+    const FILE_PERMISSION_REGEXP = '/You meet (\d+) out of \1 writable file permission requirements\./';
 
     /**
      * Assert that PHP Version, PHP Extensions and File Permission are ok.
@@ -42,13 +42,13 @@ class AssertSuccessfulReadinessCheck extends AbstractConstraint
             $installPage->getReadinessBlock()->getPhpVersionCheck(),
             'PHP version is incorrect.'
         );
-        \PHPUnit_Framework_Assert::assertContains(
-            self::PHP_EXTENSIONS_MESSAGE,
+        \PHPUnit_Framework_Assert::assertRegExp(
+            self::PHP_EXTENSIONS_REGEXP,
             $installPage->getReadinessBlock()->getPhpExtensionsCheck(),
             'PHP extensions missed.'
         );
-        \PHPUnit_Framework_Assert::assertContains(
-            self::FILE_PERMISSION_MESSAGE,
+        \PHPUnit_Framework_Assert::assertRegExp(
+            self::FILE_PERMISSION_REGEXP,
             $installPage->getReadinessBlock()->getFilePermissionCheck(),
             'File permissions does not meet requirements.'
         );
diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml
index 1d15c7fc371be8478588de771f17bdf185aceda5..aa8346258cd9ce585d840fc2aecfcebc584bc40e 100644
--- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml
+++ b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
     <page name="MultishippingCheckoutSuccess" mca="multishipping/checkout/success" module="Magento_Multishipping">
         <block name="successBlock" class="Magento\Multishipping\Test\Block\Checkout\Success" locator=".multicheckout.success" strategy="css selector"/>
-        <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".title" strategy="css selector"/>
+        <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
     </page>
 </config>
\ No newline at end of file
diff --git a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
index a71f82990606e165f42b0396792364b71d09dcf6..0e2819446d17c536bc36b2f20dc6444b5f102429 100644
--- a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
@@ -18,7 +18,9 @@
         <dataset name="cashondelivery_specificcountry_gb">
             <field path="payment/cashondelivery/active" scope="payment" scope_id="1" label="Yes" xsi:type="string">1</field>
             <field path="payment/cashondelivery/allowspecific" scope="payment" scope_id="1" label="Specific Countries" xsi:type="string">1</field>
-            <field path="payment/cashondelivery/specificcountry/active" scope="payment" scope_id="1" label="United Kingdom" xsi:type="string">GB</field>
+            <field path="payment/cashondelivery/specificcountry" scope="payment" scope_id="1" xsi:type="array">
+                <item label="United Kingdom" xsi:type="string">GB</item>
+            </field>
         </dataset>
 
         <dataset name="cashondelivery_specificcountry_gb_rollback">
@@ -37,7 +39,9 @@
         <dataset name="checkmo_specificcountry_gb">
             <field path="payment/checkmo/active" scope="payment" scope_id="1" label="Yes" xsi:type="string">1</field>
             <field path="payment/checkmo/allowspecific" scope="payment" scope_id="1" label="Specific Countries" xsi:type="string">1</field>
-            <field path="payment/checkmo/specificcountry/active" scope="payment" scope_id="1" label="United Kingdom" xsi:type="string">GB</field>
+            <field path="payment/checkmo/specificcountry" scope="payment" scope_id="1" xsi:type="array">
+                <item label="United Kingdom" xsi:type="string">GB</item>
+            </field>
         </dataset>
 
         <dataset name="checkmo_specificcountry_gb_rollback">
@@ -56,7 +60,9 @@
         <dataset name="banktransfer_specificcountry_gb">
             <field path="payment/banktransfer/active" scope="payment" scope_id="1" label="Yes" xsi:type="string">1</field>
             <field path="payment/banktransfer/allowspecific" scope="payment" scope_id="1" label="Specific Countries" xsi:type="string">1</field>
-            <field path="payment/banktransfer/specificcountry/active" scope="payment" scope_id="1" label="United Kingdom" xsi:type="string">GB</field>
+            <field path="payment/banktransfer/specificcountry" scope="payment" scope_id="1" xsi:type="array">
+                <item label="United Kingdom" xsi:type="string">GB</item>
+            </field>
         </dataset>
 
         <dataset name="banktransfer_specificcountry_gb_rollback">
@@ -75,7 +81,9 @@
         <dataset name="purchaseorder_specificcountry_gb">
             <field path="payment/purchaseorder/active" scope="payment" scope_id="1" label="Yes" xsi:type="string">1</field>
             <field path="payment/purchaseorder/allowspecific" scope="payment" scope_id="1" label="Specific Countries" xsi:type="string">1</field>
-            <field path="payment/purchaseorder/specificcountry/active" scope="payment" scope_id="1" label="United Kingdom" xsi:type="string">GB</field>
+            <field path="payment/purchaseorder/specificcountry" scope="payment" scope_id="1" xsi:type="array">
+                <item label="United Kingdom" xsi:type="string">GB</item>
+            </field>
         </dataset>
 
         <dataset name="purchaseorder_specificcountry_gb_rollback">
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistory.php
new file mode 100644
index 0000000000000000000000000000000000000000..1630e60c334d05e41de2d4e4f2b0aa5003330ceb
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistory.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Sales\Test\Constraint;
+
+use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
+use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
+use Magento\Mtf\Constraint\AbstractConstraint;
+
+/**
+ * Assert that comment about authorized amount exist in Comments History section on order page in backend.
+ */
+class AssertOrderCommentsHistory extends AbstractConstraint
+{
+    /**
+     * Message about authorized amount in order.
+     */
+    const AUTHORIZED_AMOUNT = 'Authorized amount of $';
+
+    /**
+     * Assert  that comment about authorized amount exist in Comments History section on order page in backend.
+     *
+     * @param SalesOrderView $salesOrderView
+     * @param OrderIndex $salesOrder
+     * @param string $orderId
+     * @param string $grandTotal
+     * @return void
+     */
+    public function processAssert(
+        SalesOrderView $salesOrderView,
+        OrderIndex $salesOrder,
+        $orderId,
+        $grandTotal
+    ) {
+        $salesOrder->open();
+        $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]);
+
+        $actualAuthorizedAmount = $salesOrderView->getOrderHistoryBlock()->getCommentsHistory();
+
+        \PHPUnit_Framework_Assert::assertContains(
+            self::AUTHORIZED_AMOUNT . $grandTotal,
+            $actualAuthorizedAmount,
+            'Incorrect authorized amount value for the order #' . $orderId
+        );
+    }
+
+    /**
+     * Returns string representation of successful assertion.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return "Message about authorized amount is available in Comments History section.";
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml
index a2319ff28c6a064c1b878e48fce8fa5d369a5d78..25d1ce48de08253028a6d89b812f4e6b79192840 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="OrderInvoiceView" area="Adminhtml" mca="sales/order_invoice/view" module="Magento_Sales">
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="pageActions" class="Magento\Sales\Test\Block\Adminhtml\Order\Actions" locator=".page-actions" strategy="css selector"/>
     <block name="itemsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Invoice\View\Items" locator="//div[./div[@id='invoice_item_container']]" strategy="xpath"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
index 5e2cd98f7be0c74c811672680473b2228539b849..3b1b7881e1580d823bcc1d4dcf321fb8adf42701 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
@@ -10,7 +10,7 @@
     <block name="pageActions" class="Magento\Sales\Test\Block\Adminhtml\Order\Actions" locator=".page-actions" strategy="css selector"/>
     <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="orderForm" class="Magento\Sales\Test\Block\Adminhtml\Order\View\OrderForm" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="itemsOrderedBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\View\Items" locator="#sales_order_view_tabs_order_info_content .grid" strategy="css selector"/>
     <block name="orderTotalsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Totals" locator=".order-totals" strategy="css selector"/>
     <block name="orderHistoryBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\History" locator=".order-comments-history" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml
index 2f6ce91b644c34aba335ba6da040ee3eab84d9c0..c7f026085fd80fb5d5595b0084d1ffd636aeca97 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml
@@ -6,24 +6,29 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-  <type name="Magento\Sales\Test\Constraint\AssertOrderStatusInGrid">
-    <arguments>
-      <argument name="severity" xsi:type="string">high</argument>
-    </arguments>
-  </type>
-  <type name="Magento\Sales\Test\Constraint\AssertOrderStatusDuplicateStatus">
-    <arguments>
-      <argument name="severity" xsi:type="string">high</argument>
-    </arguments>
-  </type>
-  <type name="Magento\Sales\Test\Constraint\AssertOrderCancelSuccessMessage">
-    <arguments>
-      <argument name="severity" xsi:type="string">high</argument>
-    </arguments>
-  </type>
-  <type name="Magento\Sales\Test\Constraint\AssertOrderMassOnHoldSuccessMessage">
-    <arguments>
-      <argument name="severity" xsi:type="string">high</argument>
-    </arguments>
-  </type>
+    <type name="Magento\Sales\Test\Constraint\AssertOrderStatusInGrid">
+        <arguments>
+            <argument name="severity" xsi:type="string">high</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Sales\Test\Constraint\AssertOrderStatusDuplicateStatus">
+        <arguments>
+            <argument name="severity" xsi:type="string">high</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Sales\Test\Constraint\AssertOrderCancelSuccessMessage">
+        <arguments>
+            <argument name="severity" xsi:type="string">high</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Sales\Test\Constraint\AssertOrderMassOnHoldSuccessMessage">
+        <arguments>
+            <argument name="severity" xsi:type="string">high</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Sales\Test\Constraint\AssertOrderCommentsHistory">
+        <arguments>
+            <argument name="severity" xsi:type="string">high</argument>
+        </arguments>
+    </type>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml
index 9caca7619ca5a9baaed0d3e26ed68d52be25d43f..275a503c597c6a0ab2cf480e714fbf685068240c 100644
--- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml
+++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="OrderShipmentView" area="Adminhtml" mca="order_shipment/view" module="Magento_Shipping">
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="itemsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Shipment\View\Items" locator=".grid" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml
index beeac6205789c25b155f57ef775d9c032f439fe4..61425421392f9fe6b5ea26a9a30b9a42252d35cf 100644
--- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml
+++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="SalesShipmentView" area="Adminhtml" mca="sales/shipment/view" module="Magento_Shipping">
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="itemsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Shipment\View\Items" locator=".grid" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml b/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml
index 84bcca1643966f7f0dcbd9a67bb328cfba9740ab..e6ab36bf4f3704917a696dd9bfccad6e087b46c7 100644
--- a/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml
+++ b/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml
@@ -7,6 +7,6 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CheckoutOnepageSuccess" mca="checkout/onepage/success">
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator="[data-ui-id='page-title']" strategy="css selector"/>
+    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator="[data-ui-id='page-title-wrapper']" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
index ee94001a140ea99033bc6b69c4e0cb7f53f4a5ee..f81391fa09a3f380de523e5ee529fb65b7b3ca0d 100644
--- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
@@ -9,6 +9,6 @@
   <page name="UrlRewriteIndex" area="Adminhtml" mca="admin/url_rewrite/index" module="Magento_UrlRewrite">
     <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="urlRedirectGrid" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Category\Grid" locator="#urlrewriteGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/integration/testsuite/Magento/Backend/Model/Locale/ResolverTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/Locale/ResolverTest.php
index 7000324f0497ac79b1d562043ea838f9f4b118d8..09c21758cba336cbd15982d610875cbc0aa19117 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Model/Locale/ResolverTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Model/Locale/ResolverTest.php
@@ -82,7 +82,7 @@ class ResolverTest extends \PHPUnit_Framework_TestCase
     protected function _checkSetLocale($localeCodeToCheck)
     {
         $this->_model->setLocale();
-        $localeCode = $this->_model->getLocaleCode();
+        $localeCode = $this->_model->getLocale();
         $this->assertEquals($localeCode, $localeCodeToCheck);
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
index 6d3ec438052c733149dc2157d64472206cb8fb7e..15afc0d3e638d21f49d2971b3ec9bf266a78c791 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
@@ -30,7 +30,7 @@ class CategoryTest extends \Magento\TestFramework\TestCase\AbstractController
                     '%acategorypath-category-1-category-1-1-category-1-1-1%a',
                     '%acategory-category-1-1-1%a',
                     '%a<title>Category 1.1.1 - Category 1.1 - Category 1</title>%a',
-                    '%a<h1%S>%SCategory 1.1.1%S</h1>%a',
+                    '%a<h1%a>%SCategory 1.1.1%S</h1>%a',
                     '%aSimple Product Two%a',
                     '%a$45.67%a'
                 ],
@@ -42,7 +42,7 @@ class CategoryTest extends \Magento\TestFramework\TestCase\AbstractController
                     '%acategorypath-category-1-category-1-1%a',
                     '%acategory-category-1-1%a',
                     '%a<title>Category 1.1 - Category 1</title>%a',
-                    '%a<h1%S>%SCategory 1.1%S</h1>%a',
+                    '%a<h1%a>%SCategory 1.1%S</h1>%a',
                     '%aSimple Product%a',
                     '%a$10.00%a',
                     '%aSimple Product Two%a',
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Product/CompareTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Product/CompareTest.php
index e91f71a3dbd3ac9d75ae3bbc81c8fee7d68f1705..cbbb86dcc3fef14860c8190f3937a1661e600558 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Product/CompareTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Product/CompareTest.php
@@ -164,9 +164,9 @@ class CompareTest extends \Magento\TestFramework\TestCase\AbstractController
         $visitor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Customer\Model\Visitor');
         /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
-        $visitor->setSessionId(md5(time()) . md5(microtime()))->setLastVisitAt($dateTime->now())->save();
+        $visitor->setSessionId(md5(time()) . md5(microtime()))
+            ->setLastVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT))
+            ->save();
         /** @var $item \Magento\Catalog\Model\Product\Compare\Item */
         $item = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Catalog\Model\Product\Compare\Item'
@@ -185,11 +185,9 @@ class CompareTest extends \Magento\TestFramework\TestCase\AbstractController
         $visitor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Customer\Model\Visitor');
 
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
-
-        $visitor->setSessionId(md5(time()) . md5(microtime()))->setLastVisitAt($dateTime->now())->save();
+        $visitor->setSessionId(md5(time()) . md5(microtime()))
+            ->setLastVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT))
+            ->save();
 
         \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
             'Magento\Customer\Model\Visitor'
@@ -205,10 +203,9 @@ class CompareTest extends \Magento\TestFramework\TestCase\AbstractController
         /** @var $visitor \Magento\Customer\Model\Visitor */
         $visitor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Customer\Model\Visitor');
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
-        $visitor->setSessionId(md5(time()) . md5(microtime()))->setLastVisitAt($dateTime->now())->save();
+        $visitor->setSessionId(md5(time()) . md5(microtime()))
+            ->setLastVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT))
+            ->save();
 
         /** @var $item \Magento\Catalog\Model\Product\Compare\Item */
         $item = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
@@ -261,11 +258,8 @@ class CompareTest extends \Magento\TestFramework\TestCase\AbstractController
         /** @var $visitor \Magento\Customer\Model\Visitor */
         $visitor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Customer\Model\Visitor');
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
         $visitor->setSessionId(md5(time()) . md5(microtime()))
-            ->setLastVisitAt($dateTime->now())
+            ->setLastVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT))
             ->save();
 
         /** @var $item \Magento\Catalog\Model\Product\Compare\Item */
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Compare/ListCompareTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Compare/ListCompareTest.php
index f22c4493d3c7f9ee744ce543e29ee79fa91d6153..f777756f478b2cfa9fb6d2495e78723729662c9e 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Compare/ListCompareTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Compare/ListCompareTest.php
@@ -32,11 +32,8 @@ class ListCompareTest extends \PHPUnit_Framework_TestCase
             ->get('Magento\Customer\Model\Session');
         $this->_visitor = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Customer\Model\Visitor');
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
         $this->_visitor->setSessionId(md5(time()) . md5(microtime()))
-            ->setLastVisitAt($dateTime->now())
+            ->setLastVisitAt((new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT))
             ->save();
         $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Catalog\Model\Product\Compare\ListCompare', ['customerVisitor' => $this->_visitor]);
diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/BatchIndexTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/BatchIndexTest.php
index 93c43797b8a5cec03fe6fc0eb43fdd741ea3b79f..c7b7f38879fff62de91d8f4e258e1fa366703d6e 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/BatchIndexTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/BatchIndexTest.php
@@ -54,7 +54,7 @@ class BatchIndexTest extends \PHPUnit_Framework_TestCase
             foreach ($productIds as $productId) {
                 $this->assertEquals(
                     $expectedPrice,
-                    $this->resourceRule->getRulePrice(true, 1, $customerGroupId, $productId)
+                    $this->resourceRule->getRulePrice(new \DateTime(), 1, $customerGroupId, $productId)
                 );
             }
         }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/IndexerBuilderTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/IndexerBuilderTest.php
index 8089458347928be7defef4ab53539365700e8e17..ad347d5464a305eda52d2c705a25e8bb240e79a4 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/IndexerBuilderTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/IndexerBuilderTest.php
@@ -54,7 +54,7 @@ class IndexerBuilderTest extends \PHPUnit_Framework_TestCase
 
         $this->indexerBuilder->reindexById(1);
 
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, 1));
+        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
     }
 
     /**
@@ -74,9 +74,12 @@ class IndexerBuilderTest extends \PHPUnit_Framework_TestCase
             $this->productThird->getId(),
         ]);
 
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, 1));
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, $this->productSecond->getId()));
-        $this->assertFalse($this->resourceRule->getRulePrice(true, 1, 1, $this->productThird->getId()));
+        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
+        $this->assertEquals(
+            9.8,
+            $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $this->productSecond->getId())
+        );
+        $this->assertFalse($this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $this->productThird->getId()));
     }
 
     /**
@@ -92,9 +95,12 @@ class IndexerBuilderTest extends \PHPUnit_Framework_TestCase
 
         $this->indexerBuilder->reindexFull();
 
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, 1));
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, $this->productSecond->getId()));
-        $this->assertFalse($this->resourceRule->getRulePrice(true, 1, 1, $this->productThird->getId()));
+        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
+        $this->assertEquals(
+            9.8,
+            $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $this->productSecond->getId())
+        );
+        $this->assertFalse($this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $this->productThird->getId()));
     }
 
     protected function prepareProducts()
diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php
index ca18ab512b005ee73cbc0bd75a4273874086d2ce..71b8ce0ad73268fbf5d8583bb705df8450560edc 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php
@@ -42,6 +42,6 @@ class ProductRuleTest extends \PHPUnit_Framework_TestCase
     {
         $this->product->load(1)->setData('test_attribute', 'test_attribute_value')->save();
 
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, 1));
+        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/RuleProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/RuleProductTest.php
index 4e85ae368a7c58c354f6cc2b6fa12cb58724ac1e..8019307038d680f7d03c689b5977da0847164df8 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/RuleProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/RuleProductTest.php
@@ -42,13 +42,13 @@ class RuleProductTest extends \PHPUnit_Framework_TestCase
     public function testReindexAfterRuleCreation()
     {
         $this->product->load(1)->setData('test_attribute', 'test_attribute_value')->save();
-        $this->assertFalse($this->resourceRule->getRulePrice(true, 1, 1, 1));
+        $this->assertFalse($this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
 
         $this->saveRule();
         // apply all rules
         $this->indexBuilder->reindexFull();
 
-        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(true, 1, 1, 1));
+        $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, 1));
     }
 
     protected function saveRule()
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php b/dev/tests/integration/testsuite/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
index d43e59c6c79b3fdb12e57f706b66859d7675e78e..ddfde2468a29865ae2b49b43d20be0baf06da530 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
@@ -125,7 +125,7 @@ class PersonalInfoTest extends \PHPUnit_Framework_TestCase
     {
         $createdAt = $this->_block->formatDate(
             $this->_loadCustomer()->getCreatedAt(),
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM,
+            \IntlDateFormatter::MEDIUM,
             true
         );
         $this->assertEquals($createdAt, $this->_block->getCreateDate());
@@ -137,14 +137,10 @@ class PersonalInfoTest extends \PHPUnit_Framework_TestCase
     public function testGetStoreCreateDate()
     {
         $customer = $this->_loadCustomer();
-        $date = $this->_context->getLocaleDate()->scopeDate(
-            $customer->getStoreId(),
-            $this->dateTime->toTimestamp($customer->getCreatedAt()),
-            true
-        );
+        $date = $this->_context->getLocaleDate()->scopeDate($customer->getStoreId(), $customer->getCreatedAt(), true);
         $storeCreateDate = $this->_block->formatDate(
             $date,
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_MEDIUM,
+            \IntlDateFormatter::MEDIUM,
             true
         );
         $this->assertEquals($storeCreateDate, $this->_block->getStoreCreateDate());
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/GroupTest.php b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/GroupTest.php
index fccb2506c78ba586b9fc6d8c6252649d8a36d613..93739deb389fea421397ddabb6c7bb612964b91b 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/GroupTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/GroupTest.php
@@ -43,7 +43,7 @@ class GroupTest extends \Magento\Backend\Utility\Controller
     {
         $this->dispatch('backend/customer/group/new');
         $responseBody = $this->getResponse()->getBody();
-        $this->assertRegExp('/<h1 class\="title">\s*New Customer Group\s*<\/h1>/', $responseBody);
+        $this->assertRegExp('/<h1 class\="page-title">\s*New Customer Group\s*<\/h1>/', $responseBody);
         $expected = '<input id="customer_group_code" name="code"  '
             . 'data-ui-id="group-form-fieldset-element-text-code"  value=""';
         $this->assertContains($expected, $responseBody);
@@ -69,7 +69,7 @@ class GroupTest extends \Magento\Backend\Utility\Controller
         $this->session->setCustomerGroupData($customerGroupData);
         $this->dispatch('backend/customer/group/new');
         $responseBody = $this->getResponse()->getBody();
-        $this->assertRegExp('/<h1 class\="title">\s*New Customer Group\s*<\/h1>/', $responseBody);
+        $this->assertRegExp('/<h1 class\="page-title">\s*New Customer Group\s*<\/h1>/', $responseBody);
         $expected = '<input id="customer_group_code" name="code"  '
             . 'data-ui-id="group-form-fieldset-element-text-code"  value="' . self::CUSTOMER_GROUP_CODE . '"';
         $this->assertContains($expected, $responseBody);
@@ -187,7 +187,7 @@ class GroupTest extends \Magento\Backend\Utility\Controller
     {
         $this->dispatch('backend/customer/group/save');
         $responseBody = $this->getResponse()->getBody();
-        $this->assertRegExp('/<h1 class\="title">\s*New Customer Group\s*<\/h1>/', $responseBody);
+        $this->assertRegExp('/<h1 class\="page-title">\s*New Customer Group\s*<\/h1>/', $responseBody);
     }
 
     /**
@@ -200,7 +200,7 @@ class GroupTest extends \Magento\Backend\Utility\Controller
         $this->dispatch('backend/customer/group/save');
 
         $responseBody = $this->getResponse()->getBody();
-        $this->assertRegExp('/<h1 class\="title">\s*' . self::CUSTOMER_GROUP_CODE . '\s*<\/h1>/', $responseBody);
+        $this->assertRegExp('/<h1 class\="page-title">\s*' . self::CUSTOMER_GROUP_CODE . '\s*<\/h1>/', $responseBody);
     }
 
     public function testSaveActionNonExistingGroupId()
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
index 2521430cfde0e054bc2585d2d0371623b8d41eb8..b3c578e46cfa26069c1c93c07ac1b15bc3ea59e7 100755
--- a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
@@ -445,7 +445,7 @@ class IndexTest extends \Magento\Backend\Utility\Controller
         $body = $this->getResponse()->getBody();
 
         // verify
-        $this->assertContains('<h1 class="title">new firstname new lastname</h1>', $body);
+        $this->assertContains('<h1 class="page-title">new firstname new lastname</h1>', $body);
     }
 
     /**
@@ -458,7 +458,7 @@ class IndexTest extends \Magento\Backend\Utility\Controller
         $body = $this->getResponse()->getBody();
 
         // verify
-        $this->assertContains('<h1 class="title">test firstname test lastname</h1>', $body);
+        $this->assertContains('<h1 class="page-title">test firstname test lastname</h1>', $body);
     }
 
     public function testNewAction()
@@ -467,7 +467,7 @@ class IndexTest extends \Magento\Backend\Utility\Controller
         $body = $this->getResponse()->getBody();
 
         // verify
-        $this->assertContains('<h1 class="title">New Customer</h1>', $body);
+        $this->assertContains('<h1 class="page-title">New Customer</h1>', $body);
     }
 
     /**
diff --git a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php
index e2a0c09921236ec9f1c65b164782296ee1374d81..1fc387e604fe25b2cb16dcb274e17eeda5c5e34c 100644
--- a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php
+++ b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php
@@ -239,15 +239,11 @@ class AddressTest extends \PHPUnit_Framework_TestCase
         $addressId = $objectManager->get('Magento\ImportExport\Model\Resource\Helper')
             ->getNextAutoincrement($tableName);
 
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
-
         $entityData = [
             'entity_id' => $addressId,
             'parent_id' => $customerId,
-            'created_at' => $dateTime->now(),
-            'updated_at' => $dateTime->now(),
+            'created_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
+            'updated_at' => (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
         ];
 
         // invoke _saveAddressEntities
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/DateTest.php b/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/DateTest.php
index e506d2edf663b247b8ed3992e7403e4a4aa42265..84e30d38787589e92ec8173f6b376282ccc759a4 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/DateTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/DateTest.php
@@ -16,11 +16,6 @@ class DateTest extends \PHPUnit_Framework_TestCase
      */
     protected $_elementFactory;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
-     */
-    protected $_localeDate;
-
     /**
      * SetUp method
      */
@@ -28,7 +23,6 @@ class DateTest extends \PHPUnit_Framework_TestCase
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->_elementFactory = $objectManager->create('Magento\Framework\Data\Form\ElementFactory');
-        $this->_localeDate = $objectManager->get('Magento\Framework\Stdlib\DateTime\Timezone');
     }
 
     /**
@@ -36,13 +30,7 @@ class DateTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetValue(array $data, $expect)
     {
-        if (isset($data['date_format'])) {
-            $data['date_format'] = $this->_localeDate->getDateFormat($data['date_format']);
-        }
-        if (isset($data['time_format'])) {
-            $data['time_format'] = $this->_localeDate->getTimeFormat($data['time_format']);
-        }
-        /** @var $date \Magento\Framework\Data\Form\Element\Date*/
+        /** @var $date \Magento\Framework\Data\Form\Element\Date */
         $date = $this->_elementFactory->create('Magento\Framework\Data\Form\Element\Date', $data);
         $this->assertEquals($expect, $date->getValue());
     }
@@ -56,25 +44,25 @@ class DateTest extends \PHPUnit_Framework_TestCase
         return [
             [
                 [
-                    'date_format' => \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
-                    'time_format' => \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+                    'date_format' => 'MM/d/yy',
+                    'time_format' => 'h:mm a',
                     'value' => $testTimestamp,
                 ],
-                date('n/j/y g:i A', $testTimestamp),
+                date('m/j/y g:i A', $testTimestamp),
             ],
             [
                 [
-                    'time_format' => \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+                    'time_format' => 'h:mm a',
                     'value' => $testTimestamp,
                 ],
                 date('g:i A', $testTimestamp)
             ],
             [
                 [
-                    'date_format' => \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+                    'date_format' => 'MM/d/yy',
                     'value' => $testTimestamp,
                 ],
-                date('n/j/y', $testTimestamp)
+                date('m/j/y', $testTimestamp)
             ]
         ];
     }
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Locale/ResolverTest.php b/dev/tests/integration/testsuite/Magento/Framework/Locale/ResolverTest.php
deleted file mode 100644
index 1da30c710888e345608dacd197a155c71cd2fba9..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Framework/Locale/ResolverTest.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\Locale;
-
-class ResolverTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetLocale()
-    {
-        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
-        \Zend_Locale_Data::removeCache();
-        $this->assertNull(\Zend_Locale_Data::getCache());
-        $model = $objectManager->create('Magento\Framework\Locale\ResolverInterface', ['locale' => 'some_locale']);
-        $this->assertInstanceOf('Zend_Locale', $model->getLocale());
-        $this->assertInstanceOf('Zend_Cache_Core', \Zend_Locale_Data::getCache());
-    }
-}
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
index 72682c6beb320af2c4fec7a68932021885c49494..569cd212239ee78cf3ddb8cf4f0d9c82ee79e5aa 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
@@ -481,23 +481,6 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
         $this->assertStringMatchesFormat('http://localhost/pub/static/frontend/%s/en_US/css/styles.css', $actualResult);
     }
 
-    public function testFormatDate()
-    {
-        $locale = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
-            'Magento\Framework\Stdlib\DateTime\TimezoneInterface'
-        );
-        $this->assertEquals($locale->formatDate(), $this->_block->formatDate());
-    }
-
-    public function testFormatTime()
-    {
-        $locale = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
-            'Magento\Framework\Stdlib\DateTime\TimezoneInterface'
-        );
-        $time = new \Magento\Framework\Stdlib\DateTime\Date(time());
-        $this->assertEquals($locale->formatTime($time), $this->_block->formatTime($time));
-    }
-
     public function testGetModuleName()
     {
         $this->assertEquals('Magento_Core', $this->_block->getModuleName());
diff --git a/dev/tests/integration/testsuite/Magento/ImportExport/Block/Adminhtml/Export/FilterTest.php b/dev/tests/integration/testsuite/Magento/ImportExport/Block/Adminhtml/Export/FilterTest.php
index 2a725612b9c4659ae6b9affbc088056aff7b3a52..5006351b61fe343071d3304b46fb1b1935fe7300 100644
--- a/dev/tests/integration/testsuite/Magento/ImportExport/Block/Adminhtml/Export/FilterTest.php
+++ b/dev/tests/integration/testsuite/Magento/ImportExport/Block/Adminhtml/Export/FilterTest.php
@@ -46,7 +46,7 @@ class FilterTest extends \PHPUnit_Framework_TestCase
         $dateFormat = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
             'Magento\Framework\Stdlib\DateTime\TimezoneInterface'
         )->getDateFormat(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+            \IntlDateFormatter::SHORT
         );
         $pieces = array_filter(explode('<strong>', $html));
         foreach ($pieces as $piece) {
diff --git a/dev/tests/integration/testsuite/Magento/Indexer/Controller/Adminhtml/IndexerTest.php b/dev/tests/integration/testsuite/Magento/Indexer/Controller/Adminhtml/IndexerTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..26fe450bc09707af9b4288f1bac4c82b8a3ac593
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Indexer/Controller/Adminhtml/IndexerTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Indexer\Controller\Adminhtml;
+
+/**
+ * @magentoAppArea adminhtml
+ */
+class IndexerTest extends \Magento\Backend\Utility\Controller
+{
+    /**
+     * Assert that current page is index management page and that it has indexers mode selector
+     *
+     * @return void
+     */
+    public function testIndexersMode()
+    {
+        $this->dispatch('backend/indexer/indexer/list/');
+        $body = $this->getResponse()->getBody();
+        $this->assertContains('<h1 class="title">Index Management</h1>', $body);
+        $this->assertSelectCount('#gridIndexer_massaction-select', 1, $body, 'Mode selector is not found');
+        $this->assertContains('option value="change_mode_onthefly"', $body);
+        $this->assertContains('option value="change_mode_changelog"', $body);
+    }
+
+    /**
+     * Assert that index management contains a certain number of indexers
+     *
+     * @return void
+     */
+    public function testDefaultNumberOfIndexers()
+    {
+        $this->dispatch('backend/indexer/indexer/list/');
+        $body = $this->getResponse()->getBody();
+        $this->assertSelectCount(
+            '[name="indexer_ids"]',
+            true,
+            $body,
+            'Indexer list is empty'
+        );
+    }
+}
diff --git a/dev/tests/integration/testsuite/Magento/Reports/Controller/Adminhtml/Report/Product/ViewedTest.php b/dev/tests/integration/testsuite/Magento/Reports/Controller/Adminhtml/Report/Product/ViewedTest.php
index b5defd098a0dad2727e0a48f30505420586cbb82..d5040c34d3fe2f0a30ad123bc615cec745fe893a 100644
--- a/dev/tests/integration/testsuite/Magento/Reports/Controller/Adminhtml/Report/Product/ViewedTest.php
+++ b/dev/tests/integration/testsuite/Magento/Reports/Controller/Adminhtml/Report/Product/ViewedTest.php
@@ -23,7 +23,7 @@ class ViewedTest extends \Magento\Backend\Utility\Controller
     public function testExecuteWithoutError()
     {
         $this->dispatch('backend/reports/report_product/viewed/filter/' .
-            'cGVyaW9kX3R5cGU9ZGF5JmZyb209NDY0NjQmdG89NDY0NjQ2JnNob3dfZW1wdHlfcm93cz0w/');
+            'cGVyaW9kX3R5cGU9ZGF5JmZyb209MDIlMkYxJTJGMjAxNSZ0bz0wMiUyRjE2JTJGMjAxNSZzaG93X2VtcHR5X3Jvd3M9MA');
         $actual = $this->getResponse()->getBody();
         $this->assertContains('Product Views Report', $actual);
         $this->assertNotContains('An error occurred while showing the product views report.', $actual);
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/ViewFileReferenceTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/ViewFileReferenceTest.php
index 6d17602e4b09cb46dfaf06825537ed63dfd5bafb..9213416e3f5e383c18dd5bc16edc28c6afc832c9 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/ViewFileReferenceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/ViewFileReferenceTest.php
@@ -89,8 +89,7 @@ class ViewFileReferenceTest extends \PHPUnit_Framework_TestCase
     {
         $result = [];
         $patternDir = self::_getLocalePatternDir($theme);
-        $localeModel = new \Zend_Locale();
-        foreach (array_keys($localeModel->getLocaleList()) as $locale) {
+        foreach (\ResourceBundle::getLocales('') as $locale) {
             $dir = str_replace('<locale_placeholder>', $locale, $patternDir);
             if (is_dir($dir)) {
                 $result[] = $locale;
diff --git a/dev/tests/integration/testsuite/Magento/Theme/Model/DesignTest.php b/dev/tests/integration/testsuite/Magento/Theme/Model/DesignTest.php
index b3f8bef35c017be17b458a873882c9cf1ae1773a..4975bb5be7f1aa4de29811449a74d8727eefa2e2 100644
--- a/dev/tests/integration/testsuite/Magento/Theme/Model/DesignTest.php
+++ b/dev/tests/integration/testsuite/Magento/Theme/Model/DesignTest.php
@@ -98,10 +98,7 @@ class DesignTest extends \PHPUnit_Framework_TestCase
      */
     public function testLoadChangeCache()
     {
-        /** @var \Magento\Framework\Stdlib\DateTime $dateTime */
-        $dateTime = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-            ->create('Magento\Framework\Stdlib\DateTime');
-        $date = $dateTime->now(true);
+        $date = (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT);
         $storeId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
             'Magento\Store\Model\StoreManagerInterface'
         )->getDefaultStoreView()->getId();
diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
index 2792bd0f68ee6123c289b8c28e1c81f5c0724e7c..5b9c0f3f53801ac13305994e4cbbc96970a2f8e5 100644
--- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
+++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
@@ -19,7 +19,7 @@ class AuthTest extends \Magento\Backend\Utility\Controller
     public function testFormForgotpasswordAction()
     {
         $this->dispatch('backend/admin/auth/forgotpassword');
-        $expected = 'Forgot your user name or password?';
+        $expected = 'Password Help';
         $this->assertContains($expected, $this->getResponse()->getBody());
     }
 
diff --git a/dev/tests/js/spec/integration/Magento/Msrp/frontend/js/msrp.js b/dev/tests/js/spec/integration/Magento/Msrp/frontend/js/msrp.js
new file mode 100644
index 0000000000000000000000000000000000000000..bfc4903fa6b070c95e06d1da1035449566bb37a8
--- /dev/null
+++ b/dev/tests/js/spec/integration/Magento/Msrp/frontend/js/msrp.js
@@ -0,0 +1,44 @@
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+define([
+    'jquery',
+    'Magento_Msrp/js/msrp'
+], function ($) {
+    'use strict';
+
+    describe('Testing addToCart Widget', function () {
+        var wdContainer;
+
+        beforeEach(function () {
+            wdContainer = $('<div />');
+        });
+
+        afterEach(function () {
+            $(wdContainer).remove();
+        });
+
+        it('widget extends jQuery object', function () {
+            expect($.fn.addToCart).toBeDefined();
+        });
+
+        it('widget gets options', function () {
+            wdContainer.addToCart({
+                'cartButtonId': 'FAKE_ID'
+            });
+            expect(wdContainer.addToCart('option', 'cartButtonId')).toBe('FAKE_ID');
+        });
+
+        it('widget tries to submit Cart Form on click', function (done) {
+            var link = $('<a />');
+            wdContainer.addToCart({
+                'cartButtonId': link
+            }).on('addToCart', function (event, result) {
+                expect(result).toEqual(wdContainer[0]);
+                done();
+            });
+            link.click();
+        });
+    });
+});
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
index 37f6f3e6f80aec5e058e10ac42ab5831466a3f8c..1afa25055ddc04de479b612ea4e9666cd1a5f0c4 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
@@ -115,6 +115,7 @@ return [
     ['Magento\Sales\Block\Adminhtml\Order\Shipment\View', 'Magento\Shipping\Block\Adminhtml\View'],
     ['Magento\Sales\Block\Order\Shipment\Items', 'Magento\Shipping\Block\Items'],
     ['Magento\Sales\Controller\Adminhtml\Order\Shipment', 'Magento\Shipping\Controller\Adminhtml\Order\Shipment'],
+    ['Magento\Sales\Controller\Download'],
     ['Magento\Sales\Block\Order\Shipment', 'Magento\Shipping\Block\Order\Shipment'],
     ['Mage_Adminhtml_Block_Sales_Order_Create_Customer_Grid'],
     ['Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid_Renderer_Giftmessage'],
@@ -792,7 +793,6 @@ return [
     ['Mage_Core_Model_Config_System'],
     ['Mage_Core_Model_Design_Source_Apply'],
     ['Mage_Core_Model_Language'],
-    ['Magento\Core\Helper\Data'],
     ['Magento\Core\Model\Flag', 'Magento\Framework\Flag'],
     ['Magento\Framework\Model\Exception', 'Magento\Framework\Exception\LocalizedException'],
     ['Magento\Core\Model\AbstractModel', 'Magento\Framework\Model\AbstractModel'],
@@ -2276,7 +2276,7 @@ return [
     ['Magento\Core\App\Router\Base', 'Magento\Framework\App\Router\Base'],
     ['Magento\Core\Block\Store\Switcher', 'Magento\Store\Block\Store\Switcher'],
     ['Magento\Core\Block\Switcher', 'Magento\Store\Block\Switcher'],
-    ['Magento\Core\Helper\Cookie', 'Magento\Store\Helper\Cookie'],
+    ['Magento\Core\Helper\Cookie', 'Magento\Cookie\Helper\Cookie'],
     ['Magento\Store\Helper\Cookie', 'Magento\Cookie\Helper\Cookie'],
     ['Magento\Core\Model\BaseScopeResolver'],
     ['Magento\Core\Model\Config\Scope\Processor\Placeholder', 'Magento\Store\Model\Config\Processor\Placeholder'],
@@ -2428,10 +2428,7 @@ return [
     ['Magento\ObjectManager', 'Magento\Framework\ObjectManagerInterface'],
     ['Magento\Translate', 'Magento\Framework\Translate'],
     ['Magento\TranslateInterface', 'Magento\Framework\TranslateInterface'],
-    ['Magento\Locale', 'Magento\Framework\Locale'],
-    ['Magento\LocaleFactory', 'Magento\Framework\LocaleFactory'],
     ['Magento\Integration\Model\Oauth\Token\Factory', 'Magento\Integration\Model\Oauth\TokenFactory'],
-    ['Magento\LocaleInterface', 'Magento\Framework\LocaleInterface'],
     ['Magento\Logger', 'Psr\Log\LoggerInterface'],
     ['Magento\Phrase', 'Magento\Framework\Phrase'],
     ['Magento\Pear', 'Magento\Framework\Pear'],
@@ -2999,6 +2996,10 @@ return [
     ['Magento\Core\Block\RequireCookie', 'Magento\Cookie\Block\RequireCookie'],
     ['Magento\Core\Controller\Index\NoCookies', 'Magento\Cookie\Controller\Index\NoCookies'],
     ['Magento\Core\Model\Asset\Config', 'Magento\Framework\View\Asset\Config'],
+    ['Magento\Reports\Model\DateFactory'],
+    ['Magento\Framework\Stdlib\DateTime\DateFactory'],
+    ['Magento\Framework\Stdlib\DateTime\Date'],
+    ['Magento\Framework\Stdlib\DateTime\DateInterface'],
     ['Magento\Framework\App\Http\RequestInterface'],
     ['Magento\Core\Model\Layout\Merge', 'Magento\Framework\View\Model\Layout\Merge'],
     ['Magento\Core\Model\Layout\Translator', 'Magento\Framework\View\Model\Layout\Translator'],
@@ -3104,5 +3105,14 @@ return [
     ['Magento\Setup\Module\SetupFactory'],
     ['Magento\Framework\Module\Updater\SetupFactory'],
     ['Magento\Backend\Model\Config\Source\Yesno', 'Magento\Config\Model\Config\Source\Yesno'],
-    ['Magento\Reports\Model\Resource\Shopcart\Product\Collection']
+    ['Magento\Reports\Model\Resource\Shopcart\Product\Collection'],
+    ['Zend_Locale', '\Locale, \ResourceBundle'],
+    ['Zend_Locale_Data', '\Locale, \ResourceBundle'],
+    ['Zend_Locale_Content', '\Locale, \ResourceBundle'],
+    ['Magento\LocaleInterface', '\Locale, \ResourceBundle'],
+    ['Magento\Framework\LocaleInterface', '\Locale, \ResourceBundle'],
+    ['Magento\Framework\Locale', '\Locale, \ResourceBundle'],
+    ['Magento\LocaleFactory'],
+    ['Magento\Framework\LocaleFactory'],
+    ['Magento\Core\Helper\Data', 'Magento\Framework\Json\Helper\Data'],
 ];
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
index 70b36b2bdcd3717b6dba722980668e7d9459c370..4c9230c1665722ee3096b802cd2a598a98f5802d 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
@@ -54,24 +54,17 @@ return [
         'Mage_Core_Model_Resource',
         'Magento_Core_Model_Config_Resource::DEFAULT_WRITE_CONNECTION'
     ],
-    ['DEFAULT_CURRENCY', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::DEFAULT_CURRENCY'],
     ['DEFAULT_READ_CONNECTION', 'Magento\Framework\App\Resource\Config'],
     ['DEFAULT_WRITE_CONNECTION', 'Magento\Framework\App\Resource\Config'],
     ['DEFAULT_ERROR_HANDLER', 'Mage'],
-    ['DEFAULT_LOCALE', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::DEFAULT_LOCALE'],
     ['DEFAULT_THEME_NAME', 'Magento\Core\Model\Design\PackageInterface'],
     ['DEFAULT_THEME_NAME', 'Magento\Core\Model\Design\Package'],
-    ['DEFAULT_TIMEZONE', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::DEFAULT_TIMEZONE'],
     ['DEFAULT_STORE_ID', 'Magento\Catalog\Model\AbstractModel', 'Magento\Store\Model\Store::DEFAULT_STORE_ID'],
     ['DEFAULT_VALUE_TABLE_PREFIX'],
     ['DIVIDE_EPSILON', 'Magento\Core\Helper\Data'],
     ['ENTITY_PRODUCT', 'Magento\Review\Model\Review'],
     ['EXCEPTION_CODE_IS_GROUPED_PRODUCT'],
     ['FALLBACK_MAP_DIR', 'Magento\Core\Model\Design\PackageInterface'],
-    ['FORMAT_TYPE_FULL', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::FORMAT_TYPE_FULL'],
-    ['FORMAT_TYPE_LONG', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::FORMAT_TYPE_LONG'],
-    ['FORMAT_TYPE_MEDIUM', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::FORMAT_TYPE_MEDIUM'],
-    ['FORMAT_TYPE_SHORT', 'Magento\Framework\Locale', 'Magento_Core_Model_LocaleInterface::FORMAT_TYPE_SHORT'],
     ['GALLERY_IMAGE_TABLE', 'Magento\Catalog\Model\Resource\Product\Attribute\Backend\Media'],
     ['HASH_ALGO'],
     ['INIT_OPTION_DIRS', 'Magento\Core\Model\App', 'Magento_Core_Model_App::PARAM_APP_DIRS'],
@@ -147,12 +140,6 @@ return [
         'Magento\Catalog\Model\Resource\Product\Flat\Indexer',
         'XML_NODE_ATTRIBUTE_GROUPS'
     ],
-    [
-        'XML_PATH_ALLOW_CURRENCIES',
-        'Magento\Framework\Locale',
-        'Magento_Core_Model_LocaleInterface::XML_PATH_ALLOW_CURRENCIES'
-    ],
-    ['XML_PATH_ALLOW_CODES', 'Magento\Framework\LocaleInterface'],
     [
         'XML_PATH_ALLOW_DUPLICATION',
         'Magento\Core\Model\Design\PackageInterface',
@@ -175,15 +162,8 @@ return [
         'Magento\Framework\View\Element\Template',
         'Magento\Core\Model\TemplateEngine\Plugin::XML_PATH_DEBUG_TEMPLATE_HINTS_BLOCKS'
     ],
-    ['XML_PATH_DEFAULT_COUNTRY', 'Magento\Framework\Locale'],
     ['XML_PATH_DEFAULT_COUNTRY', 'Magento\Core\Helper\Data', 'Magento\Directory\Helper\Data::XML_PATH_DEFAULT_COUNTRY'],
-    ['XML_PATH_DEFAULT_LOCALE', 'Magento\Framework\Locale', 'Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE'],
     ['XML_PATH_DEFAULT_LOCALE', 'Magento\Core\Helper\Data', 'Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE'],
-    [
-        'XML_PATH_DEFAULT_TIMEZONE',
-        'Magento\Framework\Locale',
-        'Magento\Directory\Helper\Data::XML_PATH_DEFAULT_TIMEZONE'
-    ],
     [
         'XML_PATH_DEFAULT_TIMEZONE',
         'Magento\Core\Helper\Data',
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
index ffce52b8e4f2b438d4a4213c18a4c38fc59f91d7..6dbca32165dd5ef56301be9883101668b13f018d 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
@@ -1515,9 +1515,8 @@ return [
     ['setDefaultLocale', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
     ['getDefaultLocale', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
     ['setLocale', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
-    ['getLocale', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
-    ['getLocaleCode', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
-    ['setLocaleCode', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
+    ['getLocale', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver::getLocale'],
+    ['setLocaleCode', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver::setLocale'],
     ['emulate', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
     ['revert', 'Magento\Core\Model\Locale', 'Magento\Framework\Locale\Resolver'],
     ['getTimezone', 'Magento\Core\Model\Locale', 'Magento\Framework\Stdlib\DateTime\Timezone::getDefaultTimezone'],
@@ -1532,7 +1531,7 @@ return [
         'Magento\Framework\Stdlib\DateTime\TimezoneInterface',
         'Magento\Framework\Stdlib\DateTime\TimezoneInterface::scopeDate'
     ],
-    ['utcDate', 'Magento\Core\Model\Locale', 'Magento\Framework\Stdlib\DateTime\Timezone'],
+    ['utcDate', 'Magento\Core\Model\Locale'],
     ['storeTimeStamp', 'Magento\Core\Model\Locale', 'Magento\Framework\Stdlib\DateTime\Timezone::scopeTimeStamp'],
     ['formatDate', 'Magento\Core\Model\Locale', 'Magento\Framework\Stdlib\DateTime\Timezone'],
     ['getTranslation', 'Magento\Core\Model\Locale', 'Magento\Framework\Stdlib\DateTime\Timezone::_getTranslation'],
@@ -2014,14 +2013,6 @@ return [
         'Magento\Framework\Cache\Backend\Decorator\AbstractDecorator',
         'Magento\Framework\Cache\Backend\Decorator\AbstractDecorator::getCapabilities'
     ],
-    ['getLanguageTranslationList', 'Magento\Framework\LocaleInterface'],
-    ['getScriptTranslationList', 'Magento\Framework\LocaleInterface'],
-    ['getCountryTranslationList', 'Magento\Framework\LocaleInterface'],
-    ['getTerritoryTranslationList', 'Magento\Framework\LocaleInterface'],
-    ['getLanguageTranslation', 'Magento\Framework\LocaleInterface'],
-    ['getScriptTranslation', 'Magento\Framework\LocaleInterface'],
-    ['getCountryTranslation', 'Magento\Framework\LocaleInterface'],
-    ['getTerritoryTranslation', 'Magento\Framework\LocaleInterface'],
     [
         'getNoteNotify',
         'Magento\Sales\Block\Adminhtml\Order\Create\Comment',
@@ -2116,4 +2107,25 @@ return [
     ],
     ['getProductEntityTypeId', 'Magento\Reports\Model\Resource\Product\Collection'],
     ['setProductEntityTypeId', 'Magento\Reports\Model\Resource\Product\Collection'],
+    ['bindLocale', 'Magento\Backend\Model\Observer'],
+    ['getLocaleLists', 'Magento\Dhl\Model\Resource\Setup', 'getLocaleResolver'],
+    ['getTranslationList', 'Magento\Framework\Locale\Lists', '\ResourceBundle'],
+    ['getCountryTranslationList', 'Magento\Framework\Locale\Lists', '\ResourceBundle'],
+    ['getTranslationList', 'Magento\Framework\Locale\ListsInterface', '\ResourceBundle'],
+    ['getCountryTranslationList', 'Magento\Framework\Locale\ListsInterface', '\ResourceBundle'],
+    ['setLocaleCode', 'Magento\Framework\Locale\ResolverInterface', 'setLocale'],
+    ['getLocaleCode', 'Magento\Framework\Locale\ResolverInterface', 'getLocale'],
+    ['setLocaleCode', 'Magento\Framework\Locale\Resolver', 'setLocale'],
+    ['getLocaleCode', 'Magento\Framework\Locale\Resolver', 'getLocale'],
+    ['_getTranslation', 'Magento\Framework\Stdlib\DateTime\Timezone', '\ResourceBundle'],
+    ['formatTime', 'Magento\Framework\Stdlib\DateTime\TimezoneInterface', 'formatDateTime'],
+    ['utcDate', 'Magento\Framework\Stdlib\DateTime\TimezoneInterface'],
+    ['formatTime', 'Magento\Framework\Stdlib\DateTime\Timezone', 'formatDateTime'],
+    ['utcDate', 'Magento\Framework\Stdlib\DateTime\Timezone'],
+    ['getLocaleCode', 'Magento\Framework\View\Asset\File\FallbackContext', 'getLocale'],
+    ['getLocaleCode', 'Magento\Paypal\Model\Api\AbstractApi', 'getLocale'],
+    ['getCollectionAttribute', 'Magento\Eav\Model\Config'],
+    ['loadCollectionAttributes', 'Magento\Eav\Model\Config'],
+    ['_isCacheEnabled', 'Magento\Eav\Model\Config'],
+    ['_createCustomerAttribute', '\Magento\Customer\Model\Customer'],
 ];
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
index 55ec59a37848975a517bca7974d73b9340441934..5014947fdb32a80c042a1e61ffcf53a0fbabf9e4 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
@@ -118,7 +118,6 @@ return [
     ['_fileIo', '\Magento\Theme\Model\Uploader\Service', '_filesystem'],
     ['_streamFactory', '\Magento\MediaStorage\Model\File\Storage\Config', '_filesystem'],
     ['_streamFactory', '\Magento\MediaStorage\Model\File\Storage\Synchronization', '_filesystem'],
-    ['_allowedFormats', '\Magento\Core\Helper\Data', '\Magento\Framework\Locale'],
     ['types', '\Magento\Core\Model\Theme'],
     ['_collectionFactory', '\Magento\Install\Controller\Action', 'themeProvider'],
     ['_collectionFactory', '\Magento\Theme\Model\Config\Customization', 'themeProvider'],
@@ -392,4 +391,24 @@ return [
     ['_controllerModule', 'Magento\Framework\App\Request\Http', 'controllerModule'],
     ['_aliases', 'Magento\Framework\App\Request\Http', 'Magento\Framework\HTTP\PhpEnvironment\Request::aliases'],
     ['_route', 'Magento\Framework\App\Request\Http', 'route'],
+    ['_localeLists', 'Magento\Backend\Block\Dashboard\Graph'],
+    ['backendSession', 'Magento\Backend\Model\Observer'],
+    ['_locale', 'Magento\CurrencySymbol\Model\System\Currencysymbol', 'localeResolver'],
+    ['_localeLists', 'Magento\Dhl\Model\Resource\Setup', 'localeResolver'],
+    ['_locale', 'Magento\Directory\Block\Currency', 'localeResolver'],
+    ['_locale', 'Magento\GoogleAdwords\Model\Config\Source\Language'],
+    ['_localeLists', 'Magento\Payment\Model\Config', 'localeResolver'],
+    ['zendLocale', 'Magento\Setup\Model\Lists', 'localeResolver'],
+    ['_locale', 'Magento\Framework\Data\Form\Filter\Date', 'localeResolver'],
+    ['_locale', 'Magento\Framework\Locale\Lists', 'localeResolver'],
+    ['_defaultLocale', 'Magento\Framework\Locale\Resolver', 'defaultLocale'],
+    ['_scopeType', 'Magento\Framework\Locale\Resolver', 'scopeType'],
+    ['_locale', 'Magento\Framework\Locale\Resolver', 'locale'],
+    ['_localeCode', 'Magento\Framework\Locale\Resolver', 'locale'],
+    ['_scopeConfig', 'Magento\Framework\Locale\Resolver', 'scopeConfig'],
+    ['_cache', 'Magento\Framework\Locale\Resolver'],
+    ['_localeFactory', 'Magento\Framework\Locale\Resolver'],
+    ['_emulatedLocales', 'Magento\Framework\Locale\Resolver', 'emulatedLocales'],
+    ['_collectionAttributes', 'Magento\Eav\Model\Config'],
+    ['_attributeFactory', '\Magento\Customer\Model\Customer'],
 ];
diff --git a/dev/tools/Magento/Tools/View/Deployer.php b/dev/tools/Magento/Tools/View/Deployer.php
index d53dffac074590daeff91d8ef59238d359f0bb05..fafd45319ff081370c89c805a89bcc870ca235b0 100644
--- a/dev/tools/Magento/Tools/View/Deployer.php
+++ b/dev/tools/Magento/Tools/View/Deployer.php
@@ -125,7 +125,7 @@ class Deployer
             $this->count++;
         }
         $this->logger->logMessage("\nSuccessful: {$this->count} files modified\n---\n");
-        $version = $this->dateTime->toTimestamp(true);
+        $version = (new \DateTime())->getTimestamp();
         $this->logger->logMessage("New version of deployed files: {$version}");
         if (!$this->isDryRun) {
             $this->versionStorage->save($version);
diff --git a/dev/tools/Magento/Tools/View/deploy.php b/dev/tools/Magento/Tools/View/deploy.php
index a68a977243964261d716a16e629bb126f5f8aadb..765ac7e4acaddb0e106bfa98f56e8eb96f11ddf3 100644
--- a/dev/tools/Magento/Tools/View/deploy.php
+++ b/dev/tools/Magento/Tools/View/deploy.php
@@ -16,10 +16,7 @@ $options = getopt('', ['langs::', 'dry-run', 'verbose::', 'help']);
 define('USAGE', "USAGE:\n\tphp -f {$baseName} -- [--langs=en_US,de_DE,...] [--verbose=0|1] [--dry-run] [--help]\n");
 require __DIR__ . '/../../../../../app/bootstrap.php';
 
-AutoloaderRegistry::getAutoloader()->addPsr4(
-    'Magento\\',
-    [BP . '/dev/tests/static/framework/Magento/', realpath(__DIR__ . '/../../../Magento/')]
-);
+AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', [BP . '/tools/Magento/']);
 
 // parse all options
 if (isset($options['help'])) {
@@ -42,26 +39,31 @@ if (isset($options['verbose'])) {
     $verbosity = 0 === (int)$options['verbose'] ? \Magento\Tools\View\Deployer\Log::SILENT
         : \Magento\Tools\View\Deployer\Log::ERROR | \Magento\Tools\View\Deployer\Log::DEBUG;
 }
+$logger = new \Magento\Tools\View\Deployer\Log($verbosity);
 
-// run the deployment logic
-$filesUtil = new \Magento\Framework\App\Utility\Files(BP);
-$omFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, []);
-$objectManager = $omFactory->create(
-    [\Magento\Framework\App\State::PARAM_MODE => \Magento\Framework\App\State::MODE_DEFAULT]
-);
+try {
+    // run the deployment logic
+    $filesUtil = new \Magento\Framework\Test\Utility\Files(BP);
+    $omFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, []);
+    $objectManager = $omFactory->create(
+        [\Magento\Framework\App\State::PARAM_MODE => \Magento\Framework\App\State::MODE_DEFAULT]
+    );
 
-/** @var \Magento\Framework\App\DeploymentConfig $deploymentConfig */
-$deploymentConfig = $objectManager->get('Magento\Framework\App\DeploymentConfig');
-$isAppInstalled = $deploymentConfig->isAvailable();
-if (!$isAppInstalled) {
-    throw new \Exception('Please install the Magento application before running this process.');
-}
+    /** @var \Magento\Framework\App\DeploymentConfig $deploymentConfig */
+    $deploymentConfig = $objectManager->get('Magento\Framework\App\DeploymentConfig');
+    $isAppInstalled = $deploymentConfig->isAvailable();
+    if (!$isAppInstalled) {
+        throw new \Exception('You need to install the Magento application before running this utility.');
+    }
 
-$logger = new \Magento\Tools\View\Deployer\Log($verbosity);
-/** @var \Magento\Tools\View\Deployer $deployer */
-$deployer = $objectManager->create(
-    'Magento\Tools\View\Deployer',
-    ['filesUtil' => $filesUtil, 'logger' => $logger, 'isDryRun' => $isDryRun]
-);
-$deployer->deploy($omFactory, $langs);
-exit(0);
+    /** @var \Magento\Tools\View\Deployer $deployer */
+    $deployer = $objectManager->create(
+        'Magento\Tools\View\Deployer',
+        ['filesUtil' => $filesUtil, 'logger' => $logger, 'isDryRun' => $isDryRun]
+    );
+    $deployer->deploy($omFactory, $langs);
+} catch (\Exception $e) {
+    $logger->logError($e->getMessage());
+    $logger->logDebug($e->getTraceAsString());
+    exit(1);
+}
diff --git a/dev/tools/grunt/configs/less.js b/dev/tools/grunt/configs/less.js
index 6bad082a1faf2ae34c9471244be4c0e64e9c3f37..c6ab91e52865c2d63b0b81756ef8f622eb4cf475 100644
--- a/dev/tools/grunt/configs/less.js
+++ b/dev/tools/grunt/configs/less.js
@@ -21,6 +21,11 @@ module.exports = {
     backend: {
         files: combo.lessFiles('backend')
     },
+    override: {
+        files: {
+            '<%= combo.autopath("backend","pub") %>css/styles-migration.css': '<%= combo.autopath("backend","pub") %>css/styles-migration.less'
+        }
+    },
     blank: {
         files: combo.lessFiles('blank')
     },
diff --git a/dev/tools/grunt/configs/replace.js b/dev/tools/grunt/configs/replace.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc45defaecc82658507f880ac90e553ef03a4398
--- /dev/null
+++ b/dev/tools/grunt/configs/replace.js
@@ -0,0 +1,23 @@
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+'use strict';
+
+/**
+ * Replace task for backend migration
+ */
+module.exports = {
+    example: {
+        src: ['<%= combo.autopath("backend","pub") %>/css/styles.css'], // source files array (supports minimatch)
+        dest: '<%= combo.autopath("backend","pub") %>/css/override.less', // destination directory or file
+        replacements: [{
+            from: /:(.*calc.*);/g, // regex replacement ('Fooo' to 'Mooo')
+            to: ': ~"$1";'
+        }, {
+            from: /\/\*# sourc.*/g, // regex replacement ('Fooo' to 'Mooo')
+            to: ''
+        }]
+    }
+};
diff --git a/dev/tools/grunt/configs/theme.js b/dev/tools/grunt/configs/theme.js
index 98a1f988d05fea27a4701ffa8d1bd653c34209bb..b01f58d499464036ca4dba94c358a224bd9dd334 100644
--- a/dev/tools/grunt/configs/theme.js
+++ b/dev/tools/grunt/configs/theme.js
@@ -34,8 +34,7 @@ module.exports = {
         files: [
             'css/styles-old',
             'css/styles',
-            'css/pages',
-            'css/admin'
+            'css/styles-migration'
         ]
     }
 };
diff --git a/dev/tools/grunt/configs/watch.json b/dev/tools/grunt/configs/watch.json
index 8de170b13dc36027441944e6f9c73fe5f90f92ec..39792f545ae4368c2950618e1ae4a3a355caa3bf 100644
--- a/dev/tools/grunt/configs/watch.json
+++ b/dev/tools/grunt/configs/watch.json
@@ -1,10 +1,4 @@
 {
-    "backend": {
-        "files": [
-            "<%= combo.autopath(\"backend\",\"pub\") %>/**/*.less"
-        ],
-        "tasks": "less:backend"
-    },
     "blank": {
         "files": [
             "<%= combo.autopath(\"blank\",\"pub\") %>/**/*.less"
@@ -20,5 +14,20 @@
     "setup": {
         "files": "<%= path.less.setup %>/**/*.less",
         "tasks": "less:setup"
+    },
+    "backendCompile": {
+        "files": [
+            "<%= combo.autopath(\"backend\",\"pub\") %>/**/*.less"
+        ],
+        "tasks": "less:backend"
+    },
+    "backendReplace": {
+        "files": [
+            "<%= combo.autopath(\"backend\",\"pub\") %>/css/styles.css"
+        ],
+        "tasks": [
+            "replace:example",
+            "less:override"
+        ]
     }
-}
\ No newline at end of file
+}
diff --git a/lib/internal/Magento/Framework/App/StaticResource.php b/lib/internal/Magento/Framework/App/StaticResource.php
index 45fe01dac839dc28c47816a70c27a085eb53fd86..a4df94fc2eafdf67458801a82ac574f721a7f3c9 100644
--- a/lib/internal/Magento/Framework/App/StaticResource.php
+++ b/lib/internal/Magento/Framework/App/StaticResource.php
@@ -99,6 +99,8 @@ class StaticResource implements \Magento\Framework\AppInterface
      */
     public function launch()
     {
+        // disabling profiling when retrieving static resource
+        \Magento\Framework\Profiler::reset();
         $appMode = $this->state->getMode();
         if ($appMode == \Magento\Framework\App\State::MODE_PRODUCTION) {
             $this->response->setHttpResponseCode(404);
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/View/Deployment/VersionTest.php b/lib/internal/Magento/Framework/App/Test/Unit/View/Deployment/VersionTest.php
index 7156b798695de0bf2418b8aef6d2cbb3dfbd9ad6..94a8dcbcb22a93738bba019ae1e4c9d4e168cbe6 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/View/Deployment/VersionTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/View/Deployment/VersionTest.php
@@ -26,17 +26,11 @@ class VersionTest extends \PHPUnit_Framework_TestCase
      */
     private $versionStorage;
 
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime|\PHPUnit_Framework_MockObject_MockObject
-     */
-    private $dateTime;
-
     protected function setUp()
     {
         $this->appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
         $this->versionStorage = $this->getMock('Magento\Framework\App\View\Deployment\Version\StorageInterface');
-        $this->dateTime = $this->getMock('Magento\Framework\Stdlib\DateTime');
-        $this->object = new Version($this->appState, $this->versionStorage, $this->dateTime);
+        $this->object = new Version($this->appState, $this->versionStorage);
     }
 
     public function testGetValueDeveloperMode()
@@ -46,8 +40,7 @@ class VersionTest extends \PHPUnit_Framework_TestCase
             ->method('getMode')
             ->will($this->returnValue(\Magento\Framework\App\State::MODE_DEVELOPER));
         $this->versionStorage->expects($this->never())->method($this->anything());
-        $this->dateTime->expects($this->once())->method('toTimestamp')->will($this->returnValue('123'));
-        $this->assertEquals('123', $this->object->getValue());
+        $this->assertEquals(time(), $this->object->getValue());
         $this->object->getValue(); // Ensure computation occurs only once and result is cached in memory
     }
 
@@ -63,7 +56,6 @@ class VersionTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($appMode));
         $this->versionStorage->expects($this->once())->method('load')->will($this->returnValue('123'));
         $this->versionStorage->expects($this->never())->method('save');
-        $this->dateTime->expects($this->never())->method('toTimestamp');
         $this->assertEquals('123', $this->object->getValue());
         $this->object->getValue(); // Ensure caching in memory
     }
@@ -88,9 +80,8 @@ class VersionTest extends \PHPUnit_Framework_TestCase
             ->expects($this->once())
             ->method('load')
             ->will($this->throwException($storageException));
-        $this->dateTime->expects($this->once())->method('toTimestamp')->will($this->returnValue('123'));
-        $this->versionStorage->expects($this->once())->method('save')->with('123');
-        $this->assertEquals('123', $this->object->getValue());
+        $this->versionStorage->expects($this->once())->method('save')->with(time());
+        $this->assertEquals(time(), $this->object->getValue());
         $this->object->getValue(); // Ensure caching in memory
     }
 }
diff --git a/lib/internal/Magento/Framework/App/View/Deployment/Version.php b/lib/internal/Magento/Framework/App/View/Deployment/Version.php
index 6e93bf046ee16ed25858ba51f2b0e7a21155626e..5220021fcdb19341dd6996aca8290c9682c7a154 100644
--- a/lib/internal/Magento/Framework/App/View/Deployment/Version.php
+++ b/lib/internal/Magento/Framework/App/View/Deployment/Version.php
@@ -21,9 +21,6 @@ class Version
      */
     private $versionStorage;
 
-    /** @var \Magento\Framework\Stdlib\DateTime */
-    private $dateTime;
-
     /**
      * @var string
      */
@@ -32,16 +29,13 @@ class Version
     /**
      * @param \Magento\Framework\App\State $appState
      * @param Version\StorageInterface $versionStorage
-     * @param \Magento\Framework\Stdlib\DateTime $dateTime
      */
     public function __construct(
         \Magento\Framework\App\State $appState,
-        \Magento\Framework\App\View\Deployment\Version\StorageInterface $versionStorage,
-        \Magento\Framework\Stdlib\DateTime $dateTime
+        \Magento\Framework\App\View\Deployment\Version\StorageInterface $versionStorage
     ) {
         $this->appState = $appState;
         $this->versionStorage = $versionStorage;
-        $this->dateTime = $dateTime;
     }
 
     /**
@@ -70,13 +64,13 @@ class Version
                 try {
                     $result = $this->versionStorage->load();
                 } catch (\UnexpectedValueException $e) {
-                    $result = $this->dateTime->toTimestamp(true);
+                    $result = (new \DateTime())->getTimestamp();
                     $this->versionStorage->save($result);
                 }
                 break;
 
             case \Magento\Framework\App\State::MODE_DEVELOPER:
-                $result = $this->dateTime->toTimestamp(true);
+                $result = (new \DateTime())->getTimestamp();
                 break;
 
             default:
diff --git a/lib/internal/Magento/Framework/Cache/FrontendInterface.php b/lib/internal/Magento/Framework/Cache/FrontendInterface.php
index 6d4eb0368bca9f1efbe876ee051c97bb792677ed..ccc69600622a7bb240ab28acb40b935e9f79c93f 100644
--- a/lib/internal/Magento/Framework/Cache/FrontendInterface.php
+++ b/lib/internal/Magento/Framework/Cache/FrontendInterface.php
@@ -63,7 +63,7 @@ interface FrontendInterface
     public function getBackend();
 
     /**
-     * Retrieve frontend instance compatible with \Zend_Locale_Data::setCache() to be used as a workaround
+     * Retrieve frontend instance compatible with Zend Locale Data setCache() to be used as a workaround
      *
      * @return \Zend_Cache_Core
      */
diff --git a/lib/internal/Magento/Framework/Cache/Test/Unit/Frontend/Decorator/BareTest.php b/lib/internal/Magento/Framework/Cache/Test/Unit/Frontend/Decorator/BareTest.php
index 2ce8b438c03259ebab16b3f65be5696a072f3f2a..74af6064ceebc6cf6b4cf23be5f085f78c166ceb 100644
--- a/lib/internal/Magento/Framework/Cache/Test/Unit/Frontend/Decorator/BareTest.php
+++ b/lib/internal/Magento/Framework/Cache/Test/Unit/Frontend/Decorator/BareTest.php
@@ -35,7 +35,7 @@ class BareTest extends \PHPUnit_Framework_TestCase
             ['remove', ['record_id'], true],
             ['clean', [\Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, ['tag']], true],
             ['getBackend', [], $this->getMock('Zend_Cache_Backend')],
-            ['getLowLevelFrontend', [], $this->getMock('Zend_Cache_Core')]
+            ['getLowLevelFrontend', [], $this->getMock('Zend_Cache_Core')],
         ];
     }
 }
diff --git a/lib/internal/Magento/Framework/CurrencyInterface.php b/lib/internal/Magento/Framework/CurrencyInterface.php
index c24e91713c7f5da821f93f218b5e7be65d45457b..d9b211eb6fd9c43c8c45e743a2472878c6595996 100644
--- a/lib/internal/Magento/Framework/CurrencyInterface.php
+++ b/lib/internal/Magento/Framework/CurrencyInterface.php
@@ -32,7 +32,7 @@ interface CurrencyInterface
      * when no symbol is available it returns the currency shortname (f.e. FIM for Finnian Mark)
      *
      * @param  string             $currency (Optional) Currency name
-     * @param  string|\Magento\Framework\Locale $locale   (Optional) Locale to display informations
+     * @param  string $locale   (Optional) Locale to display informations
      * @return string
      */
     public function getSymbol($currency = null, $locale = null);
@@ -41,7 +41,7 @@ interface CurrencyInterface
      * Returns the actual or details of other currency shortnames
      *
      * @param  string             $currency OPTIONAL Currency's name
-     * @param  string|\Magento\Framework\Locale $locale   OPTIONAL The locale
+     * @param  string $locale   OPTIONAL The locale
      * @return string
      */
     public function getShortName($currency = null, $locale = null);
@@ -50,7 +50,7 @@ interface CurrencyInterface
      * Returns the actual or details of other currency names
      *
      * @param  string             $currency (Optional) Currency's short name
-     * @param  string|\Magento\Framework\Locale $locale   (Optional) The locale
+     * @param  string $locale   (Optional) The locale
      * @return string
      */
     public function getName($currency = null, $locale = null);
@@ -123,7 +123,7 @@ interface CurrencyInterface
      * Example: 'de_XX' will be set to 'de' because 'de_XX' does not exist
      * 'xx_YY' will be set to 'root' because 'xx' does not exist
      *
-     * @param  string|\Magento\Framework\Locale $locale (Optional) Locale for parsing input
+     * @param  string $locale (Optional) Locale for parsing input
      * @throws \Zend_Currency_Exception When the given locale does not exist
      * @return $this
      */
@@ -243,7 +243,7 @@ interface CurrencyInterface
     /**
      * Sets a new exchange service
      *
-     * @param string|\Magento\Framework\CurrencyInterface_CurrencyInterface $service Service class
+     * @param string|\Magento\Framework\Locale\CurrencyInterface $service Service class
      * @return \Magento\Framework\CurrencyInterface
      */
     public function setService($service);
diff --git a/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php b/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
index 2c2014ab1f6121ba83b98c7f3a3cb8c73e997267..84ab04e316702c3f3575d9b6bff71bf5db92aff6 100644
--- a/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
+++ b/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
@@ -666,7 +666,7 @@ interface AdapterInterface
     /**
      * Format Date to internal database date format
      *
-     * @param int|string|\Magento\Framework\Stdlib\DateTime\DateInterface $date
+     * @param int|string|\DateTime $date
      * @param boolean $includeTime
      * @return \Zend_Db_Expr
      */
diff --git a/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php b/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
index c8de592f1e52fafb694b6d561ad471a1162c1e13..64f38d98cfcaca8932ee42ebb185448812f0026d 100644
--- a/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
+++ b/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
@@ -275,7 +275,7 @@ class Mysql extends \Zend_Db_Adapter_Pdo_Mysql implements AdapterInterface
     /**
      * Convert date to DB format
      *
-     * @param int|string|\Magento\Framework\Stdlib\DateTime\DateInterface $date
+     * @param int|string|\DateTime $date
      * @return \Zend_Db_Expr
      */
     public function convertDate($date)
@@ -286,7 +286,7 @@ class Mysql extends \Zend_Db_Adapter_Pdo_Mysql implements AdapterInterface
     /**
      * Convert date and time to DB format
      *
-     * @param   int|string|\Magento\Framework\Stdlib\DateTime\DateInterface $datetime
+     * @param   int|string|\DateTime $datetime
      * @return \Zend_Db_Expr
      */
     public function convertDateTime($datetime)
@@ -1337,6 +1337,10 @@ class Mysql extends \Zend_Db_Adapter_Pdo_Mysql implements AdapterInterface
             $value = new \Zend_Db_Expr('NULL');
         }
 
+        if ($value instanceof \DateTimeInterface) {
+            $value = $value->format('Y-m-d H:i:s');
+        }
+
         return parent::quoteInto($text, $value, $type, $count);
     }
 
@@ -2624,7 +2628,7 @@ class Mysql extends \Zend_Db_Adapter_Pdo_Mysql implements AdapterInterface
     /**
      * Format Date to internal database date format
      *
-     * @param int|string|\Magento\Framework\Stdlib\DateTime\DateInterface $date
+     * @param int|string|\DateTime $date
      * @param bool $includeTime
      * @return \Zend_Db_Expr
      */
diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Date.php b/lib/internal/Magento/Framework/Data/Form/Element/Date.php
index 3ee7b9d5f31ca384b6a4411bbc886301a441c36e..c0121b36c626d722aa382a23dcb05ecc4424051e 100644
--- a/lib/internal/Magento/Framework/Data/Form/Element/Date.php
+++ b/lib/internal/Magento/Framework/Data/Form/Element/Date.php
@@ -13,24 +13,32 @@ namespace Magento\Framework\Data\Form\Element;
 
 use Magento\Framework\Escaper;
 use Magento\Framework\Stdlib\DateTime;
+use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
 
 class Date extends AbstractElement
 {
     /**
-     * @var \Magento\Framework\Stdlib\DateTime\Date
+     * @var \DateTime
      */
     protected $_value;
 
+    /**
+     * @var TimezoneInterface
+     */
+    protected $localeDate;
+
     /**
      * @param Factory $factoryElement
      * @param CollectionFactory $factoryCollection
      * @param Escaper $escaper
+     * @param TimezoneInterface $localeDate
      * @param array $data
      */
     public function __construct(
         Factory $factoryElement,
         CollectionFactory $factoryCollection,
         Escaper $escaper,
+        TimezoneInterface $localeDate,
         $data = []
     ) {
         parent::__construct($factoryElement, $factoryCollection, $escaper, $data);
@@ -39,6 +47,7 @@ class Date extends AbstractElement
         if (isset($data['value'])) {
             $this->setValue($data['value']);
         }
+        $this->localeDate = $localeDate;
     }
 
     /**
@@ -60,44 +69,27 @@ class Date extends AbstractElement
 
     /**
      * Set date value
-     * If \Magento\Framework\Stdlib\DateTime\Date instance is provided instead of value, other params will be ignored.
-     * Format and locale must be compatible with \Magento\Framework\Stdlib\DateTime\Date
      *
      * @param mixed $value
-     * @param string $format
-     * @param string $locale
      * @return $this
      */
-    public function setValue($value, $format = null, $locale = null)
+    public function setValue($value)
     {
         if (empty($value)) {
             $this->_value = '';
             return $this;
         }
-        if ($value instanceof \Magento\Framework\Stdlib\DateTime\DateInterface) {
+        if ($value instanceof \DateTimeInterface) {
             $this->_value = $value;
             return $this;
         }
         if (preg_match('/^[0-9]+$/', $value)) {
-            $this->_value = new \Magento\Framework\Stdlib\DateTime\Date($this->_toTimestamp($value));
-            //$this->_value = new \Magento\Framework\Stdlib\DateTime\Date((int)value);
+            $this->_value = (new \DateTime())->setTimestamp($this->_toTimestamp($value));
             return $this;
         }
-        // last check, if input format was set
-        if (null === $format) {
-            $format = DateTime::DATETIME_INTERNAL_FORMAT;
-            if ($this->getInputFormat()) {
-                $format = $this->getInputFormat();
-            }
-        }
-        // last check, if locale was set
-        if (null === $locale) {
-            if (!($locale = $this->getLocale())) {
-                $locale = null;
-            }
-        }
+
         try {
-            $this->_value = new \Magento\Framework\Stdlib\DateTime\Date($value, $format, $locale);
+            $this->_value = new \DateTime($value);
         } catch (\Exception $e) {
             $this->_value = '';
         }
@@ -108,7 +100,7 @@ class Date extends AbstractElement
      * Get date value as string.
      * Format can be specified, or it will be taken from $this->getFormat()
      *
-     * @param string $format (compatible with \Magento\Framework\Stdlib\DateTime\Date
+     * @param string $format (compatible with \DateTime)
      * @return string
      */
     public function getValue($format = null)
@@ -121,13 +113,13 @@ class Date extends AbstractElement
             $format .= ($format && $this->getTimeFormat()) ? ' ' : '';
             $format .= $this->getTimeFormat() ? $this->getTimeFormat() : '';
         }
-        return $this->_value->toString($format);
+        return $this->localeDate->formatDateTime($this->_value, null, null, null, null, $format);
     }
 
     /**
      * Get value instance, if any
      *
-     * @return \Magento\Framework\Stdlib\DateTime\Date
+     * @return \DateTime
      */
     public function getValueInstance()
     {
@@ -140,8 +132,8 @@ class Date extends AbstractElement
     /**
      * Output the input field and assign calendar instance to it.
      * In order to output the date:
-     * - the value must be instantiated (\Magento\Framework\Stdlib\DateTime\Date)
-     * - output format must be set (compatible with \Magento\Framework\Stdlib\DateTime\Date)
+     * - the value must be instantiated (\DateTime)
+     * - output format must be set (compatible with \DateTime)
      *
      * @throws \Exception
      * @return string
diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Time.php b/lib/internal/Magento/Framework/Data/Form/Element/Time.php
index 3fe64c7b21106eb00e3fc2b772a8c63d81b3892f..174c43082d2e207f871e38e5e096e46b01155a4b 100644
--- a/lib/internal/Magento/Framework/Data/Form/Element/Time.php
+++ b/lib/internal/Magento/Framework/Data/Form/Element/Time.php
@@ -68,7 +68,7 @@ class Time extends AbstractElement
         }
 
         $html = '<input type="hidden" id="' . $this->getHtmlId() . '" ' . $this->_getUiId() . '/>';
-        $html .= '<select name="' . $this->getName() . '" style="width:50px" ' . $this->serialize(
+        $html .= '<select name="' . $this->getName() . '" style="width:80px" ' . $this->serialize(
             $this->getHtmlAttributes()
         ) . $this->_getUiId(
             'hour'
@@ -80,7 +80,7 @@ class Time extends AbstractElement
         }
         $html .= '</select>' . "\n";
 
-        $html .= ':&nbsp;<select name="' . $this->getName() . '" style="width:50px" ' . $this->serialize(
+        $html .= ':&nbsp;<select name="' . $this->getName() . '" style="width:80px" ' . $this->serialize(
             $this->getHtmlAttributes()
         ) . $this->_getUiId(
             'minute'
@@ -92,7 +92,7 @@ class Time extends AbstractElement
         }
         $html .= '</select>' . "\n";
 
-        $html .= ':&nbsp;<select name="' . $this->getName() . '" style="width:50px" ' . $this->serialize(
+        $html .= ':&nbsp;<select name="' . $this->getName() . '" style="width:80px" ' . $this->serialize(
             $this->getHtmlAttributes()
         ) . $this->_getUiId(
             'second'
diff --git a/lib/internal/Magento/Framework/Data/Form/Filter/Date.php b/lib/internal/Magento/Framework/Data/Form/Filter/Date.php
index c51e0797c1013bdc57b11877f764f5d4b71d8324..41c7d05c7adbd1bbe5056cef1107b76cfbdb3c41 100644
--- a/lib/internal/Magento/Framework/Data/Form/Filter/Date.php
+++ b/lib/internal/Magento/Framework/Data/Form/Filter/Date.php
@@ -11,6 +11,8 @@
  */
 namespace Magento\Framework\Data\Form\Filter;
 
+use Magento\Framework\Stdlib\DateTime;
+
 class Date implements \Magento\Framework\Data\Form\Filter\FilterInterface
 {
     /**
@@ -23,23 +25,23 @@ class Date implements \Magento\Framework\Data\Form\Filter\FilterInterface
     /**
      * Local
      *
-     * @var \Zend_Locale
+     * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_locale;
+    protected $localeResolver;
 
     /**
      * Initialize filter
      *
-     * @param string $format    \Magento\Framework\Stdlib\DateTime\Date input/output format
-     * @param \Zend_Locale $locale
+     * @param string $format \DateTime input/output format
+     * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      */
-    public function __construct($format = null, $locale = null)
+    public function __construct($format = null, $localeResolver = null)
     {
         if (is_null($format)) {
-            $format = \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT;
+            $format = DateTime::DATE_INTERNAL_FORMAT;
         }
         $this->_dateFormat = $format;
-        $this->_locale = $locale;
+        $this->localeResolver = $localeResolver;
     }
 
     /**
@@ -51,10 +53,10 @@ class Date implements \Magento\Framework\Data\Form\Filter\FilterInterface
     public function inputFilter($value)
     {
         $filterInput = new \Zend_Filter_LocalizedToNormalized(
-            ['date_format' => $this->_dateFormat, 'locale' => $this->_locale]
+            ['date_format' => $this->_dateFormat, 'locale' => $this->localeResolver->getLocale()]
         );
         $filterInternal = new \Zend_Filter_NormalizedToLocalized(
-            ['date_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'locale' => $this->_locale]
+            ['date_format' => DateTime::DATE_INTERNAL_FORMAT, 'locale' => $this->localeResolver->getLocale()]
         );
 
         $value = $filterInput->filter($value);
@@ -71,10 +73,10 @@ class Date implements \Magento\Framework\Data\Form\Filter\FilterInterface
     public function outputFilter($value)
     {
         $filterInput = new \Zend_Filter_LocalizedToNormalized(
-            ['date_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT, 'locale' => $this->_locale]
+            ['date_format' => DateTime::DATE_INTERNAL_FORMAT, 'locale' => $this->localeResolver->getLocale()]
         );
         $filterInternal = new \Zend_Filter_NormalizedToLocalized(
-            ['date_format' => $this->_dateFormat, 'locale' => $this->_locale]
+            ['date_format' => $this->_dateFormat, 'locale' => $this->localeResolver->getLocale()]
         );
 
         $value = $filterInput->filter($value);
diff --git a/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/DateTest.php b/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/DateTest.php
index d7ea652eb90e1eb70be845c1be564816f9319173..b111c94f7623d978674d449d786736af447cb5cd 100644
--- a/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/DateTest.php
+++ b/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/DateTest.php
@@ -33,6 +33,11 @@ class DateTest extends \PHPUnit_Framework_TestCase
      */
     protected $escaperMock;
 
+    /**
+     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $localeDateMock;
+
     protected function setUp()
     {
         $this->factoryMock = $this->getMock('Magento\Framework\Data\Form\Element\Factory', [], [], '', false);
@@ -44,10 +49,18 @@ class DateTest extends \PHPUnit_Framework_TestCase
             false
         );
         $this->escaperMock = $this->getMock('Magento\Framework\Escaper', [], [], '', false);
+        $this->localeDateMock = $this->getMock(
+            '\Magento\Framework\Stdlib\DateTime\TimezoneInterface',
+            [],
+            [],
+            '',
+            false
+        );
         $this->model = new Date(
             $this->factoryMock,
             $this->collectionFactoryMock,
-            $this->escaperMock
+            $this->escaperMock,
+            $this->localeDateMock
         );
     }
 
diff --git a/lib/internal/Magento/Framework/Locale.php b/lib/internal/Magento/Framework/Locale.php
deleted file mode 100644
index 598ddc3d23872bf6c9d554faa6b311b6c60ec151..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Locale.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework;
-
-class Locale extends \Zend_Locale implements \Magento\Framework\LocaleInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($locale = null)
-    {
-        parent::__construct($locale);
-    }
-}
diff --git a/lib/internal/Magento/Framework/Locale/Bundle/CurrencyBundle.php b/lib/internal/Magento/Framework/Locale/Bundle/CurrencyBundle.php
new file mode 100644
index 0000000000000000000000000000000000000000..ba080397b5bce5ac1527ac60b81f31b99d05235f
--- /dev/null
+++ b/lib/internal/Magento/Framework/Locale/Bundle/CurrencyBundle.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Framework\Locale\Bundle;
+
+class CurrencyBundle extends DataBundle
+{
+    /**
+     * @var string
+     */
+    protected $path = 'ICUDATA-curr';
+}
diff --git a/lib/internal/Magento/Framework/Locale/Bundle/DataBundle.php b/lib/internal/Magento/Framework/Locale/Bundle/DataBundle.php
new file mode 100644
index 0000000000000000000000000000000000000000..35d70f78512ad7b11f0f3ae696c2ce2f9fb9c363
--- /dev/null
+++ b/lib/internal/Magento/Framework/Locale/Bundle/DataBundle.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Framework\Locale\Bundle;
+
+class DataBundle
+{
+    /**
+     * @var string
+     */
+    protected $path = 'ICUDATA';
+
+    /**
+     * @var \ResourceBundle[][]
+     */
+    protected static $bundles = [];
+
+    /**
+     * Get resource bundle for the locale
+     *
+     * @param string $locale
+     * @return \ResourceBundle
+     */
+    public function get($locale)
+    {
+        $locale = $this->cleanLocale($locale);
+        $class = get_class($this);
+        if (!isset(static::$bundles[$class][$locale])) {
+            $bundle = new \ResourceBundle($locale, $this->path);
+            if (!$bundle && $this->path != 'ICUDATA') {
+                $bundle = new \ResourceBundle($locale, 'ICUDATA');
+            }
+            static::$bundles[$class][$locale] = $bundle;
+        }
+        return static::$bundles[$class][$locale];
+    }
+
+    /**
+     * Clean locale leaving only language and script
+     *
+     * @param string $locale
+     * @return string
+     */
+    protected function cleanLocale($locale)
+    {
+        $localeParts = \Locale::parseLocale($locale);
+        $cleanLocaleParts = [];
+        if (isset($localeParts['language'])) {
+            $cleanLocaleParts['language'] = $localeParts['language'];
+        }
+        if (isset($localeParts['script'])) {
+            $cleanLocaleParts['script'] = $localeParts['script'];
+        }
+        return \Locale::composeLocale($cleanLocaleParts);
+    }
+}
diff --git a/lib/internal/Magento/Framework/Locale/Bundle/LanguageBundle.php b/lib/internal/Magento/Framework/Locale/Bundle/LanguageBundle.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9a760484fe620f7d9ef0e186eefdc9214b8730a
--- /dev/null
+++ b/lib/internal/Magento/Framework/Locale/Bundle/LanguageBundle.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Framework\Locale\Bundle;
+
+class LanguageBundle extends DataBundle
+{
+    /**
+     * @var string
+     */
+    protected $path = 'ICUDATA-lang';
+}
diff --git a/lib/internal/Magento/Framework/Locale/Bundle/RegionBundle.php b/lib/internal/Magento/Framework/Locale/Bundle/RegionBundle.php
new file mode 100644
index 0000000000000000000000000000000000000000..e3a76b1be4ce8dcad03457b91dfb18f09b7a32c4
--- /dev/null
+++ b/lib/internal/Magento/Framework/Locale/Bundle/RegionBundle.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Framework\Locale\Bundle;
+
+class RegionBundle extends DataBundle
+{
+    /**
+     * @var string
+     */
+    protected $path = 'ICUDATA-region';
+}
diff --git a/lib/internal/Magento/Framework/Locale/Bundle/TimezoneBundle.php b/lib/internal/Magento/Framework/Locale/Bundle/TimezoneBundle.php
new file mode 100644
index 0000000000000000000000000000000000000000..875ebe42ad3a36a5ca9c27f22e324f906a5e1566
--- /dev/null
+++ b/lib/internal/Magento/Framework/Locale/Bundle/TimezoneBundle.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Framework\Locale\Bundle;
+
+class TimezoneBundle extends DataBundle
+{
+    /**
+     * @var string
+     */
+    protected $path = 'ICUDATA-zone';
+}
diff --git a/lib/internal/Magento/Framework/Locale/Config.php b/lib/internal/Magento/Framework/Locale/Config.php
index 93f619f8b5f12ce2c7829b80a82bbff1b0524edf..7f935c0b75413748932c7256532ba5dc07aaa86f 100644
--- a/lib/internal/Magento/Framework/Locale/Config.php
+++ b/lib/internal/Magento/Framework/Locale/Config.php
@@ -19,11 +19,11 @@ class Config implements \Magento\Framework\Locale\ConfigInterface
         'ar_KW', /*Arabic (Kuwait)*/
         'ar_MA', /*Arabic (Morocco)*/
         'ar_SA', /*Arabic (Saudi Arabia)*/
-        'az_AZ', /*Azerbaijani (Azerbaijan)*/
+        'az_Latn_AZ', /*Azerbaijani (Azerbaijan)*/
         'be_BY', /*Belarusian (Belarus)*/
         'bg_BG', /*Bulgarian (Bulgaria)*/
         'bn_BD', /*Bengali (Bangladesh)*/
-        'bs_BA', /*Bosnian (Bosnia)*/
+        'bs_Latn_BA', /*Bosnian (Bosnia)*/
         'ca_ES', /*Catalan (Catalonia)*/
         'cs_CZ', /*Czech (Czech Republic)*/
         'cy_GB', /*Welsh (United Kingdom)*/
@@ -44,7 +44,7 @@ class Config implements \Magento\Framework\Locale\ConfigInterface
         'es_CR', /*Spanish (Costa Rica)*/
         'es_ES', /*Spanish (Spain)*/
         'es_MX', /*Spanish (Mexico)*/
-        'es_EU', /*Basque (Basque)*/
+        'eu_ES', /*Basque (Basque)*/
         'es_PE', /*Spanish (Peru)*/
         'et_EE', /*Estonian (Estonia)*/
         'fa_IR', /*Persian (Iran)*/
@@ -69,8 +69,8 @@ class Config implements \Magento\Framework\Locale\ConfigInterface
         'lt_LT', /*Lithuanian (Lithuania)*/
         'lv_LV', /*Latvian (Latvia)*/
         'mk_MK', /*Macedonian (Macedonia)*/
-        'mn_MN', /*Mongolian (Mongolia)*/
-        'ms_MY', /*Malaysian (Malaysia)*/
+        'mn_Cyrl_MN', /*Mongolian (Mongolia)*/
+        'ms_Latn_MY', /*Malaysian (Malaysia)*/
         'nl_NL', /*Dutch (Netherlands)*/
         'nb_NO', /*Norwegian BokmГ_l (Norway)*/
         'nn_NO', /*Norwegian Nynorsk (Norway)*/
@@ -82,16 +82,16 @@ class Config implements \Magento\Framework\Locale\ConfigInterface
         'sk_SK', /*Slovak (Slovakia)*/
         'sl_SI', /*Slovenian (Slovenia)*/
         'sq_AL', /*Albanian (Albania)*/
-        'sr_RS', /*Serbian (Serbia)*/
+        'sr_Cyrl_RS', /*Serbian (Serbia)*/
         'sv_SE', /*Swedish (Sweden)*/
         'sw_KE', /*Swahili (Kenya)*/
         'th_TH', /*Thai (Thailand)*/
         'tr_TR', /*Turkish (Turkey)*/
         'uk_UA', /*Ukrainian (Ukraine)*/
         'vi_VN', /*Vietnamese (Vietnam)*/
-        'zh_CN', /*Chinese (China)*/
-        'zh_HK', /*Chinese (Hong Kong SAR)*/
-        'zh_TW', /*Chinese (Taiwan)*/
+        'zh_Hans_CN', /*Chinese (China)*/
+        'zh_Hant_HK', /*Chinese (Hong Kong SAR)*/
+        'zh_Hant_TW', /*Chinese (Taiwan)*/
         'es_CL', /*Spanich (Chile)*/
         'lo_LA', /*Laotian*/
         'es_VE', /*Spanish (Venezuela)*/
diff --git a/lib/internal/Magento/Framework/Locale/Currency.php b/lib/internal/Magento/Framework/Locale/Currency.php
index 475c84831757212a62ac0784d19de408f1a93a45..5d3c5a9ec9b7e961d870e4a458bc4b3fa69b5b89 100644
--- a/lib/internal/Magento/Framework/Locale/Currency.php
+++ b/lib/internal/Magento/Framework/Locale/Currency.php
@@ -63,7 +63,7 @@ class Currency implements \Magento\Framework\Locale\CurrencyInterface
     public function getCurrency($currency)
     {
         \Magento\Framework\Profiler::start('locale/currency');
-        if (!isset(self::$_currencyCache[$this->_localeResolver->getLocaleCode()][$currency])) {
+        if (!isset(self::$_currencyCache[$this->_localeResolver->getLocale()][$currency])) {
             $options = [];
             try {
                 $currencyObject = $this->_currencyFactory->create(
@@ -85,9 +85,9 @@ class Currency implements \Magento\Framework\Locale\CurrencyInterface
             );
 
             $currencyObject->setFormat($options->toArray());
-            self::$_currencyCache[$this->_localeResolver->getLocaleCode()][$currency] = $currencyObject;
+            self::$_currencyCache[$this->_localeResolver->getLocale()][$currency] = $currencyObject;
         }
         \Magento\Framework\Profiler::stop('locale/currency');
-        return self::$_currencyCache[$this->_localeResolver->getLocaleCode()][$currency];
+        return self::$_currencyCache[$this->_localeResolver->getLocale()][$currency];
     }
 }
diff --git a/lib/internal/Magento/Framework/Locale/Format.php b/lib/internal/Magento/Framework/Locale/Format.php
index 0e19bb4039d361074c2377fb0d3ec9062fefa741..5e167880ecb8bdb6b2d1892a2efdfb7f75826832 100644
--- a/lib/internal/Magento/Framework/Locale/Format.php
+++ b/lib/internal/Magento/Framework/Locale/Format.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Framework\Locale;
 
+use Magento\Framework\Locale\Bundle\DataBundle;
+
 class Format implements \Magento\Framework\Locale\FormatInterface
 {
     /**
@@ -83,8 +85,9 @@ class Format implements \Magento\Framework\Locale\FormatInterface
      */
     public function getPriceFormat()
     {
-        $format = \Zend_Locale_Data::getContent($this->_localeResolver->getLocaleCode(), 'currencynumber');
-        $symbols = \Zend_Locale_Data::getList($this->_localeResolver->getLocaleCode(), 'symbols');
+        $numberElements = (new DataBundle())->get($this->_localeResolver->getLocale())['NumberElements'];
+        $format = $numberElements['latn']['patterns']['currencyFormat'];
+        $symbols = $numberElements['latn']['symbols'];
 
         $pos = strpos($format, ';');
         if ($pos !== false) {
diff --git a/lib/internal/Magento/Framework/Locale/Lists.php b/lib/internal/Magento/Framework/Locale/Lists.php
index 168355d54c45dd75d54bc0f701d90155b6639026..dfe3a005a922ce333a9ac6016e7cb826ac724877 100644
--- a/lib/internal/Magento/Framework/Locale/Lists.php
+++ b/lib/internal/Magento/Framework/Locale/Lists.php
@@ -8,13 +8,13 @@
 
 namespace Magento\Framework\Locale;
 
-class Lists implements \Magento\Framework\Locale\ListsInterface
-{
-    /**
-     * @var \Magento\Framework\App\ScopeResolverInterface
-     */
-    protected $_scopeResolver;
+use Magento\Framework\Locale\Bundle\CurrencyBundle;
+use Magento\Framework\Locale\Bundle\DataBundle;
+use Magento\Framework\Locale\Bundle\LanguageBundle;
+use Magento\Framework\Locale\Bundle\RegionBundle;
 
+class Lists implements ListsInterface
+{
     /**
      * @var \Magento\Framework\Locale\ConfigInterface
      */
@@ -23,25 +23,21 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
     /**
      * @var \Magento\Framework\Locale\ResolverInterface
      */
-    protected $_localeResolver;
+    protected $localeResolver;
 
     /**
-     * @param \Magento\Framework\App\ScopeResolverInterface $scopeResolver
-     * @param \Magento\Framework\Locale\ConfigInterface $config
      * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      * @param string $locale
      */
     public function __construct(
-        \Magento\Framework\App\ScopeResolverInterface $scopeResolver,
         \Magento\Framework\Locale\ConfigInterface $config,
         \Magento\Framework\Locale\ResolverInterface $localeResolver,
         $locale = null
     ) {
-        $this->_scopeResolver = $scopeResolver;
         $this->_config = $config;
-        $this->_localeResolver = $localeResolver;
+        $this->localeResolver = $localeResolver;
         if ($locale !== null) {
-            $this->_localeResolver->setLocale($locale);
+            $this->localeResolver->setLocale($locale);
         }
     }
 
@@ -70,57 +66,32 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
      */
     protected function _getOptionLocales($translatedName = false)
     {
-        $options = [];
-        $locales = $this->_localeResolver->getLocale()->getLocaleList();
-        $languages = $this->_localeResolver->getLocale()->getTranslationList(
-            'language',
-            $this->_localeResolver->getLocale()
-        );
-        $countries = $this->_localeResolver->getLocale()->getTranslationList(
-            'territory',
-            $this->_localeResolver->getLocale(),
-            2
-        );
-
-        //Zend locale codes for internal allowed locale codes
-        $allowed = $this->_config->getAllowedLocales();
-        $allowedAliases = [];
-        foreach ($allowed as $code) {
-            $allowedAliases[\Zend_Locale::getAlias($code)] = $code;
-        }
+        $currentLocale = $this->localeResolver->getLocale();
+        $locales = \ResourceBundle::getLocales(null);
+        $languages = (new LanguageBundle())->get($currentLocale)['Languages'];
+        $countries = (new RegionBundle())->get($currentLocale)['Countries'];
 
-        //Process translating to internal locale codes from Zend locale codes
-        $processedLocales = [];
-        foreach ($locales as $code => $active) {
-            if (array_key_exists($code, $allowedAliases)) {
-                $processedLocales[$allowedAliases[$code]] = $active;
-            } else {
-                $processedLocales[$code] = $active;
+        $options = [];
+        $allowedLocales = $this->_config->getAllowedLocales();
+        foreach ($locales as $locale) {
+            if (!in_array($locale, $allowedLocales)) {
+                continue;
             }
-        }
-
-        foreach (array_keys($processedLocales) as $code) {
-            if (strstr($code, '_')) {
-                if (!in_array($code, $allowed)) {
-                    continue;
-                }
-                $data = explode('_', $code);
-                if (!isset($languages[$data[0]]) || !isset($countries[$data[1]])) {
-                    continue;
-                }
-                if ($translatedName) {
-                    $label = ucwords(
-                        $this->_localeResolver->getLocale()->getTranslation($data[0], 'language', $code)
-                    ) . ' (' . $this->_localeResolver->getLocale()->getTranslation(
-                        $data[1],
-                        'country',
-                        $code
-                    ) . ') / ' . $languages[$data[0]] . ' (' . $countries[$data[1]] . ')';
-                } else {
-                    $label = $languages[$data[0]] . ' (' . $countries[$data[1]] . ')';
-                }
-                $options[] = ['value' => $code, 'label' => $label];
+            $language = \Locale::getPrimaryLanguage($locale);
+            $country = \Locale::getRegion($locale);
+            if (!$languages[$language] || !$countries[$country]) {
+                continue;
+            }
+            if ($translatedName) {
+                $label = ucwords(\Locale::getDisplayLanguage($locale, $locale))
+                    . ' (' . \Locale::getDisplayRegion($locale, $locale) . ') / '
+                    . $languages[$language]
+                    . ' (' . $countries[$country] . ')';
+            } else {
+                $label = $languages[$language]
+                    . ' (' . $countries[$country] . ')';
             }
+            $options[] = ['value' => $locale, 'label' => $label];
         }
         return $this->_sortOptionArray($options);
     }
@@ -131,11 +102,18 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
     public function getOptionTimezones()
     {
         $options = [];
-        $zones = $this->getTranslationList('timezonetowindows');
-        foreach ($zones as $windowsTimezones => $isoTimezones) {
-            $windowsTimezones = trim($windowsTimezones);
-            $options[] = ['label' => empty($windowsTimezones) ? $isoTimezones : $windowsTimezones . ' (' . $isoTimezones . ')', 'value' => $isoTimezones];
-        }
+        $locale = $this->localeResolver->getLocale();
+        $zones = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC);
+        foreach ($zones as $code) {
+            $options[] = [
+                'label' => \IntlTimeZone::createTimeZone($code)->getDisplayName(
+                        false,
+                        \IntlTimeZone::DISPLAY_LONG,
+                        $locale
+                    ) . ' (' . $code . ')',
+                'value' => $code
+            ];
+    }
         return $this->_sortOptionArray($options);
     }
 
@@ -145,9 +123,12 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
     public function getOptionWeekdays($preserveCodes = false, $ucFirstCode = false)
     {
         $options = [];
-        $days = $this->getTranslationList('days');
-        $days = $preserveCodes ? $days['format']['wide'] : array_values($days['format']['wide']);
+        $days = (new DataBundle())->get(
+            $this->localeResolver->getLocale()
+        )['calendar']['gregorian']['dayNames']['format']['wide'];
+        $englishDays = (new DataBundle())->get('en_US')['calendar']['gregorian']['dayNames']['format']['abbreviated'];
         foreach ($days as $code => $name) {
+            $code = $preserveCodes ? $englishDays[$code] : $code;
             $options[] = ['label' => $name, 'value' => $ucFirstCode ? ucfirst($code) : $code];
         }
         return $options;
@@ -159,8 +140,7 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
     public function getOptionCountries()
     {
         $options = [];
-        $countries = $this->getCountryTranslationList();
-
+        $countries = (new RegionBundle())->get($this->localeResolver->getLocale())['Countries'];
         foreach ($countries as $code => $name) {
             $options[] = ['label' => $name, 'value' => $code];
         }
@@ -172,16 +152,14 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
      */
     public function getOptionCurrencies()
     {
-        $currencies = $this->getTranslationList('currencytoname');
+        $currencies = (new CurrencyBundle())->get($this->localeResolver->getLocale())['Currencies'];
         $options = [];
         $allowed = $this->_config->getAllowedCurrencies();
-
-        foreach ($currencies as $name => $code) {
+        foreach ($currencies as $code => $data) {
             if (!in_array($code, $allowed)) {
                 continue;
             }
-
-            $options[] = ['label' => $name, 'value' => $code];
+            $options[] = ['label' => $data[1], 'value' => $code];
         }
         return $this->_sortOptionArray($options);
     }
@@ -191,10 +169,10 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
      */
     public function getOptionAllCurrencies()
     {
-        $currencies = $this->getTranslationList('currencytoname');
+        $currencies = (new CurrencyBundle())->get($this->localeResolver->getLocale())['Currencies'];
         $options = [];
-        foreach ($currencies as $name => $code) {
-            $options[] = ['label' => $name, 'value' => $code];
+        foreach ($currencies as $code => $data) {
+            $options[] = ['label' => $data[1], 'value' => $code];
         }
         return $this->_sortOptionArray($options);
     }
@@ -217,33 +195,11 @@ class Lists implements \Magento\Framework\Locale\ListsInterface
         return $option;
     }
 
-    /**
-     * @inheritdoc
-     */
-    public function getTranslationList($path = null, $value = null)
-    {
-        return $this->_localeResolver->getLocale()->getTranslationList(
-            $path,
-            $this->_localeResolver->getLocale(),
-            $value
-        );
-    }
-
     /**
      * @inheritdoc
      */
     public function getCountryTranslation($value)
     {
-        $locale = $this->_localeResolver->getLocale();
-        return $locale->getTranslation($value, 'country', $locale);
-    }
-
-    /**
-     * @inheritdoc
-     */
-    public function getCountryTranslationList()
-    {
-        $locale = $this->_localeResolver->getLocale();
-        return $locale->getTranslationList('territory', $locale, 2);
+        return (new RegionBundle())->get($this->localeResolver->getLocale())['Countries'][$value];
     }
 }
diff --git a/lib/internal/Magento/Framework/Locale/ListsInterface.php b/lib/internal/Magento/Framework/Locale/ListsInterface.php
index 8e5be89f79c3b53934e2b571ea76dea40995f339..881033567d8811e4bf9ac319308cc58fe7e2353b 100644
--- a/lib/internal/Magento/Framework/Locale/ListsInterface.php
+++ b/lib/internal/Magento/Framework/Locale/ListsInterface.php
@@ -59,29 +59,11 @@ interface ListsInterface
      */
     public function getOptionAllCurrencies();
 
-    /**
-     * Returns localized informations as array, supported are several
-     * types of information.
-     * For detailed information about the types look into the documentation
-     *
-     * @param  string $path (Optional) Type of information to return
-     * @param  string $value (Optional) Value for detail list
-     * @return array Array with the wished information in the given language
-     */
-    public function getTranslationList($path = null, $value = null);
-
     /**
      * Returns the localized country name
      *
      * @param  $value string Name to get detailed information about
-     * @return array
+     * @return string
      */
     public function getCountryTranslation($value);
-
-    /**
-     * Returns an array with the name of all countries translated to the given language
-     *
-     * @return array
-     */
-    public function getCountryTranslationList();
 }
diff --git a/lib/internal/Magento/Framework/Locale/Resolver.php b/lib/internal/Magento/Framework/Locale/Resolver.php
index 8ced31491159204674ba2752e8f3cd0d9e68ca5c..b78be470920ec0638dd4a8a786d13b97470277f3 100644
--- a/lib/internal/Magento/Framework/Locale/Resolver.php
+++ b/lib/internal/Magento/Framework/Locale/Resolver.php
@@ -5,79 +5,58 @@
  */
 namespace Magento\Framework\Locale;
 
-class Resolver implements \Magento\Framework\Locale\ResolverInterface
+use Magento\Framework\App\Config\ScopeConfigInterface;
+
+class Resolver implements ResolverInterface
 {
     /**
      * Default locale code
      *
      * @var string
      */
-    protected $_defaultLocale;
+    protected $defaultLocale;
 
     /**
      * Scope type
      *
      * @var string
      */
-    protected $_scopeType;
-
-    /**
-     * Locale object
-     *
-     * @var \Magento\Framework\LocaleInterface
-     */
-    protected $_locale;
+    protected $scopeType;
 
     /**
      * Locale code
      *
      * @var string
      */
-    protected $_localeCode;
+    protected $locale;
 
     /**
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
+     * @var ScopeConfigInterface
      */
-    protected $_scopeConfig;
-
-    /**
-     * @var \Magento\Framework\App\CacheInterface
-     */
-    protected $_cache;
+    protected $scopeConfig;
 
     /**
      * Emulated locales stack
      *
      * @var array
      */
-    protected $_emulatedLocales = [];
-
-    /**
-     * @var \Magento\Framework\LocaleFactory
-     */
-    protected $_localeFactory;
+    protected $emulatedLocales = [];
 
     /**
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\App\CacheInterface $cache
-     * @param \Magento\Framework\LocaleFactory $localeFactory
+     * @param ScopeConfigInterface $scopeConfig
      * @param string $defaultLocalePath
      * @param string $scopeType
      * @param mixed $locale
      */
     public function __construct(
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\App\CacheInterface $cache,
-        \Magento\Framework\LocaleFactory $localeFactory,
+        ScopeConfigInterface $scopeConfig,
         $defaultLocalePath,
         $scopeType,
         $locale = null
     ) {
-        $this->_cache = $cache;
-        $this->_scopeConfig = $scopeConfig;
-        $this->_localeFactory = $localeFactory;
-        $this->_defaultLocalePath = $defaultLocalePath;
-        $this->_scopeType = $scopeType;
+        $this->scopeConfig = $scopeConfig;
+        $this->defaultLocalePath = $defaultLocalePath;
+        $this->scopeType = $scopeType;
         $this->setLocale($locale);
     }
 
@@ -86,7 +65,7 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
      */
     public function getDefaultLocalePath()
     {
-        return $this->_defaultLocalePath;
+        return $this->defaultLocalePath;
     }
 
     /**
@@ -94,7 +73,7 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
      */
     public function setDefaultLocale($locale)
     {
-        $this->_defaultLocale = $locale;
+        $this->defaultLocale = $locale;
         return $this;
     }
 
@@ -103,14 +82,14 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
      */
     public function getDefaultLocale()
     {
-        if (!$this->_defaultLocale) {
-            $locale = $this->_scopeConfig->getValue($this->getDefaultLocalePath(), $this->_scopeType);
+        if (!$this->defaultLocale) {
+            $locale = $this->scopeConfig->getValue($this->getDefaultLocalePath(), $this->scopeType);
             if (!$locale) {
-                $locale = \Magento\Framework\Locale\ResolverInterface::DEFAULT_LOCALE;
+                $locale = ResolverInterface::DEFAULT_LOCALE;
             }
-            $this->_defaultLocale = $locale;
+            $this->defaultLocale = $locale;
         }
-        return $this->_defaultLocale;
+        return $this->defaultLocale;
     }
 
     /**
@@ -119,9 +98,9 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
     public function setLocale($locale = null)
     {
         if ($locale !== null && is_string($locale)) {
-            $this->_localeCode = $locale;
+            $this->locale = $locale;
         } else {
-            $this->_localeCode = $this->getDefaultLocale();
+            $this->locale = $this->getDefaultLocale();
         }
         return $this;
     }
@@ -131,35 +110,10 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
      */
     public function getLocale()
     {
-        if (!$this->_locale) {
-            \Zend_Locale_Data::setCache($this->_cache->getFrontend()->getLowLevelFrontend());
-            $this->_locale = $this->_localeFactory->create(['locale' => $this->getLocaleCode()]);
-        } elseif ($this->_locale->__toString() != $this->_localeCode) {
-            $this->setLocale($this->_localeCode);
-        }
-
-        return $this->_locale;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getLocaleCode()
-    {
-        if ($this->_localeCode === null) {
+        if ($this->locale === null) {
             $this->setLocale();
         }
-        return $this->_localeCode;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setLocaleCode($code)
-    {
-        $this->_localeCode = $code;
-        $this->_locale = null;
-        return $this;
+        return $this->locale;
     }
 
     /**
@@ -169,20 +123,15 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
     {
         $result = null;
         if ($scopeId) {
-            $this->_emulatedLocales[] = clone $this->getLocale();
-            $this->_locale = $this->_localeFactory->create(
-                [
-                    'locale' => $this->_scopeConfig->getValue(
-                        $this->getDefaultLocalePath(),
-                        $this->_scopeType,
-                        $scopeId
-                    ),
-                ]
+            $this->emulatedLocales[] = $this->getLocale();
+            $this->locale = $this->scopeConfig->getValue(
+                $this->getDefaultLocalePath(),
+                $this->scopeType,
+                $scopeId
             );
-            $this->_localeCode = $this->_locale->toString();
-            $result = $this->_localeCode;
+            $result = $this->locale;
         } else {
-            $this->_emulatedLocales[] = false;
+            $this->emulatedLocales[] = false;
         }
         return $result;
     }
@@ -193,11 +142,10 @@ class Resolver implements \Magento\Framework\Locale\ResolverInterface
     public function revert()
     {
         $result = null;
-        $locale = array_pop($this->_emulatedLocales);
-        if ($locale) {
-            $this->_locale = $locale;
-            $this->_localeCode = $this->_locale->toString();
-            $result = $this->_localeCode;
+        $localeCode = array_pop($this->emulatedLocales);
+        if ($localeCode) {
+            $this->locale = $localeCode;
+            $result = $this->locale;
         }
         return $result;
     }
diff --git a/lib/internal/Magento/Framework/Locale/ResolverInterface.php b/lib/internal/Magento/Framework/Locale/ResolverInterface.php
index f74837274b537f7983e948b2bf3acc209ef74b72..08add444266f073aaa354935b6857be2c7edd34f 100644
--- a/lib/internal/Magento/Framework/Locale/ResolverInterface.php
+++ b/lib/internal/Magento/Framework/Locale/ResolverInterface.php
@@ -23,7 +23,7 @@ interface ResolverInterface
      * Set default locale code
      *
      * @param   string $locale
-     * @return  \Magento\Framework\Locale\ResolverInterface
+     * @return  self
      */
     public function setDefaultLocale($locale);
 
@@ -38,31 +38,16 @@ interface ResolverInterface
      * Set locale
      *
      * @param   string $locale
-     * @return  \Magento\Framework\Locale\ResolverInterface
+     * @return  self
      */
     public function setLocale($locale = null);
 
     /**
-     * Retrieve locale object
-     *
-     * @return \Magento\Framework\LocaleInterface
-     */
-    public function getLocale();
-
-    /**
-     * Retrieve locale code
+     * Retrieve locale
      *
      * @return string
      */
-    public function getLocaleCode();
-
-    /**
-     * Specify current locale code
-     *
-     * @param   string $code
-     * @return  \Magento\Framework\Locale\ResolverInterface
-     */
-    public function setLocaleCode($code);
+    public function getLocale();
 
     /**
      * Push current locale to stack and replace with locale from specified scope
diff --git a/lib/internal/Magento/Framework/Locale/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/Locale/Test/Unit/ConfigTest.php
index b88a3804748b3fa5a01cc8a96d25cc2a2fab0161..cdaecc81056df651b70f8a027950571a6a282486 100644
--- a/lib/internal/Magento/Framework/Locale/Test/Unit/ConfigTest.php
+++ b/lib/internal/Magento/Framework/Locale/Test/Unit/ConfigTest.php
@@ -11,14 +11,14 @@ namespace Magento\Framework\Locale\Test\Unit;
 class ConfigTest extends \PHPUnit_Framework_TestCase
 {
     private static $allAllowedLocales = [
-        'af_ZA', 'ar_DZ', 'ar_EG', 'ar_KW', 'ar_MA', 'ar_SA', 'az_AZ', 'be_BY', 'bg_BG', 'bn_BD',
-        'bs_BA', 'ca_ES', 'cs_CZ', 'cy_GB', 'da_DK', 'de_AT', 'de_CH', 'de_DE', 'el_GR', 'en_AU',
+        'af_ZA', 'ar_DZ', 'ar_EG', 'ar_KW', 'ar_MA', 'ar_SA', 'az_Latn_AZ', 'be_BY', 'bg_BG', 'bn_BD',
+        'bs_Latn_BA', 'ca_ES', 'cs_CZ', 'cy_GB', 'da_DK', 'de_AT', 'de_CH', 'de_DE', 'el_GR', 'en_AU',
         'en_CA', 'en_GB', 'en_NZ', 'en_US', 'es_AR', 'es_CO', 'es_PA', 'gl_ES', 'es_CR', 'es_ES',
-        'es_MX', 'es_EU', 'es_PE', 'et_EE', 'fa_IR', 'fi_FI', 'fil_PH', 'fr_CA', 'fr_FR', 'gu_IN',
+        'es_MX', 'eu_ES', 'es_PE', 'et_EE', 'fa_IR', 'fi_FI', 'fil_PH', 'fr_CA', 'fr_FR', 'gu_IN',
         'he_IL', 'hi_IN', 'hr_HR', 'hu_HU', 'id_ID', 'is_IS', 'it_CH', 'it_IT', 'ja_JP', 'ka_GE',
-        'km_KH', 'ko_KR', 'lo_LA', 'lt_LT', 'lv_LV', 'mk_MK', 'mn_MN', 'ms_MY', 'nl_NL', 'nb_NO',
-        'nn_NO', 'pl_PL', 'pt_BR', 'pt_PT', 'ro_RO', 'ru_RU', 'sk_SK', 'sl_SI', 'sq_AL', 'sr_RS',
-        'sv_SE', 'sw_KE', 'th_TH', 'tr_TR', 'uk_UA', 'vi_VN', 'zh_CN', 'zh_HK', 'zh_TW', 'es_CL',
+        'km_KH', 'ko_KR', 'lo_LA', 'lt_LT', 'lv_LV', 'mk_MK', 'mn_Cyrl_MN', 'ms_Latn_MY', 'nl_NL', 'nb_NO',
+        'nn_NO', 'pl_PL', 'pt_BR', 'pt_PT', 'ro_RO', 'ru_RU', 'sk_SK', 'sl_SI', 'sq_AL', 'sr_Cyrl_RS',
+        'sv_SE', 'sw_KE', 'th_TH', 'tr_TR', 'uk_UA', 'vi_VN', 'zh_Hans_CN', 'zh_Hant_HK', 'zh_Hant_TW', 'es_CL',
         'lo_LA', 'es_VE', 'en_IE',
     ];
 
diff --git a/lib/internal/Magento/Framework/Locale/Test/Unit/CurrencyTest.php b/lib/internal/Magento/Framework/Locale/Test/Unit/CurrencyTest.php
index 4eb11f3b81578c9b74cca667f3b386f709d694db..01552d3a972294bd649141074cc91f985829743b 100644
--- a/lib/internal/Magento/Framework/Locale/Test/Unit/CurrencyTest.php
+++ b/lib/internal/Magento/Framework/Locale/Test/Unit/CurrencyTest.php
@@ -185,7 +185,7 @@ class CurrencyTest extends \PHPUnit_Framework_TestCase
             ->method('dispatch');
 
         $this->mockLocaleResolver
-            ->expects($this->exactly(2))
+            ->expects($this->exactly(5))
             ->method('getLocale');
 
         $retrievedCurrencyObject = $this->testCurrencyObject
diff --git a/lib/internal/Magento/Framework/Locale/Test/Unit/ListsTest.php b/lib/internal/Magento/Framework/Locale/Test/Unit/ListsTest.php
index 35fb6ef8a58e6e55add147f63dafb20d68e75726..5d36dd09ef17fd392ed31d1b6e34f044cf41bd85 100644
--- a/lib/internal/Magento/Framework/Locale/Test/Unit/ListsTest.php
+++ b/lib/internal/Magento/Framework/Locale/Test/Unit/ListsTest.php
@@ -13,11 +13,6 @@ class ListsTest extends \PHPUnit_Framework_TestCase
      */
     protected $listsModel;
 
-    /**
-     * @var  \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\App\ScopeResolverInterface
-     */
-    protected $mockScopeResolver;
-
     /**
      * @var  \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Locale\ConfigInterface
      */
@@ -30,164 +25,77 @@ class ListsTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->mockScopeResolver = $this->getMockBuilder('\Magento\Framework\App\ScopeResolverInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
         $this->mockConfig = $this->getMockBuilder('\Magento\Framework\Locale\ConfigInterface')
             ->disableOriginalConstructor()
             ->getMock();
         $this->mockLocaleResolver = $this->getMockBuilder('\Magento\Framework\Locale\ResolverInterface')
             ->disableOriginalConstructor()
             ->getMock();
-        $locale = "some_locale";
-        $this->mockLocaleResolver->expects($this->atLeastOnce())
-            ->method('setLocale')
-            ->with($locale);
+        $this->mockLocaleResolver->expects($this->once())
+            ->method('getLocale')
+            ->will($this->returnValue('en_US'));
 
         $this->listsModel = new \Magento\Framework\Locale\Lists(
-            $this->mockScopeResolver,
             $this->mockConfig,
-            $this->mockLocaleResolver,
-            $locale
+            $this->mockLocaleResolver
         );
     }
 
-    public function testGetCountryTranslationList()
-    {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->once())
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        // clearly english results
-        $expectedResults = [
-            'AD' => 'Andorra',
-            'ZZ' => 'Unknown Region',
-            'VC' => 'St. Vincent & Grenadines',
-            'PM' => 'Saint Pierre and Miquelon',
-        ];
-
-        $countryTranslationList = $this->listsModel->getCountryTranslationList();
-        foreach ($expectedResults as $key => $value) {
-            $this->assertArrayHasKey($key, $countryTranslationList);
-            $this->assertEquals($value, $countryTranslationList[$key]);
-        }
-    }
-
     public function testGetCountryTranslation()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->once())
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        $this->assertFalse($this->listsModel->getCountryTranslation(null));
-    }
-
-    public function testGetTranslationList()
-    {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->exactly(2))
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        $path = 'territory';
-        $value = 2;
-
-        // clearly english results
-        $expectedResults = [
-            'AD' => 'Andorra',
-            'ZZ' => 'Unknown Region',
-            'VC' => 'St. Vincent & Grenadines',
-            'PM' => 'Saint Pierre and Miquelon',
-        ];
-
-        $countryTranslationList = $this->listsModel->getTranslationList($path, $value);
-        foreach ($expectedResults as $key => $value) {
-            $this->assertArrayHasKey($key, $countryTranslationList);
-            $this->assertEquals($value, $countryTranslationList[$key]);
-        }
+        $this->assertNull($this->listsModel->getCountryTranslation(null));
     }
 
     public function testGetOptionAllCurrencies()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->exactly(2))
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        // clearly English results
-        $expectedResults = [
-            ['value' => 'BAM', 'label' => 'Bosnia-Herzegovina Convertible Mark'],
-            ['value' => 'TTD', 'label' => 'Trinidad and Tobago Dollar'],
-            ['value' => 'USN', 'label' => 'US Dollar (Next day)'],
-            ['value' => 'USS', 'label' => 'US Dollar (Same day)'],
-        ];
+        $expectedResults = ['USD', 'EUR', 'GBP', 'UAH'];
 
         $currencyList = $this->listsModel->getOptionAllCurrencies();
         foreach ($expectedResults as $value) {
-            $this->assertContains($value, $currencyList);
+            $found = false;
+            foreach ($currencyList as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
         }
     }
 
     public function testGetOptionCurrencies()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->exactly(2))
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        $allowedCurrencies = ['USD', 'GBP', 'EUR'];
+        $allowedCurrencies = ['USD', 'EUR', 'GBP', 'UAH'];
 
         $this->mockConfig->expects($this->once())
             ->method('getAllowedCurrencies')
             ->will($this->returnValue($allowedCurrencies));
 
-        $expectedArray = [
-            ['value' => 'GBP', 'label' => 'British Pound Sterling'],
-            ['value' => 'EUR', 'label' => 'Euro'],
-            ['value' => 'USD', 'label' => 'US Dollar'],
-        ];
+        $expectedResults = ['USD', 'EUR', 'GBP', 'UAH'];
 
-        $this->assertSame($expectedArray, $this->listsModel->getOptionCurrencies());
+        $currencyList = $this->listsModel->getOptionCurrencies();
+        foreach ($expectedResults as $value) {
+            $found = false;
+            foreach ($currencyList as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
+        }
     }
 
     public function testGetOptionCountries()
     {
-        $locale = new \Magento\Framework\Locale('en');
+        $expectedResults = ['US', 'GB', 'DE', 'UA'];
 
-        $this->mockLocaleResolver->expects($this->once())
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        // clearly English results
-        $expectedResults = [
-            ['value' => 'AG', 'label' => 'Antigua and Barbuda'],
-            ['value' => 'BA', 'label' => 'Bosnia and Herzegovina'],
-            ['value' => 'CC', 'label' => 'Cocos (Keeling) Islands'],
-            ['value' => 'GS', 'label' => 'South Georgia & South Sandwich Islands'],
-            ['value' => 'PM', 'label' => 'Saint Pierre and Miquelon'],
-        ];
-
-        $optionCountries = $this->listsModel->getOptionCountries();
+        $list = $this->listsModel->getOptionCountries();
         foreach ($expectedResults as $value) {
-            $this->assertContains($value, $optionCountries);
+            $found = false;
+            foreach ($list as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
         }
     }
 
     public function testGetOptionsWeekdays()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->exactly(2))
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
         $expectedArray = [
             ['label' => 'Sunday', 'value' => 'Sun'],
             ['label' => 'Monday', 'value' => 'Mon'],
@@ -203,26 +111,15 @@ class ListsTest extends \PHPUnit_Framework_TestCase
 
     public function testGetOptionTimezones()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->exactly(2))
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        $expectedResults = [
-            ['value' => 'Australia/Darwin', 'label' => 'AUS Central Standard Time (Australia/Darwin)'],
-            ['value' => 'Asia/Jerusalem', 'label' => 'Israel Standard Time (Asia/Jerusalem)'],
-            ['value' => 'Asia/Yakutsk', 'label' => 'Yakutsk Standard Time (Asia/Yakutsk)'],
-        ];
+        $expectedResults = ['Australia/Darwin', 'America/Los_Angeles', 'Asia/Jerusalem'];
 
-        $timeZones = $this->listsModel->getOptionTimezones();
+        $list = $this->listsModel->getOptionTimezones();
         foreach ($expectedResults as $value) {
-            $this->assertContains($value, $timeZones);
-        }
-
-        $timeZoneList = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC);
-        foreach ($timeZones as $timeZone) {
-            $this->assertContains($timeZone['value'], $timeZoneList);
+            $found = false;
+            foreach ($list as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
         }
     }
 
@@ -230,44 +127,42 @@ class ListsTest extends \PHPUnit_Framework_TestCase
     {
         $this->setupForOptionLocales();
 
-        $this->assertEquals(
-            [
-                ['value' => 'az_AZ', 'label' => 'Azerbaijani (Azerbaijan)'],
-                ['value' => 'en_US', 'label' => 'English (United States)'],
-            ],
-            $this->listsModel->getOptionLocales()
-        );
+        $expectedResults = ['en_US', 'uk_UA', 'de_DE'];
+
+        $list = $this->listsModel->getOptionLocales();
+        foreach ($expectedResults as $value) {
+            $found = false;
+            foreach ($list as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
+        }
     }
 
     public function testGetTranslatedOptionLocales()
     {
         $this->setupForOptionLocales();
 
-        $this->assertEquals(
-            [
-                ['value' => 'az_AZ', 'label' => 'Azərbaycan (Azərbaycan) / Azerbaijani (Azerbaijan)'],
-                ['value' => 'en_US', 'label' => 'English (United States) / English (United States)'],
-            ],
-            $this->listsModel->getTranslatedOptionLocales()
-        );
+        $expectedResults = ['en_US', 'uk_UA', 'de_DE'];
+
+        $list = $this->listsModel->getOptionLocales();
+        foreach ($expectedResults as $value) {
+            $found = false;
+            foreach ($list as $item) {
+                $found = $found || ($value == $item['value']);
+            }
+            $this->assertTrue($found);
+        }
     }
 
     /**
-     * @return \Magento\Framework\LocaleInterface
+     * Setup for option locales
      */
     protected function setupForOptionLocales()
     {
-        $locale = new \Magento\Framework\Locale('en');
-
-        $this->mockLocaleResolver->expects($this->any())
-            ->method('getLocale')
-            ->will($this->returnValue($locale));
-
-        $allowedLocales = ['en_US', 'az_AZ'];
+        $allowedLocales = ['en_US', 'uk_UA', 'de_DE'];
         $this->mockConfig->expects($this->once())
             ->method('getAllowedLocales')
             ->will($this->returnValue($allowedLocales));
-
-        return $locale;
     }
 }
diff --git a/lib/internal/Magento/Framework/LocaleFactory.php b/lib/internal/Magento/Framework/LocaleFactory.php
deleted file mode 100644
index 6e89eaaacfd24bad6c896a4ec975fb7e0c326c59..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/LocaleFactory.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework;
-
-class LocaleFactory
-{
-    /**
-     * @var \Magento\Framework\ObjectManagerInterface
-     */
-    protected $_objectManager = null;
-
-    /**
-     * @var string
-     */
-    protected $_instanceName = null;
-
-    /**
-     * @param \Magento\Framework\ObjectManagerInterface $objectManager
-     * @param string $instanceName
-     */
-    public function __construct(
-        \Magento\Framework\ObjectManagerInterface $objectManager,
-        $instanceName = 'Magento\Framework\LocaleInterface'
-    ) {
-        $this->_objectManager = $objectManager;
-        $this->_instanceName = $instanceName;
-    }
-
-    /**
-     * Create class instance with specified parameters
-     *
-     * @param array $data
-     * @return \Magento\Framework\LocaleInterface
-     */
-    public function create(array $data = [])
-    {
-        return $this->_objectManager->create($this->_instanceName, $data);
-    }
-}
diff --git a/lib/internal/Magento/Framework/LocaleInterface.php b/lib/internal/Magento/Framework/LocaleInterface.php
deleted file mode 100644
index 83aeccfb6d7e0425ad48eab29fd2ab87c6866c3b..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/LocaleInterface.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework;
-
-interface LocaleInterface
-{
-    /**
-     * Serialization Interface
-     *
-     * @return string
-     */
-    public function serialize();
-
-    /**
-     * Returns a string representation of the object
-     *
-     * @return string
-     */
-    public function toString();
-
-    /**
-     * Returns a string representation of the object
-     * Alias for toString
-     *
-     * @return string
-     */
-    public function __toString();
-
-    /**
-     * Return the default locale
-     *
-     * @return array Returns an array of all locale string
-     */
-    public static function getDefault();
-
-    /**
-     * Sets a new default locale which will be used when no locale can be detected
-     * If provided you can set a quality between 0 and 1 (or 2 and 100)
-     * which represents the percent of quality the browser
-     * requested within HTTP
-     *
-     * @param  string|\Magento\Framework\LocaleInterface $locale Locale to set
-     * @param float|int $quality The quality to set from 0 to 1
-     * @return void
-     */
-    public static function setDefault($locale, $quality = 1);
-
-    /**
-     * Expects the Systems standard locale
-     *
-     * For Windows:
-     * f.e.: LC_COLLATE=C;LC_CTYPE=German_Austria.1252;LC_MONETARY=C
-     * would be recognised as de_AT
-     *
-     * @return array
-     */
-    public static function getEnvironment();
-
-    /**
-     * Return an array of all accepted languages of the client
-     * Expects RFC compilant Header !!
-     *
-     * The notation can be :
-     * de,en-UK-US;q=0.5,fr-FR;q=0.2
-     *
-     * @return array - list of accepted languages including quality
-     */
-    public static function getBrowser();
-
-    /**
-     * Sets a new locale
-     *
-     * @param  string|\Magento\Framework\LocaleInterface $locale (Optional) New locale to set
-     * @return void
-     */
-    public function setLocale($locale = null);
-
-    /**
-     * Returns the language part of the locale
-     *
-     * @return string
-     */
-    public function getLanguage();
-
-    /**
-     * Returns the region part of the locale if available
-     *
-     * @return string|false - Regionstring
-     */
-    public function getRegion();
-
-    /**
-     * Return the accepted charset of the client
-     *
-     * @return string
-     */
-    public static function getHttpCharset();
-
-    /**
-     * Returns true if both locales are equal
-     *
-     * @param  \Zend_Locale $object Locale to check for equality
-     * @return boolean
-     */
-    public function equals(\Zend_Locale $object);
-
-    /**
-     * Returns localized informations as array, supported are several
-     * types of informations.
-     * For detailed information about the types look into the documentation
-     *
-     * @param  string             $path   (Optional) Type of information to return
-     * @param  string|\Magento\Framework\LocaleInterface $locale (Optional) Locale
-     *         |Language for which this informations should be returned
-     * @param  string             $value  (Optional) Value for detail list
-     * @return array Array with the wished information in the given language
-     */
-    public static function getTranslationList($path = null, $locale = null, $value = null);
-
-    /**
-     * Returns a localized information string, supported are several types of informations.
-     * For detailed information about the types look into the documentation
-     *
-     * @param  string             $value  Name to get detailed information about
-     * @param  string             $path   (Optional) Type of information to return
-     * @param  string|\Magento\Framework\LocaleInterface $locale (Optional) Locale
-     *         |Language for which this informations should be returned
-     * @return string|false The wished information in the given language
-     */
-    public static function getTranslation($value = null, $path = null, $locale = null);
-
-    /**
-     * Returns an array with translated yes strings
-     *
-     * @param  string|\Magento\Framework\LocaleInterface $locale (Optional)
-     *         Locale for language translation (defaults to $this locale)
-     * @return array
-     */
-    public static function getQuestion($locale = null);
-
-    /**
-     * Checks if a locale identifier is a real locale or not
-     * Examples:
-     * "en_XX" refers to "en", which returns true
-     * "XX_yy" refers to "root", which returns false
-     *
-     * @param  string|\Magento\Framework\LocaleInterface $locale     Locale to check for
-     * @param  boolean            $strict     (Optional) If true, no rerouting will be done when checking
-     * @param  boolean            $compatible (DEPRECATED) Only for internal usage, brakes compatibility mode
-     * @return boolean If the locale is known dependend on the settings
-     */
-    public static function isLocale($locale, $strict = false, $compatible = true);
-
-    /**
-     * Finds the proper locale based on the input
-     * Checks if it exists, degrades it when necessary
-     * Detects registry locale and when all fails tries to detect a automatic locale
-     * Returns the found locale as string
-     *
-     * @param string $locale
-     * @throws \Zend_Locale_Exception When the given locale is no locale or the autodetection fails
-     * @return string
-     */
-    public static function findLocale($locale = null);
-
-    /**
-     * Returns the expected locale for a given territory
-     *
-     * @param string $territory Territory for which the locale is being searched
-     * @return string|null Locale string or null when no locale has been found
-     */
-    public static function getLocaleToTerritory($territory);
-
-    /**
-     * Returns a list of all known locales where the locale is the key
-     * Only real locales are returned, the internal locales 'root', 'auto', 'browser'
-     * and 'environment' are suppressed
-     *
-     * @return array List of all Locales
-     */
-    public static function getLocaleList();
-
-    /**
-     * Returns the set cache
-     *
-     * @return \Zend_Cache_Core The set cache
-     */
-    public static function getCache();
-
-    /**
-     * Sets a cache
-     *
-     * @param  \Zend_Cache_Core $cache Cache to set
-     * @return void
-     */
-    public static function setCache(\Zend_Cache_Core $cache);
-
-    /**
-     * Returns true when a cache is set
-     *
-     * @return boolean
-     */
-    public static function hasCache();
-
-    /**
-     * Removes any set cache
-     *
-     * @return void
-     */
-    public static function removeCache();
-
-    /**
-     * Clears all set cache data
-     *
-     * @param string $tag Tag to clear when the default tag name is not used
-     * @return void
-     */
-    public static function clearCache($tag = null);
-
-    /**
-     * Disables the set cache
-     *
-     * @param  boolean $flag True disables any set cache, default is false
-     * @return void
-     */
-    public static function disableCache($flag);
-
-    /**
-     * Search the locale automatically and return all used locales
-     * ordered by quality
-     *
-     * Standard Searchorder is Browser, Environment, Default
-     *
-     * @param null $order
-     * @internal param string $searchorder (Optional) Searchorder
-     * @return array Returns an array of all detected locales
-     */
-    public static function getOrder($order = null);
-}
diff --git a/lib/internal/Magento/Framework/Module/ModuleList/DeploymentConfigFactory.php b/lib/internal/Magento/Framework/Module/ModuleList/DeploymentConfigFactory.php
new file mode 100644
index 0000000000000000000000000000000000000000..c7b92525fa6a2f25c77f2343aac8219bcfc14cf3
--- /dev/null
+++ b/lib/internal/Magento/Framework/Module/ModuleList/DeploymentConfigFactory.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Framework\Module\ModuleList;
+
+/**
+ * Factory for Deployment configuration segment for modules
+ */
+class DeploymentConfigFactory
+{
+    /**
+     * Factory method for Deployment Config object
+     *
+     * @param array $data
+     * @return DeploymentConfig
+     */
+    public function create(array $data)
+    {
+        return new DeploymentConfig($data);
+    }
+}
diff --git a/lib/internal/Magento/Framework/Module/Status.php b/lib/internal/Magento/Framework/Module/Status.php
index 3fca3995780ab3a1fc4bb27e26cd306a2bdf478e..d71a48fc3c6680fc69a414f1c8512ae592597f5c 100644
--- a/lib/internal/Magento/Framework/Module/Status.php
+++ b/lib/internal/Magento/Framework/Module/Status.php
@@ -7,10 +7,13 @@
 namespace Magento\Framework\Module;
 
 use Magento\Framework\App\DeploymentConfig\Writer;
+use Magento\Framework\Module\ModuleList\DeploymentConfigFactory;
 use Magento\Framework\App\State\Cleanup;
 
 /**
  * A service for controlling module status
+ *
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Status
 {
@@ -56,6 +59,13 @@ class Status
      */
     private $conflictChecker;
 
+    /**
+     * Factory to create module deployment config object
+     *
+     * @var DeploymentConfigFactory
+     */
+    private $deploymentConfigFactory;
+
     /**
      * Constructor
      *
@@ -65,6 +75,7 @@ class Status
      * @param Cleanup $cleanup
      * @param ConflictChecker $conflictChecker
      * @param DependencyChecker $dependencyChecker
+     * @param DeploymentConfigFactory $deploymentConfigFactory
      */
     public function __construct(
         ModuleList\Loader $loader,
@@ -72,7 +83,8 @@ class Status
         Writer $writer,
         Cleanup $cleanup,
         ConflictChecker $conflictChecker,
-        DependencyChecker $dependencyChecker
+        DependencyChecker $dependencyChecker,
+        DeploymentConfigFactory $deploymentConfigFactory
     ) {
         $this->loader = $loader;
         $this->list = $list;
@@ -80,6 +92,7 @@ class Status
         $this->cleanup = $cleanup;
         $this->conflictChecker = $conflictChecker;
         $this->dependencyChecker = $dependencyChecker;
+        $this->deploymentConfigFactory = $deploymentConfigFactory;
     }
 
     /**
@@ -159,7 +172,7 @@ class Status
                 $result[$name] = $currentStatus;
             }
         }
-        $segment = new ModuleList\DeploymentConfig($result);
+        $segment = $this->deploymentConfigFactory->create($result);
         $this->writer->update($segment);
         $this->cleanup->clearCaches();
         $this->cleanup->clearCodeGeneratedFiles();
diff --git a/lib/internal/Magento/Framework/Module/Test/Unit/ModuleList/DeploymentConfigFactoryTest.php b/lib/internal/Magento/Framework/Module/Test/Unit/ModuleList/DeploymentConfigFactoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..fc07edc800666e6451e67cdf88893055dcc1e9e7
--- /dev/null
+++ b/lib/internal/Magento/Framework/Module/Test/Unit/ModuleList/DeploymentConfigFactoryTest.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Framework\Module\Test\Unit\ModuleList;
+
+use Magento\Framework\Module\ModuleList\DeploymentConfigFactory;
+
+class DeploymentConfigFactoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var DeploymentConfigFactory
+     */
+    protected $object;
+
+    public function testCreate()
+    {
+        $this->object = new DeploymentConfigFactory();
+        $this->assertInstanceOf(
+            'Magento\Framework\Module\ModuleList\DeploymentConfig',
+            $this->object->create(['Module_One' => 0, 'Module_Two' =>1])
+        );
+    }
+}
diff --git a/lib/internal/Magento/Framework/Module/Test/Unit/Setup/MigrationTest.php b/lib/internal/Magento/Framework/Module/Test/Unit/Setup/MigrationTest.php
index b90ebd276ebb2e8867456e11726383fd06a39378..e777d9c51fcbf28f00be4981f63dcc9a14199633 100644
--- a/lib/internal/Magento/Framework/Module/Test/Unit/Setup/MigrationTest.php
+++ b/lib/internal/Magento/Framework/Module/Test/Unit/Setup/MigrationTest.php
@@ -85,7 +85,7 @@ class MigrationTest extends \PHPUnit_Framework_TestCase
             'base_dir' => 'not_used',
             'path_to_map_file' => 'not_used',
             'connection' => $adapterMock,
-            'core_helper' => $this->getMock('Magento\Core\Helper\Data', [], [], '', false, false),
+            'core_helper' => $this->getMock('Magento\Framework\Json\Helper\Data', [], [], '', false, false),
             'aliases_map' => $aliasesMap
         ];
     }
diff --git a/lib/internal/Magento/Framework/Module/Test/Unit/StatusTest.php b/lib/internal/Magento/Framework/Module/Test/Unit/StatusTest.php
index 36ae599d5f570cf9caaa35b9e84edb5c06cd509d..f469783e91b5811c417b3d06b6c22754e3647a7e 100644
--- a/lib/internal/Magento/Framework/Module/Test/Unit/StatusTest.php
+++ b/lib/internal/Magento/Framework/Module/Test/Unit/StatusTest.php
@@ -40,6 +40,11 @@ class StatusTest extends \PHPUnit_Framework_TestCase
      */
     private $dependencyChecker;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $deploymentConfigFactory;
+
     /**
      * @var Status
      */
@@ -53,13 +58,21 @@ class StatusTest extends \PHPUnit_Framework_TestCase
         $this->cleanup = $this->getMock('Magento\Framework\App\State\Cleanup', [], [], '', false);
         $this->conflictChecker = $this->getMock('Magento\Framework\Module\ConflictChecker', [], [], '', false);
         $this->dependencyChecker = $this->getMock('Magento\Framework\Module\DependencyChecker', [], [], '', false);
+        $this->deploymentConfigFactory = $this->getMock(
+            'Magento\Framework\Module\ModuleList\DeploymentConfigFactory',
+            [],
+            [],
+            '',
+            false
+        );
         $this->object = new Status(
             $this->loader,
             $this->moduleList,
             $this->writer,
             $this->cleanup,
             $this->conflictChecker,
-            $this->dependencyChecker
+            $this->dependencyChecker,
+            $this->deploymentConfigFactory
         );
     }
 
@@ -167,10 +180,11 @@ class StatusTest extends \PHPUnit_Framework_TestCase
         $this->moduleList->expects($this->at(0))->method('has')->with('Module_Foo')->willReturn(false);
         $this->moduleList->expects($this->at(1))->method('has')->with('Module_Bar')->willReturn(false);
         $this->moduleList->expects($this->at(2))->method('has')->with('Module_Baz')->willReturn(false);
-        $constraint = new \PHPUnit_Framework_Constraint_IsInstanceOf(
-            'Magento\Framework\Module\ModuleList\DeploymentConfig'
-        );
-        $this->writer->expects($this->once())->method('update')->with($constraint);
+        $deploymentConfig = $this->getMock('Magento\Framework\Module\ModuleList\DeploymentConfig', [], [], '', false);
+        $expectedModules = ['Module_Foo' => 1, 'Module_Bar' => 1, 'Module_Baz' => 0];
+        $this->deploymentConfigFactory->expects($this->once())->method('create')->with($expectedModules)
+            ->willReturn($deploymentConfig);
+        $this->writer->expects($this->once())->method('update')->with($deploymentConfig);
         $this->cleanup->expects($this->once())->method('clearCaches');
         $this->cleanup->expects($this->once())->method('clearCodeGeneratedFiles');
         $this->object->setIsEnabled(true, ['Module_Foo', 'Module_Bar']);
diff --git a/lib/internal/Magento/Framework/Mview/View/StateInterface.php b/lib/internal/Magento/Framework/Mview/View/StateInterface.php
index 637607aa0cd77bdf94cb388bdd343e760b665955..a2f87c539395afd8a003139395bfba3528d1ba43 100644
--- a/lib/internal/Magento/Framework/Mview/View/StateInterface.php
+++ b/lib/internal/Magento/Framework/Mview/View/StateInterface.php
@@ -113,7 +113,7 @@ interface StateInterface
     /**
      * Set state updated time
      *
-     * @param string|int|\Magento\Framework\Stdlib\DateTime\DateInterface $updated
+     * @param string|int|\DateTime $updated
      * @return \Magento\Framework\Mview\View\StateInterface
      */
     public function setUpdated($updated);
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime.php b/lib/internal/Magento/Framework/Stdlib/DateTime.php
index fdaf1d302f4f21265add52f24bf33b08060abb92..fcb268be94313cd381145ff4821f2831a6fd70b4 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime.php
@@ -12,7 +12,7 @@ namespace Magento\Framework\Stdlib;
 class DateTime
 {
     /**#@+
-     * Date format, used as default. Compatible with \Zend_Date
+     * Date format, used as default. Compatible with \DateTime
      */
     const DATETIME_INTERNAL_FORMAT = 'yyyy-MM-dd HH:mm:ss';
 
@@ -34,69 +34,28 @@ class DateTime
      */
     const YEAR_MAX_VALUE = 10000;
 
-    /**
-     * Convert date to UNIX timestamp
-     * Returns current UNIX timestamp if date is true
-     *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface|bool $date
-     * @return int
-     */
-    public function toTimestamp($date)
-    {
-        if ($date instanceof \Magento\Framework\Stdlib\DateTime\DateInterface) {
-            return $date->getTimestamp();
-        }
-
-        if ($date === true) {
-            return time();
-        }
-
-        return strtotime($date);
-    }
-
-    /**
-     * Retrieve current date in internal format
-     *
-     * @param boolean $withoutTime day only flag
-     * @return string
-     */
-    public function now($withoutTime = false)
-    {
-        $format = $withoutTime ? self::DATE_PHP_FORMAT : self::DATETIME_PHP_FORMAT;
-        return date($format);
-    }
-
     /**
      * Format date to internal format
      *
-     * @param string|\Zend_Date|bool|null $date
+     * @param string|\DateTime|bool|null $date
      * @param boolean $includeTime
      * @return string|null
      */
     public function formatDate($date, $includeTime = true)
     {
-        if ($date === true) {
-            return $this->now(!$includeTime);
-        }
-
-        if ($date instanceof \Magento\Framework\Stdlib\DateTime\DateInterface) {
-            if ($includeTime) {
-                return $date->toString(self::DATETIME_INTERNAL_FORMAT);
-            } else {
-                return $date->toString(self::DATE_INTERNAL_FORMAT);
-            }
-        }
-
-        if (empty($date)) {
+        if ($date instanceof \DateTime) {
+            $format = $includeTime ? self::DATETIME_PHP_FORMAT : self::DATE_PHP_FORMAT;
+            return $date->format($format);
+        } elseif (empty($date)) {
             return null;
-        }
-
-        if (!is_numeric($date)) {
-            $date = $this->toTimestamp($date);
+        } elseif ($date === true) {
+            $date = (new \DateTime())->getTimestamp();
+        } elseif (!is_numeric($date)) {
+            $date = (new \DateTime($date))->getTimestamp();
         }
 
         $format = $includeTime ? self::DATETIME_PHP_FORMAT : self::DATE_PHP_FORMAT;
-        return date($format, $date);
+        return (new \DateTime())->setTimestamp($date)->format($format);
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Date.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Date.php
deleted file mode 100644
index 30cd835f4a87678676b72035b642c52782af93dd..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/Date.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\Stdlib\DateTime;
-
-class Date extends \Zend_Date implements \Magento\Framework\Stdlib\DateTime\DateInterface
-{
-    /**
-     * Generates the standard date object, could be a unix timestamp, localized date,
-     * string, integer, array and so on. Also parts of dates or time are supported
-     * Always set the default timezone: http://php.net/date_default_timezone_set
-     * For example, in your bootstrap: date_default_timezone_set('America/Los_Angeles');
-     * For detailed instructions please look in the docu.
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface|array $date OPTIONAL Date value or value
-     *         of date part to set, depending on $part. If null the actual time is set
-     * @param  string $part OPTIONAL Defines the input format of $date
-     * @param  string|\Magento\Framework\Stdlib\DateTime\DateInterface $locale OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     * @throws Zend_Date_Exception
-     */
-    public function __construct($date = null, $part = null, $locale = null)
-    {
-        parent::__construct($date, $part, $locale);
-    }
-}
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/DateFactory.php b/lib/internal/Magento/Framework/Stdlib/DateTime/DateFactory.php
deleted file mode 100644
index 0513b72f55687cbf7cc760fb19d93f19ceae9e28..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/DateFactory.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\Stdlib\DateTime;
-
-class DateFactory
-{
-    /**
-     * @var \Magento\Framework\ObjectManagerInterface
-     */
-    protected $_objectManager = null;
-
-    /**
-     * @var string
-     */
-    protected $_instanceName = null;
-
-    /**
-     * @param \Magento\Framework\ObjectManagerInterface $objectManager
-     * @param string $instanceName
-     */
-    public function __construct(
-        \Magento\Framework\ObjectManagerInterface $objectManager,
-        $instanceName = 'Magento\Framework\Stdlib\DateTime\DateInterface'
-    ) {
-        $this->_objectManager = $objectManager;
-        $this->_instanceName = $instanceName;
-    }
-
-    /**
-     * Create class instance with specified parameters
-     *
-     * @param array $data
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function create(array $data = [])
-    {
-        return $this->_objectManager->create($this->_instanceName, $data);
-    }
-}
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/DateInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/DateInterface.php
deleted file mode 100644
index 369139a054ad4457108ae647b9d15933e0d772b8..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/DateInterface.php
+++ /dev/null
@@ -1,1284 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-// @codingStandardsIgnoreFile
-
-namespace Magento\Framework\Stdlib\DateTime;
-
-interface DateInterface
-{
-    /**
-     * Sets class wide options, if no option was given, the actual set options will be returned
-     *
-     * @param  array  $options  \Options to set
-     * @throws \Zend_Date_Exception
-     * @return array of options if no option was given
-     */
-    public static function setOptions(array $options = []);
-
-    /**
-     * Returns this object's internal UNIX timestamp (equivalent to \Zend_Date::TIMESTAMP).
-     * If the timestamp is too large for integers, then the return value will be a string.
-     * This function does not return the timestamp as an object.
-     * Use clone() or copyPart() instead.
-     *
-     * @return integer|string  UNIX timestamp
-     */
-    public function getTimestamp();
-
-    /**
-     * Sets a new timestamp
-     *
-     * @param  integer|string|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $timestamp  Timestamp to set
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setTimestamp($timestamp);
-
-    /**
-     * Adds a timestamp
-     *
-     * @param  integer|string|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $timestamp  Timestamp to add
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addTimestamp($timestamp);
-
-    /**
-     * Subtracts a timestamp
-     *
-     * @param  integer|string|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $timestamp  Timestamp to sub
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subTimestamp($timestamp);
-
-    /**
-     * Compares two timestamps, returning the difference as integer
-     *
-     * @param  integer|string|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $timestamp  Timestamp to compare
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareTimestamp($timestamp);
-
-    /**
-     * Returns a string representation of the object
-     * Supported format tokens are:
-     * G - era, y - year, Y - ISO year, M - month, w - week of year, D - day of year, d - day of month
-     * E - day of week, e - number of weekday (1-7), h - hour 1-12, H - hour 0-23, m - minute, s - second
-     * A - milliseconds of day, z - timezone, Z - timezone offset, S - fractional second, a - period of day
-     *
-     * Additionally format tokens but non ISO conform are:
-     * SS - day suffix, eee - php number of weekday(0-6), ddd - number of days per month
-     * l - Leap year, B - swatch internet time, I - daylight saving time, X - timezone offset in seconds
-     * r - RFC2822 format, U - unix timestamp
-     *
-     * Not supported ISO tokens are
-     * u - extended year, Q - quarter, q - quarter, L - stand alone month, W - week of month
-     * F - day of week of month, g - modified julian, c - stand alone weekday, k - hour 0-11, K - hour 1-24
-     * v - wall zone
-     *
-     * @param  string              $format  OPTIONAL Rule for formatting output. If null the default date format is used
-     * @param  string              $type    OPTIONAL Type for the format string which overrides the standard setting
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return string
-     */
-    public function toString($format = null, $type = null, $locale = null);
-
-    /**
-     * Returns a string representation of the date which is equal with the timestamp
-     *
-     * @return string
-     */
-    public function __toString();
-
-    /**
-     * Returns a integer representation of the object
-     * But returns false when the given part is no value f.e. Month-Name
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $part  OPTIONAL Defines the date or datepart to return as integer
-     * @return integer|false
-     */
-    public function toValue($part = null);
-
-    /**
-     * Returns an array representation of the object
-     *
-     * @return array
-     */
-    public function toArray();
-
-    /**
-     * Returns a representation of a date or datepart
-     * This could be for example a localized monthname, the time without date,
-     * the era or only the fractional seconds. There are about 50 different supported date parts.
-     * For a complete list of supported datepart values look into the docu
-     *
-     * @param  string              $part    OPTIONAL Part of the date to return, if null the timestamp is returned
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return string  date or datepart
-     */
-    public function get($part = null, $locale = null);
-
-    /**
-     * Counts the exact year number
-     * < 70 - 2000 added, >70 < 100 - 1900, others just returned
-     *
-     * @param  integer  $value year number
-     * @return integer  Number of year
-     */
-    public static function getFullYear($value);
-
-    /**
-     * Sets the given date as new date or a given datepart as new datepart returning the new datepart
-     * This could be for example a localized dayname, the date without time,
-     * the month or only the seconds. There are about 50 different supported date parts.
-     * For a complete list of supported datepart values look into the docu
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to set
-     * @param  string                          $part    OPTIONAL Part of the date to set, if null the timestamp is set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return $this Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function set($date, $part = null, $locale = null);
-
-    /**
-     * Adds a date or datepart to the existing date, by extracting $part from $date,
-     * and modifying this object by adding that part.  The $part is then extracted from
-     * this object and returned as an integer or numeric string (for large values, or $part's
-     * corresponding to pre-defined formatted date strings).
-     * This could be for example a ISO 8601 date, the hour the monthname or only the minute.
-     * There are about 50 different supported date parts.
-     * For a complete list of supported datepart values look into the docu.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to add
-     * @param  string                          $part    OPTIONAL Part of the date to add, if null the timestamp is added
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return $this Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function add($date, $part = \Zend_Date::TIMESTAMP, $locale = null);
-
-    /**
-     * Subtracts a date from another date.
-     * This could be for example a RFC2822 date, the time,
-     * the year or only the timestamp. There are about 50 different supported date parts.
-     * For a complete list of supported datepart values look into the docu
-     * Be aware: Adding -2 Months is not equal to Subtracting 2 Months !!!
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to subtract
-     * @param  string                          $part    OPTIONAL Part of the date to sub, if null the timestamp is subtracted
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return $this Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function sub($date, $part = \Zend_Date::TIMESTAMP, $locale = null);
-
-    /**
-     * Compares a date or datepart with the existing one.
-     * Returns -1 if earlier, 0 if equal and 1 if later.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to compare with the date object
-     * @param  string                          $part    OPTIONAL Part of the date to compare, if null the timestamp is subtracted
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compare($date, $part = \Zend_Date::TIMESTAMP, $locale = null);
-
-    /**
-     * Returns a new instance of \Magento\Framework\Stdlib\DateTime\DateInterface with the selected part copied.
-     * To make an exact copy, use PHP's clone keyword.
-     * For a complete list of supported date part values look into the docu.
-     * If a date part is copied, all other date parts are set to standard values.
-     * For example: If only YEAR is copied, the returned date object is equal to
-     * 01-01-YEAR 00:00:00 (01-01-1970 00:00:00 is equal to timestamp 0)
-     * If only HOUR is copied, the returned date object is equal to
-     * 01-01-1970 HOUR:00:00 (so $this contains a timestamp equal to a timestamp of 0 plus HOUR).
-     *
-     * @param  string              $part    Part of the date to compare, if null the timestamp is subtracted
-     * @param  string|\Zend_Locale  $locale  OPTIONAL New object's locale.  No adjustments to timezone are made.
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface New clone with requested part
-     */
-    public function copyPart($part, $locale = null);
-
-    /**
-     * Internal function, returns the offset of a given timezone
-     *
-     * @param string $zone
-     * @return integer
-     */
-    public function getTimezoneFromString($zone);
-
-    /**
-     * Returns true when both date objects or date parts are equal.
-     * For example:
-     * 15.May.2000 <-> 15.June.2000 Equals only for Day or Year... all other will return false
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to equal with
-     * @param  string                          $part    OPTIONAL Part of the date to compare, if null the timestamp is used
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return boolean
-     * @throws \Zend_Date_Exception
-     */
-    public function equals($date, $part = \Zend_Date::TIMESTAMP, $locale = null);
-
-    /**
-     * Returns if the given date or datepart is earlier
-     * For example:
-     * 15.May.2000 <-> 13.June.1999 will return true for day, year and date, but not for month
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to compare with
-     * @param  string                          $part    OPTIONAL Part of the date to compare, if null the timestamp is used
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return boolean
-     * @throws \Zend_Date_Exception
-     */
-    public function isEarlier($date, $part = null, $locale = null);
-
-    /**
-     * Returns if the given date or datepart is later
-     * For example:
-     * 15.May.2000 <-> 13.June.1999 will return true for month but false for day, year and date
-     * Returns if the given date is later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date or datepart to compare with
-     * @param  string                          $part    OPTIONAL Part of the date to compare, if null the timestamp is used
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return boolean
-     * @throws \Zend_Date_Exception
-     */
-    public function isLater($date, $part = null, $locale = null);
-
-    /**
-     * Returns only the time of the date as new \Magento\Framework\Stdlib\DateTime\Date object
-     * For example:
-     * 15.May.2000 10:11:23 will return a dateobject equal to 01.Jan.1970 10:11:23
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getTime($locale = null);
-
-    /**
-     * Sets a new time for the date object. Format defines how to parse the time string.
-     * Also a complete date can be given, but only the time is used for setting.
-     * For example: dd.MMMM.yyTHH:mm' and 'ss sec'-> 10.May.07T25:11 and 44 sec => 1h11min44sec + 1 day
-     * Returned is the new date object and the existing date is left as it was before
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $time    Time to set
-     * @param  string                          $format  OPTIONAL Timeformat for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setTime($time, $format = null, $locale = null);
-
-    /**
-     * Adds a time to the existing date. Format defines how to parse the time string.
-     * If only parts are given the other parts are set to 0.
-     * If no format is given, the standardformat of this locale is used.
-     * For example: HH:mm:ss -> 10 -> +10 hours
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $time    Time to add
-     * @param  string                          $format  OPTIONAL Timeformat for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addTime($time, $format = null, $locale = null);
-
-    /**
-     * Subtracts a time from the existing date. Format defines how to parse the time string.
-     * If only parts are given the other parts are set to 0.
-     * If no format is given, the standardformat of this locale is used.
-     * For example: HH:mm:ss -> 10 -> -10 hours
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $time    Time to sub
-     * @param  string                          $format  OPTIONAL Timeformat for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid inteface
-     * @throws \Zend_Date_Exception
-     */
-    public function subTime($time, $format = null, $locale = null);
-
-    /**
-     * Compares the time from the existing date. Format defines how to parse the time string.
-     * If only parts are given the other parts are set to default.
-     * If no format us given, the standardformat of this locale is used.
-     * For example: HH:mm:ss -> 10 -> 10 hours
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $time    Time to compare
-     * @param  string                          $format  OPTIONAL Timeformat for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareTime($time, $format = null, $locale = null);
-
-    /**
-     * Returns a clone of $this, with the time part set to 00:00:00.
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getDate($locale = null);
-
-    /**
-     * Sets a new date for the date object. Format defines how to parse the date string.
-     * Also a complete date with time can be given, but only the date is used for setting.
-     * For example: MMMM.yy HH:mm-> May.07 22:11 => 01.May.07 00:00
-     * Returned is the new date object and the existing time is left as it was before
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date to set
-     * @param  string                          $format  OPTIONAL Date format for parsing
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setDate($date, $format = null, $locale = null);
-
-    /**
-     * Adds a date to the existing date object. Format defines how to parse the date string.
-     * If only parts are given the other parts are set to 0.
-     * If no format is given, the standardformat of this locale is used.
-     * For example: MM.dd.YYYY -> 10 -> +10 months
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date to add
-     * @param  string                          $format  OPTIONAL Date format for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addDate($date, $format = null, $locale = null);
-
-    /**
-     * Subtracts a date from the existing date object. Format defines how to parse the date string.
-     * If only parts are given the other parts are set to 0.
-     * If no format is given, the standardformat of this locale is used.
-     * For example: MM.dd.YYYY -> 10 -> -10 months
-     * Be aware: Subtracting 2 months is not equal to Adding -2 months !!!
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date to sub
-     * @param  string                          $format  OPTIONAL Date format for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subDate($date, $format = null, $locale = null);
-
-    /**
-     * Compares the date from the existing date object, ignoring the time.
-     * Format defines how to parse the date string.
-     * If only parts are given the other parts are set to 0.
-     * If no format is given, the standardformat of this locale is used.
-     * For example: 10.01.2000 => 10.02.1999 -> false
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Date to compare
-     * @param  string                          $format  OPTIONAL Date format for parsing input
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareDate($date, $format = null, $locale = null);
-
-    /**
-     * Returns the full ISO 8601 date from the date object.
-     * Always the complete ISO 8601 specifiction is used. If an other ISO date is needed
-     * (ISO 8601 defines several formats) use toString() instead.
-     * This function does not return the ISO date as object. Use copy() instead.
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return string
-     */
-    public function getIso($locale = null);
-
-    /**
-     * Sets a new date for the date object. Not given parts are set to default.
-     * Only supported ISO 8601 formats are accepted.
-     * For example: 050901 -> 01.Sept.2005 00:00:00, 20050201T10:00:30 -> 01.Feb.2005 10h00m30s
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    ISO Date to set
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setIso($date, $locale = null);
-
-    /**
-     * Adds a ISO date to the date object. Not given parts are set to default.
-     * Only supported ISO 8601 formats are accepted.
-     * For example: 050901 -> + 01.Sept.2005 00:00:00, 10:00:00 -> +10h
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    ISO Date to add
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addIso($date, $locale = null);
-
-    /**
-     * Subtracts a ISO date from the date object. Not given parts are set to default.
-     * Only supported ISO 8601 formats are accepted.
-     * For example: 050901 -> - 01.Sept.2005 00:00:00, 10:00:00 -> -10h
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    ISO Date to sub
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subIso($date, $locale = null);
-
-    /**
-     * Compares a ISO date with the date object. Not given parts are set to default.
-     * Only supported ISO 8601 formats are accepted.
-     * For example: 050901 -> - 01.Sept.2005 00:00:00, 10:00:00 -> -10h
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    ISO Date to sub
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareIso($date, $locale = null);
-
-    /**
-     * Returns a RFC 822 compilant datestring from the date object.
-     * This function does not return the RFC date as object. Use copy() instead.
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return string
-     */
-    public function getArpa($locale = null);
-
-    /**
-     * Sets a RFC 822 date as new date for the date object.
-     * Only RFC 822 compilant date strings are accepted.
-     * For example: Sat, 14 Feb 09 00:31:30 +0100
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    RFC 822 to set
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setArpa($date, $locale = null);
-
-    /**
-     * Adds a RFC 822 date to the date object.
-     * ARPA messages are used in emails or HTTP Headers.
-     * Only RFC 822 compilant date strings are accepted.
-     * For example: Sat, 14 Feb 09 00:31:30 +0100
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    RFC 822 Date to add
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addArpa($date, $locale = null);
-
-    /**
-     * Subtracts a RFC 822 date from the date object.
-     * ARPA messages are used in emails or HTTP Headers.
-     * Only RFC 822 compilant date strings are accepted.
-     * For example: Sat, 14 Feb 09 00:31:30 +0100
-     * Returned is the new date object
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    RFC 822 Date to sub
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subArpa($date, $locale = null);
-
-    /**
-     * Compares a RFC 822 compilant date with the date object.
-     * ARPA messages are used in emails or HTTP Headers.
-     * Only RFC 822 compilant date strings are accepted.
-     * For example: Sat, 14 Feb 09 00:31:30 +0100
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    RFC 822 Date to sub
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareArpa($date, $locale = null);
-
-    /**
-     * Returns the time of sunrise for this date and a given location as new date object
-     * For a list of cities and correct locations use the class \Zend_Date_Cities
-     *
-     * @param  $location array - location of sunrise
-     *                   ['horizon']   -> civil, nautic, astronomical, effective (default)
-     *                   ['longitude'] -> longitude of location
-     *                   ['latitude']  -> latitude of location
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     * @throws \Zend_Date_Exception
-     */
-    public function getSunrise($location);
-
-    /**
-     * Returns the time of sunset for this date and a given location as new date object
-     * For a list of cities and correct locations use the class \Zend_Date_Cities
-     *
-     * @param  $location array - location of sunset
-     *                   ['horizon']   -> civil, nautic, astronomical, effective (default)
-     *                   ['longitude'] -> longitude of location
-     *                   ['latitude']  -> latitude of location
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     * @throws \Zend_Date_Exception
-     */
-    public function getSunset($location);
-
-    /**
-     * Returns an array with the sunset and sunrise dates for all horizon types
-     * For a list of cities and correct locations use the class \Zend_Date_Cities
-     *
-     * @param  $location array - location of suninfo
-     *                   ['horizon']   -> civil, nautic, astronomical, effective (default)
-     *                   ['longitude'] -> longitude of location
-     *                   ['latitude']  -> latitude of location
-     * @return array - [sunset|sunrise][effective|civil|nautic|astronomic]
-     * @throws \Zend_Date_Exception
-     */
-    public function getSunInfo($location);
-
-    /**
-     * Check a given year for leap year.
-     *
-     * @param  integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $year  Year to check
-     * @return boolean
-     */
-    public static function checkLeapYear($year);
-
-    /**
-     * Returns true, if the year is a leap year.
-     *
-     * @return boolean
-     */
-    public function isLeapYear();
-
-    /**
-     * Returns if the set date is todays date
-     *
-     * @return boolean
-     */
-    public function isToday();
-
-    /**
-     * Returns if the set date is yesterdays date
-     *
-     * @return boolean
-     */
-    public function isYesterday();
-
-    /**
-     * Returns if the set date is tomorrows date
-     *
-     * @return boolean
-     */
-    public function isTomorrow();
-
-    /**
-     * Returns the actual date as new date object
-     *
-     * @param  string|\Zend_Locale        $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public static function now($locale = null);
-
-    /**
-     * Returns only the year from the date object as new object.
-     * For example: 10.May.2000 10:30:00 -> 01.Jan.2000 00:00:00
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getYear($locale = null);
-
-    /**
-     * Sets a new year
-     * If the year is between 0 and 69, 2000 will be set (2000-2069)
-     * If the year if between 70 and 99, 1999 will be set (1970-1999)
-     * 3 or 4 digit years are set as expected. If you need to set year 0-99
-     * use set() instead.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Year to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setYear($year, $locale = null);
-
-    /**
-     * Adds the year to the existing date object
-     * If the year is between 0 and 69, 2000 will be added (2000-2069)
-     * If the year if between 70 and 99, 1999 will be added (1970-1999)
-     * 3 or 4 digit years are added as expected. If you need to add years from 0-99
-     * use add() instead.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Year to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addYear($year, $locale = null);
-
-    /**
-     * Subs the year from the existing date object
-     * If the year is between 0 and 69, 2000 will be subtracted (2000-2069)
-     * If the year if between 70 and 99, 1999 will be subtracted (1970-1999)
-     * 3 or 4 digit years are subtracted as expected. If you need to subtract years from 0-99
-     * use sub() instead.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $date    Year to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subYear($year, $locale = null);
-
-    /**
-     * Compares the year with the existing date object, ignoring other date parts.
-     * For example: 10.03.2000 -> 15.02.2000 -> true
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $year    Year to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareYear($year, $locale = null);
-
-    /**
-     * Returns only the month from the date object as new object.
-     * For example: 10.May.2000 10:30:00 -> 01.May.1970 00:00:00
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Zend_Date
-     */
-    public function getMonth($locale = null);
-
-    /**
-     * Sets a new month
-     * The month can be a number or a string. Setting months lower than 0 and greater then 12
-     * will result in adding or subtracting the relevant year. (12 months equal one year)
-     * If a localized monthname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Month to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setMonth($month, $locale = null);
-
-    /**
-     * Adds months to the existing date object.
-     * The month can be a number or a string. Adding months lower than 0 and greater then 12
-     * will result in adding or subtracting the relevant year. (12 months equal one year)
-     * If a localized monthname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Month to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addMonth($month, $locale = null);
-
-    /**
-     * Subtracts months from the existing date object.
-     * The month can be a number or a string. Subtracting months lower than 0 and greater then 12
-     * will result in adding or subtracting the relevant year. (12 months equal one year)
-     * If a localized monthname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Month to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subMonth($month, $locale = null);
-
-    /**
-     * Compares the month with the existing date object, ignoring other date parts.
-     * For example: 10.03.2000 -> 15.03.1950 -> true
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Month to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareMonth($month, $locale = null);
-
-    /**
-     * Returns the day as new date object
-     * Example: 20.May.1986 -> 20.Jan.1970 00:00:00
-     *
-     * @param $locale  string|\Zend_Locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getDay($locale = null);
-
-    /**
-     * Sets a new day
-     * The day can be a number or a string. Setting days lower then 0 or greater than the number of this months days
-     * will result in adding or subtracting the relevant month.
-     * If a localized dayname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     * Example: setDay('Montag', 'de_AT'); will set the monday of this week as day.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Day to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setDay($day, $locale = null);
-
-    /**
-     * Adds days to the existing date object.
-     * The day can be a number or a string. Adding days lower then 0 or greater than the number of this months days
-     * will result in adding or subtracting the relevant month.
-     * If a localized dayname is given it will be parsed with the default locale or the optional
-     * set locale.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Day to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addDay($day, $locale = null);
-
-    /**
-     * Subtracts days from the existing date object.
-     * The day can be a number or a string. Subtracting days lower then 0 or greater than the number of this months days
-     * will result in adding or subtracting the relevant month.
-     * If a localized dayname is given it will be parsed with the default locale or the optional
-     * set locale.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Day to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subDay($day, $locale = null);
-
-    /**
-     * Compares the day with the existing date object, ignoring other date parts.
-     * For example: 'Monday', 'en' -> 08.Jan.2007 -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $day     Day to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareDay($day, $locale = null);
-
-    /**
-     * Returns the weekday as new date object
-     * Weekday is always from 1-7
-     * Example: 09-Jan-2007 -> 2 = Tuesday -> 02-Jan-1970 (when 02.01.1970 is also Tuesday)
-     *
-     * @param $locale  string|\Zend_Locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getWeekday($locale = null);
-
-    /**
-     * Sets a new weekday
-     * The weekday can be a number or a string. If a localized weekday name is given,
-     * then it will be parsed as a date in $locale (defaults to the same locale as $this).
-     * Returned is the new date object.
-     * Example: setWeekday(3); will set the wednesday of this week as day.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Weekday to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setWeekday($weekday, $locale = null);
-
-    /**
-     * Adds weekdays to the existing date object.
-     * The weekday can be a number or a string.
-     * If a localized dayname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     * Example: addWeekday(3); will add the difference of days from the beginning of the month until
-     * wednesday.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Weekday to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addWeekday($weekday, $locale = null);
-
-    /**
-     * Subtracts weekdays from the existing date object.
-     * The weekday can be a number or a string.
-     * If a localized dayname is given it will be parsed with the default locale or the optional
-     * set locale.
-     * Returned is the new date object
-     * Example: subWeekday(3); will subtract the difference of days from the beginning of the month until
-     * wednesday.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $month   Weekday to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subWeekday($weekday, $locale = null);
-
-    /**
-     * Compares the weekday with the existing date object, ignoring other date parts.
-     * For example: 'Monday', 'en' -> 08.Jan.2007 -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $weekday  Weekday to compare
-     * @param  string|\Zend_Locale              $locale   OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareWeekday($weekday, $locale = null);
-
-    /**
-     * Returns the day of year as new date object
-     * Example: 02.Feb.1986 10:00:00 -> 02.Feb.1970 00:00:00
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getDayOfYear($locale = null);
-
-    /**
-     * Sets a new day of year
-     * The day of year is always a number.
-     * Returned is the new date object
-     * Example: 04.May.2004 -> setDayOfYear(10) -> 10.Jan.2004
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $day     Day of Year to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setDayOfYear($day, $locale = null);
-
-    /**
-     * Adds a day of year to the existing date object.
-     * The day of year is always a number.
-     * Returned is the new date object
-     * Example: addDayOfYear(10); will add 10 days to the existing date object.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $day     Day of Year to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addDayOfYear($day, $locale = null);
-
-    /**
-     * Subtracts a day of year from the existing date object.
-     * The day of year is always a number.
-     * Returned is the new date object
-     * Example: subDayOfYear(10); will subtract 10 days from the existing date object.
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $day     Day of Year to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subDayOfYear($day, $locale = null);
-
-    /**
-     * Compares the day of year with the existing date object.
-     * For example: compareDayOfYear(33) -> 02.Feb.2007 -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $day     Day of Year to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareDayOfYear($day, $locale = null);
-
-    /**
-     * Returns the hour as new date object
-     * Example: 02.Feb.1986 10:30:25 -> 01.Jan.1970 10:00:00
-     *
-     * @param $locale  string|\Zend_Locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getHour($locale = null);
-
-    /**
-     * Sets a new hour
-     * The hour is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> setHour(7); -> 04.May.1993 07:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $hour    Hour to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setHour($hour, $locale = null);
-
-    /**
-     * Adds hours to the existing date object.
-     * The hour is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> addHour(12); -> 05.May.1993 01:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $hour    Hour to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addHour($hour, $locale = null);
-
-    /**
-     * Subtracts hours from the existing date object.
-     * The hour is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> subHour(6); -> 05.May.1993 07:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $hour    Hour to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subHour($hour, $locale = null);
-
-    /**
-     * Compares the hour with the existing date object.
-     * For example: 10:30:25 -> compareHour(10) -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $hour    Hour to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareHour($hour, $locale = null);
-
-    /**
-     * Returns the minute as new date object
-     * Example: 02.Feb.1986 10:30:25 -> 01.Jan.1970 00:30:00
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getMinute($locale = null);
-
-    /**
-     * Sets a new minute
-     * The minute is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> setMinute(29); -> 04.May.1993 13:29:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $minute  Minute to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setMinute($minute, $locale = null);
-
-    /**
-     * Adds minutes to the existing date object.
-     * The minute is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> addMinute(65); -> 04.May.1993 13:12:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $minute  Minute to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addMinute($minute, $locale = null);
-
-    /**
-     * Subtracts minutes from the existing date object.
-     * The minute is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> subMinute(9); -> 04.May.1993 12:58:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $minute  Minute to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subMinute($minute, $locale = null);
-
-    /**
-     * Compares the minute with the existing date object.
-     * For example: 10:30:25 -> compareMinute(30) -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $minute  Hour to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareMinute($minute, $locale = null);
-
-    /**
-     * Returns the second as new date object
-     * Example: 02.Feb.1986 10:30:25 -> 01.Jan.1970 00:00:25
-     *
-     * @param  string|\Zend_Locale  $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getSecond($locale = null);
-
-    /**
-     * Sets new seconds to the existing date object.
-     * The second is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> setSecond(100); -> 04.May.1993 13:08:40
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface $second Second to set
-     * @param  string|\Zend_Locale             $locale (Optional) Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setSecond($second, $locale = null);
-
-    /**
-     * Adds seconds to the existing date object.
-     * The second is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> addSecond(65); -> 04.May.1993 13:08:30
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface $second Second to add
-     * @param  string|\Zend_Locale             $locale (Optional) Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addSecond($second, $locale = null);
-
-    /**
-     * Subtracts seconds from the existing date object.
-     * The second is always a number.
-     * Returned is the new date object
-     * Example: 04.May.1993 13:07:25 -> subSecond(10); -> 04.May.1993 13:07:15
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface $second Second to sub
-     * @param  string|\Zend_Locale             $locale (Optional) Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subSecond($second, $locale = null);
-
-    /**
-     * Compares the second with the existing date object.
-     * For example: 10:30:25 -> compareSecond(25) -> 0
-     * Returns if equal, earlier or later
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface $second Second to compare
-     * @param  string|\Zend_Locale             $locale (Optional) Locale for parsing input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     * @throws \Zend_Date_Exception
-     */
-    public function compareSecond($second, $locale = null);
-
-    /**
-     * Returns the precision for fractional seconds
-     *
-     * @return integer
-     */
-    public function getFractionalPrecision();
-
-    /**
-     * Sets a new precision for fractional seconds
-     *
-     * @param  integer $precision Precision for the fractional datepart 3 = milliseconds
-     * @throws \Zend_Date_Exception
-     * @return $this Provides fluid interface
-     */
-    public function setFractionalPrecision($precision);
-
-    /**
-     * Returns the milliseconds of the date object
-     *
-     * @return string
-     */
-    public function getMilliSecond();
-
-    /**
-     * Sets new milliseconds for the date object
-     * Example: setMilliSecond(550, 2) -> equals +5 Sec +50 MilliSec
-     *
-     * @param  integer|\Magento\Framework\Stdlib\DateTime\DateInterface $milli     (Optional) Millisecond to set, when null the actual millisecond is set
-     * @param  integer           $precision (Optional) Fraction precision of the given milliseconds
-     * @return $this Provides fluid interface
-     */
-    public function setMilliSecond($milli = null, $precision = null);
-
-    /**
-     * Adds milliseconds to the date object
-     *
-     * @param  integer|\Magento\Framework\Stdlib\DateTime\DateInterface $milli     (Optional) Millisecond to add, when null the actual millisecond is added
-     * @param  integer           $precision (Optional) Fractional precision for the given milliseconds
-     * @return $this Provides fluid interface
-     */
-    public function addMilliSecond($milli = null, $precision = null);
-
-    /**
-     * Subtracts a millisecond
-     *
-     * @param  integer|\Magento\Framework\Stdlib\DateTime\DateInterface $milli     (Optional) Millisecond to sub, when null the actual millisecond is subtracted
-     * @param  integer           $precision (Optional) Fractional precision for the given milliseconds
-     * @return $this Provides fluid interface
-     */
-    public function subMilliSecond($milli = null, $precision = null);
-
-    /**
-     * Compares only the millisecond part, returning the difference
-     *
-     * @param  integer|\Magento\Framework\Stdlib\DateTime\DateInterface  $milli  OPTIONAL Millisecond to compare, when null the actual millisecond is compared
-     * @param  integer            $precision  OPTIONAL Fractional precision for the given milliseconds
-     * @throws \Zend_Date_Exception On invalid input
-     * @return integer  0 = equal, 1 = later, -1 = earlier
-     */
-    public function compareMilliSecond($milli = null, $precision = null);
-
-    /**
-     * Returns the week as new date object using monday as beginning of the week
-     * Example: 12.Jan.2007 -> 08.Jan.1970 00:00:00
-     *
-     * @param $locale  string|\Zend_Locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function getWeek($locale = null);
-
-    /**
-     * Sets a new week. The week is always a number. The day of week is not changed.
-     * Returned is the new date object
-     * Example: 09.Jan.2007 13:07:25 -> setWeek(1); -> 02.Jan.2007 13:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $week    Week to set
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setWeek($week, $locale = null);
-
-    /**
-     * Adds a week. The week is always a number. The day of week is not changed.
-     * Returned is the new date object
-     * Example: 09.Jan.2007 13:07:25 -> addWeek(1); -> 16.Jan.2007 13:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $week    Week to add
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface  Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function addWeek($week, $locale = null);
-
-    /**
-     * Subtracts a week. The week is always a number. The day of week is not changed.
-     * Returned is the new date object
-     * Example: 09.Jan.2007 13:07:25 -> subWeek(1); -> 02.Jan.2007 13:07:25
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $week    Week to sub
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface Provides fluid interface
-     * @throws \Zend_Date_Exception
-     */
-    public function subWeek($week, $locale = null);
-
-    /**
-     * Compares only the week part, returning the difference
-     * Returned is the new date object
-     * Returns if equal, earlier or later
-     * Example: 09.Jan.2007 13:07:25 -> compareWeek(2); -> 0
-     *
-     * @param  string|integer|array|\Magento\Framework\Stdlib\DateTime\DateInterface  $week    Week to compare
-     * @param  string|\Zend_Locale              $locale  OPTIONAL Locale for parsing input
-     * @return integer 0 = equal, 1 = later, -1 = earlier
-     */
-    public function compareWeek($week, $locale = null);
-
-    /**
-     * Sets a new standard locale for the date object.
-     * This locale will be used for all functions
-     * Returned is the really set locale.
-     * Example: 'de_XX' will be set to 'de' because 'de_XX' does not exist
-     * 'xx_YY' will be set to 'root' because 'xx' does not exist
-     *
-     * @param  string|\Zend_Locale $locale (Optional) Locale for parsing input
-     * @throws \Zend_Date_Exception When the given locale does not exist
-     * @return $this Provides fluent interface
-     */
-    public function setLocale($locale = null);
-
-    /**
-     * Returns the actual set locale
-     *
-     * @return string
-     */
-    public function getLocale();
-
-    /**
-     * Checks if the given date is a real date or datepart.
-     * Returns false if a expected datepart is missing or a datepart exceeds its possible border.
-     * But the check will only be done for the expected dateparts which are given by format.
-     * If no format is given the standard dateformat for the actual locale is used.
-     * f.e. 30.February.2007 will return false if format is 'dd.MMMM.YYYY'
-     *
-     * @param  string|array|\Magento\Framework\Stdlib\DateTime\DateInterface $date   Date to parse for correctness
-     * @param  string                 $format (Optional) Format for parsing the date string
-     * @param  string|\Zend_Locale     $locale (Optional) Locale for parsing date parts
-     * @return boolean                True when all date parts are correct
-     */
-    public static function isDate($date, $format = null, $locale = null);
-
-    /**
-     * Sets a new timezone for calculation of $this object's gmt offset.
-     * For a list of supported timezones look here: http://php.net/timezones
-     * If no timezone can be detected or the given timezone is wrong UTC will be set.
-     *
-     * @param  string  $zone      OPTIONAL timezone for date calculation; defaults to date_default_timezone_get()
-     * @return \Zend_Date_DateObject Provides fluent interface
-     * @throws \Zend_Date_Exception
-     */
-    public function setTimezone($zone = null);
-
-    /**
-     * Return the timezone of $this object.
-     * The timezone is initially set when the object is instantiated.
-     *
-     * @return  string  actual set timezone string
-     */
-    public function getTimezone();
-
-    /**
-     * Return the offset to GMT of $this object's timezone.
-     * The offset to GMT is initially set when the object is instantiated using the currently,
-     * in effect, default timezone for PHP functions.
-     *
-     * @return  integer  seconds difference between GMT timezone and timezone when object was instantiated
-     */
-    public function getGmtOffset();
-}
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/DateTime.php b/lib/internal/Magento/Framework/Stdlib/DateTime/DateTime.php
index 6c9a15d46a0139fd900af6dc7815c302d67203cc..dc36a0755122edb792c32922c37ff1f8acddf4ee 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/DateTime.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/DateTime.php
@@ -114,7 +114,7 @@ class DateTime
             return false;
         }
         $date = $this->_localeDate->date($result);
-        $timestamp = $date->get(\Zend_Date::TIMESTAMP) - $date->get(\Zend_Date::TIMEZONE_SECS);
+        $timestamp = $date->getTimestamp() - $date->getTimezone()->getOffset($date);
         unset($date);
         return $timestamp;
     }
@@ -136,7 +136,7 @@ class DateTime
             $result = strtotime($input);
         }
         $date = $this->_localeDate->date($result);
-        $timestamp = $date->get(\Zend_Date::TIMESTAMP) + $date->get(\Zend_Date::TIMEZONE_SECS);
+        $timestamp = $date->getTimestamp() + $date->getTimezone()->getOffset($date);
         unset($date);
         return $timestamp;
     }
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/Date.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/Date.php
index 383b279eecd37cb279878efa2db64502bcb4692e..73ee29770c2e4879f74318f0915c245f303adcf5 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/Date.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/Date.php
@@ -37,7 +37,7 @@ class Date implements \Zend_Filter_Interface
     {
         $this->_localeDate = $localeDate;
         $this->_localToNormalFilter = new \Zend_Filter_LocalizedToNormalized(
-            ['date_format' => $this->_localeDate->getDateFormat(TimezoneInterface::FORMAT_TYPE_SHORT)]
+            ['date_format' => $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT)]
         );
         $this->_normalToLocalFilter = new \Zend_Filter_NormalizedToLocalized(
             ['date_format' => \Magento\Framework\Stdlib\DateTime::DATE_INTERNAL_FORMAT]
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/DateTime.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/DateTime.php
index 5d248a9233b8494d660e9501b49e5314bbd3e869..14b7b171b84ac0cfdc5aa15489a02c181150d701 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/DateTime.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Filter/DateTime.php
@@ -18,7 +18,7 @@ class DateTime extends Date
         $this->_localToNormalFilter = new \Zend_Filter_LocalizedToNormalized(
             [
                 'date_format' => $this->_localeDate->getDateTimeFormat(
-                    \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+                    \IntlDateFormatter::SHORT
                 ),
             ]
         );
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php
index f8e49a7ccbdb0058dee19b6bc180110e3dd622a1..2bd6553b4fb725a8b848497acf89c92e646f6c50 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php
@@ -14,10 +14,10 @@ class Timezone implements TimezoneInterface
      * @var array
      */
     protected $_allowedFormats = [
-        TimezoneInterface::FORMAT_TYPE_FULL,
-        TimezoneInterface::FORMAT_TYPE_LONG,
-        TimezoneInterface::FORMAT_TYPE_MEDIUM,
-        TimezoneInterface::FORMAT_TYPE_SHORT,
+        \IntlDateFormatter::FULL,
+        \IntlDateFormatter::LONG,
+        \IntlDateFormatter::MEDIUM,
+        \IntlDateFormatter::SHORT,
     ];
 
     /**
@@ -35,11 +35,6 @@ class Timezone implements TimezoneInterface
      */
     protected $_dateTime;
 
-    /**
-     * @var DateFactory
-     */
-    protected $_dateFactory;
-
     /**
      * @var string
      */
@@ -54,7 +49,6 @@ class Timezone implements TimezoneInterface
      * @param \Magento\Framework\App\ScopeResolverInterface $scopeResolver
      * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
      * @param \Magento\Framework\Stdlib\DateTime $dateTime
-     * @param DateFactory $dateFactory
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
      * @param string $scopeType
      * @param string $defaultTimezonePath
@@ -63,7 +57,6 @@ class Timezone implements TimezoneInterface
         \Magento\Framework\App\ScopeResolverInterface $scopeResolver,
         \Magento\Framework\Locale\ResolverInterface $localeResolver,
         \Magento\Framework\Stdlib\DateTime $dateTime,
-        DateFactory $dateFactory,
         \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
         $scopeType,
         $defaultTimezonePath
@@ -71,7 +64,6 @@ class Timezone implements TimezoneInterface
         $this->_scopeResolver = $scopeResolver;
         $this->_localeResolver = $localeResolver;
         $this->_dateTime = $dateTime;
-        $this->_dateFactory = $dateFactory;
         $this->_defaultTimezonePath = $defaultTimezonePath;
         $this->_scopeConfig = $scopeConfig;
         $this->_scopeType = $scopeType;
@@ -90,7 +82,7 @@ class Timezone implements TimezoneInterface
      */
     public function getDefaultTimezone()
     {
-        return TimezoneInterface::DEFAULT_TIMEZONE;
+        return 'UTC';
     }
 
     /**
@@ -104,9 +96,13 @@ class Timezone implements TimezoneInterface
     /**
      * {@inheritdoc}
      */
-    public function getDateFormat($type = null)
+    public function getDateFormat($type = \IntlDateFormatter::SHORT)
     {
-        return $this->_getTranslation($type, 'date');
+        return (new \IntlDateFormatter(
+            $this->_localeResolver->getLocale(),
+            $type,
+            \IntlDateFormatter::NONE
+        ))->getPattern();
     }
 
     /**
@@ -116,17 +112,21 @@ class Timezone implements TimezoneInterface
     {
         return preg_replace(
             '/(?<!y)yy(?!y)/',
-            'yyyy',
-            $this->_getTranslation(TimezoneInterface::FORMAT_TYPE_SHORT, 'date')
+            'Y',
+            $this->getDateFormat()
         );
     }
 
     /**
      * {@inheritdoc}
      */
-    public function getTimeFormat($type = null)
+    public function getTimeFormat($type = \IntlDateFormatter::SHORT)
     {
-        return $this->_getTranslation($type, 'time');
+        return (new \IntlDateFormatter(
+            $this->_localeResolver->getLocale(),
+            \IntlDateFormatter::NONE,
+            $type
+        ))->getPattern();
     }
 
     /**
@@ -139,26 +139,29 @@ class Timezone implements TimezoneInterface
 
     /**
      * {@inheritdoc}
+     * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function date($date = null, $part = null, $locale = null, $useTimezone = true)
+    public function date($date = null, $locale = null, $useTimezone = true)
     {
-        if (is_null($locale)) {
-            $locale = $this->_localeResolver->getLocale();
-        }
+        $locale = $locale ?: $this->_localeResolver->getLocale();
+        $timezone = $useTimezone
+            ? $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType)
+            : 'UTC';
 
         if (empty($date)) {
-            // $date may be false, but \Magento\Framework\Stdlib\DateTime\DateInterface uses strict compare
-            $date = null;
-        }
-        $date = $this->_dateFactory->create(['date' => $date, 'part' => $part, 'locale' => $locale]);
-        if ($useTimezone) {
-            $timezone = $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType);
-            if ($timezone) {
-                $date->setTimezone($timezone);
-            }
+            return new \DateTime('now', new \DateTimeZone($timezone));
+        } elseif ($date instanceof \DateTime) {
+            return $date->setTimezone(new \DateTimeZone($timezone));
+        } elseif (!is_numeric($date)) {
+            $formatter = new \IntlDateFormatter(
+                $locale,
+                \IntlDateFormatter::SHORT,
+                \IntlDateFormatter::SHORT,
+                $timezone
+            );
+            $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp();
         }
-
-        return $date;
+        return (new \DateTime(null, new \DateTimeZone($timezone)))->setTimestamp($date);
     }
 
     /**
@@ -167,12 +170,9 @@ class Timezone implements TimezoneInterface
     public function scopeDate($scope = null, $date = null, $includeTime = false)
     {
         $timezone = $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType, $scope);
-        $date = $this->_dateFactory->create(
-            ['date' => $date, 'part' => null, 'locale' => $this->_localeResolver->getLocale()]
-        );
-        $date->setTimezone($timezone);
+        $date = new \DateTime(is_numeric($date) ? '@' . $date : $date, new \DateTimeZone($timezone));
         if (!$includeTime) {
-            $date->setHour(0)->setMinute(0)->setSecond(0);
+            $date->setTime(0, 0, 0);
         }
         return $date;
     }
@@ -180,64 +180,15 @@ class Timezone implements TimezoneInterface
     /**
      * {@inheritdoc}
      */
-    public function formatDate($date = null, $format = TimezoneInterface::FORMAT_TYPE_SHORT, $showTime = false)
+    public function formatDate($date = null, $format = \IntlDateFormatter::SHORT, $showTime = false)
     {
-        if (!in_array($format, $this->_allowedFormats, true)) {
-            return $date;
-        }
-        if (!$date instanceof DateInterface && $date && !strtotime($date)) {
-            return '';
-        }
-        if (is_null($date)) {
-            $date = $this->date(gmdate('U'), null, null);
-        } elseif (!$date instanceof DateInterface) {
-            $date = $this->date(strtotime($date), null, null);
-        }
+        $formatTime = $showTime ? $format : \IntlDateFormatter::NONE;
 
-        if ($showTime) {
-            $format = $this->getDateTimeFormat($format);
-        } else {
-            $format = $this->getDateFormat($format);
+        if (!($date instanceof \DateTime)) {
+            $date = new \DateTime($date);
         }
 
-        return $date->toString($format);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function formatTime($time = null, $format = TimezoneInterface::FORMAT_TYPE_SHORT, $showDate = false)
-    {
-        if (!in_array($format, $this->_allowedFormats, true)) {
-            return $time;
-        }
-
-        if (is_null($time)) {
-            $date = $this->date(time());
-        } elseif ($time instanceof DateInterface) {
-            $date = $time;
-        } else {
-            $date = $this->date(strtotime($time));
-        }
-
-        if ($showDate) {
-            $format = $this->getDateTimeFormat($format);
-        } else {
-            $format = $this->getTimeFormat($format);
-        }
-
-        return $date->toString($format);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function utcDate($scope, $date, $includeTime = false, $format = null)
-    {
-        $dateObj = $this->scopeDate($scope, $date, $includeTime);
-        $dateObj->set($date, $format);
-        $dateObj->setTimezone(TimezoneInterface::DEFAULT_TIMEZONE);
-        return $dateObj;
+        return $this->formatDateTime($date, $format, $formatTime);
     }
 
     /**
@@ -246,11 +197,7 @@ class Timezone implements TimezoneInterface
     public function scopeTimeStamp($scope = null)
     {
         $timezone = $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType, $scope);
-        $currentTimezone = @date_default_timezone_get();
-        @date_default_timezone_set($timezone);
-        $date = date('Y-m-d H:i:s');
-        @date_default_timezone_set($currentTimezone);
-        return strtotime($date);
+        return (new \DateTime('now', new \DateTimeZone($timezone ?: 'UTC')))->getTimestamp();
     }
 
     /**
@@ -280,15 +227,30 @@ class Timezone implements TimezoneInterface
     }
 
     /**
-     * Returns a localized information string, supported are several types of information.
-     * For detailed information about the types look into the documentation
-     *
-     * @param string $value Name to get detailed information about
-     * @param string $path (Optional) Type of information to return
-     * @return string|false The wished information in the given language
+     * @param \DateTimeInterface $date
+     * @param int $dateType
+     * @param int $timeType
+     * @param null $locale
+     * @param null $timezone
+     * @param string|null $pattern
+     * @return mixed
      */
-    protected function _getTranslation($value = null, $path = null)
-    {
-        return $this->_localeResolver->getLocale()->getTranslation($value, $path, $this->_localeResolver->getLocale());
+    public function formatDateTime(
+        \DateTimeInterface $date,
+        $dateType = \IntlDateFormatter::SHORT,
+        $timeType = \IntlDateFormatter::SHORT,
+        $locale = null,
+        $timezone = null,
+        $pattern = null
+    ) {
+        $formatter = new \IntlDateFormatter(
+            $locale ?: $this->_localeResolver->getLocale(),
+            $dateType,
+            $timeType,
+            $timezone ?: $date->getTimezone(),
+            null,
+            $pattern
+        );
+        return $formatter->format($date);
     }
 }
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
index 725f64ec64034ff9aaaf72d033d9e98f3005d2b6..48bbbc73796dba44f8d925ac6e56a61641363d80 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
@@ -10,22 +10,6 @@ namespace Magento\Framework\Stdlib\DateTime;
 
 interface TimezoneInterface
 {
-    /**
-     * Default timezone
-     */
-    const DEFAULT_TIMEZONE = 'UTC';
-
-    /**
-     * Date and time format codes
-     */
-    const FORMAT_TYPE_FULL = 'full';
-
-    const FORMAT_TYPE_LONG = 'long';
-
-    const FORMAT_TYPE_MEDIUM = 'medium';
-
-    const FORMAT_TYPE_SHORT = 'short';
-
     /**
      * Return path to default timezone
      *
@@ -43,10 +27,10 @@ interface TimezoneInterface
     /**
      * Retrieve ISO date format
      *
-     * @param   string $type
+     * @param   int $type
      * @return  string
      */
-    public function getDateFormat($type = null);
+    public function getDateFormat($type = \IntlDateFormatter::SHORT);
 
     /**
      * Retrieve short date format with 4-digit year
@@ -72,39 +56,25 @@ interface TimezoneInterface
     public function getDateTimeFormat($type);
 
     /**
-     * Create \Magento\Framework\Stdlib\DateTime\DateInterface object for current locale
+     * Create \DateTime object for current locale
      *
      * @param mixed              $date
-     * @param string             $part
-     * @param string|Zend_Locale $locale
+     * @param string $locale
      * @param bool               $useTimezone
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return \DateTime
      */
-    public function date($date = null, $part = null, $locale = null, $useTimezone = true);
+    public function date($date = null, $locale = null, $useTimezone = true);
 
     /**
-     * Create \Magento\Framework\Stdlib\DateTime\DateInterface object with date converted to scope timezone and scope Locale
+     * Create \DateTime object with date converted to scope timezone and scope Locale
      *
      * @param   mixed $scope Information about scope
-     * @param   string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface|array|null $date date in UTC
+     * @param   string|integer|\DateTime|array|null $date date in UTC
      * @param   boolean $includeTime flag for including time to date
-     * @return  \Magento\Framework\Stdlib\DateTime\DateInterface
+     * @return  \DateTime
      */
     public function scopeDate($scope = null, $date = null, $includeTime = false);
 
-    /**
-     * Create \Magento\Framework\Stdlib\DateTime\DateInterface object with date converted from scope's timezone
-     * to UTC time zone. Date can be passed in format of scope's locale
-     * or in format which was passed as parameter.
-     *
-     * @param mixed $scope Information about scope
-     * @param string|integer|\Magento\Framework\Stdlib\DateTime\DateInterface|array|null $date date in scope's timezone
-     * @param boolean $includeTime flag for including time to date
-     * @param null|string $format
-     * @return \Magento\Framework\Stdlib\DateTime\DateInterface
-     */
-    public function utcDate($scope, $date, $includeTime = false, $format = null);
-
     /**
      * Get scope timestamp
      * Timestamp will be built with scope timezone settings
@@ -117,31 +87,17 @@ interface TimezoneInterface
     /**
      * Format date using current locale options and time zone.
      *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface|null $date
-     * @param string $format
+     * @param \DateTime|null $date
+     * @param int $format
      * @param bool $showTime
      * @return string
      */
     public function formatDate(
         $date = null,
-        $format = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+        $format = \IntlDateFormatter::SHORT,
         $showTime = false
     );
 
-    /**
-     * Format time using current locale options
-     *
-     * @param \Magento\Framework\Stdlib\DateTime\DateInterface|null $time
-     * @param string $format
-     * @param bool $showDate
-     * @return string
-     */
-    public function formatTime(
-        $time = null,
-        $format = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
-        $showDate = false
-    );
-
     /**
      * Gets the scope config timezone
      *
@@ -158,4 +114,22 @@ interface TimezoneInterface
      * @return bool
      */
     public function isScopeDateInInterval($scope, $dateFrom = null, $dateTo = null);
+
+    /**
+     * @param \DateTimeInterface $date
+     * @param int $dateType
+     * @param int $timeType
+     * @param null $locale
+     * @param null $timezone
+     * @param string|null $pattern
+     * @return mixed
+     */
+    public function formatDateTime(
+        \DateTimeInterface $date,
+        $dateType = \IntlDateFormatter::SHORT,
+        $timeType = \IntlDateFormatter::SHORT,
+        $locale = null,
+        $timezone = null,
+        $pattern = null
+    );
 }
diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/DateTimeTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/DateTimeTest.php
deleted file mode 100644
index b68610ddeb7f129750a1cfe9e49f878f0c0edebe..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/DateTimeTest.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\Stdlib\Test\Unit\DateTime;
-
-class DateTimeTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var \Magento\Framework\Stdlib\DateTime\DateTime */
-    protected $dateTime;
-
-    /** @var \Magento\Framework\Stdlib\DateTime\Date */
-    protected $date;
-
-    /** @var  \Magento\Framework\Stdlib\DateTime\Timezone|\PHPUnit_Framework_MockObject_MockObject */
-    protected $localeDate;
-
-    protected function setUp()
-    {
-        require_once __DIR__ . '/../_files/gmdate_mock.php';
-        $this->date = new \Magento\Framework\Stdlib\DateTime\Date(1403832149);
-
-        $this->localeDate = $this->getMock(
-            'Magento\Framework\Stdlib\DateTime\Timezone',
-            ['getConfigTimezone', 'date'],
-            [],
-            '',
-            false
-        );
-        $this->localeDate->expects($this->any())->method('getConfigTimezone')
-            ->will($this->returnValue('America/Los_Angeles'));
-        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $this->dateTime = $objectManager->getObject(
-            'Magento\Framework\Stdlib\DateTime\DateTime',
-            ['localeDate' => $this->localeDate]
-        );
-    }
-
-    public function testCalculateOffset()
-    {
-        if (date('I')) {
-            $this->assertSame(-25200, $this->dateTime->calculateOffset());
-        } else {
-            $this->assertSame(-28800, $this->dateTime->calculateOffset());
-        }
-        $curZone = @date_default_timezone_get();
-        date_default_timezone_set('Europe/Kiev');
-        if (date('I')) {
-            $this->assertSame(10800, $this->dateTime->calculateOffset('Europe/Kiev'));
-        } else {
-            $this->assertSame(7200, $this->dateTime->calculateOffset('Europe/Kiev'));
-        }
-        date_default_timezone_set($curZone);
-    }
-
-    public function testGmtDate()
-    {
-        $time = 1403858418;
-        $this->localeDate->expects($this->any())->method('date')->with($time)
-            ->will($this->returnValue($this->date));
-        $this->assertSame(false, $this->dateTime->gmtDate(null, 'tro-lo-lo'));
-        $this->assertSame('2014-06-27', $this->dateTime->gmtDate('Y-m-d', $time));
-    }
-
-    public function testDate()
-    {
-        $time = 1403858418;
-        $this->localeDate->expects($this->any())->method('date')->with($time)
-            ->will($this->returnValue($this->date));
-        $this->assertSame('2014-06-26', $this->dateTime->date('Y-m-d', $time));
-        $this->assertSame('2014-06-26 11:22:29', $this->dateTime->date(null, $time));
-    }
-
-    public function testGmtTimestamp()
-    {
-        $time = time();
-        $this->localeDate->expects($this->at(0))->method('date')->with($time)
-            ->will($this->returnValue($this->date));
-        $this->localeDate->expects($this->at(1))->method('date')->with(strtotime("10 September 2000"))
-            ->will($this->returnValue($this->date));
-
-        $this->assertSame(1403857349, $this->dateTime->gmtTimestamp($time));
-        $this->assertSame(1403857349, $this->dateTime->gmtTimestamp("10 September 2000"));
-        $this->assertSame(false, $this->dateTime->gmtTimestamp("la-la-la"));
-        $this->assertSame(1404377188, $this->dateTime->gmtTimestamp());
-    }
-
-    public function testTimestamp()
-    {
-        $time = time();
-        $this->localeDate->expects($this->at(0))->method('date')->with(1404377188)
-            ->will($this->returnValue($this->date));
-        $this->localeDate->expects($this->at(1))->method('date')->with($time)
-            ->will($this->returnValue($this->date));
-        $this->localeDate->expects($this->at(2))->method('date')->with(strtotime("10 September 2000"))
-            ->will($this->returnValue($this->date));
-
-        $this->assertSame(1403806949, $this->dateTime->timestamp());
-        $this->assertSame(1403806949, $this->dateTime->timestamp($time));
-        $this->assertSame(1403806949, $this->dateTime->timestamp("10 September 2000"));
-    }
-
-    public function testGetGmtOffset()
-    {
-        if (date('I')) {
-            $this->assertSame(-25200, $this->dateTime->getGmtOffset('seconds'));
-            $this->assertSame(-25200, $this->dateTime->getGmtOffset('seconds11'));
-            $this->assertSame(-420, $this->dateTime->getGmtOffset('minutes'));
-            $this->assertSame(-7, $this->dateTime->getGmtOffset('hours'));
-        } else {
-            $this->assertSame(-28800, $this->dateTime->getGmtOffset('seconds'));
-            $this->assertSame(-28800, $this->dateTime->getGmtOffset('seconds11'));
-            $this->assertSame(-480, $this->dateTime->getGmtOffset('minutes'));
-            $this->assertSame(-8, $this->dateTime->getGmtOffset('hours'));
-        }
-    }
-}
diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTest.php
index b11a27c2d214f0d1873655aebec102f28b53c5f5..1620d3e73e945c04e86496124d06112e9a63ef5c 100644
--- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTest.php
+++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTest.php
@@ -17,7 +17,7 @@ class DateTest extends \PHPUnit_Framework_TestCase
         )->method(
             'getDateFormat'
         )->with(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+            \IntlDateFormatter::SHORT
         )->will(
             $this->returnValue('MM-dd-yyyy')
         );
diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTimeTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTimeTest.php
index beca4b126d13a165aa832bcbc1bde6f33d81da34..5cd2f61d67dc54d353f02167562fd7ccfe1ca647 100644
--- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTimeTest.php
+++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/Filter/DateTimeTest.php
@@ -17,7 +17,7 @@ class DateTimeTest extends \PHPUnit_Framework_TestCase
         )->method(
             'getDateTimeFormat'
         )->with(
-            \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
+            \IntlDateFormatter::SHORT
         )->will(
             $this->returnValue('HH:mm:ss MM-dd-yyyy')
         );
diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php
deleted file mode 100644
index 818f80c660948be3817f3ee6cec5285424b4a59c..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\Stdlib\Test\Unit\DateTime;
-
-use Magento\Directory\Helper\Data;
-
-class TimezoneTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var \Magento\Framework\Stdlib\DateTime\Timezone */
-    protected $timezone;
-
-    /** @var \Magento\Backend\Model\Locale\Resolver\Interceptor|\PHPUnit_Framework_MockObject_MockObject */
-    protected $localeResolver;
-
-    /** @var \Magento\Framework\Stdlib\DateTime\DateFactory|\PHPUnit_Framework_MockObject_MockObject */
-    protected $dateFactory;
-
-    /** @var \Magento\Framework\App\Config|\PHPUnit_Framework_MockObject_MockObject */
-    protected $scopeConfig;
-
-    /** @var \Magento\Framework\Locale|\PHPUnit_Framework_MockObject_MockObject */
-    protected $locale;
-
-    /** @var \Magento\Framework\Stdlib\DateTime|\PHPUnit_Framework_MockObject_MockObject */
-    protected $dateTime;
-
-    /** @var \Magento\Store\Model\Resolver\Store|\PHPUnit_Framework_MockObject_MockObject */
-    protected $scopeResolver;
-
-    protected function setUp()
-    {
-        $this->locale = $this->getMock('Magento\Framework\Locale', ['getTranslation', 'toString'], [], '', false);
-        $this->dateTime = $this->getMock('Magento\Framework\Stdlib\DateTime', ['isEmptyDate'], [], '', false);
-        $this->scopeConfig = $this->getMock('Magento\Framework\App\Config', ['getValue'], [], '', false);
-        $this->localeResolver = $this->getMock('Magento\Backend\Model\Locale\Resolver', ['getLocale'], [], '', false);
-        $this->dateFactory = $this->getMock('Magento\Framework\Stdlib\DateTime\DateFactory', ['create'], [], '', false);
-        $this->scopeResolver = $this->getMock('Magento\Store\Model\Resolver\Store', ['getScope'], [], '', false);
-
-        $this->localeResolver->expects($this->any())->method('getLocale')->will($this->returnValue($this->locale));
-        $this->scopeConfig->expects($this->any())
-            ->method('getValue')
-            ->with(Data::XML_PATH_DEFAULT_TIMEZONE, 'store')
-            ->will($this->returnValue('America/Los_Angeles'));
-        $this->locale->expects($this->any())->method('toString')->will($this->returnValue('en_US'));
-
-        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $this->timezone = $objectManager->getObject(
-            'Magento\Framework\Stdlib\DateTime\Timezone',
-            [
-                'scopeResolver' => $this->scopeResolver,
-                'localeResolver' => $this->localeResolver,
-                'dateTime' => $this->dateTime,
-                'dateFactory' => $this->dateFactory,
-                'scopeConfig' => $this->scopeConfig,
-                'scopeType' => 'store',
-                'defaultTimezonePath' => Data::XML_PATH_DEFAULT_TIMEZONE
-            ]
-        );
-    }
-
-    public function testGetDateFormatWithLongYear()
-    {
-        $this->markTestIncomplete('MAGETWO-26166');
-        $this->locale->staticExpects($this->once())->method('getTranslation')->with('short', 'date')
-            ->will($this->returnValue('M/d/yy'));
-        $this->assertSame('M/d/yyyy', $this->timezone->getDateFormatWithLongYear());
-    }
-
-    public function testDate()
-    {
-        $this->dateFactory->expects($this->any())->method('create')
-            ->with(['date' => null, 'part' => null, 'locale' => $this->locale])
-            ->will($this->returnValue(new \Magento\Framework\Stdlib\DateTime\Date(null, null, $this->locale)));
-        $date = $this->timezone->date();
-        $this->assertSame('America/Los_Angeles', $date->getTimezone());
-    }
-
-    public function testFormatDate()
-    {
-        $time = date('M j, Y');
-        $date1 = new \Magento\Framework\Stdlib\DateTime\Date(1347260400, null, $this->locale);
-        $date2 = new \Magento\Framework\Stdlib\DateTime\Date(strtotime($time), null, $this->locale);
-
-        $this->dateFactory->expects($this->at(0))->method('create')
-            ->will($this->returnValue($date1));
-        $this->dateFactory->expects($this->at(1))->method('create')
-            ->will($this->returnValue($date1));
-        $this->dateFactory->expects($this->at(2))->method('create')
-            ->will($this->returnValue($date2));
-        $this->dateFactory->expects($this->exactly(3))->method('create');
-
-        $this->markTestIncomplete('MAGETWO-26166');
-        $this->locale->staticExpects($this->at(0))->method('getTranslation')
-            ->with('medium', 'date', $this->locale)
-            ->will($this->returnValue('MMM d, y'));
-        $this->locale->staticExpects($this->at(1))->method('getTranslation')
-            ->with('medium', 'time', $this->locale)
-            ->will($this->returnValue('h:mm:ss a'));
-        $this->locale->staticExpects($this->at(2))->method('getTranslation')
-            ->with('medium', 'date', $this->locale)
-            ->will($this->returnValue('MMM d, y'));
-        $this->locale->staticExpects($this->at(3))->method('getTranslation')
-            ->with('medium', 'date', $this->locale)
-            ->will($this->returnValue('MMM d, y'));
-        $this->locale->staticExpects($this->exactly(4))->method('getTranslation');
-
-        $this->assertSame(
-            'Sep 10, 2012 12:00:00 AM',
-            $this->timezone->formatDate("10 September 2012", 'medium', true)
-        );
-        $this->assertSame(
-            'Sep 10, 2012',
-            $this->timezone->formatDate("10 September 2012", 'medium')
-        );
-        $this->assertSame(
-            $time,
-            $this->timezone->formatDate(null, 'medium')
-        );
-        $this->assertSame('date', $this->timezone->formatDate('date', 'wrong'));
-        $this->assertSame('', $this->timezone->formatDate('date'));
-    }
-
-    public function testFormatTime()
-    {
-        $time = date('M j, Y g:m:s A');
-        $date1 = new \Magento\Framework\Stdlib\DateTime\Date(1347260470, null, $this->locale);
-        $date2 = new \Magento\Framework\Stdlib\DateTime\Date(strtotime($time), null, $this->locale);
-
-        $this->dateFactory->expects($this->at(0))->method('create')
-            ->with(['date' => 1347260470, 'part' => null, 'locale' => $this->locale])
-            ->will($this->returnValue($date1));
-        $this->dateFactory->expects($this->at(1))->method('create')->will($this->returnValue($date2));
-        $this->dateFactory->expects($this->exactly(2))->method('create');
-
-        $this->markTestIncomplete('MAGETWO-26166');
-        $this->locale->staticExpects($this->at(0))->method('getTranslation')
-            ->with('medium', 'time', $this->locale)
-            ->will($this->returnValue('h:mm:ss a'));
-        $this->locale->staticExpects($this->at(1))->method('getTranslation')
-            ->with('medium', 'time', $this->locale)
-            ->will($this->returnValue('h:mm:ss a'));
-        $this->locale->staticExpects($this->at(2))->method('getTranslation')
-            ->with('medium', 'date', $this->locale)
-            ->will($this->returnValue('MMM d, y'));
-        $this->locale->staticExpects($this->at(3))->method('getTranslation')
-            ->with('medium', 'time', $this->locale)
-            ->will($this->returnValue('h:mm:ss a'));
-        $this->locale->staticExpects($this->exactly(4))->method('getTranslation');
-
-        $this->assertSame('10 September 2012', $this->timezone->formatTime('10 September 2012', 'wrong_type'));
-        $this->assertSame('12:01:10 AM', $this->timezone->formatTime('September 10, 2012 12:01:10 AM', 'medium'));
-        $this->assertSame('12:01:10 AM', $this->timezone->formatTime($date1, 'medium'));
-        $this->assertSame($time, $this->timezone->formatTime(null, 'medium', true));
-    }
-
-    public function testUtcDate()
-    {
-        $this->dateFactory->expects($this->any())->method('create')
-            ->with(['date' => 1347260470, 'part' => null, 'locale' => $this->locale])
-            ->will($this->returnValue(new \Magento\Framework\Stdlib\DateTime\Date(1347260470, null, $this->locale)));
-
-        $date = $this->timezone->utcDate(Data::XML_PATH_DEFAULT_TIMEZONE, 1347260470);
-        $this->assertSame('UTC', $date->getTimezone());
-    }
-
-    public function testIsScopeDateInInterval()
-    {
-        $scope = $this->getMock('Magento\Framework\App\ScopeInterface', ['getCode', 'getId']);
-        $this->scopeResolver->expects($this->any())->method('getScope')->will($this->returnValue($scope));
-        $this->dateTime->expects($this->at(0))->method('isEmptyDate')->will($this->returnValue(false));
-        $this->dateTime->expects($this->at(1))->method('isEmptyDate')->will($this->returnValue(false));
-        $this->dateTime->expects($this->at(2))->method('isEmptyDate')->will($this->returnValue(true));
-        $this->dateTime->expects($this->at(3))->method('isEmptyDate')->will($this->returnValue(true));
-
-        $this->assertFalse($this->timezone->isScopeDateInInterval('store'));
-        $this->assertTrue($this->timezone->isScopeDateInInterval('store', null, '10 September 2036'));
-    }
-}
diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTimeTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTimeTest.php
deleted file mode 100644
index bcad771f8db8df8f07aa345745103d13afdcb5d4..0000000000000000000000000000000000000000
--- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTimeTest.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/**
- * \Magento\Framework\Stdlib\DateTime test case
- */
-namespace Magento\Framework\Stdlib\Test\Unit;
-
-class DateTimeTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Magento\Framework\Stdlib\DateTime
-     */
-    protected $_dateTime;
-
-    protected function setUp()
-    {
-        $this->_dateTime = new \Magento\Framework\Stdlib\DateTime();
-    }
-
-    public function testToTimestamp()
-    {
-        $date = new \Magento\Framework\Stdlib\DateTime\Date();
-        $dateTime = new \Magento\Framework\Stdlib\DateTime();
-        $this->assertEquals($date->getTimestamp(), $dateTime->toTimestamp($date));
-
-        $this->assertEquals(time(), $dateTime->toTimestamp(true));
-
-        $date = '2012-07-19 16:52';
-        $this->assertEquals(strtotime($date), $dateTime->toTimestamp($date));
-    }
-
-    public function testNow()
-    {
-        $this->assertEquals(date(\Magento\Framework\Stdlib\DateTime::DATE_PHP_FORMAT), $this->_dateTime->now(true));
-        $this->assertEquals(
-            date(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT),
-            $this->_dateTime->now(false)
-        );
-    }
-
-    /**
-     * @dataProvider formatDateDataProvider
-     *
-     * expectedFormat is to be in the Y-m-d type format for the date you are expecting,
-     * expectedResult is if a specific date is expected.
-     */
-    public function testFormatDate($date, $includeTime, $expectedFormat, $expectedResult = null)
-    {
-        $dateTime = new \Magento\Framework\Stdlib\DateTime();
-        $actual = $dateTime->formatDate($date, $includeTime);
-        if ($expectedFormat != '') {
-            $expectedResult = date($expectedFormat);
-        } else {
-            if ($expectedResult === null) {
-                $expectedResult = '';
-            }
-        }
-        $this->assertEquals($expectedResult, $actual);
-    }
-
-    /**
-     * @return array
-     */
-    public function formatDateDataProvider()
-    {
-        // Take care when calling date here as it can be called much earlier than when testFormatDate
-        // executes thus causing a discrepancy in the actual vs expected time. See MAGETWO-10296
-        $date = new \Magento\Framework\Stdlib\DateTime\Date();
-        return [
-            'null' => [null, false, ''],
-            'null including Time' => [null, true, ''],
-            'Bool true' => [true, false, 'Y-m-d'],
-            'Bool true including Time' => [true, true, 'Y-m-d H:i:s'],
-            'Bool false' => [false, false, ''],
-            'Bool false including Time' => [false, true, ''],
-            'Zend Date' => [$date, false, date('Y-m-d', $date->getTimestamp())],
-            'Zend Date including Time' => [$date, true, date('Y-m-d H:i:s', $date->getTimestamp())]
-        ];
-    }
-
-    /**
-     * @param string $date
-     * @param bool $expected
-     *
-     * @dataProvider isEmptyDateDataProvider
-     */
-    public function testIsEmptyDate($date, $expected)
-    {
-        $actual = $this->_dateTime->isEmptyDate($date);
-        $this->assertEquals($actual, $expected);
-    }
-
-    /**
-     * @return array
-     */
-    public function isEmptyDateDataProvider()
-    {
-        return [
-            ['', true],
-            [' ', true],
-            ['0000-00-00', true],
-            ['0000-00-00 00:00:00', true],
-            ['2000-10-10', false],
-            ['2000-10-10 10:10:10', false]
-        ];
-    }
-}
diff --git a/lib/internal/Magento/Framework/Test/Unit/TranslateTest.php b/lib/internal/Magento/Framework/Test/Unit/TranslateTest.php
index fca377e04d86651e5192e806c4f401e134326429..2b5801c531335135f480cd1d2032c827c875e97b 100644
--- a/lib/internal/Magento/Framework/Test/Unit/TranslateTest.php
+++ b/lib/internal/Magento/Framework/Test/Unit/TranslateTest.php
@@ -224,13 +224,13 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
 
     public function testGetLocale()
     {
-        $this->locale->expects($this->once())->method('getLocaleCode')->will($this->returnValue('en_US'));
+        $this->locale->expects($this->once())->method('getLocale')->will($this->returnValue('en_US'));
         $this->assertEquals('en_US', $this->translate->getLocale());
 
-        $this->locale->expects($this->never())->method('getLocaleCode');
+        $this->locale->expects($this->never())->method('getLocale');
         $this->assertEquals('en_US', $this->translate->getLocale());
 
-        $this->locale->expects($this->never())->method('getLocaleCode');
+        $this->locale->expects($this->never())->method('getLocale');
         $this->translate->setLocale('en_GB');
         $this->assertEquals('en_GB', $this->translate->getLocale());
     }
@@ -238,7 +238,7 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
     public function testSetLocale()
     {
         $this->translate->setLocale('en_GB');
-        $this->locale->expects($this->never())->method('getLocaleCode');
+        $this->locale->expects($this->never())->method('getLocale');
         $this->assertEquals('en_GB', $this->translate->getLocale());
     }
 
@@ -270,7 +270,7 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
      */
     protected function expectsSetConfig($themeId, $localeCode = 'en_US')
     {
-        $this->locale->expects($this->any())->method('getLocaleCode')->will($this->returnValue($localeCode));
+        $this->locale->expects($this->any())->method('getLocale')->will($this->returnValue($localeCode));
         $scope = new \Magento\Framework\Object(['code' => 'frontendCode', 'id' => 1]);
         $scopeAdmin = new \Magento\Framework\Object(['code' => 'adminCode', 'id' => 0]);
         $this->scopeResolver->expects($this->any())
diff --git a/lib/internal/Magento/Framework/Translate.php b/lib/internal/Magento/Framework/Translate.php
index 285dc1940289257695077fbfbbe6a744c3385443..5cf4c5a87940f9f540cb21b037600ee7432dd777 100644
--- a/lib/internal/Magento/Framework/Translate.php
+++ b/lib/internal/Magento/Framework/Translate.php
@@ -373,7 +373,7 @@ class Translate implements \Magento\Framework\TranslateInterface
     public function getLocale()
     {
         if (null === $this->_localeCode) {
-            $this->_localeCode = $this->_locale->getLocaleCode();
+            $this->_localeCode = $this->_locale->getLocale();
         }
         return $this->_localeCode;
     }
diff --git a/lib/internal/Magento/Framework/Translate/AbstractAdapter.php b/lib/internal/Magento/Framework/Translate/AbstractAdapter.php
index d059728f61532b288f7861df2298730d945ccc1d..ebee9ba111b3a38f3d91932a94c5283200a59a83 100644
--- a/lib/internal/Magento/Framework/Translate/AbstractAdapter.php
+++ b/lib/internal/Magento/Framework/Translate/AbstractAdapter.php
@@ -16,7 +16,7 @@ abstract class AbstractAdapter extends \Zend_Translate_Adapter implements Adapte
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      * @param mixed $data
-     * @param string|\Zend_Locale $locale
+     * @param string $locale
      * @param array $options (optional)
      * @return array
      */
@@ -45,7 +45,7 @@ abstract class AbstractAdapter extends \Zend_Translate_Adapter implements Adapte
      * Stub for setLocale functionality
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     * @param string|\Zend_Locale $locale
+     * @param string $locale
      * @return $this
      */
     public function setLocale($locale)
diff --git a/lib/internal/Magento/Framework/View/Asset/Bundle.php b/lib/internal/Magento/Framework/View/Asset/Bundle.php
index 81a8d7735875774140bda849ee381118659aa64b..4f9d0e68ef62b1c980a519a38a071340c5150fa2 100644
--- a/lib/internal/Magento/Framework/View/Asset/Bundle.php
+++ b/lib/internal/Magento/Framework/View/Asset/Bundle.php
@@ -99,7 +99,7 @@ class Bundle
     {
         /** @var FallbackContext $context */
         $context = $asset->getContext();
-        return $context->getAreaCode() . ':' . $context->getThemePath() . ':' . $context->getLocaleCode();
+        return $context->getAreaCode() . ':' . $context->getThemePath() . ':' . $context->getLocale();
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/View/Asset/File/FallbackContext.php b/lib/internal/Magento/Framework/View/Asset/File/FallbackContext.php
index 171d4fc93bfc588348fa98e7c5a6ca0946847aa1..9fadcbb3a4d69e17ff97a4a4b63482d067b9521e 100644
--- a/lib/internal/Magento/Framework/View/Asset/File/FallbackContext.php
+++ b/lib/internal/Magento/Framework/View/Asset/File/FallbackContext.php
@@ -79,7 +79,7 @@ class FallbackContext extends Context
      *
      * @return string
      */
-    public function getLocaleCode()
+    public function getLocale()
     {
         return $this->locale;
     }
diff --git a/lib/internal/Magento/Framework/View/Asset/Source.php b/lib/internal/Magento/Framework/View/Asset/Source.php
index a1e5837842206e6d6190c2ec20a73481707b7295..747ab55ab07c3d4952587065da0fa6f47841d33a 100644
--- a/lib/internal/Magento/Framework/View/Asset/Source.php
+++ b/lib/internal/Magento/Framework/View/Asset/Source.php
@@ -205,7 +205,7 @@ class Source
         $sourceFile = $this->fallback->getFile(
             $context->getAreaCode(),
             $themeModel,
-            $context->getLocaleCode(),
+            $context->getLocale(),
             $asset->getFilePath(),
             $asset->getModule()
         );
diff --git a/lib/internal/Magento/Framework/View/Element/AbstractBlock.php b/lib/internal/Magento/Framework/View/Element/AbstractBlock.php
index 73f90325de211f2ba007a0eef0125ece92d531ad..31348d7cd6cb20f74338c7d795c3c6f22f846329 100644
--- a/lib/internal/Magento/Framework/View/Element/AbstractBlock.php
+++ b/lib/internal/Magento/Framework/View/Element/AbstractBlock.php
@@ -765,33 +765,43 @@ abstract class AbstractBlock extends \Magento\Framework\Object implements BlockI
     /**
      * Retrieve formatting date
      *
-     * @param   \Zend_Date|string|null $date
-     * @param   string $format
+     * @param   \DateTime|string|null $date
+     * @param   int $format
      * @param   bool $showTime
      * @return  string
      */
     public function formatDate(
         $date = null,
-        $format = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+        $format = \IntlDateFormatter::SHORT,
         $showTime = false
     ) {
-        return $this->_localeDate->formatDate($date, $format, $showTime);
+        $date = $date instanceof \DateTimeInterface ? $date : new \DateTime($date);
+        return $this->_localeDate->formatDateTime(
+            $date,
+            $format,
+            $showTime ? $format : \IntlDateFormatter::NONE
+        );
     }
 
     /**
      * Retrieve formatting time
      *
-     * @param   \Zend_Date|string|null $time
-     * @param   string $format
+     * @param   \DateTime|string|null $time
+     * @param   int $format
      * @param   bool $showDate
      * @return  string
      */
     public function formatTime(
         $time = null,
-        $format = \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT,
+        $format = \IntlDateFormatter::SHORT,
         $showDate = false
     ) {
-        return $this->_localeDate->formatTime($time, $format, $showDate);
+        $time = $time instanceof \DateTimeInterface ? $time : new \DateTime($time);
+        return $this->_localeDate->formatDateTime(
+            $time,
+            $showDate ? $format : \IntlDateFormatter::NONE,
+            $format
+        );
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/View/Element/Html/Calendar.php b/lib/internal/Magento/Framework/View/Element/Html/Calendar.php
index b9b7b2e4a7dfca0502d3b79f5be96b41d410c529..c2351e2de84123c6fe0a5c74efb96794a056f808 100644
--- a/lib/internal/Magento/Framework/View/Element/Html/Calendar.php
+++ b/lib/internal/Magento/Framework/View/Element/Html/Calendar.php
@@ -5,7 +5,7 @@
  */
 namespace Magento\Framework\View\Element\Html;
 
-use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
+use Magento\Framework\Locale\Bundle\DataBundle;
 
 /**
  * Calendar block for page header
@@ -62,35 +62,39 @@ class Calendar extends \Magento\Framework\View\Element\Template
      */
     protected function _toHtml()
     {
-        $localeCode = $this->_localeResolver->getLocaleCode();
+        $localeData = (new DataBundle())->get($this->_localeResolver->getLocale());
 
         // get days names
-        $days = \Zend_Locale_Data::getList($localeCode, 'days');
+        $daysData = $localeData['calendar']['gregorian']['dayNames'];
         $this->assign(
             'days',
             [
-                'wide' => $this->encoder->encode(array_values($days['format']['wide'])),
-                'abbreviated' => $this->encoder->encode(array_values($days['format']['abbreviated']))
+                'wide' => $this->encoder->encode(array_values(iterator_to_array($daysData['format']['wide']))),
+                'abbreviated' => $this->encoder->encode(
+                    array_values(iterator_to_array($daysData['format']['abbreviated']))
+                ),
             ]
         );
 
         // get months names
-        $months = \Zend_Locale_Data::getList($localeCode, 'months');
+        $monthsData = $localeData['calendar']['gregorian']['monthNames'];
         $this->assign(
             'months',
             [
-                'wide' => $this->encoder->encode(array_values($months['format']['wide'])),
-                'abbreviated' => $this->encoder->encode(array_values($months['format']['abbreviated']))
+                'wide' => $this->encoder->encode(array_values(iterator_to_array($monthsData['format']['wide']))),
+                'abbreviated' => $this->encoder->encode(
+                    array_values(iterator_to_array($monthsData['format']['abbreviated']))
+                ),
             ]
         );
 
         // get "today" and "week" words
-        $this->assign('today', $this->encoder->encode(\Zend_Locale_Data::getContent($localeCode, 'relative', 0)));
-        $this->assign('week', $this->encoder->encode(\Zend_Locale_Data::getContent($localeCode, 'field', 'week')));
+        $this->assign('today', $this->encoder->encode($localeData['fields']['day']['relative']['0']));
+        $this->assign('week', $this->encoder->encode($localeData['fields']['week']['dn']));
 
         // get "am" & "pm" words
-        $this->assign('am', $this->encoder->encode(\Zend_Locale_Data::getContent($localeCode, 'am')));
-        $this->assign('pm', $this->encoder->encode(\Zend_Locale_Data::getContent($localeCode, 'pm')));
+        $this->assign('am', $this->encoder->encode($localeData['calendar']['gregorian']['AmPmMarkers']['0']));
+        $this->assign('pm', $this->encoder->encode($localeData['calendar']['gregorian']['AmPmMarkers']['1']));
 
         // get first day of week and weekend days
         $this->assign(
@@ -114,23 +118,22 @@ class Calendar extends \Magento\Framework\View\Element\Template
         $this->assign(
             'defaultFormat',
             $this->encoder->encode(
-                $this->_localeDate->getDateFormat(TimezoneInterface::FORMAT_TYPE_MEDIUM)
+                $this->_localeDate->getDateFormat(\IntlDateFormatter::MEDIUM)
             )
         );
         $this->assign(
             'toolTipFormat',
             $this->encoder->encode(
-                $this->_localeDate->getDateFormat(TimezoneInterface::FORMAT_TYPE_LONG)
+                $this->_localeDate->getDateFormat(\IntlDateFormatter::LONG)
             )
         );
 
         // get days and months for en_US locale - calendar will parse exactly in this locale
-        $days = \Zend_Locale_Data::getList('en_US', 'days');
-        $months = \Zend_Locale_Data::getList('en_US', 'months');
+        $englishMonths = (new DataBundle())->get('en_US')['calendar']['gregorian']['monthNames'];
         $enUS = new \stdClass();
         $enUS->m = new \stdClass();
-        $enUS->m->wide = array_values($months['format']['wide']);
-        $enUS->m->abbr = array_values($months['format']['abbreviated']);
+        $enUS->m->wide = array_values(iterator_to_array($englishMonths['format']['wide']));
+        $enUS->m->abbr = array_values(iterator_to_array($englishMonths['format']['abbreviated']));
         $this->assign('enUS', $this->encoder->encode($enUS));
 
         return parent::_toHtml();
@@ -164,7 +167,7 @@ class Calendar extends \Magento\Framework\View\Element\Template
      */
     public function getYearRange()
     {
-        return (int)$this->_localeDate->date('Y')->__toString() - 100
-            . ':' . $this->_localeDate->date('Y')->__toString();
+        return (new \DateTime())->modify('- 100 years')->format('Y')
+            . ':' . (new \DateTime())->format('Y');
     }
 }
diff --git a/lib/internal/Magento/Framework/View/Element/Messages.php b/lib/internal/Magento/Framework/View/Element/Messages.php
index 9cbfd857e105a556a85939ad553c952721695417..feedc28c86499f79a5895b9797a630c19e7b1f27 100644
--- a/lib/internal/Magento/Framework/View/Element/Messages.php
+++ b/lib/internal/Magento/Framework/View/Element/Messages.php
@@ -281,7 +281,8 @@ class Messages extends Template
                 }
 
                 foreach ($messages as $message) {
-                    $html .= '<' . $this->secondLevelTagName . ' class="message ' . $type . '">';
+                    $html .= '<' . $this->secondLevelTagName . ' class="message ' . 'message-' . $type . ' ' . $type .
+                        '">';
                     $html .= '<' . $this->contentWrapTagName . $this->getUiId('message', $type) . '>';
                     $html .= $message->getText();
                     $html .= '</' . $this->contentWrapTagName . '>';
diff --git a/lib/internal/Magento/Framework/View/Element/Redirect.php b/lib/internal/Magento/Framework/View/Element/Redirect.php
index 6a68b20742c587ef8c3cfa757f5d0fe4bc28e5dd..feb2843f3520159f775995e10bc2a7380272bd44 100644
--- a/lib/internal/Magento/Framework/View/Element/Redirect.php
+++ b/lib/internal/Magento/Framework/View/Element/Redirect.php
@@ -181,7 +181,7 @@ class Redirect extends Template
     {
         $html = '';
 
-        $html .= '<div class="page-title">';
+        $html .= '<div class="page-title-wrapper">';
         $html .= '<h1>' . (string)new \Magento\Framework\Phrase('Redirecting...') . '</h1>';
         $html .= '</div>';
         if ($this->getMessage()) {
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Element/Html/CalendarTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Element/Html/CalendarTest.php
index 03f7da3302ae9604e6bac54a5558df14c959cf0d..d995bb91d88eb13e490542792e1362580e3305fb 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/Element/Html/CalendarTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Element/Html/CalendarTest.php
@@ -47,19 +47,7 @@ class CalendarTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetYearRange()
     {
-        $testCurrentYear = 2123;
-        $date = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\DateInterface')
-            ->getMock();
-
-        $date->expects($this->any())
-            ->method('__toString')
-            ->will($this->returnValue($testCurrentYear));
-
-        $this->localeDate->expects($this->any())
-            ->method('date')
-            ->with($this->equalTo('Y'))
-            ->will($this->returnValue($date));
-
+        $testCurrentYear = (new \DateTime())->format('Y');
         $this->assertEquals((int)$testCurrentYear - 100 . ':' . $testCurrentYear, $this->block->getYearRange());
     }
 }
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Element/MessagesTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Element/MessagesTest.php
index 9df123c4f2412cd483f4c5a2015267dd41149d86..bd18ebe344f884734c1b78233ed278c6c8b6b440 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/Element/MessagesTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Element/MessagesTest.php
@@ -238,34 +238,34 @@ class MessagesTest extends \PHPUnit_Framework_TestCase
         $this->messages->setNameInLayout('nameInLayout');
 
         $resultHtml = '<div class="messages">';
-        $resultHtml .= '<div class="message error"><div data-ui-id="nameinlayout-message-error" >';
+        $resultHtml .= '<div class="message message-error error"><div data-ui-id="nameinlayout-message-error" >';
         $resultHtml .= 'Error message without HTML!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message warning"><div data-ui-id="nameinlayout-message-warning" >';
+        $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
         $resultHtml .= 'Warning message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message warning"><div data-ui-id="nameinlayout-message-warning" >';
+        $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
         $resultHtml .= 'Warning message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message notice"><div data-ui-id="nameinlayout-message-notice" >';
+        $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
         $resultHtml .= 'Notice message without HTML!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message notice"><div data-ui-id="nameinlayout-message-notice" >';
+        $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
         $resultHtml .= 'Notice message without HTML!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message notice"><div data-ui-id="nameinlayout-message-notice" >';
+        $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
         $resultHtml .= 'Notice message without HTML!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message success"><div data-ui-id="nameinlayout-message-success" >';
+        $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
         $resultHtml .= 'Success message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message success"><div data-ui-id="nameinlayout-message-success" >';
+        $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
         $resultHtml .= 'Success message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message success"><div data-ui-id="nameinlayout-message-success" >';
+        $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
         $resultHtml .= 'Success message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
-        $resultHtml .= '<div class="message success"><div data-ui-id="nameinlayout-message-success" >';
+        $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
         $resultHtml .= 'Success message with <strong>HTML</strong>!';
         $resultHtml .= '</div></div>';
         $resultHtml .= '</div>';
diff --git a/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php b/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
index 536bddd66f89f5303dc6090216b566c364f37dcf..06b78b7c35cd5edcad9fd870d6b2c9fb89a9a14a 100644
--- a/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
+++ b/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
@@ -294,7 +294,9 @@ class ErrorProcessor
             if ($this->_appState->getMode() == State::MODE_DEVELOPER) {
                 $this->renderErrorMessage($errorMessage);
             } else {
-                $this->renderErrorMessage(new Phrase('Server internal error. See details in report api/%1', $reportId));
+                $this->renderErrorMessage(
+                    new Phrase('Server internal error. See details in report api/%1', [$reportId])
+                );
             }
         }
     }
diff --git a/lib/web/css/docs/docs.css b/lib/web/css/docs/docs.css
index dd798ec6bc97946ce52939c5e343ec31e19b3805..c582689347ea21d675d48262cc12d75868a93be5 100644
--- a/lib/web/css/docs/docs.css
+++ b/lib/web/css/docs/docs.css
@@ -2847,7 +2847,6 @@ fieldset[disabled] .example-button-15 {
   order: 2;
   -webkit-flex-basis: 100%;
   flex-basis: 100%;
-  box-shadow: none;
   display: inline-block;
   margin: 0;
   width: auto;
@@ -3017,7 +3016,6 @@ fieldset[disabled] .example-button-15 {
   order: 2;
   -webkit-flex-basis: 100%;
   flex-basis: 100%;
-  box-shadow: none;
   display: inline-block;
   margin: 0;
   width: auto;
@@ -8111,7 +8109,6 @@ h3 .small,
 h4 .small,
 h5 .small,
 h6 .small {
-  font-size: 71.42857143%;
   color: #333333;
   font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
   font-weight: 400;
@@ -8254,6 +8251,9 @@ q:after {
 cite {
   font-style: normal;
 }
+.example {
+  font-size: 2.5rem;
+}
 .example-line-height {
   line-height: 3rem;
 }
@@ -8297,6 +8297,7 @@ cite {
   hyphens: none;
 }
 .example-typography {
+  font-size: 3rem;
   color: #ffcc00;
   font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
   font-weight: 500;
@@ -8477,7 +8478,6 @@ h3 .small,
 h4 .small,
 h5 .small,
 h6 .small {
-  font-size: 71.42857143%;
   color: #333333;
   font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
   font-weight: 400;
@@ -8732,4 +8732,4 @@ body {
   padding: 15px;
   background-image: none;
 }
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL191dGlsaXRpZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9icmVhZGNydW1icy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2JyZWFkY3J1bWJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2ljb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX3R5cG9ncmFwaHkubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9pY29ucy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2J1dHRvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19idXR0b25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZm9ybXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19mb3Jtcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19sb2FkZXJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9tZXNzYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX21lc3NhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZ3JpZHMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9wYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3BhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmVzcG9uc2l2ZS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3NlY3Rpb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fc2VjdGlvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL190YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90b29sdGlwcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3Rvb2x0aXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3V0aWxpdGllcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2RvY3MubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpREksZ0JBQUM7QUFDRCxnQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosZ0JBQUM7RUFDRyxXQUFBOztBQ3hCUixnQkNnREk7RUFDSSxXQUFBOztBRGpEUixnQkNtREk7RUFDSSxZQUFBOztBRHBEUixnQkNMSTtBREtKLGdCQ0pJO0VBQ0kscUJBQUE7O0FER1IsZ0JDTEksU0FNSSxFQUFDO0FERFQsZ0JDSkksV0FLSSxFQUFDO0VBQ0cscUJBQUE7O0FERlosZ0JDTUksU0FDSTtFRjZQSixpQkFBQTs7QUNwUUosZ0JDY0ksV0FJSSxFQUFDO0VGa1BMLGVBQUE7O0FBbFBBLDBCQUFDO0FBQ0QsMEJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDBCQUFDO0VBQ0csV0FBQTs7QUNwQlIsMEJDNENJO0VBQ0ksV0FBQTs7QUQ3Q1IsMEJDK0NJO0VBQ0ksWUFBQTs7QURoRFIsMEJDVEk7QURTSiwwQkNSSTtFQUNJLHFCQUFBOztBRE9SLDBCQ1RJLFNBTUksRUFBQztBREdULDBCQ1JJLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBREVaLDBCQ0VJLFNBQ0k7RUY2UEosaUJBQUE7O0FDaFFKLDBCQ1VJLFdBSUksRUFBQztFRmtQTCxlQUFBOztBQWxQQSwwQkFBQztBQUNELDBCQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSiwwQkFBQztFQUNHLFdBQUE7O0FDcEJSLDBCQzRDSTtFQUNJLFdBQUE7O0FEN0NSLDBCQytDSTtFQUNJLFlBQUE7O0FEaERSLDBCQ1RJO0FEU0osMEJDUkk7RUFDSSxxQkFBQTs7QURPUiwwQkNUSSxTQU1JLEVBQUM7QURHVCwwQkNSSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QURFWiwwQkNFSSxTQUNJO0VGNlBKLGlCQUFBOztBQ2hRSiwwQkNVSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUFsUEEsMEJBQUM7QUFDRCwwQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosMEJBQUM7RUFDRyxXQUFBOztBQzJIUiwwQkNuR0k7RUFDSSxXQUFBOztBRGtHUiwwQkNoR0k7RUFDSSxZQUFBOztBRCtGUiwwQkN4Skk7QUR3SkosMEJDdkpJO0VBQ0kscUJBQUE7O0FEc0pSLDBCQ3hKSSxTQU1JLEVBQUM7QURrSlQsMEJDdkpJLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBRGlKWiwwQkM3SUksU0FDSTtFRjZQSixpQkFBQTs7QUNqSEosMEJDcklJLFdBSUksRUFBQztFRmtQTCxlQUFBOztBQzNHSjtFRDJHSSxnQkFBQTs7QUFsUEEsMEJBQUM7QUFDRCwwQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosMEJBQUM7RUFDRyxXQUFBOztBQ2lJUiwwQkNqRkk7RUFDSSxXQUFBOztBRGdGUiwwQkM5Skk7QUQ4SkosMEJDN0pJO0VBQ0kscUJBQUE7O0FENEpSLDBCQzlKSSxTQU1JLEVBQUM7QUR3SlQsMEJDN0pJLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBRHVKWiwwQkNuSkksU0FDSTtFRjZQSixpQkFBQTs7QUMzR0osMEJDM0lJLFdBSUksRUFBQztFRmtQTCxlQUFBOztBQ3JHSjtFRHFHSSxpQkFBQTs7QUFsUEEsMEJBQUM7QUFDRCwwQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosMEJBQUM7RUFDRyxXQUFBOztBQ3VJUiwwQkNyRUk7RUFDSSxZQUFBOztBRG9FUiwwQkNwS0k7QURvS0osMEJDbktJO0VBQ0kscUJBQUE7O0FEa0tSLDBCQ3BLSSxTQU1JLEVBQUM7QUQ4SlQsMEJDbktJLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBRDZKWiwwQkN6SkksU0FDSTtFRjZQSixpQkFBQTs7QUNyR0osMEJDakpJLFdBSUksRUFBQztFRmtQTCxlQUFBOztBQy9GSjtFRCtGSSxrQkFBQTs7QUFsUEEsMEJBQUM7QUFDRCwwQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosMEJBQUM7RUFDRyxXQUFBOztBQzZJUiwwQkN6REk7QUR5REosMEJDeERJO0VBQ0ksbUJBQUE7O0FEdURSLDBCQzFLSTtBRDBLSiwwQkN6S0k7RUFDSSxxQkFBQTs7QUR3S1IsMEJDMUtJLFNBTUksRUFBQztBRG9LVCwwQkN6S0ksV0FLSSxFQUFDO0VBQ0cscUJBQUE7O0FEbUtaLDBCQy9KSSxTQUNJO0VGNlBKLGlCQUFBOztBQy9GSiwwQkN2SkksV0FJSSxFQUFDO0VGa1BMLGVBQUE7O0FBbFBBLDBCQUFDO0FBQ0QsMEJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDBCQUFDO0VBQ0csV0FBQTs7QUMyTVIsMEJDdktJO0VBQ0ksWUFBQTs7QURzS1IsMEJDcEtJO0VBQ0ksV0FBQTs7QURtS1IsMEJDeE9JO0FEd09KLDBCQ3ZPSTtFQUNJLHFCQUFBOztBRHNPUiwwQkN4T0ksU0FNSSxFQUFDO0FEa09ULDBCQ3ZPSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QURpT1osMEJDN05JLFNBQ0k7RUY2UEosaUJBQUE7O0FDakNKLDBCQ3JOSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUMxQko7RUQwQkksZ0JBQUE7O0FBbFBBLDBCQUFDO0FBQ0QsMEJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDBCQUFDO0VBQ0csV0FBQTs7QUNrTlIsMEJDekpJO0VBQ0ksV0FBQTs7QUR3SlIsMEJDL09JO0FEK09KLDBCQzlPSTtFQUNJLHFCQUFBOztBRDZPUiwwQkMvT0ksU0FNSSxFQUFDO0FEeU9ULDBCQzlPSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QUR3T1osMEJDcE9JLFNBQ0k7RUY2UEosaUJBQUE7O0FDMUJKLDBCQzVOSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUNuQko7RURtQkksaUJBQUE7O0FBbFBBLDBCQUFDO0FBQ0QsMEJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDBCQUFDO0VBQ0csV0FBQTs7QUN5TlIsMEJDOUlJO0VBQ0ksWUFBQTs7QUQ2SVIsMEJDdFBJO0FEc1BKLDBCQ3JQSTtFQUNJLHFCQUFBOztBRG9QUiwwQkN0UEksU0FNSSxFQUFDO0FEZ1BULDBCQ3JQSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QUQrT1osMEJDM09JLFNBQ0k7RUY2UEosaUJBQUE7O0FDbkJKLDBCQ25PSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUNtQ0o7RURuQ0ksWUFBQTtFQUFBLGFBQUE7O0FBbFBBLDBCQUFDO0FBQ0QsMEJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDBCQUFDO0VBQ0csV0FBQTs7QUMrUVIsMEJDdlBJO0VBQ0ksV0FBQTs7QURzUFIsMEJDcFBJO0VBQ0ksWUFBQTs7QURtUFIsMEJDNVNJO0FENFNKLDBCQzNTSTtFQUNJLHFCQUFBOztBRDBTUiwwQkM1U0ksU0FNSSxFQUFDO0FEc1NULDBCQzNTSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QURxU1osMEJDalNJLFNBQ0k7RUY2UEosaUJBQUE7O0FDbUNKLDBCQ3pSSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUMwQ0o7RUQxQ0ksZ0JBQUE7O0FBbFBBLDJCQUFDO0FBQ0QsMkJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDJCQUFDO0VBQ0csV0FBQTs7QUNzUlIsMkJDdE9JO0VBQ0ksV0FBQTs7QURxT1IsMkJDblRJO0FEbVRKLDJCQ2xUSTtFQUNJLHFCQUFBOztBRGlUUiwyQkNuVEksU0FNSSxFQUFDO0FENlNULDJCQ2xUSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QUQ0U1osMkJDeFNJLFNBQ0k7RUY2UEosa0JBQUE7O0FDMENKLDJCQ2hTSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUNpREo7RURqREksZ0JBQUE7O0FBbFBBLDJCQUFDO0FBQ0QsMkJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDJCQUFDO0VBQ0csV0FBQTs7QUM2UlIsMkJDN09JO0VBQ0ksV0FBQTs7QUQ0T1IsMkJDMVRJO0FEMFRKLDJCQ3pUSTtFQUNJLHFCQUFBOztBRHdUUiwyQkMxVEksU0FNSSxFQUFDO0FEb1RULDJCQ3pUSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QURtVFosMkJDL1NJLFNBQ0k7RUY2UEosaUJBQUE7O0FDaURKLDJCQ3ZTSSxXQUNJO0VGcVBKLGtCQUFBOztBQ2lESiwyQkN2U0ksV0FJSSxFQUFDO0VGa1BMLGVBQUE7O0FBbFBBLDJCQUFDO0FBQ0QsMkJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLDJCQUFDO0VBQ0csV0FBQTs7QUNtVFIsMkJDM1JJO0VBQ0ksV0FBQTs7QUQwUlIsMkJDeFJJO0VBQ0ksWUFBQTs7QUR1UlIsMkJDaFZJO0FEZ1ZKLDJCQy9VSTtFQUNJLHFCQUFBOztBRDhVUiwyQkNoVkksU0FNSSxFQUFDO0FEMFVULDJCQy9VSSxXQUtJLEVBQUM7RUFDRyxxQkFBQTs7QUR5VVosMkJDclVJLFNBQ0k7RUY2UEosaUJBQUE7O0FDdUVKLDJCQzdUSSxXQUlJLEVBQUM7RUZrUEwsZUFBQTs7QUFsUEEsMkJBQUM7QUFDRCwyQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosMkJBQUM7RUFDRyxXQUFBOztBQ21UUiwyQkMzUkk7RUFDSSxXQUFBOztBRDBSUiwyQkN4Ukk7RUFDSSxZQUFBOztBRHVSUiwyQkNoVkk7QURnVkosMkJDL1VJO0VBQ0kscUJBQUE7O0FEOFVSLDJCQ2hWSSxTQU1JLEVBQUM7QUQwVVQsMkJDL1VJLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBRHlVWiwyQkNyVUksU0FDSTtFRjZQSixpQkFBQTs7QUN1RUosMkJDN1RJLFdBSUksRUFBQztFRmtQTCxlQUFBOztBQ2dGSix3QkFMK0M7RUFDM0MsMkJDblRBO0VEbVRBLDJCQ2xUQTtJQUNJLGNBQUE7SUFDQSxXQUFBOzs7QUNyQ1I7RUh5UUksZ0JBQUE7O0FHelFKLHNCQ2tESTtFQ3JDQSxpQkFBQTtFTDRQQSxjQUFBO0VBQUEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7O0FGOUVKLHNCQ2tESSxPQ2lDQTtFQUNJLHFCQUFBO0VBQ0EsbUJBQUE7O0FGckZSLHNCQ3VESTtFQUNJLFNBQUE7O0FEeERSLHNCQzBESTtFSitNQSxjQUFBO0VBQUEscUJBQUE7O0FJbE1JLHNCQWJKLEVBYUs7RUprTUwsY0FBQTtFQUFBLHFCQUFBOztBSXRMSSxzQkF6QkosRUF5Qks7RUpzTEwsY0FBQTtFQUFBLDBCQUFBOztBSTFLSSxzQkFyQ0osRUFxQ0s7RUowS0wsY0FBQTtFQUFBLHFCQUFBOztBR3pRSixzQkM0R0k7RUo2SkEsZ0JBQUE7O0FHelFKLHNCQ29JUSxNQUFLLElBQUk7RUpxSWIscUJBQUE7RU05TkEscUJBQUE7O0FBRUEsc0JGdUZJLE1BQUssSUFBSSxhRXZGWjtFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXVnQlEsT1J2Z0JSO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBR3NHSjtFSHRHSSxnQkFBQTs7QUdzR0osc0JDN1RJO0VDckNBLGlCQUFBO0VMNFBBLGNBQUE7RUFBQSxTQUFBO0VBQUEsVUFBQTtFSzNMQSxxQkFBQTs7QUZpU0osc0JDN1RJLE9DaUNBO0VBQ0kscUJBQUE7RUFDQSxtQkFBQTs7QUYwUlIsc0JDeFRJO0VBQ0ksU0FBQTs7QUR1VFIsc0JDclRJO0VKNERJLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isc0RBQWxCO0VBQ0Esa0JBQWtCLG9EQUFsQjtFQUNBLGtIQUFBO0VBK0lKLHlCQUFBO0VBQUEscUJBQUE7RUFBQSxnQkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTs7QUlsTUksc0JBYkosRUFhSztFSitDRCx1QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLGtEQUFsQjtFQUNBLGtCQUFrQixnREFBbEI7RUFDQSw4R0FBQTtFQStJSixjQUFBO0VBQUEscUJBQUE7O0FJdExJLHNCQXpCSixFQXlCSztFSm1DRCx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLHNEQUFsQjtFQUNBLGtCQUFrQixvREFBbEI7RUFDQSxrSEFBQTtFQStJSixjQUFBO0VBQUEscUJBQUE7O0FJMUtJLHNCQXJDSixFQXFDSztFSnVCRCx1QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLGtEQUFsQjtFQUNBLGtCQUFrQixnREFBbEI7RUFDQSw4R0FBQTtFQStJSixjQUFBO0VBQUEscUJBQUE7O0FHc0dKLHNCQ25RSTtFSlVJLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isc0RBQWxCO0VBQ0Esa0JBQWtCLG9EQUFsQjtFQUNBLGtIQUFBO0VBK0lKLHlCQUFBO0VBQUEscUJBQUE7RUFBQSxnQkFBQTtFQUFBLGdCQUFBOztBR3NHSixzQkMzT1EsTUFBSyxJQUFJO0VKcUliLHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLHNCRnVGSSxNQUFLLElBQUksYUV2Rlo7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1F1Z0JRLE9SdmdCUjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QUdvS0o7RUhwS0ksZ0JBQUE7O0FHb0tKLHNCQzNYSTtFQ3JDQSxpQkFBQTtFTDRQQSxjQUFBO0VBQUEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7O0FGK1ZKLHNCQzNYSSxPQ2lDQTtFQUNJLHFCQUFBO0VBQ0EsbUJBQUE7O0FGd1ZSLHNCQ3RYSTtFQUNJLFNBQUE7O0FEcVhSLHNCQ25YSTtFSitNQSxtQkFBQTtFQUFBLHFCQUFBO0VBQUEsZ0JBQUE7RUFBQSxjQUFBO0VBQUEscUJBQUE7O0FJbE1JLHNCQWJKLEVBYUs7RUprTUwsY0FBQTtFQUFBLHFCQUFBOztBSXRMSSxzQkF6QkosRUF5Qks7RUpzTEwsbUJBQUE7RUFBQSxjQUFBO0VBQUEscUJBQUE7O0FJMUtJLHNCQXJDSixFQXFDSztFSjBLTCxjQUFBO0VBQUEscUJBQUE7O0FHb0tKLHNCQ2pVSTtFSjZKQSxtQkFBQTtFQUFBLHFCQUFBO0VBQUEsZ0JBQUE7RUFBQSxnQkFBQTs7QUdvS0osc0JDelNRLE1BQUssSUFBSTtFSnFJYixxQkFBQTtFTTlOQSxxQkFBQTs7QUFFQSxzQkZ1RkksTUFBSyxJQUFJLGFFdkZaO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWdCUSxPUnZnQlI7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FHb0tKLHNCQVdJLE1BQU07RUFDRixrQkFBQTtFQUNBLGtCQUFBOztBQUNBLHNCQUhKLE1BQU0sRUFHRDtFSHBJTCw4QkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBZUEsMEJBQUE7RUdxSFEsU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsTUFBQTtFQUNBLFlBQUE7O0FBRUosc0JBWEosTUFBTSxFQVdELE1BQU07RUFDSCxzREFBQTs7QU1qY1o7RUN5Qkksc0JBQUE7RVY2T0EsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxxQkFBQTtFQUFBLGFPOVFzQiw4Q1A4UXRCO0VLNVBBLGlCQUFBO0VMNFBBLGdCQUFBO0VLbFBBLG1CQUFBO0VLdUJBLHNCQUFBO0VWMk5BLFdBQUE7RVV6TkEsc0JBQUE7RUQzQ0Esa0JBQUE7O0FDMERBLE1BQUM7QUFDRCxNQUFDO0VWeU1ELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVTlMQSxNQUFDO0VWOExELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVW5MQSxNQUFDO0FBQ0QsTUFBQztBQUNELFFBQVEsVUFBVztFQUNmLGVBQUE7RUFDQSxvQkFBQTtFVitLSixZQUFBOztBU25RQSxNQUFDO0FBQ0QsTUFBQztFQUNHLCtDQUFBOztBQUtKLGlCQUFDO0VKVUQsbUJBQUE7RUxrUEEsa0JBQUE7RUs1UEEsaUJBQUE7O0FJR0EsaUJBQUM7RUpPRCxtQkFBQTtFTGtQQSxnQkFBQTtFSzVQQSxpQkFBQTtFSUtJLGdCQUFBO0VBQ0EsV0FBQTs7QUFDQSxpQkFKSCxpQkFJSTtBQUNELGlCQUxILGlCQUtJO0VBQ0csV0FBQTs7QUFxU1o7RVRsREksbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFS2xQQSxtQkFBQTtFS3VCQSxzQkFBQTtFVjJOQSxXQUFBO0VVek5BLHNCQUFBO0VWeU5BLHFCQUFBO0VVOURBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLG9CQUFBO0VWcURBLGdCQUFBOztBU2tESixrQkh6RUk7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxrQkFBQztFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUWdoQlEsT1JoaEJSO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksa0JBREgsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxrQkFESCxPQUNJO0VObVBMLGNBQUE7O0FVMU1BLGtCQUFDO0FBQ0Qsa0JBQUM7RVZ5TUQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVOUxBLGtCQUFDO0VWOExELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVW5MQSxrQkFBQztBQUNELGtCQUFDO0FBQ0QsUUFBUSxVQUFXO0VBQ2YsZUFBQTtFQUNBLG9CQUFBO0VWK0tKLFlBQUE7O0FVbkRBLGtCQUFDO0FBQ0Qsa0JBQUM7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosa0JBQUM7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosa0JBQUM7QUFDRCxrQkFBQztBQUNELFFBQVEsVUFBVztFQUNmLG1CQUFBO0VBQ0Esb0JBQUE7RVZzQ0osWUFBQTs7QVN1R0o7RUNwVkksc0JBQUE7RVY2T0EsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFS2xQQSxtQkFBQTtFS3VCQSxzQkFBQTtFVjJOQSxXQUFBO0VVek5BLHNCQUFBO0VWeU5BLHFCQUFBO0VNdlFBLHFCQUFBOztBQUdBLGtCQUFDO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRZ2hCUSxPUmhoQlI7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxrQkFESCxNQUNJO0VOd1BMLGNBQUE7O0FNblBJLGtCQURILE9BQ0k7RU5tUEwsY0FBQTs7QVUxTUEsa0JBQUM7QUFDRCxrQkFBQztFVnlNRCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsY0FBQTs7QVU5TEEsa0JBQUM7RVY4TEQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVbkxBLGtCQUFDO0FBQ0Qsa0JBQUM7QUFDRCxRQUFRLFVBQVc7RUFDZixlQUFBO0VBQ0Esb0JBQUE7RVYrS0osWUFBQTs7QVNnSEo7RUM3Vkksc0JBQUE7RVY2T0EsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFS2xQQSxtQkFBQTtFS3VCQSxzQkFBQTtFVjJOQSxXQUFBO0VVek5BLHNCQUFBO0VWeU5BLHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLGtCQUFDO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRZ2hCUSxPUmhoQlI7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxrQkFESCxNQUNJO0VOZ05MLGNBQUE7O0FNM01JLGtCQURILE9BQ0k7RU4yTUwsY0FBQTs7QVUxTUEsa0JBQUM7QUFDRCxrQkFBQztFVnlNRCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsY0FBQTs7QVU5TEEsa0JBQUM7RVY4TEQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVbkxBLGtCQUFDO0FBQ0Qsa0JBQUM7QUFDRCxRQUFRLFVBQVc7RUFDZixlQUFBO0VBQ0Esb0JBQUE7RVYrS0osWUFBQTs7QVNnSko7RUM3WEksc0JBQUE7RVY2T0EsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLFlBQUE7RUFBQSxjQUFBO0VBQUEseUJBQUE7RUFBQSxlQUFBO0VBQUEscUJBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFS2xQQSxtQkFBQTtFS3VCQSxzQkFBQTtFVjJOQSxXQUFBO0VVek5BLHNCQUFBOztBQWVBLGtCQUFDO0FBQ0Qsa0JBQUM7RVZ5TUQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVOUxBLGtCQUFDO0VWOExELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVW5MQSxrQkFBQztBQUNELGtCQUFDO0FBQ0QsUUFBUSxVQUFXO0VBQ2YsZUFBQTtFQUNBLG9CQUFBO0VWK0tKLFlBQUE7O0FTaUxKO0VDOVpJLHNCQUFBO0VWNk9BLG1CQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VBQUEseUJBQUE7RUFBQSxlQUFBO0VBQUEscUJBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFVTNOQSxzQkFBQTtFVjJOQSxXQUFBO0VVek5BLHNCQUFBOztBQWVBLGlCQUFDO0FBQ0QsaUJBQUM7RVZ5TUQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVOUxBLGlCQUFDO0VWOExELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVW5MQSxpQkFBQztBQUNELGlCQUFDO0FBQ0QsUUFBUSxVQUFXO0VBQ2YsZUFBQTtFQUNBLG9CQUFBO0VWK0tKLFlBQUE7O0FTcUxBLGlCQUFDO0VBQ0csK0NBQUE7O0FBRUosaUJBQUM7RUoxYUQsbUJBQUE7RUxrUEEsaUJBQUE7RUs1UEEsaUJBQUE7O0FJdWJBLGlCQUFDO0VKN2FELG1CQUFBO0VMa1BBLGdCQUFBO0VLNVBBLGlCQUFBO0VJeWJJLFdBQUE7O0FBQ0EsaUJBSEgsaUJBR0k7QUFDRCxpQkFKSCxpQkFJSTtFQUNHLFdBQUE7O0FBcUtaO0VDbGxCSSxzQkFBQTtFVjZPQSxtQkFBQTtFQW5KSSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLHNEQUFsQjtFQUNBLGtCQUFrQixvREFBbEI7RUFDQSxrSEFBQTtFQStJSixpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxxQkFBQTtFQUFBLGFPOVFzQiw4Q1A4UXRCO0VLNVBBLGlCQUFBO0VMNFBBLGdCQUFBO0VLbFBBLG1CQUFBO0VLdUJBLHNCQUFBO0VWMk5BLFdBQUE7RVV6TkEsc0JBQUE7RURpbEJBLGtCQUFBOztBQ2xrQkEsaUJBQUM7QUFDRCxpQkFBQztFVnlNRCxtQkFBQTtFQW5KSSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLHNEQUFsQjtFQUNBLGtCQUFrQixvREFBbEI7RUFDQSxrSEFBQTtFQStJSix5QkFBQTtFQUFBLGNBQUE7O0FVOUxBLGlCQUFDO0VWOExELG1CQUFBO0VBbkpJLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isc0RBQWxCO0VBQ0Esa0JBQWtCLG9EQUFsQjtFQUNBLGtIQUFBO0VBK0lKLHlCQUFBO0VBQUEsY0FBQTs7QVVuTEEsaUJBQUM7QUFDRCxpQkFBQztBQUNELFFBQVEsVUFBVztFQUNmLGVBQUE7RUFDQSxvQkFBQTtFVitLSixZQUFBOztBU3lYQSxpQkFBQztFQUNHLCtDQUFBOztBQWlCUjtFQ2pmSSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VWb0dBLHVCQUFBO0VVbEdBLFNBQUE7RUFDQSxVQUFBO0VWaUdBLGNBQUE7RUFBQSxxQkFBQTtFUzZZQSxtQkFBQTs7QUpqakJBLGlCQUFDO0VMb0tELGNBQUE7RUFBQSxxQkFBQTs7QUtoS0EsaUJBQUM7RUxnS0QsY0FBQTtFQUFBLDBCQUFBOztBSzVKQSxpQkFBQztFTDRKRCxjQUFBO0VBQUEsMEJBQUE7O0FVL0ZBLGlCQUFDO0VWK0ZELGNBQUE7O0FVNUZBLGlCQUFDO0FBQ0QsaUJBQUM7QUFDRCxpQkFBQztFQUNHLGdCQUFBO0VBQ0EsU0FBQTs7QUFFSixpQkFBQztBQUNELGlCQUFDO0FBQ0QsUUFBUSxVQUFXO0VWb0ZuQixjQUFBO0VVbEZJLDBCQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0VWZ0ZKLFlBQUE7O0FTOFlBLGlCQUFDO0VBQ0csZ0JBQUE7O0FBZ0JSO0VDdmhCSSxxQkFBQTtFQXJIQSxzQkFBQTtFVjZPQSxtQkFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFQUFBLHlCQUFBO0VBQUEsZUFBQTtFQUFBLHFCQUFBO0VBQUEsYU85UXNCLDhDUDhRdEI7RUs1UEEsaUJBQUE7RUw0UEEsZ0JBQUE7RUtsUEEsbUJBQUE7RUt1QkEsc0JBQUE7RVYyTkEsU0FBQTtFVXpOQSxzQkFBQTtFRDJuQkEsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7O0FDM2hCQSxpQkFBQztBQUNELGlCQUFDO0FBQ0QsaUJBQUM7RUFDRyxxQkFBQTs7QUF0RkosaUJBQUM7QUFDRCxpQkFBQztFVnlNRCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsY0FBQTs7QVU5TEEsaUJBQUM7RVY4TEQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVbkxBLGlCQUFDO0FBQ0QsaUJBQUM7QUFDRCxRQUFRLFVBQVc7RUFDZixlQUFBO0VBQ0Esb0JBQUE7RVYrS0osWUFBQTs7QVNxYUEsaUJBQUM7RUFDRywrQ0FBQTs7QUFhUjtFQ2pmSSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxvQkFBQTtFVnFEQSxnQkFBQTs7QVVuREEsa0JBQUM7QUFDRCxrQkFBQztFQUNHLGdCQUFBO0VBQ0EsWUFBQTs7QUFFSixrQkFBQztFQUNHLGdCQUFBO0VBQ0EsWUFBQTs7QUFFSixrQkFBQztBQUNELGtCQUFDO0FBQ0QsUUFBUSxVQUFXO0VBQ2YsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBU2tjSjtFQy9xQkksc0JBQUE7RVY2T0EsbUJBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSx5QkFBQTtFQUFBLGVBQUE7RUFBQSxxQkFBQTtFQUFBLGFPOVFzQiw4Q1A4UXRCO0VLNVBBLGlCQUFBO0VMNFBBLGdCQUFBO0VVM05BLHNCQUFBO0VBRUEsc0JBQUE7RVZ5TkEsbUJBQUE7RUFBQSxjQUFBO0VBQUEseUJBQUE7O0FVMU1BLGtCQUFDO0FBQ0Qsa0JBQUM7RVZ5TUQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7O0FVOUxBLGtCQUFDO0VWOExELG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBOztBVW5MQSxrQkFBQztBQUNELGtCQUFDO0FBQ0QsUUFBUSxVQUFXO0VBQ2YsZUFBQTtFQUNBLG9CQUFBO0VWK0tKLFlBQUE7O0FVdUNBLGtCQUFDO0FBQ0Qsa0JBQUM7RVZ4Q0QsbUJBQUE7RUFBQSxjQUFBO0VBQUEseUJBQUE7O0FVNkNBLGtCQUFDO0VWN0NELG1CQUFBO0VBQUEsY0FBQTtFQUFBLHlCQUFBOztBU29oQko7RUp0d0JJLG1CQUFBO0VMa1BBLGtCQUFBO0VLNVBBLGlCQUFBO0VBQUEsaUJBQUE7RUFVQSxtQkFBQTtFTGtQQSxpQkFBQTs7QVN3aEJKO0VKcHhCSSxlQUFBO0VBVUEsbUJBQUE7RUxrUEEsaUJBQUE7O0FXcFFKO0VDd0JJLHFCQUFBO0VBQ0Esa0JBQUE7O0FaUEEsbUJBQUM7QUFDRCxtQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUJBQUM7RUFDRyxXQUFBOztBV3hCUixtQkMyQkk7RUFFSSxlQUFBO0VadU9KLHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLG1CTWJBLGVOYUM7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzZ0JnQixPUnRnQmhCO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksbUJNekJKLGVOd0JDLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksbUJNOUJKLGVONkJDLE9BQ0k7RU4yTUwsY0FBQTs7QVlpRUEsbUJBMVNBLGVBMFNDO0VaakVELHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLG1CTWJBLGVBMFNDLE9ON1JBO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWhCYyxPUnZoQmQ7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxtQk16QkosZUEwU0MsT05sUkEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxtQk05QkosZUEwU0MsT043UUEsT0FDSTtFTjJNTCxjQUFBOztBV3BRSixtQkNnTkk7RVpvREEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RU95SUksc0JBQUE7RVprREosbUJBQUE7RUFBQSx5QkFBQTtFWS9DSSxrQkFBQTtFWitDSixZQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxlQUFBO0VZbkNJLGFBQUE7RVptQ0oseUNBQUE7O0FXcFFKLG1CQ2dOSSxZQW1CSTtFWmlDSixTQUFBO0VBQUEsZ0JBQUE7O0FZM0JRLG1CQXpCUixZQW1CSSxHQU1LO0VaMkJULG1CQUFBO0VZekJZLGVBQUE7O0FBd1NaLG1CQW5VQSxZQW1VQztBQUNELG1CQXBVQSxZQW9VQztFQUNHLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7O0FBRUosbUJBNVVBLFlBNFVDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBRUosbUJBalZBLFlBaVZDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBcERKLG1CQWhTQSxZQWdTQztFWjVPRCxVQUFBO0VBQUEsVUFBQTs7QVlnUEEsbUJBcFNBLFlBb1NDO0VaaFBELFVBQUE7RUFBQSxTQUFBOztBWWRBLG1CQUFDO0VBQ0csaUJBQUE7O0FBREosbUJBQUMsT0FFRztFQUNJLGNBQUE7O0FEOU5aO0VDSEkscUJBQUE7RUFDQSxrQkFBQTs7QVpQQSxtQkFBQztBQUNELG1CQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQkFBQztFQUNHLFdBQUE7O0FXR1IsbUJDQUk7RUFFSSxlQUFBO0VadU9KLHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLG1CTWJBLGVOYUM7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzZ0JnQixPUnRnQmhCO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksbUJNekJKLGVOd0JDLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksbUJNOUJKLGVONkJDLE9BQ0k7RU4yTUwsY0FBQTs7QVlpRUEsbUJBMVNBLGVBMFNDO0VaakVELHFCQUFBO0VNOU5BLHFCQUFBOztBQUVBLG1CTWJBLGVBMFNDLE9ON1JBO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWhCYyxPUnZoQmQ7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxtQk16QkosZUEwU0MsT05sUkEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxtQk05QkosZUEwU0MsT043UUEsT0FDSTtFTjJNTCxjQUFBOztBV3pPSixtQkNxTEk7RVpvREEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RU95SUksc0JBQUE7RVprREosbUJBQUE7RUFBQSx5QkFBQTtFWS9DSSxrQkFBQTtFWitDSixZQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxlQUFBO0VZbkNJLGFBQUE7RVptQ0oseUNBQUE7O0FXek9KLG1CQ3FMSSxZQW1CSTtFWmlDSixTQUFBO0VBQUEsZ0JBQUE7O0FZM0JRLG1CQXpCUixZQW1CSSxHQU1LO0VaMkJULG1CQUFBO0VZekJZLGVBQUE7O0FBd1NaLG1CQW5VQSxZQW1VQztBQUNELG1CQXBVQSxZQW9VQztFQUNHLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7O0FBRUosbUJBNVVBLFlBNFVDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBRUosbUJBalZBLFlBaVZDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBcERKLG1CQWhTQSxZQWdTQztFWjVPRCxVQUFBO0VBQUEsVUFBQTs7QVlnUEEsbUJBcFNBLFlBb1NDO0VaaFBELFVBQUE7RUFBQSxTQUFBOztBWWRBLG1CQUFDO0VBQ0csaUJBQUE7O0FBREosbUJBQUMsT0FFRztFQUNJLGNBQUE7O0FEVFo7RUN4TkkscUJBQUE7RUFDQSxrQkFBQTs7QVpQQSxtQkFBQztBQUNELG1CQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQkFBQztFQUNHLFdBQUE7O0FXd05SLG1CQ3JOSTtFQUVJLGVBQUE7RVp1T0oscUJBQUE7RU12UUEscUJBQUE7O0FBR0EsbUJNMkJBLGVOM0JDO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRMmhCVSxPUjNoQlY7RUFBQSxlQUFBO0VBQUEsY0FBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNeFBJLG1CTWVKLGVOaEJDLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksbUJNVUosZU5YQyxPQUNJO0VObVBMLGNBQUE7O0FZaUVBLG1CQTFTQSxlQTBTQztFWmpFRCxxQkFBQTtFTXZRQSxxQkFBQTs7QUFHQSxtQk0yQkEsZUEwU0MsT05yVUE7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1E4Z0JZLE9SOWdCWjtFQUFBLGVBQUE7RUFBQSxjQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksbUJNZUosZUEwU0MsT04xVEEsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxtQk1VSixlQTBTQyxPTnJUQSxPQUNJO0VObVBMLGNBQUE7O0FXcEJKLG1CQ2hDSTtFWm9EQSxTQUFBO0VBQUEsVUFBQTtFSzNMQSxxQkFBQTtFT3lJSSxzQkFBQTtFWmtESixtQkFBQTtFQUFBLHlCQUFBO0VZL0NJLGtCQUFBO0VaK0NKLFlBQUE7RUFBQSxTQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RVluQ0ksYUFBQTtFWm1DSix5Q0FBQTs7QVdwQkosbUJDaENJLFlBbUJJO0VaaUNKLFNBQUE7RUFBQSxnQkFBQTs7QVkzQlEsbUJBekJSLFlBbUJJLEdBTUs7RVoyQlQsbUJBQUE7RVl6QlksZUFBQTs7QUF3U1osbUJBblVBLFlBbVVDO0FBQ0QsbUJBcFVBLFlBb1VDO0VBQ0csU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSwwQkFBQTs7QUFFSixtQkE1VUEsWUE0VUM7RUFDRyxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5REFBQTs7QUFFSixtQkFqVkEsWUFpVkM7RUFDRyxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5REFBQTs7QUFwREosbUJBaFNBLFlBZ1NDO0VaNU9ELFVBQUE7RUFBQSxVQUFBOztBWWdQQSxtQkFwU0EsWUFvU0M7RVpoUEQsVUFBQTtFQUFBLFNBQUE7O0FZZEEsbUJBQUM7RUFDRyxpQkFBQTs7QUFESixtQkFBQyxPQUVHO0VBQ0ksY0FBQTs7QUR5Qlo7RUMxUEkscUJBQUE7RUFDQSxrQkFBQTs7QVpQQSxtQkFBQztBQUNELG1CQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQkFBQztFQUNHLFdBQUE7O0FXMFBSLG1CQ3ZQSTtFQUVJLGVBQUE7RVp1T0oscUJBQUE7RU05TkEscUJBQUE7O0FBRUEsbUJNYkEsZU5hQztFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXNnQmdCLE9SdGdCaEI7RUFBQSxlQUFBO0VBQUEsY0FBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNaE5JLG1CTXpCSixlTndCQyxNQUNJO0VOZ05MLGNBQUE7O0FNM01JLG1CTTlCSixlTjZCQyxPQUNJO0VOMk1MLGNBQUE7O0FZaUVBLG1CQTFTQSxlQTBTQztFWmpFRCxxQkFBQTtFTTlOQSxxQkFBQTs7QUFFQSxtQk1iQSxlQTBTQyxPTjdSQTtFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXVoQmMsT1J2aEJkO0VBQUEsZUFBQTtFQUFBLGNBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxtQk16QkosZUEwU0MsT05sUkEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxtQk05QkosZUEwU0MsT043UUEsT0FDSTtFTjJNTCxjQUFBOztBV2NKLG1CQ2xFSTtFWm9EQSxTQUFBO0VBQUEsVUFBQTtFSzNMQSxxQkFBQTtFT3lJSSxzQkFBQTtFWmtESixtQkFBQTtFQUFBLHlCQUFBO0VZL0NJLGtCQUFBO0VaK0NKLFlBQUE7RUFBQSxTQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RVluQ0ksYUFBQTs7QURpRFIsbUJDbEVJLFlBbUJJO0VaaUNKLFNBQUE7RUFBQSxhQUFBO0VBQUEsNkJBQUE7O0FZeVNBLG1CQTdWQSxZQW1CSSxHQTBVSDtFQUNHLFlBQUE7O0FBclVJLG1CQXpCUixZQW1CSSxHQU1LO0VaMkJULG1CQUFBO0VZekJZLGVBQUE7O0FBV1osbUJBQUM7RUFDRyxpQkFBQTs7QUFESixtQkFBQyxPQUVHO0VBQ0ksY0FBQTs7QUQwRlo7RUN4TkkscUJBQUE7RUFDQSxrQkFBQTs7QVoxR0EsbUJBQUM7QUFDRCxtQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUJBQUM7RUFDRyxXQUFBOztBVzJUUixtQkM0RUk7RUFDSSxXQUFBO0VBQ0EsU0FBQTs7QUQ5RVIsbUJDZ0ZJO0VBQ0ksWUFBQTtFQUNBLFNBQUE7O0FEbEZSLG1CQytGSSxPQUFNO0VBQ0YsMEJBQUE7RUFDQSw2QkFBQTs7QURqR1IsbUJDbUdJLE9BQU87RUFDSCxjQUFBO0VBQ0EseUJBQUE7RUFDQSw0QkFBQTs7QUR0R1IsbUJDNU1JO0VaNkhBLGdCQUFBO0VBQUEscUJBQUE7RU05TkEscUJBQUE7O0FLNlNKLG1CQzVNSSxlTnNHQTtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTXVDQSxtQk0rRkEsZU4vRkM7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzZ0JnQixPUnRnQmhCO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksbUJNbUZKLGVOcEZDLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksbUJNOEVKLGVOL0VDLE9BQ0k7RU4yTUwsY0FBQTs7QVlrSEEsbUJBL09BLGVBK09DO0VabEhELHFCQUFBO0VNOU5BLHFCQUFBOztBTWdWQSxtQkEvT0EsZUErT0MsT056SUQ7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU11Q0EsbUJNK0ZBLGVBK09DLE9OOVVBO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWhCYyxPUnZoQmQ7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxtQk1tRkosZUErT0MsT05uVUEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxtQk04RUosZUErT0MsT045VEEsT0FDSTtFTjJNTCxjQUFBOztBVytFSixtQkNuSUk7RVpvREEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RU95SUksc0JBQUE7RVprREosbUJBQUE7RUFBQSx5QkFBQTtFWS9DSSxrQkFBQTtFWitDSixZQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxlQUFBO0VZbkNJLGFBQUE7RVptQ0oseUNBQUE7O0FXK0VKLG1CQ25JSSxZQW1CSTtFWmlDSixTQUFBO0VBQUEsZ0JBQUE7O0FZM0JRLG1CQXpCUixZQW1CSSxHQU1LO0VaMkJULG1CQUFBO0VZekJZLGVBQUE7O0FBd1NaLG1CQW5VQSxZQW1VQztBQUNELG1CQXBVQSxZQW9VQztFQUNHLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7O0FBRUosbUJBNVVBLFlBNFVDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBRUosbUJBalZBLFlBaVZDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBL0JKLG1CQXJUQSxZQXFUQztFWmpRRCxVQUFBO0VBQUEsV0FBQTs7QVlxUUEsbUJBelRBLFlBeVRDO0VaclFELFVBQUE7RUFBQSxVQUFBOztBWWRBLG1CQUFDO0VBQ0csaUJBQUE7O0FBREosbUJBQUMsT0FFRztFQUNJLGNBQUE7O0FEZ0daLE1BQU07RUM5TkYscUJBQUE7RUFDQSxrQkFBQTs7QVoxR0EsTVd1VUUsbUJYdlVEO0FBQ0QsTVdzVUUsbUJYdFVEO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixNV2tVRSxtQlhsVUQ7RUFDRyxXQUFBOztBV2lVUixNQUFNLG1CQ3NFRjtFQUNJLFdBQUE7RUFDQSxTQUFBOztBRHhFUixNQUFNLG1CQzBFRjtFQUNJLFlBQUE7RUFDQSxTQUFBOztBRDVFUixNQUFNLG1CQ2xORjtFWjZIQSxnQkFBQTtFQUFBLHFCQUFBO0VNOU5BLHFCQUFBOztBS21USixNQUFNLG1CQ2xORixlTnNHQTtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTXVDQSxNS2lURSxtQkNsTkYsZU4vRkM7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzZ0JnQixPUnRnQmhCO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksTUtxU0YsbUJDbE5GLGVOcEZDLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksTUtnU0YsbUJDbE5GLGVOL0VDLE9BQ0k7RU4yTUwsY0FBQTs7QVlrSEEsTUQ3QkUsbUJDbE5GLGVBK09DO0VabEhELHFCQUFBO0VNOU5BLHFCQUFBOztBTWdWQSxNRDdCRSxtQkNsTkYsZUErT0MsT056SUQ7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU11Q0EsTUtpVEUsbUJDbE5GLGVBK09DLE9OOVVBO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWhCYyxPUnZoQmQ7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxNS3FTRixtQkNsTkYsZUErT0MsT05uVUEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxNS2dTRixtQkNsTkYsZUErT0MsT045VEEsT0FDSTtFTjJNTCxjQUFBOztBV3FGSixNQUFNLG1CQ3pJRjtFWm9EQSxTQUFBO0VBQUEsVUFBQTtFSzNMQSxxQkFBQTtFT3lJSSxzQkFBQTtFWmtESixtQkFBQTtFQUFBLHlCQUFBO0VZL0NJLGtCQUFBO0VaK0NKLFlBQUE7RUFBQSxTQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RVluQ0ksYUFBQTtFWm1DSix5Q0FBQTs7QVdxRkosTUFBTSxtQkN6SUYsWUFtQkk7RVppQ0osU0FBQTtFQUFBLGdCQUFBOztBWTNCUSxNRGdITixtQkN6SUYsWUFtQkksR0FNSztFWjJCVCxtQkFBQTtFWXpCWSxlQUFBOztBQXdTWixNRDFMRSxtQkN6SUYsWUFtVUM7QUFDRCxNRDNMRSxtQkN6SUYsWUFvVUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBOztBQUVKLE1Ebk1FLG1CQ3pJRixZQTRVQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQUVKLE1EeE1FLG1CQ3pJRixZQWlWQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQS9CSixNRDVLRSxtQkN6SUYsWUFxVEM7RVpqUUQsVUFBQTtFQUFBLFdBQUE7O0FZcVFBLE1EaExFLG1CQ3pJRixZQXlUQztFWnJRRCxVQUFBO0VBQUEsVUFBQTs7QVlkQSxNRG1HRSxtQkNuR0Q7RUFDRyxpQkFBQTs7QUFESixNRG1HRSxtQkNuR0QsT0FFRztFQUNJLGNBQUE7O0FEaVhaO0VDL2VJLHFCQUFBO0VBQ0Esa0JBQUE7O0FaMUdBLG1CQUFDO0FBQ0QsbUJBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLG1CQUFDO0VBQ0csV0FBQTs7QVdrbEJSLG1CQzNNSTtFQUNJLFdBQUE7RUFDQSxTQUFBOztBRHlNUixtQkN2TUk7RUFDSSxZQUFBO0VBQ0EsU0FBQTs7QURxTVIsbUJDeExJLE9BQU07RUFDRiwwQkFBQTtFQUNBLDZCQUFBOztBRHNMUixtQkNwTEksT0FBTztFQUNILGNBQUE7RUFDQSx5QkFBQTtFQUNBLDRCQUFBOztBRGlMUixtQkNuZUk7RVo2SEEsZ0JBQUE7RUFBQSxxQkFBQTtFTTlOQSxxQkFBQTs7QUtva0JKLG1CQ25lSSxlTnNHQTtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTXVDQSxtQk0rRkEsZU4vRkM7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzZ0JnQixPUnRnQmhCO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksbUJNbUZKLGVOcEZDLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksbUJNOEVKLGVOL0VDLE9BQ0k7RU4yTUwsY0FBQTs7QVlrSEEsbUJBL09BLGVBK09DO0VabEhELHFCQUFBO0VNOU5BLHFCQUFBOztBTWdWQSxtQkEvT0EsZUErT0MsT056SUQ7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU11Q0EsbUJNK0ZBLGVBK09DLE9OOVVBO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRdWhCYyxPUnZoQmQ7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxtQk1tRkosZUErT0MsT05uVUEsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxtQk04RUosZUErT0MsT045VEEsT0FDSTtFTjJNTCxjQUFBOztBV3NXSixtQkMxWkk7RVpvREEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RU95SUksc0JBQUE7RVprREosbUJBQUE7RUFBQSx5QkFBQTtFWS9DSSxrQkFBQTtFWitDSixZQUFBO0VBQUEsU0FBQTtFQUFBLGVBQUE7RUFBQSxlQUFBO0VZbkNJLGFBQUE7RVptQ0oseUNBQUE7O0FXc1dKLG1CQzFaSSxZQW1CSTtFWmlDSixTQUFBO0VBQUEsZ0JBQUE7O0FZM0JRLG1CQXpCUixZQW1CSSxHQU1LO0VaMkJULG1CQUFBO0VZekJZLGVBQUE7O0FBd1NaLG1CQW5VQSxZQW1VQztBQUNELG1CQXBVQSxZQW9VQztFQUNHLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7O0FBRUosbUJBNVVBLFlBNFVDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBRUosbUJBalZBLFlBaVZDO0VBQ0csV0FBQTtFQUNBLGlCQUFBO0VBQ0EseURBQUE7O0FBL0JKLG1CQXJUQSxZQXFUQztFWmpRRCxVQUFBO0VBQUEsV0FBQTs7QVlxUUEsbUJBelRBLFlBeVRDO0VaclFELFVBQUE7RUFBQSxVQUFBOztBWWRBLG1CQUFDO0VBQ0csaUJBQUE7O0FBREosbUJBQUMsT0FFRztFQUNJLGNBQUE7O0FEcVhaO0VDbmZJLHFCQUFBO0VBQ0Esa0JBQUE7O0FEa2ZKLG1CQUNJLFFBQU87QUFEWCxtQkFFSSxRQUFPO0VOOWxCUCxtQkFBQTtFTGtQQSxrQkFBQTtFSzVQQSxpQkFBQTs7QUxVQSxtQkFBQztBQUNELG1CQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQkFBQztFQUNHLFdBQUE7O0FXc2xCUixtQkMvTUk7RUFDSSxXQUFBO0VBQ0EsU0FBQTs7QUQ2TVIsbUJDM01JO0VBQ0ksWUFBQTtFQUNBLFNBQUE7O0FEeU1SLG1CQzVMSSxPQUFNO0VBQ0YsMEJBQUE7RUFDQSw2QkFBQTs7QUQwTFIsbUJDeExJLE9BQU87RUFDSCxjQUFBO0VBQ0EseUJBQUE7RUFDQSw0QkFBQTs7QURxTFIsbUJDdmVJO0VaNkhBLGdCQUFBO0VBQUEscUJBQUE7RU05TkEscUJBQUE7O0FLd2tCSixtQkN2ZUksZU5zR0E7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU11Q0EsbUJNK0ZBLGVOL0ZDO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRc2dCZ0IsT1J0Z0JoQjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNaE5JLG1CTW1GSixlTnBGQyxNQUNJO0VOZ05MLGNBQUE7O0FNM01JLG1CTThFSixlTi9FQyxPQUNJO0VOMk1MLGNBQUE7O0FZa0hBLG1CQS9PQSxlQStPQztFWmxIRCxxQkFBQTtFTTlOQSxxQkFBQTs7QU1nVkEsbUJBL09BLGVBK09DLE9OeklEO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNdUNBLG1CTStGQSxlQStPQyxPTjlVQTtFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXVoQmMsT1J2aEJkO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksbUJNbUZKLGVBK09DLE9OblVBLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksbUJNOEVKLGVBK09DLE9OOVRBLE9BQ0k7RU4yTUwsY0FBQTs7QVcwV0osbUJDOVpJO0Vab0RBLFNBQUE7RUFBQSxVQUFBO0VLM0xBLHFCQUFBO0VPeUlJLHNCQUFBO0Vaa0RKLG1CQUFBO0VBQUEseUJBQUE7RVkvQ0ksa0JBQUE7RVorQ0osWUFBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsZUFBQTtFWW5DSSxhQUFBO0VabUNKLHlDQUFBOztBVzBXSixtQkM5WkksWUFtQkk7RVppQ0osU0FBQTtFQUFBLGdCQUFBOztBWTNCUSxtQkF6QlIsWUFtQkksR0FNSztFWjJCVCxtQkFBQTtFWXpCWSxlQUFBOztBQXdTWixtQkFuVUEsWUFtVUM7QUFDRCxtQkFwVUEsWUFvVUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBOztBQUVKLG1CQTVVQSxZQTRVQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQUVKLG1CQWpWQSxZQWlWQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQS9CSixtQkFyVEEsWUFxVEM7RVpqUUQsVUFBQTtFQUFBLFdBQUE7O0FZcVFBLG1CQXpUQSxZQXlUQztFWnJRRCxVQUFBO0VBQUEsVUFBQTs7QVlkQSxtQkFBQztFQUNHLGlCQUFBOztBQURKLG1CQUFDLE9BRUc7RUFDSSxjQUFBOztBRDZYWjtFQzNmSSxxQkFBQTtFQUNBLGtCQUFBOztBRDBmSixvQkFDSSxRQUFPO0FBRFgsb0JBRUksUUFBTztFTnRtQlAsbUJBQUE7RUxrUEEsZ0JBQUE7RUs1UEEsaUJBQUE7O0FMVUEsb0JBQUM7QUFDRCxvQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosb0JBQUM7RUFDRyxXQUFBOztBVzhsQlIsb0JDdk5JO0VBQ0ksV0FBQTtFQUNBLFNBQUE7O0FEcU5SLG9CQ25OSTtFQUNJLFlBQUE7RUFDQSxTQUFBOztBRGlOUixvQkNwTUksT0FBTTtFQUNGLDBCQUFBO0VBQ0EsNkJBQUE7O0FEa01SLG9CQ2hNSSxPQUFPO0VBQ0gsY0FBQTtFQUNBLHlCQUFBO0VBQ0EsNEJBQUE7O0FENkxSLG9CQy9lSTtFWjZIQSxnQkFBQTtFQUFBLHFCQUFBO0VNOU5BLHFCQUFBOztBS2dsQkosb0JDL2VJLGVOc0dBO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNdUNBLG9CTStGQSxlTi9GQztFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXNnQmdCLE9SdGdCaEI7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTWhOSSxvQk1tRkosZU5wRkMsTUFDSTtFTmdOTCxjQUFBOztBTTNNSSxvQk04RUosZU4vRUMsT0FDSTtFTjJNTCxjQUFBOztBWWtIQSxvQkEvT0EsZUErT0M7RVpsSEQscUJBQUE7RU05TkEscUJBQUE7O0FNZ1ZBLG9CQS9PQSxlQStPQyxPTnpJRDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTXVDQSxvQk0rRkEsZUErT0MsT045VUE7RU40TkQsYU9qUmUsbUJQaVJmO0VBQUEsU1F1aEJjLE9SdmhCZDtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNaE5JLG9CTW1GSixlQStPQyxPTm5VQSxNQUNJO0VOZ05MLGNBQUE7O0FNM01JLG9CTThFSixlQStPQyxPTjlUQSxPQUNJO0VOMk1MLGNBQUE7O0FXa1hKLG9CQ3RhSTtFWm9EQSxTQUFBO0VBQUEsVUFBQTtFSzNMQSxxQkFBQTtFT3lJSSxzQkFBQTtFWmtESixtQkFBQTtFQUFBLHlCQUFBO0VZL0NJLGtCQUFBO0VaK0NKLFlBQUE7RUFBQSxTQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RVluQ0ksYUFBQTtFWm1DSix5Q0FBQTs7QVdrWEosb0JDdGFJLFlBbUJJO0VaaUNKLFNBQUE7RUFBQSxnQkFBQTs7QVkzQlEsb0JBekJSLFlBbUJJLEdBTUs7RVoyQlQsbUJBQUE7RVl6QlksZUFBQTs7QUF3U1osb0JBblVBLFlBbVVDO0FBQ0Qsb0JBcFVBLFlBb1VDO0VBQ0csU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSwwQkFBQTs7QUFFSixvQkE1VUEsWUE0VUM7RUFDRyxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5REFBQTs7QUFFSixvQkFqVkEsWUFpVkM7RUFDRyxXQUFBO0VBQ0EsaUJBQUE7RUFDQSx5REFBQTs7QUEvQkosb0JBclRBLFlBcVRDO0VaalFELFVBQUE7RUFBQSxXQUFBOztBWXFRQSxvQkF6VEEsWUF5VEM7RVpyUUQsVUFBQTtFQUFBLFVBQUE7O0FZZEEsb0JBQUM7RUFDRyxpQkFBQTs7QUFESixvQkFBQyxPQUVHO0VBQ0ksY0FBQTs7QUQrWlo7RUM3aEJJLHFCQUFBO0VBQ0Esa0JBQUE7O0FaMUdBLG9CQUFDO0FBQ0Qsb0JBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLG9CQUFDO0VBQ0csV0FBQTs7QVdnb0JSLG9CQzFRSTtFQUNJLFlBQUE7RUFDQSxTQUFBOztBRHdRUixvQkN0UUk7RUFDSSxXQUFBO0VBQ0EsU0FBQTs7QURvUVIsb0JDbE5JLE9BQU07RUFDRix5QkFBQTtFQUNBLDRCQUFBOztBRGdOUixvQkM5TUksT0FBTztFQUNILGVBQUE7RUFDQSwwQkFBQTtFQUNBLDZCQUFBOztBRDJNUixvQkNqaEJJO0VaNkhBLGdCQUFBO0VBQUEscUJBQUE7RU12UUEscUJBQUE7O0FLMnBCSixvQkNqaEJJLGVOc0dBO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNREEsb0JNdUlBLGVOdklDO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRMmhCVSxPUjNoQlY7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxvQk0ySEosZU41SEMsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxvQk1zSEosZU52SEMsT0FDSTtFTm1QTCxjQUFBOztBWWtIQSxvQkEvT0EsZUErT0M7RVpsSEQscUJBQUE7RU12UUEscUJBQUE7O0FNeVhBLG9CQS9PQSxlQStPQyxPTnpJRDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLG9CTXVJQSxlQStPQyxPTnRYQTtFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUThnQlksT1I5Z0JaO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksb0JNMkhKLGVBK09DLE9OM1dBLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksb0JNc0hKLGVBK09DLE9OdFdBLE9BQ0k7RU5tUEwsY0FBQTs7QVdvWkosb0JDeGNJO0Vab0RBLFNBQUE7RUFBQSxVQUFBO0VLM0xBLHFCQUFBO0VPeUlJLHNCQUFBO0Vaa0RKLG1CQUFBO0VBQUEseUJBQUE7RVkvQ0ksa0JBQUE7RVorQ0osWUFBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsZUFBQTtFWW5DSSxhQUFBO0VabUNKLHlDQUFBOztBV29aSixvQkN4Y0ksWUFtQkk7RVppQ0osU0FBQTtFQUFBLGdCQUFBOztBWTNCUSxvQkF6QlIsWUFtQkksR0FNSztFWjJCVCxtQkFBQTtFWXpCWSxlQUFBOztBQXdTWixvQkFuVUEsWUFtVUM7QUFDRCxvQkFwVUEsWUFvVUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBOztBQUVKLG9CQTVVQSxZQTRVQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQUVKLG9CQWpWQSxZQWlWQztFQUNHLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHlEQUFBOztBQS9CSixvQkFyVEEsWUFxVEM7RVpqUUQsVUFBQTtFQUFBLFdBQUE7O0FZcVFBLG9CQXpUQSxZQXlUQztFWnJRRCxVQUFBO0VBQUEsVUFBQTs7QVlkQSxvQkFBQztFQUNHLGlCQUFBOztBQURKLG9CQUFDLE9BRUc7RUFDSSxjQUFBOztBRHFjWjtFQ25rQkkscUJBQUE7RUFDQSxrQkFBQTs7QVoxR0Esb0JBQUM7QUFDRCxvQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosb0JBQUM7RUFDRyxXQUFBOztBV3NxQlIsb0JDL1JJO0VBQ0ksV0FBQTtFQUNBLFNBQUE7O0FENlJSLG9CQzNSSTtFQUNJLFlBQUE7RUFDQSxTQUFBOztBRHlSUixvQkM1UUksT0FBTTtFQUNGLDBCQUFBO0VBQ0EsNkJBQUE7O0FEMFFSLG9CQ3hRSSxPQUFPO0VBQ0gsY0FBQTtFQUNBLHlCQUFBO0VBQ0EsNEJBQUE7O0FEcVFSLG9CQ3ZqQkk7RVo2SEEsZ0JBQUE7RUFBQSxxQkFBQTtFTTlOQSxxQkFBQTs7QUt3cEJKLG9CQ3ZqQkksZU5zR0E7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU11Q0Esb0JNK0ZBLGVOL0ZDO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRc2dCZ0IsT1J0Z0JoQjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNaE5JLG9CTW1GSixlTnBGQyxNQUNJO0VOZ05MLGNBQUE7O0FNM01JLG9CTThFSixlTi9FQyxPQUNJO0VOMk1MLGNBQUE7O0FZa0hBLG9CQS9PQSxlQStPQztFWmxIRCxxQkFBQTtFTTlOQSxxQkFBQTs7QU1nVkEsb0JBL09BLGVBK09DLE9OeklEO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNdUNBLG9CTStGQSxlQStPQyxPTjlVQTtFTjRORCxhT2pSZSxtQlBpUmY7RUFBQSxTUXVoQmMsT1J2aEJkO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU1oTkksb0JNbUZKLGVBK09DLE9OblVBLE1BQ0k7RU5nTkwsY0FBQTs7QU0zTUksb0JNOEVKLGVBK09DLE9OOVRBLE9BQ0k7RU4yTUwsY0FBQTs7QVcwYkosb0JDOWVJO0Vab0RBLFNBQUE7RUFBQSxVQUFBO0VLM0xBLHFCQUFBO0VPeUlJLHNCQUFBO0Vaa0RKLG1CQUFBO0VBQUEseUJBQUE7RVkvQ0ksa0JBQUE7RVorQ0osWUFBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsZUFBQTtFWW5DSSxhQUFBOztBRDZkUixvQkM5ZUksWUFtQkk7RVppQ0osU0FBQTtFQUFBLGFBQUE7RUFBQSw2QkFBQTs7QVl5U0Esb0JBN1ZBLFlBbUJJLEdBMFVIO0VBQ0csWUFBQTs7QUFyVUksb0JBekJSLFlBbUJJLEdBTUs7RVoyQlQsbUJBQUE7RVl6QlksZUFBQTs7QUFXWixvQkFBQztFQUNHLGlCQUFBOztBQURKLG9CQUFDLE9BRUc7RUFDSSxjQUFBOztBQ3hFWixlQUNJO0Via0ZBLFVBQUE7RUFBQSxnQkFBQTtFQUFBLFNBQUE7RWN1S0EsdUJBQUE7O0FEMVBKLGVBQ0kseUJDNFBBO0VBQ0ksc0JBQUE7O0FEOVBSLGVBQ0kseUJDaVFBO0VkL0tBLGdCQUFBO0VBQUEsVUFBQTtFSzVQQSxlQUFBO0VMNFBBLGdCQUFBO0VjMExJLHNCQUFBO0VBQ0EsV0FBQTs7QUFFQSxlRC9RSix5QkNpUUEsVUFjTTtFQUNFLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7O0FBdWlCUixlRDN6QkEseUJDMnpCQztFQTBCRCxTQUFTLHNCQUFUO0VBQ0EsY0FBQTtFVGhnQ0EsaUJBQUE7RUw0UEEsY0FBQTtFQUFBLGdCQUFBO0VjaXhCQSxzQkFBQTtFQUNBLG9CQUFBOztBRHIyQkosZUFDSSx5QkFHSTtFYitFSixnQkFBQTs7QWFuRkosZUFDSSx5QkFHSSxTQ3VqQko7RUFDSSxxQkFBQTtFZHplSixlQUFBOztBYytRQSxlRGpXQSx5QkFHSSxTQzhWSDtFQUNHLGdCQUFBOztBRG5XUixlQUNJLHlCQUdJLFNDd1dKO0VkelJBLGdCQUFBOztBY2tTSSxlRHBYSix5QkFHSSxTQ3dXSixTQVNNO0VBQ0UsYUFBQTs7QUR0WFosZUFDSSx5QkFHSSxTQ3NYSixRQUNJO0VBQ0ksbUJBQUE7O0FkM2hCUixlYWdLQSx5QkFHSSxTQzRYSixRQUFPLE1kL2hCTjtBQUNELGVhK0pBLHlCQUdJLFNDNFhKLFFBQU8sTWQ5aEJOO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixlYTJKQSx5QkFHSSxTQzRYSixRQUFPLE1kMWhCTjtFQUNHLFdBQUE7O0FheUpSLGVBQ0kseUJBR0ksU0M0WEosUUFBTyxNQUVIO0VBQ0ksc0JBQUE7RUFDQSxXQUFBOztBQUVKLGVEcllKLHlCQUdJLFNDNFhKLFFBQU8sTUFNRixRQUFTO0VBQ04scUJBQUE7O0FBRUosZUR4WUoseUJBR0ksU0M0WEosUUFBTyxNQVNGLFFBQVM7RUFDTix1QkFBQTs7QUFFSixlRDNZSix5QkFHSSxTQzRYSixRQUFPLE1BWUYsUUFBUztFQUNOLHFCQUFBOztBQUVKLGVEOVlKLHlCQUdJLFNDNFhKLFFBQU8sTUFlRixRQUFTO0VBQ04scUJBQUE7O0FEaFpaLGVBQ0kseUJBR0ksU0NnWko7RWRoTkEsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLG9CQUFBO0VBMkJBLHlCQUFBO0VBQ1EsaUJBQUE7RWNxTEosVUFBQTtFQUNBLFdBQUE7O0FEeFpSLGVBQ0kseUJBR0ksU0NnWkosT0FLSTtBRHpaUixlQUNJLHlCQUdJLFNDZ1pKLE9BTUk7QUQxWlIsZUFDSSx5QkFHSSxTQ2daSixPQU9JO0VkM0tKLGlCQUFBO0VBQ0MsZ0JBQUE7RUFDUSxRQUFBO0VBeEJULHdCQUFBO0VBQ1EsZ0JBQUE7RWNtTUEsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBOztBRGphWixlQUNJLHlCQUdJLFNDZ1pKLE9BZUk7QURuYVIsZUFDSSx5QkFHSSxTQ2daSixPQWdCSTtFZHBMSixpQkFBQTtFQUNDLGdCQUFBO0VBQ1EsUUFBQTtFY29MRCxxQkFBQTtFQTVrQlIsc0JBQUE7RWR5UEEsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLFdBQUE7RUFBQSxjQUFBO0VBQUEsZUFBQTtFQUFBLDJEQUFBO0VBQUEsd0JBQUE7RUFBQSw0QkFBQTtFQUFBLHdCQUFBO0VjcVZRLFdBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBOztBQWxQUixlRHZMQSx5QkFHSSxTQ2daSixPQWVJLFdBM09IO0FBQUQsZUR2TEEseUJBR0ksU0NnWkosT0FnQkksVUE1T0g7RWRyR0QsWUFBQTs7QWNvSEEsZUR0TUEseUJBR0ksU0NnWkosT0FlSSxXQTVOSDtBQUFELGVEdE1BLHlCQUdJLFNDZ1pKLE9BZ0JJLFVBN05IO0VkcEhELGNBQUE7O0Fjd0hBLGVEMU1BLHlCQUdJLFNDZ1pKLE9BZUksV0F4Tkg7QUFBRCxlRDFNQSx5QkFHSSxTQ2daSixPQWdCSSxVQXpOSDtFZHhIRCxjQUFBOztBYzRIQSxlRDlNQSx5QkFHSSxTQ2daSixPQWVJLFdBcE5IO0FBQUQsZUQ5TUEseUJBR0ksU0NnWkosT0FnQkksVUFyTkg7RWQ1SEQsY0FBQTs7QWFuRkosZUFDSSx5QkFHSSxTQ2daSixPQXdCSTtFQUNJLFdBQUE7RWQ3TFIsaUJBQUE7RUFDQyxnQkFBQTtFQUNRLFFBQUE7O0FhbFBiLGVBQ0kseUJBR0ksU0M4YUo7RWQvVkEsZ0JBQUE7O0FjeWZBLGVEM2tCQSx5QkFHSSxTQ3drQkgsU0FBVSxTQUFRO0VBQ2YsU0FBUyxHQUFUO0VUdHZCSixpQkFBQTtFTDRQQSxjQUFBO0VBQUEsaUJBQUE7O0FhbkZKLGVBQ0kseUJBR0ksU0M0bUJKO0VUenhCQSxpQkFBQTtFTDRQQSxlQUFBO0VBQUEsVUFBQTtFQUFBLHFCQUFBO0VNdlFBLHFCQUFBOztBQUdBLGVPa0xBLHlCQUdJLFNDNG1CSixNUmp5QkM7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1F1aEJjLE9SdmhCZDtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RU1xREEsa0JBQUE7O0FPOUhKLGVBQ0k7RWJ3RUEsVUFBQTtFQUFBLGdCQUFBO0VBQUEsU0FBQTtFY3VLQSx1QkFBQTs7QURoUEosZUFDSSx5QkNrUEE7RUFDSSxzQkFBQTs7QURwUFIsZUFDSSx5QkN1UEE7RWQvS0EsZ0JBQUE7RUFBQSxVQUFBO0VLNVBBLGVBQUE7RUw0UEEsZ0JBQUE7RWMwTEksc0JBQUE7RUFDQSxXQUFBOztBQUVBLGVEclFKLHlCQ3VQQSxVQWNNO0VBQ0UsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTs7QUQzUVosZUFDSSx5QkFFSTtFYnNFSixnQkFBQTtFY3NvQkEsc0JBQUE7RUFFQSxxQkFBQTtFZHhvQkEsbUJBQUE7RUFBQSxVQUFBO0VjMm9CQSxtQkFBQTs7QURwdEJKLGVBQ0kseUJBRUksU0M4aUJKO0VBQ0kscUJBQUE7RWR6ZUosZUFBQTs7QWMrUUEsZUR2VkEseUJBRUksU0NxVkg7RUFDRyxnQkFBQTs7QUE2WEosZURydEJBLHlCQUVJLFNDbXRCRjtFQUNFLFdBQUE7O0FEdnRCUixlQUNJLHlCQUVJLFNDK1ZKO0VkelJBLGdCQUFBOztBY2tTSSxlRDFXSix5QkFFSSxTQytWSixTQVNNO0VBQ0UsYUFBQTs7QUQ1V1osZUFDSSx5QkFFSSxTQzZXSixRQUNJO0VBQ0ksbUJBQUE7O0FkM2hCUixlYTBLQSx5QkFFSSxTQ21YSixRQUFPLE1kL2hCTjtBQUNELGVheUtBLHlCQUVJLFNDbVhKLFFBQU8sTWQ5aEJOO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixlYXFLQSx5QkFFSSxTQ21YSixRQUFPLE1kMWhCTjtFQUNHLFdBQUE7O0FhbUtSLGVBQ0kseUJBRUksU0NtWEosUUFBTyxNQUVIO0VBQ0ksc0JBQUE7RUFDQSxXQUFBOztBQUVKLGVEM1hKLHlCQUVJLFNDbVhKLFFBQU8sTUFNRixRQUFTO0VBQ04scUJBQUE7O0FBRUosZUQ5WEoseUJBRUksU0NtWEosUUFBTyxNQVNGLFFBQVM7RUFDTix1QkFBQTs7QUFFSixlRGpZSix5QkFFSSxTQ21YSixRQUFPLE1BWUYsUUFBUztFQUNOLHFCQUFBOztBQUVKLGVEcFlKLHlCQUVJLFNDbVhKLFFBQU8sTUFlRixRQUFTO0VBQ04scUJBQUE7O0FEdFlaLGVBQ0kseUJBRUksU0N1WUo7RWRoTkEsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLG9CQUFBO0VBMkJBLHlCQUFBO0VBQ1EsaUJBQUE7RWNxTEosVUFBQTtFQUNBLFdBQUE7O0FEOVlSLGVBQ0kseUJBRUksU0N1WUosT0FLSTtBRC9ZUixlQUNJLHlCQUVJLFNDdVlKLE9BTUk7QURoWlIsZUFDSSx5QkFFSSxTQ3VZSixPQU9JO0VkM0tKLGlCQUFBO0VBQ0MsZ0JBQUE7RUFDUSxRQUFBO0VBeEJULHdCQUFBO0VBQ1EsZ0JBQUE7RWNtTUEsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBOztBRHZaWixlQUNJLHlCQUVJLFNDdVlKLE9BZUk7QUR6WlIsZUFDSSx5QkFFSSxTQ3VZSixPQWdCSTtFZHBMSixpQkFBQTtFQUNDLGdCQUFBO0VBQ1EsUUFBQTtFY29MRCxxQkFBQTtFQTVrQlIsc0JBQUE7RWR5UEEsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLFdBQUE7RUFBQSxjQUFBO0VBQUEsZUFBQTtFQUFBLDJEQUFBO0VBQUEsd0JBQUE7RUFBQSw0QkFBQTtFQUFBLHdCQUFBO0VjcVZRLFdBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBOztBQWxQUixlRDdLQSx5QkFFSSxTQ3VZSixPQWVJLFdBM09IO0FBQUQsZUQ3S0EseUJBRUksU0N1WUosT0FnQkksVUE1T0g7RWRyR0QsWUFBQTs7QWNvSEEsZUQ1TEEseUJBRUksU0N1WUosT0FlSSxXQTVOSDtBQUFELGVENUxBLHlCQUVJLFNDdVlKLE9BZ0JJLFVBN05IO0VkcEhELGNBQUE7O0Fjd0hBLGVEaE1BLHlCQUVJLFNDdVlKLE9BZUksV0F4Tkg7QUFBRCxlRGhNQSx5QkFFSSxTQ3VZSixPQWdCSSxVQXpOSDtFZHhIRCxjQUFBOztBYzRIQSxlRHBNQSx5QkFFSSxTQ3VZSixPQWVJLFdBcE5IO0FBQUQsZURwTUEseUJBRUksU0N1WUosT0FnQkksVUFyTkg7RWQ1SEQsY0FBQTs7QWF6RUosZUFDSSx5QkFFSSxTQ3VZSixPQXdCSTtFQUNJLFdBQUE7RWQ3TFIsaUJBQUE7RUFDQyxnQkFBQTtFQUNRLFFBQUE7O0FheE9iLGVBQ0kseUJBRUksU0NxYUo7RWQvVkEsZ0JBQUE7O0FjeWZBLGVEamtCQSx5QkFFSSxTQytqQkgsU0FBVSxTQUFRO0VBQ2YsU0FBUyxHQUFUO0VUdHZCSixpQkFBQTtFTDRQQSxjQUFBO0VBQUEsaUJBQUE7O0FhekVKLGVBQ0kseUJBRUksU0NtbUJKO0VUenhCQSxpQkFBQTtFTDRQQSxlQUFBO0VBQUEsVUFBQTtFQUFBLHFCQUFBO0VNdlFBLHFCQUFBOztBQUdBLGVPNExBLHlCQUVJLFNDbW1CSixNUmp5QkM7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1F1aEJjLE9SdmhCZDtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RU1xREEsa0JBQUE7O0FPcVdKLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0VDMXBCRCxzQkFBQTtFZHlQQSxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsa0JBQUE7RUFBQSxZQUFBO0VBQUEsV0FBQTtFQUFBLGNBQUE7RUFBQSxlQUFBO0VBQUEsMkRBQUE7RUFBQSx3QkFBQTtFQUFBLDRCQUFBO0VBQUEsd0JBQUE7RWFtYUEsbUJBQUE7O0FDOVRBLEtEcVRDLGFDclRBO0FBQUQsS0RzVEMsaUJDdFRBO0FBQUQsS0R1VEMsWUN2VEE7QUFBRCxLRHdUQyxZQ3hUQTtBQUFELEtEeVRDLGVDelRBO0FBQUQsS0QwVEMsZUMxVEE7QUFBRCxLRDJUQyxpQkMzVEE7QUFBRCxLRDRUQyxjQzVUQTtFZHJHRCxZQUFBOztBY29IQSxLRHNTQyxhQ3RTQTtBQUFELEtEdVNDLGlCQ3ZTQTtBQUFELEtEd1NDLFlDeFNBO0FBQUQsS0R5U0MsWUN6U0E7QUFBRCxLRDBTQyxlQzFTQTtBQUFELEtEMlNDLGVDM1NBO0FBQUQsS0Q0U0MsaUJDNVNBO0FBQUQsS0Q2U0MsY0M3U0E7RWRwSEQsY0FBQTs7QWN3SEEsS0RrU0MsYUNsU0E7QUFBRCxLRG1TQyxpQkNuU0E7QUFBRCxLRG9TQyxZQ3BTQTtBQUFELEtEcVNDLFlDclNBO0FBQUQsS0RzU0MsZUN0U0E7QUFBRCxLRHVTQyxlQ3ZTQTtBQUFELEtEd1NDLGlCQ3hTQTtBQUFELEtEeVNDLGNDelNBO0VkeEhELGNBQUE7O0FjNEhBLEtEOFJDLGFDOVJBO0FBQUQsS0QrUkMsaUJDL1JBO0FBQUQsS0RnU0MsWUNoU0E7QUFBRCxLRGlTQyxZQ2pTQTtBQUFELEtEa1NDLGVDbFNBO0FBQUQsS0RtU0MsZUNuU0E7QUFBRCxLRG9TQyxpQkNwU0E7QUFBRCxLRHFTQyxjQ3JTQTtFZDVIRCxjQUFBOztBYXNhSjtFQy9wQkksc0JBQUE7RWR5UEEsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGtCQUFBO0VBQUEsWUFBQTtFQUFBLFdBQUE7RUFBQSxxQkFBQTtFQUFBLGVBQUE7RUFBQSwyREFBQTtFQUFBLHdCQUFBO0VBQUEsNEJBQUE7RUFBQSx3QkFBQTtFYXdhQSxtQkFBQTs7QUNuVUEsTUFBQztFZHJHRCxZQUFBOztBYTJhSixNQUFNO0ViM2FGLFlBQUE7RWE2YUEsbUJBQUE7O0FBR0o7RUN6cUJJLHNCQUFBO0VkeVBBLG1CQUFBO0VBQUEseUJBQUE7RUFBQSxrQkFBQTtFQUFBLFlBQUE7RUFBQSxXQUFBO0VBQUEsYUFBQTtFQUFBLFNBQUE7RUFBQSxlQUFBO0VBQUEsMkRBQUE7RUFBQSx3QkFBQTtFQUFBLDRCQUFBO0VBQUEsd0JBQUE7RUFBQSxnQkFBQTs7QWNxR0EsUUFBQztFZHJHRCxZQUFBOztBY29IQSxRQUFDO0VkcEhELGNBQUE7O0Fjd0hBLFFBQUM7RWR4SEQsY0FBQTs7QWM0SEEsUUFBQztFZDVIRCxjQUFBOztBYXVuQkosS0FBSztFYnZuQkQsbUJBQUE7O0FjL0xBLEtEc3pCQyxpQkN0ekJBO0VkK0xELFlBQUE7O0FhMm5CSixLQUFLO0ViM25CRCxtQkFBQTs7QWMvTEEsS0QwekJDLGNDMXpCQTtFZCtMRCxZQUFBOztBYXlyQkosS0FBSztBQUNMLE1BQU07QUFDTixRQUFRO0ViM3JCSixtQkFBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTs7QWNwSkEsS0Q2MEJDLGVDNzBCQTtBQUFELE1EODBCRSxpQkM5MEJEO0FBQUQsUUQrMEJJLG1CQy8wQkg7RWRvSkQscUJBQUE7RUFBQSxjQUFBOztBYy9JQSxLRHcwQkMsZUN4MEJBO0FBQUQsTUR5MEJFLGlCQ3owQkQ7QUFBRCxRRDAwQkksbUJDMTBCSDtFZCtJRCxjQUFBOztBYzFJQSxLRGcxQkMsZUNoMUJBO0FBQUQsUURpMUJJLG1CQ2oxQkg7RWQwSUQsY0FBQTs7QWN2SUEsS0Q2MEJDLGVDNzBCQTtBQUFELFFEODBCSSxtQkM5MEJIO0VkdUlELGNBQUE7O0FjcElBLEtEMDBCQyxlQzEwQkE7QUFBRCxRRDIwQkksbUJDMzBCSDtFZG9JRCxjQUFBOztBYWl0Qko7RUNyNEJJLDBCQUFBOztBQUxBLGVBQUM7QUFDRCxlQUFDO0VBQ0Msd0JBQUE7RUFDQSxTQUFBOztBRCs0Qk47RUN6NEJJLHdCQUFBOztBQUNBLGVBQUM7QUFDRCxlQUFDO0FBQ0QsZUFBQztBQUNELGVBQUM7RUFDRyx3QkFBQTs7QURzNkJSO0FBQ0E7QUFDQTtFUnovQkksaUJBQUE7RUw0UEEsY0FBQTs7QVEvUUo7RUZnSUkscUJBQUE7O0FBRUEsZUFBQztFQTRJRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFTkFBLFdBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFTU9BLGdCRXJSMEIsc0ZGcVIxQjs7QUVsUko7RUZ1SkkscUJBQUE7O0FBRUEsZUFBQztFQWlIRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFTkFBLFdBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFTU9BLGdCRWhSa0IsMEZGZ1JsQjs7QUV6UUo7RUZtSEkscUJBQUE7O0FFbkhKLGVGMk9JO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNc0hBLGVBQUM7RUE0SUQsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RU5BQSxXQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RU1PQSxnQkV2UWtCLCtGRnVRbEI7O0FFaFFKO0VSeVBJLHFCQUFBO0VNdlFBLHFCQUFBOztBQUdBLGVBQUM7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1FxZ0JZLE9ScmdCWjtFQUFBLGVBQUE7RUFBQSxvQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLHNCQUFBO0VNcURBLGtCQUFBOztBRXZTSjtFUmtQSSxxQkFBQTtFTTlOQSxxQkFBQTs7QUFFQSxlQUFDO0VONE5ELGFPalJlLG1CUGlSZjtFQUFBLFNRb2dCUSxPUnBnQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxzQkFBQTtFTXFEQSxrQkFBQTs7QUUvUko7RVIwT0kscUJBQUE7RU12UUEscUJBQUE7O0FFNkJKLGVGbU5JO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNREEsZUFBQztFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUTBoQlEsT1IxaEJSO0VBQUEsZUFBQTtFQUFBLG9CQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RU1xREEsa0JBQUE7O0FFaFJKO0VGNEVJLHFCQUFBOztBQUVBLGVBQUM7RUE0SUQsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RU5BQSxXQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RU1PQSxnQkVqTzBCLHNGRmlPMUI7O0FFbkpKO0VGSEkscUJBQUE7O0FBRUEsZUFBQztFQTRJRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFTkFBLFdBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFTU9BLGdCRWxKMEIsc0ZGa0oxQjs7QUF0R0EsZUFBQztFQThHRCw2QkFBQTs7QUVwSko7RUZpQkkscUJBQUE7O0FBRUEsZUFBQztFQWlIRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFTkFBLFdBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFTU9BLGdCRTNJMEIsc0ZGMkkxQjs7QUF6RkEsZUFBQztFQWlHRCxnQ0FBQTs7QUV0R0o7RUZ4REkscUJBQUE7O0FBRUEsZ0JBQUM7RUE0SUQsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RU5BQSxXQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEsc0JBQUE7RU1PQSxnQkU3RjBCLHNGRjZGMUI7O0FBM0VBLGdCQUFDO0VBbUdELCtCQUFBOztBRXRFSjtFRnhHSSxxQkFBQTs7QUFFQSxnQkFBQztFQTRJRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFTkFBLFdBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxzQkFBQTtFTU9BLGdCRTdDMEIsc0ZGNkMxQjs7QUE5Q0EsZ0JBQUM7RU51Q0QsV0FBQTtFQUFBLFlBQUE7O0FNN0JBLGdCQUFDO0VONkJELFdBQUE7RUFBQSxZQUFBOztBUXBDQSxnQkFBQztFQUNHLHlCQUFBOztBQTBDUjtFUlBJLHFCQUFBO0VNdlFBLHFCQUFBOztBQUdBLGdCQUFDO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRaWhCWSxPUmpoQlo7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxzQkFBQTtFTXFEQSxrQkFBQTs7QUVxREo7RVIxR0kscUJBQUE7RU12UUEscUJBQUE7O0FBR0EsZ0JBQUM7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1FpaEJZLE9SamhCWjtFQUFBLGtCQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxzQkFBQTtFTXFEQSxrQkFBQTs7QUFyUEEsZ0JBQUM7RU5nTUQsZUFBQTtFQUFBLG9CQUFBOztBUXNKSjtFUnRKSSxxQkFBQTtFTXZRQSxxQkFBQTs7QUFHQSxnQkFBQztFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUTRoQlksT1I1aEJaO0VBQUEsZUFBQTtFQUFBLG9CQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RU1xREEsa0JBQUE7O0FFaUdKLGdCRjdLSTtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBUTZvQko7RUFDSSxnQkFBQTtFQUNBLFVBQUE7O0FBRkosaUJBR0k7RUFDSSxXQUFBO0VBQ0EsVUFBQTs7QUFMUixpQkFHSSxHQUdJO0VGL2hCSixxQkFBQTs7QUFFQSxpQkUwaEJBLEdBR0ksT0Y3aEJIO0VBNElELFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VOQUEsV0FBQTtFQUFBLFlBQUE7RUFBQSxpQkFBQTtFQUFBLHNCQUFBO0VNT0EsZ0JFMFlrQyxzRkYxWWxDOztBQTNFQSxpQkVpZEEsR0FNSSxhRnZkSDtFQW1HRCw0QkFBQTs7QUFuR0EsaUJFaWRBLEdBU0ksV0YxZEg7RUFtR0QsOEJBQUE7O0FBbkdBLGlCRWlkQSxHQVlJLGlCRjdkSDtFQW1HRCw4QkFBQTs7QUFuR0EsaUJFaWRBLEdBZUksZUZoZUg7RUFtR0QsOEJBQUE7O0FBbkdBLGlCRWlkQSxHQWtCSSxXRm5lSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBcUJJLFdGdGVIO0VBbUdELCtCQUFBOztBQW5HQSxpQkVpZEEsR0F3QkksYUZ6ZUg7RUFtR0QsK0JBQUE7O0FBbkdBLGlCRWlkQSxHQTJCSSxXRjVlSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBOEJJLG1CRi9lSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBaUNJLGlCRmxmSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBb0NJLG1CRnJmSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBdUNJLG9CRnhmSDtFQW1HRCwrQkFBQTs7QUFuR0EsaUJFaWRBLEdBMENJLG9CRjNmSDtFQW1HRCw4QkFBQTs7QUFuR0EsaUJFaWRBLEdBNkNJLG1CRjlmSDtFQW1HRCxnQ0FBQTs7QUFuR0EsaUJFaWRBLEdBZ0RJLHFCRmpnQkg7RUFtR0QsZ0NBQUE7O0FBbkdBLGlCRWlkQSxHQW1ESSxvQkZwZ0JIO0VBbUdELGdDQUFBOztBQW5HQSxpQkVpZEEsR0FzREksYUZ2Z0JIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0F5REksZUYxZ0JIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0E0REksYUY3Z0JIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0ErREksV0ZoaEJIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0FrRUksV0ZuaEJIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0FxRUksV0Z0aEJIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0F3RUksZUZ6aEJIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0EyRUksV0Y1aEJIO0VBbUdELGlDQUFBOztBQW5HQSxpQkVpZEEsR0E4RUksZ0JGL2hCSDtFQW1HRCw4QkFBQTs7QUFuR0EsaUJFaWRBLEdBaUZJLGVGbGlCSDtFQW1HRCxnQ0FBQTs7QUFuR0EsaUJFaWRBLEdBb0ZJLGNGcmlCSDtFQW1HRCxnQ0FBQTs7QUFuR0EsaUJFaWRBLEdBdUZJLHdCRnhpQkg7RUFtR0QsZ0NBQUE7O0FBbkdBLGlCRWlkQSxHQTBGSSxlRjNpQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQTZGSSxjRjlpQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQWdHSSxZRmpqQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQW1HSSxXRnBqQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQXNHSSxlRnZqQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQXlHSSxTRjFqQkg7RUFtR0QsaUNBQUE7O0FBbkdBLGlCRWlkQSxHQTRHSSxXRjdqQkg7RUFtR0QsaUNBQUE7O0FFd2dCSjtFQUNJLGdCQUFBO0VBQ0EsVUFBQTs7QUFGSixnQkFHSTtFQUNJLFdBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFQUixnQkFHSSxHQUtJO0VSL2lCSixxQkFBQTtFTXZRQSxxQkFBQTs7QUFHQSxnQkU4eUJBLEdBS0ksT0ZuekJIO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLGVBQUE7RUFBQSxvQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLHNCQUFBO0VNcURBLGtCQUFBOztBRTRmUSxnQkFQUixHQUtJLE9BRUs7RUFDRyxTQUFTLGVBQVQ7RUFDQSxjQUFBO0VBQ0EsY0FBQTs7QU9uMEJoQjtFQ09JLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VoQm9RQSwwQ0FBQTtFQUFBLGFBQUE7O0FnQmpRQSxPQUFDO0VoQmlRRCxrQkFBQTtFQUFBLDRCaUJwUmdDLGlGakJvUmhDO0VnQjlQSSxzQkFBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RWhCdVBKLFlBQUE7RUFBQSxhQUFBOztBZW5KSjtFQ3hFSSxrQkFBQTs7QUFDQSxRQUFDO0VBQ0csU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VoQm9OSix5Q2lCcFJnQyxpRmpCb1JoQzs7QWtCMVFKO0VDV0ksY0FBQTtFbkIrUEEsZ0JBQUE7RUFBQSxrQkFBQTtFSzVQQSxpQkFBQTtFTDRQQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsY0FBQTs7QWtCMVFKLHFCQ3FDSTtFbkJxT0EsY0FBQTs7QW1Cbk9JLHFCQUZKLEVBRUs7RW5CbU9MLGNBQUE7O0FtQmhPSSxxQkFMSixFQUtLO0VuQmdPTCxjQUFBOztBa0IxUEo7RUNMSSxjQUFBO0VuQitQQSxnQkFBQTtFQUFBLGtCQUFBO0VLNVBBLGlCQUFBO0VMNFBBLGtCQUFBO0VBQUEsbUJBQUE7RUFBQSxjQUFBOztBa0IxUEosd0JDcUJJO0VuQnFPQSxjQUFBOztBbUJuT0ksd0JBRkosRUFFSztFbkJtT0wsY0FBQTs7QW1CaE9JLHdCQUxKLEVBS0s7RW5CZ09MLGNBQUE7O0FrQjFPSjtFQ3JCSSxjQUFBO0VuQitQQSxnQkFBQTtFQUFBLGtCQUFBO0VLNVBBLGlCQUFBO0VMNFBBLGtCQUFBO0VBQUEsbUJBQUE7RUFBQSxjQUFBOztBa0IxT0osc0JDS0k7RW5CcU9BLGNBQUE7O0FtQm5PSSxzQkFGSixFQUVLO0VuQm1PTCxjQUFBOztBbUJoT0ksc0JBTEosRUFLSztFbkJnT0wsY0FBQTs7QWtCMU5KO0VDckNJLGNBQUE7RW5CK1BBLGdCQUFBO0VBQUEsa0JBQUE7RUs1UEEsaUJBQUE7RUw0UEEsa0JBQUE7RUFBQSxtQkFBQTtFQUFBLGNBQUE7O0FrQjFOSix3QkNYSTtFbkJxT0EsY0FBQTs7QW1Cbk9JLHdCQUZKLEVBRUs7RW5CbU9MLGNBQUE7O0FtQmhPSSx3QkFMSixFQUtLO0VuQmdPTCxjQUFBOztBa0IxTUo7RUNyREksY0FBQTtFbkIrUEEsZ0JBQUE7RUFBQSxrQkFBQTtFSzVQQSxpQkFBQTtFTDRQQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsY0FBQTs7QWtCMU1KLHVCQzNCSTtFbkJxT0EsY0FBQTs7QW1Cbk9JLHVCQUZKLEVBRUs7RW5CbU9MLGNBQUE7O0FtQmhPSSx1QkFMSixFQUtLO0VuQmdPTCxjQUFBOztBa0J6TEo7RUN0RUksY0FBQTtFbkIrUEEsZ0JBQUE7RUFBQSxrQkFBQTtFSzVQQSxpQkFBQTtFTDRQQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsY0FBQTtFbUJ0REEsa0JBQUE7RW5Cc0RBLGtCQUFBOztBa0J6TEosa0JDNUNJO0VuQnFPQSxjQUFBOztBbUJuT0ksa0JBRkosRUFFSztFbkJtT0wsY0FBQTs7QW1CaE9JLGtCQUxKLEVBS0s7RW5CZ09MLGNBQUE7O0FrQnpMSixrQkNxSUksSUFBRyxZQUFZO0VuQm9EZixhT2pSZSxtQlBpUmY7RUFBQSxTUWlnQlcsT1JqZ0JYO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RUFBQSxpQkFBQTtFbUIxQ0ksa0JBQUE7RW5CMENKLFNBQUE7RUFBQSxPQUFBO0VtQnJDSSxrQkFBQTtFbkJxQ0osV0FBQTs7QWtCOUpKO0VDakdJLGNBQUE7RW5CK1BBLGdCQUFBO0VBQUEsa0JBQUE7RUs1UEEsaUJBQUE7RUw0UEEsa0JBQUE7RUFBQSxtQkFBQTtFQUFBLGNBQUE7RW1CMUpBLGtCQUFBO0VuQjBKQSxtQkFBQTs7QWtCOUpKLGtCQ3ZFSTtFbkJxT0EsY0FBQTs7QW1Cbk9JLGtCQUZKLEVBRUs7RW5CbU9MLGNBQUE7O0FtQmhPSSxrQkFMSixFQUtLO0VuQmdPTCxjQUFBOztBbUJ6SkEsa0JBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFbkJ1SkosV0FBQTtFbUJySkksa0JBQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VuQmlKSixtQkFBQTs7QWtCOUpKLGtCQ2dCSSxJQUFHLFlBQVk7RUFDWCxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsUUFBQTtFbkIwSUosZ0JBQUE7O0FrQjlKSixrQkN1QkksSUFBRyxZQUFZO0VuQnVJZixhT2pSZSxtQlBpUmY7RUFBQSxTUWlnQlcsT1JqZ0JYO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RUFBQSxpQkFBQTtFbUI3SEksa0JBQUE7RW5CNkhKLFNBQUE7RUFBQSxPQUFBO0VtQnhISSxrQkFBQTtFbkJ3SEosV0FBQTs7QW1CMUdBLGtCQUFDO0VBQ0csUUFBQTs7QURyRFIsa0JDd0RJLElBQUcsWUFBWTtFbkJvSmYsNkJBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQVFBLDJCQUFBO0VBeERBLFdBQUE7O0FrQjlKSixrQkM0REksSUFBRyxZQUFZO0VBQ1gsUUFBQTs7QUR6RFI7RUNyR0ksY0FBQTtFbkIrUEEsZ0JBQUE7RUFBQSxrQkFBQTtFSzVQQSxpQkFBQTtFTDRQQSxrQkFBQTtFQUFBLG1CQUFBO0VBQUEsY0FBQTtFbUIxSkEsa0JBQUE7RW5CMEpBLGtCQUFBOztBa0IxSkosa0JDM0VJO0VuQnFPQSxjQUFBOztBbUJuT0ksa0JBRkosRUFFSztFbkJtT0wsY0FBQTs7QW1CaE9JLGtCQUxKLEVBS0s7RW5CZ09MLGNBQUE7O0FtQnpKQSxrQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGtCQUFBO0VuQnVKSixXQUFBO0VtQnJKSSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RW5CaUpKLG1CQUFBOztBa0IxSkosa0JDWUksSUFBRyxZQUFZO0VBQ1gsU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLFFBQUE7RW5CMElKLGdCQUFBOztBa0IxSkosa0JDbUJJLElBQUcsWUFBWTtFbkJ1SWYsYU9qUmUsbUJQaVJmO0VBQUEsU1ErZ0JhLE9SL2dCYjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLHNCQUFBO0VBQUEsaUJBQUE7RW1CN0hJLGtCQUFBO0VuQjZISixTQUFBO0VBQUEsT0FBQTtFbUJ4SEksa0JBQUE7RW5Cd0hKLFdBQUE7O0FtQnhGQSxrQkFBQztFQUNHLE9BQUE7O0FEbkVSLGtCQ3NFSSxJQUFHLFlBQVk7RW5Ca0lmLDZCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFlQSwwQkFBQTtFQS9EQSxVQUFBOztBa0IxSkosa0JDMEVJLElBQUcsWUFBWTtFQUNYLE9BQUE7O0FEdkJSO0VDekpJLGNBQUE7RW5CK1BBLGdCQUFBO0VBQUEsa0JBQUE7RUs1UEEsaUJBQUE7RUw0UEEsa0JBQUE7RUFBQSxtQkFBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTtFbUIxSkEsa0JBQUE7RW5CMEpBLGtCQUFBO0VrQnBHQSxpQkFBQTtFQUNBLG1CQUFBOztBQUhKLGtCQy9ISTtFbkJxT0EsY0FBQTs7QW1Cbk9JLGtCQUZKLEVBRUs7RW5CbU9MLGNBQUE7O0FtQmhPSSxrQkFMSixFQUtLO0VuQmdPTCxjQUFBOztBbUJ6SkEsa0JBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFbkJ1SkosV0FBQTtFbUJySkksa0JBQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VuQmlKSixrQkFBQTs7QWtCdEdKLGtCQ3hDSSxJQUFHLFlBQVk7RUFDWCxTQUFTLEVBQVQ7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsUUFBQTtFbkIwSUosZ0JBQUE7O0FrQnRHSixrQkNqQ0ksSUFBRyxZQUFZO0VuQnVJZixhT2pSZSxtQlBpUmY7RUFBQSxTUXFnQlksT1JyZ0JaO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsc0JBQUE7RUFBQSxpQkFBQTtFbUI3SEksa0JBQUE7RW5CNkhKLFNBQUE7RUFBQSxPQUFBO0VtQnhISSxrQkFBQTtFbkJ3SEosV0FBQTs7QW1CeEZBLGtCQUFDO0VBQ0csT0FBQTs7QURmUixrQkNrQkksSUFBRyxZQUFZO0VuQmtJZiw2QkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBZUEseUJBQUE7RUEvREEsVUFBQTs7QWtCdEdKLGtCQ3NCSSxJQUFHLFlBQVk7RUFDWCxPQUFBOztBQ2hOUixNQUFNO0VBQ0Ysc0NBQUE7O0FBRUosT0FBTztFQUNILHdDQUFBOztBQUVKLE9BQU87RUFDSCx3Q0FBQTs7QUFFSixPQUFPO0VBQ0gsc0NBQUE7O0FBRUosTUFBTTtFQUNGLG9DQUFBOztBQTROSjtFQ3RNUSxzQkFBQTtFckI2V0oscUJBQUE7RUFDQSxvQkFBQTtFQUNBLGFBQUE7RUEyQkEsdUJBQUE7RUFDUSxlQUFBOztBcUJ2WVIsUUFBQztFQUNHLFNBQVMsR0FBVDtFQUNBLGNBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FENExSLFFBRUk7RXBCb0RBLG9CQUFBOztBb0JoQ0osUUFkMEI7RUNqTWxCLENBQUMsbUJBQXdCLFFEa010QjtJcEI2Q1AsV0FBQTtJQTZKQSxpQkFBQTtJQUNDLGdCQUFBO0lBQ1EsUUFBQTs7RXFCM1lMLENBQUMsb0JBQXlCLFFEK0x2QjtJRS9CUCxtQkFBQTtJRDNGQSxxQkFBQTtJckJvVUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQnhZTCxDQUFDLHlCQUErQixRRDRMN0I7SUUvQlAsbUJBQUE7SUQvRkEsWUFBQTtJckJ3VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQnJZTCxDQUFDLDBCQUFnQyxRRHlMOUI7SUUvQlAsbUJBQUE7SURuR0EsV0FBQTtJckI0VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQi9YTCxDQUFDLG9CQUF5QixRRHVMdkI7SUVuQ1AsbUJBQUE7SURuR0EsV0FBQTtJckI0VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQjVYTCxDQUFDLHlCQUErQixRRG9MN0I7SUVuQ1AsbUJBQUE7SURuR0EsV0FBQTtJckI0VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQnpYTCxDQUFDLDBCQUFnQyxRRGlMOUI7SUVuQ1AsbUJBQUE7SURuR0EsV0FBQTtJckI0VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQm5YTCxDQUFDLG9CQUF5QixRRCtLdkI7SUV2Q1AsbUJBQUE7SUQvRkEsWUFBQTtJckJ3VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQmhYTCxDQUFDLHlCQUErQixRRDRLN0I7SUV2Q1AsbUJBQUE7SUQvRkEsWUFBQTtJckJ3VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7O0VxQjdXTCxDQUFDLDBCQUFnQyxRRHlLOUI7SUV2Q1AsbUJBQUE7SUQvRkEsWUFBQTtJckJ3VUEsaUJBQUE7SUFDQyxnQkFBQTtJQUNRLFFBQUE7OztBb0JsSmIsaUJBQ0ksUUFBTztFcEJkUCxVQUFBO0VxQnZLQSxxQkFBQTtFckJvVUEsaUJBQUE7RUFDQyxnQkFBQTtFQUNRLFFBQUE7O0FvQmxKYixpQkFJSSxRQUFPO0VwQmpCUCxVQUFBO0VxQi9LQSxXQUFBO0VyQjRVQSxpQkFBQTtFQUNDLGdCQUFBO0VBQ1EsUUFBQTs7QW9CbEpiLGlCQU9JLFFBQU87RXBCcEJQLFVBQUE7RXFCM0tBLFlBQUE7RXJCd1VBLGlCQUFBO0VBQ0MsZ0JBQUE7RUFDUSxRQUFBOztBb0J0SWIsbUJBQ0ksUUFBTztFcEIxQlAsVUFBQTtFcUIvS0EsV0FBQTtFckI0VUEsaUJBQUE7RUFDQyxnQkFBQTtFQUNRLFFBQUE7O0FvQnRJYixtQkFJSSxRQUFPO0VwQjdCUCxVQUFBO0VxQnZLQSxxQkFBQTtFckJvVUEsaUJBQUE7RUFDQyxnQkFBQTtFQUNRLFFBQUE7O0FvQnRJYixtQkFPSSxRQUFPO0VwQmhDUCxVQUFBO0VxQjNLQSxZQUFBO0VyQndVQSxpQkFBQTtFQUNDLGdCQUFBO0VBQ1EsUUFBQTs7QXVCeFpiLE1DbVJJO0V4QnBTQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBdUJVSixNQ29FSTtFeEJ1SUEsWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFd0IrQkEsbUJBQUE7RXhCYUEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RUwyTEEscUJBQUE7RUFBQSxnQkFBQTs7QXVCelBKLE1DMEVJO0VuQjdFQSxpQkFBQTtFTHdOQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQWtDQSxpQkFBQTtFQUFBLHFCQUFBOztBdUJ6UEosTUMwRUksTUFPSTtFeEJsR0osU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QXVCVUosTUNxRkksRUFBQztFeEJvS0QsY0FBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBOztBd0J2SkksTUFiSixFQUFDLEtBYUk7RXhCdUpMLGNBQUE7O0F3QjVJSSxNQXhCSixFQUFDLEtBd0JJO0V4QjRJTCxjQUFBO0VBQUEscUJBQUE7O0F3QmhJSSxNQXBDSixFQUFDLEtBb0NJO0V4QmdJTCxjQUFBOztBdUJ6UEosTUNxSUksT0FBTTtFbkJ4SU4saUJBQUE7RUx3TkEsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFrQ0EsY0FBQTtFQUFBLHFCQUFBO0VBQUEsZ0JBQUE7RUFBQSxjQUFBOztBdUJ6UEosTUN1Skk7RXhCa0dBLHlCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBO0VBQUEsVUFBQTtFQUFBLHFCQUFBOztBd0JyRkksTUFiSixRQWFLO0V4QnFGTCxjQUFBOztBd0IxRUksTUF4QkosUUF3Qks7RXhCMEVMLGNBQUE7RUFBQSxxQkFBQTs7QXdCOURJLE1BcENKLFFBb0NLO0V4QjhETCxjQUFBOztBd0JuREksTUEvQ0osUUErQ0s7RXhCbURMLHFCQUFBO0VNdlFBLHFCQUFBOztBa0JnVUEsTUEzSkEsUUErQ0ssS0E0R0osUUFBUTtFeEJ6RFQsY0FBQTs7QXdCNERBLE1BOUpBLFFBK0NLLEtBK0dKLE9BQU87RXhCNURSLGNBQUE7O0F3Qm5ESSxNQS9DSixRQStDSyxLbEI0Qkw7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxNa0JrS0EsUUErQ0ssS2xCak5KO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRdWdCUSxPUnZnQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxrQkFBQTs7QU14UEksTWtCc0pKLFFBK0NLLEtsQnRNSixNQUNJO0VOd1BMLGNBQUE7O0FNblBJLE1rQmlKSixRQStDSyxLbEJqTUosT0FDSTtFTm1QTCxjQUFBOztBd0JuQ0ksTUEvREosUUErREs7RXhCbUNMLHFCQUFBO0VNdlFBLHFCQUFBOztBa0JnVUEsTUEzSkEsUUErREssU0E0RkosUUFBUTtFeEJ6RFQsY0FBQTs7QXdCNERBLE1BOUpBLFFBK0RLLFNBK0ZKLE9BQU87RXhCNURSLGNBQUE7O0F3Qm5DSSxNQS9ESixRQStESyxTbEJZTDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLE1rQmtLQSxRQStESyxTbEJqT0o7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1FzaEJRLE9SdGhCUjtFQUFBLGVBQUE7RUFBQSxvQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLGtCQUFBOztBTXhQSSxNa0JzSkosUUErREssU2xCdE5KLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksTWtCaUpKLFFBK0RLLFNsQmpOSixPQUNJO0VObVBMLGNBQUE7O0F1QjBUSixnQkNuVEk7RXhCUEEscUJBQUE7RUFBQSxnQkFBQTtFSzVQQSxpQkFBQTtFTHdOQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTs7QXdCZ0RJLGdCQVBKLFNBT0s7RUFDRyxTQUFTLElBQVQ7O0FEMlNaLGdCQy9lSTtFeEJ1SUEsWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFd0IrQkEsbUJBQUE7RXhCYUEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RUwyTEEscUJBQUE7RUFBQSxnQkFBQTs7QXVCMFRKLGdCQ3plSTtFbkI3RUEsaUJBQUE7RUx3TkEsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFrQ0EsYUFBQTtFQUFBLHFCQUFBOztBdUIwVEosZ0JDemVJLE1BT0k7RXhCbEdKLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0F1QjZqQkosZ0JDOWRJLEVBQUM7RXhCaUJHLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isc0RBQWxCO0VBQ0Esa0JBQWtCLG9EQUFsQjtFQUNBLGtIQUFBO0VBK0lKLHlCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBOztBd0J2SkksZ0JBYkosRUFBQyxLQWFJO0V4QklELHVCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isa0RBQWxCO0VBQ0Esa0JBQWtCLGdEQUFsQjtFQUNBLDhHQUFBO0VBK0lKLGNBQUE7O0F3QjVJSSxnQkF4QkosRUFBQyxLQXdCSTtFeEJQRCx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLHNEQUFsQjtFQUNBLGtCQUFrQixvREFBbEI7RUFDQSxrSEFBQTtFQStJSix5QkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTs7QXdCaElJLGdCQXBDSixFQUFDLEtBb0NJO0V4Qm5CRCx1QkFBQTtFQUNBLDJCQUFBO0VBQ0Esa0JBQWtCLGtEQUFsQjtFQUNBLGtCQUFrQixnREFBbEI7RUFDQSw4R0FBQTtFQStJSixjQUFBOztBdUIwVEosZ0JDOWFJLE9BQU07RXhCb0hOLG1CQUFBO0VBQUEseUJBQUE7RUs1UEEsaUJBQUE7RUx3TkEsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFrQ0EsY0FBQTtFQUFBLHFCQUFBO0VBQUEsZ0JBQUE7RUFBQSxjQUFBOztBdUIwVEosZ0JDNVpJO0V4QmtHQSx5QkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTtFQUFBLFVBQUE7RUFBQSxxQkFBQTs7QXdCckZJLGdCQWJKLFFBYUs7RXhCcUZMLGNBQUE7O0F3QjFFSSxnQkF4QkosUUF3Qks7RXhCMEVMLGNBQUE7RUFBQSxxQkFBQTs7QXdCOURJLGdCQXBDSixRQW9DSztFeEI4REwsY0FBQTs7QXdCbkRJLGdCQS9DSixRQStDSztFeEJtREwscUJBQUE7RU12UUEscUJBQUE7O0FrQmdVQSxnQkEzSkEsUUErQ0ssS0E0R0osUUFBUTtFeEJ6RFQsY0FBQTs7QXdCNERBLGdCQTlKQSxRQStDSyxLQStHSixPQUFPO0V4QjVEUixjQUFBOztBd0JuREksZ0JBL0NKLFFBK0NLLEtsQjRCTDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLGdCa0JrS0EsUUErQ0ssS2xCak5KO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRdWdCUSxPUnZnQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxrQkFBQTs7QU14UEksZ0JrQnNKSixRQStDSyxLbEJ0TUosTUFDSTtFTndQTCxjQUFBOztBTW5QSSxnQmtCaUpKLFFBK0NLLEtsQmpNSixPQUNJO0VObVBMLGNBQUE7O0F3Qm5DSSxnQkEvREosUUErREs7RXhCbUNMLHFCQUFBO0VNdlFBLHFCQUFBOztBa0JnVUEsZ0JBM0pBLFFBK0RLLFNBNEZKLFFBQVE7RXhCekRULGNBQUE7O0F3QjREQSxnQkE5SkEsUUErREssU0ErRkosT0FBTztFeEI1RFIsY0FBQTs7QXdCbkNJLGdCQS9ESixRQStESyxTbEJZTDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLGdCa0JrS0EsUUErREssU2xCak9KO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRc2hCUSxPUnRoQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxrQkFBQTs7QU14UEksZ0JrQnNKSixRQStESyxTbEJ0TkosTUFDSTtFTndQTCxjQUFBOztBTW5QSSxnQmtCaUpKLFFBK0RLLFNsQmpOSixPQUNJO0VObVBMLGNBQUE7O0F1QnVZSixnQkNoWUk7RXhCUEEscUJBQUE7RUFBQSxnQkFBQTtFSzVQQSxpQkFBQTtFTHdOQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTs7QXdCZ0RJLGdCQVBKLFNBT0s7RUFDRyxTQUFTLElBQVQ7O0FEd1haLGdCQzVqQkk7RXhCdUlBLFlBQUE7RUFDQSxjQUFBO0VBQ0Esb0JBQUE7RXdCK0JBLG1CQUFBO0V4QmFBLFNBQUE7RUFBQSxVQUFBO0VLM0xBLHFCQUFBO0VMMkxBLHFCQUFBO0VBQUEsZ0JBQUE7O0F1QnVZSixnQkN0akJJO0VuQjdFQSxpQkFBQTtFTHdOQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQWtDQSxpQkFBQTtFQUFBLHFCQUFBOztBdUJ1WUosZ0JDdGpCSSxNQU9JO0V4QmxHSixTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBdUIwb0JKLGdCQzNpQkksRUFBQztFeEJvS0QsY0FBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBOztBd0J2SkksZ0JBYkosRUFBQyxLQWFJO0V4QnVKTCxjQUFBOztBd0I1SUksZ0JBeEJKLEVBQUMsS0F3Qkk7RXhCNElMLGNBQUE7RUFBQSxxQkFBQTs7QXdCaElJLGdCQXBDSixFQUFDLEtBb0NJO0V4QmdJTCxjQUFBOztBdUJ1WUosZ0JDM2ZJLE9BQU07RW5CeElOLGlCQUFBO0VMd05BLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBa0NBLGNBQUE7RUFBQSxxQkFBQTtFQUFBLGdCQUFBO0VBQUEsY0FBQTs7QXVCdVlKLGdCQ3plSTtFeEJrR0EseUJBQUE7RUFBQSxjQUFBO0VBQUEscUJBQUE7RUFBQSxVQUFBO0VBQUEscUJBQUE7O0F3QnJGSSxnQkFiSixRQWFLO0V4QnFGTCxjQUFBOztBd0IxRUksZ0JBeEJKLFFBd0JLO0V4QjBFTCxjQUFBO0VBQUEscUJBQUE7O0F3QjlESSxnQkFwQ0osUUFvQ0s7RXhCOERMLGNBQUE7O0F1QjhkSixnQkNwY0k7RXhCcFNBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0F1Qml1QkosZ0JDbnBCSTtFeEJ1SUEsWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFd0IrQkEsbUJBQUE7RXhCYUEsU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7RUwyTEEscUJBQUE7RUFBQSxnQkFBQTs7QXVCOGRKLGdCQzdvQkk7RW5CN0VBLGlCQUFBO0VMd05BLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBa0NBLGlCQUFBO0VBQUEscUJBQUE7O0F1QjhkSixnQkM3b0JJLE1BT0k7RXhCbEdKLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0F1Qml1QkosZ0JDbG9CSSxFQUFDO0V4Qm9LRCxtQkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTs7QXdCdkpJLGdCQWJKLEVBQUMsS0FhSTtFeEJ1SkwsbUJBQUE7RUFBQSxjQUFBOztBd0I1SUksZ0JBeEJKLEVBQUMsS0F3Qkk7RXhCNElMLG1CQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBOztBd0JoSUksZ0JBcENKLEVBQUMsS0FvQ0k7RXhCZ0lMLG1CQUFBO0VBQUEsY0FBQTs7QXVCOGRKLGdCQ2xsQkksT0FBTTtFeEJvSE4sbUJBQUE7RUs1UEEsaUJBQUE7RUx3TkEsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFrQ0EsY0FBQTtFQUFBLHFCQUFBO0VBQUEsZ0JBQUE7RUFBQSxjQUFBOztBdUI4ZEosZ0JDaGtCSTtFeEJrR0EsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTtFQUFBLFVBQUE7RUFBQSxxQkFBQTs7QXdCckZJLGdCQWJKLFFBYUs7RXhCcUZMLG1CQUFBO0VBQUEsY0FBQTs7QXdCMUVJLGdCQXhCSixRQXdCSztFeEIwRUwsbUJBQUE7RUFBQSxjQUFBO0VBQUEscUJBQUE7O0F3QjlESSxnQkFwQ0osUUFvQ0s7RXhCOERMLG1CQUFBO0VBQUEsY0FBQTs7QXdCbkRJLGdCQS9DSixRQStDSztFeEJtREwscUJBQUE7RU12UUEscUJBQUE7O0FrQmdVQSxnQkEzSkEsUUErQ0ssS0E0R0osUUFBUTtFeEJ6RFQsY0FBQTs7QXdCNERBLGdCQTlKQSxRQStDSyxLQStHSixPQUFPO0V4QjVEUixjQUFBOztBd0JuREksZ0JBL0NKLFFBK0NLLEtsQjRCTDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLGdCa0JrS0EsUUErQ0ssS2xCak5KO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRdWdCUSxPUnZnQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxrQkFBQTs7QU14UEksZ0JrQnNKSixRQStDSyxLbEJ0TUosTUFDSTtFTndQTCxjQUFBOztBTW5QSSxnQmtCaUpKLFFBK0NLLEtsQmpNSixPQUNJO0VObVBMLGNBQUE7O0F3Qm5DSSxnQkEvREosUUErREs7RXhCbUNMLHFCQUFBO0VNdlFBLHFCQUFBOztBa0JnVUEsZ0JBM0pBLFFBK0RLLFNBNEZKLFFBQVE7RXhCekRULGNBQUE7O0F3QjREQSxnQkE5SkEsUUErREssU0ErRkosT0FBTztFeEI1RFIsY0FBQTs7QXdCbkNJLGdCQS9ESixRQStESyxTbEJZTDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLGdCa0JrS0EsUUErREssU2xCak9KO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRc2hCUSxPUnRoQlI7RUFBQSxlQUFBO0VBQUEsb0JBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxrQkFBQTs7QU14UEksZ0JrQnNKSixRQStESyxTbEJ0TkosTUFDSTtFTndQTCxjQUFBOztBTW5QSSxnQmtCaUpKLFFBK0RLLFNsQmpOSixPQUNJO0VObVBMLGNBQUE7O0F5QjlPSixPQUFPLE1BQU07RXpCOE9ULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFQUFBLHlDQUFBO0VBQUEsTUFBQTtFQUFBLFFBQUE7RUFBQSxTQUFBO0VBQUEsT0FBQTtFMEJwSkEsYUFBQTtFQUNBLFVBQUE7RTFCbUpBLGVBQUE7RUFBQSxhQUFBO0VBQUEsK0JBQUE7O0F5QjlPSixPQUFPLE1BQU0sY0NxQ1Q7RTFCeU1BLGdCQUFBO0VBQUEsbUJBQUE7O0F5QjlPSixPQUFPLE1BQU0sY0NxQ1QsY0FFSTtFckJyREosaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxrQkFBQTtFQUlBLG1CQUFBOztBb0IvR1IsT0FBTyxNQUFNLGNDc0RULGVBQ0ksUUFBTztFMUJ1TFgsa0JBQUE7RUFBQSxxQkFBQTtFVTlEQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxvQkFBQTtFVnFEQSxnQkFBQTtFQUFBLFNBQUE7RUFBQSxXQUFBOztBeUI5T0osT0FBTyxNQUFNLGNDc0RULGVBQ0ksUUFBTyxNcEJnS1g7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxPbUJzQkcsTUFBTSxjQ3NEVCxlQUNJLFFBQU8sTXBCN0VWO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRcWhCVSxPUnJoQlY7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxPbUJVRCxNQUFNLGNDc0RULGVBQ0ksUUFBTyxNcEJsRVYsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxPbUJLRCxNQUFNLGNDc0RULGVBQ0ksUUFBTyxNcEI3RFYsT0FDSTtFTm1QTCxjQUFBOztBVW5EQSxPZTNMRyxNQUFNLGNDc0RULGVBQ0ksUUFBTyxNaEJvSVY7QUFDRCxPZTVMRyxNQUFNLGNDc0RULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VoTUcsTUFBTSxjQ3NEVCxlQUNJLFFBQU8sTWhCeUlWO0VBQ0csZ0JBQUE7RUFDQSxZQUFBOztBQUVKLE9lcE1HLE1BQU0sY0NzRFQsZUFDSSxRQUFPLE1oQjZJVjtBQUNELE9lck1HLE1BQU0sY0NzRFQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZXRNaEIsTUFBTSxjQ3NEVCxlQUNJLFFBQU87RWhCZ0pQLG1CQUFBO0VBQ0Esb0JBQUE7RVZzQ0osWUFBQTs7QTBCL0lBLE9EL0ZHLE1BQU0sY0MrRlI7RUFDRyxVQUFBOztBRDVGUixPQUFPLE1BQU07RXpCME9ULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFQUFBLHlDQUFBO0VBQUEsTUFBQTtFQUFBLFFBQUE7RUFBQSxTQUFBO0VBQUEsT0FBQTtFMEJwSkEsYUFBQTtFQUNBLFVBQUE7RTFCbUpBLGVBQUE7RUFBQSxhQUFBO0VBQUEsK0JBQUE7O0F5QjFPSixPQUFPLE1BQU0sZ0JDaUNUO0UxQnlNQSxnQkFBQTtFQUFBLG1CQUFBOztBeUIxT0osT0FBTyxNQUFNLGdCQ2lDVCxjQUVJO0VyQnJESixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FvQjNHUixPQUFPLE1BQU0sZ0JDa0RULGVBQ0ksUUFBTztFMUJ1TFgsa0JBQUE7RUFBQSxxQkFBQTtFVTlEQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxvQkFBQTtFVnFEQSxnQkFBQTtFQUFBLFNBQUE7RUFBQSxXQUFBOztBeUIxT0osT0FBTyxNQUFNLGdCQ2tEVCxlQUNJLFFBQU8sTXBCZ0tYO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNREEsT21CMEJHLE1BQU0sZ0JDa0RULGVBQ0ksUUFBTyxNcEI3RVY7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1FxaEJVLE9ScmhCVjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNeFBJLE9tQmNELE1BQU0sZ0JDa0RULGVBQ0ksUUFBTyxNcEJsRVYsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxPbUJTRCxNQUFNLGdCQ2tEVCxlQUNJLFFBQU8sTXBCN0RWLE9BQ0k7RU5tUEwsY0FBQTs7QVVuREEsT2V2TEcsTUFBTSxnQkNrRFQsZUFDSSxRQUFPLE1oQm9JVjtBQUNELE9leExHLE1BQU0sZ0JDa0RULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2U1TEcsTUFBTSxnQkNrRFQsZUFDSSxRQUFPLE1oQnlJVjtFQUNHLGdCQUFBO0VBQ0EsWUFBQTs7QUFFSixPZWhNRyxNQUFNLGdCQ2tEVCxlQUNJLFFBQU8sTWhCNklWO0FBQ0QsT2VqTUcsTUFBTSxnQkNrRFQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZWxNaEIsTUFBTSxnQkNrRFQsZUFDSSxRQUFPO0VoQmdKUCxtQkFBQTtFQUNBLG9CQUFBO0VWc0NKLFlBQUE7O0EwQi9JQSxPRDNGRyxNQUFNLGdCQzJGUjtFQUNHLFVBQUE7O0FEeEZSLE9BQU87RXpCc09ILGdDQUFBO0UwQmxJQSxlQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFMUI4SEEsbUJBQUE7RUFBQSxhQUFBO0UwQjNIQSxVQUFBOztBQUNBLE9ENUdHLFFDNEdGO0VBQ0csWUFBQTtFQUNBLHlCQUFBOztBRHlTUixPQUFPLE1BQU07RXpCakxULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFMEJwR0EsZ0JBQUE7RTFCb0dBLGlCQUFBO0VBQUEseUNBQUE7RUFBQSxNQUFBO0VBQUEsUUFBQTtFQUFBLFNBQUE7RUFBQSxPQUFBO0UwQnBKQSxhQUFBO0VBQ0EsVUFBQTtFMUJtSkEsZUFBQTtFQUFBLGFBQUE7RUFBQSwrQkFBQTs7QXlCaUxKLE9BQU8sTUFBTSxnQkMxWFQ7RTFCeU1BLGdCQUFBO0VBQUEsbUJBQUE7O0F5QmlMSixPQUFPLE1BQU0sZ0JDMVhULGNBRUk7RXJCckRKLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksa0JBQUE7RUFJQSxtQkFBQTs7QW9CZ1RSLE9BQU8sTUFBTSxnQkN6V1QsZUFDSSxRQUFPO0UxQnVMWCxrQkFBQTtFQUFBLHFCQUFBO0VVOURBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLG9CQUFBO0VWcURBLGdCQUFBO0VBQUEsU0FBQTtFQUFBLFdBQUE7O0F5QmlMSixPQUFPLE1BQU0sZ0JDeldULGVBQ0ksUUFBTyxNcEJnS1g7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxPbUJxYkcsTUFBTSxnQkN6V1QsZUFDSSxRQUFPLE1wQjdFVjtFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUXFoQlUsT1JyaEJWO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksT21CeWFELE1BQU0sZ0JDeldULGVBQ0ksUUFBTyxNcEJsRVYsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxPbUJvYUQsTUFBTSxnQkN6V1QsZUFDSSxRQUFPLE1wQjdEVixPQUNJO0VObVBMLGNBQUE7O0FVbkRBLE9lb09HLE1BQU0sZ0JDeldULGVBQ0ksUUFBTyxNaEJvSVY7QUFDRCxPZW1PRyxNQUFNLGdCQ3pXVCxlQUNJLFFBQU8sTWhCcUlWO0VBQ0csZ0JBQUE7RUFDQSxZQUFBOztBQUVKLE9lK05HLE1BQU0sZ0JDeldULGVBQ0ksUUFBTyxNaEJ5SVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2UyTkcsTUFBTSxnQkN6V1QsZUFDSSxRQUFPLE1oQjZJVjtBQUNELE9lME5HLE1BQU0sZ0JDeldULGVBQ0ksUUFBTyxNaEI4SVY7QUFDRCxRQUFRLFVBQVcsUWV5TmhCLE1BQU0sZ0JDeldULGVBQ0ksUUFBTztFaEJnSlAsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBMEIvSUEsT0RnVUcsTUFBTSxnQkNoVVI7RUFDRyxVQUFBOztBRDBWUixPQUFPLE1BQU07RXpCNU1ULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFQUFBLHlDQUFBO0VBQUEsTUFBQTtFQUFBLFFBQUE7RUFBQSxTQUFBO0VBQUEsT0FBQTtFMEJwSkEsYUFBQTtFQUNBLFVBQUE7RTFCbUpBLGVBQUE7RUFBQSxhQUFBO0VBQUEsK0JBQUE7O0F5QjRNSixPQUFPLE1BQU0sZ0JDclpUO0UxQnlNQSxnQkFBQTtFQUFBLG1CQUFBOztBeUI0TUosT0FBTyxNQUFNLGdCQ3JaVCxjQUVJO0VyQnJESixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FvQjJVUixPQUFPLE1BQU0sZ0JDM1lUO0VBMkZBLGdCQUFBO0UxQm9HQSxpQkFBQTs7QXlCNE1KLE9BQU8sTUFBTSxnQkNwWVQsZUFDSSxRQUFPO0UxQnVMWCxrQkFBQTtFQUFBLHFCQUFBO0VVOURBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLG9CQUFBO0VWcURBLGdCQUFBO0VBQUEsU0FBQTtFQUFBLFdBQUE7O0F5QjRNSixPQUFPLE1BQU0sZ0JDcFlULGVBQ0ksUUFBTyxNcEJnS1g7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxPbUJnZEcsTUFBTSxnQkNwWVQsZUFDSSxRQUFPLE1wQjdFVjtFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUXFoQlUsT1JyaEJWO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksT21Cb2NELE1BQU0sZ0JDcFlULGVBQ0ksUUFBTyxNcEJsRVYsTUFDSTtFTndQTCxjQUFBOztBTW5QSSxPbUIrYkQsTUFBTSxnQkNwWVQsZUFDSSxRQUFPLE1wQjdEVixPQUNJO0VObVBMLGNBQUE7O0FVbkRBLE9lK1BHLE1BQU0sZ0JDcFlULGVBQ0ksUUFBTyxNaEJvSVY7QUFDRCxPZThQRyxNQUFNLGdCQ3BZVCxlQUNJLFFBQU8sTWhCcUlWO0VBQ0csZ0JBQUE7RUFDQSxZQUFBOztBQUVKLE9lMFBHLE1BQU0sZ0JDcFlULGVBQ0ksUUFBTyxNaEJ5SVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VzUEcsTUFBTSxnQkNwWVQsZUFDSSxRQUFPLE1oQjZJVjtBQUNELE9lcVBHLE1BQU0sZ0JDcFlULGVBQ0ksUUFBTyxNaEI4SVY7QUFDRCxRQUFRLFVBQVcsUWVvUGhCLE1BQU0sZ0JDcFlULGVBQ0ksUUFBTztFaEJnSlAsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBMEIvSUEsT0QyVkcsTUFBTSxnQkMzVlI7RUFDRyxVQUFBOztBRG1ZUixPQUFPLE1BQU07RXpCclBULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFQUFBLHlDQUFBO0VBQUEsTUFBQTtFQUFBLFFBQUE7RUFBQSxTQUFBO0VBQUEsT0FBQTtFMEJwSkEsYUFBQTtFQUNBLFVBQUE7RTFCbUpBLGVBQUE7RUFBQSxhQUFBO0VBQUEsK0JBQUE7O0F5QnFQSixPQUFPLE1BQU0sZ0JDOWJUO0UxQnlNQSxnQkFBQTtFQUFBLG1CQUFBOztBeUJxUEosT0FBTyxNQUFNLGdCQzliVCxjQUVJO0VyQnJESixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FvQm9YUixPQUFPLE1BQU0sZ0JDcGJUO0UxQitMQSxnQkFBQTs7QXlCcVBKLE9BQU8sTUFBTSxnQkNoYlQ7RTFCMkxBLGNBQUE7O0F5QnFQSixPQUFPLE1BQU0sZ0JDN2FULGVBQ0ksUUFBTztFMUJ1TFgsa0JBQUE7RUFBQSxxQkFBQTtFVTlEQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxvQkFBQTtFVnFEQSxnQkFBQTtFQUFBLFNBQUE7RUFBQSxXQUFBOztBeUJxUEosT0FBTyxNQUFNLGdCQzdhVCxlQUNJLFFBQU8sTXBCZ0tYO0VOblBBLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0FNREEsT21CeWZHLE1BQU0sZ0JDN2FULGVBQ0ksUUFBTyxNcEI3RVY7RU5vUUQsYU9qUmUsbUJQaVJmO0VBQUEsU1FxaEJVLE9ScmhCVjtFQUFBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RU0rQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VObkRBLG1CQUFBO0VNcURBLGtCQUFBO0VOckRBLFNBQUE7O0FNeFBJLE9tQjZlRCxNQUFNLGdCQzdhVCxlQUNJLFFBQU8sTXBCbEVWLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksT21Cd2VELE1BQU0sZ0JDN2FULGVBQ0ksUUFBTyxNcEI3RFYsT0FDSTtFTm1QTCxjQUFBOztBVW5EQSxPZXdTRyxNQUFNLGdCQzdhVCxlQUNJLFFBQU8sTWhCb0lWO0FBQ0QsT2V1U0csTUFBTSxnQkM3YVQsZUFDSSxRQUFPLE1oQnFJVjtFQUNHLGdCQUFBO0VBQ0EsWUFBQTs7QUFFSixPZW1TRyxNQUFNLGdCQzdhVCxlQUNJLFFBQU8sTWhCeUlWO0VBQ0csZ0JBQUE7RUFDQSxZQUFBOztBQUVKLE9lK1JHLE1BQU0sZ0JDN2FULGVBQ0ksUUFBTyxNaEI2SVY7QUFDRCxPZThSRyxNQUFNLGdCQzdhVCxlQUNJLFFBQU8sTWhCOElWO0FBQ0QsUUFBUSxVQUFXLFFlNlJoQixNQUFNLGdCQzdhVCxlQUNJLFFBQU87RWhCZ0pQLG1CQUFBO0VBQ0Esb0JBQUE7RVZzQ0osWUFBQTs7QTBCL0lBLE9Eb1lHLE1BQU0sZ0JDcFlSO0VBQ0csVUFBQTs7QURnYlIsT0FBTyxNQUFNO0V6QmxTVCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsYUFBQTtFQUFBLFdBQUE7RUFBQSx5Q0FBQTtFQUFBLE1BQUE7RUFBQSxRQUFBO0VBQUEsU0FBQTtFQUFBLE9BQUE7RTBCcEpBLGFBQUE7RUFDQSxVQUFBO0UxQm1KQSxlQUFBO0VBQUEsYUFBQTtFQUFBLCtCQUFBOztBeUJrU0osT0FBTyxNQUFNLGdCQzNlVDtFMUJ5TUEsZ0JBQUE7RUFBQSxtQkFBQTs7QXlCa1NKLE9BQU8sTUFBTSxnQkMzZVQsY0FFSTtFckJyREosaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxnQkFBQTtFQUlBLG1CQUFBOztBb0JpYVIsT0FBTyxNQUFNLGdCQzFkVCxlQUNJLFFBQU87RTFCdUxYLGtCQUFBO0VBQUEscUJBQUE7RVU5REEsc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLDRCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esb0JBQUE7RVZxREEsZ0JBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTs7QXlCa1NKLE9BQU8sTUFBTSxnQkMxZFQsZUFDSSxRQUFPLE1wQmdLWDtFTm5QQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBTURBLE9tQnNpQkcsTUFBTSxnQkMxZFQsZUFDSSxRQUFPLE1wQjdFVjtFTm9RRCxhT2pSZSxtQlBpUmY7RUFBQSxTUXFoQlUsT1JyaEJWO0VBQUEsZUFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFTStDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RU5uREEsbUJBQUE7RU1xREEsa0JBQUE7RU5yREEsU0FBQTs7QU14UEksT21CMGhCRCxNQUFNLGdCQzFkVCxlQUNJLFFBQU8sTXBCbEVWLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksT21CcWhCRCxNQUFNLGdCQzFkVCxlQUNJLFFBQU8sTXBCN0RWLE9BQ0k7RU5tUEwsY0FBQTs7QVVuREEsT2VxVkcsTUFBTSxnQkMxZFQsZUFDSSxRQUFPLE1oQm9JVjtBQUNELE9lb1ZHLE1BQU0sZ0JDMWRULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VnVkcsTUFBTSxnQkMxZFQsZUFDSSxRQUFPLE1oQnlJVjtFQUNHLGdCQUFBO0VBQ0EsWUFBQTs7QUFFSixPZTRVRyxNQUFNLGdCQzFkVCxlQUNJLFFBQU8sTWhCNklWO0FBQ0QsT2UyVUcsTUFBTSxnQkMxZFQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZTBVaEIsTUFBTSxnQkMxZFQsZUFDSSxRQUFPO0VoQmdKUCxtQkFBQTtFQUNBLG9CQUFBO0VWc0NKLFlBQUE7O0EwQi9JQSxPRGliRyxNQUFNLGdCQ2piUjtFQUNHLFVBQUE7O0FEMmRSLE9BQU8sTUFBTTtFekI3VVQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGFBQUE7RUFBQSxXQUFBO0VBQUEseUNBQUE7RUFBQSxNQUFBO0VBQUEsUUFBQTtFQUFBLFNBQUE7RUFBQSxPQUFBO0UwQnBKQSxhQUFBO0VBQ0EsVUFBQTtFMUJtSkEsZUFBQTtFQUFBLGFBQUE7RUFBQSwrQkFBQTs7QXlCNlVKLE9BQU8sTUFBTSxnQkNuWFQsY0FDSSxTQUFRO0UxQnFDWixnQkFBQTs7QUFsUEEsT3lCK2pCRyxNQUFNLGdCQ25YVCxjQUNJLFNBQVEsUTFCN01YO0FBQ0QsT3lCOGpCRyxNQUFNLGdCQ25YVCxjQUNJLFNBQVEsUTFCNU1YO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixPeUIwakJHLE1BQU0sZ0JDblhULGNBQ0ksU0FBUSxRMUJ4TVg7RUFDRyxXQUFBOztBeUJ5akJSLE9BQU8sTUFBTSxnQkNuWFQsY0FDSSxTQUFRLFF4QjlJWjtFQUNJLFdBQUE7O0F1QitmUixPQUFPLE1BQU0sZ0JDblhULGNBQ0ksU0FBUSxReEJwT1o7QXVCc2xCSixPQUFPLE1BQU0sZ0JDblhULGNBQ0ksU0FBUSxReEJuT1o7RUFDSSxxQkFBQTs7QXVCb2xCUixPQUFPLE1BQU0sZ0JDblhULGNBQ0ksU0FBUSxReEJwT1osU0FNSSxFQUFDO0F1QmdsQlQsT0FBTyxNQUFNLGdCQ25YVCxjQUNJLFNBQVEsUXhCbk9aLFdBS0ksRUFBQztFQUNHLHFCQUFBOztBdUIra0JaLE9BQU8sTUFBTSxnQkNuWFQsY0FDSSxTQUFRLFF4QnpOWixTQUNJO0VGNlBKLGlCQUFBOztBeUI2VUosT0FBTyxNQUFNLGdCQ25YVCxjQUNJLFNBQVEsUXhCak5aLFdBSUksRUFBQztFRmtQTCxlQUFBOztBeUI2VUosT0FBTyxNQUFNLGdCQ3RoQlQ7RTFCeU1BLGdCQUFBO0VBQUEsbUJBQUE7O0F5QjZVSixPQUFPLE1BQU0sZ0JDdGhCVCxjQUVJO0VyQnJESixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FvQjRjUixPQUFPLE1BQU0sZ0JDcmdCVCxlQUNJLFFBQU87RTFCdUxYLGtCQUFBO0VBQUEscUJBQUE7RVU5REEsc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLDRCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esb0JBQUE7RVZxREEsZ0JBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTs7QXlCNlVKLE9BQU8sTUFBTSxnQkNyZ0JULGVBQ0ksUUFBTyxNcEJnS1g7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxPbUJpbEJHLE1BQU0sZ0JDcmdCVCxlQUNJLFFBQU8sTXBCN0VWO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRcWhCVSxPUnJoQlY7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxPbUJxa0JELE1BQU0sZ0JDcmdCVCxlQUNJLFFBQU8sTXBCbEVWLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksT21CZ2tCRCxNQUFNLGdCQ3JnQlQsZUFDSSxRQUFPLE1wQjdEVixPQUNJO0VObVBMLGNBQUE7O0FVbkRBLE9lZ1lHLE1BQU0sZ0JDcmdCVCxlQUNJLFFBQU8sTWhCb0lWO0FBQ0QsT2UrWEcsTUFBTSxnQkNyZ0JULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2UyWEcsTUFBTSxnQkNyZ0JULGVBQ0ksUUFBTyxNaEJ5SVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2V1WEcsTUFBTSxnQkNyZ0JULGVBQ0ksUUFBTyxNaEI2SVY7QUFDRCxPZXNYRyxNQUFNLGdCQ3JnQlQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZXFYaEIsTUFBTSxnQkNyZ0JULGVBQ0ksUUFBTztFaEJnSlAsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBMEIvSUEsT0Q0ZEcsTUFBTSxnQkM1ZFI7RUFDRyxVQUFBOztBRG9nQlIsT0FBTyxNQUFNO0V6QnRYVCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsYUFBQTtFQUFBLFdBQUE7RUFBQSx5Q0FBQTtFQUFBLE1BQUE7RUFBQSxRQUFBO0VBQUEsU0FBQTtFQUFBLE9BQUE7RTBCcEpBLGFBQUE7RUFDQSxVQUFBO0UxQm1KQSxlQUFBO0VBQUEsYUFBQTtFQUFBLCtCQUFBOztBeUJzWEosT0FBTyxNQUFNLGdCQy9qQlQ7RTFCeU1BLGdCQUFBO0VBQUEsbUJBQUE7O0F5QnNYSixPQUFPLE1BQU0sZ0JDL2pCVCxjQUVJO0VyQnJESixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FvQnFmUixPQUFPLE1BQU0sZ0JDOWlCVCxlQUNJLFFBQU87RTFCdUxYLGtCQUFBO0VBQUEsU0FBQTtFQUFBLFdBQUE7O0EwQi9JQSxPRHFnQkcsTUFBTSxnQkNyZ0JSO0VBQ0csVUFBQTs7QUQwaUJSLE9BQU8sTUFBTTtFekI1WlQsbUJBQUE7RUFBQSx5QkFBQTtFQUFBLGFBQUE7RUFBQSxXQUFBO0VBQUEseUNBQUE7RUFBQSxNQUFBO0VBQUEsUUFBQTtFQUFBLFNBQUE7RUFBQSxPQUFBO0UwQnBKQSxhQUFBO0VBQ0EsVUFBQTtFMUJtSkEsZUFBQTtFQUFBLGFBQUE7RUFBQSwrQkFBQTs7QXlCNFpKLE9BQU8sTUFBTSxnQkNybUJUO0UxQnlNQSxnQkFBQTtFQUFBLG1CQUFBOztBeUI0WkosT0FBTyxNQUFNLGdCQ3JtQlQsY0FFSTtFckJyREosaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxrQkFBQTtFQUlBLG1CQUFBOztBb0IyaEJSLE9BQU8sTUFBTSxnQkNwbEJULGVBQ0ksUUFBTztFMUJ1TFgsa0JBQUE7RUFBQSxxQkFBQTtFVTlEQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxvQkFBQTtFVnFEQSxnQkFBQTtFQUFBLFNBQUE7RUFBQSxXQUFBOztBTXBRQSxPbUJncUJHLE1BQU0sZ0JDcGxCVCxlQUNJLFFBQU8sTXBCN0VWO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRa2hCWSxPUmxoQlo7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxzQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxPbUJvcEJELE1BQU0sZ0JDcGxCVCxlQUNJLFFBQU8sTXBCbEVWLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksT21CK29CRCxNQUFNLGdCQ3BsQlQsZUFDSSxRQUFPLE1wQjdEVixPQUNJO0VObVBMLGNBQUE7O0FVbkRBLE9lK2NHLE1BQU0sZ0JDcGxCVCxlQUNJLFFBQU8sTWhCb0lWO0FBQ0QsT2U4Y0csTUFBTSxnQkNwbEJULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2UwY0csTUFBTSxnQkNwbEJULGVBQ0ksUUFBTyxNaEJ5SVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VzY0csTUFBTSxnQkNwbEJULGVBQ0ksUUFBTyxNaEI2SVY7QUFDRCxPZXFjRyxNQUFNLGdCQ3BsQlQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZW9jaEIsTUFBTSxnQkNwbEJULGVBQ0ksUUFBTztFaEJnSlAsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBMEIvSUEsT0QyaUJHLE1BQU0sZ0JDM2lCUjtFQUNHLFVBQUE7O0FEc2xCUixPQUFPLE1BQU07RXpCeGNULG1CQUFBO0VBQUEseUJBQUE7RUFBQSxhQUFBO0VBQUEsV0FBQTtFQUFBLHlDQUFBO0VBQUEsTUFBQTtFQUFBLFFBQUE7RUFBQSxTQUFBO0VBQUEsT0FBQTtFMEJwSkEsYUFBQTtFQUNBLFVBQUE7RTFCbUpBLGVBQUE7RUFBQSxhQUFBO0VBQUEsK0JBQUE7O0F5QndjSixPQUFPLE1BQU0sZ0JDanBCVDtFMUJ5TUEsZ0JBQUE7RUFBQSxtQkFBQTs7QXlCd2NKLE9BQU8sTUFBTSxnQkNqcEJULGNBRUk7RXJCckRKLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksa0JBQUE7RUFJQSxtQkFBQTs7QW9CdWtCUixPQUFPLE1BQU0sZ0JDaG9CVCxlQUNJLFFBQU87RTFCdUxYLGtCQUFBO0VBQUEscUJBQUE7RVU5REEsc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLDRCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0Esb0JBQUE7RVZxREEsZ0JBQUE7RUFBQSxTQUFBO0VBQUEsV0FBQTs7QXlCd2NKLE9BQU8sTUFBTSxnQkNob0JULGVBQ0ksUUFBTyxNcEJnS1g7RU5uUEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QU1EQSxPbUI0c0JHLE1BQU0sZ0JDaG9CVCxlQUNJLFFBQU8sTXBCN0VWO0VOb1FELGFPalJlLG1CUGlSZjtFQUFBLFNRcWhCVSxPUnJoQlY7RUFBQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxjQUFBO0VNK0NBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxxQkFBQTtFTm5EQSxtQkFBQTtFTXFEQSxrQkFBQTtFTnJEQSxTQUFBOztBTXhQSSxPbUJnc0JELE1BQU0sZ0JDaG9CVCxlQUNJLFFBQU8sTXBCbEVWLE1BQ0k7RU53UEwsY0FBQTs7QU1uUEksT21CMnJCRCxNQUFNLGdCQ2hvQlQsZUFDSSxRQUFPLE1wQjdEVixPQUNJO0VObVBMLGNBQUE7O0FVbkRBLE9lMmZHLE1BQU0sZ0JDaG9CVCxlQUNJLFFBQU8sTWhCb0lWO0FBQ0QsT2UwZkcsTUFBTSxnQkNob0JULGVBQ0ksUUFBTyxNaEJxSVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VzZkcsTUFBTSxnQkNob0JULGVBQ0ksUUFBTyxNaEJ5SVY7RUFDRyxnQkFBQTtFQUNBLFlBQUE7O0FBRUosT2VrZkcsTUFBTSxnQkNob0JULGVBQ0ksUUFBTyxNaEI2SVY7QUFDRCxPZWlmRyxNQUFNLGdCQ2hvQlQsZUFDSSxRQUFPLE1oQjhJVjtBQUNELFFBQVEsVUFBVyxRZWdmaEIsTUFBTSxnQkNob0JULGVBQ0ksUUFBTztFaEJnSlAsbUJBQUE7RUFDQSxvQkFBQTtFVnNDSixZQUFBOztBMEIvSUEsT0R1bEJHLE1BQU0sZ0JDdmxCUjtFQUNHLFVBQUE7O0FEMGxCUixPQUFPLFFBQVEsa0JBQWtCO0V6QjVjN0IsZ0NBQUE7RTBCbElBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0UxQjhIQSxtQkFBQTtFQUFBLGFBQUE7RTBCM0hBLFVBQUE7O0FBQ0EsT0Rza0JHLFFBQVEsa0JBQWtCLE9DdGtCNUI7RUFDRyxZQUFBO0VBQ0EseUJBQUE7O0FDNUVSO0VDNUVJLGdCQUFBOztBQUNBLGtCQUFDO0U1QitRRCxjQUFBO0VBQUEsYU9qUmUsbUJQaVJmO0U0QnBIQSxrQkFBQTtFNUJvSEEsZUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RUFBQSxZQUFBO0U0Qi9HQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBOEJBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBdExJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7O0FEOERSLGtCQzVESSxNQUFLO0U1QlZMLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0E0QlFZLGtCQUxaLE1BQUssY0FFQSxNQUVHLFFBQ0s7QUFBRCxrQkFMWixNQUFLLGNBR0EsUUFDRyxRQUNLO0VBQ0csVUFBQTs7QURzRHBCLGtCQ2pESTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7O0FEOENSLGtCQ2pESSxNQUlJO0U1QnpCSixTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBNEJxQkksa0JBUEosTUFPSztFNUI4T0wsY0FBQTtFQUFBLGFPalJlLG1CUGlSZjtFNEJwSEEsa0JBQUE7RTVCb0hBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0VBQUEsWUFBQTtFNEIvR0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQTNIUSxVQUFBOztBQUdBLGtCQWpCUixNQWdCSyxNQUNJO0VBQ0csVUFBQTs7QUFHQSxrQkFyQlosTUFnQkssTUFJRyxRQUNLO0VBQ0csVUFBQTs7QUQyQnBCLGtCQzJEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEdEhKLGtCQzJEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSOztBRHRISixrQkMyRFEsU0FBUTtFQUNKLFVBQUE7O0FBQ0Esa0JBRkosU0FBUSxDQUVIO0VBeURULFNwQmtsQlEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEdEhKLGtCQzJEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLE9vQmxsQlI7O0FEdEhKLGtCQzJEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxPb0JsbEJSOztBRHpFSjtFQ3pISSxnQkFBQTs7QUFDQSxrQkFBQztFNUIrUUQsY0FBQTtFQUFBLGFPalJlLG1CUGlSZjtFNEJwSEEsa0JBQUE7RTVCb0hBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0VBQUEsWUFBQTtFNEIvR0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQThCQSxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxRQUFBLFFBQUEsT29CbGxCUjtFQXRMSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBOztBRDJHUixrQkN6R0ksTUFBSztFNUJWTCxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBNEJRWSxrQkFMWixNQUFLLGNBRUEsTUFFRyxRQUNLO0FBQUQsa0JBTFosTUFBSyxjQUdBLFFBQ0csUUFDSztFQUNHLFVBQUE7O0FEbUdwQixrQkM5Rkk7RUFDSSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBOztBRDJGUixrQkM5RkksTUFJSTtFNUJ6QkosU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTRCcUJJLGtCQVBKLE1BT0s7RTVCOE9MLGNBQUE7RUFBQSxhT2pSZSxtQlBpUmY7RTRCcEhBLGtCQUFBO0U1Qm9IQSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFQUFBLFlBQUE7RTRCL0dBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EsbUJBQUE7RUEzSFEsVUFBQTs7QUFHQSxrQkFqQlIsTUFnQkssTUFDSTtFQUNHLFVBQUE7O0FBR0Esa0JBckJaLE1BZ0JLLE1BSUcsUUFDSztFQUNHLFVBQUE7O0FEd0VwQixrQkNjUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEekVKLGtCQ2NRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEekVKLGtCQ2NRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSOztBRHpFSixrQkNjUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEekVKLGtCQ2NRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEekVKLGtCQ2NRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEJrbEJRLFFBQUEsUUFBQSxPb0JsbEJSOztBRHpFSixrQkNjUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLE9vQmxsQlI7O0FEekVKLGtCQ2NRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEJrbEJRLE9vQmxsQlI7O0FEbENKO0VDaEtJLGdCQUFBOztBQUNBLGtCQUFDO0U1QitRRCxjQUFBO0VBQUEsYU9qUmUsbUJQaVJmO0U0QnBIQSxrQkFBQTtFNUJvSEEsZUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RUFBQSxZQUFBO0U0Qi9HQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBOEJBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBdExJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7O0FEa0pSLGtCQ2hKSSxNQUFLO0U1QlZMLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0E0QlFZLGtCQUxaLE1BQUssY0FFQSxNQUVHLFFBQ0s7QUFBRCxrQkFMWixNQUFLLGNBR0EsUUFDRyxRQUNLO0VBQ0csVUFBQTs7QUQwSXBCLGtCQ3JJSTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7O0FEa0lSLGtCQ3JJSSxNQUlJO0U1QnpCSixTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBNEJxQkksa0JBUEosTUFPSztFNUI4T0wsY0FBQTtFQUFBLGFPalJlLG1CUGlSZjtFNEJwSEEsa0JBQUE7RTVCb0hBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0VBQUEsWUFBQTtFNEIvR0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQTNIUSxVQUFBOztBQUdBLGtCQWpCUixNQWdCSyxNQUNJO0VBQ0csVUFBQTs7QUFHQSxrQkFyQlosTUFnQkssTUFJRyxRQUNLO0VBQ0csVUFBQTs7QUQrR3BCLGtCQ3pCUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEbENKLGtCQ3pCUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSOztBRGxDSixrQkN6QlEsU0FBUTtFQUNKLFVBQUE7O0FBQ0Esa0JBRkosU0FBUSxDQUVIO0VBeURULFNwQmtsQlEsUUFBQSxRQUFBLE9vQmxsQlI7O0FEbENKLGtCQ3pCUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLE9vQmxsQlI7O0FEbENKLGtCQ3pCUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxPb0JsbEJSOztBREVKO0VDcE1JLGdCQUFBOztBQUNBLGtCQUFDO0U1QitRRCxjQUFBO0VBQUEsYU9qUmUsbUJQaVJmO0U0QnBIQSxrQkFBQTtFNUJvSEEsZUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RUFBQSxZQUFBO0U0Qi9HQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBOEJBLFNwQjZrQmlCLFFBQUEsUUFBQSxRQUFBLFFBQUEsT29CN2tCakI7RUF0TEksa0JBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTs7QURzTFIsa0JDcExJLE1BQUs7RTVCVkwsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTRCUVksa0JBTFosTUFBSyxjQUVBLE1BRUcsUUFDSztBQUFELGtCQUxaLE1BQUssY0FHQSxRQUNHLFFBQ0s7RUFDRyxVQUFBOztBRDhLcEIsa0JDektJO0VBQ0ksa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTs7QURzS1Isa0JDektJLE1BSUk7RTVCekJKLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0E0QnFCSSxrQkFQSixNQU9LO0U1QjhPTCxjQUFBO0VBQUEsYU9qUmUsbUJQaVJmO0U0QnBIQSxrQkFBQTtFNUJvSEEsZUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RUFBQSxZQUFBO0U0Qi9HQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBM0hRLFVBQUE7O0FBR0Esa0JBakJSLE1BZ0JLLE1BQ0k7RUFDRyxVQUFBOztBQUdBLGtCQXJCWixNQWdCSyxNQUlHLFFBQ0s7RUFDRyxVQUFBOztBRG1KcEIsa0JDN0RRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEI2a0JpQixRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQjdrQmpCOztBREVKLGtCQzdEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCNmtCaUIsUUFBQSxRQUFBLFFBQUEsT29CN2tCakI7O0FERUosa0JDN0RRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEI2a0JpQixRQUFBLFFBQUEsT29CN2tCakI7O0FERUosa0JDN0RRLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCQUZKLFNBQVEsQ0FFSDtFQXlEVCxTcEI2a0JpQixRQUFBLE9vQjdrQmpCOztBREVKLGtCQzdEUSxTQUFRO0VBQ0osVUFBQTs7QUFDQSxrQkFGSixTQUFRLENBRUg7RUF5RFQsU3BCNmtCaUIsT29CN2tCakI7O0FEMENKLGtCQUNJLFNBQVEsT0FBTztFQzdPZixnQkFBQTs7QUFDQSxrQkQ0T0EsU0FBUSxPQUFPLEtDNU9kO0U1QitRRCxjQUFBO0VBQUEsYU9qUmUsbUJQaVJmO0U0QnBIQSxrQkFBQTtFNUJvSEEsZUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RUFBQSxZQUFBO0U0Qi9HQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBOEJBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBdExJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7O0FEOE5SLGtCQUNJLFNBQVEsT0FBTyxLQzdOZixNQUFLO0U1QlZMLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0E0QlFZLGtCRHdOWixTQUFRLE9BQU8sS0M3TmYsTUFBSyxjQUVBLE1BRUcsUUFDSztBQUFELGtCRHdOWixTQUFRLE9BQU8sS0M3TmYsTUFBSyxjQUdBLFFBQ0csUUFDSztFQUNHLFVBQUE7O0FEc05wQixrQkFDSSxTQUFRLE9BQU8sS0NsTmY7RUFDSSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBOztBRDhNUixrQkFDSSxTQUFRLE9BQU8sS0NsTmYsTUFJSTtFNUJ6QkosU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTRCcUJJLGtCRDJNSixTQUFRLE9BQU8sS0NsTmYsTUFPSztFNUI4T0wsY0FBQTtFQUFBLGFPalJlLG1CUGlSZjtFNEJwSEEsa0JBQUE7RTVCb0hBLGVBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0VBQUEsWUFBQTtFNEIvR0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQTNIUSxVQUFBOztBQUdBLGtCRGlNUixTQUFRLE9BQU8sS0NsTmYsTUFnQkssTUFDSTtFQUNHLFVBQUE7O0FBR0Esa0JENkxaLFNBQVEsT0FBTyxLQ2xOZixNQWdCSyxNQUlHLFFBQ0s7RUFDRyxVQUFBOztBRDJMcEIsa0JBQ0ksU0FBUSxPQUFPLEtDdEdYLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCRG9HUixTQUFRLE9BQU8sS0N0R1gsU0FBUSxDQUVIO0VBeURULFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSOztBRDBDSixrQkFDSSxTQUFRLE9BQU8sS0N0R1gsU0FBUTtFQUNKLFVBQUE7O0FBQ0Esa0JEb0dSLFNBQVEsT0FBTyxLQ3RHWCxTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSOztBRDBDSixrQkFDSSxTQUFRLE9BQU8sS0N0R1gsU0FBUTtFQUNKLFVBQUE7O0FBQ0Esa0JEb0dSLFNBQVEsT0FBTyxLQ3RHWCxTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxRQUFBLFFBQUEsT29CbGxCUjs7QUQwQ0osa0JBQ0ksU0FBUSxPQUFPLEtDdEdYLFNBQVE7RUFDSixVQUFBOztBQUNBLGtCRG9HUixTQUFRLE9BQU8sS0N0R1gsU0FBUSxDQUVIO0VBeURULFNwQmtsQlEsUUFBQSxPb0JsbEJSOztBRDBDSixrQkFDSSxTQUFRLE9BQU8sS0N0R1gsU0FBUTtFQUNKLFVBQUE7O0FBQ0Esa0JEb0dSLFNBQVEsT0FBTyxLQ3RHWCxTQUFRLENBRUg7RUF5RFQsU3BCa2xCUSxPb0JsbEJSOztBRDRESjtFQ3ZMSSxtQkFBQTtFQUNBLGdCQUFBOztBRHNMSix5QkNwTEk7RTVCc01BLFlBQUE7RTRCbkxJLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTs7QUFuQkEseUJBRkosZUFFSztFQUNHLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFNUIrTFIsY0FBQTtFNEJoR0EsY0FBQTtFNUJnR0EsYU9qUmUsbUJQaVJmO0U0QjlFQSxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsT29CbGxCUjtFQWZBLGtCQUFBO0U1QjZGQSxlQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RTRCeEZBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBOztBRG9FSix5QkNwTEksZUFzQkk7RUFDSSxjQUFBO0VBQ0EsZ0JBQUE7O0FBQ0EseUJBekJSLGVBc0JJLE9BR0s7RUFDRyxrQkFBQTtFQUNBLFVBQUE7RTVCMktaLGNBQUE7RTRCaEdBLGNBQUE7RTVCZ0dBLGFPalJlLG1CUGlSZjtFNEI5RUEsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7RUFmQSxrQkFBQTtFNUI2RkEsZUFBQTtFQUFBLFlBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0U0QnhGQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTs7QURvRUoseUJDcExJLGVBc0JJLE9BZ0JJO0U1QjFHUixTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBMkJxUUo7RUMzTUksbUJBQUE7RUFDQSxnQkFBQTs7QUQwTUoseUJDeE1JO0U1QnNNQSxZQUFBO0U0Qm5MSSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7O0FBbkJBLHlCQUZKLGVBRUs7RUFDRyxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RTVCK0xSLGNBQUE7RTRCaEdBLGNBQUE7RTVCZ0dBLGFPalJlLG1CUGlSZjtFNEI5RUEsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7RUFmQSxrQkFBQTtFNUI2RkEsZUFBQTtFQUFBLFlBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0U0QnhGQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTs7QUR3RkoseUJDeE1JLGVBc0JJO0VBQ0ksY0FBQTtFQUNBLGdCQUFBOztBQUNBLHlCQXpCUixlQXNCSSxPQUdLO0VBQ0csa0JBQUE7RUFDQSxVQUFBO0U1QjJLWixjQUFBO0U0QmhHQSxjQUFBO0U1QmdHQSxhT2pSZSxtQlBpUmY7RTRCOUVBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEd0ZKLHlCQ3hNSSxlQXNCSSxPQWdCSTtFNUIxR1IsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTJCNFJKO0VDbE9JLG1CQUFBO0VBQ0EsZ0JBQUE7O0FEaU9KLHlCQy9OSTtFNUJzTUEsWUFBQTtFNEJuTEkscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBOztBQW5CQSx5QkFGSixlQUVLO0VBQ0csa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0U1QitMUixjQUFBO0U0QmhHQSxjQUFBO0U1QmdHQSxhT2pSZSxtQlBpUmY7RTRCOUVBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEK0dKLHlCQy9OSSxlQXNCSTtFQUNJLGNBQUE7RUFDQSxnQkFBQTs7QUFDQSx5QkF6QlIsZUFzQkksT0FHSztFQUNHLGtCQUFBO0VBQ0EsVUFBQTtFNUIyS1osY0FBQTtFNEJoR0EsY0FBQTtFNUJnR0EsYU9qUmUsbUJQaVJmO0U0QjlFQSxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsT29CbGxCUjtFQWZBLGtCQUFBO0U1QjZGQSxlQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RTRCeEZBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBOztBRCtHSix5QkMvTkksZUFzQkksT0FnQkk7RTVCMUdSLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0EyQm1USjtFQ3pQSSxtQkFBQTtFQUNBLGdCQUFBOztBRHdQSix5QkN0UEk7RTVCc01BLFlBQUE7RTRCbkxJLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTs7QUFuQkEseUJBRkosZUFFSztFQUNHLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFNUIrTFIsY0FBQTtFNEJoR0EsY0FBQTtFNUJnR0EsYU9qUmUsbUJQaVJmO0U0QjlFQSxTcEI2a0JpQixRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQjdrQmpCO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEc0lKLHlCQ3RQSSxlQXNCSTtFQUNJLGNBQUE7RUFDQSxnQkFBQTs7QUFDQSx5QkF6QlIsZUFzQkksT0FHSztFQUNHLGtCQUFBO0VBQ0EsVUFBQTtFNUIyS1osY0FBQTtFNEJoR0EsY0FBQTtFNUJnR0EsYU9qUmUsbUJQaVJmO0U0QjlFQSxTcEI2a0JpQixRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQjdrQmpCO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEc0lKLHlCQ3RQSSxlQXNCSSxPQWdCSTtFNUIxR1IsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTJCeVVKO0VDL1FJLG1CQUFBO0VBQ0EsZ0JBQUE7O0FEOFFKLHlCQzlOSTtFNUJsSEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTJCeVVKLHlCQzVRSTtFNUJzTUEsWUFBQTtFNEJuTEkscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBOztBQW5CQSx5QkFGSixlQUVLO0VBQ0csa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0U1QitMUixjQUFBO0U0QmhHQSxjQUFBO0U1QmdHQSxhT2pSZSxtQlBpUmY7RTRCOUVBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FENEpKLHlCQzVRSSxlQXNCSTtFQUNJLGNBQUE7RUFDQSxnQkFBQTs7QUFDQSx5QkF6QlIsZUFzQkksT0FHSztFQUNHLGtCQUFBO0VBQ0EsVUFBQTtFNUIyS1osY0FBQTtFNEJoR0EsY0FBQTtFNUJnR0EsYU9qUmUsbUJQaVJmO0U0QjlFQSxTcEJrbEJRLFFBQUEsUUFBQSxRQUFBLFFBQUEsT29CbGxCUjtFQWZBLGtCQUFBO0U1QjZGQSxlQUFBO0VBQUEsWUFBQTtFQUFBLGlCQUFBO0VBQUEscUJBQUE7RTRCeEZBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBOztBRDRKSix5QkM1UUksZUFzQkksT0FnQkk7RTVCMUdSLFNBQUE7RUFDQSxNQUFNLGdCQUFOO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7O0EyQitXSix5QkFDSTtFQ3RUQSxtQkFBQTtFQUNBLGdCQUFBOztBRG9USix5QkFDSSxnQkNuVEE7RTVCc01BLFlBQUE7RTRCbkxJLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTs7QUFuQkEseUJEaVRKLGdCQ25UQSxlQUVLO0VBQ0csa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0U1QitMUixjQUFBO0U0QmhHQSxjQUFBO0U1QmdHQSxhT2pSZSxtQlBpUmY7RTRCOUVBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEa01KLHlCQUNJLGdCQ25UQSxlQXNCSTtFQUNJLGNBQUE7RUFDQSxnQkFBQTs7QUFDQSx5QkQwUlIsZ0JDblRBLGVBc0JJLE9BR0s7RUFDRyxrQkFBQTtFQUNBLFVBQUE7RTVCMktaLGNBQUE7RTRCaEdBLGNBQUE7RTVCZ0dBLGFPalJlLG1CUGlSZjtFNEI5RUEsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7RUFmQSxrQkFBQTtFNUI2RkEsZUFBQTtFQUFBLFlBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0U0QnhGQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTs7QURrTUoseUJBQ0ksZ0JDblRBLGVBc0JJLE9BZ0JJO0U1QjFHUixTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBMkJrWUo7RUN4VUksbUJBQUE7RUFDQSxnQkFBQTs7QUR1VUoseUJDclVJO0U1QnNNQSxZQUFBO0U0Qm5MSSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7O0FBbkJBLHlCQUZKLGVBRUs7RUFDRyxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RTVCK0xSLGNBQUE7RTRCaEdBLGNBQUE7RTVCZ0dBLGFPalJlLG1CUGlSZjtFNEI5RUEsU3BCa2xCUSxRQUFBLFFBQUEsUUFBQSxRQUFBLE9vQmxsQlI7RUFmQSxrQkFBQTtFNUI2RkEsZUFBQTtFQUFBLFlBQUE7RUFBQSxpQkFBQTtFQUFBLHFCQUFBO0U0QnhGQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQ0FBQTs7QURxTkoseUJDclVJLGVBc0JJO0VBQ0ksY0FBQTtFQUNBLGdCQUFBOztBQUNBLHlCQXpCUixlQXNCSSxPQUdLO0VBQ0csa0JBQUE7RUFDQSxVQUFBO0U1QjJLWixjQUFBO0U0QmhHQSxjQUFBO0U1QmdHQSxhT2pSZSxtQlBpUmY7RTRCOUVBLFNwQmtsQlEsUUFBQSxRQUFBLFFBQUEsUUFBQSxPb0JsbEJSO0VBZkEsa0JBQUE7RTVCNkZBLGVBQUE7RUFBQSxZQUFBO0VBQUEsaUJBQUE7RUFBQSxxQkFBQTtFNEJ4RkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsbUNBQUE7O0FEcU5KLHlCQ3JVSSxlQXNCSSxPQWdCSTtFNUIxR1IsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTJCa1lKLHlCQ3ZSSTtFNUJsSEEsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QTZCdEJKO0VBQ0ksYUFBQTs7QUNzQko7RUN0Qkksa0JBQUE7RUFDQSxVQUFBOztBL0JxQ0EsbUJBQUM7QUFDRCxtQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUJBQUM7RUFDRyxXQUFBOztBOEJ0QlIsbUJDcEJJLFFBQU87RUFDSCxXQUFBO0VBQ0EsV0FBQTs7QURrQlIsbUJDcEJJLFFBQU8sTUFHSDtFQUNJLGNBQUE7RS9Ca1JSLFlBQUE7RStCaFJRLGtCQUFBO0VBQ0EsVUFBQTs7QURhWixtQkNWSSxRQUFPO0VBQ0gsc0JBQUE7RUFFQSxZQUFBO0UvQnlRSixnQkFBQTtFK0J2UUksa0JBQUE7RUFDQSxXQUFBOztBL0JvQkosbUIrQjFCQSxRQUFPLFEvQjBCTjtBQUNELG1CK0IzQkEsUUFBTyxRL0IyQk47RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLG1CK0IvQkEsUUFBTyxRL0IrQk47RUFDRyxXQUFBOztBK0J6QkEsbUJBUEosUUFBTyxRQU9GO0VBQ0csY0FBQTs7QURFWixtQkMrQ0ksUUFBTztFL0JtTlAsaUJBQUE7O0E4QmxRSixtQkMrQ0ksUUFBTyxNQUVIO0UxQjNDSixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBO0VBQUEsbUJBQUE7RUFBQSx5QkFBQTtFK0I1TFEsbUJBQUE7RS9CNExSLFlBQUE7RUFBQSwwQkFBQTs7QUtwS0EsbUIwQi9DQSxRQUFPLE1BRUgsVTFCNkNIO0VMb0tELGNBQUE7RUFBQSxxQkFBQTs7QUtoS0EsbUIwQm5EQSxRQUFPLE1BRUgsVTFCaURIO0VMZ0tELGNBQUE7RUFBQSxxQkFBQTs7QUs1SkEsbUIwQnZEQSxRQUFPLE1BRUgsVTFCcURIO0VMNEpELGNBQUE7RUFBQSxxQkFBQTs7QStCeExJLG1CQTNCSixRQUFPLE1BMkJGLElBQUksV0FBWSxVQUFTO0FBQzFCLG1CQTVCSixRQUFPLE1BNEJGLElBQUksV0FBWSxVQUFTO0UvQnVMOUIsbUJBQUE7O0ErQnBMSSxtQkEvQkosUUFBTyxNQStCRixJQUFJLFdBQVksVUFBUztBQUMxQixtQkFoQ0osUUFBTyxNQWdDRixPQUFRO0FBQ1QsbUJBakNKLFFBQU8sTUFpQ0YsT0FBUSxVQUFTO0FBQ2xCLG1CQWxDSixRQUFPLE1Ba0NGLE9BQVEsVUFBUztFL0JpTHRCLG1CQUFBO0VBQUEsY0FBQTs7QStCN0tJLG1CQXRDSixRQUFPLE1Bc0NGLE9BQVE7QUFDVCxtQkF2Q0osUUFBTyxNQXVDRixPQUFRLFVBQVM7QUFDbEIsbUJBeENKLFFBQU8sTUF3Q0YsT0FBUSxVQUFTO0UvQjJLdEIsbUJBQUE7O0E4QmxRSixtQkMyRkksUUFBTztFL0J1S1AsbUJBQUE7RStCcktJLGdCQUFBO0VBQ0EsNEJBQUE7RS9Cb0tKLHlCQUFBOztBOEJwQ0o7RUNwUEksa0JBQUE7RUFDQSxVQUFBOztBL0JxQ0EsbUJBQUM7QUFDRCxtQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUJBQUM7RUFDRyxXQUFBOztBOEJ3TVIsbUJDbFBJLFFBQU87RUFDSCxXQUFBO0VBQ0EsV0FBQTs7QURnUFIsbUJDbFBJLFFBQU8sTUFHSDtFQUNJLGNBQUE7RS9Ca1JSLFlBQUE7RStCaFJRLGtCQUFBO0VBQ0EsVUFBQTs7QUQyT1osbUJDeE9JLFFBQU87RUFDSCxzQkFBQTtFQUVBLFlBQUE7RS9CeVFKLGdCQUFBO0UrQnZRSSxrQkFBQTtFQUNBLFdBQUE7O0EvQm9CSixtQitCMUJBLFFBQU8sUS9CMEJOO0FBQ0QsbUIrQjNCQSxRQUFPLFEvQjJCTjtFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUIrQi9CQSxRQUFPLFEvQitCTjtFQUNHLFdBQUE7O0ErQnpCQSxtQkFQSixRQUFPLFFBT0Y7RUFDRyxjQUFBOztBRGdPWixtQkMvS0ksUUFBTztFL0JtTlAsaUJBQUE7O0E4QnBDSixtQkMvS0ksUUFBTyxNQUVIO0UxQjNDSixpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGlCQUFBO0VBQUEsY0FBQTtFQUFBLHFCQUFBO0VBQUEsbUJBQUE7RUFBQSx5QkFBQTtFK0I1TFEsbUJBQUE7RS9CNExSLFlBQUE7RUFBQSwwQkFBQTs7QUtwS0EsbUIwQi9DQSxRQUFPLE1BRUgsVTFCNkNIO0VMb0tELGNBQUE7RUFBQSxxQkFBQTs7QUtoS0EsbUIwQm5EQSxRQUFPLE1BRUgsVTFCaURIO0VMZ0tELGNBQUE7RUFBQSxxQkFBQTs7QUs1SkEsbUIwQnZEQSxRQUFPLE1BRUgsVTFCcURIO0VMNEpELGNBQUE7RUFBQSxxQkFBQTs7QStCeExJLG1CQTNCSixRQUFPLE1BMkJGLElBQUksV0FBWSxVQUFTO0FBQzFCLG1CQTVCSixRQUFPLE1BNEJGLElBQUksV0FBWSxVQUFTO0UvQnVMOUIsbUJBQUE7O0ErQnBMSSxtQkEvQkosUUFBTyxNQStCRixJQUFJLFdBQVksVUFBUztBQUMxQixtQkFoQ0osUUFBTyxNQWdDRixPQUFRO0FBQ1QsbUJBakNKLFFBQU8sTUFpQ0YsT0FBUSxVQUFTO0FBQ2xCLG1CQWxDSixRQUFPLE1Ba0NGLE9BQVEsVUFBUztFL0JpTHRCLG1CQUFBO0VBQUEsY0FBQTs7QStCN0tJLG1CQXRDSixRQUFPLE1Bc0NGLE9BQVE7QUFDVCxtQkF2Q0osUUFBTyxNQXVDRixPQUFRLFVBQVM7QUFDbEIsbUJBeENKLFFBQU8sTUF3Q0YsT0FBUSxVQUFTO0UvQjJLdEIsbUJBQUE7O0E4QnBDSixtQkNuSUksUUFBTztFL0J1S1AsbUJBQUE7RStCcktJLGdCQUFBO0VBQ0EsNEJBQUE7RUFtQkosU0FBQTtFL0JpSkEsNkJBQUE7O0E4QkZKO0VDMUlJLFNBQUE7RUFDQSxVQUFBOztBRHlJSixtQkN4SUksUUFBTztFQUNILHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FEcUlSLG1CQ3hJSSxRQUFPLE1BSUg7RUFDSSxjQUFBOztBRG1JWixtQkNoSUksUUFBTztFQUVILHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBOztBL0JySEosbUIrQmdIQSxRQUFPLFEvQmhITjtBQUNELG1CK0IrR0EsUUFBTyxRL0IvR047RUFDRyxTQUFTLEVBQVQ7RUFDQSxjQUFBOztBQUVKLG1CK0IyR0EsUUFBTyxRL0IzR047RUFDRyxXQUFBOztBK0JnSEEsbUJBTkosUUFBTyxRQU1GO0VBQ0csY0FBQTs7QUR5SFosbUJDcEVRLFFBQU87RS9Cc0VYLGVBQUE7O0E4QkZKLG1CQ2hFSSxRQUFPLE1BQ0g7RS9CaUVKLG1CQUFBO0VBQUEsNkJBQUE7RUFBQSwrQkFBQTtFQUFBLGdDQUFBO0VBQUEsOEJBQUE7RUFBQSxZQUFBO0VBQUEsMEJBQUE7RUs1UEEsaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxpQkFBQTtFQUFBLGNBQUE7RUFBQSxxQkFBQTs7QUtwS0EsbUIwQmtHQSxRQUFPLE1BQ0gsVTFCbkdIO0VMb0tELGNBQUE7RUFBQSxxQkFBQTs7QUtoS0EsbUIwQjhGQSxRQUFPLE1BQ0gsVTFCL0ZIO0VMZ0tELGNBQUE7RUFBQSxxQkFBQTs7QUs1SkEsbUIwQjBGQSxRQUFPLE1BQ0gsVTFCM0ZIO0VMNEpELGNBQUE7RUFBQSxxQkFBQTs7QStCdENJLG1CQTVCSixRQUFPLE1BNEJGLElBQUksV0FBWSxVQUFTO0FBQzFCLG1CQTdCSixRQUFPLE1BNkJGLElBQUksV0FBWSxVQUFTO0UvQnFDOUIsbUJBQUE7O0ErQmxDSSxtQkFoQ0osUUFBTyxNQWdDRixJQUFJLFdBQVksVUFBUztBQUMxQixtQkFqQ0osUUFBTyxNQWlDRixPQUFRO0FBQ1QsbUJBbENKLFFBQU8sTUFrQ0YsT0FBUSxVQUFTO0FBQ2xCLG1CQW5DSixRQUFPLE1BbUNGLE9BQVEsVUFBUztFL0IrQnRCLG1CQUFBO0VBQUEsbUJBQUE7O0E4QkZKLG1CQ3hCSSxRQUFPO0UvQjBCUCxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsZUFBQTtFQUFBLDRCQUFBOztBOEIwT0osd0JBTjRDO0VBQ3hDO0lDN2ZBLGtCQUFBO0lBQ0EsVUFBQTs7RS9CcUNBLG1CQUFDO0VBQ0QsbUJBQUM7SUFDRyxTQUFTLEVBQVQ7SUFDQSxjQUFBOztFQUVKLG1CQUFDO0lBQ0csV0FBQTs7RThCaWRKLG1CQzNmQSxRQUFPO0lBQ0gsV0FBQTtJQUNBLFdBQUE7O0VEeWZKLG1CQzNmQSxRQUFPLE1BR0g7SUFDSSxjQUFBO0kvQmtSUixZQUFBO0krQmhSUSxrQkFBQTtJQUNBLFVBQUE7O0VEb2ZSLG1CQ2pmQSxRQUFPO0lBQ0gsc0JBQUE7SUFFQSxZQUFBO0kvQnlRSixnQkFBQTtJK0J2UUksa0JBQUE7SUFDQSxXQUFBOztFL0JvQkosbUIrQjFCQSxRQUFPLFEvQjBCTjtFQUNELG1CK0IzQkEsUUFBTyxRL0IyQk47SUFDRyxTQUFTLEVBQVQ7SUFDQSxjQUFBOztFQUVKLG1CK0IvQkEsUUFBTyxRL0IrQk47SUFDRyxXQUFBOztFK0J6QkEsbUJBUEosUUFBTyxRQU9GO0lBQ0csY0FBQTs7RUR5ZVIsbUJDeGJBLFFBQU87SS9CbU5QLGlCQUFBOztFOEJxT0EsbUJDeGJBLFFBQU8sTUFFSDtJMUIzQ0osaUJBQUE7SUw0UEEsZ0JBQUE7SUFBQSxpQkFBQTtJQUFBLGNBQUE7SUFBQSxxQkFBQTtJQUFBLG1CQUFBO0lBQUEseUJBQUE7SStCNUxRLG1CQUFBO0kvQjRMUixZQUFBO0lBQUEsMEJBQUE7O0VLcEtBLG1CMEIvQ0EsUUFBTyxNQUVILFUxQjZDSDtJTG9LRCxjQUFBO0lBQUEscUJBQUE7O0VLaEtBLG1CMEJuREEsUUFBTyxNQUVILFUxQmlESDtJTGdLRCxjQUFBO0lBQUEscUJBQUE7O0VLNUpBLG1CMEJ2REEsUUFBTyxNQUVILFUxQnFESDtJTDRKRCxjQUFBO0lBQUEscUJBQUE7O0UrQnhMSSxtQkEzQkosUUFBTyxNQTJCRixJQUFJLFdBQVksVUFBUztFQUMxQixtQkE1QkosUUFBTyxNQTRCRixJQUFJLFdBQVksVUFBUztJL0J1TDlCLG1CQUFBOztFK0JwTEksbUJBL0JKLFFBQU8sTUErQkYsSUFBSSxXQUFZLFVBQVM7RUFDMUIsbUJBaENKLFFBQU8sTUFnQ0YsT0FBUTtFQUNULG1CQWpDSixRQUFPLE1BaUNGLE9BQVEsVUFBUztFQUNsQixtQkFsQ0osUUFBTyxNQWtDRixPQUFRLFVBQVM7SS9CaUx0QixtQkFBQTtJQUFBLGNBQUE7O0UrQjdLSSxtQkF0Q0osUUFBTyxNQXNDRixPQUFRO0VBQ1QsbUJBdkNKLFFBQU8sTUF1Q0YsT0FBUSxVQUFTO0VBQ2xCLG1CQXhDSixRQUFPLE1Bd0NGLE9BQVEsVUFBUztJL0IyS3RCLG1CQUFBOztFOEJxT0EsbUJDNVlBLFFBQU87SS9CdUtQLG1CQUFBO0krQnJLSSxnQkFBQTtJQUNBLDRCQUFBO0kvQm9LSix5QkFBQTs7O0E4QmdQSix3QkFOK0M7RUFDM0M7SUN2WEEsU0FBQTtJQUNBLFVBQUE7O0VEc1hBLG1CQ3JYQSxRQUFPO0lBQ0gsc0JBQUE7SUFDQSxXQUFBO0lBQ0EsV0FBQTs7RURrWEosbUJDclhBLFFBQU8sTUFJSDtJQUNJLGNBQUE7O0VEZ1hSLG1CQzdXQSxRQUFPO0lBRUgsc0JBQUE7SUFDQSxXQUFBO0lBQ0EsU0FBQTtJQUNBLGNBQUE7O0UvQnJISixtQitCZ0hBLFFBQU8sUS9CaEhOO0VBQ0QsbUIrQitHQSxRQUFPLFEvQi9HTjtJQUNHLFNBQVMsRUFBVDtJQUNBLGNBQUE7O0VBRUosbUIrQjJHQSxRQUFPLFEvQjNHTjtJQUNHLFdBQUE7O0UrQmdIQSxtQkFOSixRQUFPLFFBTUY7SUFDRyxjQUFBOztFRHNXUixtQkNqVEksUUFBTztJL0JzRVgsZUFBQTs7RThCMk9BLG1CQzdTQSxRQUFPLE1BQ0g7SS9CaUVKLG1CQUFBO0lBQUEsNkJBQUE7SUFBQSwrQkFBQTtJQUFBLGdDQUFBO0lBQUEsOEJBQUE7SUFBQSxZQUFBO0lBQUEsMEJBQUE7SUs1UEEsaUJBQUE7SUw0UEEsZ0JBQUE7SUFBQSxpQkFBQTtJQUFBLGNBQUE7SUFBQSxxQkFBQTs7RUtwS0EsbUIwQmtHQSxRQUFPLE1BQ0gsVTFCbkdIO0lMb0tELGNBQUE7SUFBQSxxQkFBQTs7RUtoS0EsbUIwQjhGQSxRQUFPLE1BQ0gsVTFCL0ZIO0lMZ0tELGNBQUE7SUFBQSxxQkFBQTs7RUs1SkEsbUIwQjBGQSxRQUFPLE1BQ0gsVTFCM0ZIO0lMNEpELGNBQUE7SUFBQSxxQkFBQTs7RStCdENJLG1CQTVCSixRQUFPLE1BNEJGLElBQUksV0FBWSxVQUFTO0VBQzFCLG1CQTdCSixRQUFPLE1BNkJGLElBQUksV0FBWSxVQUFTO0kvQnFDOUIsbUJBQUE7O0UrQmxDSSxtQkFoQ0osUUFBTyxNQWdDRixJQUFJLFdBQVksVUFBUztFQUMxQixtQkFqQ0osUUFBTyxNQWlDRixPQUFRO0VBQ1QsbUJBbENKLFFBQU8sTUFrQ0YsT0FBUSxVQUFTO0VBQ2xCLG1CQW5DSixRQUFPLE1BbUNGLE9BQVEsVUFBUztJL0IrQnRCLG1CQUFBO0lBQUEsbUJBQUE7O0U4QjJPQSxtQkNyUUEsUUFBTztJL0IwQlAsbUJBQUE7SUFBQSx5QkFBQTtJQUFBLGVBQUE7SUFBQSw0QkFBQTs7O0E4QjZRSjtFQ3JpQkksa0JBQUE7RUFDQSxVQUFBOztBL0JxQ0EsbUJBQUM7QUFDRCxtQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosbUJBQUM7RUFDRyxXQUFBOztBOEJ5ZlIsbUJDbmlCSSxRQUFPO0VBQ0gsV0FBQTtFQUNBLFdBQUE7O0FEaWlCUixtQkNuaUJJLFFBQU8sTUFHSDtFQUNJLGNBQUE7RS9Ca1JSLFlBQUE7RStCaFJRLGtCQUFBO0VBQ0EsVUFBQTs7QUQ0aEJaLG1CQ3poQkksUUFBTztFQUNILHNCQUFBO0VBRUEsWUFBQTtFL0J5UUosZ0JBQUE7RStCdlFJLGtCQUFBO0VBQ0EsV0FBQTs7QS9Cb0JKLG1CK0IxQkEsUUFBTyxRL0IwQk47QUFDRCxtQitCM0JBLFFBQU8sUS9CMkJOO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQitCL0JBLFFBQU8sUS9CK0JOO0VBQ0csV0FBQTs7QStCekJBLG1CQVBKLFFBQU8sUUFPRjtFQUNHLGNBQUE7O0FEa2pCWjtFQzFiSSxTQUFBO0VBQ0EsVUFBQTs7QUR5YkosbUJDeGJJLFFBQU87RUFDSCxzQkFBQTtFQUNBLFdBQUE7RUFDQSxXQUFBOztBRHFiUixtQkN4YkksUUFBTyxNQUlIO0VBQ0ksY0FBQTs7QURtYlosbUJDaGJJLFFBQU87RUFFSCxzQkFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsY0FBQTs7QS9CckhKLG1CK0JnSEEsUUFBTyxRL0JoSE47QUFDRCxtQitCK0dBLFFBQU8sUS9CL0dOO0VBQ0csU0FBUyxFQUFUO0VBQ0EsY0FBQTs7QUFFSixtQitCMkdBLFFBQU8sUS9CM0dOO0VBQ0csV0FBQTs7QStCZ0hBLG1CQU5KLFFBQU8sUUFNRjtFQUNHLGNBQUE7O0FDbEdaO0VDdkRJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBOztBZ0M3TkosZ0JDbERJO0VBQ0ksZ0JBQUE7O0FEaURSLGdCQy9DSSxRQUVJLEtBQ0k7QUQ0Q1osZ0JDOUNJLFFBQ0ksS0FDSTtBRDRDWixnQkMvQ0ksUUFFSSxLQUVJO0FEMkNaLGdCQzlDSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUQwQ2hCLGdCQ3RDSSxRQUFRLEtBQ0o7QURxQ1IsZ0JDdENJLFFBQVEsS0FFSjtFQUNJLHNCQUFBOztBRG1DWixnQkNoQ0ksUUFHSSxLQUNJO0FENEJaLGdCQy9CSSxRQUVJLEtBQ0k7QUQ0QlosZ0JDOUJJLFFBQ0ksS0FDSTtBRDRCWixnQkNoQ0ksUUFHSSxLQUVJO0FEMkJaLGdCQy9CSSxRQUVJLEtBRUk7QUQyQlosZ0JDOUJJLFFBQ0ksS0FFSTtFakN3UFIsaUJBQUE7O0FnQy9HSixnQkNwSEksUUFHSSxLQVdJO0FEc0daLGdCQ25ISSxRQUVJLEtBV0k7QURzR1osZ0JDbEhJLFFBQ0ksS0FXSTtFakNxTlIsY0FBQTtFQUFBLGdCQUFBOztBZ0MrQ0o7RUNuVUkseUJBQUE7RUFDQSxpQkFBQTtFQUVBLGVBQUE7RWpDaVJBLFdBQUE7O0FnQytDSixnQkM5VEk7RUFDSSxnQkFBQTs7QUQ2VFIsZ0JDM1RJLFFBRUksS0FDSTtBRHdUWixnQkMxVEksUUFDSSxLQUNJO0FEd1RaLGdCQzNUSSxRQUVJLEtBRUk7QUR1VFosZ0JDMVRJLFFBQ0ksS0FFSTtFQUNJLG1CQUFBOztBRHNUaEIsZ0JDbFRJLFFBQVEsS0FDSjtBRGlUUixnQkNsVEksUUFBUSxLQUVKO0VBQ0ksc0JBQUE7O0FEK1NaLGdCQzVTSSxRQUdJLEtBQ0k7QUR3U1osZ0JDM1NJLFFBRUksS0FDSTtBRHdTWixnQkMxU0ksUUFDSSxLQUNJO0FEd1NaLGdCQzVTSSxRQUdJLEtBRUk7QUR1U1osZ0JDM1NJLFFBRUksS0FFSTtBRHVTWixnQkMxU0ksUUFDSSxLQUVJO0VqQ3dQUixpQkFBQTs7QWdDK0NKLGdCQzhJSTtFakN2Y0EsU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QWdDcWNKO0VDdGRJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBOztBZ0NrTUosZ0JDamRJO0VBQ0ksZ0JBQUE7O0FEZ2RSLGdCQzljSSxRQUVJLEtBQ0k7QUQyY1osZ0JDN2NJLFFBQ0ksS0FDSTtBRDJjWixnQkM5Y0ksUUFFSSxLQUVJO0FEMGNaLGdCQzdjSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUR5Y2hCLGdCQ3JjSSxRQUFRLEtBQ0o7QURvY1IsZ0JDcmNJLFFBQVEsS0FFSjtFQUNJLHNCQUFBOztBRGtjWixnQkMvYkksUUFHSSxLQUNJO0FEMmJaLGdCQzliSSxRQUVJLEtBQ0k7QUQyYlosZ0JDN2JJLFFBQ0ksS0FDSTtBRDJiWixnQkMvYkksUUFHSSxLQUVJO0FEMGJaLGdCQzliSSxRQUVJLEtBRUk7QUQwYlosZ0JDN2JJLFFBQ0ksS0FFSTtFakN3UFIsaUJBQUE7O0FnQ2tNSixnQkN6V0ksUUFHSSxLQUNJO0FEcVdaLGdCQ3hXSSxRQUVJLEtBQ0k7QURxV1osZ0JDdldJLFFBQ0ksS0FDSTtFakNtS1Isd0JBQUE7O0FnQ2tNSixnQkN6V0ksUUFHSSxLQUlJO0FEa1daLGdCQ3hXSSxRQUVJLEtBSUk7QURrV1osZ0JDdldJLFFBQ0ksS0FJSTtFakNnS1IseUJBQUE7O0FnQ2tWSjtFQ3RtQkkseUJBQUE7RUFDQSxpQkFBQTtFQUVBLGVBQUE7RWpDaVJBLFdBQUE7RUFBQSxtQkFBQTs7QWdDa1ZKLGdCQ2ptQkk7RUFDSSxnQkFBQTs7QURnbUJSLGdCQzlsQkksUUFFSSxLQUNJO0FEMmxCWixnQkM3bEJJLFFBQ0ksS0FDSTtBRDJsQlosZ0JDOWxCSSxRQUVJLEtBRUk7QUQwbEJaLGdCQzdsQkksUUFDSSxLQUVJO0VBQ0ksbUJBQUE7O0FEeWxCaEIsZ0JDcmxCSSxRQUFRLEtBQ0o7QURvbEJSLGdCQ3JsQkksUUFBUSxLQUVKO0VBQ0ksc0JBQUE7O0FEa2xCWixnQkMva0JJLFFBR0ksS0FDSTtBRDJrQlosZ0JDOWtCSSxRQUVJLEtBQ0k7QUQya0JaLGdCQzdrQkksUUFDSSxLQUNJO0FEMmtCWixnQkMva0JJLFFBR0ksS0FFSTtBRDBrQlosZ0JDOWtCSSxRQUVJLEtBRUk7QUQwa0JaLGdCQzdrQkksUUFDSSxLQUVJO0VqQ3dQUixpQkFBQTs7QWdDa1ZKLGdCQ2poQkk7RWpDK0xBLG1CQUFBOztBZ0NrVkosZ0JDOWdCSTtFakM0TEEsbUJBQUE7O0FnQ2tWSixnQkMzZ0JJLFFBQVEsS0FBSztFakN5TGIsbUJBQUE7O0FnQ2tWSixnQkN4Z0JJLFFBQVEsS0FBSztFakNzTGIsbUJBQUE7O0FnQ3FkSjtFQ3p1QkkseUJBQUE7RUFDQSxpQkFBQTtFQUVBLGVBQUE7RWpDaVJBLFdBQUE7RUFBQSx5QkFBQTs7QWdDcWRKLGdCQ3B1Qkk7RUFDSSxnQkFBQTs7QURtdUJSLGdCQ2p1QkksUUFFSSxLQUNJO0FEOHRCWixnQkNodUJJLFFBQ0ksS0FDSTtBRDh0QlosZ0JDanVCSSxRQUVJLEtBRUk7QUQ2dEJaLGdCQ2h1QkksUUFDSSxLQUVJO0VBQ0ksbUJBQUE7O0FENHRCaEIsZ0JDeHRCSSxRQUFRLEtBQ0o7QUR1dEJSLGdCQ3h0QkksUUFBUSxLQUVKO0VBQ0ksc0JBQUE7O0FEcXRCWixnQkNsdEJJLFFBR0ksS0FDSTtBRDhzQlosZ0JDanRCSSxRQUVJLEtBQ0k7QUQ4c0JaLGdCQ2h0QkksUUFDSSxLQUNJO0FEOHNCWixnQkNsdEJJLFFBR0ksS0FFSTtBRDZzQlosZ0JDanRCSSxRQUVJLEtBRUk7QUQ2c0JaLGdCQ2h0QkksUUFDSSxLQUVJO0VqQ3dQUixpQkFBQTs7QWdDcWRKLGdCQ3ZtQkksUUFHSSxLQUNJO0FEbW1CWixnQkN0bUJJLFFBRUksS0FDSTtBRG1tQlosZ0JDcm1CSSxRQUNJLEtBQ0k7QURtbUJaLGdCQ3ZtQkksUUFHSSxLQUVJO0FEa21CWixnQkN0bUJJLFFBRUksS0FFSTtBRGttQlosZ0JDcm1CSSxRQUNJLEtBRUk7RWpDNklSLHlCQUFBOztBZ0N1a0JKO0VDMzFCSSx5QkFBQTtFQUNBLGlCQUFBO0VBRUEsZUFBQTtFakNpUkEsV0FBQTs7QWdDdWtCSixnQkN0MUJJO0VBQ0ksZ0JBQUE7O0FEcTFCUixnQkNuMUJJLFFBRUksS0FDSTtBRGcxQlosZ0JDbDFCSSxRQUNJLEtBQ0k7QURnMUJaLGdCQ24xQkksUUFFSSxLQUVJO0FEKzBCWixnQkNsMUJJLFFBQ0ksS0FFSTtFQUNJLG1CQUFBOztBRDgwQmhCLGdCQzEwQkksUUFBUSxLQUNKO0FEeTBCUixnQkMxMEJJLFFBQVEsS0FFSjtFQUNJLHNCQUFBOztBRHUwQlosZ0JDcDBCSSxRQUdJLEtBQ0k7QURnMEJaLGdCQ24wQkksUUFFSSxLQUNJO0FEZzBCWixnQkNsMEJJLFFBQ0ksS0FDSTtBRGcwQlosZ0JDcDBCSSxRQUdJLEtBRUk7QUQrekJaLGdCQ24wQkksUUFFSSxLQUVJO0FEK3pCWixnQkNsMEJJLFFBQ0ksS0FFSTtFakN3UFIsaUJBQUE7O0FnQ3VrQkosZ0JDdnNCSSxRQUdJLEtBQ0k7QURtc0JaLGdCQ3RzQkksUUFFSSxLQUNJO0FEbXNCWixnQkNyc0JJLFFBQ0ksS0FDSTtBRG1zQlosZ0JDdnNCSSxRQUdJLEtBRUk7QURrc0JaLGdCQ3RzQkksUUFFSSxLQUVJO0FEa3NCWixnQkNyc0JJLFFBQ0ksS0FFSTtFakMySFIsNkJBQUE7O0FnQ3VrQkosZ0JDN3JCSSxVQUFVLFFBR04sS0FBSSxZQUNBO0FEeXJCWixnQkM1ckJJLFdBQVcsUUFFUCxLQUFJLFlBQ0E7QUR5ckJaLGdCQzNyQkksUUFBTyxZQUNILEtBQUksWUFDQTtBRHlyQlosZ0JDN3JCSSxVQUFVLFFBR04sS0FBSSxZQUVBO0FEd3JCWixnQkM1ckJJLFdBQVcsUUFFUCxLQUFJLFlBRUE7QUR3ckJaLGdCQzNyQkksUUFBTyxZQUNILEtBQUksWUFFQTtFQUNJLGFBQUE7O0FEdXJCaEIsZ0JDbnJCSSxRQUFRO0VqQzRHUiw2QkFBQTs7QWdDdXBCSjtFQzM2QkkseUJBQUE7RUFDQSxpQkFBQTtFQUVBLGVBQUE7RWpDaVJBLFdBQUE7O0FnQ3VwQkosZ0JDdDZCSTtFQUNJLGdCQUFBOztBRHE2QlIsZ0JDbjZCSSxRQUVJLEtBQ0k7QURnNkJaLGdCQ2w2QkksUUFDSSxLQUNJO0FEZzZCWixnQkNuNkJJLFFBRUksS0FFSTtBRCs1QlosZ0JDbDZCSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUQ4NUJoQixnQkMxNUJJLFFBQVEsS0FDSjtBRHk1QlIsZ0JDMTVCSSxRQUFRLEtBRUo7RUFDSSxzQkFBQTs7QUR1NUJaLGdCQ3A1QkksUUFHSSxLQUNJO0FEZzVCWixnQkNuNUJJLFFBRUksS0FDSTtBRGc1QlosZ0JDbDVCSSxRQUNJLEtBQ0k7QURnNUJaLGdCQ3A1QkksUUFHSSxLQUVJO0FEKzRCWixnQkNuNUJJLFFBRUksS0FFSTtBRCs0QlosZ0JDbDVCSSxRQUNJLEtBRUk7RWpDd1BSLGlCQUFBOztBZ0N1cEJKLGdCQ3J1QkksUUFHSSxLQUNJO0FEaXVCWixnQkNwdUJJLFFBRUksS0FDSTtBRGl1QlosZ0JDbnVCSSxRQUNJLEtBQ0k7QURpdUJaLGdCQ3J1QkksUUFHSSxLQUVJO0FEZ3VCWixnQkNwdUJJLFFBRUksS0FFSTtBRGd1QlosZ0JDbnVCSSxRQUNJLEtBRUk7RWpDeUVSLDhCQUFBOztBaUN2RVksZ0JBUFosUUFHSSxLQUNJLEtBR0s7QUFBRCxnQkFOWixRQUVJLEtBQ0ksS0FHSztBQUFELGdCQUxaLFFBQ0ksS0FDSSxLQUdLO0FBQUQsZ0JBUFosUUFHSSxLQUVJLEtBRUs7QUFBRCxnQkFOWixRQUVJLEtBRUksS0FFSztBQUFELGdCQUxaLFFBQ0ksS0FFSSxLQUVLO0VBQ0csaUJBQUE7O0FENnlCcEI7RUMzL0JJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBO0VpQ3pEQSxZQUFBOztBRGd5QkosZ0JDdC9CSTtFQUNJLGdCQUFBOztBRHEvQlIsZ0JDbi9CSSxRQUVJLEtBQ0k7QURnL0JaLGdCQ2wvQkksUUFDSSxLQUNJO0FEZy9CWixnQkNuL0JJLFFBRUksS0FFSTtBRCsrQlosZ0JDbC9CSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUQ4K0JoQixnQkMxK0JJLFFBQVEsS0FDSjtBRHkrQlIsZ0JDMStCSSxRQUFRLEtBRUo7RUFDSSxzQkFBQTs7QUR1K0JaLGdCQ3ArQkksUUFHSSxLQUNJO0FEZytCWixnQkNuK0JJLFFBRUksS0FDSTtBRGcrQlosZ0JDbCtCSSxRQUNJLEtBQ0k7QURnK0JaLGdCQ3ArQkksUUFHSSxLQUVJO0FEKzlCWixnQkNuK0JJLFFBRUksS0FFSTtBRCs5QlosZ0JDbCtCSSxRQUNJLEtBRUk7RWpDd1BSLGlCQUFBOztBZ0N1dUJKLGdCQy94QkksUUFHSSxLQUNJO0FEMnhCWixnQkM5eEJJLFFBRUksS0FDSTtBRDJ4QlosZ0JDN3hCSSxRQUNJLEtBQ0k7QUQyeEJaLGdCQy94QkksUUFHSSxLQUVJO0FEMHhCWixnQkM5eEJJLFFBRUksS0FFSTtBRDB4QlosZ0JDN3hCSSxRQUNJLEtBRUk7RUFDSSxZQUFBOztBRHl4QmhCLGdCQ3J4QkksUUFDSSxLQUNJO0FEbXhCWixnQkNyeEJJLFFBQ0ksS0FFSTtFakMyQ1IsZ0NBQUE7O0FnQ3V6Qko7RUMza0NJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBO0VpQzlCQSxZQUFBOztBRHExQkosaUJDdGtDSTtFQUNJLGdCQUFBOztBRHFrQ1IsaUJDbmtDSSxRQUVJLEtBQ0k7QURna0NaLGlCQ2xrQ0ksUUFDSSxLQUNJO0FEZ2tDWixpQkNua0NJLFFBRUksS0FFSTtBRCtqQ1osaUJDbGtDSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUQ4akNoQixpQkMxakNJLFFBQVEsS0FDSjtBRHlqQ1IsaUJDMWpDSSxRQUFRLEtBRUo7RUFDSSxzQkFBQTs7QUR1akNaLGlCQ3BqQ0ksUUFHSSxLQUNJO0FEZ2pDWixpQkNuakNJLFFBRUksS0FDSTtBRGdqQ1osaUJDbGpDSSxRQUNJLEtBQ0k7QURnakNaLGlCQ3BqQ0ksUUFHSSxLQUVJO0FEK2lDWixpQkNuakNJLFFBRUksS0FFSTtBRCtpQ1osaUJDbGpDSSxRQUNJLEtBRUk7RWpDd1BSLGlCQUFBOztBZ0N1ekJKLGlCQ3AxQkksUUFHSSxLQUNJO0FEZzFCWixpQkNuMUJJLFFBRUksS0FDSTtBRGcxQlosaUJDbDFCSSxRQUNJLEtBQ0k7QURnMUJaLGlCQ3AxQkksUUFHSSxLQUVJO0FEKzBCWixpQkNuMUJJLFFBRUksS0FFSTtBRCswQlosaUJDbDFCSSxRQUNJLEtBRUk7RUFDSSxZQUFBOztBRDI1QmhCO0VDeHBDSSx5QkFBQTtFQUNBLGlCQUFBO0VBRUEsZUFBQTtFakNpUkEsV0FBQTs7QWdDbzRCSixpQkNucENJO0VBQ0ksZ0JBQUE7O0FEa3BDUixpQkNocENJLFFBRUksS0FDSTtBRDZvQ1osaUJDL29DSSxRQUNJLEtBQ0k7QUQ2b0NaLGlCQ2hwQ0ksUUFFSSxLQUVJO0FENG9DWixpQkMvb0NJLFFBQ0ksS0FFSTtFQUNJLG1CQUFBOztBRDJvQ2hCLGlCQ3ZvQ0ksUUFBUSxLQUNKO0FEc29DUixpQkN2b0NJLFFBQVEsS0FFSjtFQUNJLHNCQUFBOztBRG9vQ1osaUJDam9DSSxRQUdJLEtBQ0k7QUQ2bkNaLGlCQ2hvQ0ksUUFFSSxLQUNJO0FENm5DWixpQkMvbkNJLFFBQ0ksS0FDSTtBRDZuQ1osaUJDam9DSSxRQUdJLEtBRUk7QUQ0bkNaLGlCQ2hvQ0ksUUFFSSxLQUVJO0FENG5DWixpQkMvbkNJLFFBQ0ksS0FFSTtFakN3UFIsaUJBQUE7O0FnQ280QkosaUJDaDRCSSxRQUFRLEtBQUksVUFBVSxNQUNsQjtBRCszQlIsaUJDaDRCSSxRQUFRLEtBQUksVUFBVSxNQUVsQjtFakNOSixtQkFBQTtFQUFBLGNBQUE7O0FnQzYvQko7RUNqeENJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBOztBZ0M2L0JKLGlCQzV3Q0k7RUFDSSxnQkFBQTs7QUQyd0NSLGlCQ3p3Q0ksUUFFSSxLQUNJO0FEc3dDWixpQkN4d0NJLFFBQ0ksS0FDSTtBRHN3Q1osaUJDendDSSxRQUVJLEtBRUk7QURxd0NaLGlCQ3h3Q0ksUUFDSSxLQUVJO0VBQ0ksbUJBQUE7O0FEb3dDaEIsaUJDaHdDSSxRQUFRLEtBQ0o7QUQrdkNSLGlCQ2h3Q0ksUUFBUSxLQUVKO0VBQ0ksc0JBQUE7O0FENnZDWixpQkMxdkNJLFFBR0ksS0FDSTtBRHN2Q1osaUJDenZDSSxRQUVJLEtBQ0k7QURzdkNaLGlCQ3h2Q0ksUUFDSSxLQUNJO0FEc3ZDWixpQkMxdkNJLFFBR0ksS0FFSTtBRHF2Q1osaUJDenZDSSxRQUVJLEtBRUk7QURxdkNaLGlCQ3h2Q0ksUUFDSSxLQUVJO0VqQ3dQUixpQkFBQTs7QWdDNi9CSixpQkN0OEJJLFFBQVEsS0FBSSxVQUFVLE1BQU0sTUFDeEI7QURxOEJSLGlCQ3Q4QkksUUFBUSxLQUFJLFVBQVUsTUFBTSxNQUV4QjtFakN6REosbUJBQUE7O0FnQzYvQkosaUJDaDhCSSxRQUFRLEtBQUksVUFBVSxLQUFLLE1BQ3ZCO0FEKzdCUixpQkNoOEJJLFFBQVEsS0FBSSxVQUFVLEtBQUssTUFFdkI7RWpDL0RKLG1CQUFBOztBZ0NvbUNKO0VDeDNDSSx5QkFBQTtFQUNBLGlCQUFBO0VBRUEsZUFBQTtFakNpUkEsV0FBQTtFQUFBLHlCQUFBOztBZ0NvbUNKLGlCQ24zQ0k7RUFDSSxnQkFBQTs7QURrM0NSLGlCQ2gzQ0ksUUFFSSxLQUNJO0FENjJDWixpQkMvMkNJLFFBQ0ksS0FDSTtBRDYyQ1osaUJDaDNDSSxRQUVJLEtBRUk7QUQ0MkNaLGlCQy8yQ0ksUUFDSSxLQUVJO0VBQ0ksbUJBQUE7O0FEMjJDaEIsaUJDdjJDSSxRQUFRLEtBQ0o7QURzMkNSLGlCQ3YyQ0ksUUFBUSxLQUVKO0VBQ0ksc0JBQUE7O0FEbzJDWixpQkNqMkNJLFFBR0ksS0FDSTtBRDYxQ1osaUJDaDJDSSxRQUVJLEtBQ0k7QUQ2MUNaLGlCQy8xQ0ksUUFDSSxLQUNJO0FENjFDWixpQkNqMkNJLFFBR0ksS0FFSTtBRDQxQ1osaUJDaDJDSSxRQUVJLEtBRUk7QUQ0MUNaLGlCQy8xQ0ksUUFDSSxLQUVJO0VqQ3dQUixpQkFBQTs7QWdDb21DSixpQkN0dkNJLFFBR0ksS0FDSTtBRGt2Q1osaUJDcnZDSSxRQUVJLEtBQ0k7QURrdkNaLGlCQ3B2Q0ksUUFDSSxLQUNJO0FEa3ZDWixpQkN0dkNJLFFBR0ksS0FFSTtBRGl2Q1osaUJDcnZDSSxRQUVJLEtBRUk7QURpdkNaLGlCQ3B2Q0ksUUFDSSxLQUVJO0VqQzZJUix5QkFBQTs7QWdDb21DSixpQkMvbUNJLFFBQVEsS0FBSSxVQUFVLEtBQ2xCO0FEOG1DUixpQkMvbUNJLFFBQVEsS0FBSSxVQUFVLEtBRWxCO0VqQ1NKLG1CQUFBOztBZ0NvbUNKLGlCQzdpQ0ksUUFBUSxLQUFJLFVBQVUsTUFBTSxNQUN4QjtBRDRpQ1IsaUJDN2lDSSxRQUFRLEtBQUksVUFBVSxNQUFNLE1BRXhCO0VqQ3pESixtQkFBQTs7QWdDb21DSixpQkN2aUNJLFFBQVEsS0FBSSxVQUFVLEtBQUssTUFDdkI7QURzaUNSLGlCQ3ZpQ0ksUUFBUSxLQUFJLFVBQVUsS0FBSyxNQUV2QjtFakMvREosbUJBQUE7O0FnQ2luQ0osd0JBTitDO0VBQzNDO0lDdGlDQSxXQUFBO0lBRUEsa0JBQUE7SUFDQSxnQkFBQTtJQUNBLDRDQUFBO0lBQ0EsaUNBQUE7OztBRHVtQ0o7RUN0OENJLHlCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0VqQ2lSQSxXQUFBO0VBQUEseUJBQUE7O0FnQ2tyQ0osaUJDajhDSTtFQUNJLGdCQUFBOztBRGc4Q1IsaUJDOTdDSSxRQUVJLEtBQ0k7QUQyN0NaLGlCQzc3Q0ksUUFDSSxLQUNJO0FEMjdDWixpQkM5N0NJLFFBRUksS0FFSTtBRDA3Q1osaUJDNzdDSSxRQUNJLEtBRUk7RUFDSSxtQkFBQTs7QUR5N0NoQixpQkNyN0NJLFFBQVEsS0FDSjtBRG83Q1IsaUJDcjdDSSxRQUFRLEtBRUo7RUFDSSxzQkFBQTs7QURrN0NaLGlCQy82Q0ksUUFHSSxLQUNJO0FEMjZDWixpQkM5NkNJLFFBRUksS0FDSTtBRDI2Q1osaUJDNzZDSSxRQUNJLEtBQ0k7QUQyNkNaLGlCQy82Q0ksUUFHSSxLQUVJO0FEMDZDWixpQkM5NkNJLFFBRUksS0FFSTtBRDA2Q1osaUJDNzZDSSxRQUNJLEtBRUk7RWpDd1BSLGlCQUFBOztBZ0NrckNKLGlCQ3AwQ0ksUUFHSSxLQUNJO0FEZzBDWixpQkNuMENJLFFBRUksS0FDSTtBRGcwQ1osaUJDbDBDSSxRQUNJLEtBQ0k7QURnMENaLGlCQ3AwQ0ksUUFHSSxLQUVJO0FEK3pDWixpQkNuMENJLFFBRUksS0FFSTtBRCt6Q1osaUJDbDBDSSxRQUNJLEtBRUk7RWpDNklSLHlCQUFBOztBZ0NrckNKLGlCQzdyQ0ksUUFBUSxLQUFJLFVBQVUsS0FDbEI7QUQ0ckNSLGlCQzdyQ0ksUUFBUSxLQUFJLFVBQVUsS0FFbEI7RWpDU0osbUJBQUE7O0FnQ2tyQ0osaUJDM25DSSxRQUFRLEtBQUksVUFBVSxNQUFNLE1BQ3hCO0FEMG5DUixpQkMzbkNJLFFBQVEsS0FBSSxVQUFVLE1BQU0sTUFFeEI7RWpDekRKLG1CQUFBOztBZ0NrckNKLGlCQ3JuQ0ksUUFBUSxLQUFJLFVBQVUsS0FBSyxNQUN2QjtBRG9uQ1IsaUJDcm5DSSxRQUFRLEtBQUksVUFBVSxLQUFLLE1BRXZCO0VqQy9ESixtQkFBQTs7QWdDb3NDSix3QkFYK0M7RUFDM0M7SUNwL0JBLFlBQUE7SUFDQSxjQUFBO0lqQ3ZNQSxtQkFBQTs7RWdDMHJDQSxpQkNyc0NBLFFBQVEsS0FBSSxVQUFVLEtBQ2xCO0VEb3NDSixpQkNyc0NBLFFBQVEsS0FBSSxVQUFVLEtBRWxCO0lqQ1NKLG1CQUFBOztFZ0MwckNBLGlCQ25vQ0EsUUFBUSxLQUFJLFVBQVUsTUFBTSxNQUN4QjtFRGtvQ0osaUJDbm9DQSxRQUFRLEtBQUksVUFBVSxNQUFNLE1BRXhCO0lqQ3pESixtQkFBQTs7RWdDMHJDQSxpQkM3bkNBLFFBQVEsS0FBSSxVQUFVLEtBQUssTUFDdkI7RUQ0bkNKLGlCQzduQ0EsUUFBUSxLQUFJLFVBQVUsS0FBSyxNQUV2QjtJakMvREosbUJBQUE7O0VnQzByQ0EsaUJDai9CQSxRQUFRLEtBQUs7SUFDVCxhQUFBOztFRGcvQkosaUJDOStCQTtJQUNJLGNBQUE7O0VENitCSixpQkM5K0JBLFFBRUk7SUFDSSxjQUFBOztFRDIrQlIsaUJDOStCQSxRQUVJLEtBRUk7RUQwK0JSLGlCQzkrQkEsUUFFSSxLQUdJO0lBQ0ksbUJBQUE7SUFDQSxjQUFBO0lqQ25OWixjQUFBOztFaUNxTlksaUJBVFosUUFFSSxLQUVJLEdBS0s7RUFBRCxpQkFUWixRQUVJLEtBR0ksR0FJSztJQUNHLFNBQVMsY0FBYSxJQUF0QjtJQUNBLHFCQUFBO0lqQ3ZOaEIsbUJBQUE7SUFBQSxjQUFBO0lBQUEsZ0JBQUE7O0VnQzByQ0EsaUJDOStCQSxRQUVJLEtBcUJJO0lqQ25PUixtQkFBQTs7RWdDMHJDQSxpQkM1a0NBLFFBQVEsS0FBSztJQUNULHlCQUFBOzs7QUNwWVI7RUNrQkksa0JBQUE7O0FEbEJKLHVCQ3FCSTtFbkNnUUEsWUFBQTtFQUFBLG1CQUFBO0VBQUEsZ0JBQUE7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VtQ3hQSSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFbkNzUEosY0FBQTtFQUFBLGdCQUFBO0VBQUEseUJBQUE7RW1DbkZBLFNBQUE7RUFDQSxPQUFBO0VuQ2tGQSxlQUFBOztBbUN0T0ksdUJBMUJKLGlCQTBCSztBQUNELHVCQTNCSixpQkEyQks7RUFDRyx5QkFBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0Esa0JBQUE7O0FBR0osdUJBbkNKLGlCQW1DSztFQUNHLHlCQUFBO0VuQzROUixpQkFBQTs7QW1DeE5JLHVCQXhDSixpQkF3Q0s7RUFDRyx5QkFBQTtFbkN1TlIsaUJBQUE7O0FtQy9FQSx1QkFqTEEsaUJBaUxDO0FBQ0QsdUJBbExBLGlCQWtMQztFQUNHLFlBQUE7O0FBRUosdUJBckxBLGlCQXFMQztFbkMyRUQsNEJBQUE7RUFBQSxpQkFBQTtFQUFBLFVBQUE7O0FtQ3RFQSx1QkExTEEsaUJBMExDO0VuQ3NFRCw0QkFBQTtFQUFBLGlCQUFBO0VBQUEsVUFBQTs7QW1DeE1BLHVCQUFFO0VuQ3dNRixZQUFBOztBbUNwTUEsdUJBQUUsZ0JBQTJCLE1BQU87QUFDcEMsdUJBQUUsZ0JBQTJCLE1BQU87QUFDcEMsdUJBQUMsTUFBTztFQUNKLGNBQUE7O0FEakZSO0VDZUksa0JBQUE7O0FEZkoscUJDa0JJO0VuQ2dRQSxZQUFBO0VBQUEsbUJBQUE7RUFBQSxnQkFBQTtFQUFBLGdCQUFBO0VBQUEsa0JBQUE7RW1DeFBJLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VuQ3NQSixjQUFBO0VBQUEsZ0JBQUE7RUFBQSx5QkFBQTtFbUMvSUEsV0FBQTtFQUNBLE1BQUE7RW5DOElBLGlCQUFBOztBbUN0T0kscUJBMUJKLGlCQTBCSztBQUNELHFCQTNCSixpQkEyQks7RUFDRyx5QkFBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0Esa0JBQUE7O0FBR0oscUJBbkNKLGlCQW1DSztFQUNHLHlCQUFBO0VuQzROUixpQkFBQTs7QW1DeE5JLHFCQXhDSixpQkF3Q0s7RUFDRyx5QkFBQTtFbkN1TlIsaUJBQUE7O0FtQzNJQSxxQkFySEEsaUJBcUhDO0FBQ0QscUJBdEhBLGlCQXNIQztFQUNHLFVBQUE7O0FBRUoscUJBekhBLGlCQXlIQztFbkN1SUQsMEJBQUE7RUFBQSxnQkFBQTtFQUFBLFNBQUE7O0FtQ2pJQSxxQkEvSEEsaUJBK0hDO0VuQ2lJRCwwQkFBQTtFQUFBLGdCQUFBO0VBQUEsU0FBQTs7QW1DeE1BLHFCQUFFO0VuQ3dNRixZQUFBOztBbUNwTUEscUJBQUUsZ0JBQTJCLE1BQU87QUFDcEMscUJBQUUsZ0JBQTJCLE1BQU87QUFDcEMscUJBQUMsTUFBTztFQUNKLGNBQUE7O0FEOUVSO0VDWUksa0JBQUE7O0FEWkosc0JDZUk7RW5DZ1FBLFlBQUE7RUFBQSxtQkFBQTtFQUFBLGdCQUFBO0VBQUEsZ0JBQUE7RUFBQSxrQkFBQTtFbUN4UEksYUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RW5Dc1BKLGNBQUE7RUFBQSxnQkFBQTtFQUFBLHlCQUFBO0VtQ2pIQSxVQUFBO0VBQ0EsTUFBQTtFbkNnSEEsZ0JBQUE7O0FtQ3RPSSxzQkExQkosaUJBMEJLO0FBQ0Qsc0JBM0JKLGlCQTJCSztFQUNHLHlCQUFBO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxrQkFBQTs7QUFHSixzQkFuQ0osaUJBbUNLO0VBQ0cseUJBQUE7RW5DNE5SLGlCQUFBOztBbUN4Tkksc0JBeENKLGlCQXdDSztFQUNHLHlCQUFBO0VuQ3VOUixpQkFBQTs7QW1DN0dBLHNCQW5KQSxpQkFtSkM7QUFDRCxzQkFwSkEsaUJBb0pDO0VBQ0csV0FBQTs7QUFFSixzQkF2SkEsaUJBdUpDO0VuQ3lHRCwyQkFBQTtFQUFBLGdCQUFBO0VBQUEsU0FBQTs7QW1DbkdBLHNCQTdKQSxpQkE2SkM7RW5DbUdELDJCQUFBO0VBQUEsZ0JBQUE7RUFBQSxTQUFBOztBbUN4TUEsc0JBQUU7RW5Dd01GLFlBQUE7O0FtQ3BNQSxzQkFBRSxnQkFBMkIsTUFBTztBQUNwQyxzQkFBRSxnQkFBMkIsTUFBTztBQUNwQyxzQkFBQyxNQUFPO0VBQ0osY0FBQTs7QUQzRVI7RUNTSSxrQkFBQTs7QURUSixvQkNZSTtFbkNnUUEsWUFBQTtFQUFBLG1CQUFBO0VBQUEsZ0JBQUE7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VtQ3hQSSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFbkNzUEosY0FBQTtFQUFBLGdCQUFBO0VBQUEseUJBQUE7RW1DN0tBLFlBQUE7RUFDQSxPQUFBO0VuQzRLQSxrQkFBQTs7QW1DdE9JLG9CQTFCSixpQkEwQks7QUFDRCxvQkEzQkosaUJBMkJLO0VBQ0cseUJBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLGtCQUFBOztBQUdKLG9CQW5DSixpQkFtQ0s7RUFDRyx5QkFBQTtFbkM0TlIsaUJBQUE7O0FtQ3hOSSxvQkF4Q0osaUJBd0NLO0VBQ0cseUJBQUE7RW5DdU5SLGlCQUFBOztBbUN6S0Esb0JBdkZBLGlCQXVGQztBQUNELG9CQXhGQSxpQkF3RkM7RUFDRyxTQUFBOztBQUVKLG9CQTNGQSxpQkEyRkM7RW5DcUtELHlCQUFBO0VBQUEsaUJBQUE7RUFBQSxVQUFBOztBbUMvSkEsb0JBakdBLGlCQWlHQztFbkMrSkQseUJBQUE7RUFBQSxpQkFBQTtFQUFBLFVBQUE7O0FtQ3hNQSxvQkFBRTtFbkN3TUYsWUFBQTs7QW1DcE1BLG9CQUFFLGdCQUEyQixNQUFPO0FBQ3BDLG9CQUFFLGdCQUEyQixNQUFPO0FBQ3BDLG9CQUFDLE1BQU87RUFDSixjQUFBOztBOUIyRUo7RUxzSEEsZ0JBQUE7RUtwSEksOEJBQUE7RUFDSSwwQkFBQTtFQUNJLHNCQUFBOztBQUVaO0VBNUlBLGlCQUFBO0VMNFBBLGNBQUE7RUFBQSxhTzlRc0IsOENQOFF0QjtFQUFBLGdCQUFBO0VBQUEsa0JBQUE7RUFBQSx1QkFBQTs7QUs1R0E7RUFHUSxnQkFBQTtFQUlBLG1CQUFBOztBQUtSLElBQUk7RUFDQSxZQUFBO0VMK0ZKLGlDQUFBOztBSzNGQTtBQUNBO0VMMEZBLGdCQUFBOztBS3RGQTtBQUNBO0VMcUZBLGtCQUFBOztBS2pGQTtFTGlGQSxtQkFBQTtFQUFBLGNBQUE7O0FLNUVBO0FBQ0E7RUwyRUEsZUFBQTs7QUt2RUE7RUx1RUEsZ0JBQUE7RUFBQSxtQkFBQTtFS3BFSSxTQUFBO0VMb0VKLDZCQUFBOztBS2hFQTtBQUNBO0VMK0RBLHVCQUFBO0VLN0RJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBOztBQUVKO0VBQ0ksV0FBQTs7QUFFSjtFQUNJLGVBQUE7O0FBR0o7RUxrREEsa0JBQUE7O0FLeENBO0VBcE5BLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksZ0JBQUE7RUFJQSxtQkFBQTs7QUEyRko7RUF4TkEsaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxrQkFBQTtFQUlBLG1CQUFBOztBQStGSjtFQTVOQSxpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGtCQUFBO0VBSUEsbUJBQUE7O0FBbUdKO0VBaE9BLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksZ0JBQUE7RUFJQSxtQkFBQTs7QUF1R0o7RUFwT0EsaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxnQkFBQTtFQUlBLG1CQUFBOztBQTJHSjtFQXhPQSxlQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksZ0JBQUE7RUFJQSxtQkFBQTs7QUErR0osRUFDSTtBQURBLEVBQ0E7QUFESSxFQUNKO0FBRFEsRUFDUjtBQURZLEVBQ1o7QUFEZ0IsRUFDaEI7QUFESixFQUVJO0FBRkEsRUFFQTtBQUZJLEVBRUo7QUFGUSxFQUVSO0FBRlksRUFFWjtBQUZnQixFQUVoQjtFQTFPSix1QkFBQTtFTHdQQSxjQUFBO0VBQUEsYU85UXNCLDhDUDhRdEI7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VBQUEsY0FBQTs7QUtDQTtBQUNBO0VMRkEsY0FBQTtFQUFBLHFCQUFBOztBS3BLQSxDQUFDO0FBQUQsTUFBQztFTG9LRCxjQUFBO0VBQUEscUJBQUE7O0FLaEtBLENBQUM7QUFBRCxNQUFDO0VMZ0tELGNBQUE7RUFBQSwwQkFBQTs7QUs1SkEsQ0FBQztBQUFELE1BQUM7RUw0SkQsY0FBQTtFQUFBLDBCQUFBOztBS1lBO0FBQ0E7RUFHUSxnQkFBQTtFQUlBLHFCQUFBOztBQVJSLEVBV0k7QUFWSixFQVVJO0VBR1EsZ0JBQUE7RUFJQSxtQkFBQTs7QUFsQlosRUFxQkk7QUFwQkosRUFvQkk7QUFyQkosRUFzQkk7QUFyQkosRUFxQkk7RUFDSSxnQkFBQTs7QUFJUjtFTHZDQSxhQUFBO0VBQUEsbUJBQUE7O0FLMkNBO0VMM0NBLGdCQUFBO0VBQUEsYUFBQTtFQUFBLGtCQUFBOztBS2dEQTtFTGhEQSxhQUFBO0VBQUEsbUJBQUE7RUttREksY0FBQTs7QUFTSjtBQUNBO0FBQ0E7QUFDQTtFTC9EQSxzQ081UThDLHdCUDRROUM7O0FLb0VBO0VMcEVBLG1CQUFBO0VBQUEsY0FBQTtFSzVQQSxpQkFBQTtFTDRQQSxnQkFBQTtFS3lFSSxtQkFBQTs7QUFJSjtFTDdFQSxtQkFBQTtFQUFBLGNBQUE7RUs1UEEsaUJBQUE7RUw0UEEsZ0JBQUE7O0FLcUZBO0VMckZBLG1CQUFBO0VBQUEseUJBQUE7RUFBQSxjQUFBO0VLeUZJLGNBQUE7RUFyVkosaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSx1QkFBQTtFQUFBLGFBQUE7RUs4RkkscUJBQUE7RUFDQSxxQkFBQTs7QUFWSixHQVdJO0VBQ0ksVUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQkFBQTs7QUFVUjtFTGhIQSw0QkFBQTtFQUFBLHFCQUFBO0VBQUEsVUFBQTtFSzVQQSxpQkFBQTtFTDRQQSxjQUFBO0VBQUEsYU85UXNCLDhDUDhRdEI7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VBQUEsdUJBQUE7O0FLNEhRLFVBSEosRUFHSztBQUFELFVBRkosR0FFSztBQUFELFVBREosR0FDSztFQUNHLGdCQUFBOztBQWJaLFVBaUJJO0FBakJKLFVBa0JJO0FBbEJKLFVBbUJJO0VMbklKLGNBQUE7RUtxSVEsY0FBQTtFQWpZUixlQUFBO0VMNFBBLHVCQUFBOztBS3dJUSxVQVBKLE9BT0s7QUFBRCxVQU5KLE1BTUs7QUFBRCxVQUxKLE9BS0s7RUx4SVQsU08xRXlCLGFQMEV6Qjs7QUtnSEEsVUE2Qkk7RUw3SUosa0JBQUE7O0FLbUpBLFVBQVU7QUFDVixVQUFVO0VBQ04sU0FBUyxFQUFUOztBQUdKO0VBQ0ksWUFBQTs7QUFFSixDQUFDO0FBQ0QsQ0FBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGFBQUE7O0FBSUo7RUxsS0Esa0JBQUE7O0FvQzZtQko7RS9CLzFCSSxpQkFBQTs7QStCNjJCSjtFL0JyMkJJLHFCQUFBO0VBQ0Esc0JBQUE7RUFvQkEscUJBQUE7RUFDQSxxQkFBQTtFQUNHLGtCQUFBO0VBQ0MsaUJBQUE7RUFDSSxhQUFBO0UrQjgwQlIsZ0JBQUE7RUFDQSxZQUFBOztBQXVDSjtFL0J6NEJJLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFK0J5NEJBLGdCQUFBO0VBQ0EsWUFBQTs7QUFhSjtFL0JuNUJJLDZCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBOztBK0J3NkJKO0UvQm42QkkscUJBQUE7RUFDQSxxQkFBQTtFQUNHLGtCQUFBO0VBQ0MsaUJBQUE7RUFDSSxhQUFBOztBK0JtNkJaO0UvQnY2QkkscUJBQUE7RUFDQSxxQkFBQTtFQUNHLGtCQUFBO0VBQ0MsaUJBQUE7RUFDSSxhQUFBOztBK0JpN0JaO0VwQ2h1QkksY0FBQTtFQUFBLHNDTzVROEMsd0JQNFE5QztFQUFBLGdCQUFBO0VBQUEsa0JBQUE7RUFBQSxnQkFBQTs7QW9DeXlCSjtFcEN6eUJJLFNBQUE7RUFBQSxVQUFBO0VLM0xBLHFCQUFBOztBK0JxaENKO0VwQzExQkksU0FBQTtFQUFBLFVBQUE7RUszTEEscUJBQUE7O0ErQnFoQ0osb0IvQmhoQ0k7RUFDSSxxQkFBQTtFQUNBLG1CQUFBOztBK0I2aENSO0VwQ3oyQkksY0FBQTtFQUFBLHFCQUFBOztBS3BLQSxxQkFBQztFTG9LRCxjQUFBO0VBQUEscUJBQUE7O0FLaEtBLHFCQUFDO0VMZ0tELGNBQUE7RUFBQSwwQkFBQTs7QUs1SkEscUJBQUM7RUw0SkQsY0FBQTtFQUFBLDBCQUFBOztBb0M2MkJKO0VwQzcyQkksY0FBQTtFQUFBLHFCQUFBOztBS3BLQSxhQUFDO0VMb0tELGNBQUE7RUFBQSxxQkFBQTs7QUtoS0EsYUFBQztFTGdLRCxjQUFBO0VBQUEscUJBQUE7O0FLNUpBLGFBQUM7RUw0SkQsY0FBQTtFQUFBLDBCQUFBOztBb0NzN0JKO0UvQmxyQ0ksaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxnQkFBQTtFQUlBLG1CQUFBOztBK0J3akNSO0UvQnJyQ0ksaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxrQkFBQTtFQUlBLG1CQUFBOztBQVNKO0VMc0hBLGdCQUFBO0VLcEhJLDhCQUFBO0VBQ0ksMEJBQUE7RUFDSSxzQkFBQTs7QUFFWjtFQTVJQSxpQkFBQTtFTDRQQSxjQUFBO0VBQUEsYU85UXNCLDhDUDhRdEI7RUFBQSxnQkFBQTtFQUFBLGtCQUFBO0VBQUEsdUJBQUE7O0FLNUdBO0VBR1EsZ0JBQUE7RUFJQSxtQkFBQTs7QUFLUixJQUFJO0VBQ0EsWUFBQTtFTCtGSixpQ0FBQTs7QUszRkE7QUFDQTtFTDBGQSxnQkFBQTs7QUt0RkE7QUFDQTtFTHFGQSxrQkFBQTs7QUtqRkE7RUxpRkEsbUJBQUE7RUFBQSxjQUFBOztBSzVFQTtBQUNBO0VMMkVBLGVBQUE7O0FLdkVBO0VMdUVBLGdCQUFBO0VBQUEsbUJBQUE7RUtwRUksU0FBQTtFTG9FSiw2QkFBQTs7QUtoRUE7QUFDQTtFTCtEQSx1QkFBQTtFSzdESSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTs7QUFFSjtFQUNJLFdBQUE7O0FBRUo7RUFDSSxlQUFBOztBQUdKO0VMa0RBLGtCQUFBOztBS3hDQTtFQXBOQSxpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGdCQUFBO0VBSUEsbUJBQUE7O0FBMkZKO0VBeE5BLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksa0JBQUE7RUFJQSxtQkFBQTs7QUErRko7RUE1TkEsaUJBQUE7RUw0UEEsZ0JBQUE7RUFBQSxnQkFBQTtFS25JSSxrQkFBQTtFQUlBLG1CQUFBOztBQW1HSjtFQWhPQSxpQkFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGdCQUFBO0VBSUEsbUJBQUE7O0FBdUdKO0VBcE9BLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsZ0JBQUE7RUtuSUksZ0JBQUE7RUFJQSxtQkFBQTs7QUEyR0o7RUF4T0EsZUFBQTtFTDRQQSxnQkFBQTtFQUFBLGdCQUFBO0VLbklJLGdCQUFBO0VBSUEsbUJBQUE7O0FBK0dKLEVBQ0k7QUFEQSxFQUNBO0FBREksRUFDSjtBQURRLEVBQ1I7QUFEWSxFQUNaO0FBRGdCLEVBQ2hCO0FBREosRUFFSTtBQUZBLEVBRUE7QUFGSSxFQUVKO0FBRlEsRUFFUjtBQUZZLEVBRVo7QUFGZ0IsRUFFaEI7RUExT0osdUJBQUE7RUx3UEEsY0FBQTtFQUFBLGFPOVFzQiw4Q1A4UXRCO0VBQUEsZ0JBQUE7RUFBQSxrQkFBQTtFQUFBLGNBQUE7O0FLQ0E7QUFDQTtFTEZBLGNBQUE7RUFBQSxxQkFBQTs7QUtwS0EsQ0FBQztBQUFELE1BQUM7RUxvS0QsY0FBQTtFQUFBLHFCQUFBOztBS2hLQSxDQUFDO0FBQUQsTUFBQztFTGdLRCxjQUFBO0VBQUEsMEJBQUE7O0FLNUpBLENBQUM7QUFBRCxNQUFDO0VMNEpELGNBQUE7RUFBQSwwQkFBQTs7QUtZQTtBQUNBO0VBR1EsZ0JBQUE7RUFJQSxxQkFBQTs7QUFSUixFQVdJO0FBVkosRUFVSTtFQUdRLGdCQUFBO0VBSUEsbUJBQUE7O0FBbEJaLEVBcUJJO0FBcEJKLEVBb0JJO0FBckJKLEVBc0JJO0FBckJKLEVBcUJJO0VBQ0ksZ0JBQUE7O0FBSVI7RUx2Q0EsYUFBQTtFQUFBLG1CQUFBOztBSzJDQTtFTDNDQSxnQkFBQTtFQUFBLGFBQUE7RUFBQSxrQkFBQTs7QUtnREE7RUxoREEsYUFBQTtFQUFBLG1CQUFBO0VLbURJLGNBQUE7O0FBU0o7QUFDQTtBQUNBO0FBQ0E7RUwvREEsc0NPNVE4Qyx3QlA0UTlDOztBS29FQTtFTHBFQSxtQkFBQTtFQUFBLGNBQUE7RUs1UEEsaUJBQUE7RUw0UEEsZ0JBQUE7RUt5RUksbUJBQUE7O0FBSUo7RUw3RUEsbUJBQUE7RUFBQSxjQUFBO0VLNVBBLGlCQUFBO0VMNFBBLGdCQUFBOztBS3FGQTtFTHJGQSxtQkFBQTtFQUFBLHlCQUFBO0VBQUEsY0FBQTtFS3lGSSxjQUFBO0VBclZKLGlCQUFBO0VMNFBBLGdCQUFBO0VBQUEsdUJBQUE7RUFBQSxhQUFBO0VLOEZJLHFCQUFBO0VBQ0EscUJBQUE7O0FBVkosR0FXSTtFQUNJLFVBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxxQkFBQTtFQUNBLDZCQUFBO0VBQ0EsZ0JBQUE7O0FBVVI7RUxoSEEsNEJBQUE7RUFBQSxxQkFBQTtFQUFBLFVBQUE7RUs1UEEsaUJBQUE7RUw0UEEsY0FBQTtFQUFBLGFPOVFzQiw4Q1A4UXRCO0VBQUEsZ0JBQUE7RUFBQSxrQkFBQTtFQUFBLHVCQUFBOztBSzRIUSxVQUhKLEVBR0s7QUFBRCxVQUZKLEdBRUs7QUFBRCxVQURKLEdBQ0s7RUFDRyxnQkFBQTs7QUFiWixVQWlCSTtBQWpCSixVQWtCSTtBQWxCSixVQW1CSTtFTG5JSixjQUFBO0VLcUlRLGNBQUE7RUFqWVIsZUFBQTtFTDRQQSx1QkFBQTs7QUt3SVEsVUFQSixPQU9LO0FBQUQsVUFOSixNQU1LO0FBQUQsVUFMSixPQUtLO0VMeElULFNPMUV5QixhUDBFekI7O0FLZ0hBLFVBNkJJO0VMN0lKLGtCQUFBOztBS21KQSxVQUFVO0FBQ1YsVUFBVTtFQUNOLFNBQVMsRUFBVDs7QUFHSjtFQUNJLFlBQUE7O0FBRUosQ0FBQztBQUNELENBQUM7RUFDRyxTQUFTLEVBQVQ7RUFDQSxhQUFBOztBQUlKO0VMbEtBLGtCQUFBOztBcUMzUko7RUFDSSxzQkFBQTs7QUFHSjtFQUVJLHNCQUFBOztBckNtQ0EsNkJBQUM7QUFDRCw2QkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosNkJBQUM7RUFDRyxXQUFBOztBcUN0Q1Isc0JBQXNCO0VBQ2xCLFdBQUE7O0FBRUosc0JBQXNCO0VBQ2xCLFlBQUE7O0FBZ0NKO0VyQ2pDSSxTQUFBO0VBQ0Esa0JBQUE7O0FxQ3FESjtFckNqREksU0FBQTtFQUNBLE1BQU0sZ0JBQU47RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTs7QXFDK0RKO0VBQ0ksbUJBQUE7RUFDQSxZQUFBO0VyQ3hFQSxTQUFBO0VBQ0EsTUFBTSxnQkFBTjtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBOztBcUNxRUo7RXJDakVJLFVBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBOztBcUNpRko7RXJDeUtJLGFBQUE7RUFBQSxtQkFBQTs7QXFDM0dKO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VyQytDQSxtQkFBbUIsYUFBbkI7RUFDSSxlQUFlLGFBQWY7RUFDSSxXQUFXLGFBQVg7O0FBOElSLG9CQUFDO0VBQ0csY0FBQTtFQUNBLGlCQUFBOztBQUVKLG9CQUFDO0VBQ0csY0FBQTtFQUNBLGlCQUFBOztBQUVKLG9CQUFDO0VBQ0csY0FBQTtFQUNBLGlCQUFBOztBQUVKLG9CQUFDO0VBQ0csY0FBQTtFQUNBLGlCQUFBOztBcUNsSVI7RXJDdkhRLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0Isc0RBQWxCO0VBQ0Esa0JBQWtCLG9EQUFsQjtFQUNBLGtIQUFBOztBcUM0SFI7RXJDOUxRLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxrQkFBa0IsOEJBQThCLHdCQUEyQyx5QkFBM0Y7RUFDQSxrQkFBa0IsbURBQWxCO0VBQ0Esa0hBQUE7O0FxQ21NUjtFQUNJLGdCQUFBO0VBQ0EsYUFBQTs7QUFHSjtFckM5TFEsd0NBQUE7RUFDQSwyQkFBQTtFQUNBLGtCQUFrQiw4QkFBOEIsdUNBQTJDLHlCQUEzRjtFQUNBLGtCQUFrQixrRUFBbEI7RUFDQSxpSUFBQTs7QXNDckVSO0VBQ0ksYUFBQTtFQUNBLHNCQUFBIn0= */
\ No newline at end of file
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL191dGlsaXRpZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9icmVhZGNydW1icy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2JyZWFkY3J1bWJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2ljb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX3R5cG9ncmFwaHkubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9pY29ucy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2J1dHRvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19idXR0b25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZm9ybXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19mb3Jtcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19sb2FkZXJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9tZXNzYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX21lc3NhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZ3JpZHMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9wYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3BhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmVzcG9uc2l2ZS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3NlY3Rpb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fc2VjdGlvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL190YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90b29sdGlwcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3Rvb2x0aXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3V0aWxpdGllcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2RvY3MubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpREksZ0JBQUM7QUFDRCxnQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosZ0JBQUM7RUFDRyxXQUFBOztBQ25CUixnQkMyQ0k7RUFDSSxXQUFBOztBRDVDUixnQkM4Q0k7RUFDSSxZQUFBOztBRC9DUixnQkNWSTtBRFVKLGdCQ1RJO0VBQ0ks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 */
\ No newline at end of file
diff --git a/lib/web/css/source/lib/_resets.less b/lib/web/css/source/lib/_resets.less
index 7b829bde563666763ee78eaafe0c1e92dfcb6b19..30259fea3e72ce09b8c2eb8e27aa4727dae5c0e5 100644
--- a/lib/web/css/source/lib/_resets.less
+++ b/lib/web/css/source/lib/_resets.less
@@ -148,7 +148,6 @@
         display: none;
         height: 0;
     }
-    [hidden],
     template {
         display: none;
     }
diff --git a/lib/web/css/source/lib/_utilities.less b/lib/web/css/source/lib/_utilities.less
index 6e5f02060d93bc76157814df21164b6eca3d0732..fe49f1b1cbaf9eb97148dd655ce000b4ce7ecccd 100644
--- a/lib/web/css/source/lib/_utilities.less
+++ b/lib/web/css/source/lib/_utilities.less
@@ -466,3 +466,41 @@
     -moz-appearance: @value;
     appearance: @value;
 }
+
+//
+//  Pointer for popups or dropdowns
+//  ---------------------------------------------
+.pointer(
+    @_size: 6px,
+    @_background-color: @color-white,
+    @_border-color: @color-gray-light3,
+    @_position__vertical: top,
+    @_position__horizontal: left,
+    @_position__vertical__value: -12px,
+    @_position__horizontal__value: @indent__s,
+    @_z-index: 99
+) {
+    &:before,
+    &:after {
+        content: '';
+        position: absolute;
+        display: block;
+        width: 0;
+        height: 0;
+        border-bottom-style: solid;
+    }
+    &:before {
+        .css(@_position__vertical, @_position__vertical__value);
+        .css(@_position__horizontal, @_position__horizontal__value);
+        .css(z-index, @_z-index);
+        .css(border, solid @_size - 1);
+        .css(border-color, transparent transparent @_background-color transparent);
+    }
+    &:after {
+        .css(@_position__vertical, @_position__vertical__value - 2);
+        .css(@_position__horizontal, @_position__horizontal__value - 1);
+        .css(z-index, @_z-index - 1);
+        .css(border, solid @_size);
+        .css(border-color, transparent transparent @_border-color transparent);
+    }
+}
diff --git a/lib/web/css/source/lib/variables/_colors.less b/lib/web/css/source/lib/variables/_colors.less
index 3eb252c1fe1edf5eafc00ef8c4b96bda70701193..603a465151215b6ad4b766484de0edba7c25479f 100644
--- a/lib/web/css/source/lib/variables/_colors.less
+++ b/lib/web/css/source/lib/variables/_colors.less
@@ -33,6 +33,7 @@
 @color-gray94: #f0f0f0;
 @color-gray95: #f2f2f2;
 @color-white-smoke: #f5f5f5;
+@color-white-fog: #f8f8f8;
 
 @color-gray-light0: #f6f6f6;
 @color-gray-light01: #f4f4f4;
diff --git a/lib/web/css/source/lib/variables/_popups.less b/lib/web/css/source/lib/variables/_popups.less
index 36e76675063a16106e446b0f99a0007ad4d045e1..bd574bd093003036538169eb3fbfd7a9afac9c5f 100644
--- a/lib/web/css/source/lib/variables/_popups.less
+++ b/lib/web/css/source/lib/variables/_popups.less
@@ -11,7 +11,8 @@
 @popup__height: auto;
 @popup__padding: 22px;
 @popup__background: @color-white;
-@popup__border: 1px solid @color-gray-light3;
+@popup__border-color: @color-gray-light3;
+@popup__border: 1px solid @popup__border-color;
 @popup__shadow: 0 3px 3px rgba(0,0,0,.15);
 @popup__fade: opacity .3s linear;
 @popup__z-index: 1001;
diff --git a/lib/web/css/source/lib/variables/_typography.less b/lib/web/css/source/lib/variables/_typography.less
index 571cd32b2d646f3aa2d5c3a98777f9f6181a96f6..e242528a495d694d801757e9273d050eb53004ed 100644
--- a/lib/web/css/source/lib/variables/_typography.less
+++ b/lib/web/css/source/lib/variables/_typography.less
@@ -39,6 +39,7 @@
 //  Weights
 @font-weight__light: 300;
 @font-weight__regular: 400;
+@font-weight__heavier: 500;
 @font-weight__semibold: 600;
 @font-weight__bold: 700;
 
diff --git a/lib/web/fonts/MUI-Icons/MUI-Icons.woff2 b/lib/web/fonts/MUI-Icons/MUI-Icons.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..3a23a75808446bacaf4afc866f9895a122ba7c48
Binary files /dev/null and b/lib/web/fonts/MUI-Icons/MUI-Icons.woff2 differ
diff --git a/lib/web/images/logo-admin.svg b/lib/web/images/logo-admin.svg
deleted file mode 100644
index 804295191f43777d70a18cf384d14c4644198764..0000000000000000000000000000000000000000
--- a/lib/web/images/logo-admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="62.93" height="41.536" viewBox="0 0 62.93 41.536"><path fill="#ef672f" d="M7.78 0L0 4.713v8.957l2.02 1.19V5.9l5.76-3.5 5.767 3.497.023.014-.002 8.94 2-1.176v-8.96L7.778 0zm1.03 5.514v10.472l-1.03.63-1.03-.633V5.523l-2.67 1.64v8.957l3.7 2.263 3.73-2.278V7.16l-2.7-1.646z"/><path fill="#fff" d="M27.45 13.332l-.538-6.85-2.72 6.887h-.886l-2.72-6.89-.523 6.85h-1.098l.686-8.61h1.45l2.688 7.063L26.47 4.72h1.43l.675 8.607H27.45zm5.86 0l-.124-.8c-.473.487-1.12.925-2.095.925-1.07 0-1.74-.65-1.74-1.66 0-1.483 1.27-2.07 3.755-2.333v-.25c0-.75-.45-1.01-1.135-1.01-.725 0-1.41.224-2.06.51l-.15-.96c.71-.287 1.385-.498 2.31-.498 1.444 0 2.145.586 2.145 1.908v4.167h-.9v.007zm-.21-3.02c-2.196.212-2.658.81-2.658 1.422 0 .486.325.8.888.8.647 0 1.27-.325 1.77-.837v-1.385zm7.482-3.018l.162.997-1.136.118c.162.275.238.587.238.923 0 1.27-1.074 2.046-2.283 2.046-.15 0-.3-.014-.45-.037-.174.11-.298.25-.298.36 0 .21.21.262 1.26.45l.425.074c1.26.226 2.045.625 2.045 1.548 0 1.25-1.36 1.836-2.906 1.836s-2.787-.485-2.787-1.533c0-.61.425-1.085 1.26-1.534-.262-.19-.372-.4-.372-.623 0-.287.225-.574.624-.812-.662-.323-1.11-.96-1.11-1.77 0-1.285 1.072-2.07 2.28-2.07.6 0 1.124.174 1.536.5l1.507-.463zm-4.664 6.685c0 .47.61.82 1.77.82 1.162 0 1.812-.4 1.812-.9 0-.36-.275-.61-1.123-.76l-.71-.126c-.325-.064-.5-.1-.737-.15-.7.348-1.012.698-1.012 1.11zm1.62-5.918c-.747 0-1.208.574-1.208 1.297 0 .686.473 1.222 1.21 1.222.76 0 1.232-.56 1.232-1.272s-.497-1.245-1.233-1.245zm8.332 2.408h-4.04c.037 1.386.696 2.034 1.732 2.034.86 0 1.484-.336 2.134-.848l.16.996c-.635.497-1.395.797-2.38.797-1.548 0-2.758-.938-2.758-3.12 0-1.91 1.122-3.08 2.62-3.08 1.73 0 2.53 1.333 2.53 2.98.003.064.003.164.003.24zm-2.543-2.34c-.687 0-1.27.486-1.446 1.508h2.87c-.134-.96-.56-1.51-1.42-1.51zm7.223 5.202V9.277c0-.61-.263-1.023-.91-1.023-.588 0-1.187.387-1.724.96v4.118h-1.11v-5.95h.886l.14.86c.56-.51 1.26-.985 2.106-.985 1.122 0 1.723.673 1.723 1.746v4.33h-1.11zm4.388.098c-1.048 0-1.732-.374-1.732-1.57V8.315h-.898V7.38h.898V5.4l1.086-.162V7.38h1.283l.15.937H54.29v3.343c0 .486.198.785.82.785.2 0 .375-.012.514-.037l.148.947c-.185.038-.446.076-.834.076zm3.682.027c-1.586 0-2.733-1.136-2.733-3.095 0-1.958 1.147-3.105 2.732-3.105 1.59 0 2.762 1.147 2.762 3.105 0 1.96-1.172 3.095-2.768 3.095zm0-5.266c-1.074 0-1.61.93-1.61 2.17 0 1.23.56 2.178 1.61 2.178 1.097 0 1.645-.925 1.645-2.172 0-1.22-.574-2.17-1.646-2.17zm3.554.086c-.446 0-.756-.31-.756-.773 0-.46.315-.777.756-.777.446 0 .756.313.756.776 0 .458-.317.77-.756.77zm0-1.46c-.36 0-.646.247-.646.687 0 .436.287.68.646.68.363 0 .65-.245.65-.68 0-.44-.29-.688-.65-.688zm.222 1.1l-.256-.367h-.084v.35h-.146v-.857h.26c.18 0 .3.09.3.25 0 .123-.066.203-.173.236l.246.35-.147.03zm-.226-.736h-.113v.252h.107c.096 0 .155-.04.155-.13 0-.08-.057-.124-.15-.124z"/><path fill="#676056" d="M7.78 21.22L0 25.93v8.957l2.02 1.188V27.12l5.76-3.5 5.767 3.496.023.015-.002 8.94 2-1.176v-8.96l-7.79-4.712zm1.03 5.514v10.472l-1.03.63-1.03-.633v-10.46l-2.668 1.643v8.955L7.78 39.61l3.73-2.278v-8.95l-2.7-1.646z"/></svg>
\ No newline at end of file
diff --git a/lib/web/images/magento-logo.svg b/lib/web/images/magento-logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6dcc79d33b2942ba0c43f622a9ea0826e131396f
--- /dev/null
+++ b/lib/web/images/magento-logo.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1 Tiny//EN'  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd'>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="214px" xml:space="preserve" height="62px" viewBox="0 0 214 62" baseProfile="tiny" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink">
+	<path d="m93.166 44.96l-1.809-23.096-9.17 23.221h-2.988l-9.17-23.221-1.767 23.096h-3.702l2.314-29.026h4.88l9.045 23.809 9.045-23.809h4.836l2.271 29.026h-3.785z" fill="#131108"/>
+	<path d="m112.94 44.96l-0.421-2.692c-1.597 1.639-3.785 3.112-7.066 3.112-3.619 0-5.889-2.188-5.889-5.596 0-5.006 4.29-6.981 12.663-7.867v-0.841c0-2.523-1.515-3.407-3.83-3.407-2.439 0-4.754 0.757-6.94 1.725l-0.505-3.238c2.398-0.969 4.67-1.682 7.783-1.682 4.88 0 7.236 1.976 7.236 6.435v14.051h-3.02zm-0.72-10.182c-7.406 0.715-8.963 2.735-8.963 4.796 0 1.642 1.095 2.693 2.989 2.693 2.187 0 4.291-1.095 5.974-2.82v-4.669z" fill="#131108"/>
+	<path d="m137.46 24.599l0.546 3.364-3.826 0.378c0.546 0.926 0.799 1.979 0.799 3.113 0 4.292-3.618 6.899-7.699 6.899-0.504 0-1.011-0.042-1.514-0.126-0.589 0.38-1.01 0.844-1.01 1.22 0 0.716 0.714 0.886 4.248 1.517l1.432 0.252c4.249 0.757 6.898 2.102 6.898 5.216 0 4.206-4.586 6.183-9.802 6.183s-9.381-1.64-9.381-5.173c0-2.062 1.431-3.66 4.248-5.174-0.882-0.631-1.26-1.348-1.26-2.104 0-0.969 0.756-1.936 2.103-2.734-2.229-1.095-3.744-3.238-3.744-5.974 0-4.332 3.616-6.981 7.697-6.981 2.019 0 3.786 0.587 5.175 1.682l5.08-1.558zm-15.73 22.547c0 1.599 2.06 2.775 5.972 2.775 3.913 0 6.099-1.345 6.099-3.027 0-1.222-0.924-2.061-3.784-2.566l-2.397-0.422c-1.095-0.208-1.682-0.336-2.481-0.502-2.36 1.177-3.41 2.356-3.41 3.742zm5.47-19.939c-2.522 0-4.081 1.936-4.081 4.375 0 2.313 1.6 4.12 4.081 4.12 2.566 0 4.165-1.892 4.165-4.29 0-2.397-1.68-4.205-4.16-4.205z" fill="#131108"/>
+	<path d="m155.3 35.325h-13.631c0.125 4.669 2.354 6.856 5.847 6.856 2.904 0 5.007-1.135 7.193-2.86l0.546 3.367c-2.144 1.682-4.709 2.691-8.031 2.691-5.219 0-9.299-3.155-9.299-10.519 0-6.435 3.787-10.388 8.835-10.388 5.846 0 8.54 4.5 8.54 10.052v0.801zm-8.58-7.908c-2.313 0-4.291 1.641-4.879 5.09h9.675c-0.47-3.239-1.9-5.09-4.8-5.09z" fill="#131108"/>
+	<path d="m171.07 44.96v-13.673c0-2.06-0.883-3.449-3.07-3.449-1.977 0-3.996 1.305-5.807 3.239v13.883h-3.743v-20.067h2.986l0.463 2.903c1.893-1.724 4.251-3.323 7.108-3.323 3.786 0 5.808 2.271 5.808 5.888v14.599h-3.75z" fill="#131108"/>
+	<path d="m185.88 45.298c-3.532 0-5.846-1.265-5.846-5.304v-11.946h-3.03v-3.156h3.03v-6.688l3.66-0.546v7.234h4.332l0.505 3.156h-4.837v11.273c0 1.643 0.675 2.651 2.776 2.651 0.673 0 1.262-0.041 1.724-0.127l0.506 3.196c-0.63 0.128-1.51 0.257-2.81 0.257z" fill="#131108"/>
+	<path d="m198.29 45.38c-5.342 0-9.213-3.827-9.213-10.434 0-6.605 3.871-10.473 9.213-10.473 5.383 0 9.339 3.868 9.339 10.473 0 6.607-3.96 10.434-9.34 10.434zm0-17.753c-3.617 0-5.426 3.113-5.426 7.319 0 4.125 1.892 7.321 5.426 7.321 3.702 0 5.553-3.114 5.553-7.321 0-4.122-1.93-7.319-5.55-7.319z" fill="#131108"/>
+		<path d="m210.28 27.897c-1.505 0-2.551-1.045-2.551-2.606 0-1.55 1.067-2.618 2.551-2.618 1.505 0 2.55 1.056 2.55 2.618 0 1.55-1.07 2.606-2.55 2.606zm0-4.92c-1.214 0-2.18 0.831-2.18 2.314 0 1.472 0.966 2.303 2.18 2.303 1.225 0 2.191-0.832 2.191-2.303 0-1.483-0.98-2.314-2.19-2.314zm0.75 3.708l-0.863-1.237h-0.281v1.191h-0.495v-2.888h0.878c0.606 0 1.01 0.303 1.01 0.843 0 0.416-0.225 0.686-0.585 0.798l0.833 1.18-0.5 0.113zm-0.76-2.484h-0.383v0.854h0.359c0.325 0 0.53-0.135 0.53-0.427 0-0.281-0.18-0.427-0.51-0.427z" fill="#131108"/>
+	<g fill="#E85D22">
+		<path d="m26.845 8.857"/>
+		<polygon points="53.692 15.5 53.692 46.5 46.021 50.929 46.021 19.929 26.845 8.857 7.67 19.928 7.67 50.929 0 46.5 0 15.5 26.845 0"/>
+		<polygon points="26.847 62 15.341 55.356 15.341 24.357 23.011 19.928 23.011 50.929 26.845 53.257 30.682 50.929 30.682 19.929 38.353 24.357 38.353 55.356"/>
+	</g>
+</svg>
diff --git a/lib/web/mage/adminhtml/backup.js b/lib/web/mage/adminhtml/backup.js
index a906b4c73a12c50a476114a27fdf23c29375b871..f8dde89519d821795d3c530420f833a066c27faf 100644
--- a/lib/web/mage/adminhtml/backup.js
+++ b/lib/web/mage/adminhtml/backup.js
@@ -151,7 +151,7 @@ define([
         },
 
         getErrorMessageHtml: function(message) {
-            return '<div class="message error"><div>' + message + '</div></div>';
+            return '<div class="message message-error error"><div>' + message + '</div></div>';
         },
 
         getPostData: function() {
diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js
index 3e9a022c5f33b42cbf8a19c9a361f93062412cc1..2abf3a9b02237b65205001dc9feecaee13fa3e7e 100644
--- a/lib/web/mage/adminhtml/browser.js
+++ b/lib/web/mage/adminhtml/browser.js
@@ -35,8 +35,17 @@ define([
                 resizable: false,
                 width: width || 1000,
                 height: height || 600,
-                zIndex: this.getMaxZIndex(),
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
                 open: function() {
+                    $(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 35;
+                    $(this).closest('.ui-dialog').css('margin-top', topMargin);
+
                     $.ajax({
                         url: url,
                         type: 'get',
@@ -47,6 +56,7 @@ define([
                     });
                 },
                 close: function(event, ui) {
+                    $(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                     $(this).dialog('destroy');
                     $('#' + windowId).remove();
                 }
diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js
index b963ead4648fda6996bdfc1158fc804a253e571c..1a4b96a8b6b1af4959c44947f882fe0c55c33a11 100644
--- a/lib/web/mage/adminhtml/wysiwyg/widget.js
+++ b/lib/web/mage/adminhtml/wysiwyg/widget.js
@@ -56,17 +56,26 @@ define([
                 title:      jQuery.mage.__('Insert Widget...'),
                 modal:      true,
                 resizable:  false,
-                width:      950,
-                zIndex:     this.getMaxZIndex(),
+                width:      '75%',
                 dialogClass: 'popup-window',
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
                 open: function () {
                     var dialog = jQuery(this).addClass('loading magento_message')
                     new Ajax.Updater($(this), widgetUrl, {evalScripts: true, onComplete: function () {
                             dialog.removeClass('loading');
                         }
                     });
+                    jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
+
+                    var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 35;
+                    jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
                 },
                 close: function(event, ui) {
+                    jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                     jQuery(this).dialog('destroy').remove();
                     oThis.dialogOpened = false;
                 }
@@ -371,13 +380,22 @@ define([
                 title:      this.config.buttons.open,
                 modal:      true,
                 resizable:  false,
-                zIndex:     widgetTools.getMaxZIndex(),
-                width:      900,
+                width:      '75%',
                 dialogClass: 'popup-window',
+                position: {
+                    my: 'left top',
+                    at: 'center top',
+                    of: 'body'
+                },
                 open: function () {
+                    jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active');
                     jQuery(this).addClass('magento_message');
+
+                    var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() - 30;
+                    jQuery(this).closest('.ui-dialog').css('margin-top', topMargin);
                 },
                 close: function(event, ui) {
+                    jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active');
                     jQuery(this).dialog('destroy').remove();
                 }
             });
diff --git a/lib/web/mage/backend/floating-header.js b/lib/web/mage/backend/floating-header.js
index 4b7161f26c1eca6cb20f36ddaadfbf2b3ceceed9..6500e0b8f3213b93cef9917660a8684ed5db01e2 100644
--- a/lib/web/mage/backend/floating-header.js
+++ b/lib/web/mage/backend/floating-header.js
@@ -15,7 +15,7 @@ define([
                 'class': 'page-actions-placeholder'
             },
             fixedClass: 'fixed',
-            title: '.page-title .title'
+            title: '.page-title-wrapper .page-title'
         },
 
         /**
diff --git a/lib/web/mage/calendar.js b/lib/web/mage/calendar.js
index 8f800b68f4685f1f70ef3912b61a1e87286c2fd4..e445e62e05929be9f648a9e3f53092bf3917c4ac 100644
--- a/lib/web/mage/calendar.js
+++ b/lib/web/mage/calendar.js
@@ -117,6 +117,8 @@
                 date: {
                     'EEEE': 'DD',
                     'EEE': 'D',
+                    'EE': 'D',
+                    'E': 'D',
                     'D': 'o',
                     'MMMM': 'MM',
                     'MMM': 'M',
@@ -124,6 +126,7 @@
                     'M': 'mm',
                     'yyyy': 'yy',
                     'y': 'yy',
+                    'Y': 'yy',
                     'yy': 'yy' // Always long year format on frontend
                 },
                 time: {
diff --git a/lib/web/mage/dropdown.js b/lib/web/mage/dropdown.js
index 8464804236deeb37fddf27072c57f1055e86807a..61e44e1ee501264a5757973d94e7e6bade643118 100644
--- a/lib/web/mage/dropdown.js
+++ b/lib/web/mage/dropdown.js
@@ -5,7 +5,8 @@
 
 define([
     "jquery",
-    "jquery/ui"
+    "jquery/ui",
+    "mage/translate"
 ], function($){
     'use strict';
 
@@ -21,6 +22,7 @@ define([
             triggerTarget: null,
             defaultDialogClass: "mage-dropdown-dialog",
             dialogContentClass: null,
+            shadowHinter: null,
             closeOnMouseLeave: true,
             closeOnClickOutside: true,
             minHeight: null,
@@ -37,8 +39,8 @@ define([
             buttons: [
                 {
                     'class': "action close",
-                    text: "close",
-                    click: function () {
+                    'text': $.mage.__("Close"),
+                    'click': function () {
                         $(this).dropdownDialog("close");
                     }
                 }
@@ -52,7 +54,8 @@ define([
             this._super();
             this.uiDialog.addClass(this.options.defaultDialogClass);
             var _self = this;
-            if(_self.options.triggerTarget) {
+
+            if (_self.options.triggerTarget) {
                 $(_self.options.triggerTarget).on(_self.options.triggerEvent,function(event) {
                     event.preventDefault();
                     event.stopPropagation();
@@ -66,6 +69,10 @@ define([
                 });
             }
 
+            if (_self.options.shadowHinter) {
+                _self.hinter = $('<div class="' + _self.options.shadowHinter + '"/>');
+                _self.element.append(_self.hinter);
+            }
         },
 
         /**
@@ -104,6 +111,10 @@ define([
             if(_self.options.parentClass) {
                 $(_self.options.appendTo).addClass(_self.options.parentClass);
             }
+
+            if (_self.options.shadowHinter) {
+                _self._setShadowHinterPosition();
+            }
         },
 
         /**
@@ -132,6 +143,20 @@ define([
             $('body').off('click.outsideDropdown');
         },
 
+        /**
+         * _setShadowHinterPosition
+         * @private
+         */
+        _setShadowHinterPosition: function () {
+            var _self = this,
+                offset;
+            offset = _self.options.position.of.offset().left -
+                _self.element.offset().left +
+                _self.options.position.of.outerWidth() / 2;
+            offset = isNaN(offset) ? 0 : Math.floor(offset);
+            _self.hinter.css('left', offset);
+        },
+
         _position: function() {
             if(this.options.autoPosition) {
                 this._super();
diff --git a/lib/web/mage/smart-keyboard-handler.js b/lib/web/mage/smart-keyboard-handler.js
index 54c7a0fbd1bb361b27348a4d70c283b87f923dfe..2a62f855a3276d3c5b5ad54b0b145f67a5930870 100644
--- a/lib/web/mage/smart-keyboard-handler.js
+++ b/lib/web/mage/smart-keyboard-handler.js
@@ -8,8 +8,13 @@ define([
     'use strict';
 
     function KeyboardHandler() {
-        var focusState = false;
-        var tabFocusClass = 'keyfocus';
+        var body = $('body'),
+            focusState = false,
+            tabFocusClass = 'keyfocus',
+            productsGrid = '[data-container="product-grid"]',
+            catalogProductsGrid = $(productsGrid),
+            CODE_TAB = 9;
+
         return {
             apply: smartKeyboardFocus
         };
@@ -19,14 +24,23 @@ define([
          *  - call differ actions onTabKeyPress and onClick
          */
         function smartKeyboardFocus() {
-            $(document).on('keydown keypress', function(event){
-                if(event.which === 9 && !focusState) {
-                    $('body')
-                        .on('focusin', onFocusInHandler)
+            $(document).on('keydown keypress', function(event) {
+                if (event.which === CODE_TAB && !focusState) {
+                    body
+                        .on('focusin.keyboardHandler', onFocusInHandler)
                         .on('click', onClickHandler);
                 }
             });
 
+            // ARIA support for catalog grid products
+            if (catalogProductsGrid.length) {
+                body.on('focusin.gridProducts', productsGrid, function() {
+                    $(this).addClass('active');
+                });
+                body.on('focusout.gridProducts', productsGrid, function() {
+                    $(this).removeClass('active');
+                });
+            }
         }
 
         /**
@@ -36,7 +50,7 @@ define([
         function onFocusInHandler () {
             focusState = true;
             $('body').addClass(tabFocusClass)
-                    .off('focusin', onFocusInHandler);
+                .off('focusin.keyboardHandler', onFocusInHandler);
         }
 
         /**
diff --git a/lib/web/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/lib/web/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
index a50d4fc573055958412ce7ccab45c76a579d89b1..deecdd2f51b1bf2b24459ef4169eea77348b1e19 100644
--- a/lib/web/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
+++ b/lib/web/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
@@ -4,11 +4,11 @@
 .clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
 
 /* General */
-.clearlooks2 {position:absolute; direction:ltr}
+.clearlooks2 {position:absolute; direction:ltr; z-index:920 !important;}
 .clearlooks2 .mceWrapper {position:static}
 .mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
 .clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
-.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
+.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#000; opacity:0.35; -ms-filter:'alpha(opacity=35)'; filter:alpha(opacity=35); display:none; z-index:910 !important;}
 
 /* Top */
 .clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
diff --git a/package.json b/package.json
index c6432bfd547ea3dddc5bbe737b313859738a6d22..12ffc19d59651831c958e793c61e221f076988c0 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
     "grunt-exec": "^0.4.6",
     "grunt-styledocco": "^0.1.4",
     "grunt-template-jasmine-requirejs": "^0.2.0",
+    "grunt-text-replace": "^0.4.0",
     "imagemin-svgo": "^4.0.1",
     "load-grunt-config": "^0.16.0",
     "morgan": "^1.5.0",
diff --git a/pub/errors/default/report.phtml b/pub/errors/default/report.phtml
index 6244bf03744c2ebe71d36d820a226d2b8f50ec3c..325ff8db8d6e1a710c9a3aaed1c69a4053d86cf7 100755
--- a/pub/errors/default/report.phtml
+++ b/pub/errors/default/report.phtml
@@ -7,18 +7,18 @@
 
 <h1>There has been an error processing your request</h1>
 <?php if ($this->showSentMsg): ?>
-<div class="message success">
+<div class="message success message-success">
     <div>Your message was submitted and will be responded as soon as possible. Thank you for reporting.</div>
 </div>
 <?php endif; ?>
 <?php if ($this->showSendForm): ?>
-<div class="message info">
+<div class="message info message-info">
     <div>
         We are currently experiencing some technical issues. We apologize for the inconvenience and will contact you shortly to resolve the issue. To help us serve you please fill in the form below.
     </div>
 </div>
     <?php if ($this->showErrorMsg): ?>
-<div class="message error">
+<div class="message error message-error">
     <div>
         Please fill all required fields with valid information
     </div>
diff --git a/setup/pub/fonts/icons/icons.eot b/setup/pub/fonts/icons/icons.eot
index e93c814b902b8e01cade6a7acb955fc3cfaf1fb5..2e1be4d37638bc70a0143d9083a272e3fc2621cc 100644
Binary files a/setup/pub/fonts/icons/icons.eot and b/setup/pub/fonts/icons/icons.eot differ
diff --git a/setup/pub/fonts/icons/icons.svg b/setup/pub/fonts/icons/icons.svg
index 54b4ad6acdce076f3006bc427b0c3e2567f7a51f..76afbe54558c6fade38179bc97d96bc72451711f 100644
--- a/setup/pub/fonts/icons/icons.svg
+++ b/setup/pub/fonts/icons/icons.svg
@@ -1 +1,21 @@
-<svg xmlns="http://www.w3.org/2000/svg"><defs><font horiz-adv-x="1024"><font-face units-per-em="1024" ascent="960" descent="-64"/><glyph horiz-adv-x="512"/><glyph unicode="" d="M924.704 654.336L408.8 138.464 305.6 241.632l515.936 515.904 103.168-103.2zM202.432 551.2L512 241.664l-103.2-103.2L99.296 448l103.136 103.2z"/><glyph unicode="" d="M930.432 674.592L407.52 151.68l-69.728 69.696L860.704 744.32l69.728-69.728zM163.328 535.2l313.728-313.824-69.728-69.696-313.76 313.792 69.76 69.728z"/><glyph unicode="" d="M215.68 357.728L285.44 288 512 514.56 738.592 288l69.728 69.728L512 654.016zM512 960c282.336 0 512-229.696 512-512S794.304-64 512-64 0 165.696 0 448s229.696 512 512 512zM512-.704c247.424 0 448.704 201.28 448.704 448.704S759.424 896.704 512 896.704 63.296 695.424 63.296 448C63.296 200.608 264.576-.704 512-.704z"/><glyph unicode="" d="M821.568 654.336L305.664 138.464l-103.2 103.168 515.904 515.904 103.2-103.2zm-103.2-515.872L202.464 654.368l103.2 103.168L821.6 241.664l-103.232-103.2z"/><glyph unicode="" d="M738.592 151.68L215.68 674.624l69.728 69.696L808.32 221.376l-69.728-69.696zm69.728 522.944L285.408 151.68l-69.728 69.696L738.56 744.32l69.76-69.696z"/><glyph unicode="" d="M808.32 538.272L738.56 608 512 381.44 285.408 608l-69.728-69.728L512 241.984zM512-64C229.664-64 0 165.696 0 448s229.664 512 512 512c282.304 0 512-229.696 512-512S794.304-64 512-64zm0 960.704c-247.424 0-448.704-201.28-448.704-448.704S264.576-.704 512-.704 960.704 200.576 960.704 448 759.424 896.704 512 896.704z"/><glyph unicode="" d="M512 875.296L16.8 20.704h990.4L512 875.296zm49.952-750.656H457.28v101.152h104.672V124.64zM536 267.424h-52.16l-29.056 240.64V638.88h109.568V508.064L536 267.424z"/></font></defs></svg>
\ No newline at end of file
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
+<glyph unicode="&#xe600;" d="M924.704 654.336l-515.904-515.872-103.2 103.168 515.936 515.904 103.168-103.2zM202.432 551.2l309.568-309.536-103.2-103.2-309.504 309.536 103.136 103.2z" />
+<glyph unicode="&#xe601;" d="M930.432 674.592l-522.912-522.912-69.728 69.696 522.912 522.944 69.728-69.728zM163.328 535.2l313.728-313.824-69.728-69.696-313.76 313.792 69.76 69.728z" />
+<glyph unicode="&#xe602;" d="M215.68 357.728l69.76-69.728 226.56 226.56 226.592-226.56 69.728 69.728-296.32 296.288zM512 960c282.336 0 512-229.696 512-512s-229.696-512-512-512-512 229.696-512 512 229.696 512 512 512zM512-0.704c247.424 0 448.704 201.28 448.704 448.704s-201.28 448.704-448.704 448.704-448.704-201.28-448.704-448.704c0-247.392 201.28-448.704 448.704-448.704z" />
+<glyph unicode="&#xe603;" d="M821.568 654.336l-515.904-515.872-103.2 103.168 515.904 515.904 103.2-103.2zM718.368 138.464l-515.904 515.904 103.2 103.168 515.936-515.872-103.232-103.2z" />
+<glyph unicode="&#xe604;" d="M738.592 151.68l-522.912 522.944 69.728 69.696 522.912-522.944-69.728-69.696zM808.32 674.624l-522.912-522.944-69.728 69.696 522.88 522.944 69.76-69.696z" />
+<glyph unicode="&#xe605;" d="M808.32 538.272l-69.76 69.728-226.56-226.56-226.592 226.56-69.728-69.728 296.32-296.288zM512-64c-282.336 0-512 229.696-512 512s229.664 512 512 512c282.304 0 512-229.696 512-512s-229.696-512-512-512zM512 896.704c-247.424 0-448.704-201.28-448.704-448.704s201.28-448.704 448.704-448.704c247.424 0 448.704 201.28 448.704 448.704s-201.28 448.704-448.704 448.704z" />
+<glyph unicode="&#xe606;" d="M512 875.296l-495.2-854.592h990.4l-495.2 854.592zM561.952 124.64h-104.672v101.152h104.672v-101.152zM536 267.424h-52.16l-29.056 240.64v130.816h109.568v-130.816l-28.352-240.64z" />
+<glyph unicode="&#xe61a;" d="M505.704 919.002c-260.096-3.489-468.158-217.202-464.706-477.336 3.489-259.982 217.202-468.12 477.298-464.631s468.158 217.202 464.706 477.336c-3.413 260.058-217.202 468.12-477.298 464.631zM557.928 762.027c47.863 0 62.009-27.762 62.009-59.544 0-39.671-31.782-76.383-86.016-76.383-45.359 0-66.901 22.831-65.65 60.53 0 31.782 26.624 75.435 89.657 75.435zM435.162 153.619c-32.73 0-56.661 19.873-33.792 107.217l37.547 154.814c6.485 24.841 7.585 34.778 0 34.778-9.785 0-52.262-17.143-77.407-34.057l-16.346 26.776c79.607 66.446 171.16 105.472 210.375 105.472 32.73 0 38.153-38.722 21.807-98.266l-43.008-162.816c-7.585-28.786-4.286-38.722 3.262-38.722 9.785 0 41.984 11.871 73.614 36.75l18.47-24.841c-77.369-77.369-161.792-107.179-194.56-107.179z" />
+<glyph unicode="&#xe623;" d="M593.351 960l-593.351-1023.962h1186.74l-593.351 1023.962zM653.236 60.549h-125.421v121.211h125.421v-121.211zM622.175 231.671h-62.502l-34.816 288.313v156.748h131.3v-156.748l-33.982-288.313z" horiz-adv-x="1176" />
+<glyph unicode="&#xe62d;" d="M996.617 833.214l-513.555-513.555-256.796 256.834-128.379-128.417 385.214-385.252 641.896 642.010z" horiz-adv-x="1176" />
+<glyph unicode="&#xe632;" d="M1014.67 137.349c0 0 0 0 0 0l-310.651 310.651 310.651 310.651c0 0 0 0 0 0 3.337 3.337 5.765 7.244 7.32 11.416 4.248 11.378 1.82 24.69-7.32 33.83l-146.735 146.735c-9.14 9.14-22.452 11.567-33.83 7.32-4.172-1.555-8.078-3.982-11.416-7.32 0 0 0 0 0 0l-310.651-310.651-310.651 310.651c0 0 0 0 0 0-3.337 3.337-7.244 5.765-11.416 7.32-11.378 4.248-24.69 1.82-33.83-7.32l-146.735-146.735c-9.14-9.14-11.567-22.452-7.32-33.83 1.555-4.172 3.982-8.078 7.32-11.416 0 0 0 0 0 0l310.651-310.651-310.651-310.651c0 0 0 0 0 0-3.337-3.337-5.765-7.244-7.32-11.416-4.248-11.378-1.82-24.69 7.32-33.83l146.735-146.735c9.14-9.14 22.452-11.567 33.83-7.32 4.172 1.555 8.078 3.982 11.416 7.32 0 0 0 0 0 0l310.651 310.651 310.651-310.651c0 0 0 0 0 0 3.337-3.337 7.244-5.765 11.416-7.32 11.378-4.248 24.69-1.82 33.83 7.32l146.735 146.735c9.14 9.14 11.567 22.452 7.32 33.83-1.555 4.172-3.982 8.078-7.32 11.416z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/setup/pub/fonts/icons/icons.ttf b/setup/pub/fonts/icons/icons.ttf
index 0490128bbdb73a7c76495e402e64683ff5029c6d..833a94e8aedbe5dd2a6ecfa4eac02c8abe92166c 100644
Binary files a/setup/pub/fonts/icons/icons.ttf and b/setup/pub/fonts/icons/icons.ttf differ
diff --git a/setup/pub/fonts/icons/icons.woff b/setup/pub/fonts/icons/icons.woff
index 1a999afc1bd5225d3f4bdf21495caa4cfab03557..24832ebb8290d93e6cbe4f90ab00988456955a09 100644
Binary files a/setup/pub/fonts/icons/icons.woff and b/setup/pub/fonts/icons/icons.woff differ
diff --git a/setup/pub/fonts/icons/icons.woff2 b/setup/pub/fonts/icons/icons.woff2
index bf8bba758ec2c8728cba2464b41f2dc413fd4ca4..73b876eae3f7c6924755948d01a07c8bda4ffb87 100644
Binary files a/setup/pub/fonts/icons/icons.woff2 and b/setup/pub/fonts/icons/icons.woff2 differ
diff --git a/setup/pub/fonts/icons/selection.json b/setup/pub/fonts/icons/selection.json
deleted file mode 100644
index 1fe67b6c2705c805832d2662ed38c93913d5e78c..0000000000000000000000000000000000000000
--- a/setup/pub/fonts/icons/selection.json
+++ /dev/null
@@ -1,286 +0,0 @@
-{
-	"IcoMoonType": "selection",
-	"icons": [
-		{
-			"icon": {
-				"paths": [
-					"M924.704 305.664l-515.904 515.872-103.2-103.168 515.936-515.904 103.168 103.2z",
-					"M202.432 408.8l309.568 309.536-103.2 103.2-309.504-309.536 103.136-103.2z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"checkmark-thick"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 1,
-				"id": 6,
-				"prevSize": 32,
-				"code": 58880,
-				"name": "checkmark-thick"
-			},
-			"setIdx": 0,
-			"iconIdx": 0
-		},
-		{
-			"icon": {
-				"paths": [
-					"M930.432 285.408l-522.912 522.912-69.728-69.696 522.912-522.944 69.728 69.728z",
-					"M163.328 424.8l313.728 313.824-69.728 69.696-313.76-313.792 69.76-69.728z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"checkmark"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 2,
-				"id": 5,
-				"prevSize": 32,
-				"code": 58881,
-				"name": "checkmark"
-			},
-			"setIdx": 0,
-			"iconIdx": 1
-		},
-		{
-			"icon": {
-				"paths": [
-					"M215.68 602.272l69.76 69.728 226.56-226.56 226.592 226.56 69.728-69.728-296.32-296.288z",
-					"M512 0c282.336 0 512 229.696 512 512s-229.696 512-512 512-512-229.696-512-512 229.696-512 512-512zM512 960.704c247.424 0 448.704-201.28 448.704-448.704s-201.28-448.704-448.704-448.704-448.704 201.28-448.704 448.704c0 247.392 201.28 448.704 448.704 448.704z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"collapse"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 3,
-				"id": 4,
-				"prevSize": 32,
-				"code": 58882,
-				"name": "collapse"
-			},
-			"setIdx": 0,
-			"iconIdx": 2
-		},
-		{
-			"icon": {
-				"paths": [
-					"M821.568 305.664l-515.904 515.872-103.2-103.168 515.904-515.904 103.2 103.2z",
-					"M718.368 821.536l-515.904-515.904 103.2-103.168 515.936 515.872-103.232 103.2z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"error-thick"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 4,
-				"id": 3,
-				"prevSize": 32,
-				"code": 58883,
-				"name": "error-thick"
-			},
-			"setIdx": 0,
-			"iconIdx": 3
-		},
-		{
-			"icon": {
-				"paths": [
-					"M738.592 808.32l-522.912-522.944 69.728-69.696 522.912 522.944-69.728 69.696z",
-					"M808.32 285.376l-522.912 522.944-69.728-69.696 522.88-522.944 69.76 69.696z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"error"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 5,
-				"id": 2,
-				"prevSize": 32,
-				"code": 58884,
-				"name": "error"
-			},
-			"setIdx": 0,
-			"iconIdx": 4
-		},
-		{
-			"icon": {
-				"paths": [
-					"M808.32 421.728l-69.76-69.728-226.56 226.56-226.592-226.56-69.728 69.728 296.32 296.288z",
-					"M512 1024c-282.336 0-512-229.696-512-512s229.664-512 512-512c282.304 0 512 229.696 512 512s-229.696 512-512 512zM512 63.296c-247.424 0-448.704 201.28-448.704 448.704s201.28 448.704 448.704 448.704c247.424 0 448.704-201.28 448.704-448.704s-201.28-448.704-448.704-448.704z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					},
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"expand"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				},
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 6,
-				"id": 1,
-				"prevSize": 32,
-				"code": 58885,
-				"name": "expand"
-			},
-			"setIdx": 0,
-			"iconIdx": 5
-		},
-		{
-			"icon": {
-				"paths": [
-					"M512 84.704l-495.2 854.592h990.4l-495.2-854.592zM561.952 835.36h-104.672v-101.152h104.672v101.152zM536 692.576h-52.16l-29.056-240.64v-130.816h109.568v130.816l-28.352 240.64z"
-				],
-				"attrs": [
-					{
-						"visibility": false
-					}
-				],
-				"grid": 0,
-				"tags": [
-					"warning"
-				]
-			},
-			"attrs": [
-				{
-					"visibility": false
-				}
-			],
-			"properties": {
-				"order": 7,
-				"id": 0,
-				"prevSize": 32,
-				"code": 58886,
-				"name": "warning"
-			},
-			"setIdx": 0,
-			"iconIdx": 6
-		}
-	],
-	"height": 1024,
-	"metadata": {
-		"name": "icomoon"
-	},
-	"preferences": {
-		"showGlyphs": true,
-		"showQuickUse": true,
-		"showQuickUse2": true,
-		"showSVGs": true,
-		"fontPref": {
-			"prefix": "icon-",
-			"metadata": {
-				"fontFamily": "icomoon"
-			},
-			"metrics": {
-				"emSize": 1024,
-				"baseline": 6.25,
-				"whitespace": 50
-			}
-		},
-		"imagePref": {
-			"prefix": "icon-",
-			"png": true,
-			"useClassSelector": true
-		},
-		"historySize": 100,
-		"showCodes": true,
-		"search": ""
-	}
-}
diff --git a/setup/pub/magento/setup/add-database.js b/setup/pub/magento/setup/add-database.js
index b6dde9b8caf56179eb66b6c1cbab057e13bb5e60..af4e87b7680d3443883e569c3518ba96b1d0d3f9 100644
--- a/setup/pub/magento/setup/add-database.js
+++ b/setup/pub/magento/setup/add-database.js
@@ -22,9 +22,12 @@ angular.module('add-database', ['ngStorage'])
             $http.post('index.php/database-check', $scope.db)
                 .success(function (data) {
                     $scope.testConnection.result = data;
-                    if (!(($scope.testConnection.result !== undefined) && (!$scope.testConnection.result.success))) {
+                    if ($scope.testConnection.result.success) {
                         $scope.nextState();
                     }
+                })
+                .error(function (data) {
+                    $scope.testConnection.failed = data;
                 });
         };
 
diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js
index 2c46b35064292264e2a117a23a22d0e4bda4b4f5..d7c0eb243e2fccce768b7eec41e4b5b414ca7584 100644
--- a/setup/pub/magento/setup/readiness-check.js
+++ b/setup/pub/magento/setup/readiness-check.js
@@ -32,6 +32,11 @@ angular.module('readiness-check', [])
             processed: false,
             expanded: false
         };
+        $scope.rawpost = {
+            visible: false,
+            processed: false,
+            expanded: false
+        };
         $scope.extensions = {
             visible: false,
             processed: false,
@@ -57,6 +62,19 @@ angular.module('readiness-check', [])
                     $scope.stopProgress();
                 }
             },
+            'php-rawpost': {
+                url:'index.php/environment/php-rawpost',
+                show: function() {
+                    $scope.startProgress();
+                    $scope.rawpost.visible = true;
+                },
+                process: function(data) {
+                    $scope.rawpost.processed = true;
+                    angular.extend($scope.rawpost, data);
+                    $scope.updateOnProcessed($scope.rawpost.responseType);
+                    $scope.stopProgress();
+                }
+            },
             'php-extensions': {
                 url:'index.php/environment/php-extensions',
                 show: function() {
diff --git a/setup/src/Magento/Setup/Controller/ConsoleController.php b/setup/src/Magento/Setup/Controller/ConsoleController.php
index 1e59a5e9db82533a6f3c37c0dc8e38003ef265da..58bf6d31f91660d2b24cb931f7dbd809adf7ca2c 100644
--- a/setup/src/Magento/Setup/Controller/ConsoleController.php
+++ b/setup/src/Magento/Setup/Controller/ConsoleController.php
@@ -317,6 +317,8 @@ class ConsoleController extends AbstractActionController
         $this->installer = $installerFactory->create($consoleLogger);
         $this->maintenanceMode = $maintenanceMode;
         $this->objectManagerProvider = $objectManagerProvider;
+        // By default we use our customized error handler, but for CLI we want to display all errors
+        restore_error_handler();
     }
 
     /**
@@ -405,6 +407,7 @@ class ConsoleController extends AbstractActionController
      */
     public function updateAction()
     {
+        $this->installer->updateModulesSequence();
         $this->installer->installSchema();
         $this->installer->installDataFixtures();
     }
diff --git a/setup/src/Magento/Setup/Controller/Environment.php b/setup/src/Magento/Setup/Controller/Environment.php
index 07dc89aff7db5eec32e2e8ae73f7bffc7f089f2c..8b93843046fb95d46f2abc1558a43f586fac0e47 100644
--- a/setup/src/Magento/Setup/Controller/Environment.php
+++ b/setup/src/Magento/Setup/Controller/Environment.php
@@ -87,6 +87,29 @@ class Environment extends AbstractActionController
         return new JsonModel($data);
     }
 
+    /**
+     * Checks if PHP version >= 5.6.0 and always_populate_raw_post_data is set
+     *
+     * @return JsonModel
+     */
+    public function phpRawpostAction()
+    {
+        $iniSetting = ini_get('always_populate_raw_post_data');
+        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
+        if (version_compare(PHP_VERSION, '5.6.0') >= 0 && (int)$iniSetting > -1) {
+            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+        }
+        $data = [
+            'responseType' => $responseType,
+            'data' => [
+                'version' => PHP_VERSION,
+                'ini' => ini_get('always_populate_raw_post_data')
+            ]
+        ];
+
+        return new JsonModel($data);
+    }
+
     /**
      * Verifies php verifications
      *
diff --git a/setup/src/Magento/Setup/Model/Installer.php b/setup/src/Magento/Setup/Model/Installer.php
index aaac7d81ac2e8f9fd85973faaa53170d317df449..0b2772d9f45c4684f7baeab5b7dd3f1c063d35a9 100644
--- a/setup/src/Magento/Setup/Model/Installer.php
+++ b/setup/src/Magento/Setup/Model/Installer.php
@@ -13,12 +13,14 @@ use Magento\Framework\App\DeploymentConfig\InstallConfig;
 use Magento\Framework\App\DeploymentConfig\ResourceConfig;
 use Magento\Framework\App\DeploymentConfig\SessionConfig;
 use Magento\Framework\App\DeploymentConfig\Writer;
+use Magento\Framework\App\DeploymentConfig\Reader;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\App\MaintenanceMode;
 use Magento\Framework\Filesystem;
 use Magento\Framework\Filesystem\FilesystemException;
 use Magento\Framework\Math\Random;
 use Magento\Framework\Module\ModuleList\DeploymentConfig;
+use Magento\Framework\Module\ModuleList\DeploymentConfigFactory;
 use Magento\Framework\Module\ModuleList\Loader as ModuleLoader;
 use Magento\Framework\Module\ModuleListInterface;
 use Magento\Framework\Shell;
@@ -102,6 +104,13 @@ class Installer
      */
     private $deploymentConfigWriter;
 
+    /**
+     * Deployment configuration reader
+     *
+     * @var Writer
+     */
+    private $deploymentConfigReader;
+
     /**
      * Module list
      *
@@ -109,6 +118,13 @@ class Installer
      */
     private $moduleList;
 
+    /**
+     * Factory for module deployment config
+     *
+     * @var DeploymentConfigFactory
+     */
+    private $deploymentConfigFactory;
+
     /**
      * Module list loader
      *
@@ -211,7 +227,9 @@ class Installer
      *
      * @param FilePermissions $filePermissions
      * @param Writer $deploymentConfigWriter
+     * @param Reader $deploymentConfigReader
      * @param \Magento\Framework\App\DeploymentConfig $deploymentConfig
+     * @param DeploymentConfigFactory $deploymentConfigFactory
      * @param ModuleListInterface $moduleList
      * @param ModuleLoader $moduleLoader
      * @param DirectoryList $directoryList
@@ -230,7 +248,9 @@ class Installer
     public function __construct(
         FilePermissions $filePermissions,
         Writer $deploymentConfigWriter,
+        Reader $deploymentConfigReader,
         \Magento\Framework\App\DeploymentConfig $deploymentConfig,
+        DeploymentConfigFactory $deploymentConfigFactory,
         ModuleListInterface $moduleList,
         ModuleLoader $moduleLoader,
         DirectoryList $directoryList,
@@ -246,6 +266,8 @@ class Installer
     ) {
         $this->filePermissions = $filePermissions;
         $this->deploymentConfigWriter = $deploymentConfigWriter;
+        $this->deploymentConfigReader = $deploymentConfigReader;
+        $this->deploymentConfigFactory = $deploymentConfigFactory;
         $this->moduleList = $moduleList;
         $this->moduleLoader = $moduleLoader;
         $this->directoryList = $directoryList;
@@ -336,7 +358,7 @@ class Installer
             $key = array_search($module, $toEnable);
             $result[$module] = false !== $key;
         }
-        return new DeploymentConfig($result);
+        return $this->deploymentConfigFactory->create($result);
     }
 
     /**
@@ -786,6 +808,33 @@ class Installer
         $adminAccount->save();
     }
 
+    /**
+     * Updates modules in deployment configuration
+     *
+     * @return void
+     */
+    public function updateModulesSequence()
+    {
+        $this->assertDeploymentConfigExists();
+        $this->log->log('File system cleanup:');
+        $this->deleteDirContents(DirectoryList::GENERATION);
+        $this->deleteDirContents(DirectoryList::CACHE);
+        $this->log->log('Updating modules:');
+        $allModules = array_keys($this->moduleLoader->load());
+        $deploymentConfig = $this->deploymentConfigReader->load();
+        $currentModules = isset($deploymentConfig['modules']) ? $deploymentConfig['modules'] : [] ;
+        $result = [];
+        foreach ($allModules as $module) {
+            if (isset($currentModules[$module]) && !$currentModules[$module]) {
+                $result[$module] = 0;
+            } else {
+                $result[$module] = 1;
+            }
+        }
+        $segment = $this->deploymentConfigFactory->create($result);
+        $this->deploymentConfigWriter->update($segment);
+    }
+
     /**
      * Uninstall Magento application
      *
diff --git a/setup/src/Magento/Setup/Model/InstallerFactory.php b/setup/src/Magento/Setup/Model/InstallerFactory.php
index 826c37a97841d6d417b959e1cab2298e0f933d84..6ed7fbb8d3019080ed16fa3404780f1fbc14947b 100644
--- a/setup/src/Magento/Setup/Model/InstallerFactory.php
+++ b/setup/src/Magento/Setup/Model/InstallerFactory.php
@@ -8,6 +8,7 @@ namespace Magento\Setup\Model;
 
 use Zend\ServiceManager\ServiceLocatorInterface;
 use Magento\Setup\Module\ResourceFactory;
+use Magento\Framework\App\ErrorHandler;
 
 class InstallerFactory
 {
@@ -33,6 +34,9 @@ class InstallerFactory
     {
         $this->serviceLocator = $serviceLocator;
         $this->resourceFactory = $resourceFactory;
+        // For Setup Wizard we are using our customized error handler
+        $handler = new ErrorHandler();
+        set_error_handler([$handler, 'handler']);
     }
 
     /**
@@ -46,7 +50,9 @@ class InstallerFactory
         return new Installer(
             $this->serviceLocator->get('Magento\Setup\Model\FilePermissions'),
             $this->serviceLocator->get('Magento\Framework\App\DeploymentConfig\Writer'),
+            $this->serviceLocator->get('Magento\Framework\App\DeploymentConfig\Reader'),
             $this->serviceLocator->get('Magento\Framework\App\DeploymentConfig'),
+            $this->serviceLocator->get('Magento\Framework\Module\ModuleList\DeploymentConfigFactory'),
             $this->serviceLocator->get('Magento\Framework\Module\ModuleList'),
             $this->serviceLocator->get('Magento\Framework\Module\ModuleList\Loader'),
             $this->serviceLocator->get('Magento\Framework\App\Filesystem\DirectoryList'),
diff --git a/setup/src/Magento/Setup/Model/Lists.php b/setup/src/Magento/Setup/Model/Lists.php
index d97b9e4970f6ce305a68a899601837426f200f11..61a45c8d9cda31097470ae1064b86a3f800ef1cf 100644
--- a/setup/src/Magento/Setup/Model/Lists.php
+++ b/setup/src/Magento/Setup/Model/Lists.php
@@ -6,18 +6,14 @@
 
 namespace Magento\Setup\Model;
 
-use Zend_Locale;
+use Magento\Framework\Locale\Bundle\CurrencyBundle;
+use Magento\Framework\Locale\Bundle\LanguageBundle;
+use Magento\Framework\Locale\Bundle\RegionBundle;
 use Magento\Framework\Locale\ConfigInterface;
+use Magento\Framework\Locale\ResolverInterface;
 
 class Lists
 {
-    /**
-     * Zend locale object
-     *
-     * @var Zend_Locale
-     */
-    protected $zendLocale;
-
     /**
      * List of allowed locales
      *
@@ -26,14 +22,10 @@ class Lists
     protected $allowedLocales;
 
     /**
-     * Constructor
-     *
-     * @param Zend_Locale $zendLocale
      * @param ConfigInterface $localeConfig
      */
-    public function __construct(Zend_Locale $zendLocale, ConfigInterface $localeConfig)
+    public function __construct(ConfigInterface $localeConfig)
     {
-        $this->zendLocale = $zendLocale;
         $this->allowedLocales = $localeConfig->getAllowedLocales();
     }
 
@@ -44,10 +36,14 @@ class Lists
      */
     public function getTimezoneList()
     {
-        $timeZone  = $this->zendLocale->getTranslationList('TimezoneToWindows');
+        $zones = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC);
         $list = [];
-        foreach ($timeZone as $windows => $iso) {
-            $list[$iso] = $windows . ' (' . $iso . ')';
+        foreach ($zones as $code) {
+            $list[$code] = \IntlTimeZone::createTimeZone($code)->getDisplayName(
+                false,
+                \IntlTimeZone::DISPLAY_LONG,
+                ResolverInterface::DEFAULT_LOCALE
+            ) . ' (' . $code . ')';
         }
         asort($list);
         return $list;
@@ -60,10 +56,10 @@ class Lists
      */
     public function getCurrencyList()
     {
-        $currencies = $this->zendLocale->getTranslationList('NameToCurrency');
+        $currencies = (new CurrencyBundle())->get(ResolverInterface::DEFAULT_LOCALE)['Currencies'];
         $list = [];
-        foreach ($currencies as $code => $value) {
-            $list[$code] = $value . ' (' . $code . ')';
+        foreach ($currencies as $code => $data) {
+            $list[$code] = $data[1] . ' (' . $code . ')';
         }
         asort($list);
         return $list;
@@ -76,27 +72,21 @@ class Lists
      */
     public function getLocaleList()
     {
-        $languages = $this->zendLocale->getTranslationList('Language');
-        $countries = $this->zendLocale->getTranslationList('Territory');
-        $locales = $this->zendLocale->getLocaleList();
-
-        $allowedAliases = [];
-        foreach ($this->allowedLocales as $code) {
-            $allowedAliases[$this->zendLocale->getAlias($code)] = $code;
-        }
+        $languages = (new LanguageBundle())->get(ResolverInterface::DEFAULT_LOCALE)['Languages'];
+        $countries = (new RegionBundle())->get(ResolverInterface::DEFAULT_LOCALE)['Countries'];
+        $locales = \ResourceBundle::getLocales(null);
 
         $list = [];
-        foreach (array_keys($locales) as $code) {
-            if (array_key_exists($code, $allowedAliases)) {
-                $code = $allowedAliases[$code];
+        foreach ($locales as $locale) {
+            if (!in_array($locale, $this->allowedLocales)) {
+                continue;
             }
-            if (strstr($code, '_')) {
-                $data = explode('_', $code);
-                if (!isset($languages[$data[0]]) || !isset($countries[$data[1]])) {
-                    continue;
-                }
-                $list[$code] = $languages[$data[0]] . ' (' . $countries[$data[1]] . ')';
+            $language = \Locale::getPrimaryLanguage($locale);
+            $country = \Locale::getRegion($locale);
+            if (!$languages[$language] || !$countries[$country]) {
+                continue;
             }
+            $list[$locale] = $languages[$language] . ' (' . $countries[$country] . ')';
         }
         asort($list);
         return $list;
diff --git a/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php b/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
index 098be45fdb17f73af2168e26981f8a0f825905b0..06d50d55d388e6a390971e730228fcf82aa97da1 100644
--- a/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
@@ -165,8 +165,9 @@ class ConsoleControllerTest extends \PHPUnit_Framework_TestCase
 
     public function testUpdateAction()
     {
-        $this->installer->expects($this->once())->method('installSchema');
-        $this->installer->expects($this->once())->method('installDataFixtures');
+        $this->installer->expects($this->at(0))->method('updateModulesSequence');
+        $this->installer->expects($this->at(1))->method('installSchema');
+        $this->installer->expects($this->at(2))->method('installDataFixtures');
         $this->controller->updateAction();
     }
 
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php
index 19746c6b5d179a20d4de2eee695158caa001134d..bde3f74878cf367016ef7884bb1356f491079e37 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php
@@ -21,6 +21,10 @@ class InstallerFactoryTest extends \PHPUnit_Framework_TestCase
                 'Magento\Framework\App\DeploymentConfig\Writer',
                 $this->getMock('Magento\Framework\App\DeploymentConfig\Writer', [], [], '', false),
             ],
+            [
+            'Magento\Framework\App\DeploymentConfig\Reader',
+                $this->getMock('Magento\Framework\App\DeploymentConfig\Reader', [], [], '', false),
+            ],
             [
                 'Magento\Framework\App\DeploymentConfig',
                 $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false),
@@ -29,6 +33,10 @@ class InstallerFactoryTest extends \PHPUnit_Framework_TestCase
                 'Magento\Setup\Module\Setup',
                 $this->getMock('Magento\Setup\Module\Setup', [], [], '', false),
             ],
+            [
+                'Magento\Framework\Module\ModuleList\DeploymentConfigFactory',
+                $this->getMock('Magento\Framework\Module\ModuleList\DeploymentConfigFactory', [], [], '', false),
+            ],
             [
                 'Magento\Framework\Module\ModuleList',
                 $this->getMock('Magento\Framework\Module\ModuleList', [], [], '', false),
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
index 1343dc2151c7b4afd1b7af5d9113b4673d7d0c42..b780bb25a335ac92aa8c0808d7acb6c5e0d265ab 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
@@ -35,6 +35,11 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
      */
     private $configWriter;
 
+    /**
+     * @var \Magento\Framework\App\DeploymentConfig\Reader|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $configReader;
+
     /**
      * @var \Magento\Framework\App\DeploymentConfig|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -50,6 +55,16 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
      */
     private $moduleLoader;
 
+    /**
+     * @var \Magento\Framework\Module\ModuleList\DeploymentConfigFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $deploymentConfigFactory;
+
+    /**
+     * @var \Magento\Framework\Module\ModuleList\DeploymentConfig|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $deploymentConfig;
+
     /**
      * @var \Magento\Framework\App\Filesystem\DirectoryList|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -121,6 +136,7 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
     {
         $this->filePermissions = $this->getMock('Magento\Setup\Model\FilePermissions', [], [], '', false);
         $this->configWriter = $this->getMock('Magento\Framework\App\DeploymentConfig\Writer', [], [], '', false);
+        $this->configReader = $this->getMock('Magento\Framework\App\DeploymentConfig\Reader', [], [], '', false);
         $this->config = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
 
         $this->moduleList = $this->getMockForAbstractClass('Magento\Framework\Module\ModuleListInterface');
@@ -131,11 +147,20 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
             ['Foo_One', 'Bar_Two']
         );
         $this->moduleLoader = $this->getMock('Magento\Framework\Module\ModuleList\Loader', [], [], '', false);
-        $allModules = [
-            'Foo_One' => [],
-            'Bar_Two' => [],
-        ];
-        $this->moduleLoader->expects($this->any())->method('load')->willReturn($allModules);
+        $this->deploymentConfigFactory = $this->getMock(
+            'Magento\Framework\Module\ModuleList\DeploymentConfigFactory',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->deploymentConfig = $this->getMock(
+            'Magento\Framework\Module\ModuleList\DeploymentConfig',
+            [],
+            [],
+            '',
+            false
+        );
         $this->directoryList = $this->getMock('Magento\Framework\App\Filesystem\DirectoryList', [], [], '', false);
         $this->adminFactory = $this->getMock('Magento\Setup\Model\AdminAccountFactory', [], [], '', false);
         $this->logger = $this->getMockForAbstractClass('Magento\Setup\Model\LoggerInterface');
@@ -166,10 +191,13 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
             $objectManagerProvider = $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false);
             $objectManagerProvider->expects($this->any())->method('get')->willReturn($this->objectManager);
         }
+
         return new Installer(
             $this->filePermissions,
             $this->configWriter,
+            $this->configReader,
             $this->config,
+            $this->deploymentConfigFactory,
             $this->moduleList,
             $this->moduleLoader,
             $this->directoryList,
@@ -199,7 +227,12 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
             [DbConfig::CONFIG_KEY, self::$dbConfig],
             [EncryptConfig::CONFIG_KEY, [EncryptConfig::KEY_ENCRYPTION_KEY => 'encryption_key']]
         ]));
-
+        $allModules = ['Foo_One' => [], 'Bar_Two' => []];
+        $this->moduleLoader->expects($this->any())->method('load')->willReturn($allModules);
+        $modules = ['Foo_One' => 1, 'Bar_Two' => 1 ];
+        $this->deploymentConfig->expects($this->any())->method('getData')->willReturn($modules);
+        $this->deploymentConfigFactory->expects($this->any())->method('create')->with($modules)
+            ->willReturn($this->deploymentConfig);
         $setup = $this->getMock('Magento\Setup\Module\Setup', [], [], '', false);
         $table = $this->getMock('Magento\Framework\DB\Ddl\Table', [], [], '', false);
         $connection = $this->getMockForAbstractClass('Magento\Framework\DB\Adapter\AdapterInterface');
@@ -285,6 +318,43 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
         $this->assertSame(['message' => [$expectedMessage]], $this->object->getInstallInfo());
     }
 
+    public function testUpdateModulesSequence()
+    {
+        $varDir = $this->getMockForAbstractClass('Magento\Framework\Filesystem\Directory\WriteInterface');
+        $varDir->expects($this->exactly(2))->method('getAbsolutePath')->willReturn('/var');
+        $this->filesystem
+            ->expects($this->exactly(2))
+            ->method('getDirectoryWrite')
+            ->willReturn($varDir);
+
+        $allModules = [
+            'Foo_One' => [],
+            'Bar_Two' => [],
+            'New_Module' => [],
+        ];
+        $this->moduleLoader->expects($this->once())->method('load')->willReturn($allModules);
+
+        $expectedModules = [
+            'Bar_Two' => 0,
+            'Foo_One' => 1,
+            'New_Module' => 1
+        ];
+
+        $this->config->expects($this->atLeastOnce())->method('isAvailable')->willReturn(true);
+        $this->deploymentConfigFactory->expects($this->once())->method('create')->with($expectedModules)
+            ->willReturn($this->deploymentConfig);
+
+        $newObject = $this->createObject(false, false);
+        $this->configReader->expects($this->once())->method('load')
+            ->willReturn(['modules' => ['Bar_Two' => 0, 'Foo_One' => 1, 'Old_Module' => 0] ]);
+        $this->configWriter->expects($this->once())->method('update')->with($this->deploymentConfig);
+        $this->logger->expects($this->at(0))->method('log')->with('File system cleanup:');
+        $this->logger->expects($this->at(1))->method('log')
+            ->with('The directory \'/var\' doesn\'t exist - skipping cleanup');
+        $this->logger->expects($this->at(3))->method('log')->with('Updating modules:');
+        $newObject->updateModulesSequence();
+    }
+
     public function testUninstall()
     {
         $this->config->expects($this->once())->method('isAvailable')->willReturn(false);
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/ListsTest.php b/setup/src/Magento/Setup/Test/Unit/Model/ListsTest.php
index c2ad346340b8878ff61b6e137aa50bb946706612..ab782aa71e2e2009f220b6aa0337e7b42f3dee32 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/ListsTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/ListsTest.php
@@ -15,105 +15,70 @@ class ListsTest extends \PHPUnit_Framework_TestCase
     /**
      * @var Lists
      */
-    private $lists;
+    protected $lists;
+
+    /**
+     * @var  \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Locale\ConfigInterface
+     */
+    protected $mockConfig;
+
+    /**
+     * @var array
+     */
+    protected $expectedTimezones = [
+        'Australia/Darwin',
+        'America/Los_Angeles',
+        'Europe/Kiev',
+        'Asia/Jerusalem',
+    ];
+
+    /**
+     * @var array
+     */
+    protected $expectedCurrencies = [
+        'USD',
+        'EUR',
+        'UAH',
+        'GBP',
+    ];
+
+    /**
+     * @var array
+     */
+    protected $expectedLocales = [
+        'en_US',
+        'en_GB',
+        'uk_UA',
+        'de_DE',
+    ];
 
     public function setUp()
     {
-        $objectManager = new ObjectManager($this);
-        $this->lists = new Lists(
-            $objectManager->getObject('Zend_Locale'),
-            $objectManager->getObject('Magento\Framework\Locale\Config')
-        );
+        $this->mockConfig = $this->getMockBuilder('\Magento\Framework\Locale\ConfigInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->mockConfig->expects($this->any())
+            ->method('getAllowedLocales')
+            ->willReturn($this->expectedLocales);
+
+        $this->lists = new Lists($this->mockConfig);
     }
 
     public function testGetTimezoneList()
     {
-        $expected = [
-            'Australia/Darwin' => 'AUS Central Standard Time (Australia/Darwin)',
-            'America/Regina' => 'Canada Central Standard Time (America/Regina)',
-            'Europe/Kiev' => 'FLE Standard Time (Europe/Kiev)',
-            'Africa/Windhoek' => 'Namibia Standard Time (Africa/Windhoek)',
-            'Asia/Katmandu' => 'Nepal Standard Time (Asia/Katmandu)',
-            'Etc/GMT+2' => 'UTC-02 (Etc/GMT+2)',
-            'Pacific/Port_Moresby' => 'West Pacific Standard Time (Pacific/Port_Moresby)',
-            'Asia/Yakutsk' => 'Yakutsk Standard Time (Asia/Yakutsk)',
-        ];
-
-        $this->assertTrue(array_intersect_assoc($expected, $this->lists->getTimezoneList()) == $expected);
+        $timezones = array_intersect($this->expectedTimezones, array_keys($this->lists->getTimezoneList()));
+        $this->assertEquals($this->expectedTimezones, $timezones);
     }
 
     public function testGetCurrencyList()
     {
-        $expected = [
-            'XUA' => 'ADB Unit of Account (XUA)',
-            'AFA' => 'Afghan Afghani (1927–2002) (AFA)',
-            'AZM' => 'Azerbaijani Manat (1993–2006) (AZM)',
-            'AZN' => 'Azerbaijani Manat (AZN)',
-            'BOB' => 'Bolivian Boliviano (BOB)',
-            'CUC' => 'Cuban Convertible Peso (CUC)',
-            'CUP' => 'Cuban Peso (CUP)',
-            'CYP' => 'Cypriot Pound (CYP)',
-            'CZK' => 'Czech Republic Koruna (CZK)',
-            'CSK' => 'Czechoslovak Hard Koruna (CSK)',
-            'DKK' => 'Danish Krone (DKK)',
-            'ZRN' => 'Zairean New Zaire (1993–1998) (ZRN)',
-            'ZRZ' => 'Zairean Zaire (1971–1993) (ZRZ)',
-            'ZMK' => 'Zambian Kwacha (1968–2012) (ZMK)',
-            'ZMW' => 'Zambian Kwacha (ZMW)',
-            'ZWD' => 'Zimbabwean Dollar (1980–2008) (ZWD)',
-        ];
-        $this->assertTrue(array_intersect_assoc($expected, $this->lists->getCurrencyList()) == $expected);
+        $currencies = array_intersect($this->expectedCurrencies, array_keys($this->lists->getCurrencyList()));
+        $this->assertEquals($this->expectedCurrencies, $currencies);
     }
 
     public function testGetLocaleList()
     {
-        $expected = [
-            'aa_DJ' => 'Afar (Djibouti)',
-            'ar_ER' => 'Arabic (Eritrea)',
-            'ar_TN' => 'Arabic (Tunisia)',
-            'bn_BD' => 'Bengali (Bangladesh)',
-            'bn_IN' => 'Bengali (India)',
-            'byn_ER' => 'Blin (Eritrea)',
-            'brx_IN' => 'Bodo (India)',
-            'zh_CN' => 'Chinese (China)',
-            'zh_HK' => 'Chinese (Hong Kong SAR China)',
-            'nl_NL' => 'Dutch (Netherlands)',
-            'nl_SX' => 'Dutch (Sint Maarten)',
-            'en_BW' => 'English (Botswana)',
-            'fr_BJ' => 'French (Benin)',
-            'fr_BF' => 'French (Burkina Faso)',
-            'ia_FR' => 'Interlingua (France)',
-            'ga_IE' => 'Irish (Ireland)',
-            'it_IT' => 'Italian (Italy)',
-            'lag_TZ' => 'Langi (Tanzania)',
-            'lo_LA' => 'Lao (Laos)',
-            'lv_LV' => 'Latvian (Latvia)',
-            'ln_AO' => 'Lingala (Angola)',
-            'nso_ZA' => 'Northern Sotho (South Africa)',
-            'pt_TL' => 'Portuguese (Timor-Leste)',
-            'ro_MD' => 'Romanian (Moldova)',
-            'ro_RO' => 'Romanian (Romania)',
-            'rm_CH' => 'Romansh (Switzerland)',
-            'rof_TZ' => 'Rombo (Tanzania)',
-            'rn_BI' => 'Rundi (Burundi)',
-            'ru_UA' => 'Russian (Ukraine)',
-            'rwk_TZ' => 'Rwa (Tanzania)',
-            'so_ET' => 'Somali (Ethiopia)',
-            'es_ES' => 'Spanish (Spain)',
-            'es_US' => 'Spanish (United States)',
-            'teo_UG' => 'Teso (Uganda)',
-            'th_TH' => 'Thai (Thailand)',
-            'bo_CN' => 'Tibetan (China)',
-            'fy_NL' => 'Western Frisian (Netherlands)',
-            'wal_ET' => 'Wolaytta (Ethiopia)',
-            'xh_ZA' => 'Xhosa (South Africa)',
-            'yav_CM' => 'Yangben (Cameroon)',
-            'yo_BJ' => 'Yoruba (Benin)',
-            'yo_NG' => 'Yoruba (Nigeria)',
-            'dje_NE' => 'Zarma (Niger)',
-            'zu_ZA' => 'Zulu (South Africa)',
-        ];
-
-        $this->assertTrue(array_intersect_assoc($expected, $this->lists->getLocaleList()) == $expected);
+        $locales = array_intersect($this->expectedLocales, array_keys($this->lists->getLocaleList()));
+        $this->assertEquals($this->expectedLocales, $locales);
     }
 }
diff --git a/setup/view/magento/setup/add-database.phtml b/setup/view/magento/setup/add-database.phtml
index 797ba456e7882c1f889385f7463fdfdc2b809698..7f3091734e0db60c20ff7f1b4cfc21b3ba0623bd 100644
--- a/setup/view/magento/setup/add-database.phtml
+++ b/setup/view/magento/setup/add-database.phtml
@@ -29,25 +29,22 @@
 <h2 class="page-title">{{$state.current.header}}</h2>
 
 <div
-    class="alert alert-info"
+    class="message message-success"
     ng-show="testConnection.result.success && testConnection.pressed"
     >
-    <span class="alert-icon icon-success-round"></span>
-    <span class="alert-text">Test connection successful.</span>
+    <span class="message-text">Test connection successful.</span>
 </div>
 <div
-    class="alert alert-info"
+    class="message message-error"
     ng-show="testConnection.result.success === false && testConnection.result !== undefined"
     >
-    <span class="alert-icon icon-failed-round"></span>
-    <span class="alert-text">{{testConnection.result.error}}</span>
+    <span class="message-text">{{testConnection.result.error}}</span>
 </div>
 <div
-    class="alert alert-info"
-    ng-show="testConnection.result.success === undefined && testConnection.result !== undefined"
+    class="message message-error"
+    ng-show="testConnection.failed !== undefined"
     >
-    <span class="alert-icon icon-failed-round"></span>
-    <span class="alert-text">Unknown Database Server Host.</span>
+    <span class="message-text">{{testConnection.failed}}</span>
 </div>
 
 <form
diff --git a/setup/view/magento/setup/customize-your-store.phtml b/setup/view/magento/setup/customize-your-store.phtml
index 841e5a68e9b9ec5fddf08225aa4917fbcc6baae6..9dbf7820fd50cbd29ede7f6f93549d39fa1ccf3f 100644
--- a/setup/view/magento/setup/customize-your-store.phtml
+++ b/setup/view/magento/setup/customize-your-store.phtml
@@ -130,11 +130,10 @@
         <div ng-show="store.advanced.expanded">
 
             <div
-                class="alert alert-info"
+                class="message message-error"
                 ng-show="store.errorMessage !== ''&& store.errorMessage !== false"
                 >
-                <span class="alert-icon icon-failed-round"></span>
-                <div class="alert-text">
+                <div class="message-text">
                     <p>
                         An error has occurred. 
                         <a href="#"
@@ -161,12 +160,12 @@
                 </div>
             </div>
 
-            <div class="alert alert-info" ng-show="loading">
+            <div class="message message-spinner" ng-show="loading">
                 <span class="spinner">
                     <span></span><span></span><span></span><span></span>
                     <span></span><span></span><span></span><span></span>
                 </span>
-                <p class="alert-text">Validating Constraints for enabling/disabling modules...</p>
+                <span class="message-text">Validating Constraints for enabling/disabling modules...</span>
             </div>
 
             <p class="advanced-modules-select">
diff --git a/setup/view/magento/setup/install.phtml b/setup/view/magento/setup/install.phtml
index 62ba627e9c2a578511a84229dcb6818fbcba1350..2d87470762de45ad0d7ae9b8d2616dc2d5f2f3c0 100644
--- a/setup/view/magento/setup/install.phtml
+++ b/setup/view/magento/setup/install.phtml
@@ -55,13 +55,12 @@
             >
         </div>
     </div>
-    <div ng-show="isFailed" class="alert alert-info">
-        <span class="alert-icon icon-failed-round"></span>
-        <p class="alert-text">
+    <div ng-show="isFailed" class="message message-error">
+        <span class="message-text">
             <strong>Installation is incomplete.</strong>
             <br>
             Check the console log for errors before trying again.
-        </p>
+        </span>
     </div>
     <button
         type="button"
diff --git a/setup/view/magento/setup/readiness-check/progress.phtml b/setup/view/magento/setup/readiness-check/progress.phtml
index 92578438d2679326c642645e45c69543e8b53a62..275d677b1c8795c019e4122da50dd8274a775de2 100644
--- a/setup/view/magento/setup/readiness-check/progress.phtml
+++ b/setup/view/magento/setup/readiness-check/progress.phtml
@@ -11,28 +11,26 @@
 
     <div ng-switch-when="true" ng-switch="hasErrors">
 
-        <div class="alert alert-info" ng-switch-when="true">
-            <span class="alert-icon icon-failed-round"></span>
-            <p class="alert-text">
+        <div class="message message-error" ng-switch-when="true">
+            <span class="message-text">
                 <strong>Completed!</strong> You need to resolve these issues to continue.
-            </p>
+            </span>
         </div>
 
-        <div class="alert alert-info" ng-switch-default>
-            <span class="alert-icon icon-success-round"></span>
-            <p class="alert-text">
+        <div class="message message-success" ng-switch-default>
+            <span class="message-text">
                 <strong>Completed!</strong> You can now move on to the next step.
-            </p>
+            </span>
         </div>
 
     </div>
 
-    <div class="alert alert-info" ng-switch-default>
+    <div class="message message-spinner" ng-switch-default>
         <span class="spinner">
             <span></span><span></span><span></span><span></span>
             <span></span><span></span><span></span><span></span>
         </span>
-        <p class="alert-text">We're making sure your server environment is ready for Magento to be installed.</p>
+        <span class="message-text">We're making sure your server environment is ready for Magento to be installed.</span>
     </div>
 
 </div>
@@ -88,6 +86,58 @@
 
 </div>
 
+<div id="php-rawpost" class="rediness-check-item" ng-show="rawpost.visible">
+
+    <h3 class="readiness-check-title" ng-hide="version.processed">
+        Checking PHP Settings...
+    </h3>
+
+    <div ng-show="rawpost.processed" ng-switch="rawpost.responseType">
+
+        <div ng-switch-when="success" ng-init="updateOnSuccess(rawpost)">
+
+            <span class="readiness-check-icon icon-success-round"></span>
+
+            <div class="readiness-check-content">
+                <h3 class="readiness-check-title">PHP Settings Check</h3>
+                <p>
+                    Your PHP setting is correct.
+                </p>
+            </div>
+
+        </div>
+
+        <div class="readiness-check-item" ng-switch-default ng-init="updateOnError(rawpost)">
+
+            <div class="rediness-check-side">
+                <p class="side-title">Need Help?</p>
+                <a href="http://php.net/manual/en/ini.core.php#ini.always-populate-raw-post-data" target="_blank">PHP Documentation</a>
+            </div>
+
+            <span class="readiness-check-icon icon-failed-round"></span>
+
+            <div class="readiness-check-content">
+                <h3 class="readiness-check-title">PHP Settings Check</h3>
+                <p>
+                    Your PHP Version is {{rawpost.data.version}}, but always_populate_raw_post_data = {{rawpost.data.ini}}.
+                    <a href="#php-rawpost" ng-click="updateOnExpand(rawpost)">
+                        <span ng-hide="rawpost.expanded">Show detail</span>
+                        <span ng-show="rawpost.expanded">Hide detail</span>
+                    </a>
+                </p>
+                <p ng-show="rawpost.expanded">
+                    $HTTP_RAW_POST_DATA is deprecated from PHP 5.6 onwards and will stop the installer from running.
+                    Please open your php.ini file and set always_populate_raw_post_data to -1.
+                </p>
+                <p ng-show="rawpost.expanded">If you need more help please call your hosting provider.</p>
+            </div>
+
+        </div>
+
+    </div>
+
+</div>
+
 <div id="php-extensions" class="rediness-check-item" ng-show="extensions.visible">
 
     <h3 ng-hide="extensions.processed" class="readiness-check-title">
@@ -122,11 +172,10 @@
 
             <div ng-switch="extensions.data.error">
 
-                <div ng-switch-when="phpExtensionError" class="alert alert-warning">
-                    <span class="alert-icon icon-failed-round"></span>
-                    <p class="alert-text">
+                <div ng-switch-when="phpExtensionError" class="message message-error">
+                    <span class="message-text">
                         {{extensions.data.message}}
-                    </p>
+                    </span>
                 </div>
 
                 <div class="rediness-check-side">
diff --git a/setup/view/styles/components/tooltips/_tooltips.less b/setup/view/styles/components/tooltips/_tooltips.less
index 116b5c9411c3ac54c69023fe4fbe1c18807c8e66..17e40244032bf28677b7821880ea2e4dddbc8c16 100644
--- a/setup/view/styles/components/tooltips/_tooltips.less
+++ b/setup/view/styles/components/tooltips/_tooltips.less
@@ -10,7 +10,7 @@
 @tooltip__background-color: @color-white;
 @tooltip__border-color: @color-gray68;
 @tooltip__border-radius: 0;
-@tooltip__color: @color-dark-brownie;
+@tooltip__color: @color-brown-darkie;
 @tooltip__max-width: 20rem;
 @tooltip__opacity: .9;
 @tooltip__shadow-color: @color-gray80;
diff --git a/setup/view/styles/lib/_alerts.less b/setup/view/styles/lib/_alerts.less
deleted file mode 100644
index 18990555a97bd7d94b5ff7be2adb584862425bd7..0000000000000000000000000000000000000000
--- a/setup/view/styles/lib/_alerts.less
+++ /dev/null
@@ -1,79 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  _____________________________________________
-
-//  Colors
-
-@alert-info__background-color: @color-gray98;
-@alert-info__border-color: @color-gray80;
-
-@alert-warning__background-color: @color-lazy-sun;
-@alert-warning__border-color: @alert-warning__background-color;
-
-@alert-icon__size: 3.8rem;
-
-//
-//  Common
-//  _____________________________________________
-
-.alert {
-    margin-bottom: 3.5rem;
-    padding: 2.5rem;
-    .vendor-box-align(center);
-    .vendor-prefix-display(flex);
-    .spinner {
-        min-width: @spinner__size;
-    }
-    .ie9 & {
-        .extend__clearer();
-        .spinner {
-            float: left;
-        }
-    }
-    p {
-        &:last-child {
-            margin-bottom: 0;
-        }
-    }
-}
-
-.alert-info {
-    background-color: @alert-info__background-color;
-    border: 1px solid @alert-info__border-color;
-}
-
-.alert-warning {
-    background-color: @alert-warning__background-color;
-    border: 1px solid @alert-warning__border-color;
-}
-
-.alert-icon {
-    margin-right: 1.5rem;
-    .ie9 & {
-        float: left;
-    }
-}
-
-[class*='icon-'] {
-    &.alert-icon {
-        font-size: @alert-icon__size;
-        min-width: @alert-icon__size;
-    }
-}
-
-.alert-text {
-    margin-bottom: 0;
-    ~ .alert-text {
-        margin-top: @paragraph__indent-bottom;
-    }
-    .ie9 & {
-        display: block;
-        margin-left: @alert-icon__size + 1.5rem;
-        margin-top: 1rem;
-    }
-}
diff --git a/setup/view/styles/lib/_messages.less b/setup/view/styles/lib/_messages.less
new file mode 100644
index 0000000000000000000000000000000000000000..238e0318fbb3d30e387e2eca1406d47f9441e6c6
--- /dev/null
+++ b/setup/view/styles/lib/_messages.less
@@ -0,0 +1,19 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@icons-admin__font-name: @icons__font-family;
+
+@icon-info__content: @icon-notice-messages__content;
+@icon-warning__content: @icon-warning-messages__content;
+@icon-check-mage__content: @icon-success-messages__content;
+@icon-error__content: @icon-error-messages__content;
+
+.message {
+    margin-bottom: 3rem;
+}
diff --git a/setup/view/styles/lib/_variables.less b/setup/view/styles/lib/_variables.less
index 1cd5214e8cd02101ad816abc619d214393ca7447..e720d40a02dc201e0a5cc30d5b664359a37b1f6f 100644
--- a/setup/view/styles/lib/_variables.less
+++ b/setup/view/styles/lib/_variables.less
@@ -12,7 +12,7 @@
 //  ---------------------------------------------
 
 @color-brownie: #514943;
-@color-light-brownie: #676056;
+@color-brownie-light: #676056;
 @color-gray65: #a6a6a6;
 @color-gray68: #adadad;
 @color-gray75: #bfbfbf;
@@ -21,14 +21,14 @@
 @color-gray83: #d4d4d4;
 @color-gray84: #d6d6d6;
 @color-gray85: #d9d9d9;
-@color-gray89: #e3e3e3;
 @color-gray98: #fafafa;
-@color-white-fog: #f8f8f8;
-@color-lazy-sun: #fff8d6;
-@color-dodger-blue: #008bdb;
+@color-lazy-sun: #fffbbb;
+@color-blue-dodger: #008bdb;
+@color-blue-pure: #007bdb;
 @color-green-apple: #79a22e;
 @color-green-islamic: #090;
 @color-dark-brownie: #41362f;
+@color-brown-darkie: #41362f;
 @color-phoenix-down: #e04f00;
 @color-phoenix: #eb5202;
 @color-phoenix-almost-rise: #ef672f;
@@ -36,6 +36,7 @@
 @color-tomato-brick: #e22626;
 @color-strawberry-milkshake: #ee7d7d;
 @color-cyan-light: #e0f6fe;
+@color-pink: #fcc;
 
 //  Nesting colors
 @color-prime: @color-phoenix;
@@ -63,12 +64,17 @@
 @icon-success-thick__content: '\e600';
 @icon-failed-thick__content: '\e603';
 
+@icon-success-messages__content: '\e62d';
+@icon-error-messages__content: '\e632';
+@icon-warning-messages__content: '\e623';
+@icon-notice-messages__content: '\e61a';
+
 //
 //  Typography
 //  ---------------------------------------------
 
 //  Focus
-@focus__color: @color-dodger-blue;
+@focus__color: @color-blue-dodger;
 @focus__box-shadow: 0 0 0 1px @focus__color;
 
 //  Disabled
@@ -89,7 +95,7 @@
 
 @small__font-size: @base__font-size * .85;
 
-@link__color: @color-dodger-blue;
+@link__color: @color-blue-dodger;
 @link__hover__color: lighten(@link__color, 10%);
 
 @paragraph__indent-bottom: 1em;
diff --git a/setup/view/styles/pages/_customize-your-store.less b/setup/view/styles/pages/_customize-your-store.less
index b73bba9e2a84e96af7c496c44728e0c7b39c0f8f..6ce32711934faeaa0332ce90c39092cda221f6a9 100644
--- a/setup/view/styles/pages/_customize-your-store.less
+++ b/setup/view/styles/pages/_customize-your-store.less
@@ -16,4 +16,19 @@
     .customize-your-store-advanced {
         min-width: 0; // Fix for Chrome
     }
+    .message-error {
+        &:before {
+            margin-top: 0;
+            top: 1.8rem;
+        }
+        a {
+            color: @alert__color;
+            text-decoration: underline;
+        }
+        .form-label {
+            &:before {
+                background: @color-white;
+            }
+        }
+    }
 }
diff --git a/setup/view/styles/setup.less b/setup/view/styles/setup.less
index f10d8bfbcadb0a4d158a699cb0b30b1e43682f40..cc9b6573c618e5fdeb880c0e95ab4f16337090bd 100644
--- a/setup/view/styles/setup.less
+++ b/setup/view/styles/setup.less
@@ -26,7 +26,10 @@
 @import 'lib/_buttons';
 @import 'lib/_forms';
 @import 'lib/_pseudo-tables';
-@import 'lib/_alerts';
+
+@import '../../../app/design/adminhtml/Magento/backend/web/css/source/_messages';
+@import 'lib/_messages';
+
 @import 'lib/_structures';
 @import 'lib/_grid';